staging: rtlwifi: delete the staging driver

A "real" driver for this hardware is now in the wireless-drivers-next
tree, to be merged in the next major kernel release, so this staging
driver can now be deleted as it is not needed anymore.

Note, 2 .h files remain for this driver, as they are referenced in a
separate staging driver.  That mess will be cleaned up in a follow-on
patch.

Cc: Ping-Ke Shih <pkshih@realtek.com>
Cc: Tzu-En Huang <tehuang@realtek.com>
Cc: Yan-Hsuan Chuang <yhchuang@realtek.com>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: Brian Norris <briannorris@chromium.org>
Cc: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index 82f1699..36805d5 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -40,8 +40,6 @@
 
 source "drivers/staging/rtl8188eu/Kconfig"
 
-source "drivers/staging/rtlwifi/Kconfig"
-
 source "drivers/staging/rts5208/Kconfig"
 
 source "drivers/staging/octeon/Kconfig"
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 0640bd63..7da52e8 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -10,7 +10,6 @@
 obj-$(CONFIG_RTL8723BS)		+= rtl8723bs/
 obj-$(CONFIG_R8712U)		+= rtl8712/
 obj-$(CONFIG_R8188EU)		+= rtl8188eu/
-obj-$(CONFIG_R8822BE)		+= rtlwifi/
 obj-$(CONFIG_RTS5208)		+= rts5208/
 obj-$(CONFIG_NETLOGIC_XLR_NET)	+= netlogic/
 obj-$(CONFIG_OCTEON_ETHERNET)	+= octeon/
diff --git a/drivers/staging/rtlwifi/Kconfig b/drivers/staging/rtlwifi/Kconfig
deleted file mode 100644
index f874373..0000000
--- a/drivers/staging/rtlwifi/Kconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-config R8822BE
-	tristate "Realtek RTL8822BE Wireless Network Adapter"
-	depends on PCI && MAC80211 && m
-	select FW_LOADER
-	help
-	This is the staging driver for Realtek RTL8822BE 802.11ac PCIe
-	wireless network adapters.
-
-config RTLWIFI_DEBUG_ST
-	bool
-	depends on R8822BE
-	default y
diff --git a/drivers/staging/rtlwifi/Makefile b/drivers/staging/rtlwifi/Makefile
deleted file mode 100644
index b223692..0000000
--- a/drivers/staging/rtlwifi/Makefile
+++ /dev/null
@@ -1,71 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-obj-$(CONFIG_R8822BE) 		+= r8822be.o
-
-r8822be-objs	:=		\
-		base.o		\
-		cam.o		\
-		core.o		\
-		debug.o		\
-		efuse.o		\
-		ps.o		\
-		rc.o		\
-		regd.o		\
-		stats.o		\
-		pci.o		\
-		rtl8822be/fw.o	\
-		rtl8822be/hw.o	\
-		rtl8822be/led.o	\
-		rtl8822be/phy.o	\
-		rtl8822be/sw.o	\
-		rtl8822be/trx.o	\
-		btcoexist/halbtc8822b2ant.o	\
-		btcoexist/halbtc8822b1ant.o	\
-		btcoexist/halbtc8822bwifionly.o	\
-		btcoexist/halbtcoutsrc.o	\
-		btcoexist/rtl_btc.o		\
-		halmac/halmac_api.o	\
-		halmac/halmac_88xx/halmac_api_88xx_usb.o	\
-	        halmac/halmac_88xx/halmac_api_88xx_sdio.o	\
-	        halmac/halmac_88xx/halmac_api_88xx.o	\
-	        halmac/halmac_88xx/halmac_api_88xx_pcie.o	\
-	        halmac/halmac_88xx/halmac_func_88xx.o	\
-	        halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.o	\
-	        halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.o	\
-	        halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.o	\
-	        halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.o	\
-	        halmac/halmac_88xx/halmac_8822b/halmac_8822b_phy.o	\
-	        halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.o	\
-	        halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.o	\
-	        halmac/rtl_halmac.o					\
-		phydm/phydm_debug.o	\
-		phydm/phydm_antdiv.o\
-		phydm/phydm_interface.o\
-		phydm/phydm_hwconfig.o\
-		phydm/phydm.o\
-		phydm/halphyrf_ce.o\
-		phydm/phydm_edcaturbocheck.o\
-		phydm/phydm_dig.o\
-		phydm/phydm_rainfo.o\
-		phydm/phydm_dynamicbbpowersaving.o\
-		phydm/phydm_powertracking_ce.o\
-		phydm/phydm_dynamictxpower.o\
-		phydm/phydm_adaptivity.o\
-		phydm/phydm_cfotracking.o\
-		phydm/phydm_noisemonitor.o\
-		phydm/phydm_acs.o\
-		phydm/phydm_psd.o\
-		phydm/phydm_adc_sampling.o\
-		phydm/phydm_kfree.o\
-		phydm/phydm_ccx.o		\
-		phydm/rtl8822b/halhwimg8822b_bb.o\
-		phydm/rtl8822b/halhwimg8822b_mac.o\
-		phydm/rtl8822b/halhwimg8822b_rf.o\
-		phydm/rtl8822b/halphyrf_8822b.o\
-		phydm/rtl8822b/phydm_hal_api8822b.o\
-		phydm/rtl8822b/phydm_iqk_8822b.o\
-		phydm/rtl8822b/phydm_regconfig8822b.o\
-		phydm/rtl8822b/phydm_rtl8822b.o	\
-		phydm/rtl_phydm.o
-
-
-obj-$(CONFIG_R8822BE)			+= rtl8822be/
diff --git a/drivers/staging/rtlwifi/TODO b/drivers/staging/rtlwifi/TODO
deleted file mode 100644
index 4a084f2..0000000
--- a/drivers/staging/rtlwifi/TODO
+++ /dev/null
@@ -1,11 +0,0 @@
-TODO:
-- find and remove code blocks guarded by never set CONFIG_FOO defines
-- convert any remaining unusual variable types
-- find codes that can use %pM and %Nph formatting
-- checkpatch.pl fixes - most of the remaining ones are lines too long. Many
-  of them will require refactoring
-- merge Realtek's bugfixes and new features into the driver
-- address any reviewers comments
-
-Please send any patches to Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
-and Larry Finger <Larry.Finger@lwfinger.net>.
diff --git a/drivers/staging/rtlwifi/base.c b/drivers/staging/rtlwifi/base.c
deleted file mode 100644
index b8b89e4..0000000
--- a/drivers/staging/rtlwifi/base.c
+++ /dev/null
@@ -1,2805 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "wifi.h"
-#include "rc.h"
-#include "base.h"
-#include "efuse.h"
-#include "cam.h"
-#include "ps.h"
-#include "regd.h"
-#include "pci.h"
-#include <linux/ip.h>
-#include <linux/module.h>
-#include <linux/udp.h>
-
-/*
- *NOTICE!!!: This file will be very big, we should
- *keep it clear under following roles:
- *
- *This file include following parts, so, if you add new
- *functions into this file, please check which part it
- *should includes. or check if you should add new part
- *for this file:
- *
- *1) mac80211 init functions
- *2) tx information functions
- *3) functions called by core.c
- *4) wq & timer callback functions
- *5) frame process functions
- *6) IOT functions
- *7) sysfs functions
- *8) vif functions
- *9) ...
- */
-
-/*********************************************************
- *
- * mac80211 init functions
- *
- *********************************************************/
-static struct ieee80211_channel rtl_channeltable_2g[] = {
-	{.center_freq = 2412, .hw_value = 1,},
-	{.center_freq = 2417, .hw_value = 2,},
-	{.center_freq = 2422, .hw_value = 3,},
-	{.center_freq = 2427, .hw_value = 4,},
-	{.center_freq = 2432, .hw_value = 5,},
-	{.center_freq = 2437, .hw_value = 6,},
-	{.center_freq = 2442, .hw_value = 7,},
-	{.center_freq = 2447, .hw_value = 8,},
-	{.center_freq = 2452, .hw_value = 9,},
-	{.center_freq = 2457, .hw_value = 10,},
-	{.center_freq = 2462, .hw_value = 11,},
-	{.center_freq = 2467, .hw_value = 12,},
-	{.center_freq = 2472, .hw_value = 13,},
-	{.center_freq = 2484, .hw_value = 14,},
-};
-
-static struct ieee80211_channel rtl_channeltable_5g[] = {
-	{.center_freq = 5180, .hw_value = 36,},
-	{.center_freq = 5200, .hw_value = 40,},
-	{.center_freq = 5220, .hw_value = 44,},
-	{.center_freq = 5240, .hw_value = 48,},
-	{.center_freq = 5260, .hw_value = 52,},
-	{.center_freq = 5280, .hw_value = 56,},
-	{.center_freq = 5300, .hw_value = 60,},
-	{.center_freq = 5320, .hw_value = 64,},
-	{.center_freq = 5500, .hw_value = 100,},
-	{.center_freq = 5520, .hw_value = 104,},
-	{.center_freq = 5540, .hw_value = 108,},
-	{.center_freq = 5560, .hw_value = 112,},
-	{.center_freq = 5580, .hw_value = 116,},
-	{.center_freq = 5600, .hw_value = 120,},
-	{.center_freq = 5620, .hw_value = 124,},
-	{.center_freq = 5640, .hw_value = 128,},
-	{.center_freq = 5660, .hw_value = 132,},
-	{.center_freq = 5680, .hw_value = 136,},
-	{.center_freq = 5700, .hw_value = 140,},
-	{.center_freq = 5745, .hw_value = 149,},
-	{.center_freq = 5765, .hw_value = 153,},
-	{.center_freq = 5785, .hw_value = 157,},
-	{.center_freq = 5805, .hw_value = 161,},
-	{.center_freq = 5825, .hw_value = 165,},
-};
-
-static struct ieee80211_rate rtl_ratetable_2g[] = {
-	{.bitrate = 10, .hw_value = 0x00,},
-	{.bitrate = 20, .hw_value = 0x01,},
-	{.bitrate = 55, .hw_value = 0x02,},
-	{.bitrate = 110, .hw_value = 0x03,},
-	{.bitrate = 60, .hw_value = 0x04,},
-	{.bitrate = 90, .hw_value = 0x05,},
-	{.bitrate = 120, .hw_value = 0x06,},
-	{.bitrate = 180, .hw_value = 0x07,},
-	{.bitrate = 240, .hw_value = 0x08,},
-	{.bitrate = 360, .hw_value = 0x09,},
-	{.bitrate = 480, .hw_value = 0x0a,},
-	{.bitrate = 540, .hw_value = 0x0b,},
-};
-
-static struct ieee80211_rate rtl_ratetable_5g[] = {
-	{.bitrate = 60, .hw_value = 0x04,},
-	{.bitrate = 90, .hw_value = 0x05,},
-	{.bitrate = 120, .hw_value = 0x06,},
-	{.bitrate = 180, .hw_value = 0x07,},
-	{.bitrate = 240, .hw_value = 0x08,},
-	{.bitrate = 360, .hw_value = 0x09,},
-	{.bitrate = 480, .hw_value = 0x0a,},
-	{.bitrate = 540, .hw_value = 0x0b,},
-};
-
-static const struct ieee80211_supported_band rtl_band_2ghz = {
-	.band = NL80211_BAND_2GHZ,
-
-	.channels = rtl_channeltable_2g,
-	.n_channels = ARRAY_SIZE(rtl_channeltable_2g),
-
-	.bitrates = rtl_ratetable_2g,
-	.n_bitrates = ARRAY_SIZE(rtl_ratetable_2g),
-
-	.ht_cap = {0},
-};
-
-static struct ieee80211_supported_band rtl_band_5ghz = {
-	.band = NL80211_BAND_5GHZ,
-
-	.channels = rtl_channeltable_5g,
-	.n_channels = ARRAY_SIZE(rtl_channeltable_5g),
-
-	.bitrates = rtl_ratetable_5g,
-	.n_bitrates = ARRAY_SIZE(rtl_ratetable_5g),
-
-	.ht_cap = {0},
-};
-
-static const u8 tid_to_ac[] = {
-	2, /* IEEE80211_AC_BE */
-	3, /* IEEE80211_AC_BK */
-	3, /* IEEE80211_AC_BK */
-	2, /* IEEE80211_AC_BE */
-	1, /* IEEE80211_AC_VI */
-	1, /* IEEE80211_AC_VI */
-	0, /* IEEE80211_AC_VO */
-	0, /* IEEE80211_AC_VO */
-};
-
-u8 rtl_tid_to_ac(u8 tid)
-{
-	return tid_to_ac[tid];
-}
-
-static void _rtl_init_hw_ht_capab(struct ieee80211_hw *hw,
-				  struct ieee80211_sta_ht_cap *ht_cap)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-
-	ht_cap->ht_supported = true;
-	ht_cap->cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
-	    IEEE80211_HT_CAP_SGI_40 |
-	    IEEE80211_HT_CAP_SGI_20 |
-	    IEEE80211_HT_CAP_DSSSCCK40 | IEEE80211_HT_CAP_MAX_AMSDU;
-
-	if (rtlpriv->rtlhal.disable_amsdu_8k)
-		ht_cap->cap &= ~IEEE80211_HT_CAP_MAX_AMSDU;
-
-	/*
-	 *Maximum length of AMPDU that the STA can receive.
-	 *Length = 2 ^ (13 + max_ampdu_length_exp) - 1 (octets)
-	 */
-	ht_cap->ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K;
-
-	/*Minimum MPDU start spacing , */
-	ht_cap->ampdu_density = IEEE80211_HT_MPDU_DENSITY_16;
-
-	ht_cap->mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED;
-
-	/*hw->wiphy->bands[NL80211_BAND_2GHZ]
-	 *base on ant_num
-	 *rx_mask: RX mask
-	 *if rx_ant = 1 rx_mask[0]= 0xff;==>MCS0-MCS7
-	 *if rx_ant = 2 rx_mask[1]= 0xff;==>MCS8-MCS15
-	 *if rx_ant >= 3 rx_mask[2]= 0xff;
-	 *if BW_40 rx_mask[4]= 0x01;
-	 *highest supported RX rate
-	 */
-	if (rtlpriv->dm.supp_phymode_switch) {
-		pr_info("Support phy mode switch\n");
-
-		ht_cap->mcs.rx_mask[0] = 0xFF;
-		ht_cap->mcs.rx_mask[1] = 0xFF;
-		ht_cap->mcs.rx_mask[4] = 0x01;
-
-		ht_cap->mcs.rx_highest = cpu_to_le16(MAX_BIT_RATE_40MHZ_MCS15);
-	} else {
-		if (get_rf_type(rtlphy) == RF_1T2R ||
-		    get_rf_type(rtlphy) == RF_2T2R) {
-			RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-				 "1T2R or 2T2R\n");
-			ht_cap->mcs.rx_mask[0] = 0xFF;
-			ht_cap->mcs.rx_mask[1] = 0xFF;
-			ht_cap->mcs.rx_mask[4] = 0x01;
-
-			ht_cap->mcs.rx_highest =
-				 cpu_to_le16(MAX_BIT_RATE_40MHZ_MCS15);
-		} else if (get_rf_type(rtlphy) == RF_1T1R) {
-			RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "1T1R\n");
-
-			ht_cap->mcs.rx_mask[0] = 0xFF;
-			ht_cap->mcs.rx_mask[1] = 0x00;
-			ht_cap->mcs.rx_mask[4] = 0x01;
-
-			ht_cap->mcs.rx_highest =
-				 cpu_to_le16(MAX_BIT_RATE_40MHZ_MCS7);
-		}
-	}
-}
-
-static void _rtl_init_hw_vht_capab(struct ieee80211_hw *hw,
-				   struct ieee80211_sta_vht_cap *vht_cap)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE ||
-	    rtlhal->hw_type == HARDWARE_TYPE_RTL8822BE) {
-		u16 mcs_map;
-
-		vht_cap->vht_supported = true;
-		vht_cap->cap =
-			IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454 |
-			IEEE80211_VHT_CAP_SHORT_GI_80 |
-			IEEE80211_VHT_CAP_TXSTBC |
-			IEEE80211_VHT_CAP_RXSTBC_1 |
-			IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE |
-			IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE |
-			IEEE80211_VHT_CAP_HTC_VHT |
-			IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK |
-			IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN |
-			IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN |
-			0;
-
-		mcs_map = IEEE80211_VHT_MCS_SUPPORT_0_9 << 0 |
-			IEEE80211_VHT_MCS_SUPPORT_0_9 << 2 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 4 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 6 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 8 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 10 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 12 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 14;
-
-		vht_cap->vht_mcs.rx_mcs_map = cpu_to_le16(mcs_map);
-		vht_cap->vht_mcs.rx_highest =
-			cpu_to_le16(MAX_BIT_RATE_SHORT_GI_2NSS_80MHZ_MCS9);
-		vht_cap->vht_mcs.tx_mcs_map = cpu_to_le16(mcs_map);
-		vht_cap->vht_mcs.tx_highest =
-			cpu_to_le16(MAX_BIT_RATE_SHORT_GI_2NSS_80MHZ_MCS9);
-	} else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) {
-		u16 mcs_map;
-
-		vht_cap->vht_supported = true;
-		vht_cap->cap =
-			IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454 |
-			IEEE80211_VHT_CAP_SHORT_GI_80 |
-			IEEE80211_VHT_CAP_TXSTBC |
-			IEEE80211_VHT_CAP_RXSTBC_1 |
-			IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE |
-			IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE |
-			IEEE80211_VHT_CAP_HTC_VHT |
-			IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK |
-			IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN |
-			IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN |
-			0;
-
-		mcs_map = IEEE80211_VHT_MCS_SUPPORT_0_9 << 0 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 2 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 4 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 6 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 8 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 10 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 12 |
-			IEEE80211_VHT_MCS_NOT_SUPPORTED << 14;
-
-		vht_cap->vht_mcs.rx_mcs_map = cpu_to_le16(mcs_map);
-		vht_cap->vht_mcs.rx_highest =
-			cpu_to_le16(MAX_BIT_RATE_SHORT_GI_1NSS_80MHZ_MCS9);
-		vht_cap->vht_mcs.tx_mcs_map = cpu_to_le16(mcs_map);
-		vht_cap->vht_mcs.tx_highest =
-			cpu_to_le16(MAX_BIT_RATE_SHORT_GI_1NSS_80MHZ_MCS9);
-	}
-}
-
-static void _rtl_init_mac80211(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	struct rtl_mac *rtlmac = rtl_mac(rtl_priv(hw));
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	struct ieee80211_supported_band *sband;
-
-	if (rtlhal->macphymode == SINGLEMAC_SINGLEPHY &&
-	    rtlhal->bandset == BAND_ON_BOTH) {
-		/* 1: 2.4 G bands */
-		/* <1> use  mac->bands as mem for hw->wiphy->bands */
-		sband = &rtlmac->bands[NL80211_BAND_2GHZ];
-
-		/* <2> set hw->wiphy->bands[NL80211_BAND_2GHZ]
-		 * to default value(1T1R)
-		 */
-		memcpy(&rtlmac->bands[NL80211_BAND_2GHZ], &rtl_band_2ghz,
-		       sizeof(struct ieee80211_supported_band));
-
-		/* <3> init ht cap base on ant_num */
-		_rtl_init_hw_ht_capab(hw, &sband->ht_cap);
-
-		/* <4> set mac->sband to wiphy->sband */
-		hw->wiphy->bands[NL80211_BAND_2GHZ] = sband;
-
-		/* 2: 5 G bands */
-		/* <1> use  mac->bands as mem for hw->wiphy->bands */
-		sband = &rtlmac->bands[NL80211_BAND_5GHZ];
-
-		/* <2> set hw->wiphy->bands[NL80211_BAND_5GHZ]
-		 * to default value(1T1R)
-		 */
-		memcpy(&rtlmac->bands[NL80211_BAND_5GHZ], &rtl_band_5ghz,
-		       sizeof(struct ieee80211_supported_band));
-
-		/* <3> init ht cap base on ant_num */
-		_rtl_init_hw_ht_capab(hw, &sband->ht_cap);
-
-		_rtl_init_hw_vht_capab(hw, &sband->vht_cap);
-		/* <4> set mac->sband to wiphy->sband */
-		hw->wiphy->bands[NL80211_BAND_5GHZ] = sband;
-	} else {
-		if (rtlhal->current_bandtype == BAND_ON_2_4G) {
-			/* <1> use  mac->bands as mem for hw->wiphy->bands */
-			sband = &rtlmac->bands[NL80211_BAND_2GHZ];
-
-			/* <2> set hw->wiphy->bands[NL80211_BAND_2GHZ]
-			 * to default value(1T1R)
-			 */
-			memcpy(&rtlmac->bands[NL80211_BAND_2GHZ],
-			       &rtl_band_2ghz,
-			       sizeof(struct ieee80211_supported_band));
-
-			/* <3> init ht cap base on ant_num */
-			_rtl_init_hw_ht_capab(hw, &sband->ht_cap);
-
-			/* <4> set mac->sband to wiphy->sband */
-			hw->wiphy->bands[NL80211_BAND_2GHZ] = sband;
-		} else if (rtlhal->current_bandtype == BAND_ON_5G) {
-			/* <1> use  mac->bands as mem for hw->wiphy->bands */
-			sband = &rtlmac->bands[NL80211_BAND_5GHZ];
-
-			/* <2> set hw->wiphy->bands[NL80211_BAND_5GHZ]
-			 * to default value(1T1R)
-			 */
-			memcpy(&rtlmac->bands[NL80211_BAND_5GHZ],
-			       &rtl_band_5ghz,
-			       sizeof(struct ieee80211_supported_band));
-
-			/* <3> init ht cap base on ant_num */
-			_rtl_init_hw_ht_capab(hw, &sband->ht_cap);
-
-			_rtl_init_hw_vht_capab(hw, &sband->vht_cap);
-			/* <4> set mac->sband to wiphy->sband */
-			hw->wiphy->bands[NL80211_BAND_5GHZ] = sband;
-		} else {
-			pr_err("Err BAND %d\n",
-			       rtlhal->current_bandtype);
-		}
-	}
-	/* <5> set hw caps */
-	ieee80211_hw_set(hw, SIGNAL_DBM);
-	ieee80211_hw_set(hw, RX_INCLUDES_FCS);
-	ieee80211_hw_set(hw, AMPDU_AGGREGATION);
-	ieee80211_hw_set(hw, CONNECTION_MONITOR);
-	ieee80211_hw_set(hw, MFP_CAPABLE);
-	ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
-	ieee80211_hw_set(hw, SUPPORTS_TX_FRAG);
-	ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
-	ieee80211_hw_set(hw, SUPPORTS_AMSDU_IN_AMPDU);
-
-	/* swlps or hwlps has been set in diff chip in init_sw_vars */
-	if (rtlpriv->psc.swctrl_lps) {
-		ieee80211_hw_set(hw, SUPPORTS_PS);
-		ieee80211_hw_set(hw, PS_NULLFUNC_STACK);
-	}
-	if (rtlpriv->psc.fwctrl_lps) {
-		ieee80211_hw_set(hw, SUPPORTS_PS);
-		ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
-	}
-	hw->wiphy->interface_modes =
-	    BIT(NL80211_IFTYPE_AP) |
-	    BIT(NL80211_IFTYPE_STATION) |
-	    BIT(NL80211_IFTYPE_ADHOC) |
-	    BIT(NL80211_IFTYPE_MESH_POINT) |
-	    BIT(NL80211_IFTYPE_P2P_CLIENT) |
-	    BIT(NL80211_IFTYPE_P2P_GO);
-	hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
-
-	hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
-
-	hw->wiphy->rts_threshold = 2347;
-
-	hw->queues = AC_MAX;
-	hw->extra_tx_headroom = RTL_TX_HEADER_SIZE;
-
-	/* TODO: Correct this value for our hw */
-	hw->max_listen_interval = MAX_LISTEN_INTERVAL;
-	hw->max_rate_tries = MAX_RATE_TRIES;
-	/* hw->max_rates = 1; */
-	hw->sta_data_size = sizeof(struct rtl_sta_info);
-
-/* wowlan is not supported by kernel if CONFIG_PM is not defined */
-#ifdef CONFIG_PM
-	if (rtlpriv->psc.wo_wlan_mode) {
-		if (rtlpriv->psc.wo_wlan_mode & WAKE_ON_MAGIC_PACKET)
-			rtlpriv->wowlan.flags = WIPHY_WOWLAN_MAGIC_PKT;
-		if (rtlpriv->psc.wo_wlan_mode & WAKE_ON_PATTERN_MATCH) {
-			rtlpriv->wowlan.n_patterns =
-				MAX_SUPPORT_WOL_PATTERN_NUM;
-			rtlpriv->wowlan.pattern_min_len = MIN_WOL_PATTERN_SIZE;
-			rtlpriv->wowlan.pattern_max_len = MAX_WOL_PATTERN_SIZE;
-		}
-		hw->wiphy->wowlan = &rtlpriv->wowlan;
-	}
-#endif
-
-	/* <6> mac address */
-	if (is_valid_ether_addr(rtlefuse->dev_addr)) {
-		SET_IEEE80211_PERM_ADDR(hw, rtlefuse->dev_addr);
-	} else {
-		u8 rtlmac1[] = { 0x00, 0xe0, 0x4c, 0x81, 0x92, 0x00 };
-
-		get_random_bytes((rtlmac1 + (ETH_ALEN - 1)), 1);
-		SET_IEEE80211_PERM_ADDR(hw, rtlmac1);
-	}
-}
-
-static void _rtl_init_deferred_work(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	/* <1> timer */
-	timer_setup(&rtlpriv->works.watchdog_timer,
-		    rtl_watch_dog_timer_callback, 0);
-	timer_setup(&rtlpriv->works.dualmac_easyconcurrent_retrytimer,
-		    rtl_easy_concurrent_retrytimer_callback, 0);
-	/* <2> work queue */
-	rtlpriv->works.hw = hw;
-	rtlpriv->works.rtl_wq = alloc_workqueue("%s", 0, 0, rtlpriv->cfg->name);
-	INIT_DELAYED_WORK(&rtlpriv->works.watchdog_wq,
-			  (void *)rtl_watchdog_wq_callback);
-	INIT_DELAYED_WORK(&rtlpriv->works.ips_nic_off_wq,
-			  (void *)rtl_ips_nic_off_wq_callback);
-	INIT_DELAYED_WORK(&rtlpriv->works.ps_work,
-			  (void *)rtl_swlps_wq_callback);
-	INIT_DELAYED_WORK(&rtlpriv->works.ps_rfon_wq,
-			  (void *)rtl_swlps_rfon_wq_callback);
-	INIT_DELAYED_WORK(&rtlpriv->works.fwevt_wq,
-			  (void *)rtl_fwevt_wq_callback);
-	INIT_DELAYED_WORK(&rtlpriv->works.c2hcmd_wq,
-			  (void *)rtl_c2hcmd_wq_callback);
-}
-
-void rtl_deinit_deferred_work(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	del_timer_sync(&rtlpriv->works.watchdog_timer);
-
-	cancel_delayed_work(&rtlpriv->works.watchdog_wq);
-	cancel_delayed_work(&rtlpriv->works.ips_nic_off_wq);
-	cancel_delayed_work(&rtlpriv->works.ps_work);
-	cancel_delayed_work(&rtlpriv->works.ps_rfon_wq);
-	cancel_delayed_work(&rtlpriv->works.fwevt_wq);
-	cancel_delayed_work(&rtlpriv->works.c2hcmd_wq);
-}
-
-void rtl_init_rfkill(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	bool radio_state;
-	bool blocked;
-	u8 valid = 0;
-
-	/*set init state to on */
-	rtlpriv->rfkill.rfkill_state = true;
-	wiphy_rfkill_set_hw_state(hw->wiphy, 0);
-
-	radio_state = rtlpriv->cfg->ops->radio_onoff_checking(hw, &valid);
-
-	if (valid) {
-		pr_info("rtlwifi: wireless switch is %s\n",
-			rtlpriv->rfkill.rfkill_state ? "on" : "off");
-
-		rtlpriv->rfkill.rfkill_state = radio_state;
-
-		blocked = (rtlpriv->rfkill.rfkill_state == 1) ? 0 : 1;
-		wiphy_rfkill_set_hw_state(hw->wiphy, blocked);
-	}
-
-	wiphy_rfkill_start_polling(hw->wiphy);
-}
-
-void rtl_deinit_rfkill(struct ieee80211_hw *hw)
-{
-	wiphy_rfkill_stop_polling(hw->wiphy);
-}
-
-int rtl_init_core(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *rtlmac = rtl_mac(rtl_priv(hw));
-
-	/* <1> init mac80211 */
-	_rtl_init_mac80211(hw);
-	rtlmac->hw = hw;
-
-	/* <2> rate control register */
-	hw->rate_control_algorithm = "rtl_rc";
-
-	/*
-	 * <3> init CRDA must come after init
-	 * mac80211 hw  in _rtl_init_mac80211.
-	 */
-	if (rtl_regd_init(hw, rtl_reg_notifier)) {
-		pr_err("REGD init failed\n");
-		return 1;
-	}
-
-	/* <4> locks */
-	mutex_init(&rtlpriv->locks.conf_mutex);
-	mutex_init(&rtlpriv->locks.ips_mutex);
-	mutex_init(&rtlpriv->locks.lps_mutex);
-	spin_lock_init(&rtlpriv->locks.irq_th_lock);
-	spin_lock_init(&rtlpriv->locks.h2c_lock);
-	spin_lock_init(&rtlpriv->locks.rf_ps_lock);
-	spin_lock_init(&rtlpriv->locks.rf_lock);
-	spin_lock_init(&rtlpriv->locks.waitq_lock);
-	spin_lock_init(&rtlpriv->locks.entry_list_lock);
-	spin_lock_init(&rtlpriv->locks.c2hcmd_lock);
-	spin_lock_init(&rtlpriv->locks.scan_list_lock);
-	spin_lock_init(&rtlpriv->locks.cck_and_rw_pagea_lock);
-	spin_lock_init(&rtlpriv->locks.fw_ps_lock);
-	spin_lock_init(&rtlpriv->locks.iqk_lock);
-	/* <5> init list */
-	INIT_LIST_HEAD(&rtlpriv->entry_list);
-	INIT_LIST_HEAD(&rtlpriv->c2hcmd_list);
-	INIT_LIST_HEAD(&rtlpriv->scan_list.list);
-
-	rtlmac->link_state = MAC80211_NOLINK;
-
-	/* <6> init deferred work */
-	_rtl_init_deferred_work(hw);
-
-	return 0;
-}
-
-static void rtl_free_entries_from_scan_list(struct ieee80211_hw *hw);
-
-void rtl_deinit_core(struct ieee80211_hw *hw)
-{
-	rtl_c2hcmd_launcher(hw, 0);
-	rtl_free_entries_from_scan_list(hw);
-}
-
-void rtl_init_rx_config(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-
-	rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_RCR, (u8 *)&mac->rx_conf);
-}
-
-/*********************************************************
- *
- * tx information functions
- *
- *********************************************************/
-static void _rtl_qurey_shortpreamble_mode(struct ieee80211_hw *hw,
-					  struct rtl_tcb_desc *tcb_desc,
-					  struct ieee80211_tx_info *info)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 rate_flag = info->control.rates[0].flags;
-
-	tcb_desc->use_shortpreamble = false;
-
-	/* 1M can only use Long Preamble. 11B spec */
-	if (tcb_desc->hw_rate == rtlpriv->cfg->maps[RTL_RC_CCK_RATE1M])
-		return;
-	else if (rate_flag & IEEE80211_TX_RC_USE_SHORT_PREAMBLE)
-		tcb_desc->use_shortpreamble = true;
-}
-
-static void _rtl_query_shortgi(struct ieee80211_hw *hw,
-			       struct ieee80211_sta *sta,
-			       struct rtl_tcb_desc *tcb_desc,
-			       struct ieee80211_tx_info *info)
-{
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	u8 rate_flag = info->control.rates[0].flags;
-	u8 sgi_40 = 0, sgi_20 = 0, bw_40 = 0;
-	u8 sgi_80 = 0, bw_80 = 0;
-
-	tcb_desc->use_shortgi = false;
-
-	if (!sta)
-		return;
-
-	sgi_40 = sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40;
-	sgi_20 = sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20;
-	sgi_80 = sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80;
-
-	if (!sta->ht_cap.ht_supported && !sta->vht_cap.vht_supported)
-		return;
-
-	if (!sgi_40 && !sgi_20)
-		return;
-
-	if (mac->opmode == NL80211_IFTYPE_STATION) {
-		bw_40 = mac->bw_40;
-		bw_80 = mac->bw_80;
-	} else if (mac->opmode == NL80211_IFTYPE_AP ||
-		 mac->opmode == NL80211_IFTYPE_ADHOC ||
-		 mac->opmode == NL80211_IFTYPE_MESH_POINT) {
-		bw_40 = sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40;
-		bw_80 = sta->vht_cap.vht_supported;
-	}
-
-	if (bw_80) {
-		if (sgi_80)
-			tcb_desc->use_shortgi = true;
-		else
-			tcb_desc->use_shortgi = false;
-	} else {
-		if (bw_40 && sgi_40)
-			tcb_desc->use_shortgi = true;
-		else if (!bw_40 && sgi_20)
-			tcb_desc->use_shortgi = true;
-	}
-
-	if (!(rate_flag & IEEE80211_TX_RC_SHORT_GI))
-		tcb_desc->use_shortgi = false;
-}
-
-static void _rtl_query_protection_mode(struct ieee80211_hw *hw,
-				       struct rtl_tcb_desc *tcb_desc,
-				       struct ieee80211_tx_info *info)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 rate_flag = info->control.rates[0].flags;
-
-	/* Common Settings */
-	tcb_desc->rts_stbc = false;
-	tcb_desc->cts_enable = false;
-	tcb_desc->rts_sc = 0;
-	tcb_desc->rts_bw = false;
-	tcb_desc->rts_use_shortpreamble = false;
-	tcb_desc->rts_use_shortgi = false;
-
-	if (rate_flag & IEEE80211_TX_RC_USE_CTS_PROTECT) {
-		/* Use CTS-to-SELF in protection mode. */
-		tcb_desc->rts_enable = true;
-		tcb_desc->cts_enable = true;
-		tcb_desc->rts_rate = rtlpriv->cfg->maps[RTL_RC_OFDM_RATE24M];
-	} else if (rate_flag & IEEE80211_TX_RC_USE_RTS_CTS) {
-		/* Use RTS-CTS in protection mode. */
-		tcb_desc->rts_enable = true;
-		tcb_desc->rts_rate = rtlpriv->cfg->maps[RTL_RC_OFDM_RATE24M];
-	}
-}
-
-u8 rtl_mrate_idx_to_arfr_id(struct ieee80211_hw *hw, u8 rate_index,
-			    enum wireless_mode wirelessmode)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 ret = 0;
-
-	switch (rate_index) {
-	case RATR_INX_WIRELESS_NGB:
-		if (rtlphy->rf_type == RF_1T1R)
-			ret = RATEID_IDX_BGN_40M_1SS;
-		else
-			ret = RATEID_IDX_BGN_40M_2SS;
-		break;
-	case RATR_INX_WIRELESS_N:
-	case RATR_INX_WIRELESS_NG:
-		if (rtlphy->rf_type == RF_1T1R)
-			ret = RATEID_IDX_GN_N1SS;
-		else
-			ret = RATEID_IDX_GN_N2SS;
-		break;
-	case RATR_INX_WIRELESS_NB:
-		if (rtlphy->rf_type == RF_1T1R)
-			ret = RATEID_IDX_BGN_20M_1SS_BN;
-		else
-			ret = RATEID_IDX_BGN_20M_2SS_BN;
-		break;
-	case RATR_INX_WIRELESS_GB:
-		ret = RATEID_IDX_BG;
-		break;
-	case RATR_INX_WIRELESS_G:
-		ret = RATEID_IDX_G;
-		break;
-	case RATR_INX_WIRELESS_B:
-		ret = RATEID_IDX_B;
-		break;
-	case RATR_INX_WIRELESS_MC:
-		if (wirelessmode == WIRELESS_MODE_B ||
-		    wirelessmode == WIRELESS_MODE_G ||
-		    wirelessmode == WIRELESS_MODE_N_24G ||
-		    wirelessmode == WIRELESS_MODE_AC_24G)
-			ret = RATEID_IDX_BG;
-		else
-			ret = RATEID_IDX_G;
-		break;
-	case RATR_INX_WIRELESS_AC_5N:
-		if (rtlphy->rf_type == RF_1T1R)
-			ret = RATEID_IDX_VHT_1SS;
-		else
-			ret = RATEID_IDX_VHT_2SS;
-		break;
-	case RATR_INX_WIRELESS_AC_24N:
-		if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) {
-			if (rtlphy->rf_type == RF_1T1R)
-				ret = RATEID_IDX_VHT_1SS;
-			else
-				ret = RATEID_IDX_VHT_2SS;
-		} else {
-			if (rtlphy->rf_type == RF_1T1R)
-				ret = RATEID_IDX_MIX1;
-			else
-				ret = RATEID_IDX_MIX2;
-		}
-		break;
-	default:
-		ret = RATEID_IDX_BGN_40M_2SS;
-		break;
-	}
-	return ret;
-}
-
-static inline u8 _rtl_rate_id(struct ieee80211_hw *hw,
-			      struct rtl_sta_info *sta_entry,
-			      int rate_index)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	if (rtlpriv->cfg->spec_ver & RTL_SPEC_NEW_RATEID) {
-		int wireless_mode = sta_entry ?
-			sta_entry->wireless_mode : WIRELESS_MODE_G;
-
-		return rtl_mrate_idx_to_arfr_id(hw, rate_index, wireless_mode);
-	} else {
-		return rate_index;
-	}
-}
-
-static void _rtl_txrate_selectmode(struct ieee80211_hw *hw,
-				   struct ieee80211_sta *sta,
-				   struct rtl_tcb_desc *tcb_desc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_sta_info *sta_entry = NULL;
-	u8 ratr_index = _rtl_rate_id(hw, sta_entry, RATR_INX_WIRELESS_MC);
-
-	if (sta) {
-		sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-		ratr_index = sta_entry->ratr_index;
-	}
-	if (!tcb_desc->disable_ratefallback || !tcb_desc->use_driver_rate) {
-		if (mac->opmode == NL80211_IFTYPE_STATION) {
-			tcb_desc->ratr_index = 0;
-		} else if (mac->opmode == NL80211_IFTYPE_ADHOC ||
-				mac->opmode == NL80211_IFTYPE_MESH_POINT) {
-			if (tcb_desc->multicast || tcb_desc->broadcast) {
-				tcb_desc->hw_rate =
-				    rtlpriv->cfg->maps[RTL_RC_CCK_RATE2M];
-				tcb_desc->use_driver_rate = 1;
-				tcb_desc->ratr_index =
-					_rtl_rate_id(hw, sta_entry,
-						     RATR_INX_WIRELESS_MC);
-			} else {
-				tcb_desc->ratr_index = ratr_index;
-			}
-		} else if (mac->opmode == NL80211_IFTYPE_AP) {
-			tcb_desc->ratr_index = ratr_index;
-		}
-	}
-
-	if (rtlpriv->dm.useramask) {
-		tcb_desc->ratr_index = ratr_index;
-		/* TODO we will differentiate adhoc and station future  */
-		if (mac->opmode == NL80211_IFTYPE_STATION ||
-		    mac->opmode == NL80211_IFTYPE_MESH_POINT) {
-			tcb_desc->mac_id = 0;
-
-			if (sta &&
-			    (rtlpriv->cfg->spec_ver & RTL_SPEC_NEW_RATEID))
-				;	/* use sta_entry->ratr_index */
-			else if (mac->mode == WIRELESS_MODE_AC_5G)
-				tcb_desc->ratr_index =
-					_rtl_rate_id(hw, sta_entry,
-						     RATR_INX_WIRELESS_AC_5N);
-			else if (mac->mode == WIRELESS_MODE_AC_24G)
-				tcb_desc->ratr_index =
-					_rtl_rate_id(hw, sta_entry,
-						     RATR_INX_WIRELESS_AC_24N);
-			else if (mac->mode == WIRELESS_MODE_N_24G)
-				tcb_desc->ratr_index =
-					_rtl_rate_id(hw, sta_entry,
-						     RATR_INX_WIRELESS_NGB);
-			else if (mac->mode == WIRELESS_MODE_N_5G)
-				tcb_desc->ratr_index =
-					_rtl_rate_id(hw, sta_entry,
-						     RATR_INX_WIRELESS_NG);
-			else if (mac->mode & WIRELESS_MODE_G)
-				tcb_desc->ratr_index =
-					_rtl_rate_id(hw, sta_entry,
-						     RATR_INX_WIRELESS_GB);
-			else if (mac->mode & WIRELESS_MODE_B)
-				tcb_desc->ratr_index =
-					_rtl_rate_id(hw, sta_entry,
-						     RATR_INX_WIRELESS_B);
-			else if (mac->mode & WIRELESS_MODE_A)
-				tcb_desc->ratr_index =
-					_rtl_rate_id(hw, sta_entry,
-						     RATR_INX_WIRELESS_G);
-
-		} else if (mac->opmode == NL80211_IFTYPE_AP ||
-			mac->opmode == NL80211_IFTYPE_ADHOC) {
-			if (sta) {
-				if (sta->aid > 0)
-					tcb_desc->mac_id = sta->aid + 1;
-				else
-					tcb_desc->mac_id = 1;
-			} else {
-				tcb_desc->mac_id = 0;
-			}
-		}
-	}
-}
-
-static void _rtl_query_bandwidth_mode(struct ieee80211_hw *hw,
-				      struct ieee80211_sta *sta,
-				      struct rtl_tcb_desc *tcb_desc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-
-	tcb_desc->packet_bw = false;
-	if (!sta)
-		return;
-	if (mac->opmode == NL80211_IFTYPE_AP ||
-	    mac->opmode == NL80211_IFTYPE_ADHOC ||
-	    mac->opmode == NL80211_IFTYPE_MESH_POINT) {
-		if (!(sta->ht_cap.ht_supported) ||
-		    !(sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40))
-			return;
-	} else if (mac->opmode == NL80211_IFTYPE_STATION) {
-		if (!mac->bw_40 || !(sta->ht_cap.ht_supported))
-			return;
-	}
-	if (tcb_desc->multicast || tcb_desc->broadcast)
-		return;
-
-	/*use legency rate, shall use 20MHz */
-	if (tcb_desc->hw_rate <= rtlpriv->cfg->maps[RTL_RC_OFDM_RATE54M])
-		return;
-
-	tcb_desc->packet_bw = HT_CHANNEL_WIDTH_20_40;
-
-	if (rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8812AE ||
-	    rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8821AE ||
-	    (rtlpriv->cfg->spec_ver & RTL_SPEC_SUPPORT_VHT)) {
-		if (mac->opmode == NL80211_IFTYPE_AP ||
-		    mac->opmode == NL80211_IFTYPE_ADHOC ||
-		    mac->opmode == NL80211_IFTYPE_MESH_POINT) {
-			if (!(sta->vht_cap.vht_supported))
-				return;
-		} else if (mac->opmode == NL80211_IFTYPE_STATION) {
-			if (!mac->bw_80 ||
-			    !(sta->vht_cap.vht_supported))
-				return;
-		}
-		if (tcb_desc->hw_rate <=
-			rtlpriv->cfg->maps[RTL_RC_HT_RATEMCS15])
-			return;
-		tcb_desc->packet_bw = HT_CHANNEL_WIDTH_80;
-	}
-}
-
-static u8 _rtl_get_vht_highest_n_rate(struct ieee80211_hw *hw,
-				      struct ieee80211_sta *sta)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 hw_rate;
-	u16 tx_mcs_map = le16_to_cpu(sta->vht_cap.vht_mcs.tx_mcs_map);
-
-	if ((get_rf_type(rtlphy) == RF_2T2R) &&
-	    (tx_mcs_map & 0x000c) != 0x000c) {
-		if ((tx_mcs_map & 0x000c) >> 2 ==
-			IEEE80211_VHT_MCS_SUPPORT_0_7)
-			hw_rate =
-			rtlpriv->cfg->maps[RTL_RC_VHT_RATE_2SS_MCS7];
-		else if ((tx_mcs_map  & 0x000c) >> 2 ==
-			IEEE80211_VHT_MCS_SUPPORT_0_8)
-			hw_rate =
-			rtlpriv->cfg->maps[RTL_RC_VHT_RATE_2SS_MCS8];
-		else
-			hw_rate =
-			rtlpriv->cfg->maps[RTL_RC_VHT_RATE_2SS_MCS9];
-	} else {
-		if ((tx_mcs_map  & 0x0003) ==
-			IEEE80211_VHT_MCS_SUPPORT_0_7)
-			hw_rate =
-			rtlpriv->cfg->maps[RTL_RC_VHT_RATE_1SS_MCS7];
-		else if ((tx_mcs_map  & 0x0003) ==
-			IEEE80211_VHT_MCS_SUPPORT_0_8)
-			hw_rate =
-			rtlpriv->cfg->maps[RTL_RC_VHT_RATE_1SS_MCS8];
-		else
-			hw_rate =
-			rtlpriv->cfg->maps[RTL_RC_VHT_RATE_1SS_MCS9];
-	}
-
-	return hw_rate;
-}
-
-static u8 _rtl_get_highest_n_rate(struct ieee80211_hw *hw,
-				  struct ieee80211_sta *sta)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 hw_rate;
-
-	if (get_rf_type(rtlphy) == RF_2T2R &&
-	    sta->ht_cap.mcs.rx_mask[1] != 0)
-		hw_rate = rtlpriv->cfg->maps[RTL_RC_HT_RATEMCS15];
-	else
-		hw_rate = rtlpriv->cfg->maps[RTL_RC_HT_RATEMCS7];
-
-	return hw_rate;
-}
-
-/* mac80211's rate_idx is like this:
- *
- * 2.4G band:rx_status->band == NL80211_BAND_2GHZ
- *
- * B/G rate:
- * (rx_status->flag & RX_FLAG_HT) = 0,
- * DESC_RATE1M-->DESC_RATE54M ==> idx is 0-->11,
- *
- * N rate:
- * (rx_status->flag & RX_FLAG_HT) = 1,
- * DESC_RATEMCS0-->DESC_RATEMCS15 ==> idx is 0-->15
- *
- * 5G band:rx_status->band == NL80211_BAND_5GHZ
- * A rate:
- * (rx_status->flag & RX_FLAG_HT) = 0,
- * DESC_RATE6M-->DESC_RATE54M ==> idx is 0-->7,
- *
- * N rate:
- * (rx_status->flag & RX_FLAG_HT) = 1,
- * DESC_RATEMCS0-->DESC_RATEMCS15 ==> idx is 0-->15
- *
- * VHT rates:
- * DESC_RATEVHT1SS_MCS0-->DESC_RATEVHT1SS_MCS9 ==> idx is 0-->9
- * DESC_RATEVHT2SS_MCS0-->DESC_RATEVHT2SS_MCS9 ==> idx is 0-->9
- */
-int rtlwifi_rate_mapping(struct ieee80211_hw *hw, bool isht, bool isvht,
-			 u8 desc_rate)
-{
-	int rate_idx;
-
-	if (isvht) {
-		switch (desc_rate) {
-		case DESC_RATEVHT1SS_MCS0:
-			rate_idx = 0;
-			break;
-		case DESC_RATEVHT1SS_MCS1:
-			rate_idx = 1;
-			break;
-		case DESC_RATEVHT1SS_MCS2:
-			rate_idx = 2;
-			break;
-		case DESC_RATEVHT1SS_MCS3:
-			rate_idx = 3;
-			break;
-		case DESC_RATEVHT1SS_MCS4:
-			rate_idx = 4;
-			break;
-		case DESC_RATEVHT1SS_MCS5:
-			rate_idx = 5;
-			break;
-		case DESC_RATEVHT1SS_MCS6:
-			rate_idx = 6;
-			break;
-		case DESC_RATEVHT1SS_MCS7:
-			rate_idx = 7;
-			break;
-		case DESC_RATEVHT1SS_MCS8:
-			rate_idx = 8;
-			break;
-		case DESC_RATEVHT1SS_MCS9:
-			rate_idx = 9;
-			break;
-		case DESC_RATEVHT2SS_MCS0:
-			rate_idx = 0;
-			break;
-		case DESC_RATEVHT2SS_MCS1:
-			rate_idx = 1;
-			break;
-		case DESC_RATEVHT2SS_MCS2:
-			rate_idx = 2;
-			break;
-		case DESC_RATEVHT2SS_MCS3:
-			rate_idx = 3;
-			break;
-		case DESC_RATEVHT2SS_MCS4:
-			rate_idx = 4;
-			break;
-		case DESC_RATEVHT2SS_MCS5:
-			rate_idx = 5;
-			break;
-		case DESC_RATEVHT2SS_MCS6:
-			rate_idx = 6;
-			break;
-		case DESC_RATEVHT2SS_MCS7:
-			rate_idx = 7;
-			break;
-		case DESC_RATEVHT2SS_MCS8:
-			rate_idx = 8;
-			break;
-		case DESC_RATEVHT2SS_MCS9:
-			rate_idx = 9;
-			break;
-		default:
-			rate_idx = 0;
-			break;
-		}
-		return rate_idx;
-	}
-	if (!isht) {
-		if (hw->conf.chandef.chan->band == NL80211_BAND_2GHZ) {
-			switch (desc_rate) {
-			case DESC_RATE1M:
-				rate_idx = 0;
-				break;
-			case DESC_RATE2M:
-				rate_idx = 1;
-				break;
-			case DESC_RATE5_5M:
-				rate_idx = 2;
-				break;
-			case DESC_RATE11M:
-				rate_idx = 3;
-				break;
-			case DESC_RATE6M:
-				rate_idx = 4;
-				break;
-			case DESC_RATE9M:
-				rate_idx = 5;
-				break;
-			case DESC_RATE12M:
-				rate_idx = 6;
-				break;
-			case DESC_RATE18M:
-				rate_idx = 7;
-				break;
-			case DESC_RATE24M:
-				rate_idx = 8;
-				break;
-			case DESC_RATE36M:
-				rate_idx = 9;
-				break;
-			case DESC_RATE48M:
-				rate_idx = 10;
-				break;
-			case DESC_RATE54M:
-				rate_idx = 11;
-				break;
-			default:
-				rate_idx = 0;
-				break;
-			}
-		} else {
-			switch (desc_rate) {
-			case DESC_RATE6M:
-				rate_idx = 0;
-				break;
-			case DESC_RATE9M:
-				rate_idx = 1;
-				break;
-			case DESC_RATE12M:
-				rate_idx = 2;
-				break;
-			case DESC_RATE18M:
-				rate_idx = 3;
-				break;
-			case DESC_RATE24M:
-				rate_idx = 4;
-				break;
-			case DESC_RATE36M:
-				rate_idx = 5;
-				break;
-			case DESC_RATE48M:
-				rate_idx = 6;
-				break;
-			case DESC_RATE54M:
-				rate_idx = 7;
-				break;
-			default:
-				rate_idx = 0;
-				break;
-			}
-		}
-	} else {
-		switch (desc_rate) {
-		case DESC_RATEMCS0:
-			rate_idx = 0;
-			break;
-		case DESC_RATEMCS1:
-			rate_idx = 1;
-			break;
-		case DESC_RATEMCS2:
-			rate_idx = 2;
-			break;
-		case DESC_RATEMCS3:
-			rate_idx = 3;
-			break;
-		case DESC_RATEMCS4:
-			rate_idx = 4;
-			break;
-		case DESC_RATEMCS5:
-			rate_idx = 5;
-			break;
-		case DESC_RATEMCS6:
-			rate_idx = 6;
-			break;
-		case DESC_RATEMCS7:
-			rate_idx = 7;
-			break;
-		case DESC_RATEMCS8:
-			rate_idx = 8;
-			break;
-		case DESC_RATEMCS9:
-			rate_idx = 9;
-			break;
-		case DESC_RATEMCS10:
-			rate_idx = 10;
-			break;
-		case DESC_RATEMCS11:
-			rate_idx = 11;
-			break;
-		case DESC_RATEMCS12:
-			rate_idx = 12;
-			break;
-		case DESC_RATEMCS13:
-			rate_idx = 13;
-			break;
-		case DESC_RATEMCS14:
-			rate_idx = 14;
-			break;
-		case DESC_RATEMCS15:
-			rate_idx = 15;
-			break;
-		default:
-			rate_idx = 0;
-			break;
-		}
-	}
-	return rate_idx;
-}
-
-static u8 _rtl_get_tx_hw_rate(struct ieee80211_hw *hw,
-			      struct ieee80211_tx_info *info)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct ieee80211_tx_rate *r = &info->status.rates[0];
-	struct ieee80211_rate *txrate;
-	u8 hw_value = 0x0;
-
-	if (r->flags & IEEE80211_TX_RC_MCS) {
-		/* HT MCS0-15 */
-		hw_value = rtlpriv->cfg->maps[RTL_RC_HT_RATEMCS15] - 15 +
-			   r->idx;
-	} else if (r->flags & IEEE80211_TX_RC_VHT_MCS) {
-		/* VHT MCS0-9, NSS */
-		if (ieee80211_rate_get_vht_nss(r) == 2)
-			hw_value = rtlpriv->cfg->maps[RTL_RC_VHT_RATE_2SS_MCS9];
-		else
-			hw_value = rtlpriv->cfg->maps[RTL_RC_VHT_RATE_1SS_MCS9];
-
-		hw_value = hw_value - 9 + ieee80211_rate_get_vht_mcs(r);
-	} else {
-		/* legacy */
-		txrate = ieee80211_get_tx_rate(hw, info);
-
-		if (txrate)
-			hw_value = txrate->hw_value;
-	}
-
-	/* check 5G band */
-	if (rtlpriv->rtlhal.current_bandtype == BAND_ON_5G &&
-	    hw_value < rtlpriv->cfg->maps[RTL_RC_OFDM_RATE6M])
-		hw_value = rtlpriv->cfg->maps[RTL_RC_OFDM_RATE6M];
-
-	return hw_value;
-}
-
-void rtl_get_tcb_desc(struct ieee80211_hw *hw,
-		      struct ieee80211_tx_info *info,
-		      struct ieee80211_sta *sta,
-		      struct sk_buff *skb, struct rtl_tcb_desc *tcb_desc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *rtlmac = rtl_mac(rtl_priv(hw));
-	struct ieee80211_hdr *hdr = rtl_get_hdr(skb);
-	struct rtl_sta_info *sta_entry =
-		(sta ? (struct rtl_sta_info *)sta->drv_priv : NULL);
-
-	__le16 fc = rtl_get_fc(skb);
-
-	tcb_desc->hw_rate = _rtl_get_tx_hw_rate(hw, info);
-
-	if (rtl_is_tx_report_skb(hw, skb))
-		tcb_desc->use_spe_rpt = 1;
-
-	if (!ieee80211_is_data(fc)) {
-		tcb_desc->use_driver_rate = true;
-		tcb_desc->ratr_index = _rtl_rate_id(hw, sta_entry,
-						    RATR_INX_WIRELESS_MC);
-		tcb_desc->disable_ratefallback = 1;
-		tcb_desc->mac_id = 0;
-		tcb_desc->packet_bw = false;
-
-		return;
-	}
-
-	/*
-	 * We set data rate INX 0
-	 * in rtl_rc.c if skb is special data or
-	 * mgt which need low data rate.
-	 */
-
-	/*
-	 * So tcb_desc->hw_rate is just used for
-	 * special data and mgt frames
-	 */
-	if (info->control.rates[0].idx == 0 || ieee80211_is_nullfunc(fc)) {
-		tcb_desc->use_driver_rate = true;
-		tcb_desc->ratr_index = _rtl_rate_id(hw, sta_entry,
-						    RATR_INX_WIRELESS_MC);
-
-		tcb_desc->disable_ratefallback = 1;
-	} else if (sta && sta->vht_cap.vht_supported) {
-		/*
-		 * Because hw will never use hw_rate
-		 * when tcb_desc->use_driver_rate = false
-		 * so we never set highest N rate here,
-		 * and N rate will all be controlled by FW
-		 * when tcb_desc->use_driver_rate = false
-		 */
-		tcb_desc->hw_rate = _rtl_get_vht_highest_n_rate(hw, sta);
-	} else if (sta && sta->ht_cap.ht_supported) {
-		tcb_desc->hw_rate = _rtl_get_highest_n_rate(hw, sta);
-	} else {
-		enum rtl_var_map var = RTL_RC_OFDM_RATE54M;
-
-		if (rtlmac->mode == WIRELESS_MODE_B)
-			var = RTL_RC_CCK_RATE11M;
-
-		tcb_desc->hw_rate = rtlpriv->cfg->maps[var];
-	}
-
-	if (is_multicast_ether_addr(hdr->addr1))
-		tcb_desc->multicast = 1;
-	else if (is_broadcast_ether_addr(hdr->addr1))
-		tcb_desc->broadcast = 1;
-
-	_rtl_txrate_selectmode(hw, sta, tcb_desc);
-	_rtl_query_bandwidth_mode(hw, sta, tcb_desc);
-	_rtl_qurey_shortpreamble_mode(hw, tcb_desc, info);
-	_rtl_query_shortgi(hw, sta, tcb_desc, info);
-	_rtl_query_protection_mode(hw, tcb_desc, info);
-}
-
-bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb)
-{
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	__le16 fc = rtl_get_fc(skb);
-
-	if (rtlpriv->dm.supp_phymode_switch &&
-	    mac->link_state < MAC80211_LINKED &&
-	    (ieee80211_is_auth(fc) || ieee80211_is_probe_req(fc))) {
-		if (rtlpriv->cfg->ops->chk_switch_dmdp)
-			rtlpriv->cfg->ops->chk_switch_dmdp(hw);
-	}
-	if (ieee80211_is_auth(fc)) {
-		RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, "MAC80211_LINKING\n");
-
-		mac->link_state = MAC80211_LINKING;
-		/* Dul mac */
-		rtlpriv->phy.need_iqk = true;
-	}
-	return true;
-}
-
-struct sk_buff *rtl_make_del_ba(struct ieee80211_hw *hw, u8 *sa,
-				u8 *bssid, u16 tid);
-
-static void process_agg_start(struct ieee80211_hw *hw,
-			      struct ieee80211_hdr *hdr, u16 tid)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct ieee80211_rx_status rx_status = { 0 };
-	struct sk_buff *skb_delba = NULL;
-
-	skb_delba = rtl_make_del_ba(hw, hdr->addr2, hdr->addr3, tid);
-	if (skb_delba) {
-		rx_status.freq = hw->conf.chandef.chan->center_freq;
-		rx_status.band = hw->conf.chandef.chan->band;
-		rx_status.flag |= RX_FLAG_DECRYPTED;
-		rx_status.flag |= RX_FLAG_MACTIME_START;
-		rx_status.rate_idx = 0;
-		rx_status.signal = 50 + 10;
-		memcpy(IEEE80211_SKB_RXCB(skb_delba),
-		       &rx_status, sizeof(rx_status));
-		RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG,
-			      "fake del\n",
-			      skb_delba->data,
-			      skb_delba->len);
-		ieee80211_rx_irqsafe(hw, skb_delba);
-	}
-}
-
-bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx)
-{
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct ieee80211_hdr *hdr = rtl_get_hdr(skb);
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	__le16 fc = rtl_get_fc(skb);
-	u8 *act = (u8 *)(((u8 *)skb->data + MAC80211_3ADDR_LEN));
-	u8 category;
-
-	if (!ieee80211_is_action(fc))
-		return true;
-
-	category = *act;
-	act++;
-	switch (category) {
-	case ACT_CAT_BA:
-		switch (*act) {
-		case ACT_ADDBAREQ:
-			if (mac->act_scanning)
-				return false;
-
-			RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
-				 "%s ACT_ADDBAREQ From :%pM\n",
-				 is_tx ? "Tx" : "Rx", hdr->addr2);
-			RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, "req\n",
-				      skb->data, skb->len);
-			if (!is_tx) {
-				struct ieee80211_sta *sta = NULL;
-				struct rtl_sta_info *sta_entry = NULL;
-				struct rtl_tid_data *tid_data;
-				struct ieee80211_mgmt *mgmt = (void *)skb->data;
-				u16 capab = 0, tid = 0;
-
-				rcu_read_lock();
-				sta = rtl_find_sta(hw, hdr->addr3);
-				if (!sta) {
-					RT_TRACE(rtlpriv, COMP_SEND | COMP_RECV,
-						 DBG_DMESG, "sta is NULL\n");
-					rcu_read_unlock();
-					return true;
-				}
-
-				sta_entry =
-					(struct rtl_sta_info *)sta->drv_priv;
-				if (!sta_entry) {
-					rcu_read_unlock();
-					return true;
-				}
-				capab =
-				  le16_to_cpu(mgmt->u.action.u.addba_req.capab);
-				tid = (capab &
-				       IEEE80211_ADDBA_PARAM_TID_MASK) >> 2;
-				if (tid >= MAX_TID_COUNT) {
-					rcu_read_unlock();
-					return true;
-				}
-				tid_data = &sta_entry->tids[tid];
-				if (tid_data->agg.rx_agg_state ==
-				    RTL_RX_AGG_START)
-					process_agg_start(hw, hdr, tid);
-				rcu_read_unlock();
-			}
-			break;
-		case ACT_ADDBARSP:
-			RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
-				 "%s ACT_ADDBARSP From :%pM\n",
-				  is_tx ? "Tx" : "Rx", hdr->addr2);
-			break;
-		case ACT_DELBA:
-			RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
-				 "ACT_ADDBADEL From :%pM\n", hdr->addr2);
-			break;
-		}
-		break;
-	default:
-		break;
-	}
-
-	return true;
-}
-
-static void setup_special_tx(struct rtl_priv *rtlpriv, struct rtl_ps_ctl *ppsc,
-			     int type)
-{
-	struct ieee80211_hw *hw = rtlpriv->hw;
-
-	rtlpriv->ra.is_special_data = true;
-	if (rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->btcoexist.btc_ops->btc_special_packet_notify(rtlpriv,
-								      type);
-	rtl_lps_leave(hw);
-	ppsc->last_delaylps_stamp_jiffies = jiffies;
-}
-
-static const u8 *rtl_skb_ether_type_ptr(struct ieee80211_hw *hw,
-					struct sk_buff *skb, bool is_enc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 mac_hdr_len = ieee80211_get_hdrlen_from_skb(skb);
-	u8 encrypt_header_len = 0;
-	u8 offset;
-
-	switch (rtlpriv->sec.pairwise_enc_algorithm) {
-	case WEP40_ENCRYPTION:
-	case WEP104_ENCRYPTION:
-		encrypt_header_len = 4;/*WEP_IV_LEN*/
-		break;
-	case TKIP_ENCRYPTION:
-		encrypt_header_len = 8;/*TKIP_IV_LEN*/
-		break;
-	case AESCCMP_ENCRYPTION:
-		encrypt_header_len = 8;/*CCMP_HDR_LEN;*/
-		break;
-	default:
-		break;
-	}
-
-	offset = mac_hdr_len + SNAP_SIZE;
-	if (is_enc)
-		offset += encrypt_header_len;
-
-	return skb->data + offset;
-}
-
-/*should call before software enc*/
-u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx,
-		       bool is_enc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	__le16 fc = rtl_get_fc(skb);
-	u16 ether_type;
-	const u8 *ether_type_ptr;
-	const struct iphdr *ip;
-
-	if (!ieee80211_is_data(fc))
-		goto end;
-
-	ether_type_ptr = rtl_skb_ether_type_ptr(hw, skb, is_enc);
-	ether_type = be16_to_cpup((__be16 *)ether_type_ptr);
-
-	if (ether_type == ETH_P_IP) {
-		ip = (struct iphdr *)((u8 *)ether_type_ptr +
-		     PROTOC_TYPE_SIZE);
-		if (ip->protocol == IPPROTO_UDP) {
-			struct udphdr *udp = (struct udphdr *)((u8 *)ip +
-							       (ip->ihl << 2));
-			if (((((u8 *)udp)[1] == 68) &&
-			     (((u8 *)udp)[3] == 67)) ||
-			    ((((u8 *)udp)[1] == 67) &&
-			     (((u8 *)udp)[3] == 68))) {
-				/* 68 : UDP BOOTP client
-				 * 67 : UDP BOOTP server
-				 */
-				RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV),
-					 DBG_DMESG, "dhcp %s !!\n",
-					 (is_tx) ? "Tx" : "Rx");
-
-				if (is_tx)
-					setup_special_tx(rtlpriv, ppsc,
-							 PACKET_DHCP);
-
-				return true;
-			}
-		}
-	} else if (ether_type == ETH_P_ARP) {
-		if (is_tx)
-			setup_special_tx(rtlpriv, ppsc, PACKET_ARP);
-
-		return true;
-	} else if (ether_type == ETH_P_PAE) {
-		/* EAPOL is seen as in-4way */
-		rtlpriv->btcoexist.btc_info.in_4way = true;
-		rtlpriv->btcoexist.btc_info.in_4way_ts = jiffies;
-		rtlpriv->btcoexist.btc_info.in_4way_ts = jiffies;
-
-		RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
-			 "802.1X %s EAPOL pkt!!\n", (is_tx) ? "Tx" : "Rx");
-
-		if (is_tx) {
-			rtlpriv->ra.is_special_data = true;
-			rtl_lps_leave(hw);
-			ppsc->last_delaylps_stamp_jiffies = jiffies;
-
-			setup_special_tx(rtlpriv, ppsc, PACKET_EAPOL);
-		}
-
-		return true;
-	} else if (ether_type == ETH_P_IPV6) {
-		/* TODO: Handle any IPv6 cases that need special handling.
-		 * For now, always return false
-		 */
-		goto end;
-	}
-
-end:
-	rtlpriv->ra.is_special_data = false;
-	return false;
-}
-
-bool rtl_is_tx_report_skb(struct ieee80211_hw *hw, struct sk_buff *skb)
-{
-	u16 ether_type;
-	const u8 *ether_type_ptr;
-
-	ether_type_ptr = rtl_skb_ether_type_ptr(hw, skb, true);
-	ether_type = be16_to_cpup((__be16 *)ether_type_ptr);
-
-	/* EAPOL */
-	if (ether_type == ETH_P_PAE)
-		return true;
-
-	return false;
-}
-
-static u16 rtl_get_tx_report_sn(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_tx_report *tx_report = &rtlpriv->tx_report;
-	u16 sn;
-
-	/*
-	 * SW_DEFINE[11:8] are reserved (driver fills zeros)
-	 * SW_DEFINE[7:2] are used by driver
-	 * SW_DEFINE[1:0] are reserved for firmware (driver fills zeros)
-	 */
-	sn = (atomic_inc_return(&tx_report->sn) & 0x003F) << 2;
-
-	tx_report->last_sent_sn = sn;
-	tx_report->last_sent_time = jiffies;
-
-	RT_TRACE(rtlpriv, COMP_TX_REPORT, DBG_DMESG,
-		 "Send TX-Report sn=0x%X\n", sn);
-
-	return sn;
-}
-
-void rtl_get_tx_report(struct rtl_tcb_desc *ptcb_desc, u8 *pdesc,
-		       struct ieee80211_hw *hw)
-{
-	if (ptcb_desc->use_spe_rpt) {
-		u16 sn = rtl_get_tx_report_sn(hw);
-
-		SET_TX_DESC_SPE_RPT(pdesc, 1);
-		SET_TX_DESC_SW_DEFINE(pdesc, sn);
-	}
-}
-
-void rtl_tx_report_handler(struct ieee80211_hw *hw, u8 *tmp_buf, u8 c2h_cmd_len)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_tx_report *tx_report = &rtlpriv->tx_report;
-	u16 sn;
-	u8 st, retry;
-
-	if (rtlpriv->cfg->spec_ver & RTL_SPEC_NEW_FW_C2H) {
-		sn = tmp_buf[6];
-		st = tmp_buf[7] & 0xC0;
-		retry = tmp_buf[8] & 0x3F;
-	} else {
-		sn = ((tmp_buf[7] & 0x0F) << 8) | tmp_buf[6];
-		st = tmp_buf[0] & 0xC0;
-		retry = tmp_buf[2] & 0x3F;
-	}
-
-	tx_report->last_recv_sn = sn;
-
-	RT_TRACE(rtlpriv, COMP_TX_REPORT, DBG_DMESG,
-		 "Recv TX-Report st=0x%02X sn=0x%X retry=0x%X\n",
-		 st, sn, retry);
-}
-
-bool rtl_check_tx_report_acked(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_tx_report *tx_report = &rtlpriv->tx_report;
-
-	if (tx_report->last_sent_sn == tx_report->last_recv_sn)
-		return true;
-
-	if (time_before(tx_report->last_sent_time + 3 * HZ, jiffies)) {
-		RT_TRACE(rtlpriv, COMP_TX_REPORT, DBG_WARNING,
-			 "Check TX-Report timeout!! s_sn=0x%X r_sn=0x%X\n",
-			 tx_report->last_sent_sn, tx_report->last_recv_sn);
-		return true;	/* 3 sec. (timeout) seen as acked */
-	}
-
-	return false;
-}
-
-void rtl_wait_tx_report_acked(struct ieee80211_hw *hw, u32 wait_ms)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	int i;
-
-	for (i = 0; i < wait_ms; i++) {
-		if (rtl_check_tx_report_acked(hw))
-			break;
-		usleep_range(1000, 2000);
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-			 "Wait 1ms (%d/%d) to disable key.\n", i, wait_ms);
-	}
-}
-
-u32 rtl_get_hal_edca_param(struct ieee80211_hw *hw,
-			   struct ieee80211_vif *vif,
-			   enum wireless_mode wirelessmode,
-			   struct ieee80211_tx_queue_params *param)
-{
-	u32 reg = 0;
-	u8 sifstime = 10;
-	u8 slottime = 20;
-
-	/* AIFS = AIFSN * slot time + SIFS */
-	switch (wirelessmode) {
-	case WIRELESS_MODE_A:
-	case WIRELESS_MODE_N_24G:
-	case WIRELESS_MODE_N_5G:
-	case WIRELESS_MODE_AC_5G:
-	case WIRELESS_MODE_AC_24G:
-		sifstime = 16;
-		slottime = 9;
-		break;
-	case WIRELESS_MODE_G:
-		slottime = (vif->bss_conf.use_short_slot ? 9 : 20);
-		break;
-	default:
-		break;
-	}
-
-	reg |= (param->txop & 0x7FF) << 16;
-	reg |= (fls(param->cw_max) & 0xF) << 12;
-	reg |= (fls(param->cw_min) & 0xF) << 8;
-	reg |= (param->aifs & 0x0F) * slottime + sifstime;
-
-	return reg;
-}
-
-/*********************************************************
- *
- * functions called by core.c
- *
- *********************************************************/
-int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
-		     struct ieee80211_sta *sta, u16 tid, u16 *ssn)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_tid_data *tid_data;
-	struct rtl_sta_info *sta_entry = NULL;
-
-	if (!sta)
-		return -EINVAL;
-
-	if (unlikely(tid >= MAX_TID_COUNT))
-		return -EINVAL;
-
-	sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-	if (!sta_entry)
-		return -ENXIO;
-	tid_data = &sta_entry->tids[tid];
-
-	RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG,
-		 "on ra = %pM tid = %d seq:%d\n", sta->addr, tid,
-		 tid_data->seq_number);
-
-	*ssn = tid_data->seq_number;
-	tid_data->agg.agg_state = RTL_AGG_START;
-
-	ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
-	return 0;
-}
-
-int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
-		    struct ieee80211_sta *sta, u16 tid)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_sta_info *sta_entry = NULL;
-
-	if (!sta)
-		return -EINVAL;
-
-	RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG,
-		 "on ra = %pM tid = %d\n", sta->addr, tid);
-
-	if (unlikely(tid >= MAX_TID_COUNT))
-		return -EINVAL;
-
-	sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-	sta_entry->tids[tid].agg.agg_state = RTL_AGG_STOP;
-
-	ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
-	return 0;
-}
-
-int rtl_rx_agg_start(struct ieee80211_hw *hw,
-		     struct ieee80211_sta *sta, u16 tid)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_tid_data *tid_data;
-	struct rtl_sta_info *sta_entry = NULL;
-	u8 reject_agg;
-
-	if (!sta)
-		return -EINVAL;
-
-	if (unlikely(tid >= MAX_TID_COUNT))
-		return -EINVAL;
-
-	if (rtlpriv->cfg->ops->get_btc_status()) {
-		rtlpriv->btcoexist.btc_ops->btc_get_ampdu_cfg(rtlpriv,
-							      &reject_agg,
-							      NULL, NULL);
-		if (reject_agg)
-			return -EINVAL;
-	}
-
-	sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-	if (!sta_entry)
-		return -ENXIO;
-	tid_data = &sta_entry->tids[tid];
-
-	RT_TRACE(rtlpriv, COMP_RECV, DBG_DMESG,
-		 "on ra = %pM tid = %d seq:%d\n", sta->addr, tid,
-		 tid_data->seq_number);
-
-	tid_data->agg.rx_agg_state = RTL_RX_AGG_START;
-	return 0;
-}
-
-int rtl_rx_agg_stop(struct ieee80211_hw *hw,
-		    struct ieee80211_sta *sta, u16 tid)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_sta_info *sta_entry = NULL;
-
-	if (!sta)
-		return -EINVAL;
-
-	RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG,
-		 "on ra = %pM tid = %d\n", sta->addr, tid);
-
-	if (unlikely(tid >= MAX_TID_COUNT))
-		return -EINVAL;
-
-	sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-	sta_entry->tids[tid].agg.rx_agg_state = RTL_RX_AGG_STOP;
-
-	return 0;
-}
-
-int rtl_tx_agg_oper(struct ieee80211_hw *hw,
-		    struct ieee80211_sta *sta, u16 tid)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_sta_info *sta_entry = NULL;
-
-	if (!sta)
-		return -EINVAL;
-
-	RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG,
-		 "on ra = %pM tid = %d\n", sta->addr, tid);
-
-	if (unlikely(tid >= MAX_TID_COUNT))
-		return -EINVAL;
-
-	sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-	sta_entry->tids[tid].agg.agg_state = RTL_AGG_OPERATIONAL;
-
-	return 0;
-}
-
-void rtl_rx_ampdu_apply(struct rtl_priv *rtlpriv)
-{
-	struct rtl_btc_ops *btc_ops = rtlpriv->btcoexist.btc_ops;
-	u8 reject_agg = 0, ctrl_agg_size = 0, agg_size = 0;
-
-	if (rtlpriv->cfg->ops->get_btc_status())
-		btc_ops->btc_get_ampdu_cfg(rtlpriv, &reject_agg,
-					   &ctrl_agg_size, &agg_size);
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_DMESG,
-		 "Set RX AMPDU: coex - reject=%d, ctrl_agg_size=%d, size=%d",
-		 reject_agg, ctrl_agg_size, agg_size);
-
-	rtlpriv->hw->max_rx_aggregation_subframes =
-		(ctrl_agg_size ? agg_size : IEEE80211_MAX_AMPDU_BUF_HT);
-}
-
-/*********************************************************
- *
- * wq & timer callback functions
- *
- *********************************************************/
-/* this function is used for roaming */
-void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
-
-	if (rtlpriv->mac80211.opmode != NL80211_IFTYPE_STATION)
-		return;
-
-	if (rtlpriv->mac80211.link_state < MAC80211_LINKED)
-		return;
-
-	/* check if this really is a beacon */
-	if (!ieee80211_is_beacon(hdr->frame_control) &&
-	    !ieee80211_is_probe_resp(hdr->frame_control))
-		return;
-
-	/* min. beacon length + FCS_LEN */
-	if (skb->len <= 40 + FCS_LEN)
-		return;
-
-	/* and only beacons from the associated BSSID, please */
-	if (!ether_addr_equal(hdr->addr3, rtlpriv->mac80211.bssid))
-		return;
-
-	rtlpriv->link_info.bcn_rx_inperiod++;
-}
-
-static void rtl_free_entries_from_scan_list(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_bssid_entry *entry, *next;
-
-	list_for_each_entry_safe(entry, next, &rtlpriv->scan_list.list, list) {
-		list_del(&entry->list);
-		kfree(entry);
-		rtlpriv->scan_list.num--;
-	}
-}
-
-void rtl_scan_list_expire(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_bssid_entry *entry, *next;
-	unsigned long flags;
-
-	spin_lock_irqsave(&rtlpriv->locks.scan_list_lock, flags);
-
-	list_for_each_entry_safe(entry, next, &rtlpriv->scan_list.list, list) {
-		/* 180 seconds */
-		if (jiffies_to_msecs(jiffies - entry->age) < 180000)
-			continue;
-
-		list_del(&entry->list);
-		rtlpriv->scan_list.num--;
-
-		RT_TRACE(rtlpriv, COMP_SCAN, DBG_LOUD,
-			 "BSSID=%pM is expire in scan list (total=%d)\n",
-			 entry->bssid, rtlpriv->scan_list.num);
-		kfree(entry);
-	}
-
-	spin_unlock_irqrestore(&rtlpriv->locks.scan_list_lock, flags);
-
-	rtlpriv->btcoexist.btc_info.ap_num = rtlpriv->scan_list.num;
-}
-
-void rtl_collect_scan_list(struct ieee80211_hw *hw, struct sk_buff *skb)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	unsigned long flags;
-
-	struct rtl_bssid_entry *entry;
-	bool entry_found = false;
-
-	/* check if it is scanning */
-	if (!mac->act_scanning)
-		return;
-
-	/* check if this really is a beacon */
-	if (!ieee80211_is_beacon(hdr->frame_control) &&
-	    !ieee80211_is_probe_resp(hdr->frame_control))
-		return;
-
-	spin_lock_irqsave(&rtlpriv->locks.scan_list_lock, flags);
-
-	list_for_each_entry(entry, &rtlpriv->scan_list.list, list) {
-		if (memcmp(entry->bssid, hdr->addr3, ETH_ALEN) == 0) {
-			list_del_init(&entry->list);
-			entry_found = true;
-			RT_TRACE(rtlpriv, COMP_SCAN, DBG_LOUD,
-				 "Update BSSID=%pM to scan list (total=%d)\n",
-				 hdr->addr3, rtlpriv->scan_list.num);
-			break;
-		}
-	}
-
-	if (!entry_found) {
-		entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
-
-		if (!entry)
-			goto label_err;
-
-		memcpy(entry->bssid, hdr->addr3, ETH_ALEN);
-		rtlpriv->scan_list.num++;
-
-		RT_TRACE(rtlpriv, COMP_SCAN, DBG_LOUD,
-			 "Add BSSID=%pM to scan list (total=%d)\n",
-			 hdr->addr3, rtlpriv->scan_list.num);
-	}
-
-	entry->age = jiffies;
-
-	list_add_tail(&entry->list, &rtlpriv->scan_list.list);
-
-label_err:
-	spin_unlock_irqrestore(&rtlpriv->locks.scan_list_lock, flags);
-}
-
-void rtl_watchdog_wq_callback(void *data)
-{
-	struct rtl_works *rtlworks = container_of_dwork_rtl(data,
-							    struct rtl_works,
-							    watchdog_wq);
-	struct ieee80211_hw *hw = rtlworks->hw;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	bool busytraffic = false;
-	bool tx_busy_traffic = false;
-	bool rx_busy_traffic = false;
-	bool higher_busytraffic = false;
-	bool higher_busyrxtraffic = false;
-	u8 idx, tid;
-	u32 rx_cnt_inp4eriod = 0;
-	u32 tx_cnt_inp4eriod = 0;
-	u32 aver_rx_cnt_inperiod = 0;
-	u32 aver_tx_cnt_inperiod = 0;
-	u32 aver_tidtx_inperiod[MAX_TID_COUNT] = {0};
-	u32 tidtx_inp4eriod[MAX_TID_COUNT] = {0};
-
-	if (is_hal_stop(rtlhal))
-		return;
-
-	/* <1> Determine if action frame is allowed */
-	if (mac->link_state > MAC80211_NOLINK) {
-		if (mac->cnt_after_linked < 20)
-			mac->cnt_after_linked++;
-	} else {
-		mac->cnt_after_linked = 0;
-	}
-
-	/* <2> to check if traffic busy, if
-	 * busytraffic we don't change channel
-	 */
-	if (mac->link_state >= MAC80211_LINKED) {
-		/* (1) get aver_rx_cnt_inperiod & aver_tx_cnt_inperiod */
-		for (idx = 0; idx <= 2; idx++) {
-			rtlpriv->link_info.num_rx_in4period[idx] =
-			    rtlpriv->link_info.num_rx_in4period[idx + 1];
-			rtlpriv->link_info.num_tx_in4period[idx] =
-			    rtlpriv->link_info.num_tx_in4period[idx + 1];
-		}
-		rtlpriv->link_info.num_rx_in4period[3] =
-		    rtlpriv->link_info.num_rx_inperiod;
-		rtlpriv->link_info.num_tx_in4period[3] =
-		    rtlpriv->link_info.num_tx_inperiod;
-		for (idx = 0; idx <= 3; idx++) {
-			rx_cnt_inp4eriod +=
-			    rtlpriv->link_info.num_rx_in4period[idx];
-			tx_cnt_inp4eriod +=
-			    rtlpriv->link_info.num_tx_in4period[idx];
-		}
-		aver_rx_cnt_inperiod = rx_cnt_inp4eriod / 4;
-		aver_tx_cnt_inperiod = tx_cnt_inp4eriod / 4;
-
-		/* (2) check traffic busy */
-		if (aver_rx_cnt_inperiod > 100 || aver_tx_cnt_inperiod > 100) {
-			busytraffic = true;
-			if (aver_rx_cnt_inperiod > aver_tx_cnt_inperiod)
-				rx_busy_traffic = true;
-			else
-				tx_busy_traffic = false;
-		}
-
-		/* Higher Tx/Rx data. */
-		if (aver_rx_cnt_inperiod > 4000 ||
-		    aver_tx_cnt_inperiod > 4000) {
-			higher_busytraffic = true;
-
-			/* Extremely high Rx data. */
-			if (aver_rx_cnt_inperiod > 5000)
-				higher_busyrxtraffic = true;
-		}
-
-		/* check every tid's tx traffic */
-		for (tid = 0; tid <= 7; tid++) {
-			for (idx = 0; idx <= 2; idx++)
-				rtlpriv->link_info.tidtx_in4period[tid][idx] =
-					rtlpriv->link_info.tidtx_in4period[tid]
-					[idx + 1];
-			rtlpriv->link_info.tidtx_in4period[tid][3] =
-				rtlpriv->link_info.tidtx_inperiod[tid];
-
-			for (idx = 0; idx <= 3; idx++)
-				tidtx_inp4eriod[tid] +=
-				   rtlpriv->link_info.tidtx_in4period[tid][idx];
-			aver_tidtx_inperiod[tid] = tidtx_inp4eriod[tid] / 4;
-			if (aver_tidtx_inperiod[tid] > 5000)
-				rtlpriv->link_info.higher_busytxtraffic[tid] =
-									true;
-			else
-				rtlpriv->link_info.higher_busytxtraffic[tid] =
-									false;
-		}
-
-		/* PS is controlled by coex. */
-		if (rtlpriv->cfg->ops->get_btc_status() &&
-		    rtlpriv->btcoexist.btc_ops->btc_is_bt_ctrl_lps(rtlpriv))
-			goto label_lps_done;
-
-		if (rtlpriv->link_info.num_rx_inperiod +
-		      rtlpriv->link_info.num_tx_inperiod > 8 ||
-		    rtlpriv->link_info.num_rx_inperiod > 2)
-			rtl_lps_leave(hw);
-		else
-			rtl_lps_enter(hw);
-
-label_lps_done:
-		;
-	}
-
-	rtlpriv->link_info.num_rx_inperiod = 0;
-	rtlpriv->link_info.num_tx_inperiod = 0;
-	for (tid = 0; tid <= 7; tid++)
-		rtlpriv->link_info.tidtx_inperiod[tid] = 0;
-
-	rtlpriv->link_info.busytraffic = busytraffic;
-	rtlpriv->link_info.higher_busytraffic = higher_busytraffic;
-	rtlpriv->link_info.rx_busy_traffic = rx_busy_traffic;
-	rtlpriv->link_info.tx_busy_traffic = tx_busy_traffic;
-	rtlpriv->link_info.higher_busyrxtraffic = higher_busyrxtraffic;
-
-	rtlpriv->stats.txbytesunicast_inperiod =
-		rtlpriv->stats.txbytesunicast -
-		rtlpriv->stats.txbytesunicast_last;
-	rtlpriv->stats.rxbytesunicast_inperiod =
-		rtlpriv->stats.rxbytesunicast -
-		rtlpriv->stats.rxbytesunicast_last;
-	rtlpriv->stats.txbytesunicast_last = rtlpriv->stats.txbytesunicast;
-	rtlpriv->stats.rxbytesunicast_last = rtlpriv->stats.rxbytesunicast;
-
-	rtlpriv->stats.txbytesunicast_inperiod_tp =
-		(u32)(rtlpriv->stats.txbytesunicast_inperiod * 8 / 2 /
-		1024 / 1024);
-	rtlpriv->stats.rxbytesunicast_inperiod_tp =
-		(u32)(rtlpriv->stats.rxbytesunicast_inperiod * 8 / 2 /
-		1024 / 1024);
-
-	/* <3> DM */
-	if (!rtlpriv->cfg->mod_params->disable_watchdog)
-		rtlpriv->cfg->ops->dm_watchdog(hw);
-
-	/* <4> roaming */
-	if (mac->link_state == MAC80211_LINKED &&
-	    mac->opmode == NL80211_IFTYPE_STATION) {
-		if ((rtlpriv->link_info.bcn_rx_inperiod +
-		    rtlpriv->link_info.num_rx_inperiod) == 0) {
-			rtlpriv->link_info.roam_times++;
-			RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
-				 "AP off for %d s\n",
-				(rtlpriv->link_info.roam_times * 2));
-
-			/* if we can't recv beacon for 10s,
-			 * we should reconnect this AP
-			 */
-			if (rtlpriv->link_info.roam_times >= 5) {
-				pr_err("AP off, try to reconnect now\n");
-				rtlpriv->link_info.roam_times = 0;
-				ieee80211_connection_loss(rtlpriv->mac80211.vif);
-			}
-		} else {
-			rtlpriv->link_info.roam_times = 0;
-		}
-	}
-
-	if (rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->btcoexist.btc_ops->btc_periodical(rtlpriv);
-
-	if (rtlpriv->btcoexist.btc_info.in_4way) {
-		if (time_after(jiffies, rtlpriv->btcoexist.btc_info.in_4way_ts +
-			       msecs_to_jiffies(IN_4WAY_TIMEOUT_TIME)))
-			rtlpriv->btcoexist.btc_info.in_4way = false;
-	}
-
-	rtlpriv->link_info.bcn_rx_inperiod = 0;
-
-	/* <6> scan list */
-	rtl_scan_list_expire(hw);
-}
-
-void rtl_watch_dog_timer_callback(struct timer_list *t)
-{
-	struct rtl_priv *rtlpriv = from_timer(rtlpriv, t, works.watchdog_timer);
-
-	queue_delayed_work(rtlpriv->works.rtl_wq,
-			   &rtlpriv->works.watchdog_wq, 0);
-
-	mod_timer(&rtlpriv->works.watchdog_timer,
-		  jiffies + MSECS(RTL_WATCH_DOG_TIME));
-}
-
-void rtl_fwevt_wq_callback(void *data)
-{
-	struct rtl_works *rtlworks =
-		container_of_dwork_rtl(data, struct rtl_works, fwevt_wq);
-	struct ieee80211_hw *hw = rtlworks->hw;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtlpriv->cfg->ops->c2h_command_handle(hw);
-}
-
-void rtl_c2hcmd_enqueue(struct ieee80211_hw *hw, u8 tag, u8 len, u8 *val)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	unsigned long flags;
-	struct rtl_c2hcmd *c2hcmd;
-
-	c2hcmd = kmalloc(sizeof(*c2hcmd),
-			 in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
-
-	if (!c2hcmd)
-		goto label_err;
-
-	c2hcmd->val = kmalloc(len,
-			      in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
-
-	if (!c2hcmd->val)
-		goto label_err2;
-
-	/* fill data */
-	c2hcmd->tag = tag;
-	c2hcmd->len = len;
-	memcpy(c2hcmd->val, val, len);
-
-	/* enqueue */
-	spin_lock_irqsave(&rtlpriv->locks.c2hcmd_lock, flags);
-
-	list_add_tail(&c2hcmd->list, &rtlpriv->c2hcmd_list);
-
-	spin_unlock_irqrestore(&rtlpriv->locks.c2hcmd_lock, flags);
-
-	/* wake up wq */
-	queue_delayed_work(rtlpriv->works.rtl_wq, &rtlpriv->works.c2hcmd_wq, 0);
-
-	return;
-
-label_err2:
-	kfree(c2hcmd);
-
-label_err:
-	RT_TRACE(rtlpriv, COMP_CMD, DBG_WARNING,
-		 "C2H cmd enqueue fail.\n");
-}
-
-void rtl_c2hcmd_launcher(struct ieee80211_hw *hw, int exec)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	unsigned long flags;
-	struct rtl_c2hcmd *c2hcmd;
-	int i;
-
-	for (i = 0; i < 200; i++) {
-		/* dequeue a task */
-		spin_lock_irqsave(&rtlpriv->locks.c2hcmd_lock, flags);
-
-		c2hcmd = list_first_entry_or_null(&rtlpriv->c2hcmd_list,
-						  struct rtl_c2hcmd, list);
-
-		if (c2hcmd)
-			list_del(&c2hcmd->list);
-
-		spin_unlock_irqrestore(&rtlpriv->locks.c2hcmd_lock, flags);
-
-		/* do it */
-		if (!c2hcmd)
-			break;
-
-		if (rtlpriv->cfg->ops->c2h_content_parsing && exec)
-			rtlpriv->cfg->ops->c2h_content_parsing(hw,
-					c2hcmd->tag, c2hcmd->len, c2hcmd->val);
-
-		/* free */
-		kfree(c2hcmd->val);
-
-		kfree(c2hcmd);
-	}
-}
-
-void rtl_c2hcmd_wq_callback(void *data)
-{
-	struct rtl_works *rtlworks = container_of_dwork_rtl(data,
-							    struct rtl_works,
-							    c2hcmd_wq);
-	struct ieee80211_hw *hw = rtlworks->hw;
-
-	rtl_c2hcmd_launcher(hw, 1);
-}
-
-void rtl_easy_concurrent_retrytimer_callback(struct timer_list *t)
-{
-	struct rtl_priv *rtlpriv =
-		from_timer(rtlpriv, t, works.dualmac_easyconcurrent_retrytimer);
-	struct ieee80211_hw *hw = rtlpriv->hw;
-	struct rtl_priv *buddy_priv = rtlpriv->buddy_priv;
-
-	if (!buddy_priv)
-		return;
-
-	rtlpriv->cfg->ops->dualmac_easy_concurrent(hw);
-}
-
-/*********************************************************
- *
- * frame process functions
- *
- *********************************************************/
-u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie)
-{
-	struct ieee80211_mgmt *mgmt = (void *)data;
-	u8 *pos, *end;
-
-	pos = (u8 *)mgmt->u.beacon.variable;
-	end = data + len;
-	while (pos < end) {
-		if (pos + 2 + pos[1] > end)
-			return NULL;
-
-		if (pos[0] == ie)
-			return pos;
-
-		pos += 2 + pos[1];
-	}
-	return NULL;
-}
-
-/* when we use 2 rx ants we send IEEE80211_SMPS_OFF */
-/* when we use 1 rx ant we send IEEE80211_SMPS_STATIC */
-static struct sk_buff *rtl_make_smps_action(struct ieee80211_hw *hw,
-					    enum ieee80211_smps_mode smps,
-					    u8 *da, u8 *bssid)
-{
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	struct sk_buff *skb;
-	struct ieee80211_mgmt *action_frame;
-
-	/* 27 = header + category + action + smps mode */
-	skb = dev_alloc_skb(27 + hw->extra_tx_headroom);
-	if (!skb)
-		return NULL;
-
-	skb_reserve(skb, hw->extra_tx_headroom);
-	action_frame = skb_put_zero(skb, 27);
-	memcpy(action_frame->da, da, ETH_ALEN);
-	memcpy(action_frame->sa, rtlefuse->dev_addr, ETH_ALEN);
-	memcpy(action_frame->bssid, bssid, ETH_ALEN);
-	action_frame->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
-						  IEEE80211_STYPE_ACTION);
-	action_frame->u.action.category = WLAN_CATEGORY_HT;
-	action_frame->u.action.u.ht_smps.action = WLAN_HT_ACTION_SMPS;
-	switch (smps) {
-	case IEEE80211_SMPS_AUTOMATIC:/* 0 */
-	case IEEE80211_SMPS_NUM_MODES:/* 4 */
-		WARN_ON(1);
-	/* fall through */
-	case IEEE80211_SMPS_OFF:/* 1 */ /*MIMO_PS_NOLIMIT*/
-		action_frame->u.action.u.ht_smps.smps_control =
-				WLAN_HT_SMPS_CONTROL_DISABLED;/* 0 */
-		break;
-	case IEEE80211_SMPS_STATIC:/* 2 */ /*MIMO_PS_STATIC*/
-		action_frame->u.action.u.ht_smps.smps_control =
-				WLAN_HT_SMPS_CONTROL_STATIC;/* 1 */
-		break;
-	case IEEE80211_SMPS_DYNAMIC:/* 3 */ /*MIMO_PS_DYNAMIC*/
-		action_frame->u.action.u.ht_smps.smps_control =
-				WLAN_HT_SMPS_CONTROL_DYNAMIC;/* 3 */
-		break;
-	}
-
-	return skb;
-}
-
-int rtl_send_smps_action(struct ieee80211_hw *hw,
-			 struct ieee80211_sta *sta,
-			 enum ieee80211_smps_mode smps)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct sk_buff *skb = NULL;
-	struct rtl_tcb_desc tcb_desc;
-	u8 bssid[ETH_ALEN] = {0};
-
-	memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc));
-
-	if (rtlpriv->mac80211.act_scanning)
-		goto err_free;
-
-	if (!sta)
-		goto err_free;
-
-	if (unlikely(is_hal_stop(rtlhal) || ppsc->rfpwr_state != ERFON))
-		goto err_free;
-
-	if (!test_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status))
-		goto err_free;
-
-	if (rtlpriv->mac80211.opmode == NL80211_IFTYPE_AP)
-		memcpy(bssid, rtlpriv->efuse.dev_addr, ETH_ALEN);
-	else
-		memcpy(bssid, rtlpriv->mac80211.bssid, ETH_ALEN);
-
-	skb = rtl_make_smps_action(hw, smps, sta->addr, bssid);
-	/* this is a type = mgmt * stype = action frame */
-	if (skb) {
-		struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
-		struct rtl_sta_info *sta_entry =
-			(struct rtl_sta_info *)sta->drv_priv;
-		sta_entry->mimo_ps = smps;
-		/* rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0, true); */
-
-		info->control.rates[0].idx = 0;
-		info->band = hw->conf.chandef.chan->band;
-		rtlpriv->intf_ops->adapter_tx(hw, sta, skb, &tcb_desc);
-	}
-	return 1;
-
-err_free:
-	return 0;
-}
-
-void rtl_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	enum io_type iotype;
-
-	if (!is_hal_stop(rtlhal)) {
-		switch (operation) {
-		case SCAN_OPT_BACKUP:
-			iotype = IO_CMD_PAUSE_DM_BY_SCAN;
-			rtlpriv->cfg->ops->set_hw_reg(hw,
-						      HW_VAR_IO_CMD,
-						      (u8 *)&iotype);
-			break;
-		case SCAN_OPT_RESTORE:
-			iotype = IO_CMD_RESUME_DM_BY_SCAN;
-			rtlpriv->cfg->ops->set_hw_reg(hw,
-						      HW_VAR_IO_CMD,
-						      (u8 *)&iotype);
-			break;
-		default:
-			pr_err("Unknown Scan Backup operation.\n");
-			break;
-		}
-	}
-}
-
-/* because mac80211 have issues when can receive del ba
- * so here we just make a fake del_ba if we receive a ba_req
- * but rx_agg was opened to let mac80211 release some ba
- * related resources, so please this del_ba for tx
- */
-struct sk_buff *rtl_make_del_ba(struct ieee80211_hw *hw,
-				u8 *sa, u8 *bssid, u16 tid)
-{
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	struct sk_buff *skb;
-	struct ieee80211_mgmt *action_frame;
-	u16 params;
-
-	/* 27 = header + category + action + smps mode */
-	skb = dev_alloc_skb(34 + hw->extra_tx_headroom);
-	if (!skb)
-		return NULL;
-
-	skb_reserve(skb, hw->extra_tx_headroom);
-	action_frame = skb_put_zero(skb, 34);
-	memcpy(action_frame->sa, sa, ETH_ALEN);
-	memcpy(action_frame->da, rtlefuse->dev_addr, ETH_ALEN);
-	memcpy(action_frame->bssid, bssid, ETH_ALEN);
-	action_frame->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
-						  IEEE80211_STYPE_ACTION);
-	action_frame->u.action.category = WLAN_CATEGORY_BACK;
-	action_frame->u.action.u.delba.action_code = WLAN_ACTION_DELBA;
-	params = BIT(11);		/* bit 11 initiator */
-	params |= (u16)(tid << 12);	/* bit 15:12 TID number */
-
-	action_frame->u.action.u.delba.params = cpu_to_le16(params);
-	action_frame->u.action.u.delba.reason_code =
-		cpu_to_le16(WLAN_REASON_QSTA_TIMEOUT);
-
-	return skb;
-}
-
-bool rtl_check_beacon_key(struct ieee80211_hw *hw, void *data, unsigned int len)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct ieee80211_hdr *hdr = data;
-	struct ieee80211_ht_cap *ht_cap_ie;
-	struct ieee80211_ht_operation *ht_oper_ie = NULL;
-	struct rtl_beacon_keys bcn_key = {};
-	struct rtl_beacon_keys *cur_bcn_key;
-	u8 *ht_cap;
-	u8 *ht_oper;
-	u8 *ds_param;
-
-	if (mac->opmode != NL80211_IFTYPE_STATION)
-		return false;
-
-	/* check if this really is a beacon*/
-	if (!ieee80211_is_beacon(hdr->frame_control))
-		return false;
-
-	/* min. beacon length + FCS_LEN */
-	if (len <= 40 + FCS_LEN)
-		return false;
-
-	cur_bcn_key = &mac->cur_beacon_keys;
-
-	if (rtlpriv->mac80211.link_state == MAC80211_NOLINK) {
-		if (cur_bcn_key->valid) {
-			cur_bcn_key->valid = false;
-			RT_TRACE(rtlpriv, COMP_BEACON, DBG_LOUD,
-				 "Reset cur_beacon_keys.valid to false!\n");
-		}
-		return false;
-	}
-
-	/* and only beacons from the associated BSSID, please */
-	if (!ether_addr_equal(hdr->addr3, rtlpriv->mac80211.bssid))
-		return false;
-
-	/***** Parsing DS Param IE ******/
-	ds_param = rtl_find_ie(data, len - FCS_LEN, WLAN_EID_DS_PARAMS);
-
-	if (ds_param && !(ds_param[1] < sizeof(*ds_param)))
-		bcn_key.bcn_channel = ds_param[2];
-	else
-		ds_param = NULL;
-
-	/***** Parsing HT Cap. IE ******/
-	ht_cap = rtl_find_ie(data, len - FCS_LEN, WLAN_EID_HT_CAPABILITY);
-
-	if (ht_cap && !(ht_cap[1] < sizeof(*ht_cap))) {
-		ht_cap_ie = (struct ieee80211_ht_cap *)&ht_cap[2];
-		bcn_key.ht_cap_info = ht_cap_ie->cap_info;
-	} else  {
-		ht_cap = NULL;
-	}
-
-	/***** Parsing HT Info. IE ******/
-	ht_oper = rtl_find_ie(data, len - FCS_LEN, WLAN_EID_HT_OPERATION);
-
-	if (ht_oper && !(ht_oper[1] < sizeof(*ht_oper)))
-		ht_oper_ie = (struct ieee80211_ht_operation *)&ht_oper[2];
-	else
-		ht_oper = NULL;
-
-	/* update bcn_key */
-
-	if (!ds_param && ht_oper && ht_oper_ie)
-		bcn_key.bcn_channel = ht_oper_ie->primary_chan;
-
-	if (ht_oper && ht_oper_ie)
-		bcn_key.ht_info_infos_0_sco = ht_oper_ie->ht_param & 0x03;
-
-	bcn_key.valid = true;
-
-	/* update cur_beacon_keys or compare beacon key */
-	if (rtlpriv->mac80211.link_state != MAC80211_LINKED &&
-	    rtlpriv->mac80211.link_state != MAC80211_LINKED_SCANNING)
-		return true;
-
-	if (!cur_bcn_key->valid) {
-		/* update cur_beacon_keys */
-		memcpy(cur_bcn_key, &bcn_key, sizeof(bcn_key));
-		cur_bcn_key->valid = true;
-
-		RT_TRACE(rtlpriv, COMP_BEACON, DBG_LOUD,
-			 "Beacon key update!ch=%d, ht_cap_info=0x%x, sco=0x%x\n",
-			 cur_bcn_key->bcn_channel,
-			 cur_bcn_key->ht_cap_info,
-			 cur_bcn_key->ht_info_infos_0_sco);
-		return true;
-	}
-
-	/* compare beacon key */
-	if (!memcmp(cur_bcn_key, &bcn_key, sizeof(bcn_key))) {
-		/* same beacon key */
-		mac->new_beacon_cnt = 0;
-		goto chk_exit;
-	}
-
-	if (cur_bcn_key->bcn_channel == bcn_key.bcn_channel &&
-	    cur_bcn_key->ht_cap_info == bcn_key.ht_cap_info) {
-		/* Beacon HT info IE, secondary channel offset check */
-		/* 40M -> 20M */
-		if (cur_bcn_key->ht_info_infos_0_sco >
-		    bcn_key.ht_info_infos_0_sco) {
-			/* Not a new beacon */
-			RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-				 "Beacon BW change! sco:0x%x -> 0x%x\n",
-				 cur_bcn_key->ht_info_infos_0_sco,
-				 bcn_key.ht_info_infos_0_sco);
-
-			cur_bcn_key->ht_info_infos_0_sco =
-					bcn_key.ht_info_infos_0_sco;
-		} else {
-			/* 20M -> 40M */
-			if (rtlphy->max_ht_chan_bw >= HT_CHANNEL_WIDTH_20_40) {
-				/* Not a new beacon */
-				RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-					 "Beacon BW change! sco:0x%x -> 0x%x\n",
-					 cur_bcn_key->ht_info_infos_0_sco,
-					 bcn_key.ht_info_infos_0_sco);
-
-				cur_bcn_key->ht_info_infos_0_sco =
-					bcn_key.ht_info_infos_0_sco;
-			} else {
-				mac->new_beacon_cnt++;
-			}
-		}
-	} else {
-		mac->new_beacon_cnt++;
-	}
-
-	if (mac->new_beacon_cnt == 1) {
-		RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-			 "Get new beacon.\n");
-		RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-			 "Cur : ch=%d, ht_cap=0x%x, sco=0x%x\n",
-			 cur_bcn_key->bcn_channel,
-			 cur_bcn_key->ht_cap_info,
-			 cur_bcn_key->ht_info_infos_0_sco);
-		RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-			 "New RX : ch=%d, ht_cap=0x%x, sco=0x%x\n",
-			 bcn_key.bcn_channel,
-			 bcn_key.ht_cap_info,
-			 bcn_key.ht_info_infos_0_sco);
-
-	} else if (mac->new_beacon_cnt > 1) {
-		RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-			 "new beacon cnt: %d\n",
-			 mac->new_beacon_cnt);
-	}
-
-	if (mac->new_beacon_cnt > 3) {
-		ieee80211_connection_loss(rtlpriv->mac80211.vif);
-		RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-			 "new beacon cnt >3, disconnect !\n");
-	}
-
-chk_exit:
-
-	return true;
-}
-
-/*********************************************************
- *
- * IOT functions
- *
- *********************************************************/
-static bool rtl_chk_vendor_ouisub(struct ieee80211_hw *hw,
-				  struct octet_string vendor_ie)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	bool matched = false;
-	static u8 athcap_1[] = { 0x00, 0x03, 0x7F };
-	static u8 athcap_2[] = { 0x00, 0x13, 0x74 };
-	static u8 broadcap_1[] = { 0x00, 0x10, 0x18 };
-	static u8 broadcap_2[] = { 0x00, 0x0a, 0xf7 };
-	static u8 broadcap_3[] = { 0x00, 0x05, 0xb5 };
-	static u8 racap[] = { 0x00, 0x0c, 0x43 };
-	static u8 ciscocap[] = { 0x00, 0x40, 0x96 };
-	static u8 marvcap[] = { 0x00, 0x50, 0x43 };
-
-	if (memcmp(vendor_ie.octet, athcap_1, 3) == 0 ||
-	    memcmp(vendor_ie.octet, athcap_2, 3) == 0) {
-		rtlpriv->mac80211.vendor = PEER_ATH;
-		matched = true;
-	} else if (memcmp(vendor_ie.octet, broadcap_1, 3) == 0 ||
-		   memcmp(vendor_ie.octet, broadcap_2, 3) == 0 ||
-		   memcmp(vendor_ie.octet, broadcap_3, 3) == 0) {
-		rtlpriv->mac80211.vendor = PEER_BROAD;
-		matched = true;
-	} else if (memcmp(vendor_ie.octet, racap, 3) == 0) {
-		rtlpriv->mac80211.vendor = PEER_RAL;
-		matched = true;
-	} else if (memcmp(vendor_ie.octet, ciscocap, 3) == 0) {
-		rtlpriv->mac80211.vendor = PEER_CISCO;
-		matched = true;
-	} else if (memcmp(vendor_ie.octet, marvcap, 3) == 0) {
-		rtlpriv->mac80211.vendor = PEER_MARV;
-		matched = true;
-	}
-
-	return matched;
-}
-
-static bool rtl_find_221_ie(struct ieee80211_hw *hw, u8 *data,
-			    unsigned int len)
-{
-	struct ieee80211_mgmt *mgmt = (void *)data;
-	struct octet_string vendor_ie;
-	u8 *pos, *end;
-
-	pos = (u8 *)mgmt->u.beacon.variable;
-	end = data + len;
-	while (pos < end) {
-		if (pos[0] == 221) {
-			vendor_ie.length = pos[1];
-			vendor_ie.octet = &pos[2];
-			if (rtl_chk_vendor_ouisub(hw, vendor_ie))
-				return true;
-		}
-
-		if (pos + 2 + pos[1] > end)
-			return false;
-
-		pos += 2 + pos[1];
-	}
-	return false;
-}
-
-void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct ieee80211_hdr *hdr = (void *)data;
-	u32 vendor = PEER_UNKNOWN;
-
-	static u8 ap3_1[3] = { 0x00, 0x14, 0xbf };
-	static u8 ap3_2[3] = { 0x00, 0x1a, 0x70 };
-	static u8 ap3_3[3] = { 0x00, 0x1d, 0x7e };
-	static u8 ap4_1[3] = { 0x00, 0x90, 0xcc };
-	static u8 ap4_2[3] = { 0x00, 0x0e, 0x2e };
-	static u8 ap4_3[3] = { 0x00, 0x18, 0x02 };
-	static u8 ap4_4[3] = { 0x00, 0x17, 0x3f };
-	static u8 ap4_5[3] = { 0x00, 0x1c, 0xdf };
-	static u8 ap5_1[3] = { 0x00, 0x1c, 0xf0 };
-	static u8 ap5_2[3] = { 0x00, 0x21, 0x91 };
-	static u8 ap5_3[3] = { 0x00, 0x24, 0x01 };
-	static u8 ap5_4[3] = { 0x00, 0x15, 0xe9 };
-	static u8 ap5_5[3] = { 0x00, 0x17, 0x9A };
-	static u8 ap5_6[3] = { 0x00, 0x18, 0xE7 };
-	static u8 ap6_1[3] = { 0x00, 0x17, 0x94 };
-	static u8 ap7_1[3] = { 0x00, 0x14, 0xa4 };
-
-	if (mac->opmode != NL80211_IFTYPE_STATION)
-		return;
-
-	if (mac->link_state == MAC80211_NOLINK) {
-		mac->vendor = PEER_UNKNOWN;
-		return;
-	}
-
-	if (mac->cnt_after_linked > 2)
-		return;
-
-	/* check if this really is a beacon */
-	if (!ieee80211_is_beacon(hdr->frame_control))
-		return;
-
-	/* min. beacon length + FCS_LEN */
-	if (len <= 40 + FCS_LEN)
-		return;
-
-	/* and only beacons from the associated BSSID, please */
-	if (!ether_addr_equal_64bits(hdr->addr3, rtlpriv->mac80211.bssid))
-		return;
-
-	if (rtl_find_221_ie(hw, data, len))
-		vendor = mac->vendor;
-
-	if ((memcmp(mac->bssid, ap5_1, 3) == 0) ||
-	    (memcmp(mac->bssid, ap5_2, 3) == 0) ||
-	    (memcmp(mac->bssid, ap5_3, 3) == 0) ||
-	    (memcmp(mac->bssid, ap5_4, 3) == 0) ||
-	    (memcmp(mac->bssid, ap5_5, 3) == 0) ||
-	    (memcmp(mac->bssid, ap5_6, 3) == 0) ||
-	    vendor == PEER_ATH) {
-		vendor = PEER_ATH;
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>ath find\n");
-	} else if ((memcmp(mac->bssid, ap4_4, 3) == 0) ||
-		(memcmp(mac->bssid, ap4_5, 3) == 0) ||
-		(memcmp(mac->bssid, ap4_1, 3) == 0) ||
-		(memcmp(mac->bssid, ap4_2, 3) == 0) ||
-		(memcmp(mac->bssid, ap4_3, 3) == 0) ||
-		vendor == PEER_RAL) {
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>ral find\n");
-		vendor = PEER_RAL;
-	} else if (memcmp(mac->bssid, ap6_1, 3) == 0 ||
-		vendor == PEER_CISCO) {
-		vendor = PEER_CISCO;
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>cisco find\n");
-	} else if ((memcmp(mac->bssid, ap3_1, 3) == 0) ||
-		(memcmp(mac->bssid, ap3_2, 3) == 0) ||
-		(memcmp(mac->bssid, ap3_3, 3) == 0) ||
-		vendor == PEER_BROAD) {
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>broad find\n");
-		vendor = PEER_BROAD;
-	} else if (memcmp(mac->bssid, ap7_1, 3) == 0 ||
-		vendor == PEER_MARV) {
-		vendor = PEER_MARV;
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>marv find\n");
-	}
-
-	mac->vendor = vendor;
-}
-
-MODULE_AUTHOR("lizhaoming	<chaoming_li@realsil.com.cn>");
-MODULE_AUTHOR("Realtek WlanFAE	<wlanfae@realtek.com>");
-MODULE_AUTHOR("Larry Finger	<Larry.FInger@lwfinger.net>");
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Realtek 802.11n PCI wireless core");
-
-struct rtl_global_var rtl_global_var = {};
-
-int rtl_core_module_init(void)
-{
-	if (rtl_rate_control_register())
-		pr_err("rtl: Unable to register rtl_rc, use default RC !!\n");
-
-	/* add debugfs */
-	rtl_debugfs_add_topdir();
-
-	/* init some global vars */
-	INIT_LIST_HEAD(&rtl_global_var.glb_priv_list);
-	spin_lock_init(&rtl_global_var.glb_list_lock);
-
-	return 0;
-}
-
-void rtl_core_module_exit(void)
-{
-	/*RC*/
-	rtl_rate_control_unregister();
-
-	/* remove debugfs */
-	rtl_debugfs_remove_topdir();
-}
diff --git a/drivers/staging/rtlwifi/base.h b/drivers/staging/rtlwifi/base.h
deleted file mode 100644
index 591f433..0000000
--- a/drivers/staging/rtlwifi/base.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_BASE_H__
-#define __RTL_BASE_H__
-
-enum ap_peer {
-	PEER_UNKNOWN = 0,
-	PEER_RTL = 1,
-	PEER_RTL_92SE = 2,
-	PEER_BROAD = 3,
-	PEER_RAL = 4,
-	PEER_ATH = 5,
-	PEER_CISCO = 6,
-	PEER_MARV = 7,
-	PEER_AIRGO = 9,
-	PEER_MAX = 10,
-};
-
-#define RTL_DUMMY_OFFSET	0
-#define RTL_DUMMY_UNIT		8
-#define RTL_TX_DUMMY_SIZE	(RTL_DUMMY_OFFSET * RTL_DUMMY_UNIT)
-#define RTL_TX_DESC_SIZE	32
-#define RTL_TX_HEADER_SIZE	(RTL_TX_DESC_SIZE + RTL_TX_DUMMY_SIZE)
-
-#define MAX_BIT_RATE_40MHZ_MCS15	300	/* Mbps */
-#define MAX_BIT_RATE_40MHZ_MCS7		150	/* Mbps */
-
-#define MAX_BIT_RATE_SHORT_GI_2NSS_80MHZ_MCS9	867	/* Mbps */
-#define MAX_BIT_RATE_SHORT_GI_2NSS_80MHZ_MCS7	650	/* Mbps */
-#define MAX_BIT_RATE_LONG_GI_2NSS_80MHZ_MCS9	780	/* Mbps */
-#define MAX_BIT_RATE_LONG_GI_2NSS_80MHZ_MCS7	585	/* Mbps */
-
-#define MAX_BIT_RATE_SHORT_GI_1NSS_80MHZ_MCS9	434	/* Mbps */
-#define MAX_BIT_RATE_SHORT_GI_1NSS_80MHZ_MCS7	325	/* Mbps */
-#define MAX_BIT_RATE_LONG_GI_1NSS_80MHZ_MCS9	390	/* Mbps */
-#define MAX_BIT_RATE_LONG_GI_1NSS_80MHZ_MCS7	293	/* Mbps */
-
-#define FRAME_OFFSET_FRAME_CONTROL	0
-#define FRAME_OFFSET_DURATION		2
-#define FRAME_OFFSET_ADDRESS1		4
-#define FRAME_OFFSET_ADDRESS2		10
-#define FRAME_OFFSET_ADDRESS3		16
-#define FRAME_OFFSET_SEQUENCE		22
-#define FRAME_OFFSET_ADDRESS4		24
-#define MAX_LISTEN_INTERVAL		10
-#define MAX_RATE_TRIES			4
-
-#define SET_80211_HDR_FRAME_CONTROL(_hdr, _val)		\
-	WRITEEF2BYTE(_hdr, _val)
-#define SET_80211_HDR_TYPE_AND_SUBTYPE(_hdr, _val)	\
-	WRITEEF1BYTE(_hdr, _val)
-#define SET_80211_HDR_PWR_MGNT(_hdr, _val)		\
-	SET_BITS_TO_LE_2BYTE(_hdr, 12, 1, _val)
-#define SET_80211_HDR_TO_DS(_hdr, _val)			\
-	SET_BITS_TO_LE_2BYTE(_hdr, 8, 1, _val)
-
-#define SET_80211_PS_POLL_AID(_hdr, _val)		\
-	(*(u16 *)((u8 *)(_hdr) + 2) = _val)
-#define SET_80211_PS_POLL_BSSID(_hdr, _val)		\
-	ether_addr_copy(((u8 *)(_hdr)) + 4, (u8 *)(_val))
-#define SET_80211_PS_POLL_TA(_hdr, _val)		\
-	ether_addr_copy(((u8 *)(_hdr)) + 10, (u8 *)(_val))
-
-#define SET_80211_HDR_DURATION(_hdr, _val)	\
-	(*(u16 *)((u8 *)(_hdr) + FRAME_OFFSET_DURATION) = le16_to_cpu(_val))
-#define SET_80211_HDR_ADDRESS1(_hdr, _val)	\
-	CP_MACADDR((u8 *)(_hdr) + FRAME_OFFSET_ADDRESS1, (u8 *)(_val))
-#define SET_80211_HDR_ADDRESS2(_hdr, _val)	\
-	CP_MACADDR((u8 *)(_hdr) + FRAME_OFFSET_ADDRESS2, (u8 *)(_val))
-#define SET_80211_HDR_ADDRESS3(_hdr, _val)	\
-	CP_MACADDR((u8 *)(_hdr) + FRAME_OFFSET_ADDRESS3, (u8 *)(_val))
-#define SET_80211_HDR_FRAGMENT_SEQUENCE(_hdr, _val)  \
-	WRITEEF2BYTE((u8 *)(_hdr) + FRAME_OFFSET_SEQUENCE, _val)
-
-#define SET_BEACON_PROBE_RSP_TIME_STAMP_LOW(__phdr, __val)	\
-	WRITEEF4BYTE(((u8 *)(__phdr)) + 24, __val)
-#define SET_BEACON_PROBE_RSP_TIME_STAMP_HIGH(__phdr, __val) \
-	WRITEEF4BYTE(((u8 *)(__phdr)) + 28, __val)
-#define SET_BEACON_PROBE_RSP_BEACON_INTERVAL(__phdr, __val) \
-	WRITEEF2BYTE(((u8 *)(__phdr)) + 32, __val)
-#define GET_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr)		\
-	READEF2BYTE(((u8 *)(__phdr)) + 34)
-#define SET_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr, __val) \
-	WRITEEF2BYTE(((u8 *)(__phdr)) + 34, __val)
-#define MASK_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr, __val) \
-	SET_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr, \
-	(GET_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr) & (~(__val))))
-
-#define SET_TX_DESC_SPE_RPT(__pdesc, __val)			\
-	SET_BITS_TO_LE_4BYTE((__pdesc) + 8, 19, 1, __val)
-#define SET_TX_DESC_SW_DEFINE(__pdesc, __val)	\
-	SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 0, 12, __val)
-
-int rtl_init_core(struct ieee80211_hw *hw);
-void rtl_deinit_core(struct ieee80211_hw *hw);
-void rtl_init_rx_config(struct ieee80211_hw *hw);
-void rtl_init_rfkill(struct ieee80211_hw *hw);
-void rtl_deinit_rfkill(struct ieee80211_hw *hw);
-
-void rtl_watch_dog_timer_callback(struct timer_list *t);
-void rtl_deinit_deferred_work(struct ieee80211_hw *hw);
-
-bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx);
-int rtlwifi_rate_mapping(struct ieee80211_hw *hw, bool isht,
-			 bool isvht, u8 desc_rate);
-bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb);
-u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx,
-		       bool is_enc);
-
-bool rtl_is_tx_report_skb(struct ieee80211_hw *hw, struct sk_buff *skb);
-void rtl_get_tx_report(struct rtl_tcb_desc *ptcb_desc, u8 *pdesc,
-		       struct ieee80211_hw *hw);
-void rtl_tx_report_handler(struct ieee80211_hw *hw, u8 *tmp_buf,
-			   u8 c2h_cmd_len);
-bool rtl_check_tx_report_acked(struct ieee80211_hw *hw);
-void rtl_wait_tx_report_acked(struct ieee80211_hw *hw, u32 wait_ms);
-u32 rtl_get_hal_edca_param(struct ieee80211_hw *hw,
-			   struct ieee80211_vif *vif,
-			   enum wireless_mode wirelessmode,
-			   struct ieee80211_tx_queue_params *param);
-
-void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb);
-void rtl_collect_scan_list(struct ieee80211_hw *hw, struct sk_buff *skb);
-void rtl_scan_list_expire(struct ieee80211_hw *hw);
-int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
-		     struct ieee80211_sta *sta, u16 tid, u16 *ssn);
-int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
-		    struct ieee80211_sta *sta, u16 tid);
-int rtl_tx_agg_oper(struct ieee80211_hw *hw,
-		    struct ieee80211_sta *sta, u16 tid);
-int rtl_rx_agg_start(struct ieee80211_hw *hw,
-		     struct ieee80211_sta *sta, u16 tid);
-int rtl_rx_agg_stop(struct ieee80211_hw *hw,
-		    struct ieee80211_sta *sta, u16 tid);
-void rtl_rx_ampdu_apply(struct rtl_priv *rtlpriv);
-void rtl_watchdog_wq_callback(void *data);
-void rtl_fwevt_wq_callback(void *data);
-void rtl_c2hcmd_wq_callback(void *data);
-void rtl_c2hcmd_launcher(struct ieee80211_hw *hw, int exec);
-void rtl_c2hcmd_enqueue(struct ieee80211_hw *hw, u8 tag, u8 len, u8 *val);
-
-u8 rtl_mrate_idx_to_arfr_id(struct ieee80211_hw *hw,
-			    u8 rate_index,
-			    enum wireless_mode wirelessmode);
-void rtl_get_tcb_desc(struct ieee80211_hw *hw,
-		      struct ieee80211_tx_info *info,
-		      struct ieee80211_sta *sta,
-		      struct sk_buff *skb, struct rtl_tcb_desc *tcb_desc);
-
-int rtl_send_smps_action(struct ieee80211_hw *hw,
-			 struct ieee80211_sta *sta,
-			 enum ieee80211_smps_mode smps);
-u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie);
-void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len);
-u8 rtl_tid_to_ac(u8 tid);
-void rtl_easy_concurrent_retrytimer_callback(struct timer_list *t);
-extern struct rtl_global_var rtl_global_var;
-void rtl_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation);
-bool rtl_check_beacon_key(struct ieee80211_hw *hw, void *data,
-			  unsigned int len);
-int rtl_core_module_init(void);
-void rtl_core_module_exit(void);
-#endif
diff --git a/drivers/staging/rtlwifi/btcoexist/Makefile b/drivers/staging/rtlwifi/btcoexist/Makefile
deleted file mode 100644
index dda3779..0000000
--- a/drivers/staging/rtlwifi/btcoexist/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-btcoexist-objs :=				\
-			halbtc8822b1ant.o	\
-			halbtc8822b2ant.o	\
-			halbtc8822bwifionly.o	\
-			halbtcoutsrc.o		\
-			rtl_btc.o
-
-obj-$(CONFIG_RTLBTCOEXIST) += btcoexist.o
diff --git a/drivers/staging/rtlwifi/btcoexist/halbt_precomp.h b/drivers/staging/rtlwifi/btcoexist/halbt_precomp.h
deleted file mode 100644
index 90d0f24..0000000
--- a/drivers/staging/rtlwifi/btcoexist/halbt_precomp.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- ******************************************************************************/
-
-#ifndef	__HALBT_PRECOMP_H__
-#define __HALBT_PRECOMP_H__
-/*************************************************************
- * include files
- *************************************************************/
-#include "../wifi.h"
-#include "../efuse.h"
-#include "../base.h"
-#include "../regd.h"
-#include "../cam.h"
-#include "../ps.h"
-#include "../pci.h"
-
-#include "halbtcoutsrc.h"
-
-/* Interface type */
-#define RT_PCI_INTERFACE	1
-#define RT_USB_INTERFACE	2
-#define RT_SDIO_INTERFACE	3
-#define DEV_BUS_TYPE		RT_PCI_INTERFACE
-
-#include "halbtc8822b1ant.h"
-#include "halbtc8822b2ant.h"
-#include "halbtc8822bwifionly.h"
-
-#define GETDEFAULTADAPTER(padapter)	padapter
-
-#define BIT0	0x00000001
-#define BIT1	0x00000002
-#define BIT2	0x00000004
-#define BIT3	0x00000008
-#define BIT4	0x00000010
-#define BIT5	0x00000020
-#define BIT6	0x00000040
-#define BIT7	0x00000080
-#define BIT8	0x00000100
-#define BIT9	0x00000200
-#define BIT10	0x00000400
-#define BIT11	0x00000800
-#define BIT12	0x00001000
-#define BIT13	0x00002000
-#define BIT14	0x00004000
-#define BIT15	0x00008000
-#define BIT16	0x00010000
-#define BIT17	0x00020000
-#define BIT18	0x00040000
-#define BIT19	0x00080000
-#define BIT20	0x00100000
-#define BIT21	0x00200000
-#define BIT22	0x00400000
-#define BIT23	0x00800000
-#define BIT24	0x01000000
-#define BIT25	0x02000000
-#define BIT26	0x04000000
-#define BIT27	0x08000000
-#define BIT28	0x10000000
-#define BIT29	0x20000000
-#define BIT30	0x40000000
-#define BIT31	0x80000000
-
-#endif	/* __HALBT_PRECOMP_H__ */
diff --git a/drivers/staging/rtlwifi/btcoexist/halbtc8822b1ant.c b/drivers/staging/rtlwifi/btcoexist/halbtc8822b1ant.c
deleted file mode 100644
index 32c7974..0000000
--- a/drivers/staging/rtlwifi/btcoexist/halbtc8822b1ant.c
+++ /dev/null
@@ -1,5233 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-/* ************************************************************
- * Description:
- *
- * This file is for RTL8822B Co-exist mechanism
- *
- * History
- * 2012/11/15 Cosa first check in.
- *
- * *************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-/*only for rf4ce*/
-#include "halbt_precomp.h"
-
-/* ************************************************************
- * Global variables, these are static variables
- * *************************************************************/
-static struct coex_dm_8822b_1ant glcoex_dm_8822b_1ant;
-static struct coex_dm_8822b_1ant *coex_dm = &glcoex_dm_8822b_1ant;
-static struct coex_sta_8822b_1ant glcoex_sta_8822b_1ant;
-static struct coex_sta_8822b_1ant *coex_sta = &glcoex_sta_8822b_1ant;
-static struct psdscan_sta_8822b_1ant gl_psd_scan_8822b_1ant;
-static struct psdscan_sta_8822b_1ant *psd_scan = &gl_psd_scan_8822b_1ant;
-static struct rfe_type_8822b_1ant gl_rfe_type_8822b_1ant;
-static struct rfe_type_8822b_1ant *rfe_type = &gl_rfe_type_8822b_1ant;
-
-static const char *const glbt_info_src_8822b_1ant[] = {
-	"BT Info[wifi fw]", "BT Info[bt rsp]", "BT Info[bt auto report]",
-};
-
-static u32 glcoex_ver_date_8822b_1ant = 20170327;
-static u32 glcoex_ver_8822b_1ant = 0x44;
-static u32 glcoex_ver_btdesired_8822b_1ant = 0x42;
-
-/* ************************************************************
- * local function proto type if needed
- * ************************************************************
- * ************************************************************
- * local function start with halbtc8822b1ant_
- * *************************************************************/
-
-static u8 halbtc8822b1ant_wifi_rssi_state(struct btc_coexist *btcoexist,
-					  u8 index, u8 level_num,
-					  u8 rssi_thresh, u8 rssi_thresh1)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	s32 wifi_rssi = 0;
-	u8 wifi_rssi_state = coex_sta->pre_wifi_rssi_state[index];
-
-	btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi);
-
-	if (level_num == 2) {
-		if ((coex_sta->pre_wifi_rssi_state[index] ==
-		     BTC_RSSI_STATE_LOW) ||
-		    (coex_sta->pre_wifi_rssi_state[index] ==
-		     BTC_RSSI_STATE_STAY_LOW)) {
-			if (wifi_rssi >=
-			    (rssi_thresh + BTC_RSSI_COEX_THRESH_TOL_8822B_1ANT))
-				wifi_rssi_state = BTC_RSSI_STATE_HIGH;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW;
-		} else {
-			if (wifi_rssi < rssi_thresh)
-				wifi_rssi_state = BTC_RSSI_STATE_LOW;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
-		}
-	} else if (level_num == 3) {
-		if (rssi_thresh > rssi_thresh1) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], wifi RSSI thresh error!!\n");
-			return coex_sta->pre_wifi_rssi_state[index];
-		}
-
-		if ((coex_sta->pre_wifi_rssi_state[index] ==
-		     BTC_RSSI_STATE_LOW) ||
-		    (coex_sta->pre_wifi_rssi_state[index] ==
-		     BTC_RSSI_STATE_STAY_LOW)) {
-			if (wifi_rssi >=
-			    (rssi_thresh + BTC_RSSI_COEX_THRESH_TOL_8822B_1ANT))
-				wifi_rssi_state = BTC_RSSI_STATE_MEDIUM;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW;
-		} else if ((coex_sta->pre_wifi_rssi_state[index] ==
-			    BTC_RSSI_STATE_MEDIUM) ||
-			   (coex_sta->pre_wifi_rssi_state[index] ==
-			    BTC_RSSI_STATE_STAY_MEDIUM)) {
-			if (wifi_rssi >= (rssi_thresh1 +
-					  BTC_RSSI_COEX_THRESH_TOL_8822B_1ANT))
-				wifi_rssi_state = BTC_RSSI_STATE_HIGH;
-			else if (wifi_rssi < rssi_thresh)
-				wifi_rssi_state = BTC_RSSI_STATE_LOW;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM;
-		} else {
-			if (wifi_rssi < rssi_thresh1)
-				wifi_rssi_state = BTC_RSSI_STATE_MEDIUM;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
-		}
-	}
-
-	coex_sta->pre_wifi_rssi_state[index] = wifi_rssi_state;
-
-	return wifi_rssi_state;
-}
-
-static void halbtc8822b1ant_update_ra_mask(struct btc_coexist *btcoexist,
-					   bool force_exec, u32 dis_rate_mask)
-{
-	coex_dm->cur_ra_mask = dis_rate_mask;
-
-	if (force_exec || (coex_dm->pre_ra_mask != coex_dm->cur_ra_mask))
-		btcoexist->btc_set(btcoexist, BTC_SET_ACT_UPDATE_RAMASK,
-				   &coex_dm->cur_ra_mask);
-	coex_dm->pre_ra_mask = coex_dm->cur_ra_mask;
-}
-
-static void
-halbtc8822b1ant_auto_rate_fallback_retry(struct btc_coexist *btcoexist,
-					 bool force_exec, u8 type)
-{
-	bool wifi_under_b_mode = false;
-
-	coex_dm->cur_arfr_type = type;
-
-	if (force_exec || (coex_dm->pre_arfr_type != coex_dm->cur_arfr_type)) {
-		switch (coex_dm->cur_arfr_type) {
-		case 0: /* normal mode */
-			btcoexist->btc_write_4byte(btcoexist, 0x430,
-						   coex_dm->backup_arfr_cnt1);
-			btcoexist->btc_write_4byte(btcoexist, 0x434,
-						   coex_dm->backup_arfr_cnt2);
-			break;
-		case 1:
-			btcoexist->btc_get(btcoexist,
-					   BTC_GET_BL_WIFI_UNDER_B_MODE,
-					   &wifi_under_b_mode);
-			if (wifi_under_b_mode) {
-				btcoexist->btc_write_4byte(btcoexist, 0x430,
-							   0x0);
-				btcoexist->btc_write_4byte(btcoexist, 0x434,
-							   0x01010101);
-			} else {
-				btcoexist->btc_write_4byte(btcoexist, 0x430,
-							   0x0);
-				btcoexist->btc_write_4byte(btcoexist, 0x434,
-							   0x04030201);
-			}
-			break;
-		default:
-			break;
-		}
-	}
-
-	coex_dm->pre_arfr_type = coex_dm->cur_arfr_type;
-}
-
-static void halbtc8822b1ant_retry_limit(struct btc_coexist *btcoexist,
-					bool force_exec, u8 type)
-{
-	coex_dm->cur_retry_limit_type = type;
-
-	if (force_exec ||
-	    (coex_dm->pre_retry_limit_type != coex_dm->cur_retry_limit_type)) {
-		switch (coex_dm->cur_retry_limit_type) {
-		case 0: /* normal mode */
-			btcoexist->btc_write_2byte(btcoexist, 0x42a,
-						   coex_dm->backup_retry_limit);
-			break;
-		case 1: /* retry limit=8 */
-			btcoexist->btc_write_2byte(btcoexist, 0x42a, 0x0808);
-			break;
-		default:
-			break;
-		}
-	}
-
-	coex_dm->pre_retry_limit_type = coex_dm->cur_retry_limit_type;
-}
-
-static void halbtc8822b1ant_ampdu_max_time(struct btc_coexist *btcoexist,
-					   bool force_exec, u8 type)
-{
-	coex_dm->cur_ampdu_time_type = type;
-
-	if (force_exec ||
-	    (coex_dm->pre_ampdu_time_type != coex_dm->cur_ampdu_time_type)) {
-		switch (coex_dm->cur_ampdu_time_type) {
-		case 0: /* normal mode */
-			btcoexist->btc_write_1byte(
-				btcoexist, 0x456,
-				coex_dm->backup_ampdu_max_time);
-			break;
-		case 1: /* AMPDU timw = 0x38 * 32us */
-			btcoexist->btc_write_1byte(btcoexist, 0x456, 0x38);
-			break;
-		default:
-			break;
-		}
-	}
-
-	coex_dm->pre_ampdu_time_type = coex_dm->cur_ampdu_time_type;
-}
-
-static void halbtc8822b1ant_limited_tx(struct btc_coexist *btcoexist,
-				       bool force_exec, u8 ra_mask_type,
-				       u8 arfr_type, u8 retry_limit_type,
-				       u8 ampdu_time_type)
-{
-	switch (ra_mask_type) {
-	case 0: /* normal mode */
-		halbtc8822b1ant_update_ra_mask(btcoexist, force_exec, 0x0);
-		break;
-	case 1: /* disable cck 1/2 */
-		halbtc8822b1ant_update_ra_mask(btcoexist, force_exec,
-					       0x00000003);
-		break;
-	case 2: /* disable cck 1/2/5.5, ofdm 6/9/12/18/24, mcs 0/1/2/3/4 */
-		halbtc8822b1ant_update_ra_mask(btcoexist, force_exec,
-					       0x0001f1f7);
-		break;
-	default:
-		break;
-	}
-
-	halbtc8822b1ant_auto_rate_fallback_retry(btcoexist, force_exec,
-						 arfr_type);
-	halbtc8822b1ant_retry_limit(btcoexist, force_exec, retry_limit_type);
-	halbtc8822b1ant_ampdu_max_time(btcoexist, force_exec, ampdu_time_type);
-}
-
-/*
- * rx agg size setting :
- * 1:      true / don't care / don't care
- * max: false / false / don't care
- * 7:     false / true / 7
- */
-
-static void halbtc8822b1ant_limited_rx(struct btc_coexist *btcoexist,
-				       bool force_exec, bool rej_ap_agg_pkt,
-				       bool bt_ctrl_agg_buf_size,
-				       u8 agg_buf_size)
-{
-	bool reject_rx_agg = rej_ap_agg_pkt;
-	bool bt_ctrl_rx_agg_size = bt_ctrl_agg_buf_size;
-	u8 rx_agg_size = agg_buf_size;
-
-	/* ============================================ */
-	/*	Rx Aggregation related setting */
-	/* ============================================ */
-	btcoexist->btc_set(btcoexist, BTC_SET_BL_TO_REJ_AP_AGG_PKT,
-			   &reject_rx_agg);
-	/* decide BT control aggregation buf size or not */
-	btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_CTRL_AGG_SIZE,
-			   &bt_ctrl_rx_agg_size);
-	/* aggregation buf size, only work when BT control Rx aggregation size*/
-	btcoexist->btc_set(btcoexist, BTC_SET_U1_AGG_BUF_SIZE, &rx_agg_size);
-	/* real update aggregation setting */
-	btcoexist->btc_set(btcoexist, BTC_SET_ACT_AGGREGATE_CTRL, NULL);
-}
-
-static void halbtc8822b1ant_query_bt_info(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 h2c_parameter[1] = {0};
-
-	if (coex_sta->bt_disabled) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], No query BT info because BT is disabled!\n");
-		return;
-	}
-
-	h2c_parameter[0] |= BIT(0); /* trigger */
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x61, 1, h2c_parameter);
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], WL query BT info!!\n");
-}
-
-static void halbtc8822b1ant_monitor_bt_ctr(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u32 reg_hp_txrx, reg_lp_txrx, u32tmp;
-	u32 reg_hp_tx = 0, reg_hp_rx = 0, reg_lp_tx = 0, reg_lp_rx = 0;
-	static u8 num_of_bt_counter_chk, cnt_slave, cnt_autoslot_hang;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	reg_hp_txrx = 0x770;
-	reg_lp_txrx = 0x774;
-
-	u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_hp_txrx);
-	reg_hp_tx = u32tmp & MASKLWORD;
-	reg_hp_rx = (u32tmp & MASKHWORD) >> 16;
-
-	u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_lp_txrx);
-	reg_lp_tx = u32tmp & MASKLWORD;
-	reg_lp_rx = (u32tmp & MASKHWORD) >> 16;
-
-	coex_sta->high_priority_tx = reg_hp_tx;
-	coex_sta->high_priority_rx = reg_hp_rx;
-	coex_sta->low_priority_tx = reg_lp_tx;
-	coex_sta->low_priority_rx = reg_lp_rx;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], Hi-Pri Rx/Tx: %d/%d, Lo-Pri Rx/Tx: %d/%d\n",
-		 reg_hp_rx, reg_hp_tx, reg_lp_rx, reg_lp_tx);
-
-	/* reset counter */
-	btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc);
-
-	if ((coex_sta->low_priority_tx > 1150) &&
-	    (!coex_sta->c2h_bt_inquiry_page))
-		coex_sta->pop_event_cnt++;
-
-	if ((coex_sta->low_priority_rx >= 1150) &&
-	    (coex_sta->low_priority_rx >= coex_sta->low_priority_tx) &&
-	    (!coex_sta->under_ips) && (!coex_sta->c2h_bt_inquiry_page) &&
-	    (coex_sta->bt_link_exist)) {
-		if (cnt_slave >= 3) {
-			bt_link_info->slave_role = true;
-			cnt_slave = 3;
-		} else {
-			cnt_slave++;
-		}
-	} else {
-		if (cnt_slave == 0) {
-			bt_link_info->slave_role = false;
-			cnt_slave = 0;
-		} else {
-			cnt_slave--;
-		}
-	}
-
-	if (coex_sta->is_tdma_btautoslot) {
-		if ((coex_sta->low_priority_tx >= 1300) &&
-		    (coex_sta->low_priority_rx <= 150)) {
-			if (cnt_autoslot_hang >= 2) {
-				coex_sta->is_tdma_btautoslot_hang = true;
-				cnt_autoslot_hang = 2;
-			} else {
-				cnt_autoslot_hang++;
-			}
-		} else {
-			if (cnt_autoslot_hang == 0) {
-				coex_sta->is_tdma_btautoslot_hang = false;
-				cnt_autoslot_hang = 0;
-			} else {
-				cnt_autoslot_hang--;
-			}
-		}
-	}
-
-	if (bt_link_info->hid_only) {
-		if (coex_sta->low_priority_rx > 50)
-			coex_sta->is_hid_low_pri_tx_overhead = true;
-		else
-			coex_sta->is_hid_low_pri_tx_overhead = false;
-	}
-
-	if ((coex_sta->high_priority_tx == 0) &&
-	    (coex_sta->high_priority_rx == 0) &&
-	    (coex_sta->low_priority_tx == 0) &&
-	    (coex_sta->low_priority_rx == 0)) {
-		num_of_bt_counter_chk++;
-
-		if (num_of_bt_counter_chk >= 3) {
-			halbtc8822b1ant_query_bt_info(btcoexist);
-			num_of_bt_counter_chk = 0;
-		}
-	}
-}
-
-static void halbtc8822b1ant_monitor_wifi_ctr(struct btc_coexist *btcoexist)
-{
-	s32 wifi_rssi = 0;
-	bool wifi_busy = false, wifi_under_b_mode = false, wifi_scan = false;
-	static u8 cck_lock_counter, wl_noisy_count0, wl_noisy_count1 = 3,
-						     wl_noisy_count2;
-	u32 total_cnt, cck_cnt;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_B_MODE,
-			   &wifi_under_b_mode);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &wifi_scan);
-
-	coex_sta->crc_ok_cck = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_OK_CCK");
-	coex_sta->crc_ok_11g = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_OK_LEGACY");
-	coex_sta->crc_ok_11n = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_OK_HT");
-	coex_sta->crc_ok_11n_vht = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_OK_VHT");
-
-	coex_sta->crc_err_cck = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_ERROR_CCK");
-	coex_sta->crc_err_11g = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_ERROR_LEGACY");
-	coex_sta->crc_err_11n = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_ERROR_HT");
-	coex_sta->crc_err_11n_vht = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_ERROR_VHT");
-
-	cck_cnt = coex_sta->crc_ok_cck + coex_sta->crc_err_cck;
-
-	if (cck_cnt > 250) {
-		if (wl_noisy_count2 < 3)
-			wl_noisy_count2++;
-
-		if (wl_noisy_count2 == 3) {
-			wl_noisy_count0 = 0;
-			wl_noisy_count1 = 0;
-		}
-
-	} else if (cck_cnt < 50) {
-		if (wl_noisy_count0 < 3)
-			wl_noisy_count0++;
-
-		if (wl_noisy_count0 == 3) {
-			wl_noisy_count1 = 0;
-			wl_noisy_count2 = 0;
-		}
-
-	} else {
-		if (wl_noisy_count1 < 3)
-			wl_noisy_count1++;
-
-		if (wl_noisy_count1 == 3) {
-			wl_noisy_count0 = 0;
-			wl_noisy_count2 = 0;
-		}
-	}
-
-	if (wl_noisy_count2 == 3)
-		coex_sta->wl_noisy_level = 2;
-	else if (wl_noisy_count1 == 3)
-		coex_sta->wl_noisy_level = 1;
-	else
-		coex_sta->wl_noisy_level = 0;
-
-	if ((wifi_busy) && (wifi_rssi >= 30) && (!wifi_under_b_mode)) {
-		total_cnt = coex_sta->crc_ok_cck + coex_sta->crc_ok_11g +
-			    coex_sta->crc_ok_11n + coex_sta->crc_ok_11n_vht;
-
-		if ((coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_BUSY) ||
-		    (coex_dm->bt_status ==
-		     BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY) ||
-		    (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_SCO_BUSY)) {
-			if (coex_sta->crc_ok_cck >
-			    (total_cnt - coex_sta->crc_ok_cck)) {
-				if (cck_lock_counter < 3)
-					cck_lock_counter++;
-			} else {
-				if (cck_lock_counter > 0)
-					cck_lock_counter--;
-			}
-
-		} else {
-			if (cck_lock_counter > 0)
-				cck_lock_counter--;
-		}
-	} else {
-		if (cck_lock_counter > 0)
-			cck_lock_counter--;
-	}
-
-	if (!coex_sta->pre_ccklock) {
-		if (cck_lock_counter >= 3)
-			coex_sta->cck_lock = true;
-		else
-			coex_sta->cck_lock = false;
-	} else {
-		if (cck_lock_counter == 0)
-			coex_sta->cck_lock = false;
-		else
-			coex_sta->cck_lock = true;
-	}
-
-	if (coex_sta->cck_lock)
-		coex_sta->cck_ever_lock = true;
-
-	coex_sta->pre_ccklock = coex_sta->cck_lock;
-}
-
-static bool
-halbtc8822b1ant_is_wifi_status_changed(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static bool pre_wifi_busy, pre_under_4way, pre_bt_hs_on,
-		pre_rf4ce_enabled, pre_bt_off, pre_bt_slave,
-		pre_hid_low_pri_tx_overhead, pre_wifi_under_lps,
-		pre_bt_setup_link;
-	static u8 pre_hid_busy_num, pre_wl_noisy_level;
-	bool wifi_busy = false, under_4way = false, bt_hs_on = false,
-	     rf4ce_enabled = false;
-	bool wifi_connected = false;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS,
-			   &under_4way);
-
-	if (coex_sta->bt_disabled != pre_bt_off) {
-		pre_bt_off = coex_sta->bt_disabled;
-
-		if (coex_sta->bt_disabled)
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], BT is disabled !!\n");
-		else
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], BT is enabled !!\n");
-
-		coex_sta->bt_coex_supported_feature = 0;
-		coex_sta->bt_coex_supported_version = 0;
-		return true;
-	}
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_RF4CE_CONNECTED,
-			   &rf4ce_enabled);
-
-	if (rf4ce_enabled != pre_rf4ce_enabled) {
-		pre_rf4ce_enabled = rf4ce_enabled;
-
-		if (rf4ce_enabled)
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], rf4ce is enabled !!\n");
-		else
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], rf4ce is disabled !!\n");
-
-		return true;
-	}
-
-	if (wifi_connected) {
-		if (wifi_busy != pre_wifi_busy) {
-			pre_wifi_busy = wifi_busy;
-			return true;
-		}
-		if (under_4way != pre_under_4way) {
-			pre_under_4way = under_4way;
-			return true;
-		}
-		if (bt_hs_on != pre_bt_hs_on) {
-			pre_bt_hs_on = bt_hs_on;
-			return true;
-		}
-		if (coex_sta->wl_noisy_level != pre_wl_noisy_level) {
-			pre_wl_noisy_level = coex_sta->wl_noisy_level;
-			return true;
-		}
-		if (coex_sta->under_lps != pre_wifi_under_lps) {
-			pre_wifi_under_lps = coex_sta->under_lps;
-			if (coex_sta->under_lps)
-				return true;
-		}
-	}
-
-	if (!coex_sta->bt_disabled) {
-		if (coex_sta->hid_busy_num != pre_hid_busy_num) {
-			pre_hid_busy_num = coex_sta->hid_busy_num;
-			return true;
-		}
-
-		if (bt_link_info->slave_role != pre_bt_slave) {
-			pre_bt_slave = bt_link_info->slave_role;
-			return true;
-		}
-
-		if (pre_hid_low_pri_tx_overhead !=
-		    coex_sta->is_hid_low_pri_tx_overhead) {
-			pre_hid_low_pri_tx_overhead =
-				coex_sta->is_hid_low_pri_tx_overhead;
-			return true;
-		}
-
-		if (pre_bt_setup_link != coex_sta->is_setup_link) {
-			pre_bt_setup_link = coex_sta->is_setup_link;
-			return true;
-		}
-	}
-
-	return false;
-}
-
-static void halbtc8822b1ant_update_bt_link_info(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool bt_hs_on = false;
-	bool bt_busy = false;
-
-	coex_sta->num_of_profile = 0;
-
-	/* set link exist status */
-	if (!(coex_sta->bt_info & BT_INFO_8822B_1ANT_B_CONNECTION)) {
-		coex_sta->bt_link_exist = false;
-		coex_sta->pan_exist = false;
-		coex_sta->a2dp_exist = false;
-		coex_sta->hid_exist = false;
-		coex_sta->sco_exist = false;
-	} else { /* connection exists */
-		coex_sta->bt_link_exist = true;
-		if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_FTP) {
-			coex_sta->pan_exist = true;
-			coex_sta->num_of_profile++;
-		} else {
-			coex_sta->pan_exist = false;
-		}
-
-		if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_A2DP) {
-			coex_sta->a2dp_exist = true;
-			coex_sta->num_of_profile++;
-		} else {
-			coex_sta->a2dp_exist = false;
-		}
-
-		if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_HID) {
-			coex_sta->hid_exist = true;
-			coex_sta->num_of_profile++;
-		} else {
-			coex_sta->hid_exist = false;
-		}
-
-		if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_SCO_ESCO) {
-			coex_sta->sco_exist = true;
-			coex_sta->num_of_profile++;
-		} else {
-			coex_sta->sco_exist = false;
-		}
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-
-	bt_link_info->bt_link_exist = coex_sta->bt_link_exist;
-	bt_link_info->sco_exist = coex_sta->sco_exist;
-	bt_link_info->a2dp_exist = coex_sta->a2dp_exist;
-	bt_link_info->pan_exist = coex_sta->pan_exist;
-	bt_link_info->hid_exist = coex_sta->hid_exist;
-	bt_link_info->acl_busy = coex_sta->acl_busy;
-
-	/* work around for HS mode. */
-	if (bt_hs_on) {
-		bt_link_info->pan_exist = true;
-		bt_link_info->bt_link_exist = true;
-	}
-
-	/* check if Sco only */
-	if (bt_link_info->sco_exist && !bt_link_info->a2dp_exist &&
-	    !bt_link_info->pan_exist && !bt_link_info->hid_exist)
-		bt_link_info->sco_only = true;
-	else
-		bt_link_info->sco_only = false;
-
-	/* check if A2dp only */
-	if (!bt_link_info->sco_exist && bt_link_info->a2dp_exist &&
-	    !bt_link_info->pan_exist && !bt_link_info->hid_exist)
-		bt_link_info->a2dp_only = true;
-	else
-		bt_link_info->a2dp_only = false;
-
-	/* check if Pan only */
-	if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist &&
-	    bt_link_info->pan_exist && !bt_link_info->hid_exist)
-		bt_link_info->pan_only = true;
-	else
-		bt_link_info->pan_only = false;
-
-	/* check if Hid only */
-	if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist &&
-	    !bt_link_info->pan_exist && bt_link_info->hid_exist)
-		bt_link_info->hid_only = true;
-	else
-		bt_link_info->hid_only = false;
-
-	if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_INQ_PAGE) {
-		coex_dm->bt_status = BT_8822B_1ANT_BT_STATUS_INQ_PAGE;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT Inq/page!!!\n");
-	} else if (!(coex_sta->bt_info & BT_INFO_8822B_1ANT_B_CONNECTION)) {
-		coex_dm->bt_status = BT_8822B_1ANT_BT_STATUS_NON_CONNECTED_IDLE;
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], BtInfoNotify(), BT Non-Connected idle!!!\n");
-	} else if (coex_sta->bt_info == BT_INFO_8822B_1ANT_B_CONNECTION) {
-		/* connection exists but no busy */
-		coex_dm->bt_status = BT_8822B_1ANT_BT_STATUS_CONNECTED_IDLE;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT Connected-idle!!!\n");
-	} else if (((coex_sta->bt_info & BT_INFO_8822B_1ANT_B_SCO_ESCO) ||
-		    (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_SCO_BUSY)) &&
-		   (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_ACL_BUSY)) {
-		coex_dm->bt_status = BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT ACL SCO busy!!!\n");
-	} else if ((coex_sta->bt_info & BT_INFO_8822B_1ANT_B_SCO_ESCO) ||
-		   (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_SCO_BUSY)) {
-		coex_dm->bt_status = BT_8822B_1ANT_BT_STATUS_SCO_BUSY;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT SCO busy!!!\n");
-	} else if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_ACL_BUSY) {
-		coex_dm->bt_status = BT_8822B_1ANT_BT_STATUS_ACL_BUSY;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT ACL busy!!!\n");
-	} else {
-		coex_dm->bt_status = BT_8822B_1ANT_BT_STATUS_MAX;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT Non-Defined state!!!\n");
-	}
-
-	if ((coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_BUSY) ||
-	    (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_SCO_BUSY) ||
-	    (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY))
-		bt_busy = true;
-	else
-		bt_busy = false;
-
-	btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy);
-}
-
-static void halbtc8822b1ant_update_wifi_ch_info(struct btc_coexist *btcoexist,
-						u8 type)
-{
-	u8 h2c_parameter[3] = {0};
-	u32 wifi_bw;
-	u8 wifi_central_chnl;
-
-	/* only 2.4G we need to inform bt the chnl mask */
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_CENTRAL_CHNL,
-			   &wifi_central_chnl);
-	if ((type == BTC_MEDIA_CONNECT) && (wifi_central_chnl <= 14)) {
-		/* enable BT AFH skip WL channel for 8822b
-		 * because BT Rx LO interference
-		 */
-		h2c_parameter[0] = 0x1;
-		h2c_parameter[1] = wifi_central_chnl;
-
-		btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-
-		if (wifi_bw == BTC_WIFI_BW_HT40)
-			h2c_parameter[2] = 0x30;
-		else
-			h2c_parameter[2] = 0x20;
-	}
-
-	coex_dm->wifi_chnl_info[0] = h2c_parameter[0];
-	coex_dm->wifi_chnl_info[1] = h2c_parameter[1];
-	coex_dm->wifi_chnl_info[2] = h2c_parameter[2];
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x66, 3, h2c_parameter);
-}
-
-static u8 halbtc8822b1ant_action_algorithm(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool bt_hs_on = false;
-	u8 algorithm = BT_8822B_1ANT_COEX_ALGO_UNDEFINED;
-	u8 num_of_diff_profile = 0;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-
-	if (!bt_link_info->bt_link_exist) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], No BT link exists!!!\n");
-		return algorithm;
-	}
-
-	if (bt_link_info->sco_exist)
-		num_of_diff_profile++;
-	if (bt_link_info->hid_exist)
-		num_of_diff_profile++;
-	if (bt_link_info->pan_exist)
-		num_of_diff_profile++;
-	if (bt_link_info->a2dp_exist)
-		num_of_diff_profile++;
-
-	if (num_of_diff_profile == 1) {
-		if (bt_link_info->sco_exist) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], BT Profile = SCO only\n");
-			algorithm = BT_8822B_1ANT_COEX_ALGO_SCO;
-		} else {
-			if (bt_link_info->hid_exist) {
-				RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					 "[BTCoex], BT Profile = HID only\n");
-				algorithm = BT_8822B_1ANT_COEX_ALGO_HID;
-			} else if (bt_link_info->a2dp_exist) {
-				RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					 "[BTCoex], BT Profile = A2DP only\n");
-				algorithm = BT_8822B_1ANT_COEX_ALGO_A2DP;
-			} else if (bt_link_info->pan_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = PAN(HS) only\n");
-					algorithm =
-						BT_8822B_1ANT_COEX_ALGO_PANHS;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = PAN(EDR) only\n");
-					algorithm =
-						BT_8822B_1ANT_COEX_ALGO_PANEDR;
-				}
-			}
-		}
-	} else if (num_of_diff_profile == 2) {
-		if (bt_link_info->sco_exist) {
-			if (bt_link_info->hid_exist) {
-				RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					 "[BTCoex], BT Profile = SCO + HID\n");
-				algorithm = BT_8822B_1ANT_COEX_ALGO_HID;
-			} else if (bt_link_info->a2dp_exist) {
-				RT_TRACE(
-					rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					"[BTCoex], BT Profile = SCO + A2DP ==> SCO\n");
-				algorithm = BT_8822B_1ANT_COEX_ALGO_SCO;
-			} else if (bt_link_info->pan_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = SCO + PAN(HS)\n");
-					algorithm = BT_8822B_1ANT_COEX_ALGO_SCO;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = SCO + PAN(EDR)\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_PANEDR_HID;
-				}
-			}
-		} else {
-			if (bt_link_info->hid_exist &&
-			    bt_link_info->a2dp_exist) {
-				RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					 "[BTCoex], BT Profile = HID + A2DP\n");
-				algorithm = BT_8822B_1ANT_COEX_ALGO_HID_A2DP;
-			} else if (bt_link_info->hid_exist &&
-				   bt_link_info->pan_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = HID + PAN(HS)\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_HID_A2DP;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = HID + PAN(EDR)\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_PANEDR_HID;
-				}
-			} else if (bt_link_info->pan_exist &&
-				   bt_link_info->a2dp_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = A2DP + PAN(HS)\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_A2DP_PANHS;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = A2DP + PAN(EDR)\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_PANEDR_A2DP;
-				}
-			}
-		}
-	} else if (num_of_diff_profile == 3) {
-		if (bt_link_info->sco_exist) {
-			if (bt_link_info->hid_exist &&
-			    bt_link_info->a2dp_exist) {
-				RT_TRACE(
-					rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					"[BTCoex], BT Profile = SCO + HID + A2DP ==> HID\n");
-				algorithm = BT_8822B_1ANT_COEX_ALGO_HID;
-			} else if (bt_link_info->hid_exist &&
-				   bt_link_info->pan_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = SCO + HID + PAN(HS)\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_HID_A2DP;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = SCO + HID + PAN(EDR)\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_PANEDR_HID;
-				}
-			} else if (bt_link_info->pan_exist &&
-				   bt_link_info->a2dp_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = SCO + A2DP + PAN(HS)\n");
-					algorithm = BT_8822B_1ANT_COEX_ALGO_SCO;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = SCO + A2DP + PAN(EDR) ==> HID\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_PANEDR_HID;
-				}
-			}
-		} else {
-			if (bt_link_info->hid_exist &&
-			    bt_link_info->pan_exist &&
-			    bt_link_info->a2dp_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = HID + A2DP + PAN(HS)\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_HID_A2DP;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = HID + A2DP + PAN(EDR)\n");
-					algorithm =
-					BT_8822B_1ANT_COEX_ALGO_HID_A2DP_PANEDR;
-				}
-			}
-		}
-	} else if (num_of_diff_profile >= 3) {
-		if (bt_link_info->sco_exist) {
-			if (bt_link_info->hid_exist &&
-			    bt_link_info->pan_exist &&
-			    bt_link_info->a2dp_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], Error!!! BT Profile = SCO + HID + A2DP + PAN(HS)\n");
-
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT Profile = SCO + HID + A2DP + PAN(EDR)==>PAN(EDR)+HID\n");
-					algorithm =
-					    BT_8822B_1ANT_COEX_ALGO_PANEDR_HID;
-				}
-			}
-		}
-	}
-
-	return algorithm;
-}
-
-static void halbtc8822b1ant_low_penalty_ra(struct btc_coexist *btcoexist,
-					   bool force_exec, bool low_penalty_ra)
-{
-	coex_dm->cur_low_penalty_ra = low_penalty_ra;
-
-	if (!force_exec) {
-		if (coex_dm->pre_low_penalty_ra == coex_dm->cur_low_penalty_ra)
-			return;
-	}
-
-	if (low_penalty_ra)
-		btcoexist->btc_phydm_modify_ra_pcr_threshold(btcoexist, 0, 25);
-	else
-		btcoexist->btc_phydm_modify_ra_pcr_threshold(btcoexist, 0, 0);
-
-	coex_dm->pre_low_penalty_ra = coex_dm->cur_low_penalty_ra;
-}
-
-static void halbtc8822b1ant_write_score_board(struct btc_coexist *btcoexist,
-					      u16 bitpos, bool state)
-{
-	static u16 originalval = 0x8002;
-
-	if (state)
-		originalval = originalval | bitpos;
-	else
-		originalval = originalval & (~bitpos);
-
-	btcoexist->btc_write_2byte(btcoexist, 0xaa, originalval);
-}
-
-static void halbtc8822b1ant_read_score_board(struct btc_coexist *btcoexist,
-					     u16 *score_board_val)
-{
-	*score_board_val =
-		(btcoexist->btc_read_2byte(btcoexist, 0xaa)) & 0x7fff;
-}
-
-static void halbtc8822b1ant_post_state_to_bt(struct btc_coexist *btcoexist,
-					     u16 type, bool state)
-{
-	halbtc8822b1ant_write_score_board(btcoexist, (u16)type, state);
-}
-
-static void
-halbtc8822b1ant_monitor_bt_enable_disable(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u32 bt_disable_cnt;
-	bool bt_active = true, bt_disabled = false, wifi_under_5g = false;
-	u16 u16tmp;
-
-	/* This function check if bt is disabled */
-
-	/* Read BT on/off status from scoreboard[1],
-	 * enable this only if BT patch support this feature
-	 */
-	halbtc8822b1ant_read_score_board(btcoexist, &u16tmp);
-
-	bt_active = u16tmp & BIT(1);
-
-	if (bt_active) {
-		bt_disable_cnt = 0;
-		bt_disabled = false;
-		btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE,
-				   &bt_disabled);
-	} else {
-		bt_disable_cnt++;
-		if (bt_disable_cnt >= 2) {
-			bt_disabled = true;
-			bt_disable_cnt = 2;
-		}
-
-		btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE,
-				   &bt_disabled);
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if ((wifi_under_5g) || (bt_disabled))
-		halbtc8822b1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, false);
-	else
-		halbtc8822b1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, true);
-
-	if (coex_sta->bt_disabled != bt_disabled) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BT is from %s to %s!!\n",
-			 (coex_sta->bt_disabled ? "disabled" : "enabled"),
-			 (bt_disabled ? "disabled" : "enabled"));
-		coex_sta->bt_disabled = bt_disabled;
-	}
-}
-
-static void halbtc8822b1ant_enable_gnt_to_gpio(struct btc_coexist *btcoexist,
-					       bool isenable)
-{
-	static u8 bit_val[5] = {0, 0, 0, 0, 0};
-	static bool state;
-
-	if (!btcoexist->dbg_mode_1ant)
-		return;
-
-	if (state == isenable)
-		return;
-
-	state = isenable;
-
-	if (isenable) {
-		/* enable GNT_WL, GNT_BT to GPIO for debug */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x73, 0x8, 0x1);
-
-		/* store original value */
-		bit_val[0] =
-			(btcoexist->btc_read_1byte(btcoexist, 0x66) & BIT(4)) >>
-			4; /*0x66[4] */
-		bit_val[1] = (btcoexist->btc_read_1byte(btcoexist, 0x67) &
-			      BIT(0)); /*0x66[8] */
-		bit_val[2] =
-			(btcoexist->btc_read_1byte(btcoexist, 0x42) & BIT(3)) >>
-			3; /*0x40[19] */
-		bit_val[3] =
-			(btcoexist->btc_read_1byte(btcoexist, 0x65) & BIT(7)) >>
-			7; /*0x64[15] */
-		bit_val[4] =
-			(btcoexist->btc_read_1byte(btcoexist, 0x72) & BIT(2)) >>
-			2; /*0x70[18] */
-
-		/*  switch GPIO Mux */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x66, BIT(4),
-						   0x0); /*0x66[4] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, BIT(0),
-						   0x0); /*0x66[8] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x42, BIT(3),
-						   0x0); /*0x40[19] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x65, BIT(7),
-						   0x0); /*0x64[15] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x72, BIT(2),
-						   0x0); /*0x70[18] = 0 */
-
-	} else {
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x73, 0x8, 0x0);
-
-		/*  Restore original value  */
-		/*  switch GPIO Mux */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x66, BIT(4),
-						   bit_val[0]); /*0x66[4] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, BIT(0),
-						   bit_val[1]); /*0x66[8] = 0 */
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x42, BIT(3), bit_val[2]); /*0x40[19] = 0 */
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x65, BIT(7), bit_val[3]); /*0x64[15] = 0 */
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x72, BIT(2), bit_val[4]); /*0x70[18] = 0 */
-	}
-}
-
-static u32
-halbtc8822b1ant_ltecoex_indirect_read_reg(struct btc_coexist *btcoexist,
-					  u16 reg_addr)
-{
-	u32 delay_count = 0;
-
-	/* wait for ready bit before access 0x1700 */
-	while (1) {
-		if ((btcoexist->btc_read_1byte(btcoexist, 0x1703) & BIT(5)) ==
-		    0) {
-			mdelay(50);
-			delay_count++;
-			if (delay_count >= 10) {
-				delay_count = 0;
-				break;
-			}
-		} else {
-			break;
-		}
-	}
-
-	btcoexist->btc_write_4byte(btcoexist, 0x1700, 0x800F0000 | reg_addr);
-
-	return btcoexist->btc_read_4byte(btcoexist, 0x1708); /* get read data */
-}
-
-static void
-halbtc8822b1ant_ltecoex_indirect_write_reg(struct btc_coexist *btcoexist,
-					   u16 reg_addr, u32 bit_mask,
-					   u32 reg_value)
-{
-	u32 val, i = 0, bitpos = 0, delay_count = 0;
-
-	if (bit_mask == 0x0)
-		return;
-
-	if (bit_mask == 0xffffffff) {
-		/* wait for ready bit before access 0x1700/0x1704 */
-		while (1) {
-			if ((btcoexist->btc_read_1byte(btcoexist, 0x1703) &
-			     BIT(5)) == 0) {
-				mdelay(50);
-				delay_count++;
-				if (delay_count >= 10) {
-					delay_count = 0;
-					break;
-				}
-			} else {
-				break;
-			}
-		}
-
-		btcoexist->btc_write_4byte(btcoexist, 0x1704,
-					   reg_value); /* put write data */
-
-		btcoexist->btc_write_4byte(btcoexist, 0x1700,
-					   0xc00F0000 | reg_addr);
-	} else {
-		for (i = 0; i <= 31; i++) {
-			if (((bit_mask >> i) & 0x1) == 0x1) {
-				bitpos = i;
-				break;
-			}
-		}
-
-		/* read back register value before write */
-		val = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								reg_addr);
-		val = (val & (~bit_mask)) | (reg_value << bitpos);
-
-		/* wait for ready bit before access 0x1700/0x1704 */
-		while (1) {
-			if ((btcoexist->btc_read_1byte(btcoexist, 0x1703) &
-			     BIT(5)) == 0) {
-				mdelay(50);
-				delay_count++;
-				if (delay_count >= 10) {
-					delay_count = 0;
-					break;
-				}
-			} else {
-				break;
-			}
-		}
-
-		btcoexist->btc_write_4byte(btcoexist, 0x1704,
-					   val); /* put write data */
-
-		btcoexist->btc_write_4byte(btcoexist, 0x1700,
-					   0xc00F0000 | reg_addr);
-	}
-}
-
-static void halbtc8822b1ant_ltecoex_enable(struct btc_coexist *btcoexist,
-					   bool enable)
-{
-	u8 val;
-
-	val = (enable) ? 1 : 0;
-	/* 0x38[7] */
-	halbtc8822b1ant_ltecoex_indirect_write_reg(btcoexist, 0x38, 0x80, val);
-}
-
-static void
-halbtc8822b1ant_ltecoex_pathcontrol_owner(struct btc_coexist *btcoexist,
-					  bool wifi_control)
-{
-	u8 val;
-
-	val = (wifi_control) ? 1 : 0;
-	/* 0x70[26] */
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x73, 0x4, val);
-}
-
-static void halbtc8822b1ant_ltecoex_set_gnt_bt(struct btc_coexist *btcoexist,
-					       u8 control_block,
-					       bool sw_control, u8 state)
-{
-	u32 val = 0, bit_mask;
-
-	state = state & 0x1;
-	/*LTE indirect 0x38=0xccxx (sw : gnt_wl=1,sw gnt_bt=1)
-	 *0x38=0xddxx (sw : gnt_bt=1 , sw gnt_wl=0)
-	 *0x38=0x55xx(hw pta :gnt_wl /gnt_bt )
-	 */
-	val = (sw_control) ? ((state << 1) | 0x1) : 0;
-
-	switch (control_block) {
-	case BT_8822B_1ANT_GNT_BLOCK_RFC_BB:
-	default:
-		bit_mask = 0xc000;
-		halbtc8822b1ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[15:14] */
-		bit_mask = 0x0c00;
-		halbtc8822b1ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[11:10] */
-		break;
-	case BT_8822B_1ANT_GNT_BLOCK_RFC:
-		bit_mask = 0xc000;
-		halbtc8822b1ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[15:14] */
-		break;
-	case BT_8822B_1ANT_GNT_BLOCK_BB:
-		bit_mask = 0x0c00;
-		halbtc8822b1ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[11:10] */
-		break;
-	}
-}
-
-static void halbtc8822b1ant_ltecoex_set_gnt_wl(struct btc_coexist *btcoexist,
-					       u8 control_block,
-					       bool sw_control, u8 state)
-{
-	u32 val = 0, bit_mask;
-	/*LTE indirect 0x38=0xccxx (sw : gnt_wl=1,sw gnt_bt=1)
-	 *0x38=0xddxx (sw : gnt_bt=1 , sw gnt_wl=0)
-	 *0x38=0x55xx(hw pta :gnt_wl /gnt_bt )
-	 */
-
-	state = state & 0x1;
-	val = (sw_control) ? ((state << 1) | 0x1) : 0;
-
-	switch (control_block) {
-	case BT_8822B_1ANT_GNT_BLOCK_RFC_BB:
-	default:
-		bit_mask = 0x3000;
-		halbtc8822b1ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[13:12] */
-		bit_mask = 0x0300;
-		halbtc8822b1ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[9:8] */
-		break;
-	case BT_8822B_1ANT_GNT_BLOCK_RFC:
-		bit_mask = 0x3000;
-		halbtc8822b1ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[13:12] */
-		break;
-	case BT_8822B_1ANT_GNT_BLOCK_BB:
-		bit_mask = 0x0300;
-		halbtc8822b1ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[9:8] */
-		break;
-	}
-}
-
-static void
-halbtc8822b1ant_ltecoex_set_coex_table(struct btc_coexist *btcoexist,
-				       u8 table_type, u16 table_content)
-{
-	u16 reg_addr = 0x0000;
-
-	switch (table_type) {
-	case BT_8822B_1ANT_CTT_WL_VS_LTE:
-		reg_addr = 0xa0;
-		break;
-	case BT_8822B_1ANT_CTT_BT_VS_LTE:
-		reg_addr = 0xa4;
-		break;
-	}
-
-	if (reg_addr != 0x0000)
-		halbtc8822b1ant_ltecoex_indirect_write_reg(
-			btcoexist, reg_addr, 0xffff,
-			table_content); /* 0xa0[15:0] or 0xa4[15:0] */
-}
-
-static void halbtc8822b1ant_set_wltoggle_coex_table(
-	struct btc_coexist *btcoexist, bool force_exec, u8 interval,
-	u8 val0x6c4_b0, u8 val0x6c4_b1, u8 val0x6c4_b2, u8 val0x6c4_b3)
-{
-	static u8 pre_h2c_parameter[6] = {0};
-	u8 cur_h2c_parameter[6] = {0};
-	u8 i, match_cnt = 0;
-
-	cur_h2c_parameter[0] = 0x7; /* op_code, 0x7= wlan toggle slot*/
-
-	cur_h2c_parameter[1] = interval;
-	cur_h2c_parameter[2] = val0x6c4_b0;
-	cur_h2c_parameter[3] = val0x6c4_b1;
-	cur_h2c_parameter[4] = val0x6c4_b2;
-	cur_h2c_parameter[5] = val0x6c4_b3;
-
-	if (!force_exec) {
-		for (i = 1; i <= 5; i++) {
-			if (cur_h2c_parameter[i] != pre_h2c_parameter[i])
-				break;
-
-			match_cnt++;
-		}
-
-		if (match_cnt == 5)
-			return;
-	}
-
-	for (i = 1; i <= 5; i++)
-		pre_h2c_parameter[i] = cur_h2c_parameter[i];
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x69, 6, cur_h2c_parameter);
-}
-
-static void halbtc8822b1ant_set_coex_table(struct btc_coexist *btcoexist,
-					   u32 val0x6c0, u32 val0x6c4,
-					   u32 val0x6c8, u8 val0x6cc)
-{
-	btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0);
-
-	btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4);
-
-	btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8);
-
-	btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc);
-}
-
-static void halbtc8822b1ant_coex_table(struct btc_coexist *btcoexist,
-				       bool force_exec, u32 val0x6c0,
-				       u32 val0x6c4, u32 val0x6c8, u8 val0x6cc)
-{
-	coex_dm->cur_val0x6c0 = val0x6c0;
-	coex_dm->cur_val0x6c4 = val0x6c4;
-	coex_dm->cur_val0x6c8 = val0x6c8;
-	coex_dm->cur_val0x6cc = val0x6cc;
-
-	if (!force_exec) {
-		if ((coex_dm->pre_val0x6c0 == coex_dm->cur_val0x6c0) &&
-		    (coex_dm->pre_val0x6c4 == coex_dm->cur_val0x6c4) &&
-		    (coex_dm->pre_val0x6c8 == coex_dm->cur_val0x6c8) &&
-		    (coex_dm->pre_val0x6cc == coex_dm->cur_val0x6cc))
-			return;
-	}
-	halbtc8822b1ant_set_coex_table(btcoexist, val0x6c0, val0x6c4, val0x6c8,
-				       val0x6cc);
-
-	coex_dm->pre_val0x6c0 = coex_dm->cur_val0x6c0;
-	coex_dm->pre_val0x6c4 = coex_dm->cur_val0x6c4;
-	coex_dm->pre_val0x6c8 = coex_dm->cur_val0x6c8;
-	coex_dm->pre_val0x6cc = coex_dm->cur_val0x6cc;
-}
-
-static void halbtc8822b1ant_coex_table_with_type(struct btc_coexist *btcoexist,
-						 bool force_exec, u8 type)
-{
-	u32 break_table;
-	u8 select_table;
-
-	coex_sta->coex_table_type = type;
-
-	if (coex_sta->concurrent_rx_mode_on) {
-		break_table = 0xf0ffffff; /* set WL hi-pri can break BT */
-		select_table = 0x3; /* set Tx response = Hi-Pri
-				     * (ex: Transmitting ACK,BA,CTS)
-				     */
-	} else {
-		break_table = 0xffffff;
-		select_table = 0x3;
-	}
-
-	switch (type) {
-	case 0:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0x55555555, break_table,
-					   select_table);
-		break;
-	case 1:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0x5a5a5a5a, break_table,
-					   select_table);
-		break;
-	case 2:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0xaa5a5a5a,
-					   0xaa5a5a5a, break_table,
-					   select_table);
-		break;
-	case 3:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0xaa5a5a5a, break_table,
-					   select_table);
-		break;
-	case 4:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0xaa555555,
-					   0xaa5a5a5a, break_table,
-					   select_table);
-		break;
-	case 5:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a,
-					   0x5a5a5a5a, break_table,
-					   select_table);
-		break;
-	case 6:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0xaaaaaaaa, break_table,
-					   select_table);
-		break;
-	case 7:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0xaaaaaaaa,
-					   0xaaaaaaaa, break_table,
-					   select_table);
-		break;
-	case 8:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0xffffffff,
-					   0xffffffff, break_table,
-					   select_table);
-		break;
-	case 9:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x5a5a5555,
-					   0xaaaa5a5a, break_table,
-					   select_table);
-		break;
-	case 10:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0xaaaa5aaa,
-					   0xaaaa5aaa, break_table,
-					   select_table);
-		break;
-	case 11:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0xaaaaa5aa,
-					   0xaaaaaaaa, break_table,
-					   select_table);
-		break;
-	case 12:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0xaaaaa5aa,
-					   0xaaaaa5aa, break_table,
-					   select_table);
-		break;
-	case 13:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0xaaaa5a5a, break_table,
-					   select_table);
-		break;
-	case 14:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x5a5a555a,
-					   0xaaaa5a5a, break_table,
-					   select_table);
-		break;
-	case 15:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0xaaaa55aa, break_table,
-					   select_table);
-		break;
-	case 16:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x5a5a555a,
-					   0x5a5a555a, break_table,
-					   select_table);
-		break;
-	case 17:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0xaaaa55aa,
-					   0xaaaa55aa, break_table,
-					   select_table);
-		break;
-	case 18:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0x5aaa5a5a, break_table,
-					   select_table);
-		break;
-	case 19:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0xa5555555,
-					   0xaaaa5aaa, break_table,
-					   select_table);
-		break;
-	case 20:
-		halbtc8822b1ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0xaaaa5aaa, break_table,
-					   select_table);
-		break;
-	default:
-		break;
-	}
-}
-
-static void
-halbtc8822b1ant_set_fw_ignore_wlan_act(struct btc_coexist *btcoexist,
-				       bool enable)
-{
-	u8 h2c_parameter[1] = {0};
-
-	if (enable)
-		h2c_parameter[0] |= BIT(0); /* function enable */
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x63, 1, h2c_parameter);
-}
-
-static void halbtc8822b1ant_ignore_wlan_act(struct btc_coexist *btcoexist,
-					    bool force_exec, bool enable)
-{
-	coex_dm->cur_ignore_wlan_act = enable;
-
-	if (!force_exec) {
-		if (coex_dm->pre_ignore_wlan_act ==
-		    coex_dm->cur_ignore_wlan_act) {
-			coex_dm->pre_ignore_wlan_act =
-				coex_dm->cur_ignore_wlan_act;
-			return;
-		}
-	}
-
-	halbtc8822b1ant_set_fw_ignore_wlan_act(btcoexist, enable);
-
-	coex_dm->pre_ignore_wlan_act = coex_dm->cur_ignore_wlan_act;
-}
-
-static void halbtc8822b1ant_set_lps_rpwm(struct btc_coexist *btcoexist,
-					 u8 lps_val, u8 rpwm_val)
-{
-	u8 lps = lps_val;
-	u8 rpwm = rpwm_val;
-
-	btcoexist->btc_set(btcoexist, BTC_SET_U1_LPS_VAL, &lps);
-	btcoexist->btc_set(btcoexist, BTC_SET_U1_RPWM_VAL, &rpwm);
-}
-
-static void halbtc8822b1ant_lps_rpwm(struct btc_coexist *btcoexist,
-				     bool force_exec, u8 lps_val, u8 rpwm_val)
-{
-	coex_dm->cur_lps = lps_val;
-	coex_dm->cur_rpwm = rpwm_val;
-
-	if (!force_exec) {
-		if ((coex_dm->pre_lps == coex_dm->cur_lps) &&
-		    (coex_dm->pre_rpwm == coex_dm->cur_rpwm))
-			return;
-	}
-	halbtc8822b1ant_set_lps_rpwm(btcoexist, lps_val, rpwm_val);
-
-	coex_dm->pre_lps = coex_dm->cur_lps;
-	coex_dm->pre_rpwm = coex_dm->cur_rpwm;
-}
-
-static void halbtc8822b1ant_ps_tdma_check_for_power_save_state(
-	struct btc_coexist *btcoexist, bool new_ps_state)
-{
-	u8 lps_mode = 0x0;
-	u8 h2c_parameter[5] = {0x8, 0, 0, 0, 0};
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_LPS_MODE, &lps_mode);
-
-	if (lps_mode) { /* already under LPS state */
-		if (new_ps_state) {
-			/* keep state under LPS, do nothing. */
-		} else {
-			/* will leave LPS state, turn off psTdma first */
-
-			btcoexist->btc_fill_h2c(btcoexist, 0x60, 5,
-						h2c_parameter);
-		}
-	} else { /* NO PS state */
-		if (new_ps_state) {
-			/* will enter LPS state, turn off psTdma first */
-
-			btcoexist->btc_fill_h2c(btcoexist, 0x60, 5,
-						h2c_parameter);
-		} else {
-			/* keep state under NO PS state, do nothing. */
-		}
-	}
-}
-
-static bool halbtc8822b1ant_power_save_state(struct btc_coexist *btcoexist,
-					     u8 ps_type, u8 lps_val,
-					     u8 rpwm_val)
-{
-	bool low_pwr_disable = false, result = true;
-
-	switch (ps_type) {
-	case BTC_PS_WIFI_NATIVE:
-		/* recover to original 32k low power setting */
-		coex_sta->force_lps_ctrl = false;
-		low_pwr_disable = false;
-		btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER,
-				   &low_pwr_disable);
-		btcoexist->btc_set(btcoexist, BTC_SET_ACT_NORMAL_LPS, NULL);
-		break;
-	case BTC_PS_LPS_ON:
-
-		coex_sta->force_lps_ctrl = true;
-		halbtc8822b1ant_ps_tdma_check_for_power_save_state(btcoexist,
-								   true);
-		halbtc8822b1ant_lps_rpwm(btcoexist, NORMAL_EXEC, lps_val,
-					 rpwm_val);
-		/* when coex force to enter LPS, do not enter 32k low power. */
-		low_pwr_disable = true;
-		btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER,
-				   &low_pwr_disable);
-		/* power save must executed before psTdma. */
-		btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL);
-
-		break;
-	case BTC_PS_LPS_OFF:
-
-		coex_sta->force_lps_ctrl = true;
-		halbtc8822b1ant_ps_tdma_check_for_power_save_state(btcoexist,
-								   false);
-		result = btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS,
-					    NULL);
-
-		break;
-	default:
-		break;
-	}
-
-	return result;
-}
-
-static void halbtc8822b1ant_set_fw_pstdma(struct btc_coexist *btcoexist,
-					  u8 byte1, u8 byte2, u8 byte3,
-					  u8 byte4, u8 byte5)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 h2c_parameter[5] = {0};
-	u8 real_byte1 = byte1, real_byte5 = byte5;
-	bool ap_enable = false, result = false;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	if (byte5 & BIT(2))
-		coex_sta->is_tdma_btautoslot = true;
-	else
-		coex_sta->is_tdma_btautoslot = false;
-
-	/* release bt-auto slot for auto-slot hang is detected!! */
-	if (coex_sta->is_tdma_btautoslot)
-		if ((coex_sta->is_tdma_btautoslot_hang) ||
-		    (bt_link_info->slave_role))
-			byte5 = byte5 & 0xfb;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
-			   &ap_enable);
-
-	if ((ap_enable) && (byte1 & BIT(4) && !(byte1 & BIT(5)))) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == FW for 1Ant AP mode\n", __func__);
-
-		real_byte1 &= ~BIT(4);
-		real_byte1 |= BIT(5);
-
-		real_byte5 |= BIT(5);
-		real_byte5 &= ~BIT(6);
-
-		halbtc8822b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
-						 0x0, 0x0);
-
-	} else if (byte1 & BIT(4) && !(byte1 & BIT(5))) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == Force LPS (byte1 = 0x%x)\n",
-			 __func__, byte1);
-		if (!halbtc8822b1ant_power_save_state(btcoexist, BTC_PS_LPS_OFF,
-						      0x50, 0x4))
-			result = true;
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == native power save (byte1 = 0x%x)\n",
-			 __func__, byte1);
-		halbtc8822b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
-						 0x0, 0x0);
-	}
-
-	coex_sta->is_set_ps_state_fail = result;
-
-	if (!coex_sta->is_set_ps_state_fail) {
-		h2c_parameter[0] = real_byte1;
-		h2c_parameter[1] = byte2;
-		h2c_parameter[2] = byte3;
-		h2c_parameter[3] = byte4;
-		h2c_parameter[4] = real_byte5;
-
-		coex_dm->ps_tdma_para[0] = real_byte1;
-		coex_dm->ps_tdma_para[1] = byte2;
-		coex_dm->ps_tdma_para[2] = byte3;
-		coex_dm->ps_tdma_para[3] = byte4;
-		coex_dm->ps_tdma_para[4] = real_byte5;
-
-		btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter);
-
-	} else {
-		coex_sta->cnt_set_ps_state_fail++;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == Force Leave LPS Fail (cnt = %d)\n",
-			 __func__, coex_sta->cnt_set_ps_state_fail);
-	}
-}
-
-static void halbtc8822b1ant_ps_tdma(struct btc_coexist *btcoexist,
-				    bool force_exec, bool turn_on, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool wifi_busy = false;
-	static u8 ps_tdma_byte4_modify, pre_ps_tdma_byte4_modify;
-	static bool pre_wifi_busy;
-
-	coex_dm->cur_ps_tdma_on = turn_on;
-	coex_dm->cur_ps_tdma = type;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	if (wifi_busy != pre_wifi_busy) {
-		force_exec = true;
-		pre_wifi_busy = wifi_busy;
-	}
-
-	/* 0x778 = 0x1 at wifi slot (no blocking BT Low-Pri pkts) */
-	if (bt_link_info->slave_role)
-		ps_tdma_byte4_modify = 0x1;
-	else
-		ps_tdma_byte4_modify = 0x0;
-
-	if (pre_ps_tdma_byte4_modify != ps_tdma_byte4_modify) {
-		force_exec = true;
-		pre_ps_tdma_byte4_modify = ps_tdma_byte4_modify;
-	}
-
-	if (!force_exec) {
-		if ((coex_dm->pre_ps_tdma_on == coex_dm->cur_ps_tdma_on) &&
-		    (coex_dm->pre_ps_tdma == coex_dm->cur_ps_tdma)) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], Skip TDMA because no change TDMA(%s, %d)\n",
-				(coex_dm->cur_ps_tdma_on ? "on" : "off"),
-				coex_dm->cur_ps_tdma);
-			return;
-		}
-	}
-
-	if (coex_dm->cur_ps_tdma_on) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], ********** TDMA(on, %d) **********\n",
-			 coex_dm->cur_ps_tdma);
-
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x550, 0x8, 0x1); /* enable TBTT nterrupt */
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], ********** TDMA(off, %d) **********\n",
-			 coex_dm->cur_ps_tdma);
-	}
-
-	if (turn_on) {
-		/* enable TBTT nterrupt */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x550, 0x8, 0x1);
-
-		switch (type) {
-		default:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x35,
-						      0x03, 0x11, 0x11);
-			break;
-		case 1:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x3a,
-						      0x03, 0x11, 0x10);
-			break;
-		case 3:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x30,
-						      0x03, 0x10, 0x50);
-			break;
-		case 4:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x21,
-						      0x03, 0x10, 0x50);
-			break;
-		case 5:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x15,
-						      0x3, 0x11, 0x11);
-			break;
-		case 6:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x20,
-						      0x3, 0x11, 0x10);
-			break;
-		case 7:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x10, 0x03, 0x10,
-				0x54 | ps_tdma_byte4_modify);
-			break;
-		case 8:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x10, 0x03, 0x10,
-				0x14 | ps_tdma_byte4_modify);
-			break;
-		case 11:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x25, 0x03, 0x11,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 12:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x30, 0x03, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-		case 13:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x10, 0x07, 0x10,
-				0x54 | ps_tdma_byte4_modify);
-			break;
-		case 14:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x15, 0x03, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-		case 15:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x20, 0x03, 0x10,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 17:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x10, 0x03, 0x11,
-				0x14 | ps_tdma_byte4_modify);
-			break;
-		case 18:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x10, 0x03, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-
-		case 20:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x30,
-						      0x03, 0x11, 0x10);
-			break;
-		case 22:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x25,
-						      0x03, 0x11, 0x10);
-			break;
-		case 27:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x10,
-						      0x03, 0x11, 0x15);
-			break;
-		case 32:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x35,
-						      0x3, 0x11, 0x11);
-			break;
-		case 33:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x35,
-						      0x03, 0x11, 0x10);
-			break;
-		case 41:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x45,
-						      0x3, 0x11, 0x11);
-			break;
-		case 42:
-			halbtc8822b1ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x1e, 0x3, 0x10,
-				0x14 | ps_tdma_byte4_modify);
-			break;
-		case 43:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x45,
-						      0x3, 0x10, 0x14);
-			break;
-		case 44:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x25,
-						      0x3, 0x10, 0x10);
-			break;
-		case 45:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x29,
-						      0x3, 0x10, 0x10);
-			break;
-		case 46:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x1a,
-						      0x3, 0x10, 0x10);
-			break;
-		case 47:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x32,
-						      0x3, 0x10, 0x10);
-			break;
-		case 48:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x29,
-						      0x3, 0x10, 0x10);
-			break;
-		case 49:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x55, 0x10,
-						      0x3, 0x10, 0x54);
-			break;
-		case 50:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x51, 0x4a,
-						      0x3, 0x10, 0x10);
-			break;
-		case 51:
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x61, 0x35,
-						      0x3, 0x10, 0x11);
-			break;
-		}
-	} else {
-		switch (type) {
-		case 0:
-		default: /* Software control, Antenna at BT side */
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x0, 0x0, 0x0,
-						      0x0, 0x0);
-			break;
-		case 8: /* PTA Control */
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x8, 0x0, 0x0,
-						      0x0, 0x0);
-			break;
-		case 9: /* Software control, Antenna at WiFi side */
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x0, 0x0, 0x0,
-						      0x0, 0x0);
-			break;
-		case 10: /* under 5G , 0x778=1*/
-			halbtc8822b1ant_set_fw_pstdma(btcoexist, 0x0, 0x0, 0x0,
-						      0x0, 0x0);
-
-			break;
-		}
-	}
-
-	if (!coex_sta->is_set_ps_state_fail) {
-		/* update pre state */
-		coex_dm->pre_ps_tdma_on = coex_dm->cur_ps_tdma_on;
-		coex_dm->pre_ps_tdma = coex_dm->cur_ps_tdma;
-	}
-}
-
-static void halbtc8822b1ant_sw_mechanism(struct btc_coexist *btcoexist,
-					 bool low_penalty_ra)
-{
-	halbtc8822b1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, low_penalty_ra);
-}
-
-/* rf4 type by efuse, and for ant at main aux inverse use,
- * because is 2x2, and control types are the same, does not need
- */
-
-static void halbtc8822b1ant_set_rfe_type(struct btc_coexist *btcoexist)
-{
-	struct btc_board_info *board_info = &btcoexist->board_info;
-
-	/* Ext switch buffer mux */
-	btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x1991, 0x3, 0x0);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbe, 0x8, 0x0);
-
-	/* the following setup should be got from Efuse in the future */
-	rfe_type->rfe_module_type = board_info->rfe_type;
-
-	rfe_type->ext_ant_switch_ctrl_polarity = 0;
-
-	switch (rfe_type->rfe_module_type) {
-	case 0:
-	default:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 1:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 2:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 3:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 4:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 5:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 6:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 7:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	}
-}
-
-/*anttenna control by bb mac bt antdiv pta to write 0x4c 0xcb4,0xcbd*/
-
-static void halbtc8822b1ant_set_ext_ant_switch(struct btc_coexist *btcoexist,
-					       bool force_exec, u8 ctrl_type,
-					       u8 pos_type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool switch_polatiry_inverse = false;
-	u8 regval_0xcbd = 0, regval_0x64;
-	u32 u32tmp1 = 0, u32tmp2 = 0, u32tmp3 = 0;
-
-	/* Ext switch buffer mux */
-	btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x1991, 0x3, 0x0);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbe, 0x8, 0x0);
-
-	if (!rfe_type->ext_ant_switch_exist)
-		return;
-
-	coex_dm->cur_ext_ant_switch_status = (ctrl_type << 8) + pos_type;
-
-	if (!force_exec) {
-		if (coex_dm->pre_ext_ant_switch_status ==
-		    coex_dm->cur_ext_ant_switch_status)
-			return;
-	}
-
-	coex_dm->pre_ext_ant_switch_status = coex_dm->cur_ext_ant_switch_status;
-
-	/* swap control polarity if use different switch control polarity*/
-	/* Normal switch polarity for SPDT,
-	 * 0xcbd[1:0] = 2b'01 => Ant to BTG,
-	 * 0xcbd[1:0] = 2b'10 => Ant to WLG
-	 */
-	switch_polatiry_inverse = rfe_type->ext_ant_switch_ctrl_polarity == 1;
-
-	switch (pos_type) {
-	default:
-	case BT_8822B_1ANT_EXT_ANT_SWITCH_TO_BT:
-	case BT_8822B_1ANT_EXT_ANT_SWITCH_TO_NOCARE:
-
-		break;
-	case BT_8822B_1ANT_EXT_ANT_SWITCH_TO_WLG:
-		break;
-	case BT_8822B_1ANT_EXT_ANT_SWITCH_TO_WLA:
-		break;
-	}
-
-	if (rfe_type->ext_ant_switch_type ==
-	    BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT) {
-		switch (ctrl_type) {
-		default:
-		case BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_BBSW:
-			/*  0x4c[23] = 0 */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e,
-							   0x80, 0x0);
-			/* 0x4c[24] = 1 */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f,
-							   0x01, 0x1);
-			/* BB SW, DPDT use RFE_ctrl8 and RFE_ctrl9 as ctrl pin*/
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb4,
-							   0xff, 0x77);
-
-			/* 0xcbd[1:0] = 2b'01 for no switch_polatiry_inverse,
-			 * ANTSWB =1, ANTSW =0
-			 */
-			regval_0xcbd = (!switch_polatiry_inverse ? 0x1 : 0x2);
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd,
-							   0x3, regval_0xcbd);
-
-			break;
-		case BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_PTA:
-			/* 0x4c[23] = 0 */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e,
-							   0x80, 0x0);
-			/* 0x4c[24] = 1 */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f,
-							   0x01, 0x1);
-			/* PTA,  DPDT use RFE_ctrl8 and RFE_ctrl9 as ctrl pin */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb4,
-							   0xff, 0x66);
-
-			/* 0xcbd[1:0] = 2b'10 for no switch_polatiry_inverse,
-			 * ANTSWB =1, ANTSW =0  @ GNT_BT=1
-			 */
-			regval_0xcbd = (!switch_polatiry_inverse ? 0x2 : 0x1);
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd,
-							   0x3, regval_0xcbd);
-
-			break;
-		case BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_ANTDIV:
-			/* 0x4c[23] = 0 */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e,
-							   0x80, 0x0);
-			/* 0x4c[24] = 1 */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f,
-							   0x01, 0x1);
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb4,
-							   0xff, 0x88);
-
-			/* no regval_0xcbd setup required, because
-			 * antenna switch control value by antenna diversity
-			 */
-
-			break;
-		case BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_MAC:
-			/*  0x4c[23] = 1 */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e,
-							   0x80, 0x1);
-
-			/* 0x64[0] = 1b'0 for no switch_polatiry_inverse,
-			 * DPDT_SEL_N =1, DPDT_SEL_P =0
-			 */
-			regval_0x64 = (!switch_polatiry_inverse ? 0x0 : 0x1);
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x64, 0x1,
-							   regval_0x64);
-			break;
-		case BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_BT:
-			/* 0x4c[23] = 0 */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e,
-							   0x80, 0x0);
-			/* 0x4c[24] = 0 */
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f,
-							   0x01, 0x0);
-
-			/* no setup required, because antenna switch control
-			 * value by BT vendor 0xac[1:0]
-			 */
-			break;
-		}
-	}
-
-	u32tmp1 = btcoexist->btc_read_4byte(btcoexist, 0xcbc);
-	u32tmp2 = btcoexist->btc_read_4byte(btcoexist, 0x4c);
-	u32tmp3 = btcoexist->btc_read_4byte(btcoexist, 0x64) & 0xff;
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], ********** (After Ext Ant switch setup) 0xcbc = 0x%08x, 0x4c = 0x%08x, 0x64= 0x%02x**********\n",
-		u32tmp1, u32tmp2, u32tmp3);
-}
-
-/* set gnt_wl gnt_bt control by sw high low, or
- * hwpta while in power on, ini, wlan off, wlan only, wl2g non-currrent,
- * wl2g current, wl5g
- */
-
-static void halbtc8822b1ant_set_ant_path(struct btc_coexist *btcoexist,
-					 u8 ant_pos_type, bool force_exec,
-					 u8 phase)
-
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 u8tmp = 0;
-	u32 u32tmp1 = 0;
-	u32 u32tmp2 = 0, u32tmp3 = 0;
-
-	u32tmp1 = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist, 0x38);
-
-	/* To avoid indirect access fail  */
-	if (((u32tmp1 & 0xf000) >> 12) != ((u32tmp1 & 0x0f00) >> 8)) {
-		force_exec = true;
-		coex_sta->gnt_error_cnt++;
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex],(Before Ant Setup) 0x38= 0x%x\n", u32tmp1);
-	}
-
-	/* Ext switch buffer mux */
-	btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x1991, 0x3, 0x0);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbe, 0x8, 0x0);
-
-	coex_dm->cur_ant_pos_type = (ant_pos_type << 8) + phase;
-
-	if (!force_exec) {
-		if (coex_dm->cur_ant_pos_type == coex_dm->pre_ant_pos_type)
-			return;
-	}
-
-	coex_dm->pre_ant_pos_type = coex_dm->cur_ant_pos_type;
-
-	if (btcoexist->dbg_mode_1ant) {
-		u32tmp1 = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								    0x38);
-		u32tmp2 = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								    0x54);
-		u32tmp3 = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
-
-		u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x73);
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (Before Ant Setup) 0xcb4 = 0x%x, 0x73 = 0x%x, 0x38= 0x%x, 0x54= 0x%x**********\n",
-			u32tmp3, u8tmp, u32tmp1, u32tmp2);
-	}
-
-	switch (phase) {
-	case BT_8822B_1ANT_PHASE_COEX_INIT:
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (set_ant_path - 1ANT_PHASE_COEX_INIT) **********\n");
-
-		/* Disable LTE Coex Function in WiFi side
-		 * (this should be on if LTE coex is required)
-		 */
-		halbtc8822b1ant_ltecoex_enable(btcoexist, 0x0);
-
-		/* GNT_WL_LTE always = 1
-		 * (this should be config if LTE coex is required)
-		 */
-		halbtc8822b1ant_ltecoex_set_coex_table(
-			btcoexist, BT_8822B_1ANT_CTT_WL_VS_LTE, 0xffff);
-
-		/* GNT_BT_LTE always = 1
-		 * (this should be config if LTE coex is required)
-		 */
-		halbtc8822b1ant_ltecoex_set_coex_table(
-			btcoexist, BT_8822B_1ANT_CTT_BT_VS_LTE, 0xffff);
-
-		/* set GNT_BT to SW high */
-		halbtc8822b1ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_SW,
-			BT_8822B_1ANT_SIG_STA_SET_TO_HIGH);
-
-		/* set GNT_WL to SW low */
-		halbtc8822b1ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_SW,
-			BT_8822B_1ANT_SIG_STA_SET_TO_LOW);
-
-		/* set Path control owner to WL at initial step */
-		halbtc8822b1ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_1ANT_PCO_WLSIDE);
-
-		coex_sta->run_time_state = false;
-
-		/* Ext switch buffer mux */
-		btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff);
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x1991, 0x3, 0x0);
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbe, 0x8, 0x0);
-
-		if (ant_pos_type == BTC_ANT_PATH_AUTO)
-			ant_pos_type = BTC_ANT_PATH_BT;
-
-		break;
-	case BT_8822B_1ANT_PHASE_WLANONLY_INIT:
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (set_ant_path - 1ANT_PHASE_WLANONLY_INIT) **********\n");
-
-		/* Disable LTE Coex Function in WiFi side
-		 * (this should be on if LTE coex is required)
-		 */
-		halbtc8822b1ant_ltecoex_enable(btcoexist, 0x0);
-
-		/* GNT_WL_LTE always = 1
-		 * (this should be config if LTE coex is required)
-		 */
-		halbtc8822b1ant_ltecoex_set_coex_table(
-			btcoexist, BT_8822B_1ANT_CTT_WL_VS_LTE, 0xffff);
-
-		/* GNT_BT_LTE always = 1
-		 * (this should be config if LTE coex is required)
-		 */
-		halbtc8822b1ant_ltecoex_set_coex_table(
-			btcoexist, BT_8822B_1ANT_CTT_BT_VS_LTE, 0xffff);
-
-		/* set GNT_BT to SW Low */
-		halbtc8822b1ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_SW,
-			BT_8822B_1ANT_SIG_STA_SET_TO_LOW);
-
-		/* Set GNT_WL to SW high */
-		halbtc8822b1ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_SW,
-			BT_8822B_1ANT_SIG_STA_SET_TO_HIGH);
-
-		/* set Path control owner to WL at initial step */
-		halbtc8822b1ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_1ANT_PCO_WLSIDE);
-
-		coex_sta->run_time_state = false;
-
-		/* Ext switch buffer mux */
-		btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff);
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x1991, 0x3, 0x0);
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbe, 0x8, 0x0);
-
-		if (ant_pos_type == BTC_ANT_PATH_AUTO)
-			ant_pos_type = BTC_ANT_PATH_WIFI;
-
-		break;
-	case BT_8822B_1ANT_PHASE_WLAN_OFF:
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (set_ant_path - 1ANT_PHASE_WLAN_OFF) **********\n");
-
-		/* Disable LTE Coex Function in WiFi side */
-		halbtc8822b1ant_ltecoex_enable(btcoexist, 0x0);
-
-		/* set Path control owner to BT */
-		halbtc8822b1ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_1ANT_PCO_BTSIDE);
-
-		/* Set Ext Ant Switch to BT control at wifi off step */
-		halbtc8822b1ant_set_ext_ant_switch(
-			btcoexist, FORCE_EXEC,
-			BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_BT,
-			BT_8822B_1ANT_EXT_ANT_SWITCH_TO_NOCARE);
-
-		coex_sta->run_time_state = false;
-
-		break;
-	case BT_8822B_1ANT_PHASE_2G_RUNTIME:
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (set_ant_path - 1ANT_PHASE_2G_RUNTIME) **********\n");
-
-		/* set GNT_BT to PTA */
-		halbtc8822b1ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_PTA,
-			BT_8822B_1ANT_SIG_STA_SET_BY_HW);
-
-		/* Set GNT_WL to PTA */
-		halbtc8822b1ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_PTA,
-			BT_8822B_1ANT_SIG_STA_SET_BY_HW);
-
-		/* set Path control owner to WL at runtime step */
-		halbtc8822b1ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_1ANT_PCO_WLSIDE);
-
-		coex_sta->run_time_state = true;
-
-		if (ant_pos_type == BTC_ANT_PATH_AUTO)
-			ant_pos_type = BTC_ANT_PATH_PTA;
-
-		break;
-	case BT_8822B_1ANT_PHASE_5G_RUNTIME:
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (set_ant_path - 1ANT_PHASE_5G_RUNTIME) **********\n");
-
-		/* set GNT_BT to SW Hi */
-		halbtc8822b1ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_SW,
-			BT_8822B_1ANT_SIG_STA_SET_TO_HIGH);
-
-		/* Set GNT_WL to SW Hi */
-		halbtc8822b1ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_SW,
-			BT_8822B_1ANT_SIG_STA_SET_TO_HIGH);
-
-		/* set Path control owner to WL at runtime step */
-		halbtc8822b1ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_1ANT_PCO_WLSIDE);
-
-		coex_sta->run_time_state = true;
-
-		if (ant_pos_type == BTC_ANT_PATH_AUTO)
-			ant_pos_type = BTC_ANT_PATH_WIFI5G;
-
-		break;
-	case BT_8822B_1ANT_PHASE_BTMPMODE:
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (set_ant_path - 1ANT_PHASE_BTMPMODE) **********\n");
-
-		/* Disable LTE Coex Function in WiFi side */
-		halbtc8822b1ant_ltecoex_enable(btcoexist, 0x0);
-
-		/* set GNT_BT to SW Hi */
-		halbtc8822b1ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_SW,
-			BT_8822B_1ANT_SIG_STA_SET_TO_HIGH);
-
-		/* Set GNT_WL to SW Lo */
-		halbtc8822b1ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_1ANT_GNT_CTRL_BY_SW,
-			BT_8822B_1ANT_SIG_STA_SET_TO_LOW);
-
-		/* set Path control owner to WL */
-		halbtc8822b1ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_1ANT_PCO_WLSIDE);
-
-		coex_sta->run_time_state = false;
-
-		/* Set Ext Ant Switch to BT side at BT MP mode */
-		if (ant_pos_type == BTC_ANT_PATH_AUTO)
-			ant_pos_type = BTC_ANT_PATH_BT;
-
-		break;
-	}
-
-	if (phase != BT_8822B_1ANT_PHASE_WLAN_OFF) {
-		switch (ant_pos_type) {
-		case BTC_ANT_PATH_WIFI:
-			halbtc8822b1ant_set_ext_ant_switch(
-				btcoexist, force_exec,
-				BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_BBSW,
-				BT_8822B_1ANT_EXT_ANT_SWITCH_TO_WLG);
-			break;
-		case BTC_ANT_PATH_WIFI5G:
-			halbtc8822b1ant_set_ext_ant_switch(
-				btcoexist, force_exec,
-				BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_BBSW,
-				BT_8822B_1ANT_EXT_ANT_SWITCH_TO_WLA);
-			break;
-		case BTC_ANT_PATH_BT:
-			halbtc8822b1ant_set_ext_ant_switch(
-				btcoexist, force_exec,
-				BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_BBSW,
-				BT_8822B_1ANT_EXT_ANT_SWITCH_TO_BT);
-			break;
-		default:
-		case BTC_ANT_PATH_PTA:
-			halbtc8822b1ant_set_ext_ant_switch(
-				btcoexist, force_exec,
-				BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_PTA,
-				BT_8822B_1ANT_EXT_ANT_SWITCH_TO_NOCARE);
-			break;
-		}
-	}
-
-	if (btcoexist->dbg_mode_1ant) {
-		u32tmp1 = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								    0x38);
-		u32tmp2 = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								    0x54);
-		u32tmp3 = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
-
-		u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x73);
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (After Ant Setup) 0xcb4 = 0x%x, 0x73 = 0x%x, 0x38= 0x%x, 0x54= 0x%x**********\n",
-			u32tmp3, u8tmp, u32tmp1, u32tmp2);
-	}
-}
-
-static bool halbtc8822b1ant_is_common_action(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool common = false, wifi_connected = false, wifi_busy = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	if (!wifi_connected &&
-	    coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_NON_CONNECTED_IDLE) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], Wifi non connected-idle + BT non connected-idle!!\n");
-
-		/* halbtc8822b1ant_sw_mechanism(btcoexist, false); */
-
-		common = true;
-	} else if (wifi_connected &&
-		   (coex_dm->bt_status ==
-		    BT_8822B_1ANT_BT_STATUS_NON_CONNECTED_IDLE)) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], Wifi connected + BT non connected-idle!!\n");
-
-		/* halbtc8822b1ant_sw_mechanism(btcoexist, false); */
-
-		common = true;
-	} else if (!wifi_connected && (BT_8822B_1ANT_BT_STATUS_CONNECTED_IDLE ==
-				       coex_dm->bt_status)) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], Wifi non connected-idle + BT connected-idle!!\n");
-
-		/* halbtc8822b1ant_sw_mechanism(btcoexist, false); */
-
-		common = true;
-	} else if (wifi_connected && (BT_8822B_1ANT_BT_STATUS_CONNECTED_IDLE ==
-				      coex_dm->bt_status)) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Wifi connected + BT connected-idle!!\n");
-
-		/* halbtc8822b1ant_sw_mechanism(btcoexist, false); */
-
-		common = true;
-	} else if (!wifi_connected && (BT_8822B_1ANT_BT_STATUS_CONNECTED_IDLE !=
-				       coex_dm->bt_status)) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Wifi non connected-idle + BT Busy!!\n");
-
-		/* halbtc8822b1ant_sw_mechanism(btcoexist, false); */
-
-		common = true;
-	} else {
-		if (wifi_busy) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Wifi Connected-Busy + BT Busy!!\n");
-		} else {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Wifi Connected-Idle + BT Busy!!\n");
-		}
-
-		common = false;
-	}
-
-	return common;
-}
-
-static void halbtc8822b1ant_action_wifi_under5g(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], under 5g start\n");
-	/* for test : s3 bt disappear , fail rate 1/600*/
-	/*set sw gnt wl bt  high*/
-	halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, FORCE_EXEC,
-				     BT_8822B_1ANT_PHASE_5G_RUNTIME);
-
-	halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-	halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd, 0x3, 1);
-}
-
-static void halbtc8822b1ant_action_wifi_only(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_under_5g = false, rf4ce_enabled = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-	if (wifi_under_5g) {
-		halbtc8822b1ant_action_wifi_under5g(btcoexist);
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (wlan only -- under 5g ) **********\n");
-		return;
-	}
-
-	if (rf4ce_enabled) {
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x45e, 0x8, 0x1);
-
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 50);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
-		return;
-	}
-	halbtc8822b1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0);
-	halbtc8822b1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 8);
-
-	halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, FORCE_EXEC,
-				     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ********** (wlan only -- under 2g ) **********\n");
-}
-
-static void
-halbtc8822b1ant_action_wifi_native_lps(struct btc_coexist *btcoexist)
-{
-	halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-
-	halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-}
-
-/* *********************************************
- *
- *	Non-Software Coex Mechanism start
- *
- * **********************************************/
-
-static void halbtc8822b1ant_action_bt_whck_test(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex],action_bt_whck_test\n");
-
-	halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-
-	halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, NORMAL_EXEC,
-				     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-	halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-}
-
-static void
-halbtc8822b1ant_action_wifi_multi_port(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex],action_wifi_multi_port\n");
-
-	halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-
-	halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, NORMAL_EXEC,
-				     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-	halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-}
-
-static void halbtc8822b1ant_action_hs(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, "[BTCoex], action_hs\n");
-
-	halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5);
-
-	halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, NORMAL_EXEC,
-				     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-	halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-}
-
-static void halbtc8822b1ant_action_bt_relink(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], run bt multi link function\n");
-
-	if (coex_sta->is_bt_multi_link)
-		return;
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], run bt_re-link function\n");
-
-	halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-	halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-}
-
-/*"""bt inquiry"""" + wifi any + bt any*/
-
-static void halbtc8822b1ant_action_bt_inquiry(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool wifi_connected = false, ap_enable = false, wifi_busy = false,
-	     bt_busy = false, rf4ce_enabled = false;
-
-	bool wifi_scan = false, link = false, roam = false;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ********** (bt inquiry) **********\n");
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
-			   &ap_enable);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &wifi_scan);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], ********** scan = %d,  link =%d, roam = %d**********\n",
-		wifi_scan, link, roam);
-
-	if ((link) || (roam) || (coex_sta->wifi_is_high_pri_task)) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (bt inquiry wifi  connect or scan ) **********\n");
-
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 1);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 6);
-
-	} else if ((wifi_scan) && (coex_sta->bt_create_connection)) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 22);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 6);
-
-	} else if ((!wifi_connected) && (!wifi_scan)) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (bt inquiry wifi non connect) **********\n");
-
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-	} else if ((bt_link_info->a2dp_exist) && (bt_link_info->pan_exist)) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 22);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-	} else if (bt_link_info->a2dp_exist) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 3);
-	} else if (wifi_scan) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-	} else if (wifi_busy) {
-		/* for BT inquiry/page fail after S4 resume */
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
-		/*aaaa->55aa for bt connect while wl busy*/
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC,
-						     15);
-		if (rf4ce_enabled) {
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0x45e,
-							   0x8, 0x1);
-
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						50);
-
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 0);
-		}
-	} else {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (bt inquiry wifi connect) **********\n");
-
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 22);
-
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     NORMAL_EXEC,
-					     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-	}
-}
-
-static void
-halbtc8822b1ant_action_bt_sco_hid_only_busy(struct btc_coexist *btcoexist)
-{
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool wifi_connected = false, wifi_busy = false;
-	u32 wifi_bw = 1;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	if (bt_link_info->sco_exist) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-	} else {
-		if (coex_sta->is_hid_low_pri_tx_overhead) {
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 6);
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						18);
-		} else if (wifi_bw == 0) { /* if 11bg mode */
-
-			if (coex_sta->is_bt_multi_link) {
-				halbtc8822b1ant_coex_table_with_type(
-					btcoexist, NORMAL_EXEC, 11);
-				halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 11);
-			} else {
-				halbtc8822b1ant_coex_table_with_type(
-					btcoexist, NORMAL_EXEC, 6);
-				halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 11);
-			}
-		} else {
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 6);
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						11);
-		}
-	}
-}
-
-static void
-halbtc8822b1ant_action_wifi_connected_bt_acl_busy(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool wifi_busy = false, wifi_turbo = false;
-	u32 wifi_bw = 1;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
-			   &coex_sta->scan_ap_num);
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"############# [BTCoex],  scan_ap_num = %d, wl_noisy_level = %d\n",
-		coex_sta->scan_ap_num, coex_sta->wl_noisy_level);
-
-	if ((wifi_busy) && (coex_sta->wl_noisy_level == 0))
-		wifi_turbo = true;
-
-	if ((coex_sta->bt_relink_downcount != 0) &&
-	    (!bt_link_info->pan_exist) && (wifi_busy)) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"############# [BTCoex],  BT Re-Link + A2DP + WL busy\n");
-
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-	} else if ((bt_link_info->a2dp_exist) && (coex_sta->is_bt_a2dp_sink)) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 12);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 6);
-	} else if (bt_link_info->a2dp_only) { /* A2DP		 */
-
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 7);
-
-		if (wifi_turbo)
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 19);
-		else
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 4);
-	} else if (((bt_link_info->a2dp_exist) && (bt_link_info->pan_exist)) ||
-		   (bt_link_info->hid_exist && bt_link_info->a2dp_exist &&
-		    bt_link_info->pan_exist)) {
-		/* A2DP+PAN(OPP,FTP), HID+A2DP+PAN(OPP,FTP) */
-
-		if (wifi_busy)
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						13);
-		else
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						14);
-
-		if (bt_link_info->hid_exist)
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-		else if (wifi_turbo)
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 19);
-		else
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 4);
-	} else if (bt_link_info->hid_exist &&
-		   bt_link_info->a2dp_exist) { /* HID+A2DP */
-
-		if (wifi_bw == 0) { /* if 11bg mode */
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-			halbtc8822b1ant_set_wltoggle_coex_table(
-				btcoexist, NORMAL_EXEC, 1, 0xaa, 0x5a, 0xaa,
-				0xaa);
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						49);
-		} else {
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-			halbtc8822b1ant_limited_rx(btcoexist, NORMAL_EXEC,
-						   false, true, 8);
-			halbtc8822b1ant_set_wltoggle_coex_table(
-				btcoexist, NORMAL_EXEC, 1, 0xaa, 0x5a, 0xaa,
-				0xaa);
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						49);
-		}
-		/* PAN(OPP,FTP), HID+PAN(OPP,FTP) */
-
-	} else if ((bt_link_info->pan_only) ||
-		   (bt_link_info->hid_exist && bt_link_info->pan_exist)) {
-		if (!wifi_busy)
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						4);
-		else
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						3);
-
-		if (bt_link_info->hid_exist)
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-		else if (wifi_turbo)
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 19);
-		else
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 4);
-	} else {
-		/* BT no-profile busy (0x9) */
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 33);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-	}
-}
-
-/*wifi not connected + bt action*/
-
-static void
-halbtc8822b1ant_action_wifi_not_connected(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool rf4ce_enabled = false;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ********** (wifi not connect) **********\n");
-
-	/* tdma and coex table */
-	if (rf4ce_enabled) {
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x45e, 0x8, 0x1);
-
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 50);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
-		return;
-	}
-	halbtc8822b1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 8);
-
-	halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, NORMAL_EXEC,
-				     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-	halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-}
-
-/*""""wl not connected scan"""" + bt action*/
-static void
-halbtc8822b1ant_action_wifi_not_connected_scan(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool bt_hs_on = false;
-	u32 wifi_link_status = 0;
-	u32 num_of_wifi_link = 0;
-	bool bt_ctrl_agg_buf_size = false;
-	u8 agg_buf_size = 5;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ********** (wifi non connect scan) **********\n");
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
-			   &wifi_link_status);
-
-	num_of_wifi_link = wifi_link_status >> 16;
-
-	if (num_of_wifi_link >= 2) {
-		halbtc8822b1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
-		halbtc8822b1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
-					   bt_ctrl_agg_buf_size, agg_buf_size);
-
-		if (coex_sta->c2h_bt_inquiry_page) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "############# [BTCoex],  BT Is Inquirying\n");
-			halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		} else {
-			halbtc8822b1ant_action_wifi_multi_port(btcoexist);
-		}
-		return;
-	}
-
-	if (coex_sta->c2h_bt_inquiry_page) {
-		halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		return;
-	} else if (bt_hs_on) {
-		halbtc8822b1ant_action_hs(btcoexist);
-		return;
-	}
-
-	/* tdma and coex table */
-	if (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_BUSY) {
-		if (bt_link_info->a2dp_exist) {
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						32);
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-		} else if (bt_link_info->a2dp_exist &&
-			   bt_link_info->pan_exist) {
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						22);
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-		} else {
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						20);
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-		}
-	} else if ((coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_SCO_BUSY) ||
-		   (BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY ==
-		    coex_dm->bt_status)) {
-		halbtc8822b1ant_action_bt_sco_hid_only_busy(btcoexist);
-	} else {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     NORMAL_EXEC,
-					     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-	}
-}
-
-/*""""wl not connected asso"""" + bt action*/
-
-static void halbtc8822b1ant_action_wifi_not_connected_asso_auth(
-	struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool bt_hs_on = false;
-	u32 wifi_link_status = 0;
-	u32 num_of_wifi_link = 0;
-	bool bt_ctrl_agg_buf_size = false;
-	u8 agg_buf_size = 5;
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], ********** (wifi non connect asso_auth) **********\n");
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
-			   &wifi_link_status);
-
-	num_of_wifi_link = wifi_link_status >> 16;
-
-	if (num_of_wifi_link >= 2) {
-		halbtc8822b1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
-		halbtc8822b1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
-					   bt_ctrl_agg_buf_size, agg_buf_size);
-
-		if (coex_sta->c2h_bt_inquiry_page) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "############# [BTCoex],  BT Is Inquirying\n");
-			halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		} else {
-			halbtc8822b1ant_action_wifi_multi_port(btcoexist);
-		}
-		return;
-	}
-
-	if (coex_sta->c2h_bt_inquiry_page) {
-		halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		return;
-	} else if (bt_hs_on) {
-		halbtc8822b1ant_action_hs(btcoexist);
-		return;
-	}
-
-	/* tdma and coex table */
-	if ((bt_link_info->sco_exist) || (bt_link_info->hid_exist) ||
-	    (bt_link_info->a2dp_exist)) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 4);
-	} else if (bt_link_info->pan_exist) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 4);
-	} else {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     NORMAL_EXEC,
-					     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 2);
-	}
-}
-
-/*""""wl  connected scan"""" + bt action*/
-
-static void
-halbtc8822b1ant_action_wifi_connected_scan(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool bt_hs_on = false;
-	u32 wifi_link_status = 0;
-	u32 num_of_wifi_link = 0;
-	bool bt_ctrl_agg_buf_size = false;
-	u8 agg_buf_size = 5;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ********** (wifi connect scan) **********\n");
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
-			   &wifi_link_status);
-
-	num_of_wifi_link = wifi_link_status >> 16;
-
-	if (num_of_wifi_link >= 2) {
-		halbtc8822b1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
-		halbtc8822b1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
-					   bt_ctrl_agg_buf_size, agg_buf_size);
-
-		if (coex_sta->c2h_bt_inquiry_page) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "############# [BTCoex],  BT Is Inquirying\n");
-			halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		} else {
-			halbtc8822b1ant_action_wifi_multi_port(btcoexist);
-		}
-		return;
-	}
-
-	if (coex_sta->c2h_bt_inquiry_page) {
-		halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		return;
-	} else if (bt_hs_on) {
-		halbtc8822b1ant_action_hs(btcoexist);
-		return;
-	}
-
-	/* tdma and coex table */
-	if (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_BUSY) {
-		if (bt_link_info->a2dp_exist) {
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						32);
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-		} else if (bt_link_info->a2dp_exist &&
-			   bt_link_info->pan_exist) {
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						22);
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-		} else {
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						20);
-			halbtc8822b1ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-		}
-	} else if ((coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_SCO_BUSY) ||
-		   (BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY ==
-		    coex_dm->bt_status)) {
-		halbtc8822b1ant_action_bt_sco_hid_only_busy(btcoexist);
-	} else {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     NORMAL_EXEC,
-					     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 6);
-	}
-}
-
-/*""""wl  connected specific packet"""" + bt action*/
-
-static void halbtc8822b1ant_action_wifi_connected_specific_packet(
-	struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool bt_hs_on = false;
-	u32 wifi_link_status = 0;
-	u32 num_of_wifi_link = 0;
-	bool bt_ctrl_agg_buf_size = false;
-	u8 agg_buf_size = 5;
-	bool wifi_busy = false;
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], ********** (wifi connect specific packet) **********\n");
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
-			   &wifi_link_status);
-
-	num_of_wifi_link = wifi_link_status >> 16;
-
-	if (num_of_wifi_link >= 2) {
-		halbtc8822b1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
-		halbtc8822b1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
-					   bt_ctrl_agg_buf_size, agg_buf_size);
-
-		if (coex_sta->c2h_bt_inquiry_page) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "############# [BTCoex],  BT Is Inquirying\n");
-			halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		} else {
-			halbtc8822b1ant_action_wifi_multi_port(btcoexist);
-		}
-		return;
-	}
-
-	if (coex_sta->c2h_bt_inquiry_page) {
-		halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		return;
-	} else if (bt_hs_on) {
-		halbtc8822b1ant_action_hs(btcoexist);
-		return;
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	/* no specific packet process for both WiFi and BT very busy */
-	if ((wifi_busy) &&
-	    ((bt_link_info->pan_exist) || (coex_sta->num_of_profile >= 2)))
-		return;
-
-	/* tdma and coex table */
-	if ((bt_link_info->sco_exist) || (bt_link_info->hid_exist)) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-	} else if (bt_link_info->a2dp_exist) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32);
-		/*for a2dp glitch,change from 1 to 15*/
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC,
-						     15);
-	} else if (bt_link_info->pan_exist) {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20);
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1);
-	} else {
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8);
-
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     NORMAL_EXEC,
-					     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-	}
-}
-
-/* wifi connected input point:
- * to set different ps and tdma case (+bt different case)
- */
-
-static void halbtc8822b1ant_action_wifi_connected(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_busy = false, rf4ce_enabled = false;
-	bool scan = false, link = false, roam = false;
-	bool under_4way = false, ap_enable = false, wifi_under_5g = false;
-	u8 wifi_rssi_state;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], CoexForWifiConnect()===>\n");
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if (wifi_under_5g) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], CoexForWifiConnect(), return for wifi is under 5g<===\n");
-
-		halbtc8822b1ant_action_wifi_under5g(btcoexist);
-
-		return;
-	}
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], CoexForWifiConnect(), return for wifi is under 2g<===\n");
-
-	halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, NORMAL_EXEC,
-				     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS,
-			   &under_4way);
-
-	if (under_4way) {
-		halbtc8822b1ant_action_wifi_connected_specific_packet(
-			btcoexist);
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], CoexForWifiConnect(), return for wifi is under 4way<===\n");
-		return;
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
-	if (scan || link || roam) {
-		if (scan)
-			halbtc8822b1ant_action_wifi_connected_scan(btcoexist);
-		else
-			halbtc8822b1ant_action_wifi_connected_specific_packet(
-				btcoexist);
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], CoexForWifiConnect(), return for wifi is under scan<===\n");
-		return;
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
-			   &ap_enable);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	/* tdma and coex table */
-	if (!wifi_busy) {
-		if (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_BUSY) {
-			halbtc8822b1ant_action_wifi_connected_bt_acl_busy(
-				btcoexist);
-		} else if ((BT_8822B_1ANT_BT_STATUS_SCO_BUSY ==
-			    coex_dm->bt_status) ||
-			   (BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY ==
-			    coex_dm->bt_status)) {
-			halbtc8822b1ant_action_bt_sco_hid_only_busy(btcoexist);
-		} else {
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false,
-						8);
-
-			halbtc8822b1ant_set_ant_path(
-				btcoexist, BTC_ANT_PATH_AUTO, NORMAL_EXEC,
-				BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-			if ((coex_sta->high_priority_tx) +
-				    (coex_sta->high_priority_rx) <=
-			    60)
-				/*sy modify case16 -> case17*/
-				halbtc8822b1ant_coex_table_with_type(
-					btcoexist, NORMAL_EXEC, 1);
-			else
-				halbtc8822b1ant_coex_table_with_type(
-					btcoexist, NORMAL_EXEC, 1);
-		}
-	} else {
-		if (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_BUSY) {
-			halbtc8822b1ant_action_wifi_connected_bt_acl_busy(
-				btcoexist);
-		} else if ((BT_8822B_1ANT_BT_STATUS_SCO_BUSY ==
-			    coex_dm->bt_status) ||
-			   (BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY ==
-			    coex_dm->bt_status)) {
-			halbtc8822b1ant_action_bt_sco_hid_only_busy(btcoexist);
-		} else {
-			if (rf4ce_enabled) {
-				btcoexist->btc_write_1byte_bitmask(
-					btcoexist, 0x45e, 0x8, 0x1);
-
-				halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 50);
-
-				halbtc8822b1ant_coex_table_with_type(
-					btcoexist, NORMAL_EXEC, 1);
-				return;
-			}
-
-			halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false,
-						8);
-
-			halbtc8822b1ant_set_ant_path(
-				btcoexist, BTC_ANT_PATH_AUTO, NORMAL_EXEC,
-				BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-			wifi_rssi_state = halbtc8822b1ant_wifi_rssi_state(
-				btcoexist, 1, 2, 25, 0);
-
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], ********** before  **********\n");
-			if (BT_8822B_1ANT_BT_STATUS_NON_CONNECTED_IDLE ==
-			    coex_dm->bt_status) {
-				if (rf4ce_enabled) {
-					btcoexist->btc_write_1byte_bitmask(
-						btcoexist, 0x45e, 0x8, 0x1);
-
-					halbtc8822b1ant_ps_tdma(btcoexist,
-								NORMAL_EXEC,
-								true, 50);
-
-					halbtc8822b1ant_coex_table_with_type(
-						btcoexist, NORMAL_EXEC, 1);
-					return;
-				}
-
-				halbtc8822b1ant_coex_table_with_type(
-					btcoexist, NORMAL_EXEC, 1);
-			} else {
-				halbtc8822b1ant_coex_table_with_type(
-					btcoexist, NORMAL_EXEC, 1);
-			}
-		}
-	}
-}
-
-static void
-halbtc8822b1ant_run_sw_coexist_mechanism(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 algorithm = 0;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ********** (run sw coexmech) **********\n");
-	algorithm = halbtc8822b1ant_action_algorithm(btcoexist);
-	coex_dm->cur_algorithm = algorithm;
-
-	if (halbtc8822b1ant_is_common_action(btcoexist)) {
-	} else {
-		switch (coex_dm->cur_algorithm) {
-		case BT_8822B_1ANT_COEX_ALGO_SCO:
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Action algorithm = SCO.\n");
-			break;
-		case BT_8822B_1ANT_COEX_ALGO_HID:
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Action algorithm = HID.\n");
-			break;
-		case BT_8822B_1ANT_COEX_ALGO_A2DP:
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Action algorithm = A2DP.\n");
-			break;
-		case BT_8822B_1ANT_COEX_ALGO_A2DP_PANHS:
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], Action algorithm = A2DP+PAN(HS).\n");
-			break;
-		case BT_8822B_1ANT_COEX_ALGO_PANEDR:
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Action algorithm = PAN(EDR).\n");
-			break;
-		case BT_8822B_1ANT_COEX_ALGO_PANHS:
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Action algorithm = HS mode.\n");
-			break;
-		case BT_8822B_1ANT_COEX_ALGO_PANEDR_A2DP:
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Action algorithm = PAN+A2DP.\n");
-			break;
-		case BT_8822B_1ANT_COEX_ALGO_PANEDR_HID:
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], Action algorithm = PAN(EDR)+HID.\n");
-			break;
-		case BT_8822B_1ANT_COEX_ALGO_HID_A2DP_PANEDR:
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], Action algorithm = HID+A2DP+PAN.\n");
-			break;
-		case BT_8822B_1ANT_COEX_ALGO_HID_A2DP:
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Action algorithm = HID+A2DP.\n");
-			break;
-		default:
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], Action algorithm = coexist All Off!!\n");
-			break;
-		}
-		coex_dm->pre_algorithm = coex_dm->cur_algorithm;
-	}
-}
-
-static void halbtc8822b1ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool wifi_connected = false, bt_hs_on = false;
-	bool increase_scan_dev_num = false;
-	bool bt_ctrl_agg_buf_size = false;
-	bool miracast_plus_bt = false;
-	u8 agg_buf_size = 5;
-	u32 wifi_link_status = 0;
-	u32 num_of_wifi_link = 0, wifi_bw;
-	u8 iot_peer = BTC_IOT_PEER_UNKNOWN;
-	bool wifi_under_5g = false;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], RunCoexistMechanism()===>\n");
-
-	if (btcoexist->manual_control) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], RunCoexistMechanism(), return for Manual CTRL <===\n");
-		return;
-	}
-
-	if (btcoexist->stop_coex_dm) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], RunCoexistMechanism(), return for Stop Coex DM <===\n");
-		return;
-	}
-
-	if (coex_sta->under_ips) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], wifi is under IPS !!!\n");
-		return;
-	}
-
-	if ((coex_sta->under_lps) &&
-	    (coex_dm->bt_status != BT_8822B_1ANT_BT_STATUS_ACL_BUSY)) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], RunCoexistMechanism(), wifi is under LPS !!!\n");
-		halbtc8822b1ant_action_wifi_native_lps(btcoexist);
-		return;
-	}
-
-	if (!coex_sta->run_time_state) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], return for run_time_state = false !!!\n");
-		return;
-	}
-
-	if (coex_sta->freeze_coexrun_by_btinfo) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], BtInfoNotify(), return for freeze_coexrun_by_btinfo\n");
-		return;
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-	if (wifi_under_5g) {
-		halbtc8822b1ant_action_wifi_under5g(btcoexist);
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], WiFi is under 5G!!!\n");
-		return;
-	}
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], WiFi is under 2G!!!\n");
-
-	halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, NORMAL_EXEC,
-				     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-	if (coex_sta->bt_whck_test) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BT is under WHCK TEST!!!\n");
-		halbtc8822b1ant_action_bt_whck_test(btcoexist);
-		return;
-	}
-
-	if (coex_sta->bt_disabled) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BT is disabled !!!\n");
-		halbtc8822b1ant_action_wifi_only(btcoexist);
-		return;
-	}
-
-	if (coex_sta->is_setup_link) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BT is re-link !!!\n");
-		halbtc8822b1ant_action_bt_relink(btcoexist);
-		return;
-	}
-
-	if ((coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_BUSY) ||
-	    (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_SCO_BUSY) ||
-	    (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY))
-		increase_scan_dev_num = true;
-
-	btcoexist->btc_set(btcoexist, BTC_SET_BL_INC_SCAN_DEV_NUM,
-			   &increase_scan_dev_num);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
-			   &wifi_link_status);
-	num_of_wifi_link = wifi_link_status >> 16;
-
-	if ((num_of_wifi_link >= 2) ||
-	    (wifi_link_status & WIFI_P2P_GO_CONNECTED)) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"############# [BTCoex],  Multi-Port num_of_wifi_link = %d, wifi_link_status = 0x%x\n",
-			num_of_wifi_link, wifi_link_status);
-
-		if (bt_link_info->bt_link_exist) {
-			halbtc8822b1ant_limited_tx(btcoexist, NORMAL_EXEC, 1, 1,
-						   0, 1);
-			miracast_plus_bt = true;
-		} else {
-			halbtc8822b1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0,
-						   0, 0);
-			miracast_plus_bt = false;
-		}
-		btcoexist->btc_set(btcoexist, BTC_SET_BL_MIRACAST_PLUS_BT,
-				   &miracast_plus_bt);
-		halbtc8822b1ant_limited_rx(btcoexist, NORMAL_EXEC, false,
-					   bt_ctrl_agg_buf_size, agg_buf_size);
-
-		if ((bt_link_info->a2dp_exist) &&
-		    (coex_sta->c2h_bt_inquiry_page)) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "############# [BTCoex],  BT Is Inquirying\n");
-			halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		} else {
-			halbtc8822b1ant_action_wifi_multi_port(btcoexist);
-		}
-
-		return;
-	}
-
-	miracast_plus_bt = false;
-	btcoexist->btc_set(btcoexist, BTC_SET_BL_MIRACAST_PLUS_BT,
-			   &miracast_plus_bt);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-
-	if ((bt_link_info->bt_link_exist) && (wifi_connected)) {
-		halbtc8822b1ant_limited_tx(btcoexist, NORMAL_EXEC, 1, 1, 0, 1);
-
-		btcoexist->btc_get(btcoexist, BTC_GET_U1_IOT_PEER, &iot_peer);
-
-		if (iot_peer != BTC_IOT_PEER_CISCO) {
-			if (bt_link_info->sco_exist)
-				halbtc8822b1ant_limited_rx(btcoexist,
-							   NORMAL_EXEC, true,
-							   false, 0x5);
-			else
-				halbtc8822b1ant_limited_rx(btcoexist,
-							   NORMAL_EXEC, false,
-							   false, 0x5);
-		} else {
-			if (bt_link_info->sco_exist) {
-				halbtc8822b1ant_limited_rx(btcoexist,
-							   NORMAL_EXEC, true,
-							   false, 0x5);
-			} else {
-				if (wifi_bw == BTC_WIFI_BW_HT40)
-					halbtc8822b1ant_limited_rx(
-						btcoexist, NORMAL_EXEC, false,
-						true, 0x10);
-				else
-					halbtc8822b1ant_limited_rx(
-						btcoexist, NORMAL_EXEC, false,
-						true, 0x8);
-			}
-		}
-
-		halbtc8822b1ant_sw_mechanism(btcoexist, true);
-		halbtc8822b1ant_run_sw_coexist_mechanism(
-			btcoexist); /* just print debug message */
-	} else {
-		halbtc8822b1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0);
-
-		halbtc8822b1ant_limited_rx(btcoexist, NORMAL_EXEC, false, false,
-					   0x5);
-
-		halbtc8822b1ant_sw_mechanism(btcoexist, false);
-		halbtc8822b1ant_run_sw_coexist_mechanism(
-			btcoexist); /* just print debug message */
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-	if (coex_sta->c2h_bt_inquiry_page) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "############# [BTCoex],  BT Is Inquirying\n");
-		halbtc8822b1ant_action_bt_inquiry(btcoexist);
-		return;
-	} else if (bt_hs_on) {
-		halbtc8822b1ant_action_hs(btcoexist);
-		return;
-	}
-
-	if (!wifi_connected) {
-		bool scan = false, link = false, roam = false;
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], wifi is non connected-idle !!!\n");
-
-		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan);
-		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
-		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
-
-		if (scan)
-			halbtc8822b1ant_action_wifi_not_connected_scan(
-				btcoexist);
-		else if (link || roam)
-			halbtc8822b1ant_action_wifi_not_connected_asso_auth(
-				btcoexist);
-		else
-			halbtc8822b1ant_action_wifi_not_connected(btcoexist);
-	} else { /* wifi LPS/Busy */
-		halbtc8822b1ant_action_wifi_connected(btcoexist);
-	}
-}
-
-static void halbtc8822b1ant_init_coex_dm(struct btc_coexist *btcoexist)
-{
-	/* force to reset coex mechanism */
-
-	halbtc8822b1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, false);
-
-	/* sw all off */
-	halbtc8822b1ant_sw_mechanism(btcoexist, false);
-
-	coex_sta->pop_event_cnt = 0;
-}
-
-static void halbtc8822b1ant_init_hw_config(struct btc_coexist *btcoexist,
-					   bool back_up, bool wifi_only)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 u8tmp = 0, i = 0;
-	u32 u32tmp1 = 0, u32tmp2 = 0, u32tmp3 = 0;
-
-	u32tmp3 = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
-	u32tmp1 = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist, 0x38);
-	u32tmp2 = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist, 0x54);
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], ********** (Before Init HW config) 0xcb4 = 0x%x, 0x38= 0x%x, 0x54= 0x%x**********\n",
-		u32tmp3, u32tmp1, u32tmp2);
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], 1Ant Init HW Config!!\n");
-
-	coex_sta->bt_coex_supported_feature = 0;
-	coex_sta->bt_coex_supported_version = 0;
-	coex_sta->bt_ble_scan_type = 0;
-	coex_sta->bt_ble_scan_para[0] = 0;
-	coex_sta->bt_ble_scan_para[1] = 0;
-	coex_sta->bt_ble_scan_para[2] = 0;
-	coex_sta->bt_reg_vendor_ac = 0xffff;
-	coex_sta->bt_reg_vendor_ae = 0xffff;
-	coex_sta->isolation_btween_wb = BT_8822B_1ANT_DEFAULT_ISOLATION;
-	coex_sta->gnt_error_cnt = 0;
-	coex_sta->bt_relink_downcount = 0;
-	coex_sta->is_set_ps_state_fail = false;
-	coex_sta->cnt_set_ps_state_fail = 0;
-
-	for (i = 0; i <= 9; i++)
-		coex_sta->bt_afh_map[i] = 0;
-
-	/* Setup RF front end type */
-	halbtc8822b1ant_set_rfe_type(btcoexist);
-
-	/* 0xf0[15:12] --> Chip Cut information */
-	coex_sta->cut_version =
-		(btcoexist->btc_read_1byte(btcoexist, 0xf1) & 0xf0) >> 4;
-
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x550, 0x8,
-					   0x1); /* enable TBTT nterrupt */
-
-	/* BT report packet sample rate	 */
-	/* 0x790[5:0]=0x5 */
-	u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x790);
-	u8tmp &= 0xc0;
-	u8tmp |= 0x5;
-	btcoexist->btc_write_1byte(btcoexist, 0x790, u8tmp);
-
-	/* Enable BT counter statistics */
-	btcoexist->btc_write_1byte(btcoexist, 0x778, 0x1);
-
-	/* Enable PTA (3-wire function form BT side) */
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x40, 0x20, 0x1);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x41, 0x02, 0x1);
-
-	/* Enable PTA (tx/rx signal form WiFi side) */
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4c6, 0x10, 0x1);
-	/*GNT_BT=1 while select both */
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x763, 0x10, 0x1);
-
-	/* enable GNT_WL */
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e, 0x40, 0x0);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, 0x1, 0x0);
-
-	if (btcoexist->btc_read_1byte(btcoexist, 0x80) == 0xc6)
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ONOFF, true);
-
-	/* Antenna config */
-	if (coex_sta->is_rf_state_off) {
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_1ANT_PHASE_WLAN_OFF);
-
-		btcoexist->stop_coex_dm = true;
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], **********  %s (RF Off)**********\n",
-			 __func__);
-	} else if (wifi_only) {
-		coex_sta->concurrent_rx_mode_on = false;
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_WIFI,
-					     FORCE_EXEC,
-					     BT_8822B_1ANT_PHASE_WLANONLY_INIT);
-	} else {
-		coex_sta->concurrent_rx_mode_on = true;
-
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_1ANT_PHASE_COEX_INIT);
-	}
-
-	/* PTA parameter */
-	halbtc8822b1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0);
-
-	halbtc8822b1ant_enable_gnt_to_gpio(btcoexist, true);
-}
-
-void ex_btc8822b1ant_power_on_setting(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_board_info *board_info = &btcoexist->board_info;
-	u8 u8tmp = 0x0;
-	u16 u16tmp = 0x0;
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"xxxxxxxxxxxxxxxx Execute 8822b 1-Ant PowerOn Setting!! xxxxxxxxxxxxxxxx\n");
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "Ant Det Finish = %s, Ant Det Number  = %d\n",
-		 board_info->btdm_ant_det_finish ? "Yes" : "No",
-		 board_info->btdm_ant_num_by_ant_det);
-
-	btcoexist->dbg_mode_1ant = false;
-	btcoexist->stop_coex_dm = true;
-
-	/* enable BB, REG_SYS_FUNC_EN such that we can write 0x948 correctly. */
-	u16tmp = btcoexist->btc_read_2byte(btcoexist, 0x2);
-	btcoexist->btc_write_2byte(btcoexist, 0x2, u16tmp | BIT(0) | BIT(1));
-
-	/* set Path control owner to WiFi */
-	halbtc8822b1ant_ltecoex_pathcontrol_owner(btcoexist,
-						  BT_8822B_1ANT_PCO_WLSIDE);
-
-	/* set GNT_BT to high */
-	halbtc8822b1ant_ltecoex_set_gnt_bt(btcoexist,
-					   BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-					   BT_8822B_1ANT_GNT_CTRL_BY_SW,
-					   BT_8822B_1ANT_SIG_STA_SET_TO_HIGH);
-	/* Set GNT_WL to low */
-	halbtc8822b1ant_ltecoex_set_gnt_wl(
-		btcoexist, BT_8822B_1ANT_GNT_BLOCK_RFC_BB,
-		BT_8822B_1ANT_GNT_CTRL_BY_SW, BT_8822B_1ANT_SIG_STA_SET_TO_LOW);
-
-	/* set WLAN_ACT = 0 */
-	/* btcoexist->btc_write_1byte(btcoexist, 0x76e, 0x4); */
-
-	/* SD1 Chunchu red x issue */
-	btcoexist->btc_write_1byte(btcoexist, 0xff1a, 0x0);
-
-	halbtc8822b1ant_enable_gnt_to_gpio(btcoexist, true);
-
-	/* */
-	/* S0 or S1 setting and Local register setting
-	 * (By the setting fw can get ant number, S0/S1, ... info)
-	 */
-	/* Local setting bit define */
-	/*	BIT0: "0" for no antenna inverse; "1" for antenna inverse  */
-	/*	BIT1: "0" for internal switch; "1" for external switch */
-	/*	BIT2: "0" for one antenna; "1" for two antenna */
-	/* NOTE: here default all internal switch and 1-antenna ==>
-	 *       BIT1=0 and BIT2=0
-	 */
-
-	u8tmp = 0;
-	board_info->btdm_ant_pos = BTC_ANTENNA_AT_MAIN_PORT;
-
-	if (btcoexist->chip_interface == BTC_INTF_USB)
-		btcoexist->btc_write_local_reg_1byte(btcoexist, 0xfe08, u8tmp);
-	else if (btcoexist->chip_interface == BTC_INTF_SDIO)
-		btcoexist->btc_write_local_reg_1byte(btcoexist, 0x60, u8tmp);
-}
-
-void ex_btc8822b1ant_pre_load_firmware(struct btc_coexist *btcoexist) {}
-
-void ex_btc8822b1ant_init_hw_config(struct btc_coexist *btcoexist,
-				    bool wifi_only)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ********** (ini hw config) **********\n");
-
-	halbtc8822b1ant_init_hw_config(btcoexist, true, wifi_only);
-	btcoexist->stop_coex_dm = false;
-	btcoexist->auto_report_1ant = true;
-}
-
-void ex_btc8822b1ant_init_coex_dm(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], Coex Mechanism Init!!\n");
-
-	btcoexist->stop_coex_dm = false;
-
-	halbtc8822b1ant_init_coex_dm(btcoexist);
-
-	halbtc8822b1ant_query_bt_info(btcoexist);
-}
-
-void ex_btc8822b1ant_display_coex_info(struct btc_coexist *btcoexist,
-				       struct seq_file *m)
-{
-	struct btc_board_info *board_info = &btcoexist->board_info;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	u8 u8tmp[4], i, ps_tdma_case = 0;
-	u16 u16tmp[4];
-	u32 u32tmp[4];
-	u32 fa_ofdm, fa_cck, cca_ofdm, cca_cck;
-	u32 fw_ver = 0, bt_patch_ver = 0, bt_coex_ver = 0;
-	static u8 pop_report_in_10s;
-	u32 phyver = 0;
-	bool lte_coex_on = false;
-	static u8 cnt;
-
-	seq_puts(m, "\r\n ============[BT Coexist info]============");
-
-	if (btcoexist->manual_control) {
-		seq_puts(m,
-			 "\r\n ============[Under Manual Control]============");
-		seq_puts(m, "\r\n ==========================================");
-	}
-	if (btcoexist->stop_coex_dm) {
-		seq_puts(m, "\r\n ============[Coex is STOPPED]============");
-		seq_puts(m, "\r\n ==========================================");
-	}
-
-	if (!coex_sta->bt_disabled) {
-		if (coex_sta->bt_coex_supported_feature == 0)
-			btcoexist->btc_get(
-				btcoexist, BTC_GET_U4_SUPPORTED_FEATURE,
-				&coex_sta->bt_coex_supported_feature);
-
-		if ((coex_sta->bt_coex_supported_version == 0) ||
-		    (coex_sta->bt_coex_supported_version == 0xffff))
-			btcoexist->btc_get(
-				btcoexist, BTC_GET_U4_SUPPORTED_VERSION,
-				&coex_sta->bt_coex_supported_version);
-
-		if (coex_sta->bt_reg_vendor_ac == 0xffff)
-			coex_sta->bt_reg_vendor_ac = (u16)(
-				btcoexist->btc_get_bt_reg(btcoexist, 3, 0xac) &
-				0xffff);
-
-		if (coex_sta->bt_reg_vendor_ae == 0xffff)
-			coex_sta->bt_reg_vendor_ae = (u16)(
-				btcoexist->btc_get_bt_reg(btcoexist, 3, 0xae) &
-				0xffff);
-
-		btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER,
-				   &bt_patch_ver);
-		btcoexist->bt_info.bt_get_fw_ver = bt_patch_ver;
-
-		if (coex_sta->num_of_profile > 0) {
-			cnt++;
-
-			if (cnt >= 3) {
-				btcoexist->btc_get_bt_afh_map_from_bt(
-					btcoexist, 0, &coex_sta->bt_afh_map[0]);
-				cnt = 0;
-			}
-		}
-	}
-
-	if (psd_scan->ant_det_try_count == 0) {
-		seq_printf(
-			m, "\r\n %-35s = %d/ %d/ %s / %d",
-			"Ant PG Num/ Mech/ Pos/ RFE", board_info->pg_ant_num,
-			board_info->btdm_ant_num,
-			(board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT ?
-				 "Main" :
-				 "Aux"),
-			rfe_type->rfe_module_type);
-	} else {
-		seq_printf(
-			m, "\r\n %-35s = %d/ %d/ %s/ %d  (%d/%d/%d)",
-			"Ant PG Num/ Mech(Ant_Det)/ Pos/ RFE",
-			board_info->pg_ant_num,
-			board_info->btdm_ant_num_by_ant_det,
-			(board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT ?
-				 "Main" :
-				 "Aux"),
-			rfe_type->rfe_module_type, psd_scan->ant_det_try_count,
-			psd_scan->ant_det_fail_count, psd_scan->ant_det_result);
-
-		if (board_info->btdm_ant_det_finish) {
-			if (psd_scan->ant_det_result != 12)
-				seq_printf(m, "\r\n %-35s = %s",
-					   "Ant Det PSD Value",
-					   psd_scan->ant_det_peak_val);
-			else
-				seq_printf(m, "\r\n %-35s = %d",
-					   "Ant Det PSD Value",
-					   psd_scan->ant_det_psd_scan_peak_val /
-						   100);
-		}
-	}
-
-	bt_patch_ver = btcoexist->bt_info.bt_get_fw_ver;
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver);
-	phyver = btcoexist->btc_get_bt_phydm_version(btcoexist);
-
-	bt_coex_ver = ((coex_sta->bt_coex_supported_version & 0xff00) >> 8);
-
-	seq_printf(
-		m, "\r\n %-35s = %d_%02x/ 0x%02x/ 0x%02x (%s)",
-		"CoexVer WL/  BT_Desired/ BT_Report",
-		glcoex_ver_date_8822b_1ant, glcoex_ver_8822b_1ant,
-		glcoex_ver_btdesired_8822b_1ant, bt_coex_ver,
-		(bt_coex_ver == 0xff ?
-			 "Unknown" :
-			 (coex_sta->bt_disabled ?  "BT-disable" :
-			  (bt_coex_ver >= glcoex_ver_btdesired_8822b_1ant ?
-				   "Match" :
-				   "Mis-Match"))));
-
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ v%d/ %c", "W_FW/ B_FW/ Phy/ Kt",
-		   fw_ver, bt_patch_ver, phyver, coex_sta->cut_version + 65);
-
-	seq_printf(m, "\r\n %-35s = %02x %02x %02x ", "AFH Map to BT",
-		   coex_dm->wifi_chnl_info[0], coex_dm->wifi_chnl_info[1],
-		   coex_dm->wifi_chnl_info[2]);
-
-	/* wifi status */
-	seq_printf(m, "\r\n %-35s", "============[Wifi Status]============");
-	btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_WIFI_STATUS, m);
-
-	seq_printf(m, "\r\n %-35s", "============[BT Status]============");
-
-	pop_report_in_10s++;
-	seq_printf(
-		m, "\r\n %-35s = [%s/ %d dBm/ %d/ %d] ",
-		"BT [status/ rssi/ retryCnt/ popCnt]",
-		((coex_sta->bt_disabled) ?
-			 ("disabled") :
-			 ((coex_sta->c2h_bt_inquiry_page) ?  ("inquiry/page") :
-			  ((BT_8822B_1ANT_BT_STATUS_NON_CONNECTED_IDLE ==
-			    coex_dm->bt_status) ?
-				   "non-connected idle" :
-				   ((coex_dm->bt_status ==
-				     BT_8822B_1ANT_BT_STATUS_CONNECTED_IDLE) ?
-					    "connected-idle" :
-					    "busy")))),
-		coex_sta->bt_rssi - 100, coex_sta->bt_retry_cnt,
-		coex_sta->pop_event_cnt);
-
-	if (pop_report_in_10s >= 5) {
-		coex_sta->pop_event_cnt = 0;
-		pop_report_in_10s = 0;
-	}
-
-	if (coex_sta->num_of_profile != 0)
-		seq_printf(
-			m, "\r\n %-35s = %s%s%s%s%s", "Profiles",
-			((bt_link_info->a2dp_exist) ?
-				 ((coex_sta->is_bt_a2dp_sink) ? "A2DP sink," :
-								"A2DP,") :
-				 ""),
-			((bt_link_info->sco_exist) ? "HFP," : ""),
-			((bt_link_info->hid_exist) ?
-				 ((coex_sta->hid_busy_num >= 2) ?
-					  "HID(4/18)," :
-					  "HID(2/18),") :
-				 ""),
-			((bt_link_info->pan_exist) ? "PAN," : ""),
-			((coex_sta->voice_over_HOGP) ? "Voice" : ""));
-	else
-		seq_printf(m, "\r\n %-35s = None", "Profiles");
-
-	if (bt_link_info->a2dp_exist) {
-		seq_printf(m, "\r\n %-35s = %s/ %d/ %s",
-			   "A2DP Rate/Bitpool/Auto_Slot",
-			   ((coex_sta->is_A2DP_3M) ? "3M" : "No_3M"),
-			   coex_sta->a2dp_bit_pool,
-			   ((coex_sta->is_autoslot) ? "On" : "Off"));
-	}
-
-	if (bt_link_info->hid_exist) {
-		seq_printf(m, "\r\n %-35s = %d/ %d", "HID PairNum/Forbid_Slot",
-			   coex_sta->hid_pair_cnt, coex_sta->forbidden_slot);
-	}
-
-	seq_printf(m, "\r\n %-35s = %s/ %d/ %s/ 0x%x",
-		   "Role/RoleSwCnt/IgnWlact/Feature",
-		   ((bt_link_info->slave_role) ? "Slave" : "Master"),
-		   coex_sta->cnt_role_switch,
-		   ((coex_dm->cur_ignore_wlan_act) ? "Yes" : "No"),
-		   coex_sta->bt_coex_supported_feature);
-
-	if ((coex_sta->bt_ble_scan_type & 0x7) != 0x0) {
-		seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x",
-			   "BLEScan Type/TV/Init/Ble",
-			   coex_sta->bt_ble_scan_type,
-			   (coex_sta->bt_ble_scan_type & 0x1 ?
-				    coex_sta->bt_ble_scan_para[0] :
-				    0x0),
-			   (coex_sta->bt_ble_scan_type & 0x2 ?
-				    coex_sta->bt_ble_scan_para[1] :
-				    0x0),
-			   (coex_sta->bt_ble_scan_type & 0x4 ?
-				    coex_sta->bt_ble_scan_para[2] :
-				    0x0));
-	}
-
-	seq_printf(m, "\r\n %-35s = %d/ %d/ %d/ %d/ %d",
-		   "ReInit/ReLink/IgnWlact/Page/NameReq", coex_sta->cnt_reinit,
-		   coex_sta->cnt_setup_link, coex_sta->cnt_ign_wlan_act,
-		   coex_sta->cnt_page, coex_sta->cnt_remote_name_req);
-
-	halbtc8822b1ant_read_score_board(btcoexist, &u16tmp[0]);
-
-	if ((coex_sta->bt_reg_vendor_ae == 0xffff) ||
-	    (coex_sta->bt_reg_vendor_ac == 0xffff))
-		seq_printf(m, "\r\n %-35s = x/ x/ %04x",
-			   "0xae[4]/0xac[1:0]/Scoreboard", u16tmp[0]);
-	else
-		seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ %04x",
-			   "0xae[4]/0xac[1:0]/Scoreboard",
-			   (int)((coex_sta->bt_reg_vendor_ae & BIT(4)) >> 4),
-			   coex_sta->bt_reg_vendor_ac & 0x3, u16tmp[0]);
-
-	if (coex_sta->num_of_profile > 0) {
-		seq_printf(
-			m,
-			"\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
-			"AFH MAP", coex_sta->bt_afh_map[0],
-			coex_sta->bt_afh_map[1], coex_sta->bt_afh_map[2],
-			coex_sta->bt_afh_map[3], coex_sta->bt_afh_map[4],
-			coex_sta->bt_afh_map[5], coex_sta->bt_afh_map[6],
-			coex_sta->bt_afh_map[7], coex_sta->bt_afh_map[8],
-			coex_sta->bt_afh_map[9]);
-	}
-
-	for (i = 0; i < BT_INFO_SRC_8822B_1ANT_MAX; i++) {
-		if (coex_sta->bt_info_c2h_cnt[i]) {
-			seq_printf(
-				m,
-				"\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x(%d)",
-				glbt_info_src_8822b_1ant[i],
-				coex_sta->bt_info_c2h[i][0],
-				coex_sta->bt_info_c2h[i][1],
-				coex_sta->bt_info_c2h[i][2],
-				coex_sta->bt_info_c2h[i][3],
-				coex_sta->bt_info_c2h[i][4],
-				coex_sta->bt_info_c2h[i][5],
-				coex_sta->bt_info_c2h[i][6],
-				coex_sta->bt_info_c2h_cnt[i]);
-		}
-	}
-
-	if (btcoexist->manual_control)
-		seq_printf(
-			m, "\r\n %-35s",
-			"============[mechanisms] (before Manual)============");
-	else
-		seq_printf(m, "\r\n %-35s",
-			   "============[Mechanisms]============");
-
-	ps_tdma_case = coex_dm->cur_ps_tdma;
-	seq_printf(m, "\r\n %-35s = %02x %02x %02x %02x %02x (case-%d, %s)",
-		   "TDMA", coex_dm->ps_tdma_para[0], coex_dm->ps_tdma_para[1],
-		   coex_dm->ps_tdma_para[2], coex_dm->ps_tdma_para[3],
-		   coex_dm->ps_tdma_para[4], ps_tdma_case,
-		   (coex_dm->cur_ps_tdma_on ? "TDMA On" : "TDMA Off"));
-
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6c0);
-	u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x6c4);
-	u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x6c8);
-	seq_printf(m, "\r\n %-35s = %d/ 0x%x/ 0x%x/ 0x%x",
-		   "Table/0x6c0/0x6c4/0x6c8", coex_sta->coex_table_type,
-		   u32tmp[0], u32tmp[1], u32tmp[2]);
-
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x778);
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6cc);
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x", "0x778/0x6cc", u8tmp[0],
-		   u32tmp[0]);
-
-	seq_printf(m, "\r\n %-35s = %s/ %s/ %s/ %d",
-		   "AntDiv/BtCtrlLPS/LPRA/PsFail",
-		   ((board_info->ant_div_cfg) ? "On" : "Off"),
-		   ((coex_sta->force_lps_ctrl) ? "On" : "Off"),
-		   ((coex_dm->cur_low_penalty_ra) ? "On" : "Off"),
-		   coex_sta->cnt_set_ps_state_fail);
-
-	u32tmp[0] = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist, 0x38);
-	lte_coex_on = ((u32tmp[0] & BIT(7)) >> 7) ? true : false;
-
-	if (lte_coex_on) {
-		u32tmp[0] = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xa0);
-		u32tmp[1] = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xa4);
-
-		seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x",
-			   "LTE Coex Table W_L/B_L", u32tmp[0] & 0xffff,
-			   u32tmp[1] & 0xffff);
-
-		u32tmp[0] = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xa8);
-		u32tmp[1] = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xac);
-		u32tmp[2] = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xb0);
-		u32tmp[3] = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xb4);
-
-		seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x",
-			   "LTE Break Table W_L/B_L/L_W/L_B",
-			   u32tmp[0] & 0xffff, u32tmp[1] & 0xffff,
-			   u32tmp[2] & 0xffff, u32tmp[3] & 0xffff);
-	}
-
-	/* Hw setting		 */
-	seq_printf(m, "\r\n %-35s", "============[Hw setting]============");
-
-	u32tmp[0] = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist, 0x38);
-	u32tmp[1] = halbtc8822b1ant_ltecoex_indirect_read_reg(btcoexist, 0x54);
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x73);
-
-	seq_printf(m, "\r\n %-35s = %s/ %s", "LTE Coex/Path Owner",
-		   ((lte_coex_on) ? "On" : "Off"),
-		   ((u8tmp[0] & BIT(2)) ? "WL" : "BT"));
-
-	if (lte_coex_on) {
-		seq_printf(m, "\r\n %-35s = %d/ %d/ %d/ %d",
-			   "LTE 3Wire/OPMode/UART/UARTMode",
-			   (int)((u32tmp[0] & BIT(6)) >> 6),
-			   (int)((u32tmp[0] & (BIT(5) | BIT(4))) >> 4),
-			   (int)((u32tmp[0] & BIT(3)) >> 3),
-			   (int)(u32tmp[0] & (BIT(2) | BIT(1) | BIT(0))));
-
-		seq_printf(m, "\r\n %-35s = %d/ %d", "LTE_Busy/UART_Busy",
-			   (int)((u32tmp[1] & BIT(1)) >> 1),
-			   (int)(u32tmp[1] & BIT(0)));
-	}
-	seq_printf(m, "\r\n %-35s = %s (BB:%s)/ %s (BB:%s)/ %s %d",
-		   "GNT_WL_Ctrl/GNT_BT_Ctrl/Dbg",
-		   ((u32tmp[0] & BIT(12)) ? "SW" : "HW"),
-		   ((u32tmp[0] & BIT(8)) ? "SW" : "HW"),
-		   ((u32tmp[0] & BIT(14)) ? "SW" : "HW"),
-		   ((u32tmp[0] & BIT(10)) ? "SW" : "HW"),
-		   ((u8tmp[0] & BIT(3)) ? "On" : "Off"),
-		   coex_sta->gnt_error_cnt);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d", "GNT_WL/GNT_BT",
-		   (int)((u32tmp[1] & BIT(2)) >> 2),
-		   (int)((u32tmp[1] & BIT(3)) >> 3));
-
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xcb0);
-	u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0xcba);
-
-	seq_printf(m, "\r\n %-35s = 0x%04x/ 0x%04x/ 0x%02x %s",
-		   "0xcb0/0xcb4/0xcb8[23:16]", u32tmp[0], u32tmp[1], u8tmp[0],
-		   ((u8tmp[0] & 0x1) == 0x1 ? "(BTG)" : "(WL_A+G)"));
-
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x4c);
-	u8tmp[2] = btcoexist->btc_read_1byte(btcoexist, 0x64);
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x4c6);
-	u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x40);
-
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x",
-		   "4c[24:23]/64[0]/4c6[4]/40[5]",
-		   (int)((u32tmp[0] & (BIT(24) | BIT(23))) >> 23),
-		   u8tmp[2] & 0x1, (int)((u8tmp[0] & BIT(4)) >> 4),
-		   (int)((u8tmp[1] & BIT(5)) >> 5));
-
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550);
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x522);
-	u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x953);
-	u8tmp[2] = btcoexist->btc_read_1byte(btcoexist, 0xc50);
-
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ %s/ 0x%x",
-		   "0x550/0x522/4-RxAGC/0xc50", u32tmp[0], u8tmp[0],
-		   (u8tmp[1] & 0x2) ? "On" : "Off", u8tmp[2]);
-
-	fa_ofdm = btcoexist->btc_phydm_query_phy_counter(btcoexist,
-							 "PHYDM_INFO_FA_OFDM");
-	fa_cck = btcoexist->btc_phydm_query_phy_counter(btcoexist,
-							"PHYDM_INFO_FA_CCK");
-	cca_ofdm = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CCA_OFDM");
-	cca_cck = btcoexist->btc_phydm_query_phy_counter(btcoexist,
-							 "PHYDM_INFO_CCA_CCK");
-
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x",
-		   "CCK-CCA/CCK-FA/OFDM-CCA/OFDM-FA", cca_cck, fa_cck, cca_ofdm,
-		   fa_ofdm);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d/ %d/ %d", "CRC_OK CCK/11g/11n/11ac",
-		   coex_sta->crc_ok_cck, coex_sta->crc_ok_11g,
-		   coex_sta->crc_ok_11n, coex_sta->crc_ok_11n_vht);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d/ %d/ %d", "CRC_Err CCK/11g/11n/11ac",
-		   coex_sta->crc_err_cck, coex_sta->crc_err_11g,
-		   coex_sta->crc_err_11n, coex_sta->crc_err_11n_vht);
-
-	seq_printf(m, "\r\n %-35s = %s/ %s/ %s/ %d",
-		   "WlHiPri/ Locking/ Locked/ Noisy",
-		   (coex_sta->wifi_is_high_pri_task ? "Yes" : "No"),
-		   (coex_sta->cck_lock ? "Yes" : "No"),
-		   (coex_sta->cck_ever_lock ? "Yes" : "No"),
-		   coex_sta->wl_noisy_level);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d", "0x770(Hi-pri rx/tx)",
-		   coex_sta->high_priority_rx, coex_sta->high_priority_tx);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d %s", "0x774(Lo-pri rx/tx)",
-		   coex_sta->low_priority_rx, coex_sta->low_priority_tx,
-		   (bt_link_info->slave_role ?
-			    "(Slave!!)" :
-			    (coex_sta->is_tdma_btautoslot_hang ?
-				     "(auto-slot hang!!)" :
-				     "")));
-
-	btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_COEX_STATISTICS, m);
-}
-
-void ex_btc8822b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	if (type == BTC_IPS_ENTER) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], IPS ENTER notify\n");
-		coex_sta->under_ips = true;
-
-		/* Write WL "Active" in Score-board for LPS off */
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE, false);
-
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ONOFF, false);
-
-		halbtc8822b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_1ANT_PHASE_WLAN_OFF);
-
-		halbtc8822b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-	} else if (type == BTC_IPS_LEAVE) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], IPS LEAVE notify\n");
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE, true);
-
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ONOFF, true);
-
-		/*leave IPS : run ini hw config (exclude wifi only)*/
-		halbtc8822b1ant_init_hw_config(btcoexist, false, false);
-		/*sw all off*/
-		halbtc8822b1ant_init_coex_dm(btcoexist);
-		/*leave IPS : Query bt info*/
-		halbtc8822b1ant_query_bt_info(btcoexist);
-
-		coex_sta->under_ips = false;
-	}
-}
-
-void ex_btc8822b1ant_lps_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static bool pre_force_lps_on;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	if (type == BTC_LPS_ENABLE) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], LPS ENABLE notify\n");
-		coex_sta->under_lps = true;
-
-		if (coex_sta->force_lps_ctrl) { /* LPS No-32K */
-			/* Write WL "Active" in Score-board for PS-TDMA */
-			pre_force_lps_on = true;
-			halbtc8822b1ant_post_state_to_bt(
-				btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE,
-				true);
-		} else {
-			/* LPS-32K, need check if this h2c 0x71 can work??
-			 * (2015/08/28)
-			 */
-			/* Write WL "Non-Active" in Score-board for Native-PS */
-			pre_force_lps_on = false;
-			halbtc8822b1ant_post_state_to_bt(
-				btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE,
-				false);
-		}
-	} else if (type == BTC_LPS_DISABLE) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], LPS DISABLE notify\n");
-		coex_sta->under_lps = false;
-
-		/* Write WL "Active" in Score-board for LPS off */
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE, true);
-
-		if ((!pre_force_lps_on) && (!coex_sta->force_lps_ctrl))
-			halbtc8822b1ant_query_bt_info(btcoexist);
-	}
-}
-
-void ex_btc8822b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_connected = false;
-	bool wifi_under_5g = false;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	coex_sta->freeze_coexrun_by_btinfo = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-
-	if (wifi_connected)
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], ********** WL connected before SCAN\n");
-	else
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], **********  WL is not connected before SCAN\n");
-
-	halbtc8822b1ant_query_bt_info(btcoexist);
-
-	/*2.4 g 1*/
-	if (type == BTC_SCAN_START) {
-		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G,
-				   &wifi_under_5g);
-		/*5 g 1*/
-
-		if (wifi_under_5g) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** (scan_notify_5g_scan_start) **********\n");
-			halbtc8822b1ant_action_wifi_under5g(btcoexist);
-			return;
-		}
-
-		/* 2.4G.2.3*/
-		coex_sta->wifi_is_high_pri_task = true;
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (scan_notify_2g_scan_start) **********\n");
-
-		if (!wifi_connected) { /* non-connected scan */
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** wifi is not connected scan **********\n");
-			halbtc8822b1ant_action_wifi_not_connected_scan(
-				btcoexist);
-		} else { /* wifi is connected */
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** wifi is connected scan **********\n");
-			halbtc8822b1ant_action_wifi_connected_scan(btcoexist);
-		}
-
-		return;
-	}
-
-	if (type == BTC_SCAN_START_2G) {
-		coex_sta->wifi_is_high_pri_task = true;
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (scan_notify_2g_sacn_start_for_switch_band_used) **********\n");
-
-		if (!wifi_connected) { /* non-connected scan */
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** wifi is not connected **********\n");
-
-			halbtc8822b1ant_action_wifi_not_connected_scan(
-				btcoexist);
-		} else { /* wifi is connected */
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** wifi is connected **********\n");
-			halbtc8822b1ant_action_wifi_connected_scan(btcoexist);
-		}
-	} else {
-		coex_sta->wifi_is_high_pri_task = false;
-
-		/* 2.4G 5 WL scan finish, then get and update sacn ap numbers */
-		/*5 g 4*/
-		btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
-				   &coex_sta->scan_ap_num);
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (scan_finish_notify) **********\n");
-
-		if (!wifi_connected) { /* non-connected scan */
-			halbtc8822b1ant_action_wifi_not_connected(btcoexist);
-		} else {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** scan_finish_notify wifi is connected **********\n");
-			halbtc8822b1ant_action_wifi_connected(btcoexist);
-		}
-	}
-}
-
-void ex_btc8822b1ant_scan_notify_without_bt(struct btc_coexist *btcoexist,
-					    u8 type)
-{
-	bool wifi_under_5g = false;
-
-	if (type == BTC_SCAN_START) {
-		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G,
-				   &wifi_under_5g);
-
-		if (wifi_under_5g) {
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd,
-							   0x3, 1);
-			return;
-		}
-
-		/* under 2.4G */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd, 0x3, 2);
-		return;
-	}
-	if (type == BTC_SCAN_START_2G)
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd, 0x3, 2);
-}
-
-void ex_btc8822b1ant_switchband_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ********** (switchband_notify) **********\n");
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	coex_sta->switch_band_notify_to = type;
-	/*2.4g 4.*/ /*5 g 2*/
-	if (type == BTC_SWITCH_TO_5G) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (switchband_notify BTC_SWITCH_TO_5G) **********\n");
-
-		halbtc8822b1ant_action_wifi_under5g(btcoexist);
-		return;
-	} else if (type == BTC_SWITCH_TO_24G_NOFORSCAN) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (switchband_notify BTC_SWITCH_TO_2G (no for scan)) **********\n");
-
-		halbtc8822b1ant_run_coexist_mechanism(btcoexist);
-		/*5 g 3*/
-
-	} else {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** (switchband_notify BTC_SWITCH_TO_2G) **********\n");
-
-		ex_btc8822b1ant_scan_notify(btcoexist, BTC_SCAN_START_2G);
-	}
-	coex_sta->switch_band_notify_to = BTC_NOT_SWITCH;
-}
-
-void ex_btc8822b1ant_switchband_notify_without_bt(struct btc_coexist *btcoexist,
-						  u8 type)
-{
-	bool wifi_under_5g = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if (type == BTC_SWITCH_TO_5G) {
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd, 0x3, 1);
-		return;
-	} else if (type == BTC_SWITCH_TO_24G_NOFORSCAN) {
-		if (wifi_under_5g)
-
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd,
-							   0x3, 1);
-
-		else
-			btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd,
-							   0x3, 2);
-	} else {
-		ex_btc8822b1ant_scan_notify_without_bt(btcoexist,
-						       BTC_SCAN_START_2G);
-	}
-}
-
-void ex_btc8822b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_connected = false;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ********** (connect notify) **********\n");
-
-	halbtc8822b1ant_post_state_to_bt(btcoexist,
-					 BT_8822B_1ANT_SCOREBOARD_SCAN, true);
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	if ((type == BTC_ASSOCIATE_5G_START) ||
-	    (type == BTC_ASSOCIATE_5G_FINISH)) {
-		if (type == BTC_ASSOCIATE_5G_START) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** (5G associate start notify) **********\n");
-
-			halbtc8822b1ant_action_wifi_under5g(btcoexist);
-
-		} else if (type == BTC_ASSOCIATE_5G_FINISH) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** (5G associate finish notify) **********\n");
-		}
-
-		return;
-	}
-
-	if (type == BTC_ASSOCIATE_START) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], 2G CONNECT START notify\n");
-
-		coex_sta->wifi_is_high_pri_task = true;
-
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-		coex_dm->arp_cnt = 0;
-
-		halbtc8822b1ant_action_wifi_not_connected_asso_auth(btcoexist);
-
-		coex_sta->freeze_coexrun_by_btinfo = true;
-
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], 2G CONNECT Finish notify\n");
-		coex_sta->wifi_is_high_pri_task = false;
-		coex_sta->freeze_coexrun_by_btinfo = false;
-
-		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-				   &wifi_connected);
-
-		if (!wifi_connected) /* non-connected scan */
-			halbtc8822b1ant_action_wifi_not_connected(btcoexist);
-		else
-			halbtc8822b1ant_action_wifi_connected(btcoexist);
-	}
-}
-
-void ex_btc8822b1ant_media_status_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_under_b_mode = false;
-	bool wifi_under_5g = false;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if (type == BTC_MEDIA_CONNECT) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], 2g media connect notify");
-
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE, true);
-
-		if (wifi_under_5g) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], 5g media notify\n");
-
-			halbtc8822b1ant_action_wifi_under5g(btcoexist);
-			return;
-		}
-		/* Force antenna setup for no scan result issue */
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_1ANT_PHASE_2G_RUNTIME);
-
-		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_B_MODE,
-				   &wifi_under_b_mode);
-
-		/* Set CCK Tx/Rx high Pri except 11b mode */
-		if (wifi_under_b_mode) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** (media status notify under b mode) **********\n");
-			btcoexist->btc_write_1byte(btcoexist, 0x6cd,
-						   0x00); /* CCK Tx */
-			btcoexist->btc_write_1byte(btcoexist, 0x6cf,
-						   0x00); /* CCK Rx */
-		} else {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** (media status notify not under b mode) **********\n");
-			btcoexist->btc_write_1byte(btcoexist, 0x6cd,
-						   0x00); /* CCK Tx */
-			btcoexist->btc_write_1byte(btcoexist, 0x6cf,
-						   0x10); /* CCK Rx */
-		}
-
-		coex_dm->backup_arfr_cnt1 =
-			btcoexist->btc_read_4byte(btcoexist, 0x430);
-		coex_dm->backup_arfr_cnt2 =
-			btcoexist->btc_read_4byte(btcoexist, 0x434);
-		coex_dm->backup_retry_limit =
-			btcoexist->btc_read_2byte(btcoexist, 0x42a);
-		coex_dm->backup_ampdu_max_time =
-			btcoexist->btc_read_1byte(btcoexist, 0x456);
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], 2g media disconnect notify\n");
-		coex_dm->arp_cnt = 0;
-
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE, false);
-
-		btcoexist->btc_write_1byte(btcoexist, 0x6cd, 0x0); /* CCK Tx */
-		btcoexist->btc_write_1byte(btcoexist, 0x6cf, 0x0); /* CCK Rx */
-
-		coex_sta->cck_ever_lock = false;
-	}
-
-	halbtc8822b1ant_update_wifi_ch_info(btcoexist, type);
-}
-
-void ex_btc8822b1ant_specific_packet_notify(struct btc_coexist *btcoexist,
-					    u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool under_4way = false, wifi_under_5g = false;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-	if (wifi_under_5g) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], 5g special packet notify\n");
-
-		halbtc8822b1ant_action_wifi_under5g(btcoexist);
-		return;
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS,
-			   &under_4way);
-
-	if (under_4way) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], specific Packet ---- under_4way!!\n");
-
-		coex_sta->wifi_is_high_pri_task = true;
-		coex_sta->specific_pkt_period_cnt = 2;
-	} else if (type == BTC_PACKET_ARP) {
-		coex_dm->arp_cnt++;
-
-		if (coex_sta->wifi_is_high_pri_task) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], specific Packet ARP notify -cnt = %d\n",
-				coex_dm->arp_cnt);
-		}
-
-	} else {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], specific Packet DHCP or EAPOL notify [Type = %d]\n",
-			type);
-
-		coex_sta->wifi_is_high_pri_task = true;
-		coex_sta->specific_pkt_period_cnt = 2;
-	}
-
-	if (coex_sta->wifi_is_high_pri_task)
-		halbtc8822b1ant_action_wifi_connected_specific_packet(
-			btcoexist);
-}
-
-void ex_btc8822b1ant_bt_info_notify(struct btc_coexist *btcoexist, u8 *tmp_buf,
-				    u8 length)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 i, rsp_source = 0;
-	bool wifi_connected = false;
-	bool wifi_scan = false, wifi_link = false, wifi_roam = false,
-	     wifi_busy = false;
-	static bool is_scoreboard_scan;
-
-	if (psd_scan->is_ant_det_running) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], bt_info_notify return for AntDet is running\n");
-		return;
-	}
-
-	rsp_source = tmp_buf[0] & 0xf;
-	if (rsp_source >= BT_INFO_SRC_8822B_1ANT_MAX)
-		rsp_source = BT_INFO_SRC_8822B_1ANT_WIFI_FW;
-	coex_sta->bt_info_c2h_cnt[rsp_source]++;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], Bt_info[%d], len=%d, data=[", rsp_source, length);
-
-	for (i = 0; i < length; i++) {
-		coex_sta->bt_info_c2h[rsp_source][i] = tmp_buf[i];
-
-		if (i == length - 1) {
-			/* last one */
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "0x%02x]\n", tmp_buf[i]);
-		} else {
-			/* normal */
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, "0x%02x, ",
-				 tmp_buf[i]);
-		}
-	}
-
-	coex_sta->bt_info = coex_sta->bt_info_c2h[rsp_source][1];
-	coex_sta->bt_info_ext = coex_sta->bt_info_c2h[rsp_source][4];
-	coex_sta->bt_info_ext2 = coex_sta->bt_info_c2h[rsp_source][5];
-
-	if (rsp_source != BT_INFO_SRC_8822B_1ANT_WIFI_FW) {
-		/* if 0xff, it means BT is under WHCK test */
-		coex_sta->bt_whck_test =
-			((coex_sta->bt_info == 0xff) ? true : false);
-
-		coex_sta->bt_create_connection =
-			((coex_sta->bt_info_c2h[rsp_source][2] & 0x80) ? true :
-									 false);
-
-		/* unit: %, value-100 to translate to unit: dBm */
-		coex_sta->bt_rssi =
-			coex_sta->bt_info_c2h[rsp_source][3] * 2 + 10;
-
-		coex_sta->c2h_bt_remote_name_req =
-			((coex_sta->bt_info_c2h[rsp_source][2] & 0x20) ? true :
-									 false);
-
-		coex_sta->is_A2DP_3M =
-			((coex_sta->bt_info_c2h[rsp_source][2] & 0x10) ? true :
-									 false);
-
-		coex_sta->acl_busy =
-			((coex_sta->bt_info_c2h[rsp_source][1] & 0x9) ? true :
-									false);
-
-		coex_sta->voice_over_HOGP =
-			((coex_sta->bt_info_ext & 0x10) ? true : false);
-
-		coex_sta->c2h_bt_inquiry_page =
-			((coex_sta->bt_info & BT_INFO_8822B_1ANT_B_INQ_PAGE) ?
-				 true :
-				 false);
-
-		coex_sta->a2dp_bit_pool =
-			(((coex_sta->bt_info_c2h[rsp_source][1] & 0x49) ==
-			  0x49) ?
-				 (coex_sta->bt_info_c2h[rsp_source][6] & 0x7f) :
-				 0);
-
-		coex_sta->is_bt_a2dp_sink =
-			(coex_sta->bt_info_c2h[rsp_source][6] & 0x80) ? true :
-									false;
-
-		coex_sta->bt_retry_cnt =
-			coex_sta->bt_info_c2h[rsp_source][2] & 0xf;
-
-		coex_sta->is_autoslot = coex_sta->bt_info_ext2 & 0x8;
-
-		coex_sta->forbidden_slot = coex_sta->bt_info_ext2 & 0x7;
-
-		coex_sta->hid_busy_num = (coex_sta->bt_info_ext2 & 0x30) >> 4;
-
-		coex_sta->hid_pair_cnt = (coex_sta->bt_info_ext2 & 0xc0) >> 6;
-		if (coex_sta->bt_retry_cnt >= 1)
-			coex_sta->pop_event_cnt++;
-
-		if (coex_sta->c2h_bt_remote_name_req)
-			coex_sta->cnt_remote_name_req++;
-
-		if (coex_sta->bt_info_ext & BIT(1))
-			coex_sta->cnt_reinit++;
-
-		if (coex_sta->bt_info_ext & BIT(2)) {
-			coex_sta->cnt_setup_link++;
-			coex_sta->is_setup_link = true;
-			coex_sta->bt_relink_downcount = 2;
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Re-Link start in BT info!!\n");
-		} else {
-			coex_sta->is_setup_link = false;
-			coex_sta->bt_relink_downcount = 0;
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Re-Link stop in BT info!!\n");
-		}
-
-		if (coex_sta->bt_info_ext & BIT(3))
-			coex_sta->cnt_ign_wlan_act++;
-
-		if (coex_sta->bt_info_ext & BIT(6))
-			coex_sta->cnt_role_switch++;
-
-		if (coex_sta->bt_info_ext & BIT(7))
-			coex_sta->is_bt_multi_link = true;
-		else
-			coex_sta->is_bt_multi_link = false;
-
-		if (coex_sta->bt_create_connection) {
-			coex_sta->cnt_page++;
-
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY,
-					   &wifi_busy);
-
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN,
-					   &wifi_scan);
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK,
-					   &wifi_link);
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM,
-					   &wifi_roam);
-
-			if ((wifi_link) || (wifi_roam) || (wifi_scan) ||
-			    (coex_sta->wifi_is_high_pri_task) || (wifi_busy)) {
-				is_scoreboard_scan = true;
-				halbtc8822b1ant_post_state_to_bt(
-					btcoexist,
-					BT_8822B_1ANT_SCOREBOARD_SCAN, true);
-
-			} else {
-				halbtc8822b1ant_post_state_to_bt(
-					btcoexist,
-					BT_8822B_1ANT_SCOREBOARD_SCAN, false);
-			}
-		} else {
-			if (is_scoreboard_scan) {
-				halbtc8822b1ant_post_state_to_bt(
-					btcoexist,
-					BT_8822B_1ANT_SCOREBOARD_SCAN, false);
-				is_scoreboard_scan = false;
-			}
-		}
-
-		/* Here we need to resend some wifi info to BT */
-		/* because bt is reset and loss of the info. */
-
-		if ((!btcoexist->manual_control) &&
-		    (!btcoexist->stop_coex_dm)) {
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-					   &wifi_connected);
-
-			/*  Re-Init */
-			if ((coex_sta->bt_info_ext & BIT(1))) {
-				RT_TRACE(
-					rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					"[BTCoex], BT ext info bit1 check, send wifi BW&Chnl to BT!!\n");
-				if (wifi_connected)
-					halbtc8822b1ant_update_wifi_ch_info(
-						btcoexist, BTC_MEDIA_CONNECT);
-				else
-					halbtc8822b1ant_update_wifi_ch_info(
-						btcoexist,
-						BTC_MEDIA_DISCONNECT);
-			}
-
-			/*	If Ignore_WLanAct && not SetUp_Link */
-			if ((coex_sta->bt_info_ext & BIT(3)) &&
-			    (!(coex_sta->bt_info_ext & BIT(2)))) {
-				RT_TRACE(
-					rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					"[BTCoex], BT ext info bit3 check, set BT NOT to ignore Wlan active!!\n");
-				halbtc8822b1ant_ignore_wlan_act(
-					btcoexist, FORCE_EXEC, false);
-			}
-		}
-	}
-
-	if ((coex_sta->bt_info_ext & BIT(5))) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], BT ext info bit4 check, query BLE Scan type!!\n");
-		coex_sta->bt_ble_scan_type =
-			btcoexist->btc_get_ble_scan_type_from_bt(btcoexist);
-
-		if ((coex_sta->bt_ble_scan_type & 0x1) == 0x1)
-			coex_sta->bt_ble_scan_para[0] =
-				btcoexist->btc_get_ble_scan_para_from_bt(
-					btcoexist, 0x1);
-		if ((coex_sta->bt_ble_scan_type & 0x2) == 0x2)
-			coex_sta->bt_ble_scan_para[1] =
-				btcoexist->btc_get_ble_scan_para_from_bt(
-					btcoexist, 0x2);
-		if ((coex_sta->bt_ble_scan_type & 0x4) == 0x4)
-			coex_sta->bt_ble_scan_para[2] =
-				btcoexist->btc_get_ble_scan_para_from_bt(
-					btcoexist, 0x4);
-	}
-
-	halbtc8822b1ant_update_bt_link_info(btcoexist);
-
-	halbtc8822b1ant_run_coexist_mechanism(btcoexist);
-}
-
-void ex_btc8822b1ant_rf_status_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], RF Status notify\n");
-
-	if (type == BTC_RF_ON) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], RF is turned ON!!\n");
-		btcoexist->stop_coex_dm = false;
-
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE, true);
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ONOFF, true);
-
-	} else if (type == BTC_RF_OFF) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], RF is turned OFF!!\n");
-
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE, false);
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ONOFF, false);
-		halbtc8822b1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 0);
-
-		halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_1ANT_PHASE_WLAN_OFF);
-		/* for test : s3 bt disppear , fail rate 1/600*/
-
-		halbtc8822b1ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true);
-
-		btcoexist->stop_coex_dm = true;
-	}
-}
-
-void ex_btc8822b1ant_halt_notify(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, "[BTCoex], Halt notify\n");
-
-	halbtc8822b1ant_post_state_to_bt(
-		btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE, false);
-	halbtc8822b1ant_post_state_to_bt(btcoexist,
-					 BT_8822B_1ANT_SCOREBOARD_ONOFF, false);
-
-	halbtc8822b1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 0);
-
-	halbtc8822b1ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, FORCE_EXEC,
-				     BT_8822B_1ANT_PHASE_WLAN_OFF);
-	/* for test : s3 bt disppear , fail rate 1/600*/
-
-	halbtc8822b1ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true);
-
-	ex_btc8822b1ant_media_status_notify(btcoexist, BTC_MEDIA_DISCONNECT);
-	btcoexist->stop_coex_dm = true;
-}
-
-void ex_btc8822b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_under_5g = false;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, "[BTCoex], Pnp notify\n");
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if ((pnp_state == BTC_WIFI_PNP_SLEEP) ||
-	    (pnp_state == BTC_WIFI_PNP_SLEEP_KEEP_ANT)) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Pnp notify to SLEEP\n");
-
-		halbtc8822b1ant_post_state_to_bt(
-			btcoexist, BT_8822B_1ANT_SCOREBOARD_ACTIVE |
-					   BT_8822B_1ANT_SCOREBOARD_ONOFF |
-					   BT_8822B_1ANT_SCOREBOARD_SCAN |
-					   BT_8822B_1ANT_SCOREBOARD_UNDERTEST,
-			false);
-
-		if (pnp_state == BTC_WIFI_PNP_SLEEP_KEEP_ANT) {
-			if (wifi_under_5g)
-				halbtc8822b1ant_set_ant_path(
-					btcoexist, BTC_ANT_PATH_AUTO,
-					FORCE_EXEC,
-					BT_8822B_1ANT_PHASE_5G_RUNTIME);
-			else
-				halbtc8822b1ant_set_ant_path(
-					btcoexist, BTC_ANT_PATH_AUTO,
-					FORCE_EXEC,
-					BT_8822B_1ANT_PHASE_2G_RUNTIME);
-		} else {
-			halbtc8822b1ant_set_ant_path(
-				btcoexist, BTC_ANT_PATH_AUTO, FORCE_EXEC,
-				BT_8822B_1ANT_PHASE_WLAN_OFF);
-		}
-
-		btcoexist->stop_coex_dm = true;
-	} else if (pnp_state == BTC_WIFI_PNP_WAKE_UP) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Pnp notify to WAKE UP\n");
-		btcoexist->stop_coex_dm = false;
-	}
-}
-
-void ex_btc8822b1ant_coex_dm_reset(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], *****************Coex DM Reset*****************\n");
-
-	halbtc8822b1ant_init_hw_config(btcoexist, false, false);
-	halbtc8822b1ant_init_coex_dm(btcoexist);
-}
-
-void ex_btc8822b1ant_periodical(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool bt_relink_finish = false;
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], ==========================Periodical===========================\n");
-
-	if (!btcoexist->auto_report_1ant)
-		halbtc8822b1ant_query_bt_info(btcoexist);
-
-	halbtc8822b1ant_monitor_bt_ctr(btcoexist);
-	halbtc8822b1ant_monitor_wifi_ctr(btcoexist);
-
-	halbtc8822b1ant_monitor_bt_enable_disable(btcoexist);
-
-	if (coex_sta->bt_relink_downcount != 0) {
-		coex_sta->bt_relink_downcount--;
-
-		if (coex_sta->bt_relink_downcount == 0) {
-			coex_sta->is_setup_link = false;
-			bt_relink_finish = true;
-		}
-	}
-
-	/* for 4-way, DHCP, EAPOL packet */
-	if (coex_sta->specific_pkt_period_cnt > 0) {
-		coex_sta->specific_pkt_period_cnt--;
-
-		if ((coex_sta->specific_pkt_period_cnt == 0) &&
-		    (coex_sta->wifi_is_high_pri_task))
-			coex_sta->wifi_is_high_pri_task = false;
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ***************** Hi-Pri Task = %s*****************\n",
-			(coex_sta->wifi_is_high_pri_task ? "Yes" : "No"));
-	}
-
-	if (halbtc8822b1ant_is_wifi_status_changed(btcoexist) ||
-	    (bt_relink_finish) || (coex_sta->is_set_ps_state_fail))
-		halbtc8822b1ant_run_coexist_mechanism(btcoexist);
-}
-
-void ex_btc8822b1ant_antenna_detection(struct btc_coexist *btcoexist,
-				       u32 cent_freq, u32 offset, u32 span,
-				       u32 seconds)
-{
-}
-
-void ex_btc8822b1ant_antenna_isolation(struct btc_coexist *btcoexist,
-				       u32 cent_freq, u32 offset, u32 span,
-				       u32 seconds)
-{
-}
-
-void ex_btc8822b1ant_psd_scan(struct btc_coexist *btcoexist, u32 cent_freq,
-			      u32 offset, u32 span, u32 seconds)
-{
-}
-
-void ex_btc8822b1ant_display_ant_detection(struct btc_coexist *btcoexist) {}
-
-void ex_btc8822b1ant_dbg_control(struct btc_coexist *btcoexist, u8 op_code,
-				 u8 op_len, u8 *pdata)
-{
-}
diff --git a/drivers/staging/rtlwifi/btcoexist/halbtc8822b1ant.h b/drivers/staging/rtlwifi/btcoexist/halbtc8822b1ant.h
deleted file mode 100644
index f1bf830..0000000
--- a/drivers/staging/rtlwifi/btcoexist/halbtc8822b1ant.h
+++ /dev/null
@@ -1,433 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* *******************************************
- * The following is for 8822B 1ANT BT Co-exist definition
- * ********************************************/
-#define BT_INFO_8822B_1ANT_B_FTP	BIT(7)
-#define BT_INFO_8822B_1ANT_B_A2DP	BIT(6)
-#define BT_INFO_8822B_1ANT_B_HID	BIT(5)
-#define BT_INFO_8822B_1ANT_B_SCO_BUSY	BIT(4)
-#define BT_INFO_8822B_1ANT_B_ACL_BUSY	BIT(3)
-#define BT_INFO_8822B_1ANT_B_INQ_PAGE	BIT(2)
-#define BT_INFO_8822B_1ANT_B_SCO_ESCO	BIT(1)
-#define BT_INFO_8822B_1ANT_B_CONNECTION	BIT(0)
-
-#define BT_INFO_8822B_1ANT_A2DP_BASIC_RATE(_BT_INFO_EXT_)                      \
-	(((_BT_INFO_EXT_ & BIT(0))) ? true : false)
-
-#define BTC_RSSI_COEX_THRESH_TOL_8822B_1ANT	2
-
-#define BT_8822B_1ANT_WIFI_NOISY_THRESH	150 /* max: 255 */
-#define BT_8822B_1ANT_DEFAULT_ISOLATION	15 /*  unit: dB */
-
-/* for Antenna detection */
-#define BT_8822B_1ANT_ANTDET_PSDTHRES_BACKGROUND	50
-#define BT_8822B_1ANT_ANTDET_PSDTHRES_2ANT_BADISOLATION	70
-#define BT_8822B_1ANT_ANTDET_PSDTHRES_2ANT_GOODISOLATION	55
-#define BT_8822B_1ANT_ANTDET_PSDTHRES_1ANT	35
-#define BT_8822B_1ANT_ANTDET_RETRY_INTERVAL                                    \
-	10 /* retry timer if ant det is fail, unit: second */
-#define BT_8822B_1ANT_ANTDET_ENABLE	0
-#define BT_8822B_1ANT_ANTDET_COEXMECHANISMSWITCH_ENABLE	0
-
-#define BT_8822B_1ANT_LTECOEX_INDIRECTREG_ACCESS_TIMEOUT	30000
-
-enum bt_8822b_1ant_signal_state {
-	BT_8822B_1ANT_SIG_STA_SET_TO_LOW	= 0x0,
-	BT_8822B_1ANT_SIG_STA_SET_BY_HW	= 0x0,
-	BT_8822B_1ANT_SIG_STA_SET_TO_HIGH	= 0x1,
-	BT_8822B_1ANT_SIG_STA_MAX
-};
-
-enum bt_8822b_1ant_path_ctrl_owner {
-	BT_8822B_1ANT_PCO_BTSIDE	= 0x0,
-	BT_8822B_1ANT_PCO_WLSIDE	= 0x1,
-	BT_8822B_1ANT_PCO_MAX
-};
-
-enum bt_8822b_1ant_gnt_ctrl_type {
-	BT_8822B_1ANT_GNT_CTRL_BY_PTA	= 0x0,
-	BT_8822B_1ANT_GNT_CTRL_BY_SW	= 0x1,
-	BT_8822B_1ANT_GNT_CTRL_MAX
-};
-
-enum bt_8822b_1ant_gnt_ctrl_block {
-	BT_8822B_1ANT_GNT_BLOCK_RFC_BB	= 0x0,
-	BT_8822B_1ANT_GNT_BLOCK_RFC	= 0x1,
-	BT_8822B_1ANT_GNT_BLOCK_BB	= 0x2,
-	BT_8822B_1ANT_GNT_BLOCK_MAX
-};
-
-enum bt_8822b_1ant_lte_coex_table_type {
-	BT_8822B_1ANT_CTT_WL_VS_LTE	= 0x0,
-	BT_8822B_1ANT_CTT_BT_VS_LTE	= 0x1,
-	BT_8822B_1ANT_CTT_MAX
-};
-
-enum bt_8822b_1ant_lte_break_table_type {
-	BT_8822B_1ANT_LBTT_WL_BREAK_LTE	= 0x0,
-	BT_8822B_1ANT_LBTT_BT_BREAK_LTE	= 0x1,
-	BT_8822B_1ANT_LBTT_LTE_BREAK_WL	= 0x2,
-	BT_8822B_1ANT_LBTT_LTE_BREAK_BT	= 0x3,
-	BT_8822B_1ANT_LBTT_MAX
-};
-
-enum bt_info_src_8822b_1ant {
-	BT_INFO_SRC_8822B_1ANT_WIFI_FW	= 0x0,
-	BT_INFO_SRC_8822B_1ANT_BT_RSP	= 0x1,
-	BT_INFO_SRC_8822B_1ANT_BT_ACTIVE_SEND	= 0x2,
-	BT_INFO_SRC_8822B_1ANT_MAX
-};
-
-enum bt_8822b_1ant_bt_status {
-	BT_8822B_1ANT_BT_STATUS_NON_CONNECTED_IDLE	= 0x0,
-	BT_8822B_1ANT_BT_STATUS_CONNECTED_IDLE	= 0x1,
-	BT_8822B_1ANT_BT_STATUS_INQ_PAGE	= 0x2,
-	BT_8822B_1ANT_BT_STATUS_ACL_BUSY	= 0x3,
-	BT_8822B_1ANT_BT_STATUS_SCO_BUSY	= 0x4,
-	BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY	= 0x5,
-	BT_8822B_1ANT_BT_STATUS_MAX
-};
-
-enum bt_8822b_1ant_wifi_status {
-	BT_8822B_1ANT_WIFI_STATUS_NON_CONNECTED_IDLE	= 0x0,
-	BT_8822B_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN	= 0x1,
-	BT_8822B_1ANT_WIFI_STATUS_CONNECTED_SCAN	= 0x2,
-	BT_8822B_1ANT_WIFI_STATUS_CONNECTED_SPECIFIC_PKT	= 0x3,
-	BT_8822B_1ANT_WIFI_STATUS_CONNECTED_IDLE	= 0x4,
-	BT_8822B_1ANT_WIFI_STATUS_CONNECTED_BUSY	= 0x5,
-	BT_8822B_1ANT_WIFI_STATUS_MAX
-};
-
-enum bt_8822b_1ant_coex_algo {
-	BT_8822B_1ANT_COEX_ALGO_UNDEFINED	= 0x0,
-	BT_8822B_1ANT_COEX_ALGO_SCO	= 0x1,
-	BT_8822B_1ANT_COEX_ALGO_HID	= 0x2,
-	BT_8822B_1ANT_COEX_ALGO_A2DP	= 0x3,
-	BT_8822B_1ANT_COEX_ALGO_A2DP_PANHS	= 0x4,
-	BT_8822B_1ANT_COEX_ALGO_PANEDR	= 0x5,
-	BT_8822B_1ANT_COEX_ALGO_PANHS	= 0x6,
-	BT_8822B_1ANT_COEX_ALGO_PANEDR_A2DP	= 0x7,
-	BT_8822B_1ANT_COEX_ALGO_PANEDR_HID	= 0x8,
-	BT_8822B_1ANT_COEX_ALGO_HID_A2DP_PANEDR	= 0x9,
-	BT_8822B_1ANT_COEX_ALGO_HID_A2DP	= 0xa,
-	BT_8822B_1ANT_COEX_ALGO_MAX	= 0xb,
-};
-
-enum bt_8822b_1ant_ext_ant_switch_type {
-	BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SPDT	= 0x0,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_USE_SP3T	= 0x1,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_MAX
-};
-
-enum bt_8822b_1ant_ext_ant_switch_ctrl_type {
-	BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_BBSW	= 0x0,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_PTA	= 0x1,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_ANTDIV	= 0x2,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_MAC	= 0x3,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_BY_BT	= 0x4,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_CTRL_MAX
-};
-
-enum bt_8822b_1ant_ext_ant_switch_pos_type {
-	BT_8822B_1ANT_EXT_ANT_SWITCH_TO_BT	= 0x0,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_TO_WLG	= 0x1,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_TO_WLA	= 0x2,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_TO_NOCARE	= 0x3,
-	BT_8822B_1ANT_EXT_ANT_SWITCH_TO_MAX
-};
-
-enum bt_8822b_1ant_phase {
-	BT_8822B_1ANT_PHASE_COEX_INIT	= 0x0,
-	BT_8822B_1ANT_PHASE_WLANONLY_INIT	= 0x1,
-	BT_8822B_1ANT_PHASE_WLAN_OFF	= 0x2,
-	BT_8822B_1ANT_PHASE_2G_RUNTIME	= 0x3,
-	BT_8822B_1ANT_PHASE_5G_RUNTIME	= 0x4,
-	BT_8822B_1ANT_PHASE_BTMPMODE	= 0x5,
-	BT_8822B_1ANT_PHASE_MAX
-};
-
-/*ADD SCOREBOARD TO FIX BT LPS 32K ISSUE WHILE WL BUSY*/
-enum bt_8822b_1ant_scoreboard {
-	BT_8822B_1ANT_SCOREBOARD_ACTIVE	= BIT(0),
-	BT_8822B_1ANT_SCOREBOARD_ONOFF	= BIT(1),
-	BT_8822B_1ANT_SCOREBOARD_SCAN	= BIT(2),
-	BT_8822B_1ANT_SCOREBOARD_UNDERTEST	= BIT(3),
-	BT_8822B_1ANT_SCOREBOARD_WLBUSY = BIT(6)
-};
-
-struct coex_dm_8822b_1ant {
-	/* hw setting */
-	u32	pre_ant_pos_type;
-	u32	cur_ant_pos_type;
-	/* fw mechanism */
-	bool	cur_ignore_wlan_act;
-	bool	pre_ignore_wlan_act;
-	u8	pre_ps_tdma;
-	u8	cur_ps_tdma;
-	u8	ps_tdma_para[5];
-	u8	ps_tdma_du_adj_type;
-	bool	auto_tdma_adjust;
-	bool	pre_ps_tdma_on;
-	bool	cur_ps_tdma_on;
-	bool	pre_bt_auto_report;
-	bool	cur_bt_auto_report;
-	u8	pre_lps;
-	u8	cur_lps;
-	u8	pre_rpwm;
-	u8	cur_rpwm;
-
-	/* sw mechanism */
-	bool	pre_low_penalty_ra;
-	bool	cur_low_penalty_ra;
-	u32	pre_val0x6c0;
-	u32	cur_val0x6c0;
-	u32	pre_val0x6c4;
-	u32	cur_val0x6c4;
-	u32	pre_val0x6c8;
-	u32	cur_val0x6c8;
-	u8	pre_val0x6cc;
-	u8	cur_val0x6cc;
-	bool	limited_dig;
-
-	u32	backup_arfr_cnt1; /* Auto Rate Fallback Retry cnt */
-	u32	backup_arfr_cnt2; /* Auto Rate Fallback Retry cnt */
-	u16	backup_retry_limit;
-	u8	backup_ampdu_max_time;
-
-	/* algorithm related */
-	u8	pre_algorithm;
-	u8	cur_algorithm;
-	u8	bt_status;
-	u8	wifi_chnl_info[3];
-
-	u32	pre_ra_mask;
-	u32	cur_ra_mask;
-	u8	pre_arfr_type;
-	u8	cur_arfr_type;
-	u8	pre_retry_limit_type;
-	u8	cur_retry_limit_type;
-	u8	pre_ampdu_time_type;
-	u8	cur_ampdu_time_type;
-	u32	arp_cnt;
-
-	u32	pre_ext_ant_switch_status;
-	u32	cur_ext_ant_switch_status;
-
-	u8	error_condition;
-};
-
-struct coex_sta_8822b_1ant {
-	bool	bt_disabled;
-	bool	bt_link_exist;
-	bool	sco_exist;
-	bool	a2dp_exist;
-	bool	hid_exist;
-	bool	pan_exist;
-	u8	num_of_profile;
-
-	bool	under_lps;
-	bool	under_ips;
-	u32	specific_pkt_period_cnt;
-	u32	high_priority_tx;
-	u32	high_priority_rx;
-	u32	low_priority_tx;
-	u32	low_priority_rx;
-	bool	is_hi_pri_rx_overhead;
-	s8	bt_rssi;
-	u8	pre_bt_rssi_state;
-	u8	pre_wifi_rssi_state[4];
-	u8	bt_info_c2h[BT_INFO_SRC_8822B_1ANT_MAX][10];
-	u32	bt_info_c2h_cnt[BT_INFO_SRC_8822B_1ANT_MAX];
-	bool	bt_whck_test;
-	bool	c2h_bt_inquiry_page;
-	bool	c2h_bt_remote_name_req;
-	bool	c2h_bt_page; /* Add for win8.1 page out issue */
-	bool	wifi_is_high_pri_task; /* Add for win8.1 page out issue */
-
-	u8	bt_info_ext;
-	u8	bt_info_ext2;
-	u32	pop_event_cnt;
-	u8	scan_ap_num;
-	u8	bt_retry_cnt;
-
-	u32	crc_ok_cck;
-	u32	crc_ok_11g;
-	u32	crc_ok_11n;
-	u32	crc_ok_11n_vht;
-
-	u32	crc_err_cck;
-	u32	crc_err_11g;
-	u32	crc_err_11n;
-	u32	crc_err_11n_vht;
-
-	bool	cck_lock;
-	bool	pre_ccklock;
-	bool	cck_ever_lock;
-	u8	coex_table_type;
-
-	bool	force_lps_ctrl;
-
-	bool	concurrent_rx_mode_on;
-
-	u16	score_board;
-	u8	isolation_btween_wb; /* 0~ 50 */
-
-	u8	a2dp_bit_pool;
-	u8	cut_version;
-	bool	acl_busy;
-	bool	bt_create_connection;
-
-	u32	bt_coex_supported_feature;
-	u32	bt_coex_supported_version;
-
-	u8	bt_ble_scan_type;
-	u32	bt_ble_scan_para[3];
-
-	bool	run_time_state;
-	bool	freeze_coexrun_by_btinfo;
-
-	bool	is_A2DP_3M;
-	bool	voice_over_HOGP;
-	u8	bt_info;
-	bool	is_autoslot;
-	u8	forbidden_slot;
-	u8	hid_busy_num;
-	u8	hid_pair_cnt;
-
-	u32	cnt_remote_name_req;
-	u32	cnt_setup_link;
-	u32	cnt_reinit;
-	u32	cnt_ign_wlan_act;
-	u32	cnt_page;
-	u32	cnt_role_switch;
-
-	u16	bt_reg_vendor_ac;
-	u16	bt_reg_vendor_ae;
-
-	bool	is_setup_link;
-	u8	wl_noisy_level;
-	u32	gnt_error_cnt;
-	u8	bt_afh_map[10];
-	u8	bt_relink_downcount;
-	bool	is_tdma_btautoslot;
-	bool	is_tdma_btautoslot_hang;
-
-	u8	switch_band_notify_to;
-	bool	is_rf_state_off;
-
-	bool	is_hid_low_pri_tx_overhead;
-	bool	is_bt_multi_link;
-	bool	is_bt_a2dp_sink;
-	bool	rf4ce_enabled;
-
-	bool	is_set_ps_state_fail;
-	u8	cnt_set_ps_state_fail;
-};
-
-struct rfe_type_8822b_1ant {
-	u8	rfe_module_type;
-	bool	ext_ant_switch_exist;
-	u8	ext_ant_switch_type;
-	/*  iF 0: ANTSW(rfe_sel9)=0, ANTSWB(rfe_sel8)=1 =>  Ant to BT/5G */
-	u8	ext_ant_switch_ctrl_polarity;
-};
-
-#define BT_8822B_1ANT_ANTDET_PSD_POINTS	256 /* MAX:1024 */
-#define BT_8822B_1ANT_ANTDET_PSD_AVGNUM	1 /* MAX:3 */
-#define BT_8822B_1ANT_ANTDET_BUF_LEN	16
-
-struct psdscan_sta_8822b_1ant {
-	u32	ant_det_bt_le_channel; /* BT LE Channel ex:2412 */
-	u32	ant_det_bt_tx_time;
-	u32	ant_det_pre_psdscan_peak_val;
-	bool	ant_det_is_ant_det_available;
-	u32	ant_det_psd_scan_peak_val;
-	bool	ant_det_is_btreply_available;
-	u32	ant_det_psd_scan_peak_freq;
-
-	u8	ant_det_result;
-	u8	ant_det_peak_val[BT_8822B_1ANT_ANTDET_BUF_LEN];
-	u8	ant_det_peak_freq[BT_8822B_1ANT_ANTDET_BUF_LEN];
-	u32	ant_det_try_count;
-	u32	ant_det_fail_count;
-	u32	ant_det_inteval_count;
-	u32	ant_det_thres_offset;
-
-	u32	real_cent_freq;
-	s32	real_offset;
-	u32	real_span;
-
-	u32	psd_band_width; /* unit: Hz */
-	u32	psd_point; /* 128/256/512/1024 */
-	u32	psd_report[1024]; /* unit:dB (20logx), 0~255 */
-	u32	psd_report_max_hold[1024]; /* unit:dB (20logx), 0~255 */
-	u32	psd_start_point;
-	u32	psd_stop_point;
-	u32	psd_max_value_point;
-	u32	psd_max_value;
-	u32	psd_start_base;
-	u32	psd_avg_num; /* 1/8/16/32 */
-	u32	psd_gen_count;
-	bool	is_psd_running;
-	bool	is_psd_show_max_only;
-	bool	is_ant_det_running;
-};
-
-/* *******************************************
- * The following is interface which will notify coex module.
- * ********************************************/
-void ex_btc8822b1ant_power_on_setting(struct btc_coexist *btcoexist);
-void ex_btc8822b1ant_pre_load_firmware(struct btc_coexist *btcoexist);
-void ex_btc8822b1ant_init_hw_config(struct btc_coexist *btcoexist,
-				    bool wifi_only);
-void ex_btc8822b1ant_init_coex_dm(struct btc_coexist *btcoexist);
-void ex_btc8822b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b1ant_lps_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b1ant_scan_notify_without_bt(struct btc_coexist *btcoexist,
-					    u8 type);
-void ex_btc8822b1ant_switchband_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b1ant_switchband_notify_without_bt(struct btc_coexist *btcoexist,
-						  u8 type);
-void ex_btc8822b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b1ant_media_status_notify(struct btc_coexist *btcoexist,
-					 u8 type);
-void ex_btc8822b1ant_specific_packet_notify(struct btc_coexist *btcoexist,
-					    u8 type);
-void ex_btc8822b1ant_bt_info_notify(struct btc_coexist *btcoexist, u8 *tmp_buf,
-				    u8 length);
-void ex_btc8822b1ant_rf_status_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b1ant_halt_notify(struct btc_coexist *btcoexist);
-void ex_btc8822b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state);
-void ex_halbtc8822b1ant_score_board_status_notify(struct btc_coexist *btcoexist,
-						  u8 *tmp_buf, u8 length);
-void ex_btc8822b1ant_coex_dm_reset(struct btc_coexist *btcoexist);
-void ex_btc8822b1ant_periodical(struct btc_coexist *btcoexist);
-void ex_btc8822b1ant_display_coex_info(struct btc_coexist *btcoexist,
-				       struct seq_file *m);
-void ex_btc8822b1ant_antenna_detection(struct btc_coexist *btcoexist,
-				       u32 cent_freq, u32 offset, u32 span,
-				       u32 seconds);
-void ex_btc8822b1ant_antenna_isolation(struct btc_coexist *btcoexist,
-				       u32 cent_freq, u32 offset, u32 span,
-				       u32 seconds);
-
-void ex_btc8822b1ant_psd_scan(struct btc_coexist *btcoexist, u32 cent_freq,
-			      u32 offset, u32 span, u32 seconds);
-void ex_btc8822b1ant_display_ant_detection(struct btc_coexist *btcoexist);
-
-void ex_btc8822b1ant_dbg_control(struct btc_coexist *btcoexist, u8 op_code,
-				 u8 op_len, u8 *pdata);
diff --git a/drivers/staging/rtlwifi/btcoexist/halbtc8822b2ant.c b/drivers/staging/rtlwifi/btcoexist/halbtc8822b2ant.c
deleted file mode 100644
index 7e60710..0000000
--- a/drivers/staging/rtlwifi/btcoexist/halbtc8822b2ant.c
+++ /dev/null
@@ -1,5210 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-/* ************************************************************
- * Description:
- *
- * This file is for RTL8822B Co-exist mechanism
- *
- * History
- * 2012/11/15 Cosa first check in.
- *
- * *************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-#include "halbt_precomp.h"
-
-/* ************************************************************
- * Global variables, these are static variables
- * *************************************************************/
-static struct coex_dm_8822b_2ant glcoex_dm_8822b_2ant;
-static struct coex_dm_8822b_2ant *coex_dm = &glcoex_dm_8822b_2ant;
-static struct coex_sta_8822b_2ant glcoex_sta_8822b_2ant;
-static struct coex_sta_8822b_2ant *coex_sta = &glcoex_sta_8822b_2ant;
-static struct psdscan_sta_8822b_2ant gl_psd_scan_8822b_2ant;
-static struct psdscan_sta_8822b_2ant *psd_scan = &gl_psd_scan_8822b_2ant;
-static struct rfe_type_8822b_2ant gl_rfe_type_8822b_2ant;
-static struct rfe_type_8822b_2ant *rfe_type = &gl_rfe_type_8822b_2ant;
-
-static const char *const glbt_info_src_8822b_2ant[] = {
-	"BT Info[wifi fw]", "BT Info[bt rsp]", "BT Info[bt auto report]",
-};
-
-static u32 glcoex_ver_date_8822b_2ant = 20170327;
-static u32 glcoex_ver_8822b_2ant = 0x44;
-static u32 glcoex_ver_btdesired_8822b_2ant = 0x42;
-
-/* ************************************************************
- * local function proto type if needed
- * ************************************************************
- * ************************************************************
- * local function start with halbtc8822b2ant_
- * *************************************************************/
-static u8 halbtc8822b2ant_bt_rssi_state(struct btc_coexist *btcoexist,
-					u8 *ppre_bt_rssi_state, u8 level_num,
-					u8 rssi_thresh, u8 rssi_thresh1)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	s32 bt_rssi = 0;
-	u8 bt_rssi_state = *ppre_bt_rssi_state;
-
-	bt_rssi = coex_sta->bt_rssi;
-
-	if (level_num == 2) {
-		if ((*ppre_bt_rssi_state == BTC_RSSI_STATE_LOW) ||
-		    (*ppre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) {
-			if (bt_rssi >=
-			    (rssi_thresh + BTC_RSSI_COEX_THRESH_TOL_8822B_2ANT))
-				bt_rssi_state = BTC_RSSI_STATE_HIGH;
-			else
-				bt_rssi_state = BTC_RSSI_STATE_STAY_LOW;
-		} else {
-			if (bt_rssi < rssi_thresh)
-				bt_rssi_state = BTC_RSSI_STATE_LOW;
-			else
-				bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
-		}
-	} else if (level_num == 3) {
-		if (rssi_thresh > rssi_thresh1) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], BT Rssi thresh error!!\n");
-			return *ppre_bt_rssi_state;
-		}
-
-		if ((*ppre_bt_rssi_state == BTC_RSSI_STATE_LOW) ||
-		    (*ppre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) {
-			if (bt_rssi >=
-			    (rssi_thresh + BTC_RSSI_COEX_THRESH_TOL_8822B_2ANT))
-				bt_rssi_state = BTC_RSSI_STATE_MEDIUM;
-			else
-				bt_rssi_state = BTC_RSSI_STATE_STAY_LOW;
-		} else if ((*ppre_bt_rssi_state == BTC_RSSI_STATE_MEDIUM) ||
-			   (*ppre_bt_rssi_state ==
-			    BTC_RSSI_STATE_STAY_MEDIUM)) {
-			if (bt_rssi >= (rssi_thresh1 +
-					BTC_RSSI_COEX_THRESH_TOL_8822B_2ANT))
-				bt_rssi_state = BTC_RSSI_STATE_HIGH;
-			else if (bt_rssi < rssi_thresh)
-				bt_rssi_state = BTC_RSSI_STATE_LOW;
-			else
-				bt_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM;
-		} else {
-			if (bt_rssi < rssi_thresh1)
-				bt_rssi_state = BTC_RSSI_STATE_MEDIUM;
-			else
-				bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
-		}
-	}
-
-	*ppre_bt_rssi_state = bt_rssi_state;
-
-	return bt_rssi_state;
-}
-
-static u8 halbtc8822b2ant_wifi_rssi_state(struct btc_coexist *btcoexist,
-					  u8 *pprewifi_rssi_state, u8 level_num,
-					  u8 rssi_thresh, u8 rssi_thresh1)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	s32 wifi_rssi = 0;
-	u8 wifi_rssi_state = *pprewifi_rssi_state;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi);
-
-	if (level_num == 2) {
-		if ((*pprewifi_rssi_state == BTC_RSSI_STATE_LOW) ||
-		    (*pprewifi_rssi_state == BTC_RSSI_STATE_STAY_LOW)) {
-			if (wifi_rssi >=
-			    (rssi_thresh + BTC_RSSI_COEX_THRESH_TOL_8822B_2ANT))
-				wifi_rssi_state = BTC_RSSI_STATE_HIGH;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW;
-		} else {
-			if (wifi_rssi < rssi_thresh)
-				wifi_rssi_state = BTC_RSSI_STATE_LOW;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
-		}
-	} else if (level_num == 3) {
-		if (rssi_thresh > rssi_thresh1) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], wifi RSSI thresh error!!\n");
-			return *pprewifi_rssi_state;
-		}
-
-		if ((*pprewifi_rssi_state == BTC_RSSI_STATE_LOW) ||
-		    (*pprewifi_rssi_state == BTC_RSSI_STATE_STAY_LOW)) {
-			if (wifi_rssi >=
-			    (rssi_thresh + BTC_RSSI_COEX_THRESH_TOL_8822B_2ANT))
-				wifi_rssi_state = BTC_RSSI_STATE_MEDIUM;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW;
-		} else if ((*pprewifi_rssi_state == BTC_RSSI_STATE_MEDIUM) ||
-			   (*pprewifi_rssi_state ==
-			    BTC_RSSI_STATE_STAY_MEDIUM)) {
-			if (wifi_rssi >= (rssi_thresh1 +
-					  BTC_RSSI_COEX_THRESH_TOL_8822B_2ANT))
-				wifi_rssi_state = BTC_RSSI_STATE_HIGH;
-			else if (wifi_rssi < rssi_thresh)
-				wifi_rssi_state = BTC_RSSI_STATE_LOW;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM;
-		} else {
-			if (wifi_rssi < rssi_thresh1)
-				wifi_rssi_state = BTC_RSSI_STATE_MEDIUM;
-			else
-				wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH;
-		}
-	}
-
-	*pprewifi_rssi_state = wifi_rssi_state;
-
-	return wifi_rssi_state;
-}
-
-static void halbtc8822b2ant_coex_switch_threshold(struct btc_coexist *btcoexist,
-						  u8 isolation_measuared)
-{
-	s8 interference_wl_tx = 0, interference_bt_tx = 0;
-
-	interference_wl_tx =
-		BT_8822B_2ANT_WIFI_MAX_TX_POWER - isolation_measuared;
-	interference_bt_tx =
-		BT_8822B_2ANT_BT_MAX_TX_POWER - isolation_measuared;
-
-	coex_sta->wifi_coex_thres = BT_8822B_2ANT_WIFI_RSSI_COEXSWITCH_THRES1;
-	coex_sta->wifi_coex_thres2 = BT_8822B_2ANT_WIFI_RSSI_COEXSWITCH_THRES2;
-
-	coex_sta->bt_coex_thres = BT_8822B_2ANT_BT_RSSI_COEXSWITCH_THRES1;
-	coex_sta->bt_coex_thres2 = BT_8822B_2ANT_BT_RSSI_COEXSWITCH_THRES2;
-}
-
-static void halbtc8822b2ant_query_bt_info(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 h2c_parameter[1] = {0};
-
-	if (coex_sta->bt_disabled) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], No query BT info because BT is disabled!\n");
-		return;
-	}
-
-	h2c_parameter[0] |= BIT(0); /* trigger */
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x61, 1, h2c_parameter);
-}
-
-static void halbtc8822b2ant_monitor_bt_ctr(struct btc_coexist *btcoexist)
-{
-	u32 reg_hp_txrx, reg_lp_txrx, u32tmp;
-	u32 reg_hp_tx = 0, reg_hp_rx = 0, reg_lp_tx = 0, reg_lp_rx = 0;
-	static u8 num_of_bt_counter_chk, cnt_slave, cnt_autoslot_hang;
-
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	reg_hp_txrx = 0x770;
-	reg_lp_txrx = 0x774;
-
-	u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_hp_txrx);
-	reg_hp_tx = u32tmp & MASKLWORD;
-	reg_hp_rx = (u32tmp & MASKHWORD) >> 16;
-
-	u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_lp_txrx);
-	reg_lp_tx = u32tmp & MASKLWORD;
-	reg_lp_rx = (u32tmp & MASKHWORD) >> 16;
-
-	coex_sta->high_priority_tx = reg_hp_tx;
-	coex_sta->high_priority_rx = reg_hp_rx;
-	coex_sta->low_priority_tx = reg_lp_tx;
-	coex_sta->low_priority_rx = reg_lp_rx;
-
-	/* reset counter */
-	btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc);
-
-	if ((coex_sta->low_priority_tx > 1050) &&
-	    (!coex_sta->c2h_bt_inquiry_page))
-		coex_sta->pop_event_cnt++;
-
-	if ((coex_sta->low_priority_rx >= 950) &&
-	    (coex_sta->low_priority_rx >= coex_sta->low_priority_tx) &&
-	    (!coex_sta->under_ips) && (!coex_sta->c2h_bt_inquiry_page) &&
-	    (coex_sta->bt_link_exist)) {
-		if (cnt_slave >= 2) {
-			bt_link_info->slave_role = true;
-			cnt_slave = 2;
-		} else {
-			cnt_slave++;
-		}
-	} else {
-		if (cnt_slave == 0) {
-			bt_link_info->slave_role = false;
-			cnt_slave = 0;
-		} else {
-			cnt_slave--;
-		}
-	}
-
-	if (coex_sta->is_tdma_btautoslot) {
-		if ((coex_sta->low_priority_tx >= 1300) &&
-		    (coex_sta->low_priority_rx <= 150)) {
-			if (cnt_autoslot_hang >= 2) {
-				coex_sta->is_tdma_btautoslot_hang = true;
-				cnt_autoslot_hang = 2;
-			} else {
-				cnt_autoslot_hang++;
-			}
-		} else {
-			if (cnt_autoslot_hang == 0) {
-				coex_sta->is_tdma_btautoslot_hang = false;
-				cnt_autoslot_hang = 0;
-			} else {
-				cnt_autoslot_hang--;
-			}
-		}
-	}
-
-	if (coex_sta->sco_exist) {
-		if ((coex_sta->high_priority_tx >= 400) &&
-		    (coex_sta->high_priority_rx >= 400))
-			coex_sta->is_esco_mode = false;
-		else
-			coex_sta->is_esco_mode = true;
-	}
-
-	if (bt_link_info->hid_only) {
-		if (coex_sta->low_priority_rx > 50)
-			coex_sta->is_hid_low_pri_tx_overhead = true;
-		else
-			coex_sta->is_hid_low_pri_tx_overhead = false;
-	}
-
-	if ((coex_sta->high_priority_tx == 0) &&
-	    (coex_sta->high_priority_rx == 0) &&
-	    (coex_sta->low_priority_tx == 0) &&
-	    (coex_sta->low_priority_rx == 0)) {
-		num_of_bt_counter_chk++;
-		if (num_of_bt_counter_chk >= 3) {
-			halbtc8822b2ant_query_bt_info(btcoexist);
-			num_of_bt_counter_chk = 0;
-		}
-	}
-}
-
-static void halbtc8822b2ant_monitor_wifi_ctr(struct btc_coexist *btcoexist)
-{
-	s32 wifi_rssi = 0;
-	bool wifi_busy = false, wifi_under_b_mode = false, wifi_scan = false;
-	bool bt_idle = false;
-	static u8 cck_lock_counter, wl_noisy_count0, wl_noisy_count1 = 3,
-						     wl_noisy_count2;
-	u32 total_cnt, cck_cnt;
-	u32 cnt_crcok = 0, cnt_crcerr = 0;
-	static u8 cnt;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_B_MODE,
-			   &wifi_under_b_mode);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &wifi_scan);
-
-	coex_sta->crc_ok_cck = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_OK_CCK");
-	coex_sta->crc_ok_11g = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_OK_LEGACY");
-	coex_sta->crc_ok_11n = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_OK_HT");
-	coex_sta->crc_ok_11n_vht = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_OK_VHT");
-
-	coex_sta->crc_err_cck = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_ERROR_CCK");
-	coex_sta->crc_err_11g = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_ERROR_LEGACY");
-	coex_sta->crc_err_11n = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_ERROR_HT");
-	coex_sta->crc_err_11n_vht = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CRC32_ERROR_VHT");
-
-	cnt_crcok = coex_sta->crc_ok_cck + coex_sta->crc_ok_11g +
-		    coex_sta->crc_ok_11n + coex_sta->crc_ok_11n_vht;
-
-	cnt_crcerr = coex_sta->crc_err_cck + coex_sta->crc_err_11g +
-		     coex_sta->crc_err_11n + coex_sta->crc_err_11n_vht;
-
-	if ((wifi_busy) && (cnt_crcerr != 0)) {
-		coex_sta->now_crc_ratio = cnt_crcok / cnt_crcerr;
-
-		if (cnt == 0)
-			coex_sta->acc_crc_ratio = coex_sta->now_crc_ratio;
-		else
-			coex_sta->acc_crc_ratio =
-				(coex_sta->acc_crc_ratio * 7 +
-				 coex_sta->now_crc_ratio * 3) /
-				10;
-
-		if (cnt >= 10)
-			cnt = 0;
-		else
-			cnt++;
-	}
-
-	cck_cnt = coex_sta->crc_ok_cck + coex_sta->crc_err_cck;
-
-	if ((coex_dm->bt_status ==
-	     BT_8822B_2ANT_BT_STATUS_NON_CONNECTED_IDLE) ||
-	    (coex_dm->bt_status == BT_8822B_2ANT_BT_STATUS_CONNECTED_IDLE) ||
-	    (coex_sta->bt_disabled))
-		bt_idle = true;
-
-	if (cck_cnt > 250) {
-		if (wl_noisy_count2 < 3)
-			wl_noisy_count2++;
-
-		if (wl_noisy_count2 == 3) {
-			wl_noisy_count0 = 0;
-			wl_noisy_count1 = 0;
-		}
-
-	} else if (cck_cnt < 50) {
-		if (wl_noisy_count0 < 3)
-			wl_noisy_count0++;
-
-		if (wl_noisy_count0 == 3) {
-			wl_noisy_count1 = 0;
-			wl_noisy_count2 = 0;
-		}
-
-	} else {
-		if (wl_noisy_count1 < 3)
-			wl_noisy_count1++;
-
-		if (wl_noisy_count1 == 3) {
-			wl_noisy_count0 = 0;
-			wl_noisy_count2 = 0;
-		}
-	}
-
-	if (wl_noisy_count2 == 3)
-		coex_sta->wl_noisy_level = 2;
-	else if (wl_noisy_count1 == 3)
-		coex_sta->wl_noisy_level = 1;
-	else
-		coex_sta->wl_noisy_level = 0;
-
-	if ((wifi_busy) && (wifi_rssi >= 30) && (!wifi_under_b_mode)) {
-		total_cnt = cnt_crcok;
-
-		if ((coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_ACL_BUSY) ||
-		    (coex_dm->bt_status ==
-		     BT_8822B_1ANT_BT_STATUS_ACL_SCO_BUSY) ||
-		    (coex_dm->bt_status == BT_8822B_1ANT_BT_STATUS_SCO_BUSY)) {
-			if (coex_sta->crc_ok_cck >
-			    (total_cnt - coex_sta->crc_ok_cck)) {
-				if (cck_lock_counter < 3)
-					cck_lock_counter++;
-			} else {
-				if (cck_lock_counter > 0)
-					cck_lock_counter--;
-			}
-
-		} else {
-			if (cck_lock_counter > 0)
-				cck_lock_counter--;
-		}
-	} else {
-		if (cck_lock_counter > 0)
-			cck_lock_counter--;
-	}
-
-	if (!coex_sta->pre_ccklock) {
-		if (cck_lock_counter >= 3)
-			coex_sta->cck_lock = true;
-		else
-			coex_sta->cck_lock = false;
-	} else {
-		if (cck_lock_counter == 0)
-			coex_sta->cck_lock = false;
-		else
-			coex_sta->cck_lock = true;
-	}
-
-	if (coex_sta->cck_lock)
-		coex_sta->cck_ever_lock = true;
-
-	coex_sta->pre_ccklock = coex_sta->cck_lock;
-}
-
-static bool
-halbtc8822b2ant_is_wifibt_status_changed(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static bool pre_wifi_busy, pre_under_4way, pre_bt_hs_on, pre_bt_off,
-		pre_bt_slave, pre_hid_low_pri_tx_overhead, pre_wifi_under_lps,
-		pre_bt_setup_link;
-	static u8 pre_hid_busy_num, pre_wl_noisy_level;
-	bool wifi_busy = false, under_4way = false, bt_hs_on = false;
-	bool wifi_connected = false;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS,
-			   &under_4way);
-
-	if (coex_sta->bt_disabled != pre_bt_off) {
-		pre_bt_off = coex_sta->bt_disabled;
-
-		if (coex_sta->bt_disabled)
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], BT is disabled !!\n");
-		else
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], BT is enabled !!\n");
-
-		coex_sta->bt_coex_supported_feature = 0;
-		coex_sta->bt_coex_supported_version = 0;
-		coex_sta->bt_ble_scan_type = 0;
-		coex_sta->bt_ble_scan_para[0] = 0;
-		coex_sta->bt_ble_scan_para[1] = 0;
-		coex_sta->bt_ble_scan_para[2] = 0;
-		coex_sta->bt_reg_vendor_ac = 0xffff;
-		coex_sta->bt_reg_vendor_ae = 0xffff;
-		return true;
-	}
-
-	if (wifi_connected) {
-		if (wifi_busy != pre_wifi_busy) {
-			pre_wifi_busy = wifi_busy;
-			return true;
-		}
-		if (under_4way != pre_under_4way) {
-			pre_under_4way = under_4way;
-			return true;
-		}
-		if (bt_hs_on != pre_bt_hs_on) {
-			pre_bt_hs_on = bt_hs_on;
-			return true;
-		}
-		if (coex_sta->wl_noisy_level != pre_wl_noisy_level) {
-			pre_wl_noisy_level = coex_sta->wl_noisy_level;
-			return true;
-		}
-		if (coex_sta->under_lps != pre_wifi_under_lps) {
-			pre_wifi_under_lps = coex_sta->under_lps;
-			if (coex_sta->under_lps)
-				return true;
-		}
-	}
-
-	if (!coex_sta->bt_disabled) {
-		if (coex_sta->hid_busy_num != pre_hid_busy_num) {
-			pre_hid_busy_num = coex_sta->hid_busy_num;
-			return true;
-		}
-
-		if (bt_link_info->slave_role != pre_bt_slave) {
-			pre_bt_slave = bt_link_info->slave_role;
-			return true;
-		}
-
-		if (pre_hid_low_pri_tx_overhead !=
-		    coex_sta->is_hid_low_pri_tx_overhead) {
-			pre_hid_low_pri_tx_overhead =
-				coex_sta->is_hid_low_pri_tx_overhead;
-			return true;
-		}
-
-		if (pre_bt_setup_link != coex_sta->is_setup_link) {
-			pre_bt_setup_link = coex_sta->is_setup_link;
-			return true;
-		}
-	}
-
-	return false;
-}
-
-static void halbtc8822b2ant_update_bt_link_info(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool bt_hs_on = false;
-	bool bt_busy = false;
-
-	coex_sta->num_of_profile = 0;
-
-	/* set link exist status */
-	if (!(coex_sta->bt_info & BT_INFO_8822B_1ANT_B_CONNECTION)) {
-		coex_sta->bt_link_exist = false;
-		coex_sta->pan_exist = false;
-		coex_sta->a2dp_exist = false;
-		coex_sta->hid_exist = false;
-		coex_sta->sco_exist = false;
-	} else { /* connection exists */
-		coex_sta->bt_link_exist = true;
-		if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_FTP) {
-			coex_sta->pan_exist = true;
-			coex_sta->num_of_profile++;
-		} else {
-			coex_sta->pan_exist = false;
-		}
-
-		if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_A2DP) {
-			coex_sta->a2dp_exist = true;
-			coex_sta->num_of_profile++;
-		} else {
-			coex_sta->a2dp_exist = false;
-		}
-
-		if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_HID) {
-			coex_sta->hid_exist = true;
-			coex_sta->num_of_profile++;
-		} else {
-			coex_sta->hid_exist = false;
-		}
-
-		if (coex_sta->bt_info & BT_INFO_8822B_1ANT_B_SCO_ESCO) {
-			coex_sta->sco_exist = true;
-			coex_sta->num_of_profile++;
-		} else {
-			coex_sta->sco_exist = false;
-		}
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-
-	bt_link_info->bt_link_exist = coex_sta->bt_link_exist;
-	bt_link_info->sco_exist = coex_sta->sco_exist;
-	bt_link_info->a2dp_exist = coex_sta->a2dp_exist;
-	bt_link_info->pan_exist = coex_sta->pan_exist;
-	bt_link_info->hid_exist = coex_sta->hid_exist;
-	bt_link_info->acl_busy = coex_sta->acl_busy;
-
-	/* work around for HS mode. */
-	if (bt_hs_on) {
-		bt_link_info->pan_exist = true;
-		bt_link_info->bt_link_exist = true;
-	}
-
-	/* check if Sco only */
-	if (bt_link_info->sco_exist && !bt_link_info->a2dp_exist &&
-	    !bt_link_info->pan_exist && !bt_link_info->hid_exist)
-		bt_link_info->sco_only = true;
-	else
-		bt_link_info->sco_only = false;
-
-	/* check if A2dp only */
-	if (!bt_link_info->sco_exist && bt_link_info->a2dp_exist &&
-	    !bt_link_info->pan_exist && !bt_link_info->hid_exist)
-		bt_link_info->a2dp_only = true;
-	else
-		bt_link_info->a2dp_only = false;
-
-	/* check if Pan only */
-	if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist &&
-	    bt_link_info->pan_exist && !bt_link_info->hid_exist)
-		bt_link_info->pan_only = true;
-	else
-		bt_link_info->pan_only = false;
-
-	/* check if Hid only */
-	if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist &&
-	    !bt_link_info->pan_exist && bt_link_info->hid_exist)
-		bt_link_info->hid_only = true;
-	else
-		bt_link_info->hid_only = false;
-
-	if (coex_sta->bt_info & BT_INFO_8822B_2ANT_B_INQ_PAGE) {
-		coex_dm->bt_status = BT_8822B_2ANT_BT_STATUS_INQ_PAGE;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT Inq/page!!!\n");
-	} else if (!(coex_sta->bt_info & BT_INFO_8822B_2ANT_B_CONNECTION)) {
-		coex_dm->bt_status = BT_8822B_2ANT_BT_STATUS_NON_CONNECTED_IDLE;
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], BtInfoNotify(), BT Non-Connected idle!!!\n");
-	} else if (coex_sta->bt_info == BT_INFO_8822B_2ANT_B_CONNECTION) {
-		/* connection exists but no busy */
-		coex_dm->bt_status = BT_8822B_2ANT_BT_STATUS_CONNECTED_IDLE;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT Connected-idle!!!\n");
-	} else if (((coex_sta->bt_info & BT_INFO_8822B_2ANT_B_SCO_ESCO) ||
-		    (coex_sta->bt_info & BT_INFO_8822B_2ANT_B_SCO_BUSY)) &&
-		   (coex_sta->bt_info & BT_INFO_8822B_2ANT_B_ACL_BUSY)) {
-		coex_dm->bt_status = BT_8822B_2ANT_BT_STATUS_ACL_SCO_BUSY;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT ACL SCO busy!!!\n");
-	} else if ((coex_sta->bt_info & BT_INFO_8822B_2ANT_B_SCO_ESCO) ||
-		   (coex_sta->bt_info & BT_INFO_8822B_2ANT_B_SCO_BUSY)) {
-		coex_dm->bt_status = BT_8822B_2ANT_BT_STATUS_SCO_BUSY;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT SCO busy!!!\n");
-	} else if (coex_sta->bt_info & BT_INFO_8822B_2ANT_B_ACL_BUSY) {
-		coex_dm->bt_status = BT_8822B_2ANT_BT_STATUS_ACL_BUSY;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT ACL busy!!!\n");
-	} else {
-		coex_dm->bt_status = BT_8822B_2ANT_BT_STATUS_MAX;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BtInfoNotify(), BT Non-Defined state!!!\n");
-	}
-
-	if ((coex_dm->bt_status == BT_8822B_2ANT_BT_STATUS_ACL_BUSY) ||
-	    (coex_dm->bt_status == BT_8822B_2ANT_BT_STATUS_SCO_BUSY) ||
-	    (coex_dm->bt_status == BT_8822B_2ANT_BT_STATUS_ACL_SCO_BUSY))
-		bt_busy = true;
-	else
-		bt_busy = false;
-
-	btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy);
-}
-
-static void halbtc8822b2ant_update_wifi_ch_info(struct btc_coexist *btcoexist,
-						u8 type)
-{
-	u8 h2c_parameter[3] = {0};
-	u32 wifi_bw;
-	u8 wifi_central_chnl;
-	u32 RTL97F_8822B = 0;
-
-	if (RTL97F_8822B)
-		return;
-
-	/* only 2.4G we need to inform bt the chnl mask */
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_CENTRAL_CHNL,
-			   &wifi_central_chnl);
-	if ((type == BTC_MEDIA_CONNECT) && (wifi_central_chnl <= 14)) {
-		/* enable BT AFH skip WL channel for 8822b
-		 * because BT Rx LO interference
-		 */
-		h2c_parameter[0] = 0x1;
-		h2c_parameter[1] = wifi_central_chnl;
-		btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-		if (wifi_bw == BTC_WIFI_BW_HT40)
-			h2c_parameter[2] = 0x30;
-		else
-			h2c_parameter[2] = 0x20;
-	}
-
-	coex_dm->wifi_chnl_info[0] = h2c_parameter[0];
-	coex_dm->wifi_chnl_info[1] = h2c_parameter[1];
-	coex_dm->wifi_chnl_info[2] = h2c_parameter[2];
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x66, 3, h2c_parameter);
-}
-
-static void
-halbtc8822b2ant_set_fw_dac_swing_level(struct btc_coexist *btcoexist,
-				       u8 dac_swing_lvl)
-{
-	u8 h2c_parameter[1] = {0};
-	u32 RTL97F_8822B = 0;
-
-	if (RTL97F_8822B)
-		return;
-
-	/* There are several type of dacswing */
-	/* 0x18/ 0x10/ 0xc/ 0x8/ 0x4/ 0x6 */
-	h2c_parameter[0] = dac_swing_lvl;
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x64, 1, h2c_parameter);
-}
-
-static void halbtc8822b2ant_fw_dac_swing_lvl(struct btc_coexist *btcoexist,
-					     bool force_exec,
-					     u8 fw_dac_swing_lvl)
-{
-	u32 RTL97F_8822B = 0;
-
-	if (RTL97F_8822B)
-		return;
-
-	coex_dm->cur_fw_dac_swing_lvl = fw_dac_swing_lvl;
-
-	if (!force_exec) {
-		if (coex_dm->pre_fw_dac_swing_lvl ==
-		    coex_dm->cur_fw_dac_swing_lvl)
-			return;
-	}
-
-	halbtc8822b2ant_set_fw_dac_swing_level(btcoexist,
-					       coex_dm->cur_fw_dac_swing_lvl);
-
-	coex_dm->pre_fw_dac_swing_lvl = coex_dm->cur_fw_dac_swing_lvl;
-}
-
-static void halbtc8822b2ant_set_fw_dec_bt_pwr(struct btc_coexist *btcoexist,
-					      u8 dec_bt_pwr_lvl)
-{
-	u32 RTL97F_8822B = 0;
-	u8 h2c_parameter[1] = {0};
-
-	if (RTL97F_8822B)
-		return;
-
-	h2c_parameter[0] = dec_bt_pwr_lvl;
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x62, 1, h2c_parameter);
-}
-
-static void halbtc8822b2ant_dec_bt_pwr(struct btc_coexist *btcoexist,
-				       bool force_exec, u8 dec_bt_pwr_lvl)
-{
-	coex_dm->cur_bt_dec_pwr_lvl = dec_bt_pwr_lvl;
-
-	if (!force_exec) {
-		if (coex_dm->pre_bt_dec_pwr_lvl == coex_dm->cur_bt_dec_pwr_lvl)
-			return;
-	}
-	halbtc8822b2ant_set_fw_dec_bt_pwr(btcoexist,
-					  coex_dm->cur_bt_dec_pwr_lvl);
-
-	coex_dm->pre_bt_dec_pwr_lvl = coex_dm->cur_bt_dec_pwr_lvl;
-}
-
-static void halbtc8822b2ant_low_penalty_ra(struct btc_coexist *btcoexist,
-					   bool force_exec, bool low_penalty_ra)
-{
-	coex_dm->cur_low_penalty_ra = low_penalty_ra;
-
-	if (!force_exec) {
-		if (coex_dm->pre_low_penalty_ra == coex_dm->cur_low_penalty_ra)
-			return;
-	}
-
-	if (low_penalty_ra)
-		btcoexist->btc_phydm_modify_ra_pcr_threshold(btcoexist, 0, 50);
-	else
-		btcoexist->btc_phydm_modify_ra_pcr_threshold(btcoexist, 0, 0);
-
-	coex_dm->pre_low_penalty_ra = coex_dm->cur_low_penalty_ra;
-}
-
-static void halbtc8822b2ant_write_score_board(struct btc_coexist *btcoexist,
-					      u16 bitpos, bool state)
-{
-	static u16 originalval = 0x8002;
-
-	if (state)
-		originalval = originalval | bitpos;
-	else
-		originalval = originalval & (~bitpos);
-
-	btcoexist->btc_write_2byte(btcoexist, 0xaa, originalval);
-}
-
-static void halbtc8822b2ant_read_score_board(struct btc_coexist *btcoexist,
-					     u16 *score_board_val)
-{
-	*score_board_val =
-		(btcoexist->btc_read_2byte(btcoexist, 0xaa)) & 0x7fff;
-}
-
-static void halbtc8822b2ant_post_state_to_bt(struct btc_coexist *btcoexist,
-					     u16 type, bool state)
-{
-	halbtc8822b2ant_write_score_board(btcoexist, (u16)type, state);
-}
-
-static void
-halbtc8822b2ant_monitor_bt_enable_disable(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u32 bt_disable_cnt;
-	bool bt_active = true, bt_disabled = false, wifi_under_5g = false;
-	u16 u16tmp;
-
-	/* This function check if bt is disabled */
-
-	/* Read BT on/off status from scoreboard[1],
-	 * enable this only if BT patch support this feature
-	 */
-	halbtc8822b2ant_read_score_board(btcoexist, &u16tmp);
-
-	bt_active = u16tmp & BIT(1);
-
-	if (bt_active) {
-		bt_disable_cnt = 0;
-		bt_disabled = false;
-		btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE,
-				   &bt_disabled);
-	} else {
-		bt_disable_cnt++;
-		if (bt_disable_cnt >= 10) {
-			bt_disabled = true;
-			bt_disable_cnt = 10;
-		}
-
-		btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE,
-				   &bt_disabled);
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if ((wifi_under_5g) || (bt_disabled))
-		halbtc8822b2ant_low_penalty_ra(btcoexist, NORMAL_EXEC, false);
-	else
-		halbtc8822b2ant_low_penalty_ra(btcoexist, NORMAL_EXEC, true);
-
-	if (coex_sta->bt_disabled != bt_disabled) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BT is from %s to %s!!\n",
-			 (coex_sta->bt_disabled ? "disabled" : "enabled"),
-			 (bt_disabled ? "disabled" : "enabled"));
-		coex_sta->bt_disabled = bt_disabled;
-	}
-}
-
-static void halbtc8822b2ant_enable_gnt_to_gpio(struct btc_coexist *btcoexist,
-					       bool isenable)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u8 bit_val[5] = {0, 0, 0, 0, 0};
-
-	if (!btcoexist->dbg_mode_2ant)
-		return;
-
-	if (isenable) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], enable_gnt_to_gpio!!\n");
-
-		/* enable GNT_WL, GNT_BT to GPIO for debug */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x73, 0x8, 0x1);
-
-		/* store original value */
-		bit_val[0] =
-			(btcoexist->btc_read_1byte(btcoexist, 0x66) & BIT(4)) >>
-			4; /*0x66[4] */
-		bit_val[1] = (btcoexist->btc_read_1byte(btcoexist, 0x67) &
-			      BIT(0)); /*0x66[8] */
-		bit_val[2] =
-			(btcoexist->btc_read_1byte(btcoexist, 0x42) & BIT(3)) >>
-			3; /*0x40[19] */
-		bit_val[3] =
-			(btcoexist->btc_read_1byte(btcoexist, 0x65) & BIT(7)) >>
-			7; /*0x64[15] */
-		bit_val[4] =
-			(btcoexist->btc_read_1byte(btcoexist, 0x72) & BIT(2)) >>
-			2; /*0x70[18] */
-
-		/*  switch GPIO Mux */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x66, BIT(4),
-						   0x0); /*0x66[4] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, BIT(0),
-						   0x0); /*0x66[8] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x42, BIT(3),
-						   0x0); /*0x40[19] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x65, BIT(7),
-						   0x0); /*0x64[15] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x72, BIT(2),
-						   0x0); /*0x70[18] = 0 */
-
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], disable_gnt_to_gpio!!\n");
-
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x73, 0x8, 0x0);
-
-		/*  Restore original value  */
-		/*  switch GPIO Mux */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x66, BIT(4),
-						   bit_val[0]); /*0x66[4] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, BIT(0),
-						   bit_val[1]); /*0x66[8] = 0 */
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x42, BIT(3), bit_val[2]); /*0x40[19] = 0 */
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x65, BIT(7), bit_val[3]); /*0x64[15] = 0 */
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x72, BIT(2), bit_val[4]); /*0x70[18] = 0 */
-	}
-}
-
-static u32
-halbtc8822b2ant_ltecoex_indirect_read_reg(struct btc_coexist *btcoexist,
-					  u16 reg_addr)
-{
-	u32 delay_count = 0;
-
-	while (1) {
-		if ((btcoexist->btc_read_1byte(btcoexist, 0x1703) & BIT(5)) ==
-		    0) {
-			mdelay(50);
-			delay_count++;
-			if (delay_count >= 10) {
-				delay_count = 0;
-				break;
-			}
-		} else {
-			break;
-		}
-	}
-
-	/* wait for ready bit before access 0x1700		 */
-	btcoexist->btc_write_4byte(btcoexist, 0x1700, 0x800F0000 | reg_addr);
-
-	return btcoexist->btc_read_4byte(btcoexist, 0x1708); /* get read data */
-}
-
-static void
-halbtc8822b2ant_ltecoex_indirect_write_reg(struct btc_coexist *btcoexist,
-					   u16 reg_addr, u32 bit_mask,
-					   u32 reg_value)
-{
-	u32 val, i = 0, bitpos = 0, delay_count = 0;
-
-	if (bit_mask == 0x0)
-		return;
-	if (bit_mask == 0xffffffff) {
-		/* wait for ready bit before access 0x1700/0x1704 */
-		while (1) {
-			if ((btcoexist->btc_read_1byte(btcoexist, 0x1703) &
-			     BIT(5)) == 0) {
-				mdelay(50);
-				delay_count++;
-				if (delay_count >= 10) {
-					delay_count = 0;
-					break;
-				}
-			} else {
-				break;
-			}
-		}
-
-		btcoexist->btc_write_4byte(btcoexist, 0x1704,
-					   reg_value); /* put write data */
-
-		btcoexist->btc_write_4byte(btcoexist, 0x1700,
-					   0xc00F0000 | reg_addr);
-	} else {
-		for (i = 0; i <= 31; i++) {
-			if (((bit_mask >> i) & 0x1) == 0x1) {
-				bitpos = i;
-				break;
-			}
-		}
-
-		/* read back register value before write */
-		val = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								reg_addr);
-		val = (val & (~bit_mask)) | (reg_value << bitpos);
-
-		/* wait for ready bit before access 0x1700/0x1704 */
-		while (1) {
-			if ((btcoexist->btc_read_1byte(btcoexist, 0x1703) &
-			     BIT(5)) == 0) {
-				mdelay(50);
-				delay_count++;
-				if (delay_count >= 10) {
-					delay_count = 0;
-					break;
-				}
-			} else {
-				break;
-			}
-		}
-
-		btcoexist->btc_write_4byte(btcoexist, 0x1704,
-					   val); /* put write data */
-
-		btcoexist->btc_write_4byte(btcoexist, 0x1700,
-					   0xc00F0000 | reg_addr);
-	}
-}
-
-static void halbtc8822b2ant_ltecoex_enable(struct btc_coexist *btcoexist,
-					   bool enable)
-{
-	u8 val;
-
-	val = (enable) ? 1 : 0;
-	halbtc8822b2ant_ltecoex_indirect_write_reg(btcoexist, 0x38, 0x80,
-						   val); /* 0x38[7] */
-}
-
-static void
-halbtc8822b2ant_ltecoex_pathcontrol_owner(struct btc_coexist *btcoexist,
-					  bool wifi_control)
-{
-	u8 val;
-
-	val = (wifi_control) ? 1 : 0;
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x73, 0x4,
-					   val); /* 0x70[26] */
-}
-
-static void halbtc8822b2ant_ltecoex_set_gnt_bt(struct btc_coexist *btcoexist,
-					       u8 control_block,
-					       bool sw_control, u8 state)
-{
-	u32 val = 0, bit_mask;
-
-	state = state & 0x1;
-	val = (sw_control) ? ((state << 1) | 0x1) : 0;
-
-	switch (control_block) {
-	case BT_8822B_2ANT_GNT_BLOCK_RFC_BB:
-	default:
-		bit_mask = 0xc000;
-		halbtc8822b2ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[15:14] */
-		bit_mask = 0x0c00;
-		halbtc8822b2ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[11:10] */
-		break;
-	case BT_8822B_2ANT_GNT_BLOCK_RFC:
-		bit_mask = 0xc000;
-		halbtc8822b2ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[15:14] */
-		break;
-	case BT_8822B_2ANT_GNT_BLOCK_BB:
-		bit_mask = 0x0c00;
-		halbtc8822b2ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[11:10] */
-		break;
-	}
-}
-
-static void halbtc8822b2ant_ltecoex_set_gnt_wl(struct btc_coexist *btcoexist,
-					       u8 control_block,
-					       bool sw_control, u8 state)
-{
-	u32 val = 0, bit_mask;
-
-	state = state & 0x1;
-	val = (sw_control) ? ((state << 1) | 0x1) : 0;
-
-	switch (control_block) {
-	case BT_8822B_2ANT_GNT_BLOCK_RFC_BB:
-	default:
-		bit_mask = 0x3000;
-		halbtc8822b2ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[13:12] */
-		bit_mask = 0x0300;
-		halbtc8822b2ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[9:8] */
-		break;
-	case BT_8822B_2ANT_GNT_BLOCK_RFC:
-		bit_mask = 0x3000;
-		halbtc8822b2ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[13:12] */
-		break;
-	case BT_8822B_2ANT_GNT_BLOCK_BB:
-		bit_mask = 0x0300;
-		halbtc8822b2ant_ltecoex_indirect_write_reg(
-			btcoexist, 0x38, bit_mask, val); /* 0x38[9:8] */
-		break;
-	}
-}
-
-static void
-halbtc8822b2ant_ltecoex_set_coex_table(struct btc_coexist *btcoexist,
-				       u8 table_type, u16 table_content)
-{
-	u16 reg_addr = 0x0000;
-
-	switch (table_type) {
-	case BT_8822B_2ANT_CTT_WL_VS_LTE:
-		reg_addr = 0xa0;
-		break;
-	case BT_8822B_2ANT_CTT_BT_VS_LTE:
-		reg_addr = 0xa4;
-		break;
-	}
-
-	if (reg_addr != 0x0000)
-		halbtc8822b2ant_ltecoex_indirect_write_reg(
-			btcoexist, reg_addr, 0xffff,
-			table_content); /* 0xa0[15:0] or 0xa4[15:0] */
-}
-
-static void halbtc8822b2ant_set_wltoggle_coex_table(
-	struct btc_coexist *btcoexist, bool force_exec, u8 interval,
-	u8 val0x6c4_b0, u8 val0x6c4_b1, u8 val0x6c4_b2, u8 val0x6c4_b3)
-{
-	static u8 pre_h2c_parameter[6] = {0};
-	u8 cur_h2c_parameter[6] = {0};
-	u8 i, match_cnt = 0;
-
-	cur_h2c_parameter[0] = 0x7; /* op_code, 0x7= wlan toggle slot*/
-
-	cur_h2c_parameter[1] = interval;
-	cur_h2c_parameter[2] = val0x6c4_b0;
-	cur_h2c_parameter[3] = val0x6c4_b1;
-	cur_h2c_parameter[4] = val0x6c4_b2;
-	cur_h2c_parameter[5] = val0x6c4_b3;
-
-	if (!force_exec) {
-		for (i = 1; i <= 5; i++) {
-			if (cur_h2c_parameter[i] != pre_h2c_parameter[i])
-				break;
-
-			match_cnt++;
-		}
-
-		if (match_cnt == 5)
-			return;
-	}
-
-	for (i = 1; i <= 5; i++)
-		pre_h2c_parameter[i] = cur_h2c_parameter[i];
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x69, 6, cur_h2c_parameter);
-}
-
-static void halbtc8822b2ant_set_coex_table(struct btc_coexist *btcoexist,
-					   u32 val0x6c0, u32 val0x6c4,
-					   u32 val0x6c8, u8 val0x6cc)
-{
-	btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0);
-
-	btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4);
-
-	btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8);
-
-	btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc);
-}
-
-static void halbtc8822b2ant_coex_table(struct btc_coexist *btcoexist,
-				       bool force_exec, u32 val0x6c0,
-				       u32 val0x6c4, u32 val0x6c8, u8 val0x6cc)
-{
-	coex_dm->cur_val0x6c0 = val0x6c0;
-	coex_dm->cur_val0x6c4 = val0x6c4;
-	coex_dm->cur_val0x6c8 = val0x6c8;
-	coex_dm->cur_val0x6cc = val0x6cc;
-
-	if (!force_exec) {
-		if ((coex_dm->pre_val0x6c0 == coex_dm->cur_val0x6c0) &&
-		    (coex_dm->pre_val0x6c4 == coex_dm->cur_val0x6c4) &&
-		    (coex_dm->pre_val0x6c8 == coex_dm->cur_val0x6c8) &&
-		    (coex_dm->pre_val0x6cc == coex_dm->cur_val0x6cc))
-			return;
-	}
-	halbtc8822b2ant_set_coex_table(btcoexist, val0x6c0, val0x6c4, val0x6c8,
-				       val0x6cc);
-
-	coex_dm->pre_val0x6c0 = coex_dm->cur_val0x6c0;
-	coex_dm->pre_val0x6c4 = coex_dm->cur_val0x6c4;
-	coex_dm->pre_val0x6c8 = coex_dm->cur_val0x6c8;
-	coex_dm->pre_val0x6cc = coex_dm->cur_val0x6cc;
-}
-
-static void halbtc8822b2ant_coex_table_with_type(struct btc_coexist *btcoexist,
-						 bool force_exec, u8 type)
-{
-	u32 break_table;
-	u8 select_table;
-
-	coex_sta->coex_table_type = type;
-
-	if (coex_sta->concurrent_rx_mode_on) {
-		break_table = 0xf0ffffff; /* set WL hi-pri can break BT */
-		/* set Tx response = Hi-Pri (ex: Transmitting ACK,BA,CTS) */
-		select_table = 0xb;
-	} else {
-		break_table = 0xffffff;
-		select_table = 0x3;
-	}
-
-	switch (type) {
-	case 0:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0xffffffff,
-					   0xffffffff, break_table,
-					   select_table);
-		break;
-	case 1:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0x5a5a5a5a, break_table,
-					   select_table);
-		break;
-	case 2:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a,
-					   0x5a5a5a5a, break_table,
-					   select_table);
-		break;
-	case 3:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0x5a5a5a5a, break_table,
-					   select_table);
-		break;
-	case 4:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0x5a5a5a5a, break_table,
-					   select_table);
-		break;
-	case 5:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0x55555555, break_table,
-					   select_table);
-		break;
-	case 6:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0xa5555555,
-					   0xfafafafa, break_table,
-					   select_table);
-		break;
-	case 7:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0xa5555555,
-					   0xaa5a5a5a, break_table,
-					   select_table);
-		break;
-	case 8:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0xa5555555,
-					   0xfafafafa, break_table,
-					   select_table);
-		break;
-	case 9:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a,
-					   0xaaaa5aaa, break_table,
-					   select_table);
-		break;
-	case 10:
-		halbtc8822b2ant_coex_table(btcoexist, force_exec, 0x55555555,
-					   0x5a5a555a, break_table,
-					   select_table);
-		break;
-	default:
-		break;
-	}
-}
-
-static void
-halbtc8822b2ant_set_fw_ignore_wlan_act(struct btc_coexist *btcoexist,
-				       bool enable)
-{
-	u8 h2c_parameter[1] = {0};
-	u32 RTL97F_8822B = 0;
-
-	if (RTL97F_8822B)
-		return;
-
-	if (enable)
-		h2c_parameter[0] |= BIT(0); /* function enable */
-
-	btcoexist->btc_fill_h2c(btcoexist, 0x63, 1, h2c_parameter);
-}
-
-static void halbtc8822b2ant_ignore_wlan_act(struct btc_coexist *btcoexist,
-					    bool force_exec, bool enable)
-{
-	coex_dm->cur_ignore_wlan_act = enable;
-
-	if (!force_exec) {
-		if (coex_dm->pre_ignore_wlan_act ==
-		    coex_dm->cur_ignore_wlan_act)
-			return;
-	}
-	halbtc8822b2ant_set_fw_ignore_wlan_act(btcoexist, enable);
-
-	coex_dm->pre_ignore_wlan_act = coex_dm->cur_ignore_wlan_act;
-}
-
-static void halbtc8822b2ant_set_lps_rpwm(struct btc_coexist *btcoexist,
-					 u8 lps_val, u8 rpwm_val)
-{
-	u8 lps = lps_val;
-	u8 rpwm = rpwm_val;
-
-	btcoexist->btc_set(btcoexist, BTC_SET_U1_LPS_VAL, &lps);
-	btcoexist->btc_set(btcoexist, BTC_SET_U1_RPWM_VAL, &rpwm);
-}
-
-static void halbtc8822b2ant_lps_rpwm(struct btc_coexist *btcoexist,
-				     bool force_exec, u8 lps_val, u8 rpwm_val)
-{
-	coex_dm->cur_lps = lps_val;
-	coex_dm->cur_rpwm = rpwm_val;
-
-	if (!force_exec) {
-		if ((coex_dm->pre_lps == coex_dm->cur_lps) &&
-		    (coex_dm->pre_rpwm == coex_dm->cur_rpwm))
-			return;
-	}
-	halbtc8822b2ant_set_lps_rpwm(btcoexist, lps_val, rpwm_val);
-
-	coex_dm->pre_lps = coex_dm->cur_lps;
-	coex_dm->pre_rpwm = coex_dm->cur_rpwm;
-}
-
-static void halbtc8822b2ant_ps_tdma_check_for_power_save_state(
-	struct btc_coexist *btcoexist, bool new_ps_state)
-{
-	u8 lps_mode = 0x0;
-	u8 h2c_parameter[5] = {0, 0, 0, 0x40, 0};
-	u32 RTL97F_8822B = 0;
-
-	if (RTL97F_8822B)
-		return;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_LPS_MODE, &lps_mode);
-
-	if (lps_mode) { /* already under LPS state */
-		if (new_ps_state) {
-			/* keep state under LPS, do nothing. */
-		} else {
-			/* will leave LPS state, turn off psTdma first */
-			btcoexist->btc_fill_h2c(btcoexist, 0x60, 5,
-						h2c_parameter);
-		}
-	} else { /* NO PS state */
-		if (new_ps_state) {
-			/* will enter LPS state, turn off psTdma first */
-			btcoexist->btc_fill_h2c(btcoexist, 0x60, 5,
-						h2c_parameter);
-		} else {
-			/* keep state under NO PS state, do nothing. */
-		}
-	}
-}
-
-static bool halbtc8822b2ant_power_save_state(struct btc_coexist *btcoexist,
-					     u8 ps_type, u8 lps_val,
-					     u8 rpwm_val)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool low_pwr_disable = false, result = true;
-
-	switch (ps_type) {
-	case BTC_PS_WIFI_NATIVE:
-		coex_sta->force_lps_ctrl = false;
-		/* recover to original 32k low power setting */
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == BTC_PS_WIFI_NATIVE\n", __func__);
-
-		low_pwr_disable = false;
-		btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER,
-				   &low_pwr_disable);
-		btcoexist->btc_set(btcoexist, BTC_SET_ACT_NORMAL_LPS, NULL);
-		break;
-	case BTC_PS_LPS_ON:
-		coex_sta->force_lps_ctrl = true;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == BTC_PS_LPS_ON\n", __func__);
-
-		halbtc8822b2ant_ps_tdma_check_for_power_save_state(btcoexist,
-								   true);
-		halbtc8822b2ant_lps_rpwm(btcoexist, NORMAL_EXEC, lps_val,
-					 rpwm_val);
-		/* when coex force to enter LPS, do not enter 32k low power. */
-		low_pwr_disable = true;
-		btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER,
-				   &low_pwr_disable);
-		/* power save must executed before psTdma. */
-		btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL);
-		break;
-	case BTC_PS_LPS_OFF:
-		coex_sta->force_lps_ctrl = true;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == BTC_PS_LPS_OFF\n", __func__);
-
-		halbtc8822b2ant_ps_tdma_check_for_power_save_state(btcoexist,
-								   false);
-		result = btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS,
-					    NULL);
-		break;
-	default:
-		break;
-	}
-
-	return result;
-}
-
-static void halbtc8822b2ant_set_fw_pstdma(struct btc_coexist *btcoexist,
-					  u8 byte1, u8 byte2, u8 byte3,
-					  u8 byte4, u8 byte5)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 h2c_parameter[5] = {0};
-	u8 real_byte1 = byte1, real_byte5 = byte5;
-	bool ap_enable = false, result = false;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	if (byte5 & BIT(2))
-		coex_sta->is_tdma_btautoslot = true;
-	else
-		coex_sta->is_tdma_btautoslot = false;
-
-	/* release bt-auto slot for auto-slot hang is detected!! */
-	if (coex_sta->is_tdma_btautoslot)
-		if ((coex_sta->is_tdma_btautoslot_hang) ||
-		    (bt_link_info->slave_role))
-			byte5 = byte5 & 0xfb;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
-			   &ap_enable);
-
-	if ((ap_enable) && (byte1 & BIT(4) && !(byte1 & BIT(5)))) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == FW for AP mode\n", __func__);
-
-		real_byte1 &= ~BIT(4);
-		real_byte1 |= BIT(5);
-
-		real_byte5 |= BIT(5);
-		real_byte5 &= ~BIT(6);
-
-		halbtc8822b2ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
-						 0x0, 0x0);
-	} else if (byte1 & BIT(4) && !(byte1 & BIT(5))) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == Force LPS (byte1 = 0x%x)\n",
-			 __func__, byte1);
-
-		if (!halbtc8822b2ant_power_save_state(btcoexist, BTC_PS_LPS_OFF,
-						      0x50, 0x4))
-			result = true;
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == Native LPS (byte1 = 0x%x)\n",
-			 __func__, byte1);
-
-		halbtc8822b2ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE,
-						 0x0, 0x0);
-	}
-
-	coex_sta->is_set_ps_state_fail = result;
-
-	if (!coex_sta->is_set_ps_state_fail) {
-		h2c_parameter[0] = real_byte1;
-		h2c_parameter[1] = byte2;
-		h2c_parameter[2] = byte3;
-		h2c_parameter[3] = byte4;
-		h2c_parameter[4] = real_byte5;
-
-		coex_dm->ps_tdma_para[0] = real_byte1;
-		coex_dm->ps_tdma_para[1] = byte2;
-		coex_dm->ps_tdma_para[2] = byte3;
-		coex_dm->ps_tdma_para[3] = byte4;
-		coex_dm->ps_tdma_para[4] = real_byte5;
-
-		btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter);
-	} else {
-		coex_sta->cnt_set_ps_state_fail++;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], %s == Force Leave LPS Fail (cnt = %d)\n",
-			 __func__, coex_sta->cnt_set_ps_state_fail);
-	}
-}
-
-static void halbtc8822b2ant_ps_tdma(struct btc_coexist *btcoexist,
-				    bool force_exec, bool turn_on, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u8 ps_tdma_byte4_modify, pre_ps_tdma_byte4_modify;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	coex_dm->cur_ps_tdma_on = turn_on;
-	coex_dm->cur_ps_tdma = type;
-
-	/* 0x778 = 0x1 at wifi slot (no blocking BT Low-Pri pkts) */
-	if (bt_link_info->slave_role)
-		ps_tdma_byte4_modify = 0x1;
-	else
-		ps_tdma_byte4_modify = 0x0;
-
-	if (pre_ps_tdma_byte4_modify != ps_tdma_byte4_modify) {
-		force_exec = true;
-		pre_ps_tdma_byte4_modify = ps_tdma_byte4_modify;
-	}
-
-	if (!force_exec) {
-		if ((coex_dm->pre_ps_tdma_on == coex_dm->cur_ps_tdma_on) &&
-		    (coex_dm->pre_ps_tdma == coex_dm->cur_ps_tdma)) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], Skip TDMA because no change TDMA(%s, %d)\n",
-				(coex_dm->cur_ps_tdma_on ? "on" : "off"),
-				coex_dm->cur_ps_tdma);
-			return;
-		}
-	}
-
-	if (coex_dm->cur_ps_tdma_on) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], ********** TDMA(on, %d) **********\n",
-			 coex_dm->cur_ps_tdma);
-
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x550, 0x8, 0x1); /* enable TBTT nterrupt */
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], ********** TDMA(off, %d) **********\n",
-			 coex_dm->cur_ps_tdma);
-	}
-
-	if (turn_on) {
-		switch (type) {
-		case 1:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x10, 0x03, 0x91,
-				0x54 | ps_tdma_byte4_modify);
-			break;
-		case 2:
-		default:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x35, 0x03, 0x11,
-				0x11 | ps_tdma_byte4_modify);
-			break;
-		case 3:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x3a, 0x3, 0x91,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 4:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x21, 0x3, 0x91,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 5:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x25, 0x3, 0x91,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 6:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x10, 0x3, 0x91,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 7:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x20, 0x3, 0x91,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 8:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x61, 0x15,
-						      0x03, 0x11, 0x11);
-			break;
-		case 10:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x61, 0x30,
-						      0x03, 0x11, 0x10);
-			break;
-		case 11:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x35, 0x03, 0x11,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 12:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x61, 0x35,
-						      0x03, 0x11, 0x11);
-			break;
-		case 13:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x1c, 0x03, 0x11,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 14:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x61, 0x20,
-						      0x03, 0x11, 0x11);
-			break;
-		case 15:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x61, 0x10,
-						      0x03, 0x11, 0x14);
-			break;
-		case 16:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x61, 0x10,
-						      0x03, 0x11, 0x15);
-			break;
-		case 21:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x61, 0x30,
-						      0x03, 0x11, 0x10);
-			break;
-		case 22:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x61, 0x25,
-						      0x03, 0x11, 0x10);
-			break;
-		case 23:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x61, 0x10,
-						      0x03, 0x11, 0x10);
-			break;
-		case 51:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x10, 0x03, 0x91,
-				0x10 | ps_tdma_byte4_modify);
-			break;
-		case 101:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x25, 0x03, 0x11,
-				0x11 | ps_tdma_byte4_modify);
-			break;
-		case 102:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x35, 0x03, 0x11,
-				0x11 | ps_tdma_byte4_modify);
-			break;
-		case 103:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x3a, 0x3, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-		case 104:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x21, 0x3, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-		case 105:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x30, 0x3, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-		case 106:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x10, 0x3, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-		case 107:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x10, 0x7, 0x10,
-				0x54 | ps_tdma_byte4_modify);
-			break;
-		case 108:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x30, 0x3, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-		case 109:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x10, 0x03, 0x10,
-				0x54 | ps_tdma_byte4_modify);
-			break;
-		case 110:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x55, 0x30, 0x03, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-		case 111:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x61, 0x25, 0x03, 0x11,
-				0x11 | ps_tdma_byte4_modify);
-			break;
-		case 151:
-			halbtc8822b2ant_set_fw_pstdma(
-				btcoexist, 0x51, 0x10, 0x03, 0x10,
-				0x50 | ps_tdma_byte4_modify);
-			break;
-		}
-	} else {
-		/* disable PS tdma */
-		switch (type) {
-		case 0:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x0, 0x0, 0x0,
-						      0x40, 0x0);
-			break;
-		case 1:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x0, 0x0, 0x0,
-						      0x48, 0x0);
-			break;
-		default:
-			halbtc8822b2ant_set_fw_pstdma(btcoexist, 0x0, 0x0, 0x0,
-						      0x40, 0x0);
-			break;
-		}
-	}
-
-	if (!coex_sta->is_set_ps_state_fail) {
-		/* update pre state */
-		coex_dm->pre_ps_tdma_on = coex_dm->cur_ps_tdma_on;
-		coex_dm->pre_ps_tdma = coex_dm->cur_ps_tdma;
-	}
-}
-
-/*anttenna control by bb mac bt antdiv pta to write 0x4c 0xcb4,0xcbd*/
-static void halbtc8822b2ant_set_ext_ant_switch(struct btc_coexist *btcoexist,
-					       bool force_exec, u8 ctrl_type,
-					       u8 pos_type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool switch_polatiry_inverse = false;
-	u8 regval_0xcbc = 0, regval_0x64;
-	u32 u32tmp1 = 0, u32tmp2 = 0, u32tmp3 = 0;
-
-	if (!rfe_type->ext_ant_switch_exist)
-		return;
-
-	coex_dm->cur_ext_ant_switch_status = (ctrl_type << 8) + pos_type;
-
-	if (!force_exec) {
-		if (coex_dm->pre_ext_ant_switch_status ==
-		    coex_dm->cur_ext_ant_switch_status)
-			return;
-	}
-	coex_dm->pre_ext_ant_switch_status = coex_dm->cur_ext_ant_switch_status;
-
-	/* Ext switch buffer mux */
-	btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x1991, 0x3, 0x0);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbe, 0x8, 0x0);
-
-	switch (ctrl_type) {
-	default:
-	case BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_BBSW:
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e, 0x80,
-						   0x0); /*  0x4c[23] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f, 0x01,
-						   0x1); /* 0x4c[24] = 1 */
-		/* BB SW, DPDT use RFE_ctrl8 and RFE_ctrl9 as conctrol pin */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb4, 0xff,
-						   0x77);
-
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd, 0x03, 01);
-
-		break;
-	case BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_PTA:
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e, 0x80,
-						   0x0); /* 0x4c[23] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f, 0x01,
-						   0x1); /* 0x4c[24] = 1 */
-		/* PTA,  DPDT use RFE_ctrl8 and RFE_ctrl9 as conctrol pin */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb4, 0xff,
-						   0x66);
-
-		/* 0xcb4[29:28] = 2b'10 for no switch_polatiry_inverse,
-		 * DPDT_SEL_N =1, DPDT_SEL_P =0  @ GNT_BT=1
-		 */
-		regval_0xcbc = (!switch_polatiry_inverse ? 0x2 : 0x1);
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbc, 0x03,
-						   regval_0xcbc);
-
-		break;
-	case BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_ANTDIV:
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e, 0x80,
-						   0x0); /* 0x4c[23] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f, 0x01,
-						   0x1); /* 0x4c[24] = 1 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb4, 0xff,
-						   0x88);
-		break;
-	case BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_MAC:
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e, 0x80,
-						   0x1); /*  0x4c[23] = 1 */
-
-		/* 0x64[0] = 1b'0 for no switch_polatiry_inverse,
-		 * DPDT_SEL_N =1, DPDT_SEL_P =0
-		 */
-		regval_0x64 = (!switch_polatiry_inverse ? 0x0 : 0x1);
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x64, 0x1,
-						   regval_0x64);
-		break;
-	case BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_BT:
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e, 0x80,
-						   0x0); /* 0x4c[23] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f, 0x01,
-						   0x0); /* 0x4c[24] = 0 */
-
-		/* no setup required, because  antenna switch control value by
-		 * BT vendor 0x1c[1:0]
-		 */
-		break;
-	}
-
-	/* PAPE, LNA_ON control by BT while WLAN off for current leakage issue*/
-	if (ctrl_type == BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_BT) {
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x67, 0x20, 0x0); /* PAPE   0x64[29] = 0 */
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x67, 0x10, 0x0); /* LNA_ON 0x64[28] = 0 */
-	} else {
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x67, 0x20, 0x1); /* PAPE   0x64[29] = 1 */
-		btcoexist->btc_write_1byte_bitmask(
-			btcoexist, 0x67, 0x10, 0x1); /* LNA_ON 0x64[28] = 1 */
-	}
-
-	if (btcoexist->dbg_mode_2ant) {
-		u32tmp1 = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
-		u32tmp2 = btcoexist->btc_read_4byte(btcoexist, 0x4c);
-		u32tmp3 = btcoexist->btc_read_4byte(btcoexist, 0x64) & 0xff;
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], (After Ext Ant switch setup) 0xcb4 = 0x%08x, 0x4c = 0x%08x, 0x64= 0x%02x\n",
-			u32tmp1, u32tmp2, u32tmp3);
-	}
-}
-
-/* rf4 type by efuse, and for ant at main aux inverse use,
- * because is 2x2, and control types are the same, does not need
- */
-static void halbtc8822b2ant_set_rfe_type(struct btc_coexist *btcoexist)
-{
-	struct btc_board_info *board_info = &btcoexist->board_info;
-
-	rfe_type->ext_band_switch_exist = false;
-	rfe_type->ext_band_switch_type =
-		BT_8822B_2ANT_EXT_BAND_SWITCH_USE_SPDT; /* SPDT; */
-	rfe_type->ext_band_switch_ctrl_polarity = 0;
-	/* Ext switch buffer mux */
-	btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x1991, 0x3, 0x0);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbe, 0x8, 0x0);
-
-	if (rfe_type->ext_band_switch_exist) {
-		/* band switch use RFE_ctrl1 (pin name: PAPE_A) and
-		 * RFE_ctrl3 (pin name: LNAON_A)
-		 */
-
-		/* set RFE_ctrl1 as software control */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb0, 0xf0, 0x7);
-
-		/* set RFE_ctrl3 as software control */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb1, 0xf0, 0x7);
-	}
-
-	/* the following setup should be got from Efuse in the future */
-	rfe_type->rfe_module_type = board_info->rfe_type;
-
-	rfe_type->ext_ant_switch_ctrl_polarity = 0;
-
-	switch (rfe_type->rfe_module_type) {
-	case 0:
-	default:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 1:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 2:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 3:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 4:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 5:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 6:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	case 7:
-		rfe_type->ext_ant_switch_exist = true;
-		rfe_type->ext_ant_switch_type =
-			BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT;
-		break;
-	}
-}
-
-/* set gnt_wl gnt_bt control by sw high low, or hwpta while in
- * power on, ini, wlan off, wlan only, wl2g non-currrent, wl2g current, wl5g
- */
-static void halbtc8822b2ant_set_ant_path(struct btc_coexist *btcoexist,
-					 u8 ant_pos_type, bool force_exec,
-					 u8 phase)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 u8tmp = 0;
-	u32 u32tmp1 = 0;
-	u32 u32tmp2 = 0, u32tmp3 = 0;
-
-	u32tmp1 = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist, 0x38);
-
-	/* To avoid indirect access fail  */
-	if (((u32tmp1 & 0xf000) >> 12) != ((u32tmp1 & 0x0f00) >> 8)) {
-		force_exec = true;
-		coex_sta->gnt_error_cnt++;
-	}
-
-	/* Ext switch buffer mux */
-	btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x1991, 0x3, 0x0);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbe, 0x8, 0x0);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e, 0x80,
-					   0x0); /*  0x4c[23] = 0 */
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f, 0x01,
-					   0x1); /* 0x4c[24] = 1 */
-
-	coex_dm->cur_ant_pos_type = (ant_pos_type << 8) + phase;
-
-	if (!force_exec) {
-		if (coex_dm->cur_ant_pos_type == coex_dm->pre_ant_pos_type)
-			return;
-	}
-
-	coex_dm->pre_ant_pos_type = coex_dm->cur_ant_pos_type;
-
-	if (btcoexist->dbg_mode_2ant) {
-		u32tmp1 = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								    0x38);
-		u32tmp2 = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								    0x54);
-		u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x73);
-
-		u32tmp3 = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], (Before Ant Setup) 0xcb4 = 0x%x, 0x73 = 0x%x, 0x38= 0x%x, 0x54= 0x%x\n",
-			u32tmp3, u8tmp, u32tmp1, u32tmp2);
-	}
-
-	switch (phase) {
-	case BT_8822B_2ANT_PHASE_COEX_POWERON:
-
-		/* set Path control owner to WL at initial step */
-		halbtc8822b2ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_2ANT_PCO_BTSIDE);
-
-		/* set GNT_BT to SW high */
-		halbtc8822b2ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-		/* Set GNT_WL to SW high */
-		halbtc8822b2ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-
-		coex_sta->run_time_state = false;
-
-		break;
-	case BT_8822B_2ANT_PHASE_COEX_INIT:
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e, 0x80,
-						   0x0); /*  0x4c[23] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f, 0x01,
-						   0x1); /* 0x4c[24] = 1 */
-		/* Disable LTE Coex Function in WiFi side
-		 * (this should be on if LTE coex is required)
-		 */
-		halbtc8822b2ant_ltecoex_enable(btcoexist, 0x0);
-
-		/* GNT_WL_LTE always = 1
-		 * (this should be config if LTE coex is required)
-		 */
-		halbtc8822b2ant_ltecoex_set_coex_table(
-			btcoexist, BT_8822B_2ANT_CTT_WL_VS_LTE, 0xffff);
-
-		/* GNT_BT_LTE always = 1
-		 * (this should be config if LTE coex is required)
-		 */
-		halbtc8822b2ant_ltecoex_set_coex_table(
-			btcoexist, BT_8822B_2ANT_CTT_BT_VS_LTE, 0xffff);
-
-		/* set Path control owner to WL at initial step */
-		halbtc8822b2ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_2ANT_PCO_WLSIDE);
-
-		/* set GNT_BT to SW high */
-		halbtc8822b2ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-		/* Set GNT_WL to SW high */
-		halbtc8822b2ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-
-		coex_sta->run_time_state = false;
-
-		break;
-	case BT_8822B_2ANT_PHASE_WLANONLY_INIT:
-		/* Disable LTE Coex Function in WiFi side
-		 * (this should be on if LTE coex is required)
-		 */
-		halbtc8822b2ant_ltecoex_enable(btcoexist, 0x0);
-
-		/* GNT_WL_LTE always = 1
-		 * (this should be config if LTE coex is required)
-		 */
-		halbtc8822b2ant_ltecoex_set_coex_table(
-			btcoexist, BT_8822B_2ANT_CTT_WL_VS_LTE, 0xffff);
-
-		/* GNT_BT_LTE always = 1
-		 * (this should be config if LTE coex is required)
-		 */
-		halbtc8822b2ant_ltecoex_set_coex_table(
-			btcoexist, BT_8822B_2ANT_CTT_BT_VS_LTE, 0xffff);
-
-		/* set Path control owner to WL at initial step */
-		halbtc8822b2ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_2ANT_PCO_WLSIDE);
-
-		/* set GNT_BT to SW Low */
-		halbtc8822b2ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_LOW);
-		/* Set GNT_WL to SW high */
-		halbtc8822b2ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-
-		coex_sta->run_time_state = false;
-
-		break;
-	case BT_8822B_2ANT_PHASE_WLAN_OFF:
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4e, 0x80,
-						   0x0); /* 0x4c[23] = 0 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4f, 0x01,
-						   0x0); /* 0x4c[24] = 0 */
-		/* Disable LTE Coex Function in WiFi side */
-		halbtc8822b2ant_ltecoex_enable(btcoexist, 0x0);
-
-		/* set Path control owner to BT */
-		halbtc8822b2ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_2ANT_PCO_BTSIDE);
-
-		/* Set Ext Ant Switch to BT control at wifi off step */
-		halbtc8822b2ant_set_ext_ant_switch(
-			btcoexist, FORCE_EXEC,
-			BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_BT,
-			BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_NOCARE);
-		coex_sta->run_time_state = false;
-		break;
-	case BT_8822B_2ANT_PHASE_2G_RUNTIME:
-	case BT_8822B_2ANT_PHASE_2G_RUNTIME_CONCURRENT:
-
-		/* set Path control owner to WL at runtime step */
-		halbtc8822b2ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_2ANT_PCO_WLSIDE);
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcb4, 0xff,
-						   0x66);
-		if (phase == BT_8822B_2ANT_PHASE_2G_RUNTIME_CONCURRENT) {
-			/* set GNT_BT to PTA */
-			halbtc8822b2ant_ltecoex_set_gnt_bt(
-				btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-				BT_8822B_2ANT_GNT_TYPE_CTRL_BY_PTA,
-				BT_8822B_2ANT_SIG_STA_SET_BY_HW);
-
-			/* Set GNT_WL to SW High */
-			halbtc8822b2ant_ltecoex_set_gnt_wl(
-				btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-				BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-				BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-		} else {
-			/* set GNT_BT to PTA */
-			halbtc8822b2ant_ltecoex_set_gnt_bt(
-				btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-				BT_8822B_2ANT_GNT_TYPE_CTRL_BY_PTA,
-				BT_8822B_2ANT_SIG_STA_SET_BY_HW);
-
-			/* Set GNT_WL to PTA */
-			halbtc8822b2ant_ltecoex_set_gnt_wl(
-				btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-				BT_8822B_2ANT_GNT_TYPE_CTRL_BY_PTA,
-				BT_8822B_2ANT_SIG_STA_SET_BY_HW);
-		}
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ************* under2g 0xcbd setting =2 *************\n");
-
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd, 0x03, 02);
-		break;
-
-	case BT_8822B_2ANT_PHASE_5G_RUNTIME:
-
-		/* set Path control owner to WL at runtime step */
-		halbtc8822b2ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_2ANT_PCO_WLSIDE);
-
-		/* set GNT_BT to SW Hi */
-		halbtc8822b2ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-		/* Set GNT_WL to SW Hi */
-		halbtc8822b2ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-		coex_sta->run_time_state = true;
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ************* under5g 0xcbd setting =1 *************\n");
-
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0xcbd, 0x03, 01);
-
-		break;
-	case BT_8822B_2ANT_PHASE_BTMPMODE:
-		/* Disable LTE Coex Function in WiFi side */
-		halbtc8822b2ant_ltecoex_enable(btcoexist, 0x0);
-
-		/* set Path control owner to WL */
-		halbtc8822b2ant_ltecoex_pathcontrol_owner(
-			btcoexist, BT_8822B_2ANT_PCO_WLSIDE);
-
-		/* set GNT_BT to SW Hi */
-		halbtc8822b2ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-
-		/* Set GNT_WL to SW Lo */
-		halbtc8822b2ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_LOW);
-
-		coex_sta->run_time_state = false;
-		break;
-	}
-
-	if (btcoexist->dbg_mode_2ant) {
-		u32tmp1 = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								    0x38);
-		u32tmp2 = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								    0x54);
-		u32tmp3 = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
-		u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x73);
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], (After Ant-Setup phase---%d) 0xcb4 = 0x%x, 0x73 = 0x%x, 0x38= 0x%x, 0x54= 0x%x\n",
-			phase, u32tmp3, u8tmp, u32tmp1, u32tmp2);
-	}
-}
-
-static u8 halbtc8822b2ant_action_algorithm(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool bt_hs_on = false;
-	u8 algorithm = BT_8822B_2ANT_COEX_ALGO_UNDEFINED;
-	u8 num_of_diff_profile = 0;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-
-	if (!bt_link_info->bt_link_exist) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], No BT link exists!!!\n");
-		return algorithm;
-	}
-
-	if (bt_link_info->sco_exist)
-		num_of_diff_profile++;
-	if (bt_link_info->hid_exist)
-		num_of_diff_profile++;
-	if (bt_link_info->pan_exist)
-		num_of_diff_profile++;
-	if (bt_link_info->a2dp_exist)
-		num_of_diff_profile++;
-
-	if (num_of_diff_profile == 0) {
-		if (bt_link_info->acl_busy) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], No-Profile busy\n");
-			algorithm = BT_8822B_2ANT_COEX_ALGO_NOPROFILEBUSY;
-		}
-	} else if ((bt_link_info->a2dp_exist) && (coex_sta->is_bt_a2dp_sink)) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], A2DP Sink\n");
-		algorithm = BT_8822B_2ANT_COEX_ALGO_A2DPSINK;
-	} else if (num_of_diff_profile == 1) {
-		if (bt_link_info->sco_exist) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], SCO only\n");
-			algorithm = BT_8822B_2ANT_COEX_ALGO_SCO;
-		} else {
-			if (bt_link_info->hid_exist) {
-				RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					 "[BTCoex], HID only\n");
-				algorithm = BT_8822B_2ANT_COEX_ALGO_HID;
-			} else if (bt_link_info->a2dp_exist) {
-				RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					 "[BTCoex], A2DP only\n");
-				algorithm = BT_8822B_2ANT_COEX_ALGO_A2DP;
-			} else if (bt_link_info->pan_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(rtlpriv, COMP_BT_COEXIST,
-						 DBG_LOUD,
-						 "[BTCoex], PAN(HS) only\n");
-					algorithm =
-						BT_8822B_2ANT_COEX_ALGO_PANHS;
-				} else {
-					RT_TRACE(rtlpriv, COMP_BT_COEXIST,
-						 DBG_LOUD,
-						 "[BTCoex], PAN(EDR) only\n");
-					algorithm =
-						BT_8822B_2ANT_COEX_ALGO_PANEDR;
-				}
-			}
-		}
-	} else if (num_of_diff_profile == 2) {
-		if (bt_link_info->sco_exist) {
-			if (bt_link_info->hid_exist) {
-				RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					 "[BTCoex], SCO + HID\n");
-				algorithm = BT_8822B_2ANT_COEX_ALGO_SCO;
-			} else if (bt_link_info->a2dp_exist) {
-				RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					 "[BTCoex], SCO + A2DP ==> A2DP\n");
-				algorithm = BT_8822B_2ANT_COEX_ALGO_A2DP;
-			} else if (bt_link_info->pan_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(rtlpriv, COMP_BT_COEXIST,
-						 DBG_LOUD,
-						 "[BTCoex], SCO + PAN(HS)\n");
-					algorithm = BT_8822B_2ANT_COEX_ALGO_SCO;
-				} else {
-					RT_TRACE(rtlpriv, COMP_BT_COEXIST,
-						 DBG_LOUD,
-						 "[BTCoex], SCO + PAN(EDR)\n");
-					algorithm =
-						BT_8822B_2ANT_COEX_ALGO_PANEDR;
-				}
-			}
-		} else {
-			if (bt_link_info->hid_exist &&
-			    bt_link_info->a2dp_exist) {
-				{
-					RT_TRACE(rtlpriv, COMP_BT_COEXIST,
-						 DBG_LOUD,
-						 "[BTCoex], HID + A2DP\n");
-					algorithm =
-					    BT_8822B_2ANT_COEX_ALGO_HID_A2DP;
-				}
-			} else if (bt_link_info->hid_exist &&
-				   bt_link_info->pan_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(rtlpriv, COMP_BT_COEXIST,
-						 DBG_LOUD,
-						 "[BTCoex], HID + PAN(HS)\n");
-					algorithm = BT_8822B_2ANT_COEX_ALGO_HID;
-				} else {
-					RT_TRACE(rtlpriv, COMP_BT_COEXIST,
-						 DBG_LOUD,
-						 "[BTCoex], HID + PAN(EDR)\n");
-					algorithm =
-					    BT_8822B_2ANT_COEX_ALGO_PANEDR_HID;
-				}
-			} else if (bt_link_info->pan_exist &&
-				   bt_link_info->a2dp_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(rtlpriv, COMP_BT_COEXIST,
-						 DBG_LOUD,
-						 "[BTCoex], A2DP + PAN(HS)\n");
-					algorithm =
-					    BT_8822B_2ANT_COEX_ALGO_A2DP_PANHS;
-				} else {
-					RT_TRACE(rtlpriv, COMP_BT_COEXIST,
-						 DBG_LOUD,
-						 "[BTCoex], A2DP + PAN(EDR)\n");
-					algorithm =
-					    BT_8822B_2ANT_COEX_ALGO_PANEDR_A2DP;
-				}
-			}
-		}
-	} else if (num_of_diff_profile == 3) {
-		if (bt_link_info->sco_exist) {
-			if (bt_link_info->hid_exist &&
-			    bt_link_info->a2dp_exist) {
-				RT_TRACE(
-					rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					"[BTCoex], SCO + HID + A2DP ==> HID + A2DP\n");
-				algorithm = BT_8822B_2ANT_COEX_ALGO_HID_A2DP;
-			} else if (bt_link_info->hid_exist &&
-				   bt_link_info->pan_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], SCO + HID + PAN(HS)\n");
-					algorithm =
-					    BT_8822B_2ANT_COEX_ALGO_PANEDR_HID;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], SCO + HID + PAN(EDR)\n");
-					algorithm =
-					    BT_8822B_2ANT_COEX_ALGO_PANEDR_HID;
-				}
-			} else if (bt_link_info->pan_exist &&
-				   bt_link_info->a2dp_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], SCO + A2DP + PAN(HS)\n");
-					algorithm =
-					    BT_8822B_2ANT_COEX_ALGO_A2DP_PANHS;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], SCO + A2DP + PAN(EDR) ==> HID\n");
-					algorithm =
-					    BT_8822B_2ANT_COEX_ALGO_PANEDR_A2DP;
-				}
-			}
-		} else {
-			if (bt_link_info->hid_exist &&
-			    bt_link_info->pan_exist &&
-			    bt_link_info->a2dp_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], HID + A2DP + PAN(HS)\n");
-					algorithm =
-					BT_8822B_2ANT_COEX_ALGO_HID_A2DP_PANEDR;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], HID + A2DP + PAN(EDR)\n");
-					algorithm =
-					BT_8822B_2ANT_COEX_ALGO_HID_A2DP_PANEDR;
-				}
-			}
-		}
-	} else if (num_of_diff_profile >= 3) {
-		if (bt_link_info->sco_exist) {
-			if (bt_link_info->hid_exist &&
-			    bt_link_info->pan_exist &&
-			    bt_link_info->a2dp_exist) {
-				if (bt_hs_on) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], Error!!! SCO + HID + A2DP + PAN(HS)\n");
-					algorithm =
-					BT_8822B_2ANT_COEX_ALGO_HID_A2DP_PANEDR;
-				} else {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], SCO + HID + A2DP + PAN(EDR)==>PAN(EDR)+HID\n");
-					algorithm =
-					BT_8822B_2ANT_COEX_ALGO_HID_A2DP_PANEDR;
-				}
-			}
-		}
-	}
-
-	return algorithm;
-}
-
-static void halbtc8822b2ant_action_coex_all_off(struct btc_coexist *btcoexist)
-{
-	halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-
-	/* fw all off */
-	halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-
-	halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-}
-
-static void halbtc8822b2ant_action_wifi_under5g(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	/* fw all off */
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ************* under5g *************\n");
-	halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-	halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-
-	halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, FORCE_EXEC,
-				     BT_8822B_2ANT_PHASE_5G_RUNTIME);
-}
-
-static void
-halbtc8822b2ant_action_wifi_native_lps(struct btc_coexist *btcoexist)
-{
-	halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-
-	halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-}
-
-static void halbtc8822b2ant_action_bt_inquiry(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_connected = false;
-	bool wifi_scan = false, wifi_link = false, wifi_roam = false;
-	bool wifi_busy = false;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &wifi_scan);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &wifi_link);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &wifi_roam);
-
-	if ((coex_sta->bt_create_connection) &&
-	    ((wifi_link) || (wifi_roam) || (wifi_scan) || (wifi_busy) ||
-	     (coex_sta->wifi_is_high_pri_task))) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], Wifi link/roam/Scan/busy/hi-pri-task + BT Inq/Page!!\n");
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-
-		if ((bt_link_info->a2dp_exist) && (!bt_link_info->pan_exist))
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						15);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						11);
-	} else if ((!wifi_connected) && (!wifi_scan)) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Wifi no-link + no-scan + BT Inq/Page!!\n");
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (bt_link_info->pan_exist) {
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 22);
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-
-	} else if (bt_link_info->a2dp_exist) {
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 8);
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC,
-						     10);
-	} else {
-		if ((wifi_link) || (wifi_roam) || (wifi_scan) || (wifi_busy) ||
-		    (coex_sta->wifi_is_high_pri_task))
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						21);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						23);
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-	}
-
-	halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, FORCE_EXEC, 0xd8);
-}
-
-static void
-halbtc8822b2ant_action_wifi_link_process(struct btc_coexist *btcoexist)
-{
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, FORCE_EXEC, 0xd4);
-
-	halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-
-	if (bt_link_info->pan_exist) {
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 22);
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-
-	} else if (bt_link_info->a2dp_exist) {
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 16);
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-	} else {
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 21);
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-	}
-}
-
-static void
-halbtc8822b2ant_action_wifi_nonconnected(struct btc_coexist *btcoexist)
-{
-	halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-	/* fw all off */
-	halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-
-	halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-}
-
-static void halbtc8822b2ant_action_bt_relink(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], run bt multi link function\n");
-
-	if (coex_sta->is_bt_multi_link)
-		return;
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], run bt re-link function\n");
-
-	halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-}
-
-static void halbtc8822b2ant_action_bt_idle(struct btc_coexist *btcoexist)
-{
-	bool wifi_busy = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	if (!wifi_busy) {
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14);
-	} else { /* if wl busy */
-
-		if (BT_8822B_2ANT_BT_STATUS_NON_CONNECTED_IDLE ==
-		    coex_dm->bt_status) {
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 0);
-
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false,
-						0);
-		} else {
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 8);
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						12);
-		}
-	}
-
-	halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, FORCE_EXEC, 0xd8);
-}
-
-/* SCO only or SCO+PAN(HS) */
-static void halbtc8822b2ant_action_sco(struct btc_coexist *btcoexist)
-{
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false;
-	u32 wifi_bw = 1;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		if (coex_sta->is_esco_mode)
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-		else /* 2-Ant free run if SCO mode */
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 0);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 8);
-	}
-}
-
-static void halbtc8822b2ant_action_hid(struct btc_coexist *btcoexist)
-{
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false;
-	u32 wifi_bw = 1;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		if (coex_sta->is_hid_low_pri_tx_overhead) {
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 4);
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						108);
-		} else if (wifi_bw == 0) { /* if 11bg mode */
-
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 8);
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						111);
-		} else {
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 8);
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						111);
-		}
-	}
-}
-
-static void halbtc8822b2ant_action_a2dpsink(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false, wifi_turbo = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
-			   &coex_sta->scan_ap_num);
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "############# [BTCoex],  scan_ap_num = %d, wl_noisy = %d\n",
-		 coex_sta->scan_ap_num, coex_sta->wl_noisy_level);
-
-	if ((wifi_busy) && (coex_sta->wl_noisy_level == 0))
-		wifi_turbo = true;
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (BTC_RSSI_HIGH(wifi_rssi_state2) &&
-		   BTC_RSSI_HIGH(bt_rssi_state2)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xc8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 2);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-
-		if (wifi_busy)
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						1);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						16);
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = true;
-
-		if ((coex_sta->bt_relink_downcount != 0) && (wifi_busy)) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"############# [BTCoex],  BT Re-Link + A2DP + WL busy\n");
-
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false,
-						0);
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 5);
-
-		} else {
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 8);
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						105);
-		}
-	}
-}
-
-/* A2DP only / PAN(EDR) only/ A2DP+PAN(HS) */
-static void halbtc8822b2ant_action_a2dp(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false, wifi_turbo = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
-			   &coex_sta->scan_ap_num);
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "############# [BTCoex],  scan_ap_num = %d, wl_noisy = %d\n",
-		 coex_sta->scan_ap_num, coex_sta->wl_noisy_level);
-
-	if ((wifi_busy) && (coex_sta->wl_noisy_level == 0))
-		wifi_turbo = true;
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (BTC_RSSI_HIGH(wifi_rssi_state2) &&
-		   BTC_RSSI_HIGH(bt_rssi_state2)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xc8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 2);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-
-		if (wifi_busy)
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						1);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						16);
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = true;
-
-		if ((coex_sta->bt_relink_downcount != 0) && (wifi_busy)) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"############# [BTCoex],  BT Re-Link + A2DP + WL busy\n");
-
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false,
-						0);
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 5);
-
-		} else {
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 10);
-
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						109);
-		}
-	}
-}
-
-static void halbtc8822b2ant_action_pan_edr(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false, wifi_turbo = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
-			   &coex_sta->scan_ap_num);
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "############# [BTCoex],  scan_ap_num = %d, wl_noisy = %d\n",
-		 coex_sta->scan_ap_num, coex_sta->wl_noisy_level);
-
-	if ((wifi_busy) && (coex_sta->wl_noisy_level == 0))
-		wifi_turbo = true;
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (BTC_RSSI_HIGH(wifi_rssi_state2) &&
-		   BTC_RSSI_HIGH(bt_rssi_state2)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xc8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 2);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-
-		if (wifi_busy)
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						3);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						4);
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = true;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-
-		if (wifi_busy)
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						103);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						104);
-	}
-}
-
-static void halbtc8822b2ant_action_hid_a2dp(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false;
-	u32 wifi_bw = 1;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (BTC_RSSI_HIGH(wifi_rssi_state2) &&
-		   BTC_RSSI_HIGH(bt_rssi_state2)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xc8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 2);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-
-		if (wifi_busy)
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						1);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						16);
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = true;
-
-		if ((coex_sta->bt_relink_downcount != 0) && (wifi_busy)) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"############# [BTCoex],  BT Re-Link + A2DP + WL busy\n");
-
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false,
-						0);
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 5);
-		} else {
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 8);
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						109);
-		}
-	}
-}
-
-static void halbtc8822b2ant_action_a2dp_pan_hs(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false, wifi_turbo = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
-			   &coex_sta->scan_ap_num);
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "############# [BTCoex],  scan_ap_num = %d, wl_noisy = %d\n",
-		 coex_sta->scan_ap_num, coex_sta->wl_noisy_level);
-
-	if ((wifi_busy) && (coex_sta->wl_noisy_level == 0))
-		wifi_turbo = true;
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		/*halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);*/
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (BTC_RSSI_HIGH(wifi_rssi_state2) &&
-		   BTC_RSSI_HIGH(bt_rssi_state2)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xc8);
-		/*halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 2);*/
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-
-		if (wifi_busy) {
-			if ((coex_sta->a2dp_bit_pool > 40) &&
-			    (coex_sta->a2dp_bit_pool < 255))
-				halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 7);
-			else
-				halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 5);
-		} else {
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						6);
-		}
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		/*halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);*/
-
-		coex_dm->is_switch_to_1dot5_ant = true;
-
-		if (wifi_turbo)
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 6);
-		else
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 7);
-
-		if (wifi_busy) {
-			if ((coex_sta->a2dp_bit_pool > 40) &&
-			    (coex_sta->a2dp_bit_pool < 255))
-				halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 107);
-			else
-				halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 105);
-		} else {
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						106);
-		}
-	}
-}
-
-/* PAN(EDR)+A2DP */
-static void halbtc8822b2ant_action_pan_edr_a2dp(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false, wifi_turbo = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
-			   &coex_sta->scan_ap_num);
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "############# [BTCoex],  scan_ap_num = %d, wl_noisy = %d\n",
-		 coex_sta->scan_ap_num, coex_sta->wl_noisy_level);
-
-	if ((wifi_busy) && (coex_sta->wl_noisy_level == 0))
-		wifi_turbo = true;
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (BTC_RSSI_HIGH(wifi_rssi_state2) &&
-		   BTC_RSSI_HIGH(bt_rssi_state2)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xc8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 2);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-
-		if (wifi_busy) {
-			if (((coex_sta->a2dp_bit_pool > 40) &&
-			     (coex_sta->a2dp_bit_pool < 255)) ||
-			    (!coex_sta->is_A2DP_3M))
-				halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 7);
-			else
-				halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 5);
-		} else {
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						6);
-		}
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = true;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-		if (wifi_busy)
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						107);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						106);
-	}
-}
-
-static void halbtc8822b2ant_action_pan_edr_hid(struct btc_coexist *btcoexist)
-{
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false;
-	u32 wifi_bw = 1;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (BTC_RSSI_HIGH(wifi_rssi_state2) &&
-		   BTC_RSSI_HIGH(bt_rssi_state2)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xc8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 2);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-
-		if (wifi_busy)
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						3);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						4);
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-		halbtc8822b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, 0);
-
-		coex_dm->is_switch_to_1dot5_ant = true;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8);
-
-		if (wifi_busy)
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						103);
-		else
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						104);
-	}
-}
-
-/* HID+A2DP+PAN(EDR) */
-static void
-halbtc8822b2ant_action_hid_a2dp_pan_edr(struct btc_coexist *btcoexist)
-{
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false;
-	u32 wifi_bw = 1;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (BTC_RSSI_HIGH(wifi_rssi_state2) &&
-		   BTC_RSSI_HIGH(bt_rssi_state2)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xc8);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4);
-
-		if (wifi_busy) {
-			if (((coex_sta->a2dp_bit_pool > 40) &&
-			     (coex_sta->a2dp_bit_pool < 255)) ||
-			    (!coex_sta->is_A2DP_3M))
-				halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 7);
-			else
-				halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 5);
-		} else {
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						6);
-		}
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-
-		coex_dm->is_switch_to_1dot5_ant = true;
-
-		if (coex_sta->hid_busy_num >= 2) {
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 8);
-
-			if (wifi_bw == 0) {
-				halbtc8822b2ant_set_wltoggle_coex_table(
-					btcoexist, NORMAL_EXEC, 0x1, 0xaa, 0x5a,
-					0xaa, 0xaa);
-			} else {
-				halbtc8822b2ant_set_wltoggle_coex_table(
-					btcoexist, NORMAL_EXEC, 0x2, 0xaa, 0x5a,
-					0xaa, 0xaa);
-			}
-			halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true,
-						110);
-		} else {
-			halbtc8822b2ant_coex_table_with_type(btcoexist,
-							     NORMAL_EXEC, 1);
-
-			if (wifi_busy) {
-				if ((coex_sta->a2dp_bit_pool > 40) &&
-				    (coex_sta->a2dp_bit_pool < 255))
-					halbtc8822b2ant_ps_tdma(btcoexist,
-								NORMAL_EXEC,
-								true, 107);
-				else
-					halbtc8822b2ant_ps_tdma(btcoexist,
-								NORMAL_EXEC,
-								true, 105);
-			} else {
-				halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC,
-							true, 106);
-			}
-		}
-	}
-}
-
-static void halbtc8822b2ant_action_bt_whck_test(struct btc_coexist *btcoexist)
-{
-	halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-
-	halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-	halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-}
-
-static void halbtc8822b2ant_action_bt_hs(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static u8 prewifi_rssi_state = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state, bt_rssi_state;
-
-	static u8 prewifi_rssi_state2 = BTC_RSSI_STATE_LOW;
-	static u8 pre_bt_rssi_state2 = BTC_RSSI_STATE_LOW;
-	u8 wifi_rssi_state2, bt_rssi_state2;
-	bool wifi_busy = false, wifi_turbo = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
-			   &coex_sta->scan_ap_num);
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "############# [BTCoex],  scan_ap_num = %d, wl_noisy = %d\n",
-		 coex_sta->scan_ap_num, coex_sta->wl_noisy_level);
-
-	if ((wifi_busy) && (coex_sta->wl_noisy_level == 0))
-		wifi_turbo = true;
-
-	wifi_rssi_state = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state, 2, coex_sta->wifi_coex_thres,
-		0);
-
-	wifi_rssi_state2 = halbtc8822b2ant_wifi_rssi_state(
-		btcoexist, &prewifi_rssi_state2, 2, coex_sta->wifi_coex_thres2,
-		0);
-
-	bt_rssi_state = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state, 2, coex_sta->bt_coex_thres, 0);
-
-	bt_rssi_state2 = halbtc8822b2ant_bt_rssi_state(
-		btcoexist, &pre_bt_rssi_state2, 2, coex_sta->bt_coex_thres2, 0);
-
-	if (BTC_RSSI_HIGH(wifi_rssi_state) && BTC_RSSI_HIGH(bt_rssi_state)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	} else if (BTC_RSSI_HIGH(wifi_rssi_state2) &&
-		   BTC_RSSI_HIGH(bt_rssi_state2)) {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xc8);
-
-		coex_dm->is_switch_to_1dot5_ant = false;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-
-	} else {
-		halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-
-		coex_dm->is_switch_to_1dot5_ant = true;
-
-		halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-		halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-	}
-}
-
-static void
-halbtc8822b2ant_action_wifi_multi_port(struct btc_coexist *btcoexist)
-{
-	halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-
-	/* hw all off */
-	halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0);
-
-	halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-}
-
-static void halbtc8822b2ant_action_wifi_connected(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	switch (coex_dm->cur_algorithm) {
-	case BT_8822B_2ANT_COEX_ALGO_SCO:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = SCO.\n");
-		halbtc8822b2ant_action_sco(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_HID:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = HID.\n");
-		halbtc8822b2ant_action_hid(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_A2DP:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = A2DP.\n");
-		halbtc8822b2ant_action_a2dp(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_A2DPSINK:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = A2DP Sink.\n");
-		halbtc8822b2ant_action_a2dpsink(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_A2DP_PANHS:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = A2DP+PAN(HS).\n");
-		halbtc8822b2ant_action_a2dp_pan_hs(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_PANEDR:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = PAN(EDR).\n");
-		halbtc8822b2ant_action_pan_edr(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_PANEDR_A2DP:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = PAN+A2DP.\n");
-		halbtc8822b2ant_action_pan_edr_a2dp(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_PANEDR_HID:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = PAN(EDR)+HID.\n");
-		halbtc8822b2ant_action_pan_edr_hid(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_HID_A2DP_PANEDR:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = HID+A2DP+PAN.\n");
-		halbtc8822b2ant_action_hid_a2dp_pan_edr(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_HID_A2DP:
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, algorithm = HID+A2DP.\n");
-		halbtc8822b2ant_action_hid_a2dp(btcoexist);
-		break;
-	case BT_8822B_2ANT_COEX_ALGO_NOPROFILEBUSY:
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], Action 2-Ant, algorithm = No-Profile busy.\n");
-		halbtc8822b2ant_action_bt_idle(btcoexist);
-		break;
-	default:
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], Action 2-Ant, algorithm = coexist All Off!!\n");
-		halbtc8822b2ant_action_coex_all_off(btcoexist);
-		break;
-	}
-
-	coex_dm->pre_algorithm = coex_dm->cur_algorithm;
-}
-
-static void halbtc8822b2ant_run_coexist_mechanism(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 algorithm = 0;
-	u32 num_of_wifi_link = 0;
-	u32 wifi_link_status = 0;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-	bool miracast_plus_bt = false;
-	bool scan = false, link = false, roam = false, under_4way = false,
-	     wifi_connected = false, wifi_under_5g = false, bt_hs_on = false;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS,
-			   &under_4way);
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], RunCoexistMechanism()===>\n");
-
-	if (btcoexist->manual_control) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], RunCoexistMechanism(), return for Manual CTRL <===\n");
-		return;
-	}
-
-	if (btcoexist->stop_coex_dm) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], RunCoexistMechanism(), return for Stop Coex DM <===\n");
-		return;
-	}
-
-	if (coex_sta->under_ips) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], wifi is under IPS !!!\n");
-		return;
-	}
-
-	if ((coex_sta->under_lps) &&
-	    (coex_dm->bt_status != BT_8822B_2ANT_BT_STATUS_ACL_BUSY)) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], RunCoexistMechanism(), wifi is under LPS !!!\n");
-		halbtc8822b2ant_action_wifi_native_lps(btcoexist);
-		return;
-	}
-
-	if (!coex_sta->run_time_state) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], return for run_time_state = false !!!\n");
-		return;
-	}
-
-	if (coex_sta->freeze_coexrun_by_btinfo) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], BtInfoNotify(), return for freeze_coexrun_by_btinfo\n");
-		return;
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if ((wifi_under_5g) &&
-	    (coex_sta->switch_band_notify_to != BTC_SWITCH_TO_24G) &&
-	    (coex_sta->switch_band_notify_to != BTC_SWITCH_TO_24G_NOFORSCAN)) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], WiFi is under 5G!!!\n");
-
-		halbtc8822b2ant_action_wifi_under5g(btcoexist);
-		return;
-	}
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], WiFi is under 2G!!!\n");
-
-	halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, NORMAL_EXEC,
-				     BT_8822B_2ANT_PHASE_2G_RUNTIME);
-
-	if (coex_sta->bt_whck_test) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BT is under WHCK TEST!!!\n");
-		halbtc8822b2ant_action_bt_whck_test(btcoexist);
-		return;
-	}
-
-	if (coex_sta->bt_disabled) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BT is disabled!!!\n");
-		halbtc8822b2ant_action_coex_all_off(btcoexist);
-		return;
-	}
-
-	if (coex_sta->c2h_bt_inquiry_page) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BT is under inquiry/page scan !!\n");
-		halbtc8822b2ant_action_bt_inquiry(btcoexist);
-		return;
-	}
-
-	if (coex_sta->is_setup_link) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], BT is re-link !!!\n");
-		halbtc8822b2ant_action_bt_relink(btcoexist);
-		return;
-	}
-
-	/* for P2P */
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_LINK_STATUS,
-			   &wifi_link_status);
-	num_of_wifi_link = wifi_link_status >> 16;
-
-	if ((num_of_wifi_link >= 2) ||
-	    (wifi_link_status & WIFI_P2P_GO_CONNECTED)) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"############# [BTCoex],  Multi-Port num_of_wifi_link = %d, wifi_link_status = 0x%x\n",
-			num_of_wifi_link, wifi_link_status);
-
-		if (bt_link_info->bt_link_exist)
-			miracast_plus_bt = true;
-		else
-			miracast_plus_bt = false;
-
-		btcoexist->btc_set(btcoexist, BTC_SET_BL_MIRACAST_PLUS_BT,
-				   &miracast_plus_bt);
-
-		if (scan || link || roam || under_4way) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], scan = %d, link = %d, roam = %d 4way = %d!!!\n",
-				scan, link, roam, under_4way);
-
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], wifi is under linkscan process + Multi-Port !!\n");
-
-			halbtc8822b2ant_action_wifi_link_process(btcoexist);
-		} else {
-			halbtc8822b2ant_action_wifi_multi_port(btcoexist);
-		}
-
-		return;
-	}
-
-	miracast_plus_bt = false;
-	btcoexist->btc_set(btcoexist, BTC_SET_BL_MIRACAST_PLUS_BT,
-			   &miracast_plus_bt);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-
-	if (bt_hs_on) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "############# [BTCoex],  BT Is hs\n");
-		halbtc8822b2ant_action_bt_hs(btcoexist);
-		return;
-	}
-
-	if ((BT_8822B_2ANT_BT_STATUS_NON_CONNECTED_IDLE ==
-	     coex_dm->bt_status) ||
-	    (coex_dm->bt_status == BT_8822B_2ANT_BT_STATUS_CONNECTED_IDLE)) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, bt idle!!.\n");
-
-		halbtc8822b2ant_action_bt_idle(btcoexist);
-		return;
-	}
-
-	algorithm = halbtc8822b2ant_action_algorithm(btcoexist);
-	coex_dm->cur_algorithm = algorithm;
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], Algorithm = %d\n", coex_dm->cur_algorithm);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-
-	if (scan || link || roam || under_4way) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], WiFi is under Link Process !!\n");
-		halbtc8822b2ant_action_wifi_link_process(btcoexist);
-	} else if (wifi_connected) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, wifi connected!!.\n");
-		halbtc8822b2ant_action_wifi_connected(btcoexist);
-
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Action 2-Ant, wifi not-connected!!.\n");
-		halbtc8822b2ant_action_wifi_nonconnected(btcoexist);
-	}
-}
-
-static void halbtc8822b2ant_init_coex_dm(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], Coex Mechanism Init!!\n");
-
-	halbtc8822b2ant_low_penalty_ra(btcoexist, NORMAL_EXEC, false);
-
-	halbtc8822b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5);
-
-	/* fw all off */
-	halbtc8822b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0);
-
-	halbtc8822b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 0xd8);
-
-	coex_sta->pop_event_cnt = 0;
-	coex_sta->cnt_remote_name_req = 0;
-	coex_sta->cnt_reinit = 0;
-	coex_sta->cnt_setup_link = 0;
-	coex_sta->cnt_ign_wlan_act = 0;
-	coex_sta->cnt_page = 0;
-	coex_sta->cnt_role_switch = 0;
-	coex_sta->switch_band_notify_to = BTC_NOT_SWITCH;
-
-	halbtc8822b2ant_query_bt_info(btcoexist);
-}
-
-static void halbtc8822b2ant_init_hw_config(struct btc_coexist *btcoexist,
-					   bool wifi_only)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u32 u32tmp1 = 0, u32tmp2 = 0, u32tmp3 = 0;
-	u32 RTL97F_8822B = 0;
-	u8 i = 0;
-
-	u32tmp3 = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
-	u32tmp1 = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist, 0x38);
-	u32tmp2 = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist, 0x54);
-
-	if (RTL97F_8822B) {
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x66, 0x04, 0x0);
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x41, 0x02, 0x0);
-
-		/* set GNT_BT to SW high */
-		halbtc8822b2ant_ltecoex_set_gnt_bt(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-		/* Set GNT_WL to SW high */
-		halbtc8822b2ant_ltecoex_set_gnt_wl(
-			btcoexist, BT_8822B_2ANT_GNT_BLOCK_RFC_BB,
-			BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW,
-			BT_8822B_2ANT_SIG_STA_SET_TO_HIGH);
-		return;
-	}
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], (Before Init HW config) 0xcb4 = 0x%x, 0x38= 0x%x, 0x54= 0x%x\n",
-		u32tmp3, u32tmp1, u32tmp2);
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], 2Ant Init HW Config!!\n");
-
-	coex_sta->bt_coex_supported_feature = 0;
-	coex_sta->bt_coex_supported_version = 0;
-	coex_sta->bt_ble_scan_type = 0;
-	coex_sta->bt_ble_scan_para[0] = 0;
-	coex_sta->bt_ble_scan_para[1] = 0;
-	coex_sta->bt_ble_scan_para[2] = 0;
-	coex_sta->bt_reg_vendor_ac = 0xffff;
-	coex_sta->bt_reg_vendor_ae = 0xffff;
-	coex_sta->isolation_btween_wb = BT_8822B_2ANT_DEFAULT_ISOLATION;
-	coex_sta->gnt_error_cnt = 0;
-	coex_sta->bt_relink_downcount = 0;
-	coex_sta->is_set_ps_state_fail = false;
-	coex_sta->cnt_set_ps_state_fail = 0;
-
-	for (i = 0; i <= 9; i++)
-		coex_sta->bt_afh_map[i] = 0;
-
-	/* 0xf0[15:12] --> Chip Cut information */
-	coex_sta->cut_version =
-		(btcoexist->btc_read_1byte(btcoexist, 0xf1) & 0xf0) >> 4;
-
-	coex_sta->dis_ver_info_cnt = 0;
-
-	halbtc8822b2ant_coex_switch_threshold(btcoexist,
-					      coex_sta->isolation_btween_wb);
-
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x550, 0x8,
-					   0x1); /* enable TBTT nterrupt */
-
-	/* BT report packet sample rate	 */
-	btcoexist->btc_write_1byte(btcoexist, 0x790, 0x5);
-
-	/* Init 0x778 = 0x1 for 2-Ant */
-	btcoexist->btc_write_1byte(btcoexist, 0x778, 0x1);
-
-	/* Enable PTA (3-wire function form BT side) */
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x40, 0x20, 0x1);
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x41, 0x02, 0x1);
-
-	/* Enable PTA (tx/rx signal form WiFi side) */
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x4c6, 0x10, 0x1);
-
-	halbtc8822b2ant_enable_gnt_to_gpio(btcoexist, true);
-
-	/*GNT_BT=1 while select both */
-	btcoexist->btc_write_1byte_bitmask(btcoexist, 0x763, 0x10, 0x1);
-
-	/* check if WL firmware download ok */
-	halbtc8822b2ant_post_state_to_bt(btcoexist,
-					 BT_8822B_2ANT_SCOREBOARD_ONOFF, true);
-
-	/* Enable counter statistics */
-	btcoexist->btc_write_1byte(
-		btcoexist, 0x76e,
-		0x4); /* 0x76e[3] =1, WLAN_Act control by PTA */
-
-	halbtc8822b2ant_coex_table_with_type(btcoexist, FORCE_EXEC, 5);
-
-	halbtc8822b2ant_ps_tdma(btcoexist, FORCE_EXEC, false, 0);
-
-	psd_scan->ant_det_is_ant_det_available = true;
-
-	if (coex_sta->is_rf_state_off) {
-		halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_2ANT_PHASE_WLAN_OFF);
-
-		btcoexist->stop_coex_dm = true;
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], **********  %s (RF Off)**********\n",
-			 __func__);
-	} else if (wifi_only) {
-		coex_sta->concurrent_rx_mode_on = false;
-		/* Path config	 */
-		/* Set Antenna Path */
-		halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_2ANT_PHASE_WLANONLY_INIT);
-
-		btcoexist->stop_coex_dm = true;
-	} else {
-		/* Set BT polluted packet on for Tx rate adaptive not including
-		 * Tx retry break by PTA, 0x45c[19] =1
-		 */
-		btcoexist->btc_write_1byte_bitmask(btcoexist, 0x45e, 0x8, 0x1);
-
-		coex_sta->concurrent_rx_mode_on = true;
-
-		/* RF 0x1[1] = 0->Set GNT_WL_RF_Rx always = 1 for
-		 * con-current Rx, mask Tx only
-		 */
-		btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0x2, 0x0);
-
-		/* Set Antenna Path */
-		halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_2ANT_PHASE_COEX_INIT);
-
-		btcoexist->stop_coex_dm = false;
-	}
-}
-
-/* ************************************************************
- * work around function start with wa_halbtc8822b2ant_
- * ************************************************************
- * ************************************************************
- * extern function start with ex_halbtc8822b2ant_
- * *************************************************************/
-void ex_btc8822b2ant_power_on_setting(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct btc_board_info *board_info = &btcoexist->board_info;
-	u8 u8tmp = 0x0;
-	u16 u16tmp = 0x0;
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"xxxxxxxxxxxxxxxx Execute 8822b 2-Ant PowerOn Setting xxxxxxxxxxxxxxxx!!\n");
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "Ant Det Finish = %s, Ant Det Number  = %d\n",
-		 (board_info->btdm_ant_det_finish ? "Yes" : "No"),
-		 board_info->btdm_ant_num_by_ant_det);
-
-	btcoexist->dbg_mode_2ant = false;
-	btcoexist->stop_coex_dm = true;
-	psd_scan->ant_det_is_ant_det_available = false;
-
-	/* enable BB, REG_SYS_FUNC_EN such that we can write BB Reg correctly */
-	u16tmp = btcoexist->btc_read_2byte(btcoexist, 0x2);
-	btcoexist->btc_write_2byte(btcoexist, 0x2, u16tmp | BIT(0) | BIT(1));
-
-	/* Local setting bit define */
-	/*	BIT0: "0" for no antenna inverse; "1" for antenna inverse  */
-	/*	BIT1: "0" for internal switch; "1" for external switch */
-	/*	BIT2: "0" for one antenna; "1" for two antenna */
-	/* NOTE: here default all internal switch and 1-antenna ==>
-	 * BIT1=0 and BIT2=0
-	 */
-
-	/* Check efuse 0xc3[6] for Single Antenna Path */
-
-	/* Setup RF front end type */
-	halbtc8822b2ant_set_rfe_type(btcoexist);
-
-	/* Set Antenna Path to BT side */
-	halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, FORCE_EXEC,
-				     BT_8822B_2ANT_PHASE_COEX_POWERON);
-
-	/* Save"single antenna position" info in Local register setting for
-	 * FW reading, because FW may not ready at power on
-	 */
-	if (btcoexist->chip_interface == BTC_INTF_PCI)
-		btcoexist->btc_write_local_reg_1byte(btcoexist, 0x3e0, u8tmp);
-	else if (btcoexist->chip_interface == BTC_INTF_USB)
-		btcoexist->btc_write_local_reg_1byte(btcoexist, 0xfe08, u8tmp);
-	else if (btcoexist->chip_interface == BTC_INTF_SDIO)
-		btcoexist->btc_write_local_reg_1byte(btcoexist, 0x60, u8tmp);
-
-	/* enable GNT_WL/GNT_BT debug signal to GPIO14/15 */
-	halbtc8822b2ant_enable_gnt_to_gpio(btcoexist, true);
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], **********  LTE coex Reg 0x38 (Power-On) = 0x%x**********\n",
-		halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist, 0x38));
-
-	RT_TRACE(
-		rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		"[BTCoex], **********  MAC Reg 0x70/ BB Reg 0xcb4 (Power-On) = 0x%x / 0x%x\n",
-		btcoexist->btc_read_4byte(btcoexist, 0x70),
-		btcoexist->btc_read_4byte(btcoexist, 0xcb4));
-}
-
-void ex_btc8822b2ant_pre_load_firmware(struct btc_coexist *btcoexist)
-{
-	struct btc_board_info *board_info = &btcoexist->board_info;
-	u8 u8tmp = 0x4; /* Set BIT2 by default since it's 2ant case */
-
-	/* */
-	/* S0 or S1 setting and Local register setting
-	 * (By the setting fw can get ant number, S0/S1, ... info)
-	 */
-	/* Local setting bit define */
-	/*	BIT0: "0" for no antenna inverse; "1" for antenna inverse  */
-	/*	BIT1: "0" for internal switch; "1" for external switch */
-	/*	BIT2: "0" for one antenna; "1" for two antenna */
-	/* NOTE: here default all internal switch and 1-antenna ==>
-	 *       BIT1=0 and BIT2=0
-	 */
-	if (btcoexist->chip_interface == BTC_INTF_USB) {
-		/* fixed at S0 for USB interface */
-		u8tmp |= 0x1; /* antenna inverse */
-		btcoexist->btc_write_local_reg_1byte(btcoexist, 0xfe08, u8tmp);
-	} else {
-		/* for PCIE and SDIO interface, we check efuse 0xc3[6] */
-		if (board_info->single_ant_path == 0) {
-		} else if (board_info->single_ant_path == 1) {
-			/* set to S0 */
-			u8tmp |= 0x1; /* antenna inverse */
-		}
-
-		if (btcoexist->chip_interface == BTC_INTF_PCI)
-			btcoexist->btc_write_local_reg_1byte(btcoexist, 0x3e0,
-							     u8tmp);
-		else if (btcoexist->chip_interface == BTC_INTF_SDIO)
-			btcoexist->btc_write_local_reg_1byte(btcoexist, 0x60,
-							     u8tmp);
-	}
-}
-
-void ex_btc8822b2ant_init_hw_config(struct btc_coexist *btcoexist,
-				    bool wifi_only)
-{
-	halbtc8822b2ant_init_hw_config(btcoexist, wifi_only);
-	btcoexist->auto_report_2ant = true;
-}
-
-void ex_btc8822b2ant_init_coex_dm(struct btc_coexist *btcoexist)
-{
-	halbtc8822b2ant_init_coex_dm(btcoexist);
-}
-
-void ex_btc8822b2ant_display_coex_info(struct btc_coexist *btcoexist,
-				       struct seq_file *m)
-{
-	struct btc_board_info *board_info = &btcoexist->board_info;
-	struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info;
-
-	u8 u8tmp[4], i, ps_tdma_case = 0;
-	u32 u32tmp[4];
-	u16 u16tmp[4];
-	u32 fa_ofdm, fa_cck, cca_ofdm, cca_cck, ratio_ofdm;
-	u32 fw_ver = 0, bt_patch_ver = 0, bt_coex_ver = 0;
-	static u8 pop_report_in_10s;
-	u32 phyver = 0;
-	bool lte_coex_on = false;
-	static u8 cnt;
-
-	seq_puts(m, "\r\n ============[BT Coexist info]============");
-
-	if (btcoexist->manual_control) {
-		seq_puts(m,
-			 "\r\n ============[Under Manual Control]============");
-		seq_puts(m, "\r\n ==========================================");
-	}
-
-	if (!coex_sta->bt_disabled) {
-		if (coex_sta->bt_coex_supported_feature == 0)
-			btcoexist->btc_get(
-				btcoexist, BTC_GET_U4_SUPPORTED_FEATURE,
-				&coex_sta->bt_coex_supported_feature);
-
-		if ((coex_sta->bt_coex_supported_version == 0) ||
-		    (coex_sta->bt_coex_supported_version == 0xffff))
-			btcoexist->btc_get(
-				btcoexist, BTC_GET_U4_SUPPORTED_VERSION,
-				&coex_sta->bt_coex_supported_version);
-
-		if (coex_sta->bt_reg_vendor_ac == 0xffff)
-			coex_sta->bt_reg_vendor_ac = (u16)(
-				btcoexist->btc_get_bt_reg(btcoexist, 3, 0xac) &
-				0xffff);
-
-		if (coex_sta->bt_reg_vendor_ae == 0xffff)
-			coex_sta->bt_reg_vendor_ae = (u16)(
-				btcoexist->btc_get_bt_reg(btcoexist, 3, 0xae) &
-				0xffff);
-
-		btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER,
-				   &bt_patch_ver);
-		btcoexist->bt_info.bt_get_fw_ver = bt_patch_ver;
-
-		if (coex_sta->num_of_profile > 0) {
-			cnt++;
-
-			if (cnt >= 3) {
-				btcoexist->btc_get_bt_afh_map_from_bt(
-					btcoexist, 0, &coex_sta->bt_afh_map[0]);
-				cnt = 0;
-			}
-		}
-	}
-
-	if (psd_scan->ant_det_try_count == 0) {
-		seq_printf(
-			m, "\r\n %-35s = %d/ %d/ %s / %d",
-			"Ant PG Num/ Mech/ Pos/ RFE", board_info->pg_ant_num,
-			board_info->btdm_ant_num,
-			(board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT ?
-				 "Main" :
-				 "Aux"),
-			rfe_type->rfe_module_type);
-	} else {
-		seq_printf(
-			m, "\r\n %-35s = %d/ %d/ %s/ %d  (%d/%d/%d)",
-			"Ant PG Num/ Mech(Ant_Det)/ Pos/ RFE",
-			board_info->pg_ant_num,
-			board_info->btdm_ant_num_by_ant_det,
-			(board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT ?
-				 "Main" :
-				 "Aux"),
-			rfe_type->rfe_module_type, psd_scan->ant_det_try_count,
-			psd_scan->ant_det_fail_count, psd_scan->ant_det_result);
-
-		if (board_info->btdm_ant_det_finish) {
-			if (psd_scan->ant_det_result != 12)
-				seq_printf(m, "\r\n %-35s = %s",
-					   "Ant Det PSD Value",
-					   psd_scan->ant_det_peak_val);
-			else
-				seq_printf(m, "\r\n %-35s = %d",
-					   "Ant Det PSD Value",
-					   psd_scan->ant_det_psd_scan_peak_val /
-						   100);
-		}
-	}
-
-	bt_patch_ver = btcoexist->bt_info.bt_get_fw_ver;
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver);
-	phyver = btcoexist->btc_get_bt_phydm_version(btcoexist);
-
-	bt_coex_ver = (coex_sta->bt_coex_supported_version & 0xff);
-
-	seq_printf(
-		m, "\r\n %-35s = %d_%02x/ 0x%02x/ 0x%02x (%s)",
-		"CoexVer WL/  BT_Desired/ BT_Report",
-		glcoex_ver_date_8822b_2ant, glcoex_ver_8822b_2ant,
-		glcoex_ver_btdesired_8822b_2ant, bt_coex_ver,
-		(bt_coex_ver == 0xff ?
-			 "Unknown" :
-			 (coex_sta->bt_disabled ?  "BT-disable" :
-			  (bt_coex_ver >= glcoex_ver_btdesired_8822b_2ant ?
-					   "Match" :
-					   "Mis-Match"))));
-
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ v%d/ %c", "W_FW/ B_FW/ Phy/ Kt",
-		   fw_ver, bt_patch_ver, phyver, coex_sta->cut_version + 65);
-
-	seq_printf(m, "\r\n %-35s = %02x %02x %02x ", "AFH Map to BT",
-		   coex_dm->wifi_chnl_info[0], coex_dm->wifi_chnl_info[1],
-		   coex_dm->wifi_chnl_info[2]);
-
-	seq_printf(m, "\r\n %-35s = %d / %d / %d ",
-		   "Isolation/WL_Thres/BT_Thres", coex_sta->isolation_btween_wb,
-		   coex_sta->wifi_coex_thres, coex_sta->bt_coex_thres);
-
-	/* wifi status */
-	seq_printf(m, "\r\n %-35s", "============[Wifi Status]============");
-	btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_WIFI_STATUS, m);
-
-	seq_printf(m, "\r\n %-35s", "============[BT Status]============");
-
-	pop_report_in_10s++;
-	seq_printf(
-		m, "\r\n %-35s = [%s/ %d dBm/ %d/ %d] ",
-		"BT [status/ rssi/ retryCnt/ popCnt]",
-		((coex_sta->bt_disabled) ?
-			 ("disabled") :
-			 ((coex_sta->c2h_bt_inquiry_page) ?  ("inquiry/page") :
-			  ((BT_8822B_2ANT_BT_STATUS_NON_CONNECTED_IDLE ==
-			    coex_dm->bt_status) ?
-				   "non-connected idle" :
-				   ((coex_dm->bt_status ==
-				     BT_8822B_2ANT_BT_STATUS_CONNECTED_IDLE) ?
-					    "connected-idle" :
-					    "busy")))),
-		coex_sta->bt_rssi - 100, coex_sta->bt_retry_cnt,
-		coex_sta->pop_event_cnt);
-
-	if (pop_report_in_10s >= 5) {
-		coex_sta->pop_event_cnt = 0;
-		pop_report_in_10s = 0;
-	}
-
-	if (coex_sta->num_of_profile != 0)
-		seq_printf(
-			m, "\r\n %-35s = %s%s%s%s%s", "Profiles",
-			((bt_link_info->a2dp_exist) ?
-				 ((coex_sta->is_bt_a2dp_sink) ? "A2DP sink," :
-								"A2DP,") :
-				 ""),
-			((bt_link_info->sco_exist) ? "HFP," : ""),
-			((bt_link_info->hid_exist) ?
-				 ((coex_sta->hid_busy_num >= 2) ?
-					  "HID(4/18)," :
-					  "HID(2/18),") :
-				 ""),
-			((bt_link_info->pan_exist) ? "PAN," : ""),
-			((coex_sta->voice_over_HOGP) ? "Voice" : ""));
-	else
-		seq_printf(m, "\r\n %-35s = None", "Profiles");
-
-	if (bt_link_info->a2dp_exist) {
-		seq_printf(m, "\r\n %-35s = %s/ %d/ %s",
-			   "A2DP Rate/Bitpool/Auto_Slot",
-			   ((coex_sta->is_A2DP_3M) ? "3M" : "No_3M"),
-			   coex_sta->a2dp_bit_pool,
-			   ((coex_sta->is_autoslot) ? "On" : "Off"));
-	}
-
-	if (bt_link_info->hid_exist) {
-		seq_printf(m, "\r\n %-35s = %d/ %d", "HID PairNum/Forbid_Slot",
-			   coex_sta->hid_pair_cnt, coex_sta->forbidden_slot);
-	}
-
-	seq_printf(m, "\r\n %-35s = %s/ %d/ %s/ 0x%x",
-		   "Role/RoleSwCnt/IgnWlact/Feature",
-		   ((bt_link_info->slave_role) ? "Slave" : "Master"),
-		   coex_sta->cnt_role_switch,
-		   ((coex_dm->cur_ignore_wlan_act) ? "Yes" : "No"),
-		   coex_sta->bt_coex_supported_feature);
-
-	if ((coex_sta->bt_ble_scan_type & 0x7) != 0x0) {
-		seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x",
-			   "BLEScan Type/TV/Init/Ble",
-			   coex_sta->bt_ble_scan_type,
-			   (coex_sta->bt_ble_scan_type & 0x1 ?
-				    coex_sta->bt_ble_scan_para[0] :
-				    0x0),
-			   (coex_sta->bt_ble_scan_type & 0x2 ?
-				    coex_sta->bt_ble_scan_para[1] :
-				    0x0),
-			   (coex_sta->bt_ble_scan_type & 0x4 ?
-				    coex_sta->bt_ble_scan_para[2] :
-				    0x0));
-	}
-
-	seq_printf(m, "\r\n %-35s = %d/ %d/ %d/ %d/ %d",
-		   "ReInit/ReLink/IgnWlact/Page/NameReq", coex_sta->cnt_reinit,
-		   coex_sta->cnt_setup_link, coex_sta->cnt_ign_wlan_act,
-		   coex_sta->cnt_page, coex_sta->cnt_remote_name_req);
-
-	halbtc8822b2ant_read_score_board(btcoexist, &u16tmp[0]);
-
-	if ((coex_sta->bt_reg_vendor_ae == 0xffff) ||
-	    (coex_sta->bt_reg_vendor_ac == 0xffff))
-		seq_printf(m, "\r\n %-35s = x/ x/ %04x",
-			   "0xae[4]/0xac[1:0]/Scoreboard", u16tmp[0]);
-	else
-		seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ %04x",
-			   "0xae[4]/0xac[1:0]/Scoreboard",
-			   (int)((coex_sta->bt_reg_vendor_ae & BIT(4)) >> 4),
-			   coex_sta->bt_reg_vendor_ac & 0x3, u16tmp[0]);
-
-	if (coex_sta->num_of_profile > 0) {
-		seq_printf(
-			m,
-			"\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
-			"AFH MAP", coex_sta->bt_afh_map[0],
-			coex_sta->bt_afh_map[1], coex_sta->bt_afh_map[2],
-			coex_sta->bt_afh_map[3], coex_sta->bt_afh_map[4],
-			coex_sta->bt_afh_map[5], coex_sta->bt_afh_map[6],
-			coex_sta->bt_afh_map[7], coex_sta->bt_afh_map[8],
-			coex_sta->bt_afh_map[9]);
-	}
-
-	for (i = 0; i < BT_INFO_SRC_8822B_2ANT_MAX; i++) {
-		if (coex_sta->bt_info_c2h_cnt[i]) {
-			seq_printf(
-				m,
-				"\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x(%d)",
-				glbt_info_src_8822b_2ant[i],
-				coex_sta->bt_info_c2h[i][0],
-				coex_sta->bt_info_c2h[i][1],
-				coex_sta->bt_info_c2h[i][2],
-				coex_sta->bt_info_c2h[i][3],
-				coex_sta->bt_info_c2h[i][4],
-				coex_sta->bt_info_c2h[i][5],
-				coex_sta->bt_info_c2h[i][6],
-				coex_sta->bt_info_c2h_cnt[i]);
-		}
-	}
-
-	/* Sw mechanism	 */
-	if (btcoexist->manual_control)
-		seq_printf(
-			m, "\r\n %-35s",
-			"============[mechanism] (before Manual)============");
-	else
-		seq_printf(m, "\r\n %-35s",
-			   "============[Mechanism]============");
-
-	ps_tdma_case = coex_dm->cur_ps_tdma;
-
-	seq_printf(m, "\r\n %-35s = %02x %02x %02x %02x %02x (case-%d, %s, %s)",
-		   "TDMA", coex_dm->ps_tdma_para[0], coex_dm->ps_tdma_para[1],
-		   coex_dm->ps_tdma_para[2], coex_dm->ps_tdma_para[3],
-		   coex_dm->ps_tdma_para[4], ps_tdma_case,
-		   (coex_dm->cur_ps_tdma_on ? "TDMA On" : "TDMA Off"),
-		   (coex_dm->is_switch_to_1dot5_ant ? "1.5Ant" : "2Ant"));
-
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6c0);
-	u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x6c4);
-	u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x6c8);
-	seq_printf(m, "\r\n %-35s = %d/ 0x%x/ 0x%x/ 0x%x",
-		   "Table/0x6c0/0x6c4/0x6c8", coex_sta->coex_table_type,
-		   u32tmp[0], u32tmp[1], u32tmp[2]);
-
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x778);
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6cc);
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x", "0x778/0x6cc", u8tmp[0],
-		   u32tmp[0]);
-
-	seq_printf(m, "\r\n %-35s = %s/ %s/ %s/ %d",
-		   "AntDiv/BtCtrlLPS/LPRA/PsFail",
-		   ((board_info->ant_div_cfg) ? "On" : "Off"),
-		   ((coex_sta->force_lps_ctrl) ? "On" : "Off"),
-		   ((coex_dm->cur_low_penalty_ra) ? "On" : "Off"),
-		   coex_sta->cnt_set_ps_state_fail);
-
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x", "WL_DACSwing/ BT_Dec_Pwr",
-		   coex_dm->cur_fw_dac_swing_lvl, coex_dm->cur_bt_dec_pwr_lvl);
-
-	u32tmp[0] = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist, 0x38);
-	lte_coex_on = ((u32tmp[0] & BIT(7)) >> 7) ? true : false;
-
-	if (lte_coex_on) {
-		u32tmp[0] = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xa0);
-		u32tmp[1] = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xa4);
-		seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x",
-			   "LTE Coex Table W_L/B_L", u32tmp[0] & 0xffff,
-			   u32tmp[1] & 0xffff);
-
-		u32tmp[0] = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xa8);
-		u32tmp[1] = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xac);
-		u32tmp[2] = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xb0);
-		u32tmp[3] = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist,
-								      0xb4);
-		seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x",
-			   "LTE Break Table W_L/B_L/L_W/L_B",
-			   u32tmp[0] & 0xffff, u32tmp[1] & 0xffff,
-			   u32tmp[2] & 0xffff, u32tmp[3] & 0xffff);
-	}
-
-	/* Hw setting		 */
-	seq_printf(m, "\r\n %-35s", "============[Hw setting]============");
-
-	u32tmp[0] = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist, 0x38);
-	u32tmp[1] = halbtc8822b2ant_ltecoex_indirect_read_reg(btcoexist, 0x54);
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x73);
-
-	seq_printf(m, "\r\n %-35s = %s/ %s", "LTE Coex/Path Owner",
-		   ((lte_coex_on) ? "On" : "Off"),
-		   ((u8tmp[0] & BIT(2)) ? "WL" : "BT"));
-
-	if (lte_coex_on) {
-		seq_printf(m, "\r\n %-35s = %d/ %d/ %d/ %d",
-			   "LTE 3Wire/OPMode/UART/UARTMode",
-			   (int)((u32tmp[0] & BIT(6)) >> 6),
-			   (int)((u32tmp[0] & (BIT(5) | BIT(4))) >> 4),
-			   (int)((u32tmp[0] & BIT(3)) >> 3),
-			   (int)(u32tmp[0] & (BIT(2) | BIT(1) | BIT(0))));
-
-		seq_printf(m, "\r\n %-35s = %d/ %d", "LTE_Busy/UART_Busy",
-			   (int)((u32tmp[1] & BIT(1)) >> 1),
-			   (int)(u32tmp[1] & BIT(0)));
-	}
-	seq_printf(m, "\r\n %-35s = %s (BB:%s)/ %s (BB:%s)/ %s %d",
-		   "GNT_WL_Ctrl/GNT_BT_Ctrl/Dbg",
-		   ((u32tmp[0] & BIT(12)) ? "SW" : "HW"),
-		   ((u32tmp[0] & BIT(8)) ? "SW" : "HW"),
-		   ((u32tmp[0] & BIT(14)) ? "SW" : "HW"),
-		   ((u32tmp[0] & BIT(10)) ? "SW" : "HW"),
-		   ((u8tmp[0] & BIT(3)) ? "On" : "Off"),
-		   coex_sta->gnt_error_cnt);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d", "GNT_WL/GNT_BT",
-		   (int)((u32tmp[1] & BIT(2)) >> 2),
-		   (int)((u32tmp[1] & BIT(3)) >> 3));
-
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xcbc);
-	u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0xcb4);
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0xcba);
-
-	seq_printf(m, "\r\n %-35s = 0x%04x/ 0x%04x/ 0x%02x %s",
-		   "0xcbc/0xcb4/0xcb8[23:16]", u32tmp[0], u32tmp[1], u8tmp[0],
-		   ((u8tmp[0] & 0x1) == 0x1 ? "(BTG)" : "(WL_A+G)"));
-
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x4c);
-	u8tmp[2] = btcoexist->btc_read_1byte(btcoexist, 0x64);
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x4c6);
-	u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x40);
-
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x",
-		   "4c[24:23]/64[0]/4c6[4]/40[5]",
-		   (int)(u32tmp[0] & (BIT(24) | BIT(23))) >> 23, u8tmp[2] & 0x1,
-		   (int)((u8tmp[0] & BIT(4)) >> 4),
-		   (int)((u8tmp[1] & BIT(5)) >> 5));
-
-	u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550);
-	u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x522);
-	u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x953);
-	u8tmp[2] = btcoexist->btc_read_1byte(btcoexist, 0xc50);
-
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ %s/ 0x%x",
-		   "0x550/0x522/4-RxAGC/0xc50", u32tmp[0], u8tmp[0],
-		   (u8tmp[1] & 0x2) ? "On" : "Off", u8tmp[2]);
-
-	fa_ofdm = btcoexist->btc_phydm_query_phy_counter(btcoexist,
-							 "PHYDM_INFO_FA_OFDM");
-	fa_cck = btcoexist->btc_phydm_query_phy_counter(btcoexist,
-							"PHYDM_INFO_FA_CCK");
-	cca_ofdm = btcoexist->btc_phydm_query_phy_counter(
-		btcoexist, "PHYDM_INFO_CCA_OFDM");
-	cca_cck = btcoexist->btc_phydm_query_phy_counter(btcoexist,
-							 "PHYDM_INFO_CCA_CCK");
-
-	ratio_ofdm = (fa_ofdm == 0) ? 1000 : (cca_ofdm / fa_ofdm);
-
-	seq_printf(m, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x  (%d)",
-		   "CCK-CCA/CCK-FA/OFDM-CCA/OFDM-FA", cca_cck, fa_cck, cca_ofdm,
-		   fa_ofdm, ratio_ofdm);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d/ %d/ %d", "CRC_OK CCK/11g/11n/11ac",
-		   coex_sta->crc_ok_cck, coex_sta->crc_ok_11g,
-		   coex_sta->crc_ok_11n, coex_sta->crc_ok_11n_vht);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d/ %d/ %d  (%d, %d)",
-		   "CRC_Err CCK/11g/11n/11ac", coex_sta->crc_err_cck,
-		   coex_sta->crc_err_11g, coex_sta->crc_err_11n,
-		   coex_sta->crc_err_11n_vht, coex_sta->now_crc_ratio,
-		   coex_sta->acc_crc_ratio);
-
-	seq_printf(m, "\r\n %-35s = %s/ %s/ %s/ %d",
-		   "WlHiPri/ Locking/ Locked/ Noisy",
-		   (coex_sta->wifi_is_high_pri_task ? "Yes" : "No"),
-		   (coex_sta->cck_lock ? "Yes" : "No"),
-		   (coex_sta->cck_ever_lock ? "Yes" : "No"),
-		   coex_sta->wl_noisy_level);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d", "0x770(Hi-pri rx/tx)",
-		   coex_sta->high_priority_rx, coex_sta->high_priority_tx);
-
-	seq_printf(m, "\r\n %-35s = %d/ %d %s", "0x774(Lo-pri rx/tx)",
-		   coex_sta->low_priority_rx, coex_sta->low_priority_tx,
-		   (bt_link_info->slave_role ?
-			    "(Slave!!)" :
-			    (coex_sta->is_tdma_btautoslot_hang ?
-				     "(auto-slot hang!!)" :
-				     "")));
-
-	btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_COEX_STATISTICS, m);
-}
-
-void ex_btc8822b2ant_ips_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	if (type == BTC_IPS_ENTER) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], IPS ENTER notify\n");
-		coex_sta->under_ips = true;
-		coex_sta->under_lps = false;
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE, false);
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ONOFF, false);
-
-		halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_2ANT_PHASE_WLAN_OFF);
-
-		halbtc8822b2ant_action_coex_all_off(btcoexist);
-	} else if (type == BTC_IPS_LEAVE) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], IPS LEAVE notify\n");
-		coex_sta->under_ips = false;
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE, true);
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ONOFF, true);
-		halbtc8822b2ant_init_hw_config(btcoexist, false);
-		halbtc8822b2ant_init_coex_dm(btcoexist);
-		halbtc8822b2ant_query_bt_info(btcoexist);
-	}
-}
-
-void ex_btc8822b2ant_lps_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	static bool pre_force_lps_on;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	if (type == BTC_LPS_ENABLE) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], LPS ENABLE notify\n");
-		coex_sta->under_lps = true;
-		coex_sta->under_ips = false;
-
-		if (coex_sta->force_lps_ctrl) { /* LPS No-32K */
-			/* Write WL "Active" in Score-board for PS-TDMA */
-			pre_force_lps_on = true;
-			halbtc8822b2ant_post_state_to_bt(
-				btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE,
-				true);
-
-		} else {
-			/* LPS-32K, need check if this h2c 0x71 can work??
-			 * (2015/08/28)
-			 */
-			/* Write WL "Non-Active" in Score-board for Native-PS */
-			pre_force_lps_on = false;
-			halbtc8822b2ant_post_state_to_bt(
-				btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE,
-				false);
-		}
-
-	} else if (type == BTC_LPS_DISABLE) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], LPS DISABLE notify\n");
-		coex_sta->under_lps = false;
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE, true);
-
-		if ((!pre_force_lps_on) && (!coex_sta->force_lps_ctrl))
-			halbtc8822b2ant_query_bt_info(btcoexist);
-	}
-}
-
-void ex_btc8822b2ant_scan_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_connected = false;
-	bool wifi_under_5g = false;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], SCAN notify()\n");
-
-	halbtc8822b2ant_post_state_to_bt(btcoexist,
-					 BT_8822B_2ANT_SCOREBOARD_ACTIVE, true);
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-			   &wifi_connected);
-
-	/* this can't be removed for RF off_on event, or BT would dis-connect */
-	halbtc8822b2ant_query_bt_info(btcoexist);
-
-	if (type == BTC_SCAN_START) {
-		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G,
-				   &wifi_under_5g);
-
-		if (wifi_under_5g) {
-			RT_TRACE(
-				rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				"[BTCoex], ********** SCAN START notify (5g)\n");
-
-			halbtc8822b2ant_action_wifi_under5g(btcoexist);
-			return;
-		}
-
-		coex_sta->wifi_is_high_pri_task = true;
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], ********** SCAN START notify (2g)\n");
-
-		halbtc8822b2ant_run_coexist_mechanism(btcoexist);
-
-		return;
-	}
-
-	if (type == BTC_SCAN_START_2G) {
-		if (!wifi_connected)
-			coex_sta->wifi_is_high_pri_task = true;
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], SCAN START notify (2G)\n");
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_SCAN, true);
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE, true);
-
-		halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_2ANT_PHASE_2G_RUNTIME);
-
-		halbtc8822b2ant_run_coexist_mechanism(btcoexist);
-
-	} else if (type == BTC_SCAN_FINISH) {
-		coex_sta->wifi_is_high_pri_task = false;
-
-		btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM,
-				   &coex_sta->scan_ap_num);
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], SCAN FINISH notify  (Scan-AP = %d)\n",
-			 coex_sta->scan_ap_num);
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_SCAN, false);
-
-		halbtc8822b2ant_run_coexist_mechanism(btcoexist);
-	}
-}
-
-void ex_btc8822b2ant_switchband_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-	coex_sta->switch_band_notify_to = type;
-
-	if (type == BTC_SWITCH_TO_5G) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], switchband_notify ---  switch to 5G\n");
-
-		halbtc8822b2ant_action_wifi_under5g(btcoexist);
-
-	} else if (type == BTC_SWITCH_TO_24G_NOFORSCAN) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ********** switchband_notify BTC_SWITCH_TO_2G (no for scan)\n");
-
-		halbtc8822b2ant_run_coexist_mechanism(btcoexist);
-
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], switchband_notify ---  switch to 2G\n");
-
-		ex_btc8822b2ant_scan_notify(btcoexist, BTC_SCAN_START_2G);
-	}
-	coex_sta->switch_band_notify_to = BTC_NOT_SWITCH;
-}
-
-void ex_btc8822b2ant_connect_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	halbtc8822b2ant_post_state_to_bt(btcoexist,
-					 BT_8822B_2ANT_SCOREBOARD_ACTIVE, true);
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	if ((type == BTC_ASSOCIATE_5G_START) ||
-	    (type == BTC_ASSOCIATE_5G_FINISH)) {
-		if (type == BTC_ASSOCIATE_5G_START)
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], connect_notify ---  5G start\n");
-		else
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], connect_notify ---  5G finish\n");
-
-		halbtc8822b2ant_action_wifi_under5g(btcoexist);
-		return;
-	}
-
-	if (type == BTC_ASSOCIATE_START) {
-		coex_sta->wifi_is_high_pri_task = true;
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], CONNECT START notify (2G)\n");
-
-		halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_2ANT_PHASE_2G_RUNTIME);
-
-		halbtc8822b2ant_action_wifi_link_process(btcoexist);
-
-		/* To keep TDMA case during connect process,
-		 * to avoid changed by Btinfo and runcoexmechanism
-		 */
-		coex_sta->freeze_coexrun_by_btinfo = true;
-
-		coex_dm->arp_cnt = 0;
-
-	} else if (type == BTC_ASSOCIATE_FINISH) {
-		coex_sta->wifi_is_high_pri_task = false;
-		coex_sta->freeze_coexrun_by_btinfo = false;
-
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], CONNECT FINISH notify	(2G)\n");
-
-		halbtc8822b2ant_run_coexist_mechanism(btcoexist);
-	}
-}
-
-void ex_btc8822b2ant_media_status_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_under_b_mode = false, wifi_under_5g = false;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if (type == BTC_MEDIA_CONNECT) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], MEDIA connect notify\n");
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE, true);
-
-		if (wifi_under_5g) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], WiFi is under 5G!!!\n");
-
-			halbtc8822b2ant_action_wifi_under5g(btcoexist);
-			return;
-		}
-
-		halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_2ANT_PHASE_2G_RUNTIME);
-
-		btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_B_MODE,
-				   &wifi_under_b_mode);
-
-		/* Set CCK Tx/Rx high Pri except 11b mode */
-		if (wifi_under_b_mode) {
-			btcoexist->btc_write_1byte(btcoexist, 0x6cd,
-						   0x00); /* CCK Tx */
-			btcoexist->btc_write_1byte(btcoexist, 0x6cf,
-						   0x00); /* CCK Rx */
-		} else {
-			btcoexist->btc_write_1byte(btcoexist, 0x6cd,
-						   0x00); /* CCK Tx */
-			btcoexist->btc_write_1byte(btcoexist, 0x6cf,
-						   0x10); /* CCK Rx */
-		}
-
-	} else {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], MEDIA disconnect notify\n");
-
-		btcoexist->btc_write_1byte(btcoexist, 0x6cd, 0x0); /* CCK Tx */
-		btcoexist->btc_write_1byte(btcoexist, 0x6cf, 0x0); /* CCK Rx */
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE, false);
-	}
-
-	halbtc8822b2ant_update_wifi_ch_info(btcoexist, type);
-}
-
-void ex_btc8822b2ant_specific_packet_notify(struct btc_coexist *btcoexist,
-					    u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool under_4way = false, wifi_under_5g = false;
-
-	if (btcoexist->manual_control || btcoexist->stop_coex_dm)
-		return;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if (wifi_under_5g) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], WiFi is under 5G!!!\n");
-
-		halbtc8822b2ant_action_wifi_under5g(btcoexist);
-		return;
-	}
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS,
-			   &under_4way);
-
-	if (under_4way) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], specific Packet ---- under_4way!!\n");
-
-		coex_sta->wifi_is_high_pri_task = true;
-		coex_sta->specific_pkt_period_cnt = 2;
-
-	} else if (type == BTC_PACKET_ARP) {
-		coex_dm->arp_cnt++;
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], specific Packet ARP notify -cnt = %d\n",
-			 coex_dm->arp_cnt);
-
-	} else {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], specific Packet DHCP or EAPOL notify [Type = %d]\n",
-			type);
-
-		coex_sta->wifi_is_high_pri_task = true;
-		coex_sta->specific_pkt_period_cnt = 2;
-	}
-
-	if (coex_sta->wifi_is_high_pri_task)
-		halbtc8822b2ant_run_coexist_mechanism(btcoexist);
-}
-
-void ex_btc8822b2ant_bt_info_notify(struct btc_coexist *btcoexist, u8 *tmp_buf,
-				    u8 length)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 i, rsp_source = 0;
-	bool wifi_connected = false;
-	bool wifi_scan = false, wifi_link = false, wifi_roam = false,
-	     wifi_busy = false;
-	static bool is_scoreboard_scan;
-
-	rsp_source = tmp_buf[0] & 0xf;
-	if (rsp_source >= BT_INFO_SRC_8822B_2ANT_MAX)
-		rsp_source = BT_INFO_SRC_8822B_2ANT_WIFI_FW;
-	coex_sta->bt_info_c2h_cnt[rsp_source]++;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], Bt_info[%d], len=%d, data=[", rsp_source, length);
-
-	for (i = 0; i < length; i++) {
-		coex_sta->bt_info_c2h[rsp_source][i] = tmp_buf[i];
-
-		if (i == length - 1) {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "0x%02x]\n", tmp_buf[i]);
-		} else {
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, "0x%02x, ",
-				 tmp_buf[i]);
-		}
-	}
-
-	coex_sta->bt_info = coex_sta->bt_info_c2h[rsp_source][1];
-	coex_sta->bt_info_ext = coex_sta->bt_info_c2h[rsp_source][4];
-	coex_sta->bt_info_ext2 = coex_sta->bt_info_c2h[rsp_source][5];
-
-	if (rsp_source != BT_INFO_SRC_8822B_2ANT_WIFI_FW) {
-		/* if 0xff, it means BT is under WHCK test */
-		coex_sta->bt_whck_test =
-			((coex_sta->bt_info == 0xff) ? true : false);
-
-		coex_sta->bt_create_connection =
-			((coex_sta->bt_info_c2h[rsp_source][2] & 0x80) ? true :
-									 false);
-
-		/* unit: %, value-100 to translate to unit: dBm */
-		coex_sta->bt_rssi =
-			coex_sta->bt_info_c2h[rsp_source][3] * 2 + 10;
-
-		coex_sta->c2h_bt_remote_name_req =
-			((coex_sta->bt_info_c2h[rsp_source][2] & 0x20) ? true :
-									 false);
-
-		coex_sta->is_A2DP_3M =
-			((coex_sta->bt_info_c2h[rsp_source][2] & 0x10) ? true :
-									 false);
-
-		coex_sta->acl_busy =
-			((coex_sta->bt_info_c2h[rsp_source][1] & 0x9) ? true :
-									false);
-
-		coex_sta->voice_over_HOGP =
-			((coex_sta->bt_info_ext & 0x10) ? true : false);
-
-		coex_sta->c2h_bt_inquiry_page =
-			((coex_sta->bt_info & BT_INFO_8822B_2ANT_B_INQ_PAGE) ?
-				 true :
-				 false);
-
-		coex_sta->a2dp_bit_pool =
-			(((coex_sta->bt_info_c2h[rsp_source][1] & 0x49) ==
-			  0x49) ?
-				 (coex_sta->bt_info_c2h[rsp_source][6] & 0x7f) :
-				 0);
-
-		coex_sta->is_bt_a2dp_sink =
-			(coex_sta->bt_info_c2h[rsp_source][6] & 0x80) ? true :
-									false;
-
-		coex_sta->bt_retry_cnt =
-			coex_sta->bt_info_c2h[rsp_source][2] & 0xf;
-
-		coex_sta->is_autoslot = coex_sta->bt_info_ext2 & 0x8;
-
-		coex_sta->forbidden_slot = coex_sta->bt_info_ext2 & 0x7;
-
-		coex_sta->hid_busy_num = (coex_sta->bt_info_ext2 & 0x30) >> 4;
-
-		coex_sta->hid_pair_cnt = (coex_sta->bt_info_ext2 & 0xc0) >> 6;
-
-		if (coex_sta->bt_retry_cnt >= 1)
-			coex_sta->pop_event_cnt++;
-
-		if (coex_sta->c2h_bt_remote_name_req)
-			coex_sta->cnt_remote_name_req++;
-
-		if (coex_sta->bt_info_ext & BIT(1))
-			coex_sta->cnt_reinit++;
-
-		if (coex_sta->bt_info_ext & BIT(2)) {
-			coex_sta->cnt_setup_link++;
-			coex_sta->is_setup_link = true;
-			coex_sta->bt_relink_downcount = 2;
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Re-Link start in BT info!!\n");
-		} else {
-			coex_sta->is_setup_link = false;
-			coex_sta->bt_relink_downcount = 0;
-			RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-				 "[BTCoex], Re-Link stop in BT info!!\n");
-		}
-
-		if (coex_sta->bt_info_ext & BIT(3))
-			coex_sta->cnt_ign_wlan_act++;
-
-		if (coex_sta->bt_info_ext & BIT(6))
-			coex_sta->cnt_role_switch++;
-
-		if (coex_sta->bt_info_ext & BIT(7))
-			coex_sta->is_bt_multi_link = true;
-		else
-			coex_sta->is_bt_multi_link = false;
-
-		if (coex_sta->bt_create_connection) {
-			coex_sta->cnt_page++;
-
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY,
-					   &wifi_busy);
-
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN,
-					   &wifi_scan);
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK,
-					   &wifi_link);
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM,
-					   &wifi_roam);
-
-			if ((wifi_link) || (wifi_roam) || (wifi_scan) ||
-			    (coex_sta->wifi_is_high_pri_task) || (wifi_busy)) {
-				is_scoreboard_scan = true;
-				halbtc8822b2ant_post_state_to_bt(
-					btcoexist,
-					BT_8822B_2ANT_SCOREBOARD_SCAN, true);
-
-			} else {
-				halbtc8822b2ant_post_state_to_bt(
-					btcoexist,
-					BT_8822B_2ANT_SCOREBOARD_SCAN, false);
-			}
-		} else {
-			if (is_scoreboard_scan) {
-				halbtc8822b2ant_post_state_to_bt(
-					btcoexist,
-					BT_8822B_2ANT_SCOREBOARD_SCAN, false);
-				is_scoreboard_scan = false;
-			}
-		}
-
-		/* Here we need to resend some wifi info to BT */
-		/* because bt is reset and loss of the info. */
-
-		if ((!btcoexist->manual_control) &&
-		    (!btcoexist->stop_coex_dm)) {
-			btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED,
-					   &wifi_connected);
-
-			/*  Re-Init */
-			if ((coex_sta->bt_info_ext & BIT(1))) {
-				RT_TRACE(
-					rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					"[BTCoex], BT ext info bit1 check, send wifi BW&Chnl to BT!!\n");
-				if (wifi_connected)
-					halbtc8822b2ant_update_wifi_ch_info(
-						btcoexist, BTC_MEDIA_CONNECT);
-				else
-					halbtc8822b2ant_update_wifi_ch_info(
-						btcoexist,
-						BTC_MEDIA_DISCONNECT);
-			}
-
-			/*  If Ignore_WLanAct && not SetUp_Link */
-			if ((coex_sta->bt_info_ext & BIT(3)) &&
-			    (!(coex_sta->bt_info_ext & BIT(2))) &&
-			    (!(coex_sta->bt_info_ext & BIT(6)))) {
-				RT_TRACE(
-					rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-					"[BTCoex], BT ext info bit3 check, set BT NOT to ignore Wlan active!!\n");
-				halbtc8822b2ant_ignore_wlan_act(
-					btcoexist, FORCE_EXEC, false);
-			} else {
-				if (coex_sta->bt_info_ext & BIT(2)) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT ignore Wlan active because Re-link!!\n");
-				} else if (coex_sta->bt_info_ext & BIT(6)) {
-					RT_TRACE(
-						rtlpriv, COMP_BT_COEXIST,
-						DBG_LOUD,
-						"[BTCoex], BT ignore Wlan active because Role-Switch!!\n");
-				}
-			}
-		}
-	}
-
-	if ((coex_sta->bt_info_ext & BIT(5))) {
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], BT ext info bit4 check, query BLE Scan type!!\n");
-		coex_sta->bt_ble_scan_type =
-			btcoexist->btc_get_ble_scan_type_from_bt(btcoexist);
-
-		if ((coex_sta->bt_ble_scan_type & 0x1) == 0x1)
-			coex_sta->bt_ble_scan_para[0] =
-				btcoexist->btc_get_ble_scan_para_from_bt(
-					btcoexist, 0x1);
-		if ((coex_sta->bt_ble_scan_type & 0x2) == 0x2)
-			coex_sta->bt_ble_scan_para[1] =
-				btcoexist->btc_get_ble_scan_para_from_bt(
-					btcoexist, 0x2);
-		if ((coex_sta->bt_ble_scan_type & 0x4) == 0x4)
-			coex_sta->bt_ble_scan_para[2] =
-				btcoexist->btc_get_ble_scan_para_from_bt(
-					btcoexist, 0x4);
-	}
-
-	halbtc8822b2ant_update_bt_link_info(btcoexist);
-
-	halbtc8822b2ant_run_coexist_mechanism(btcoexist);
-}
-
-void ex_btc8822b2ant_rf_status_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], RF Status notify\n");
-
-	if (type == BTC_RF_ON) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], RF is turned ON!!\n");
-
-		btcoexist->stop_coex_dm = false;
-		coex_sta->is_rf_state_off = false;
-	} else if (type == BTC_RF_OFF) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], RF is turned OFF!!\n");
-
-		halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO,
-					     FORCE_EXEC,
-					     BT_8822B_2ANT_PHASE_WLAN_OFF);
-
-		halbtc8822b2ant_action_coex_all_off(btcoexist);
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE |
-					   BT_8822B_2ANT_SCOREBOARD_ONOFF |
-					   BT_8822B_2ANT_SCOREBOARD_SCAN |
-					   BT_8822B_2ANT_SCOREBOARD_UNDERTEST,
-			false);
-
-		btcoexist->stop_coex_dm = true;
-		coex_sta->is_rf_state_off = true;
-	}
-}
-
-void ex_btc8822b2ant_halt_notify(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, "[BTCoex], Halt notify\n");
-
-	halbtc8822b2ant_set_ant_path(btcoexist, BTC_ANT_PATH_AUTO, FORCE_EXEC,
-				     BT_8822B_2ANT_PHASE_WLAN_OFF);
-
-	ex_btc8822b2ant_media_status_notify(btcoexist, BTC_MEDIA_DISCONNECT);
-
-	halbtc8822b2ant_post_state_to_bt(
-		btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE, false);
-	halbtc8822b2ant_post_state_to_bt(btcoexist,
-					 BT_8822B_2ANT_SCOREBOARD_ONOFF, false);
-}
-
-void ex_btc8822b2ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_under_5g = false;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, "[BTCoex], Pnp notify\n");
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-
-	if ((pnp_state == BTC_WIFI_PNP_SLEEP) ||
-	    (pnp_state == BTC_WIFI_PNP_SLEEP_KEEP_ANT)) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Pnp notify to SLEEP\n");
-
-		/* Sinda 20150819, workaround for driver skip leave IPS/LPS to
-		 * speed up sleep time.
-		 * Driver do not leave IPS/LPS when driver is going to sleep,
-		 * so BTCoexistence think wifi is still under IPS/LPS.
-		 * BT should clear UnderIPS/UnderLPS state to avoid mismatch
-		 * state after wakeup.
-		 */
-		coex_sta->under_ips = false;
-		coex_sta->under_lps = false;
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE, false);
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ONOFF, false);
-
-		if (pnp_state == BTC_WIFI_PNP_SLEEP_KEEP_ANT) {
-			if (wifi_under_5g)
-				halbtc8822b2ant_set_ant_path(
-					btcoexist, BTC_ANT_PATH_AUTO,
-					FORCE_EXEC,
-					BT_8822B_2ANT_PHASE_5G_RUNTIME);
-			else
-				halbtc8822b2ant_set_ant_path(
-					btcoexist, BTC_ANT_PATH_AUTO,
-					FORCE_EXEC,
-					BT_8822B_2ANT_PHASE_2G_RUNTIME);
-		} else {
-			halbtc8822b2ant_set_ant_path(
-				btcoexist, BTC_ANT_PATH_AUTO, FORCE_EXEC,
-				BT_8822B_2ANT_PHASE_WLAN_OFF);
-		}
-	} else if (pnp_state == BTC_WIFI_PNP_WAKE_UP) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Pnp notify to WAKE UP\n");
-
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ACTIVE, true);
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_ONOFF, true);
-	}
-}
-
-void ex_btc8822b2ant_periodical(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	bool wifi_busy = false;
-	u16 bt_scoreboard_val = 0;
-	bool bt_relink_finish = false;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "[BTCoex], ************* Periodical *************\n");
-
-	if (!btcoexist->auto_report_2ant)
-		halbtc8822b2ant_query_bt_info(btcoexist);
-
-	halbtc8822b2ant_monitor_bt_ctr(btcoexist);
-	halbtc8822b2ant_monitor_wifi_ctr(btcoexist);
-	halbtc8822b2ant_monitor_bt_enable_disable(btcoexist);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	halbtc8822b2ant_read_score_board(btcoexist, &bt_scoreboard_val);
-
-	if (wifi_busy) {
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_UNDERTEST, true);
-		/*for bt lps32 clock offset*/
-		if (bt_scoreboard_val & BIT(6))
-			halbtc8822b2ant_query_bt_info(btcoexist);
-	} else {
-		halbtc8822b2ant_post_state_to_bt(
-			btcoexist, BT_8822B_2ANT_SCOREBOARD_UNDERTEST, false);
-	}
-
-	if (coex_sta->bt_relink_downcount != 0) {
-		coex_sta->bt_relink_downcount--;
-
-		if (coex_sta->bt_relink_downcount == 0) {
-			coex_sta->is_setup_link = false;
-			bt_relink_finish = true;
-		}
-	}
-
-	/* for 4-way, DHCP, EAPOL packet */
-	if (coex_sta->specific_pkt_period_cnt > 0) {
-		coex_sta->specific_pkt_period_cnt--;
-
-		if ((coex_sta->specific_pkt_period_cnt == 0) &&
-		    (coex_sta->wifi_is_high_pri_task))
-			coex_sta->wifi_is_high_pri_task = false;
-
-		RT_TRACE(
-			rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			"[BTCoex], ***************** Hi-Pri Task = %s*****************\n",
-			(coex_sta->wifi_is_high_pri_task ? "Yes" : "No"));
-	}
-
-	if (halbtc8822b2ant_is_wifibt_status_changed(btcoexist) ||
-	    (bt_relink_finish) || (coex_sta->is_set_ps_state_fail))
-		halbtc8822b2ant_run_coexist_mechanism(btcoexist);
-}
-
-void ex_btc8822b2ant_antenna_detection(struct btc_coexist *btcoexist,
-				       u32 cent_freq, u32 offset, u32 span,
-				       u32 seconds)
-{
-}
-
-void ex_btc8822b2ant_display_ant_detection(struct btc_coexist *btcoexist) {}
diff --git a/drivers/staging/rtlwifi/btcoexist/halbtc8822b2ant.h b/drivers/staging/rtlwifi/btcoexist/halbtc8822b2ant.h
deleted file mode 100644
index c99aa6f..0000000
--- a/drivers/staging/rtlwifi/btcoexist/halbtc8822b2ant.h
+++ /dev/null
@@ -1,487 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* *******************************************
- * The following is for 8822B 2Ant BT Co-exist definition
- * ********************************************/
-#define BT_INFO_8822B_2ANT_B_FTP	BIT(7)
-#define BT_INFO_8822B_2ANT_B_A2DP	BIT(6)
-#define BT_INFO_8822B_2ANT_B_HID	BIT(5)
-#define BT_INFO_8822B_2ANT_B_SCO_BUSY	BIT(4)
-#define BT_INFO_8822B_2ANT_B_ACL_BUSY	BIT(3)
-#define BT_INFO_8822B_2ANT_B_INQ_PAGE	BIT(2)
-#define BT_INFO_8822B_2ANT_B_SCO_ESCO	BIT(1)
-#define BT_INFO_8822B_2ANT_B_CONNECTION	BIT(0)
-
-#define BTC_RSSI_COEX_THRESH_TOL_8822B_2ANT	2
-
-/* unit: % WiFi RSSI Threshold for 2-Ant free-run/2-Ant TDMA translation.
- * (default = 42)
- */
-#define BT_8822B_2ANT_WIFI_RSSI_COEXSWITCH_THRES1	80
-/* unit: % BT RSSI Threshold for 2-Ant free-run/2-Ant TDMA translation.
- * (default = 46)
- */
-#define BT_8822B_2ANT_BT_RSSI_COEXSWITCH_THRES1	80
-/* unit: % WiFi RSSI Threshold for 1-Ant TDMA/1-Ant PS-TDMA translation.
- * (default = 42)
- */
-#define BT_8822B_2ANT_WIFI_RSSI_COEXSWITCH_THRES2	80
-/* unit: % BT RSSI Threshold for 1-Ant TDMA/1-Ant PS-TDMA translation.
- * (default = 46)
- */
-#define BT_8822B_2ANT_BT_RSSI_COEXSWITCH_THRES2	80
-#define BT_8822B_2ANT_DEFAULT_ISOLATION	15 /*  unit: dB */
-#define BT_8822B_2ANT_WIFI_MAX_TX_POWER	15 /*  unit: dBm */
-#define BT_8822B_2ANT_BT_MAX_TX_POWER	3 /*  unit: dBm */
-#define BT_8822B_2ANT_WIFI_SIR_THRES1 -15 /*  unit: dB */
-#define BT_8822B_2ANT_WIFI_SIR_THRES2 -30 /*  unit: dB */
-#define BT_8822B_2ANT_BT_SIR_THRES1 -15 /*  unit: dB */
-#define BT_8822B_2ANT_BT_SIR_THRES2 -30 /*  unit: dB */
-
-/* for Antenna detection */
-#define BT_8822B_2ANT_ANTDET_PSDTHRES_BACKGROUND	50
-#define BT_8822B_2ANT_ANTDET_PSDTHRES_2ANT_BADISOLATION	70
-#define BT_8822B_2ANT_ANTDET_PSDTHRES_2ANT_GOODISOLATION	52
-#define BT_8822B_2ANT_ANTDET_PSDTHRES_1ANT	40
-#define BT_8822B_2ANT_ANTDET_RETRY_INTERVAL                                    \
-	10 /* retry timer if ant det is fail, unit: second */
-#define BT_8822B_2ANT_ANTDET_SWEEPPOINT_DELAY	60000
-#define BT_8822B_2ANT_ANTDET_ENABLE	0
-#define BT_8822B_2ANT_ANTDET_BTTXTIME	100
-#define BT_8822B_2ANT_ANTDET_BTTXCHANNEL	39
-#define BT_8822B_2ANT_ANTDET_PSD_SWWEEPCOUNT	50
-
-#define BT_8822B_2ANT_LTECOEX_INDIRECTREG_ACCESS_TIMEOUT	30000
-
-enum bt_8822b_2ant_signal_state {
-	BT_8822B_2ANT_SIG_STA_SET_TO_LOW	= 0x0,
-	BT_8822B_2ANT_SIG_STA_SET_BY_HW	= 0x0,
-	BT_8822B_2ANT_SIG_STA_SET_TO_HIGH	= 0x1,
-	BT_8822B_2ANT_SIG_STA_MAX
-};
-
-enum bt_8822b_2ant_path_ctrl_owner {
-	BT_8822B_2ANT_PCO_BTSIDE	= 0x0,
-	BT_8822B_2ANT_PCO_WLSIDE	= 0x1,
-	BT_8822B_2ANT_PCO_MAX
-};
-
-enum bt_8822b_2ant_gnt_ctrl_type {
-	BT_8822B_2ANT_GNT_TYPE_CTRL_BY_PTA	= 0x0,
-	BT_8822B_2ANT_GNT_TYPE_CTRL_BY_SW	= 0x1,
-	BT_8822B_2ANT_GNT_TYPE_MAX
-};
-
-enum bt_8822b_2ant_gnt_ctrl_block {
-	BT_8822B_2ANT_GNT_BLOCK_RFC_BB	= 0x0,
-	BT_8822B_2ANT_GNT_BLOCK_RFC	= 0x1,
-	BT_8822B_2ANT_GNT_BLOCK_BB	= 0x2,
-	BT_8822B_2ANT_GNT_BLOCK_MAX
-};
-
-enum bt_8822b_2ant_lte_coex_table_type {
-	BT_8822B_2ANT_CTT_WL_VS_LTE	= 0x0,
-	BT_8822B_2ANT_CTT_BT_VS_LTE	= 0x1,
-	BT_8822B_2ANT_CTT_MAX
-};
-
-enum bt_8822b_2ant_lte_break_table_type {
-	BT_8822B_2ANT_LBTT_WL_BREAK_LTE	= 0x0,
-	BT_8822B_2ANT_LBTT_BT_BREAK_LTE	= 0x1,
-	BT_8822B_2ANT_LBTT_LTE_BREAK_WL	= 0x2,
-	BT_8822B_2ANT_LBTT_LTE_BREAK_BT	= 0x3,
-	BT_8822B_2ANT_LBTT_MAX
-};
-
-enum bt_info_src_8822b_2ant {
-	BT_INFO_SRC_8822B_2ANT_WIFI_FW	= 0x0,
-	BT_INFO_SRC_8822B_2ANT_BT_RSP	= 0x1,
-	BT_INFO_SRC_8822B_2ANT_BT_ACTIVE_SEND	= 0x2,
-	BT_INFO_SRC_8822B_2ANT_MAX
-};
-
-enum bt_8822b_2ant_bt_status {
-	BT_8822B_2ANT_BT_STATUS_NON_CONNECTED_IDLE	= 0x0,
-	BT_8822B_2ANT_BT_STATUS_CONNECTED_IDLE	= 0x1,
-	BT_8822B_2ANT_BT_STATUS_INQ_PAGE	= 0x2,
-	BT_8822B_2ANT_BT_STATUS_ACL_BUSY	= 0x3,
-	BT_8822B_2ANT_BT_STATUS_SCO_BUSY	= 0x4,
-	BT_8822B_2ANT_BT_STATUS_ACL_SCO_BUSY	= 0x5,
-	BT_8822B_2ANT_BT_STATUS_MAX
-};
-
-enum bt_8822b_2ant_coex_algo {
-	BT_8822B_2ANT_COEX_ALGO_UNDEFINED	= 0x0,
-	BT_8822B_2ANT_COEX_ALGO_SCO	= 0x1,
-	BT_8822B_2ANT_COEX_ALGO_HID	= 0x2,
-	BT_8822B_2ANT_COEX_ALGO_A2DP	= 0x3,
-	BT_8822B_2ANT_COEX_ALGO_A2DP_PANHS	= 0x4,
-	BT_8822B_2ANT_COEX_ALGO_PANEDR	= 0x5,
-	BT_8822B_2ANT_COEX_ALGO_PANHS	= 0x6,
-	BT_8822B_2ANT_COEX_ALGO_PANEDR_A2DP	= 0x7,
-	BT_8822B_2ANT_COEX_ALGO_PANEDR_HID	= 0x8,
-	BT_8822B_2ANT_COEX_ALGO_HID_A2DP_PANEDR	= 0x9,
-	BT_8822B_2ANT_COEX_ALGO_HID_A2DP	= 0xa,
-	BT_8822B_2ANT_COEX_ALGO_NOPROFILEBUSY	= 0xb,
-	BT_8822B_2ANT_COEX_ALGO_A2DPSINK	= 0xc,
-	BT_8822B_2ANT_COEX_ALGO_MAX
-};
-
-enum bt_8822b_2ant_ext_ant_switch_type {
-	BT_8822B_2ANT_EXT_ANT_SWITCH_USE_DPDT	= 0x0,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_USE_SPDT	= 0x1,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_NONE	= 0x2,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_MAX
-};
-
-enum bt_8822b_2ant_ext_ant_switch_ctrl_type {
-	BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_BBSW	= 0x0,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_PTA	= 0x1,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_ANTDIV	= 0x2,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_MAC	= 0x3,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_BY_BT	= 0x4,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_CTRL_MAX
-};
-
-enum bt_8822b_2ant_ext_ant_switch_pos_type {
-	BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_BT	= 0x0,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_WLG	= 0x1,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_WLA	= 0x2,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_NOCARE	= 0x3,
-	BT_8822B_2ANT_EXT_ANT_SWITCH_MAIN_TO_MAX
-};
-
-enum bt_8822b_2ant_ext_band_switch_pos_type {
-	BT_8822B_2ANT_EXT_BAND_SWITCH_TO_WLG	= 0x0,
-	BT_8822B_2ANT_EXT_BAND_SWITCH_TO_WLA	= 0x1,
-	BT_8822B_2ANT_EXT_BAND_SWITCH_TO_MAX
-};
-
-enum bt_8822b_2ant_int_block {
-	BT_8822B_2ANT_INT_BLOCK_SWITCH_TO_WLG_OF_BTG	= 0x0,
-	BT_8822B_2ANT_INT_BLOCK_SWITCH_TO_WLG_OF_WLAG	= 0x1,
-	BT_8822B_2ANT_INT_BLOCK_SWITCH_TO_WLA_OF_WLAG	= 0x2,
-	BT_8822B_2ANT_INT_BLOCK_SWITCH_TO_MAX
-};
-
-enum bt_8822b_2ant_phase {
-	BT_8822B_2ANT_PHASE_COEX_INIT	= 0x0,
-	BT_8822B_2ANT_PHASE_WLANONLY_INIT	= 0x1,
-	BT_8822B_2ANT_PHASE_WLAN_OFF	= 0x2,
-	BT_8822B_2ANT_PHASE_2G_RUNTIME	= 0x3,
-	BT_8822B_2ANT_PHASE_5G_RUNTIME	= 0x4,
-	BT_8822B_2ANT_PHASE_BTMPMODE	= 0x5,
-	BT_8822B_2ANT_PHASE_ANTENNA_DET	= 0x6,
-	BT_8822B_2ANT_PHASE_COEX_POWERON	= 0x7,
-	BT_8822B_2ANT_PHASE_2G_RUNTIME_CONCURRENT	= 0x8,
-	BT_8822B_2ANT_PHASE_MAX
-};
-
-/*ADD SCOREBOARD TO FIX BT LPS 32K ISSUE WHILE WL BUSY*/
-
-enum bt_8822b_2ant_scoreboard {
-	BT_8822B_2ANT_SCOREBOARD_ACTIVE	= BIT(0),
-	BT_8822B_2ANT_SCOREBOARD_ONOFF	= BIT(1),
-	BT_8822B_2ANT_SCOREBOARD_SCAN	= BIT(2),
-	BT_8822B_2ANT_SCOREBOARD_UNDERTEST	= BIT(3),
-	BT_8822B_2ANT_SCOREBOARD_WLBUSY = BIT(6)
-};
-
-struct coex_dm_8822b_2ant {
-	/* hw setting */
-	u32	pre_ant_pos_type;
-	u32	cur_ant_pos_type;
-	/* fw mechanism */
-	u8	pre_bt_dec_pwr_lvl;
-	u8	cur_bt_dec_pwr_lvl;
-	u8	pre_fw_dac_swing_lvl;
-	u8	cur_fw_dac_swing_lvl;
-	bool	cur_ignore_wlan_act;
-	bool	pre_ignore_wlan_act;
-	u8	pre_ps_tdma;
-	u8	cur_ps_tdma;
-	u8	ps_tdma_para[5];
-	u8	ps_tdma_du_adj_type;
-	bool	reset_tdma_adjust;
-	bool	pre_ps_tdma_on;
-	bool	cur_ps_tdma_on;
-	bool	pre_bt_auto_report;
-	bool	cur_bt_auto_report;
-
-	/* sw mechanism */
-	bool	pre_rf_rx_lpf_shrink;
-	bool	cur_rf_rx_lpf_shrink;
-	u32	bt_rf_0x1e_backup;
-	bool	pre_low_penalty_ra;
-	bool	cur_low_penalty_ra;
-	bool	pre_dac_swing_on;
-	u32	pre_dac_swing_lvl;
-	bool	cur_dac_swing_on;
-	u32	cur_dac_swing_lvl;
-	bool	pre_adc_back_off;
-	bool	cur_adc_back_off;
-	bool	pre_agc_table_en;
-	bool	cur_agc_table_en;
-	u32	pre_val0x6c0;
-	u32	cur_val0x6c0;
-	u32	pre_val0x6c4;
-	u32	cur_val0x6c4;
-	u32	pre_val0x6c8;
-	u32	cur_val0x6c8;
-	u8	pre_val0x6cc;
-	u8	cur_val0x6cc;
-	bool	limited_dig;
-
-	/* algorithm related */
-	u8	pre_algorithm;
-	u8	cur_algorithm;
-	u8	bt_status;
-	u8	wifi_chnl_info[3];
-
-	bool	need_recover0x948;
-	u32	backup0x948;
-
-	u8	pre_lps;
-	u8	cur_lps;
-	u8	pre_rpwm;
-	u8	cur_rpwm;
-
-	bool	is_switch_to_1dot5_ant;
-	u8	switch_thres_offset;
-	u32	arp_cnt;
-
-	u32	pre_ext_ant_switch_status;
-	u32	cur_ext_ant_switch_status;
-
-	u8	pre_ext_band_switch_status;
-	u8	cur_ext_band_switch_status;
-
-	u8	pre_int_block_status;
-	u8	cur_int_block_status;
-};
-
-struct coex_sta_8822b_2ant {
-	bool	bt_disabled;
-	bool	bt_link_exist;
-	bool	sco_exist;
-	bool	a2dp_exist;
-	bool	hid_exist;
-	bool	pan_exist;
-
-	bool	under_lps;
-	bool	under_ips;
-	u32	high_priority_tx;
-	u32	high_priority_rx;
-	u32	low_priority_tx;
-	u32	low_priority_rx;
-	bool	is_hi_pri_rx_overhead;
-	u8	bt_rssi;
-	u8	pre_bt_rssi_state;
-	u8	pre_wifi_rssi_state[4];
-	u8	bt_info_c2h[BT_INFO_SRC_8822B_2ANT_MAX][10];
-	u32	bt_info_c2h_cnt[BT_INFO_SRC_8822B_2ANT_MAX];
-	bool	bt_whck_test;
-	bool	c2h_bt_inquiry_page;
-	bool	c2h_bt_remote_name_req;
-
-	u8	bt_info_ext;
-	u8	bt_info_ext2;
-	u32	pop_event_cnt;
-	u8	scan_ap_num;
-	u8	bt_retry_cnt;
-
-	u32	crc_ok_cck;
-	u32	crc_ok_11g;
-	u32	crc_ok_11n;
-	u32	crc_ok_11n_vht;
-
-	u32	crc_err_cck;
-	u32	crc_err_11g;
-	u32	crc_err_11n;
-	u32	crc_err_11n_vht;
-
-	u32	acc_crc_ratio;
-	u32	now_crc_ratio;
-
-	bool	cck_lock;
-	bool	pre_ccklock;
-	bool	cck_ever_lock;
-
-	u8	coex_table_type;
-	bool	force_lps_ctrl;
-
-	u8	dis_ver_info_cnt;
-
-	u8	a2dp_bit_pool;
-	u8	cut_version;
-
-	bool	concurrent_rx_mode_on;
-
-	u16	score_board;
-	u8	isolation_btween_wb; /* 0~ 50 */
-	u8	wifi_coex_thres;
-	u8	bt_coex_thres;
-	u8	wifi_coex_thres2;
-	u8	bt_coex_thres2;
-
-	u8	num_of_profile;
-	bool	acl_busy;
-	bool	bt_create_connection;
-	bool	wifi_is_high_pri_task;
-	u32	specific_pkt_period_cnt;
-	u32	bt_coex_supported_feature;
-	u32	bt_coex_supported_version;
-
-	u8	bt_ble_scan_type;
-	u32	bt_ble_scan_para[3];
-
-	bool	run_time_state;
-	bool	freeze_coexrun_by_btinfo;
-
-	bool	is_A2DP_3M;
-	bool	voice_over_HOGP;
-	u8	bt_info;
-	bool	is_autoslot;
-	u8	forbidden_slot;
-	u8	hid_busy_num;
-	u8	hid_pair_cnt;
-
-	u32	cnt_remote_name_req;
-	u32	cnt_setup_link;
-	u32	cnt_reinit;
-	u32	cnt_ign_wlan_act;
-	u32	cnt_page;
-	u32	cnt_role_switch;
-
-	u16	bt_reg_vendor_ac;
-	u16	bt_reg_vendor_ae;
-
-	bool	is_setup_link;
-	u8	wl_noisy_level;
-	u32	gnt_error_cnt;
-
-	u8	bt_afh_map[10];
-	u8	bt_relink_downcount;
-	bool	is_tdma_btautoslot;
-	bool	is_tdma_btautoslot_hang;
-
-	bool	is_esco_mode;
-	u8	switch_band_notify_to;
-	bool	is_rf_state_off;
-
-	bool	is_hid_low_pri_tx_overhead;
-	bool	is_bt_multi_link;
-	bool	is_bt_a2dp_sink;
-
-	bool	is_set_ps_state_fail;
-	u8	cnt_set_ps_state_fail;
-};
-
-#define BT_8822B_2ANT_EXT_BAND_SWITCH_USE_DPDT	0
-#define BT_8822B_2ANT_EXT_BAND_SWITCH_USE_SPDT	1
-
-struct rfe_type_8822b_2ant {
-	u8	rfe_module_type;
-	bool	ext_ant_switch_exist;
-	u8	ext_ant_switch_type; /* 0:DPDT, 1:SPDT */
-	/*  iF 0: DPDT_P=0, DPDT_N=1 => BTG to Main, WL_A+G to Aux */
-	u8	ext_ant_switch_ctrl_polarity;
-
-	bool	ext_band_switch_exist;
-	u8	ext_band_switch_type; /* 0:DPDT, 1:SPDT */
-	u8	ext_band_switch_ctrl_polarity;
-
-	/*  If true:  WLG at BTG, If false: WLG at WLAG */
-	bool	wlg_locate_at_btg;
-
-	bool	ext_ant_switch_diversity; /* If diversity on */
-};
-
-#define BT_8822B_2ANT_ANTDET_PSD_POINTS	256 /* MAX:1024 */
-#define BT_8822B_2ANT_ANTDET_PSD_AVGNUM	1 /* MAX:3 */
-#define BT_8822B_2ANT_ANTDET_BUF_LEN	16
-
-struct psdscan_sta_8822b_2ant {
-	u32	ant_det_bt_le_channel; /* BT LE Channel ex:2412 */
-	u32	ant_det_bt_tx_time;
-	u32	ant_det_pre_psdscan_peak_val;
-	bool	ant_det_is_ant_det_available;
-	u32	ant_det_psd_scan_peak_val;
-	bool	ant_det_is_btreply_available;
-	u32	ant_det_psd_scan_peak_freq;
-
-	u8	ant_det_result;
-	u8	ant_det_peak_val[BT_8822B_2ANT_ANTDET_BUF_LEN];
-	u8	ant_det_peak_freq[BT_8822B_2ANT_ANTDET_BUF_LEN];
-	u32	ant_det_try_count;
-	u32	ant_det_fail_count;
-	u32	ant_det_inteval_count;
-	u32	ant_det_thres_offset;
-
-	u32	real_cent_freq;
-	s32	real_offset;
-	u32	real_span;
-
-	u32	psd_band_width; /* unit: Hz */
-	u32	psd_point; /* 128/256/512/1024 */
-	u32	psd_report[1024]; /* unit:dB (20logx), 0~255 */
-	u32	psd_report_max_hold[1024]; /* unit:dB (20logx), 0~255 */
-	u32	psd_start_point;
-	u32	psd_stop_point;
-	u32	psd_max_value_point;
-	u32	psd_max_value;
-	u32	psd_max_value2;
-	/* filter loop_max_value that below BT_8822B_1ANT_ANTDET_PSDTHRES_1ANT,
-	 * and average the rest
-	 */
-	u32	psd_avg_value;
-	/*max value in each loop */
-	u32	psd_loop_max_value[BT_8822B_2ANT_ANTDET_PSD_SWWEEPCOUNT];
-	u32	psd_start_base;
-	u32	psd_avg_num; /* 1/8/16/32 */
-	u32	psd_gen_count;
-	bool	is_ant_det_running;
-	bool	is_psd_show_max_only;
-};
-
-/* *******************************************
- * The following is interface which will notify coex module.
- * ********************************************/
-void ex_btc8822b2ant_power_on_setting(struct btc_coexist *btcoexist);
-void ex_btc8822b2ant_pre_load_firmware(struct btc_coexist *btcoexist);
-void ex_btc8822b2ant_init_hw_config(struct btc_coexist *btcoexist,
-				    bool wifi_only);
-void ex_btc8822b2ant_init_coex_dm(struct btc_coexist *btcoexist);
-void ex_btc8822b2ant_ips_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b2ant_lps_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b2ant_scan_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b2ant_switchband_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b2ant_connect_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b2ant_media_status_notify(struct btc_coexist *btcoexist,
-					 u8 type);
-void ex_btc8822b2ant_specific_packet_notify(struct btc_coexist *btcoexist,
-					    u8 type);
-void ex_btc8822b2ant_bt_info_notify(struct btc_coexist *btcoexist, u8 *tmp_buf,
-				    u8 length);
-void ex_btc8822b2ant_rf_status_notify(struct btc_coexist *btcoexist, u8 type);
-void ex_btc8822b2ant_halt_notify(struct btc_coexist *btcoexist);
-void ex_btc8822b2ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state);
-void ex_btc8822b2ant_periodical(struct btc_coexist *btcoexist);
-void ex_btc8822b2ant_display_coex_info(struct btc_coexist *btcoexist,
-				       struct seq_file *m);
-void ex_btc8822b2ant_antenna_detection(struct btc_coexist *btcoexist,
-				       u32 cent_freq, u32 offset, u32 span,
-				       u32 seconds);
-void ex_btc8822b2ant_display_ant_detection(struct btc_coexist *btcoexist);
diff --git a/drivers/staging/rtlwifi/btcoexist/halbtc8822bwifionly.c b/drivers/staging/rtlwifi/btcoexist/halbtc8822bwifionly.c
deleted file mode 100644
index ad7b6c4..0000000
--- a/drivers/staging/rtlwifi/btcoexist/halbtc8822bwifionly.c
+++ /dev/null
@@ -1,54 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halbt_precomp.h"
-
-void ex_hal8822b_wifi_only_hw_config(struct wifi_only_cfg *wifionlycfg)
-{
-	/*BB control*/
-	halwifionly_phy_set_bb_reg(wifionlycfg, 0x4c, 0x01800000, 0x2);
-	/*SW control*/
-	halwifionly_phy_set_bb_reg(wifionlycfg, 0xcb4, 0xff, 0x77);
-	/*antenna mux switch */
-	halwifionly_phy_set_bb_reg(wifionlycfg, 0x974, 0x300, 0x3);
-
-	halwifionly_phy_set_bb_reg(wifionlycfg, 0x1990, 0x300, 0x0);
-
-	halwifionly_phy_set_bb_reg(wifionlycfg, 0xcbc, 0x80000, 0x0);
-	/*switch to WL side controller and gnt_wl gnt_bt debug signal */
-	halwifionly_phy_set_bb_reg(wifionlycfg, 0x70, 0xff000000, 0x0e);
-	/*gnt_wl=1 , gnt_bt=0*/
-	halwifionly_phy_set_bb_reg(wifionlycfg, 0x1704, 0xffffffff, 0x7700);
-	halwifionly_phy_set_bb_reg(wifionlycfg, 0x1700, 0xffffffff, 0xc00f0038);
-}
-
-void ex_hal8822b_wifi_only_scannotify(struct wifi_only_cfg *wifionlycfg,
-				      u8 is_5g)
-{
-	hal8822b_wifi_only_switch_antenna(wifionlycfg, is_5g);
-}
-
-void ex_hal8822b_wifi_only_switchbandnotify(struct wifi_only_cfg *wifionlycfg,
-					    u8 is_5g)
-{
-	hal8822b_wifi_only_switch_antenna(wifionlycfg, is_5g);
-}
-
-void hal8822b_wifi_only_switch_antenna(struct wifi_only_cfg *wifionlycfg,
-				       u8 is_5g)
-{
-	if (is_5g)
-		halwifionly_phy_set_bb_reg(wifionlycfg, 0xcbc, 0x300, 0x1);
-	else
-		halwifionly_phy_set_bb_reg(wifionlycfg, 0xcbc, 0x300, 0x2);
-}
diff --git a/drivers/staging/rtlwifi/btcoexist/halbtc8822bwifionly.h b/drivers/staging/rtlwifi/btcoexist/halbtc8822bwifionly.h
deleted file mode 100644
index 5910fe1..0000000
--- a/drivers/staging/rtlwifi/btcoexist/halbtc8822bwifionly.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __INC_HAL8822BWIFIONLYHWCFG_H
-#define __INC_HAL8822BWIFIONLYHWCFG_H
-
-void ex_hal8822b_wifi_only_hw_config(struct wifi_only_cfg *wifionlycfg);
-void ex_hal8822b_wifi_only_scannotify(struct wifi_only_cfg *wifionlycfg,
-				      u8 is_5g);
-void ex_hal8822b_wifi_only_switchbandnotify(struct wifi_only_cfg *wifionlycfg,
-					    u8 is_5g);
-void hal8822b_wifi_only_switch_antenna(struct wifi_only_cfg *wifionlycfg,
-				       u8 is_5g);
-#endif
diff --git a/drivers/staging/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/staging/rtlwifi/btcoexist/halbtcoutsrc.c
deleted file mode 100644
index 9f11609..0000000
--- a/drivers/staging/rtlwifi/btcoexist/halbtcoutsrc.c
+++ /dev/null
@@ -1,1834 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2013 Realtek Corporation. All rights reserved.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- ******************************************************************************/
-
-#include "halbt_precomp.h"
-
-/***************************************************
- *		Debug related function
- ***************************************************/
-
-static const char *const gl_btc_wifi_bw_string[] = {
-	"11bg",
-	"HT20",
-	"HT40",
-	"HT80",
-	"HT160"
-};
-
-static const char *const gl_btc_wifi_freq_string[] = {
-	"2.4G",
-	"5G"
-};
-
-static bool halbtc_is_bt_coexist_available(struct btc_coexist *btcoexist)
-{
-	if (!btcoexist->binded || !btcoexist->adapter)
-		return false;
-
-	return true;
-}
-
-static bool halbtc_is_wifi_busy(struct rtl_priv *rtlpriv)
-{
-	if (rtlpriv->link_info.busytraffic)
-		return true;
-	else
-		return false;
-}
-
-static void halbtc_dbg_init(void)
-{
-}
-
-/***************************************************
- *		helper function
- ***************************************************/
-static bool is_any_client_connect_to_ap(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	struct rtl_sta_info *drv_priv;
-	u8 cnt = 0;
-
-	if (mac->opmode == NL80211_IFTYPE_ADHOC ||
-	    mac->opmode == NL80211_IFTYPE_MESH_POINT ||
-	    mac->opmode == NL80211_IFTYPE_AP) {
-		if (in_interrupt() > 0) {
-			list_for_each_entry(drv_priv, &rtlpriv->entry_list,
-					    list) {
-				cnt++;
-			}
-		} else {
-			spin_lock_bh(&rtlpriv->locks.entry_list_lock);
-			list_for_each_entry(drv_priv, &rtlpriv->entry_list,
-					    list) {
-				cnt++;
-			}
-			spin_unlock_bh(&rtlpriv->locks.entry_list_lock);
-		}
-	}
-	if (cnt > 0)
-		return true;
-	else
-		return false;
-}
-
-static bool halbtc_legacy(struct rtl_priv *adapter)
-{
-	struct rtl_priv *rtlpriv = adapter;
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-
-	bool is_legacy = false;
-
-	if ((mac->mode == WIRELESS_MODE_B) || (mac->mode == WIRELESS_MODE_G))
-		is_legacy = true;
-
-	return is_legacy;
-}
-
-bool halbtc_is_wifi_uplink(struct rtl_priv *adapter)
-{
-	struct rtl_priv *rtlpriv = adapter;
-
-	if (rtlpriv->link_info.tx_busy_traffic)
-		return true;
-	else
-		return false;
-}
-
-static u32 halbtc_get_wifi_bw(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv =
-		(struct rtl_priv *)btcoexist->adapter;
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u32 wifi_bw = BTC_WIFI_BW_HT20;
-
-	if (halbtc_legacy(rtlpriv)) {
-		wifi_bw = BTC_WIFI_BW_LEGACY;
-	} else {
-		switch (rtlphy->current_chan_bw) {
-		case HT_CHANNEL_WIDTH_20:
-			wifi_bw = BTC_WIFI_BW_HT20;
-			break;
-		case HT_CHANNEL_WIDTH_20_40:
-			wifi_bw = BTC_WIFI_BW_HT40;
-			break;
-		case HT_CHANNEL_WIDTH_80:
-			wifi_bw = BTC_WIFI_BW_HT80;
-			break;
-		}
-	}
-
-	return wifi_bw;
-}
-
-static u8 halbtc_get_wifi_central_chnl(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct rtl_phy	*rtlphy = &rtlpriv->phy;
-	u8 chnl = 1;
-
-	if (rtlphy->current_channel != 0)
-		chnl = rtlphy->current_channel;
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "%s:%d\n", __func__, chnl);
-	return chnl;
-}
-
-static u8 rtl_get_hwpg_single_ant_path(struct rtl_priv *rtlpriv)
-{
-	return rtlpriv->btcoexist.btc_info.single_ant_path;
-}
-
-static u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv)
-{
-	return rtlpriv->btcoexist.btc_info.bt_type;
-}
-
-static u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv)
-{
-	u8 num;
-
-	if (rtlpriv->btcoexist.btc_info.ant_num == ANT_X2)
-		num = 2;
-	else
-		num = 1;
-
-	return num;
-}
-
-static u8 rtl_get_hwpg_package_type(struct rtl_priv *rtlpriv)
-{
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-
-	return rtlhal->package_type;
-}
-
-static
-u8 rtl_get_hwpg_rfe_type(struct rtl_priv *rtlpriv)
-{
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-
-	return rtlhal->rfe_type;
-}
-
-/* ************************************
- *         Hal helper function
- * ************************************
- */
-static
-bool halbtc_is_hw_mailbox_exist(struct btc_coexist *btcoexist)
-{
-	if (IS_HARDWARE_TYPE_8812(btcoexist->adapter))
-		return false;
-	else
-		return true;
-}
-
-static
-bool halbtc_send_bt_mp_operation(struct btc_coexist *btcoexist, u8 op_code,
-				 u8 *cmd, u32 len, unsigned long wait_ms)
-{
-	struct rtl_priv *rtlpriv;
-	const u8 oper_ver = 0;
-	u8 req_num;
-
-	if (!halbtc_is_hw_mailbox_exist(btcoexist))
-		return false;
-
-	if (wait_ms)	/* before h2c to avoid race condition */
-		reinit_completion(&btcoexist->bt_mp_comp);
-
-	rtlpriv = btcoexist->adapter;
-
-	/*
-	 * fill req_num by op_code, and rtl_btc_btmpinfo_notify() use it
-	 * to know message type
-	 */
-	switch (op_code) {
-	case BT_OP_GET_BT_VERSION:
-		req_num = BT_SEQ_GET_BT_VERSION;
-		break;
-	case BT_OP_GET_AFH_MAP_L:
-		req_num = BT_SEQ_GET_AFH_MAP_L;
-		break;
-	case BT_OP_GET_AFH_MAP_M:
-		req_num = BT_SEQ_GET_AFH_MAP_M;
-		break;
-	case BT_OP_GET_AFH_MAP_H:
-		req_num = BT_SEQ_GET_AFH_MAP_H;
-		break;
-	case BT_OP_GET_BT_COEX_SUPPORTED_FEATURE:
-		req_num = BT_SEQ_GET_BT_COEX_SUPPORTED_FEATURE;
-		break;
-	case BT_OP_GET_BT_COEX_SUPPORTED_VERSION:
-		req_num = BT_SEQ_GET_BT_COEX_SUPPORTED_VERSION;
-		break;
-	case BT_OP_GET_BT_ANT_DET_VAL:
-		req_num = BT_SEQ_GET_BT_ANT_DET_VAL;
-		break;
-	case BT_OP_GET_BT_BLE_SCAN_PARA:
-		req_num = BT_SEQ_GET_BT_BLE_SCAN_PARA;
-		break;
-	case BT_OP_GET_BT_BLE_SCAN_TYPE:
-		req_num = BT_SEQ_GET_BT_BLE_SCAN_TYPE;
-		break;
-	case BT_OP_WRITE_REG_ADDR:
-	case BT_OP_WRITE_REG_VALUE:
-	case BT_OP_READ_REG:
-	default:
-		req_num = BT_SEQ_DONT_CARE;
-		break;
-	}
-
-	cmd[0] |= (oper_ver & 0x0f);		/* Set OperVer */
-	cmd[0] |= ((req_num << 4) & 0xf0);	/* Set ReqNum */
-	cmd[1] = op_code;
-	rtlpriv->cfg->ops->fill_h2c_cmd(rtlpriv->mac80211.hw, 0x67, len, cmd);
-
-	/* wait? */
-	if (!wait_ms)
-		return true;
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "btmpinfo wait req_num=%d wait=%ld\n", req_num, wait_ms);
-
-	if (in_interrupt())
-		return false;
-
-	if (wait_for_completion_timeout(&btcoexist->bt_mp_comp,
-					msecs_to_jiffies(wait_ms)) == 0) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_DMESG,
-			 "btmpinfo wait (req_num=%d) timeout\n", req_num);
-
-		return false;	/* timeout */
-	}
-
-	return true;
-}
-
-static void halbtc_leave_lps(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv;
-	bool ap_enable = false;
-
-	rtlpriv = btcoexist->adapter;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
-			   &ap_enable);
-
-	if (ap_enable) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_DMESG,
-			 "%s()<--dont leave lps under AP mode\n", __func__);
-		return;
-	}
-
-	btcoexist->bt_info.bt_ctrl_lps = true;
-	btcoexist->bt_info.bt_lps_on = false;
-	rtl_lps_leave(rtlpriv->mac80211.hw);
-}
-
-static void halbtc_enter_lps(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv;
-	bool ap_enable = false;
-
-	rtlpriv = btcoexist->adapter;
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
-			   &ap_enable);
-
-	if (ap_enable) {
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_DMESG,
-			 "%s()<--dont enter lps under AP mode\n", __func__);
-		return;
-	}
-
-	btcoexist->bt_info.bt_ctrl_lps = true;
-	btcoexist->bt_info.bt_lps_on = true;
-	rtl_lps_enter(rtlpriv->mac80211.hw);
-}
-
-static void halbtc_normal_lps(struct btc_coexist *btcoexist)
-{
-	struct rtl_priv *rtlpriv;
-
-	rtlpriv = btcoexist->adapter;
-
-	if (btcoexist->bt_info.bt_ctrl_lps) {
-		btcoexist->bt_info.bt_lps_on = false;
-		rtl_lps_leave(rtlpriv->mac80211.hw);
-		btcoexist->bt_info.bt_ctrl_lps = false;
-	}
-}
-
-static void halbtc_leave_low_power(struct btc_coexist *btcoexist)
-{
-}
-
-static void halbtc_normal_low_power(struct btc_coexist *btcoexist)
-{
-}
-
-static void halbtc_disable_low_power(struct btc_coexist *btcoexist,
-				     bool low_pwr_disable)
-{
-	/* TODO: original/leave 32k low power */
-	btcoexist->bt_info.bt_disable_low_pwr = low_pwr_disable;
-}
-
-static void halbtc_aggregation_check(struct btc_coexist *btcoexist)
-{
-	bool need_to_act = false;
-	static unsigned long pre_time;
-	unsigned long cur_time = 0;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	/* To void continuous deleteBA=>addBA=>deleteBA=>addBA
-	 * This function is not allowed to continuous called
-	 * It can only be called after 8 seconds
-	 */
-
-	cur_time = jiffies;
-	if (jiffies_to_msecs(cur_time - pre_time) <= 8000) {
-		/* over 8 seconds you can execute this function again. */
-		return;
-	}
-	pre_time = cur_time;
-
-	if (btcoexist->bt_info.reject_agg_pkt) {
-		need_to_act = true;
-		btcoexist->bt_info.pre_reject_agg_pkt =
-			btcoexist->bt_info.reject_agg_pkt;
-	} else {
-		if (btcoexist->bt_info.pre_reject_agg_pkt) {
-			need_to_act = true;
-			btcoexist->bt_info.pre_reject_agg_pkt =
-				btcoexist->bt_info.reject_agg_pkt;
-		}
-
-		if (btcoexist->bt_info.pre_bt_ctrl_agg_buf_size !=
-		    btcoexist->bt_info.bt_ctrl_agg_buf_size) {
-			need_to_act = true;
-			btcoexist->bt_info.pre_bt_ctrl_agg_buf_size =
-				btcoexist->bt_info.bt_ctrl_agg_buf_size;
-		}
-
-		if (btcoexist->bt_info.bt_ctrl_agg_buf_size) {
-			if (btcoexist->bt_info.pre_agg_buf_size !=
-			    btcoexist->bt_info.agg_buf_size) {
-				need_to_act = true;
-			}
-			btcoexist->bt_info.pre_agg_buf_size =
-				btcoexist->bt_info.agg_buf_size;
-		}
-
-		if (need_to_act)
-			rtl_rx_ampdu_apply(rtlpriv);
-	}
-}
-
-static u32 halbtc_get_bt_patch_version(struct btc_coexist *btcoexist)
-{
-	u8 cmd_buffer[4] = {0};
-
-	if (btcoexist->bt_info.bt_real_fw_ver)
-		goto label_done;
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	halbtc_send_bt_mp_operation(btcoexist, BT_OP_GET_BT_VERSION,
-				    cmd_buffer, 4, 200);
-
-label_done:
-	return btcoexist->bt_info.bt_real_fw_ver;
-}
-
-static u32 halbtc_get_bt_coex_supported_feature(void *btc_context)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	u8 cmd_buffer[4] = {0};
-
-	if (btcoexist->bt_info.bt_supported_feature)
-		goto label_done;
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	halbtc_send_bt_mp_operation(btcoexist,
-				    BT_OP_GET_BT_COEX_SUPPORTED_FEATURE,
-				    cmd_buffer, 4, 200);
-
-label_done:
-	return btcoexist->bt_info.bt_supported_feature;
-}
-
-static u32 halbtc_get_bt_coex_supported_version(void *btc_context)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	u8 cmd_buffer[4] = {0};
-
-	if (btcoexist->bt_info.bt_supported_version)
-		goto label_done;
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	halbtc_send_bt_mp_operation(btcoexist,
-				    BT_OP_GET_BT_COEX_SUPPORTED_VERSION,
-				    cmd_buffer, 4, 200);
-
-label_done:
-	return btcoexist->bt_info.bt_supported_version;
-}
-
-static u32 halbtc_get_wifi_link_status(struct btc_coexist *btcoexist)
-{
-	/* return value:
-	 * [31:16] => connected port number
-	 * [15:0]  => port connected bit define
-	 */
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	u32 port_connected_status = 0, num_of_connected_port = 0;
-
-	if (mac->opmode == NL80211_IFTYPE_STATION &&
-	    mac->link_state >= MAC80211_LINKED) {
-		port_connected_status |= WIFI_STA_CONNECTED;
-		num_of_connected_port++;
-	}
-	/* AP & ADHOC & MESH */
-	if (is_any_client_connect_to_ap(btcoexist)) {
-		port_connected_status |= WIFI_AP_CONNECTED;
-		num_of_connected_port++;
-	}
-	/* TODO: P2P Connected Status */
-
-	return (num_of_connected_port << 16) | port_connected_status;
-}
-
-static bool halbtc_get(void *void_btcoexist, u8 get_type, void *out_buf)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)void_btcoexist;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	bool *bool_tmp = (bool *)out_buf;
-	int *s32_tmp = (int *)out_buf;
-	u32 *u32_tmp = (u32 *)out_buf;
-	u8 *u8_tmp = (u8 *)out_buf;
-	bool tmp = false;
-	bool ret = true;
-
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return false;
-
-	switch (get_type) {
-	case BTC_GET_BL_HS_OPERATION:
-		*bool_tmp = false;
-		ret = false;
-		break;
-	case BTC_GET_BL_HS_CONNECTING:
-		*bool_tmp = false;
-		ret = false;
-		break;
-	case BTC_GET_BL_WIFI_CONNECTED:
-		if (rtlpriv->mac80211.opmode == NL80211_IFTYPE_STATION &&
-		    rtlpriv->mac80211.link_state >= MAC80211_LINKED)
-			tmp = true;
-		if (is_any_client_connect_to_ap(btcoexist))
-			tmp = true;
-		*bool_tmp = tmp;
-		break;
-	case BTC_GET_BL_WIFI_BUSY:
-		if (halbtc_is_wifi_busy(rtlpriv))
-			*bool_tmp = true;
-		else
-			*bool_tmp = false;
-		break;
-	case BTC_GET_BL_WIFI_SCAN:
-		if (mac->act_scanning)
-			*bool_tmp = true;
-		else
-			*bool_tmp = false;
-		break;
-	case BTC_GET_BL_WIFI_LINK:
-		if (mac->link_state == MAC80211_LINKING)
-			*bool_tmp = true;
-		else
-			*bool_tmp = false;
-		break;
-	case BTC_GET_BL_WIFI_ROAM:
-		if (mac->link_state == MAC80211_LINKING)
-			*bool_tmp = true;
-		else
-			*bool_tmp = false;
-		break;
-	case BTC_GET_BL_WIFI_4_WAY_PROGRESS:
-		*bool_tmp = rtlpriv->btcoexist.btc_info.in_4way;
-		break;
-	case BTC_GET_BL_WIFI_UNDER_5G:
-		if (rtlhal->current_bandtype == BAND_ON_5G)
-			*bool_tmp = true;
-		else
-			*bool_tmp = false;
-		break;
-	case BTC_GET_BL_WIFI_AP_MODE_ENABLE:
-		if (mac->opmode == NL80211_IFTYPE_AP)
-			*bool_tmp = true;
-		else
-			*bool_tmp = false;
-		break;
-	case BTC_GET_BL_WIFI_ENABLE_ENCRYPTION:
-		if (rtlpriv->sec.pairwise_enc_algorithm == NO_ENCRYPTION)
-			*bool_tmp = false;
-		else
-			*bool_tmp = true;
-		break;
-	case BTC_GET_BL_WIFI_UNDER_B_MODE:
-		if (rtlpriv->mac80211.mode == WIRELESS_MODE_B)
-			*bool_tmp = true;
-		else
-			*bool_tmp = false;
-		break;
-	case BTC_GET_BL_EXT_SWITCH:
-		*bool_tmp = false;
-		break;
-	case BTC_GET_BL_WIFI_IS_IN_MP_MODE:
-		*bool_tmp = false;
-		break;
-	case BTC_GET_BL_IS_ASUS_8723B:
-		*bool_tmp = false;
-		break;
-	case BTC_GET_BL_RF4CE_CONNECTED:
-		*bool_tmp = false;
-		break;
-	case BTC_GET_S4_WIFI_RSSI:
-		*s32_tmp = rtlpriv->dm.undec_sm_pwdb;
-		break;
-	case BTC_GET_S4_HS_RSSI:
-		*s32_tmp = 0;
-		ret = false;
-		break;
-	case BTC_GET_U4_WIFI_BW:
-		*u32_tmp = halbtc_get_wifi_bw(btcoexist);
-		break;
-	case BTC_GET_U4_WIFI_TRAFFIC_DIRECTION:
-		if (halbtc_is_wifi_uplink(rtlpriv))
-			*u32_tmp = BTC_WIFI_TRAFFIC_TX;
-		else
-			*u32_tmp = BTC_WIFI_TRAFFIC_RX;
-		break;
-	case BTC_GET_U4_WIFI_FW_VER:
-		*u32_tmp = (rtlhal->fw_version << 16) | rtlhal->fw_subversion;
-		break;
-	case BTC_GET_U4_WIFI_LINK_STATUS:
-		*u32_tmp = halbtc_get_wifi_link_status(btcoexist);
-		break;
-	case BTC_GET_U4_BT_PATCH_VER:
-		*u32_tmp = halbtc_get_bt_patch_version(btcoexist);
-		break;
-	case BTC_GET_U4_VENDOR:
-		*u32_tmp = BTC_VENDOR_OTHER;
-		break;
-	case BTC_GET_U4_SUPPORTED_VERSION:
-		*u32_tmp = halbtc_get_bt_coex_supported_version(btcoexist);
-		break;
-	case BTC_GET_U4_SUPPORTED_FEATURE:
-		*u32_tmp = halbtc_get_bt_coex_supported_feature(btcoexist);
-		break;
-	case BTC_GET_U4_WIFI_IQK_TOTAL:
-		*u32_tmp = btcoexist->btc_phydm_query_phy_counter(btcoexist,
-								  "IQK_TOTAL");
-		break;
-	case BTC_GET_U4_WIFI_IQK_OK:
-		*u32_tmp = btcoexist->btc_phydm_query_phy_counter(btcoexist,
-								  "IQK_OK");
-		break;
-	case BTC_GET_U4_WIFI_IQK_FAIL:
-		*u32_tmp = btcoexist->btc_phydm_query_phy_counter(btcoexist,
-								  "IQK_FAIL");
-		break;
-	case BTC_GET_U1_WIFI_DOT11_CHNL:
-		*u8_tmp = rtlphy->current_channel;
-		break;
-	case BTC_GET_U1_WIFI_CENTRAL_CHNL:
-		*u8_tmp = halbtc_get_wifi_central_chnl(btcoexist);
-		break;
-	case BTC_GET_U1_WIFI_HS_CHNL:
-		*u8_tmp = 0;
-		ret = false;
-		break;
-	case BTC_GET_U1_AP_NUM:
-		*u8_tmp = rtlpriv->btcoexist.btc_info.ap_num;
-		break;
-	case BTC_GET_U1_ANT_TYPE:
-		*u8_tmp = (u8)BTC_ANT_TYPE_0;
-		break;
-	case BTC_GET_U1_IOT_PEER:
-		*u8_tmp = 0;
-		break;
-
-		/************* 1Ant **************/
-	case BTC_GET_U1_LPS_MODE:
-		*u8_tmp = btcoexist->pwr_mode_val[0];
-		break;
-
-	default:
-		ret = false;
-		break;
-	}
-
-	return ret;
-}
-
-static bool halbtc_set(void *void_btcoexist, u8 set_type, void *in_buf)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)void_btcoexist;
-	bool *bool_tmp = (bool *)in_buf;
-	u8 *u8_tmp = (u8 *)in_buf;
-	u32 *u32_tmp = (u32 *)in_buf;
-	bool ret = true;
-
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return false;
-
-	switch (set_type) {
-	/* set some bool type variables. */
-	case BTC_SET_BL_BT_DISABLE:
-		btcoexist->bt_info.bt_disabled = *bool_tmp;
-		break;
-	case BTC_SET_BL_BT_TRAFFIC_BUSY:
-		btcoexist->bt_info.bt_busy = *bool_tmp;
-		break;
-	case BTC_SET_BL_BT_LIMITED_DIG:
-		btcoexist->bt_info.limited_dig = *bool_tmp;
-		break;
-	case BTC_SET_BL_FORCE_TO_ROAM:
-		btcoexist->bt_info.force_to_roam = *bool_tmp;
-		break;
-	case BTC_SET_BL_TO_REJ_AP_AGG_PKT:
-		btcoexist->bt_info.reject_agg_pkt = *bool_tmp;
-		break;
-	case BTC_SET_BL_BT_CTRL_AGG_SIZE:
-		btcoexist->bt_info.bt_ctrl_agg_buf_size = *bool_tmp;
-		break;
-	case BTC_SET_BL_INC_SCAN_DEV_NUM:
-		btcoexist->bt_info.increase_scan_dev_num = *bool_tmp;
-		break;
-	case BTC_SET_BL_BT_TX_RX_MASK:
-		btcoexist->bt_info.bt_tx_rx_mask = *bool_tmp;
-		break;
-	case BTC_SET_BL_MIRACAST_PLUS_BT:
-		btcoexist->bt_info.miracast_plus_bt = *bool_tmp;
-		break;
-		/* set some u1Byte type variables. */
-	case BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON:
-		btcoexist->bt_info.rssi_adjust_for_agc_table_on = *u8_tmp;
-		break;
-	case BTC_SET_U1_AGG_BUF_SIZE:
-		btcoexist->bt_info.agg_buf_size = *u8_tmp;
-		break;
-
-	/* the following are some action which will be triggered */
-	case BTC_SET_ACT_GET_BT_RSSI:
-		ret = false;
-		break;
-	case BTC_SET_ACT_AGGREGATE_CTRL:
-		halbtc_aggregation_check(btcoexist);
-		break;
-
-	/* 1Ant */
-	case BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE:
-		btcoexist->bt_info.rssi_adjust_for_1ant_coex_type = *u8_tmp;
-		break;
-	case BTC_SET_UI_SCAN_SIG_COMPENSATION:
-		break;
-	case BTC_SET_U1_LPS_VAL:
-		btcoexist->bt_info.lps_val = *u8_tmp;
-		break;
-	case BTC_SET_U1_RPWM_VAL:
-		btcoexist->bt_info.rpwm_val = *u8_tmp;
-		break;
-	/* the following are some action which will be triggered  */
-	case BTC_SET_ACT_LEAVE_LPS:
-		halbtc_leave_lps(btcoexist);
-		break;
-	case BTC_SET_ACT_ENTER_LPS:
-		halbtc_enter_lps(btcoexist);
-		break;
-	case BTC_SET_ACT_NORMAL_LPS:
-		halbtc_normal_lps(btcoexist);
-		break;
-	case BTC_SET_ACT_DISABLE_LOW_POWER:
-		halbtc_disable_low_power(btcoexist, *bool_tmp);
-		break;
-	case BTC_SET_ACT_UPDATE_RAMASK:
-		btcoexist->bt_info.ra_mask = *u32_tmp;
-		break;
-	case BTC_SET_ACT_SEND_MIMO_PS:
-		break;
-	case BTC_SET_ACT_CTRL_BT_INFO: /*wait for 8812/8821*/
-		break;
-	case BTC_SET_ACT_CTRL_BT_COEX:
-		break;
-	case BTC_SET_ACT_CTRL_8723B_ANT:
-		break;
-	default:
-		break;
-	}
-
-	return ret;
-}
-
-static void halbtc_display_coex_statistics(struct btc_coexist *btcoexist,
-					   struct seq_file *m)
-{
-}
-
-static void halbtc_display_bt_link_info(struct btc_coexist *btcoexist,
-					struct seq_file *m)
-{
-}
-
-static void halbtc_display_wifi_status(struct btc_coexist *btcoexist,
-				       struct seq_file *m)
-{
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	s32 wifi_rssi = 0, bt_hs_rssi = 0;
-	bool scan = false, link = false, roam = false, wifi_busy = false;
-	bool wifi_under_b_mode = false, wifi_under_5g = false;
-	u32 wifi_bw = BTC_WIFI_BW_HT20;
-	u32 wifi_traffic_dir = BTC_WIFI_TRAFFIC_TX;
-	u32 wifi_freq = BTC_FREQ_2_4G;
-	u32 wifi_link_status = 0x0;
-	bool bt_hs_on = false, under_ips = false, under_lps = false;
-	bool low_power = false, dc_mode = false;
-	u8 wifi_chnl = 0, wifi_hs_chnl = 0;
-	u8 ap_num = 0;
-
-	wifi_link_status = halbtc_get_wifi_link_status(btcoexist);
-	seq_printf(m, "\n %-35s = %d/ %d/ %d/ %d/ %d",
-		   "STA/vWifi/HS/p2pGo/p2pGc",
-		   ((wifi_link_status & WIFI_STA_CONNECTED) ? 1 : 0),
-		   ((wifi_link_status & WIFI_AP_CONNECTED) ? 1 : 0),
-		   ((wifi_link_status & WIFI_HS_CONNECTED) ? 1 : 0),
-		   ((wifi_link_status & WIFI_P2P_GO_CONNECTED) ? 1 : 0),
-		   ((wifi_link_status & WIFI_P2P_GC_CONNECTED) ? 1 : 0));
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_DOT11_CHNL, &wifi_chnl);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_HS_CHNL, &wifi_hs_chnl);
-	seq_printf(m, "\n %-35s = %d / %d(%d)",
-		   "Dot11 channel / HsChnl(High Speed)",
-		   wifi_chnl, wifi_hs_chnl, bt_hs_on);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi);
-	btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi);
-	seq_printf(m, "\n %-35s = %d/ %d",
-		   "Wifi rssi/ HS rssi",
-		   wifi_rssi - 100, bt_hs_rssi - 100);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam);
-	seq_printf(m, "\n %-35s = %d/ %d/ %d ",
-		   "Wifi link/ roam/ scan",
-		   link, roam, scan);
-
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g);
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy);
-	btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION,
-			   &wifi_traffic_dir);
-	btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM, &ap_num);
-	wifi_freq = (wifi_under_5g ? BTC_FREQ_5G : BTC_FREQ_2_4G);
-	btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_B_MODE,
-			   &wifi_under_b_mode);
-
-	seq_printf(m, "\n %-35s = %s / %s/ %s/ AP=%d ",
-		   "Wifi freq/ bw/ traffic",
-		   gl_btc_wifi_freq_string[wifi_freq],
-		   ((wifi_under_b_mode) ? "11b" :
-		    gl_btc_wifi_bw_string[wifi_bw]),
-		   ((!wifi_busy) ? "idle" : ((BTC_WIFI_TRAFFIC_TX ==
-					      wifi_traffic_dir) ? "uplink" :
-					     "downlink")),
-		   ap_num);
-
-	/* power status	 */
-	dc_mode = true;	/*TODO*/
-	under_ips = rtlpriv->psc.inactive_pwrstate == ERFOFF ? 1 : 0;
-	under_lps = rtlpriv->psc.dot11_psmode == EACTIVE ? 0 : 1;
-	low_power = false; /*TODO*/
-	seq_printf(m, "\n %-35s = %s%s%s%s",
-		   "Power Status",
-		   (dc_mode ? "DC mode" : "AC mode"),
-		   (under_ips ? ", IPS ON" : ""),
-		   (under_lps ? ", LPS ON" : ""),
-		   (low_power ? ", 32k" : ""));
-
-	seq_printf(m,
-		   "\n %-35s = %02x %02x %02x %02x %02x %02x (0x%x/0x%x)",
-		   "Power mode cmd(lps/rpwm)",
-		   btcoexist->pwr_mode_val[0], btcoexist->pwr_mode_val[1],
-		   btcoexist->pwr_mode_val[2], btcoexist->pwr_mode_val[3],
-		   btcoexist->pwr_mode_val[4], btcoexist->pwr_mode_val[5],
-		   btcoexist->bt_info.lps_val,
-		   btcoexist->bt_info.rpwm_val);
-}
-
-/************************************************************
- *		IO related function
- ************************************************************/
-static u8 halbtc_read_1byte(void *bt_context, u32 reg_addr)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	return	rtl_read_byte(rtlpriv, reg_addr);
-}
-
-static u16 halbtc_read_2byte(void *bt_context, u32 reg_addr)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	return	rtl_read_word(rtlpriv, reg_addr);
-}
-
-static u32 halbtc_read_4byte(void *bt_context, u32 reg_addr)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	return	rtl_read_dword(rtlpriv, reg_addr);
-}
-
-static void halbtc_write_1byte(void *bt_context, u32 reg_addr, u32 data)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	rtl_write_byte(rtlpriv, reg_addr, data);
-}
-
-static void halbtc_bitmask_write_1byte(void *bt_context, u32 reg_addr,
-				       u32 bit_mask, u8 data)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 original_value, bit_shift = 0;
-	u8 i;
-
-	if (bit_mask != MASKDWORD) {/*if not "double word" write*/
-		original_value = rtl_read_byte(rtlpriv, reg_addr);
-		for (i = 0; i <= 7; i++) {
-			if ((bit_mask >> i) & 0x1)
-				break;
-		}
-		bit_shift = i;
-		data = (original_value & (~bit_mask)) |
-			((data << bit_shift) & bit_mask);
-	}
-	rtl_write_byte(rtlpriv, reg_addr, data);
-}
-
-static void halbtc_write_2byte(void *bt_context, u32 reg_addr, u16 data)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	rtl_write_word(rtlpriv, reg_addr, data);
-}
-
-static void halbtc_write_4byte(void *bt_context, u32 reg_addr, u32 data)
-{
-	struct btc_coexist *btcoexist =
-		(struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	rtl_write_dword(rtlpriv, reg_addr, data);
-}
-
-static void halbtc_write_local_reg_1byte(void *btc_context, u32 reg_addr,
-					 u8 data)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	if (btcoexist->chip_interface == BTC_INTF_SDIO)
-		;
-	else if (btcoexist->chip_interface == BTC_INTF_PCI)
-		rtl_write_byte(rtlpriv, reg_addr, data);
-	else if (btcoexist->chip_interface == BTC_INTF_USB)
-		rtl_write_byte(rtlpriv, reg_addr, data);
-}
-
-static void halbtc_set_bbreg(void *bt_context, u32 reg_addr, u32 bit_mask,
-			     u32 data)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	rtl_set_bbreg(rtlpriv->mac80211.hw, reg_addr, bit_mask, data);
-}
-
-static u32 halbtc_get_bbreg(void *bt_context, u32 reg_addr, u32 bit_mask)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	return rtl_get_bbreg(rtlpriv->mac80211.hw, reg_addr, bit_mask);
-}
-
-static void halbtc_set_rfreg(void *bt_context, u8 rf_path, u32 reg_addr,
-			     u32 bit_mask, u32 data)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	rtl_set_rfreg(rtlpriv->mac80211.hw, rf_path, reg_addr, bit_mask, data);
-}
-
-static u32 halbtc_get_rfreg(void *bt_context, u8 rf_path, u32 reg_addr,
-			    u32 bit_mask)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	return rtl_get_rfreg(rtlpriv->mac80211.hw, rf_path, reg_addr, bit_mask);
-}
-
-static void halbtc_fill_h2c_cmd(void *bt_context, u8 element_id,
-				u32 cmd_len, u8 *cmd_buf)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	rtlpriv->cfg->ops->fill_h2c_cmd(rtlpriv->mac80211.hw, element_id,
-					cmd_len, cmd_buf);
-}
-
-static void halbtc_send_wifi_port_id_cmd(void *bt_context)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	u8 cmd_buf[1] = {0};	/* port id [2:0] = 0 */
-
-	rtlpriv->cfg->ops->fill_h2c_cmd(rtlpriv->mac80211.hw, 0x71, 1,
-					cmd_buf);
-}
-
-static void halbtc_set_default_port_id_cmd(void *bt_context)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct ieee80211_hw *hw = rtlpriv->mac80211.hw;
-
-	if (!rtlpriv->cfg->ops->set_default_port_id_cmd)
-		return;
-
-	rtlpriv->cfg->ops->set_default_port_id_cmd(hw);
-}
-
-static
-void halbtc_set_bt_reg(void *btc_context, u8 reg_type, u32 offset, u32 set_val)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	u8 cmd_buffer1[4] = {0};
-	u8 cmd_buffer2[4] = {0};
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	*((__le16 *)&cmd_buffer1[2]) = cpu_to_le16((u16)set_val);
-	if (!halbtc_send_bt_mp_operation(btcoexist, BT_OP_WRITE_REG_VALUE,
-					 cmd_buffer1, 4, 200))
-		return;
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	cmd_buffer2[2] = reg_type;
-	*((u8 *)&cmd_buffer2[3]) = (u8)offset;
-	halbtc_send_bt_mp_operation(btcoexist, BT_OP_WRITE_REG_ADDR,
-				    cmd_buffer2, 4, 200);
-}
-
-static void halbtc_display_dbg_msg(void *bt_context, u8 disp_type,
-				   struct seq_file *m)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
-
-	switch (disp_type) {
-	case BTC_DBG_DISP_COEX_STATISTICS:
-		halbtc_display_coex_statistics(btcoexist, m);
-		break;
-	case BTC_DBG_DISP_BT_LINK_INFO:
-		halbtc_display_bt_link_info(btcoexist, m);
-		break;
-	case BTC_DBG_DISP_WIFI_STATUS:
-		halbtc_display_wifi_status(btcoexist, m);
-		break;
-	default:
-		break;
-	}
-}
-
-static u32 halbtc_get_bt_reg(void *btc_context, u8 reg_type, u32 offset)
-{
-	return 0;
-}
-
-static
-u32 halbtc_get_phydm_version(void *btc_context)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-
-	if (rtlpriv->phydm.ops)
-		return rtlpriv->phydm.ops->phydm_get_version(rtlpriv);
-
-	return 0;
-}
-
-static
-void halbtc_phydm_modify_ra_pcr_threshold(void *btc_context,
-					  u8 ra_offset_direction,
-					  u8 ra_threshold_offset)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct rtl_phydm_ops *phydm_ops = rtlpriv->phydm.ops;
-
-	if (phydm_ops)
-		phydm_ops->phydm_modify_ra_pcr_threshold(rtlpriv,
-							 ra_offset_direction,
-							 ra_threshold_offset);
-}
-
-static
-u32 halbtc_phydm_query_phy_counter(void *btc_context, const char *info_type)
-{
-	/* info_type may be strings below:
-	 * PHYDM_INFO_FA_OFDM, PHYDM_INFO_FA_CCK, PHYDM_INFO_CCA_OFDM,
-	 * PHYDM_INFO_CCA_CCK
-	 * IQK_TOTAL, IQK_OK, IQK_FAIL
-	 */
-
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	struct rtl_priv *rtlpriv = btcoexist->adapter;
-	struct rtl_phydm_ops *phydm_ops = rtlpriv->phydm.ops;
-
-	if (phydm_ops)
-		return phydm_ops->phydm_query_counter(rtlpriv, info_type);
-
-	return 0;
-}
-
-static u8 halbtc_get_ant_det_val_from_bt(void *btc_context)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	u8 cmd_buffer[4] = {0};
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	halbtc_send_bt_mp_operation(btcoexist, BT_OP_GET_BT_ANT_DET_VAL,
-				    cmd_buffer, 4, 200);
-
-	/* need wait completion to return correct value */
-
-	return btcoexist->bt_info.bt_ant_det_val;
-}
-
-static u8 halbtc_get_ble_scan_type_from_bt(void *btc_context)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	u8 cmd_buffer[4] = {0};
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	halbtc_send_bt_mp_operation(btcoexist, BT_OP_GET_BT_BLE_SCAN_TYPE,
-				    cmd_buffer, 4, 200);
-
-	/* need wait completion to return correct value */
-
-	return btcoexist->bt_info.bt_ble_scan_type;
-}
-
-static u32 halbtc_get_ble_scan_para_from_bt(void *btc_context, u8 scan_type)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	u8 cmd_buffer[4] = {0};
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	halbtc_send_bt_mp_operation(btcoexist, BT_OP_GET_BT_BLE_SCAN_PARA,
-				    cmd_buffer, 4, 200);
-
-	/* need wait completion to return correct value */
-
-	return btcoexist->bt_info.bt_ble_scan_para;
-}
-
-static bool halbtc_get_bt_afh_map_from_bt(void *btc_context, u8 map_type,
-					  u8 *afh_map)
-{
-	struct btc_coexist *btcoexist = (struct btc_coexist *)btc_context;
-	u8 cmd_buffer[2] = {0};
-	bool ret;
-	u32 *afh_map_l = (u32 *)afh_map;
-	u32 *afh_map_m = (u32 *)(afh_map + 4);
-	u16 *afh_map_h = (u16 *)(afh_map + 8);
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	ret = halbtc_send_bt_mp_operation(btcoexist, BT_OP_GET_AFH_MAP_L,
-					  cmd_buffer, 2, 200);
-	if (!ret)
-		goto exit;
-
-	*afh_map_l = btcoexist->bt_info.afh_map_l;
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	ret = halbtc_send_bt_mp_operation(btcoexist, BT_OP_GET_AFH_MAP_M,
-					  cmd_buffer, 2, 200);
-	if (!ret)
-		goto exit;
-
-	*afh_map_m = btcoexist->bt_info.afh_map_m;
-
-	/* cmd_buffer[0] and [1] is filled by halbtc_send_bt_mp_operation() */
-	ret = halbtc_send_bt_mp_operation(btcoexist, BT_OP_GET_AFH_MAP_H,
-					  cmd_buffer, 2, 200);
-	if (!ret)
-		goto exit;
-
-	*afh_map_h = btcoexist->bt_info.afh_map_h;
-
-exit:
-	return ret;
-}
-
-/*****************************************************************
- *         Extern functions called by other module
- *****************************************************************/
-bool exhalbtc_initlize_variables(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return false;
-
-	halbtc_dbg_init();
-
-	btcoexist->btc_read_1byte = halbtc_read_1byte;
-	btcoexist->btc_write_1byte = halbtc_write_1byte;
-	btcoexist->btc_write_1byte_bitmask = halbtc_bitmask_write_1byte;
-	btcoexist->btc_read_2byte = halbtc_read_2byte;
-	btcoexist->btc_write_2byte = halbtc_write_2byte;
-	btcoexist->btc_read_4byte = halbtc_read_4byte;
-	btcoexist->btc_write_4byte = halbtc_write_4byte;
-	btcoexist->btc_write_local_reg_1byte = halbtc_write_local_reg_1byte;
-
-	btcoexist->btc_set_bb_reg = halbtc_set_bbreg;
-	btcoexist->btc_get_bb_reg = halbtc_get_bbreg;
-
-	btcoexist->btc_set_rf_reg = halbtc_set_rfreg;
-	btcoexist->btc_get_rf_reg = halbtc_get_rfreg;
-
-	btcoexist->btc_fill_h2c = halbtc_fill_h2c_cmd;
-	btcoexist->btc_disp_dbg_msg = halbtc_display_dbg_msg;
-
-	btcoexist->btc_get = halbtc_get;
-	btcoexist->btc_set = halbtc_set;
-	btcoexist->btc_set_bt_reg = halbtc_set_bt_reg;
-	btcoexist->btc_get_bt_reg = halbtc_get_bt_reg;
-
-	btcoexist->bt_info.bt_ctrl_buf_size = false;
-	btcoexist->bt_info.agg_buf_size = 5;
-
-	btcoexist->bt_info.increase_scan_dev_num = false;
-
-	btcoexist->btc_get_bt_coex_supported_feature =
-					halbtc_get_bt_coex_supported_feature;
-	btcoexist->btc_get_bt_coex_supported_version =
-					halbtc_get_bt_coex_supported_version;
-	btcoexist->btc_get_bt_phydm_version = halbtc_get_phydm_version;
-	btcoexist->btc_phydm_modify_ra_pcr_threshold =
-					halbtc_phydm_modify_ra_pcr_threshold;
-	btcoexist->btc_phydm_query_phy_counter = halbtc_phydm_query_phy_counter;
-	btcoexist->btc_get_ant_det_val_from_bt = halbtc_get_ant_det_val_from_bt;
-	btcoexist->btc_get_ble_scan_type_from_bt =
-					halbtc_get_ble_scan_type_from_bt;
-	btcoexist->btc_get_ble_scan_para_from_bt =
-					halbtc_get_ble_scan_para_from_bt;
-	btcoexist->btc_get_bt_afh_map_from_bt =
-					halbtc_get_bt_afh_map_from_bt;
-
-	init_completion(&btcoexist->bt_mp_comp);
-
-	return true;
-}
-
-bool exhalbtc_initlize_variables_wifi_only(struct rtl_priv *rtlpriv)
-{
-	struct wifi_only_cfg *wifionly_cfg = rtl_btc_wifi_only(rtlpriv);
-	struct wifi_only_haldata *wifionly_haldata;
-
-	if (!wifionly_cfg)
-		return false;
-
-	wifionly_cfg->adapter = rtlpriv;
-
-	switch (rtlpriv->rtlhal.interface) {
-	case INTF_PCI:
-		wifionly_cfg->chip_interface = WIFIONLY_INTF_PCI;
-		break;
-	case INTF_USB:
-		wifionly_cfg->chip_interface = WIFIONLY_INTF_USB;
-		break;
-	default:
-		wifionly_cfg->chip_interface = WIFIONLY_INTF_UNKNOWN;
-		break;
-	}
-
-	wifionly_haldata = &wifionly_cfg->haldata_info;
-
-	wifionly_haldata->customer_id = CUSTOMER_NORMAL;
-	wifionly_haldata->efuse_pg_antnum = rtl_get_hwpg_ant_num(rtlpriv);
-	wifionly_haldata->efuse_pg_antpath =
-					rtl_get_hwpg_single_ant_path(rtlpriv);
-	wifionly_haldata->rfe_type = rtl_get_hwpg_rfe_type(rtlpriv);
-	wifionly_haldata->ant_div_cfg = 0;
-
-	return true;
-}
-
-bool exhalbtc_bind_bt_coex_withadapter(void *adapter)
-{
-	struct rtl_priv *rtlpriv = adapter;
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-	u8 ant_num = 2, chip_type, single_ant_path = 0;
-
-	if (!btcoexist)
-		return false;
-
-	if (btcoexist->binded)
-		return false;
-
-	switch (rtlpriv->rtlhal.interface) {
-	case INTF_PCI:
-		btcoexist->chip_interface = BTC_INTF_PCI;
-		break;
-	case INTF_USB:
-		btcoexist->chip_interface = BTC_INTF_USB;
-		break;
-	default:
-		btcoexist->chip_interface = BTC_INTF_UNKNOWN;
-		break;
-	}
-
-	btcoexist->binded = true;
-	btcoexist->statistics.cnt_bind++;
-
-	btcoexist->adapter = adapter;
-
-	btcoexist->stack_info.profile_notified = false;
-
-	btcoexist->bt_info.bt_ctrl_agg_buf_size = false;
-	btcoexist->bt_info.agg_buf_size = 5;
-
-	btcoexist->bt_info.increase_scan_dev_num = false;
-	btcoexist->bt_info.miracast_plus_bt = false;
-
-	chip_type = rtl_get_hwpg_bt_type(rtlpriv);
-	exhalbtc_set_chip_type(btcoexist, chip_type);
-	ant_num = rtl_get_hwpg_ant_num(rtlpriv);
-	exhalbtc_set_ant_num(rtlpriv, BT_COEX_ANT_TYPE_PG, ant_num);
-
-	/* set default antenna position to main  port */
-	btcoexist->board_info.btdm_ant_pos = BTC_ANTENNA_AT_MAIN_PORT;
-
-	single_ant_path = rtl_get_hwpg_single_ant_path(rtlpriv);
-	exhalbtc_set_single_ant_path(btcoexist, single_ant_path);
-
-	if (rtl_get_hwpg_package_type(rtlpriv) == 0)
-		btcoexist->board_info.tfbga_package = false;
-	else if (rtl_get_hwpg_package_type(rtlpriv) == 1)
-		btcoexist->board_info.tfbga_package = false;
-	else
-		btcoexist->board_info.tfbga_package = true;
-
-	if (btcoexist->board_info.tfbga_package)
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Package Type = TFBGA\n");
-	else
-		RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-			 "[BTCoex], Package Type = Non-TFBGA\n");
-
-	btcoexist->board_info.rfe_type = rtl_get_hwpg_rfe_type(rtlpriv);
-	btcoexist->board_info.ant_div_cfg = 0;
-
-	return true;
-}
-
-void exhalbtc_power_on_setting(struct btc_coexist *btcoexist)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	btcoexist->statistics.cnt_power_on++;
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_power_on_setting(btcoexist);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_power_on_setting(btcoexist);
-	}
-}
-
-void exhalbtc_pre_load_firmware(struct btc_coexist *btcoexist)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	btcoexist->statistics.cnt_pre_load_firmware++;
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_pre_load_firmware(btcoexist);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_pre_load_firmware(btcoexist);
-	}
-}
-
-void exhalbtc_init_hw_config(struct btc_coexist *btcoexist, bool wifi_only)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	btcoexist->statistics.cnt_init_hw_config++;
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_init_hw_config(btcoexist, wifi_only);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_init_hw_config(btcoexist, wifi_only);
-
-		halbtc_set_default_port_id_cmd(btcoexist);
-		halbtc_send_wifi_port_id_cmd(btcoexist);
-	}
-}
-
-void exhalbtc_init_hw_config_wifi_only(struct wifi_only_cfg *wifionly_cfg)
-{
-	if (IS_HARDWARE_TYPE_8822B(wifionly_cfg->adapter))
-		ex_hal8822b_wifi_only_hw_config(wifionly_cfg);
-}
-
-void exhalbtc_init_coex_dm(struct btc_coexist *btcoexist)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	btcoexist->statistics.cnt_init_coex_dm++;
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_init_coex_dm(btcoexist);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_init_coex_dm(btcoexist);
-	}
-
-	btcoexist->initilized = true;
-}
-
-void exhalbtc_ips_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	u8 ips_type;
-
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_ips_notify++;
-	if (btcoexist->manual_control)
-		return;
-
-	if (type == ERFOFF)
-		ips_type = BTC_IPS_ENTER;
-	else
-		ips_type = BTC_IPS_LEAVE;
-
-	halbtc_leave_low_power(btcoexist);
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_ips_notify(btcoexist, ips_type);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_ips_notify(btcoexist, ips_type);
-	}
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_lps_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	u8 lps_type;
-
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_lps_notify++;
-	if (btcoexist->manual_control)
-		return;
-
-	if (type == EACTIVE)
-		lps_type = BTC_LPS_DISABLE;
-	else
-		lps_type = BTC_LPS_ENABLE;
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_lps_notify(btcoexist, lps_type);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_lps_notify(btcoexist, lps_type);
-	}
-}
-
-void exhalbtc_scan_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	u8 scan_type;
-
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_scan_notify++;
-	if (btcoexist->manual_control)
-		return;
-
-	if (type)
-		scan_type = BTC_SCAN_START;
-	else
-		scan_type = BTC_SCAN_FINISH;
-
-	halbtc_leave_low_power(btcoexist);
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_scan_notify(btcoexist, scan_type);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_scan_notify(btcoexist, scan_type);
-	}
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_scan_notify_wifi_only(struct wifi_only_cfg *wifionly_cfg,
-				    u8 is_5g)
-{
-	if (IS_HARDWARE_TYPE_8822B(wifionly_cfg->adapter))
-		ex_hal8822b_wifi_only_scannotify(wifionly_cfg, is_5g);
-}
-
-void exhalbtc_connect_notify(struct btc_coexist *btcoexist, u8 action)
-{
-	u8 asso_type;
-
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_connect_notify++;
-	if (btcoexist->manual_control)
-		return;
-
-	if (action)
-		asso_type = BTC_ASSOCIATE_START;
-	else
-		asso_type = BTC_ASSOCIATE_FINISH;
-
-	halbtc_leave_low_power(btcoexist);
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_connect_notify(btcoexist, asso_type);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_connect_notify(btcoexist, asso_type);
-	}
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_mediastatus_notify(struct btc_coexist *btcoexist,
-				 enum rt_media_status media_status)
-{
-	u8 status;
-
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_media_status_notify++;
-	if (btcoexist->manual_control)
-		return;
-
-	if (media_status == RT_MEDIA_CONNECT)
-		status = BTC_MEDIA_CONNECT;
-	else
-		status = BTC_MEDIA_DISCONNECT;
-
-	halbtc_leave_low_power(btcoexist);
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_media_status_notify(btcoexist, status);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_media_status_notify(btcoexist, status);
-	}
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_special_packet_notify(struct btc_coexist *btcoexist, u8 pkt_type)
-{
-	u8 packet_type;
-
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_special_packet_notify++;
-	if (btcoexist->manual_control)
-		return;
-
-	if (pkt_type == PACKET_DHCP) {
-		packet_type = BTC_PACKET_DHCP;
-	} else if (pkt_type == PACKET_EAPOL) {
-		packet_type = BTC_PACKET_EAPOL;
-	} else if (pkt_type == PACKET_ARP) {
-		packet_type = BTC_PACKET_ARP;
-	} else {
-		packet_type = BTC_PACKET_UNKNOWN;
-		return;
-	}
-
-	halbtc_leave_low_power(btcoexist);
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_specific_packet_notify(btcoexist,
-							       packet_type);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_specific_packet_notify(btcoexist,
-							       packet_type);
-	}
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_bt_info_notify(struct btc_coexist *btcoexist,
-			     u8 *tmp_buf, u8 length)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_bt_info_notify++;
-
-	halbtc_leave_low_power(btcoexist);
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_bt_info_notify(btcoexist, tmp_buf,
-						       length);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_bt_info_notify(btcoexist, tmp_buf,
-						       length);
-	}
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_rf_status_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_rf_status_notify(btcoexist, type);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_rf_status_notify(btcoexist, type);
-	}
-}
-
-void exhalbtc_stack_operation_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_stack_operation_notify++;
-}
-
-void exhalbtc_halt_notify(struct btc_coexist *btcoexist)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_halt_notify(btcoexist);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_halt_notify(btcoexist);
-	}
-
-	btcoexist->binded = false;
-}
-
-void exhalbtc_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	/* currently only 1ant we have to do the notification,
-	 * once pnp is notified to sleep state, we have to leave LPS that
-	 * we can sleep normally.
-	 */
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_pnp_notify(btcoexist, pnp_state);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_pnp_notify(btcoexist, pnp_state);
-	}
-}
-
-void exhalbtc_coex_dm_switch(struct btc_coexist *btcoexist)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_coex_dm_switch++;
-
-	halbtc_leave_low_power(btcoexist);
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_periodical(struct btc_coexist *btcoexist)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_periodical++;
-
-	halbtc_leave_low_power(btcoexist);
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_periodical(btcoexist);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_periodical(btcoexist);
-	}
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_dbg_control(struct btc_coexist *btcoexist,
-			  u8 code, u8 len, u8 *data)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-	btcoexist->statistics.cnt_dbg_ctrl++;
-
-	halbtc_leave_low_power(btcoexist);
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_antenna_detection(struct btc_coexist *btcoexist, u32 cent_freq,
-				u32 offset, u32 span, u32 seconds)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-}
-
-void exhalbtc_stack_update_profile_info(void)
-{
-}
-
-void exhalbtc_update_min_bt_rssi(struct btc_coexist *btcoexist, s8 bt_rssi)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	btcoexist->stack_info.min_bt_rssi = bt_rssi;
-}
-
-void exhalbtc_set_hci_version(struct btc_coexist *btcoexist, u16 hci_version)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	btcoexist->stack_info.hci_version = hci_version;
-}
-
-void exhalbtc_set_bt_patch_version(struct btc_coexist *btcoexist,
-				   u16 bt_hci_version, u16 bt_patch_version)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	btcoexist->bt_info.bt_real_fw_ver = bt_patch_version;
-	btcoexist->bt_info.bt_hci_ver = bt_hci_version;
-}
-
-void exhalbtc_set_chip_type(struct btc_coexist *btcoexist, u8 chip_type)
-{
-	switch (chip_type) {
-	default:
-	case BT_2WIRE:
-	case BT_ISSC_3WIRE:
-	case BT_ACCEL:
-	case BT_RTL8756:
-		btcoexist->board_info.bt_chip_type = BTC_CHIP_UNDEF;
-		break;
-	case BT_CSR_BC4:
-		btcoexist->board_info.bt_chip_type = BTC_CHIP_CSR_BC4;
-		break;
-	case BT_CSR_BC8:
-		btcoexist->board_info.bt_chip_type = BTC_CHIP_CSR_BC8;
-		break;
-	case BT_RTL8723A:
-		btcoexist->board_info.bt_chip_type = BTC_CHIP_RTL8723A;
-		break;
-	case BT_RTL8821A:
-		btcoexist->board_info.bt_chip_type = BTC_CHIP_RTL8821;
-		break;
-	case BT_RTL8723B:
-		btcoexist->board_info.bt_chip_type = BTC_CHIP_RTL8723B;
-		break;
-	}
-}
-
-void exhalbtc_set_ant_num(struct rtl_priv *rtlpriv, u8 type, u8 ant_num)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	if (type == BT_COEX_ANT_TYPE_PG) {
-		btcoexist->board_info.pg_ant_num = ant_num;
-		btcoexist->board_info.btdm_ant_num = ant_num;
-	} else if (type == BT_COEX_ANT_TYPE_ANTDIV) {
-		btcoexist->board_info.btdm_ant_num = ant_num;
-	} else if (type == BT_COEX_ANT_TYPE_DETECTED) {
-		btcoexist->board_info.btdm_ant_num = ant_num;
-		if (rtlpriv->cfg->mod_params->ant_sel == 1)
-			btcoexist->board_info.btdm_ant_pos =
-				BTC_ANTENNA_AT_AUX_PORT;
-		else
-			btcoexist->board_info.btdm_ant_pos =
-				BTC_ANTENNA_AT_MAIN_PORT;
-	}
-}
-
-/* Currently used by 8723b only, S0 or S1 */
-void exhalbtc_set_single_ant_path(struct btc_coexist *btcoexist,
-				  u8 single_ant_path)
-{
-	btcoexist->board_info.single_ant_path = single_ant_path;
-}
-
-void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist,
-				   struct seq_file *m)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	halbtc_leave_low_power(btcoexist);
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_display_coex_info(btcoexist, m);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_display_coex_info(btcoexist, m);
-	}
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_switch_band_notify(struct btc_coexist *btcoexist, u8 type)
-{
-	if (!halbtc_is_bt_coexist_available(btcoexist))
-		return;
-
-	if (btcoexist->manual_control)
-		return;
-
-	halbtc_leave_low_power(btcoexist);
-
-	if (IS_HARDWARE_TYPE_8822B(btcoexist->adapter)) {
-		if (btcoexist->board_info.btdm_ant_num == 1)
-			ex_btc8822b1ant_switchband_notify(btcoexist, type);
-		else if (btcoexist->board_info.btdm_ant_num == 2)
-			ex_btc8822b2ant_switchband_notify(btcoexist, type);
-	}
-
-	halbtc_normal_low_power(btcoexist);
-}
-
-void exhalbtc_switch_band_notify_wifi_only(struct wifi_only_cfg *wifionly_cfg,
-					   u8 is_5g)
-{
-	if (IS_HARDWARE_TYPE_8822B(wifionly_cfg->adapter))
-		ex_hal8822b_wifi_only_switchbandnotify(wifionly_cfg, is_5g);
-}
diff --git a/drivers/staging/rtlwifi/btcoexist/halbtcoutsrc.h b/drivers/staging/rtlwifi/btcoexist/halbtcoutsrc.h
deleted file mode 100644
index fd65de2..0000000
--- a/drivers/staging/rtlwifi/btcoexist/halbtcoutsrc.h
+++ /dev/null
@@ -1,791 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef	__HALBTC_OUT_SRC_H__
-#define __HALBTC_OUT_SRC_H__
-
-#include	"../wifi.h"
-
-#define		BTC_COEX_OFFLOAD			0
-
-#define		NORMAL_EXEC				false
-#define		FORCE_EXEC				true
-
-#define		BTC_RF_OFF				0x0
-#define		BTC_RF_ON				0x1
-
-#define		BTC_RF_A				RF90_PATH_A
-#define		BTC_RF_B				RF90_PATH_B
-#define		BTC_RF_C				RF90_PATH_C
-#define		BTC_RF_D				RF90_PATH_D
-
-#define		BTC_SMSP				SINGLEMAC_SINGLEPHY
-#define		BTC_DMDP				DUALMAC_DUALPHY
-#define		BTC_DMSP				DUALMAC_SINGLEPHY
-#define		BTC_MP_UNKNOWN				0xff
-
-#define		IN
-#define		OUT
-
-#define		BT_TMP_BUF_SIZE				100
-
-#define		BT_COEX_ANT_TYPE_PG			0
-#define		BT_COEX_ANT_TYPE_ANTDIV			1
-#define		BT_COEX_ANT_TYPE_DETECTED		2
-
-#define		BTC_MIMO_PS_STATIC			0
-#define		BTC_MIMO_PS_DYNAMIC			1
-
-#define		BTC_RATE_DISABLE			0
-#define		BTC_RATE_ENABLE				1
-
-/* single Antenna definition */
-#define		BTC_ANT_PATH_WIFI			0
-#define		BTC_ANT_PATH_BT				1
-#define		BTC_ANT_PATH_PTA			2
-#define		BTC_ANT_PATH_WIFI5G			3
-#define		BTC_ANT_PATH_AUTO			4
-/* dual Antenna definition */
-#define		BTC_ANT_WIFI_AT_MAIN			0
-#define		BTC_ANT_WIFI_AT_AUX			1
-#define		BTC_ANT_WIFI_AT_DIVERSITY	2
-/* coupler Antenna definition */
-#define		BTC_ANT_WIFI_AT_CPL_MAIN		0
-#define		BTC_ANT_WIFI_AT_CPL_AUX			1
-
-enum btc_bt_reg_type {
-	BTC_BT_REG_RF		= 0,
-	BTC_BT_REG_MODEM	= 1,
-	BTC_BT_REG_BLUEWIZE	= 2,
-	BTC_BT_REG_VENDOR	= 3,
-	BTC_BT_REG_LE		= 4,
-	BTC_BT_REG_MAX
-};
-
-enum btc_chip_interface {
-	BTC_INTF_UNKNOWN	= 0,
-	BTC_INTF_PCI		= 1,
-	BTC_INTF_USB		= 2,
-	BTC_INTF_SDIO		= 3,
-	BTC_INTF_GSPI		= 4,
-	BTC_INTF_MAX
-};
-
-enum btc_chip_type {
-	BTC_CHIP_UNDEF		= 0,
-	BTC_CHIP_CSR_BC4	= 1,
-	BTC_CHIP_CSR_BC8	= 2,
-	BTC_CHIP_RTL8723A	= 3,
-	BTC_CHIP_RTL8821	= 4,
-	BTC_CHIP_RTL8723B	= 5,
-	BTC_CHIP_MAX
-};
-
-enum btc_msg_type {
-	BTC_MSG_INTERFACE	= 0x0,
-	BTC_MSG_ALGORITHM	= 0x1,
-	BTC_MSG_MAX
-};
-
-/* following is for BTC_MSG_INTERFACE */
-#define		INTF_INIT				BIT0
-#define		INTF_NOTIFY				BIT2
-
-/* following is for BTC_ALGORITHM */
-#define		ALGO_BT_RSSI_STATE			BIT0
-#define		ALGO_WIFI_RSSI_STATE			BIT1
-#define		ALGO_BT_MONITOR				BIT2
-#define		ALGO_TRACE				BIT3
-#define		ALGO_TRACE_FW				BIT4
-#define		ALGO_TRACE_FW_DETAIL			BIT5
-#define		ALGO_TRACE_FW_EXEC			BIT6
-#define		ALGO_TRACE_SW				BIT7
-#define		ALGO_TRACE_SW_DETAIL			BIT8
-#define		ALGO_TRACE_SW_EXEC			BIT9
-
-/* following is for wifi link status */
-#define		WIFI_STA_CONNECTED			BIT0
-#define		WIFI_AP_CONNECTED			BIT1
-#define		WIFI_HS_CONNECTED			BIT2
-#define		WIFI_P2P_GO_CONNECTED			BIT3
-#define		WIFI_P2P_GC_CONNECTED			BIT4
-
-#define	BTC_RSSI_HIGH(_rssi_)	\
-	((_rssi_ == BTC_RSSI_STATE_HIGH ||	\
-	  _rssi_ == BTC_RSSI_STATE_STAY_HIGH) ? true : false)
-#define	BTC_RSSI_MEDIUM(_rssi_)	\
-	((_rssi_ == BTC_RSSI_STATE_MEDIUM ||	\
-	  _rssi_ == BTC_RSSI_STATE_STAY_MEDIUM) ? true : false)
-#define	BTC_RSSI_LOW(_rssi_)	\
-	((_rssi_ == BTC_RSSI_STATE_LOW ||	\
-	  _rssi_ == BTC_RSSI_STATE_STAY_LOW) ? true : false)
-
-enum btc_power_save_type {
-	BTC_PS_WIFI_NATIVE = 0,
-	BTC_PS_LPS_ON = 1,
-	BTC_PS_LPS_OFF = 2,
-	BTC_PS_LPS_MAX
-};
-
-struct btc_board_info {
-	/* The following is some board information */
-	u8 bt_chip_type;
-	u8 pg_ant_num;	/* pg ant number */
-	u8 btdm_ant_num;	/* ant number for btdm */
-	u8 btdm_ant_num_by_ant_det;
-	u8 btdm_ant_pos;
-	u8 single_ant_path; /* current used for 8723b only, 1=>s0,  0=>s1 */
-	bool tfbga_package;
-	bool btdm_ant_det_finish;
-
-	u8 rfe_type;
-	u8 ant_div_cfg;
-};
-
-enum btc_dbg_opcode {
-	BTC_DBG_SET_COEX_NORMAL = 0x0,
-	BTC_DBG_SET_COEX_WIFI_ONLY = 0x1,
-	BTC_DBG_SET_COEX_BT_ONLY = 0x2,
-	BTC_DBG_MAX
-};
-
-enum btc_rssi_state {
-	BTC_RSSI_STATE_HIGH = 0x0,
-	BTC_RSSI_STATE_MEDIUM = 0x1,
-	BTC_RSSI_STATE_LOW = 0x2,
-	BTC_RSSI_STATE_STAY_HIGH = 0x3,
-	BTC_RSSI_STATE_STAY_MEDIUM = 0x4,
-	BTC_RSSI_STATE_STAY_LOW = 0x5,
-	BTC_RSSI_MAX
-};
-
-enum btc_wifi_role {
-	BTC_ROLE_STATION = 0x0,
-	BTC_ROLE_AP = 0x1,
-	BTC_ROLE_IBSS = 0x2,
-	BTC_ROLE_HS_MODE = 0x3,
-	BTC_ROLE_MAX
-};
-
-enum btc_wireless_freq {
-	BTC_FREQ_2_4G = 0x0,
-	BTC_FREQ_5G = 0x1,
-	BTC_FREQ_MAX
-};
-
-enum btc_wifi_bw_mode {
-	BTC_WIFI_BW_LEGACY = 0x0,
-	BTC_WIFI_BW_HT20 = 0x1,
-	BTC_WIFI_BW_HT40 = 0x2,
-	BTC_WIFI_BW_HT80 = 0x3,
-	BTC_WIFI_BW_MAX
-};
-
-enum btc_wifi_traffic_dir {
-	BTC_WIFI_TRAFFIC_TX = 0x0,
-	BTC_WIFI_TRAFFIC_RX = 0x1,
-	BTC_WIFI_TRAFFIC_MAX
-};
-
-enum btc_wifi_pnp {
-	BTC_WIFI_PNP_WAKE_UP = 0x0,
-	BTC_WIFI_PNP_SLEEP = 0x1,
-	BTC_WIFI_PNP_SLEEP_KEEP_ANT = 0x2,
-	BTC_WIFI_PNP_MAX
-};
-
-enum btc_iot_peer {
-	BTC_IOT_PEER_UNKNOWN = 0,
-	BTC_IOT_PEER_REALTEK = 1,
-	BTC_IOT_PEER_REALTEK_92SE = 2,
-	BTC_IOT_PEER_BROADCOM = 3,
-	BTC_IOT_PEER_RALINK = 4,
-	BTC_IOT_PEER_ATHEROS = 5,
-	BTC_IOT_PEER_CISCO = 6,
-	BTC_IOT_PEER_MERU = 7,
-	BTC_IOT_PEER_MARVELL = 8,
-	BTC_IOT_PEER_REALTEK_SOFTAP = 9,
-	BTC_IOT_PEER_SELF_SOFTAP = 10, /* Self is SoftAP */
-	BTC_IOT_PEER_AIRGO = 11,
-	BTC_IOT_PEER_REALTEK_JAGUAR_BCUTAP = 12,
-	BTC_IOT_PEER_REALTEK_JAGUAR_CCUTAP = 13,
-	BTC_IOT_PEER_MAX,
-};
-
-/* for 8723b-d cut large current issue */
-enum bt_wifi_coex_state {
-	BTC_WIFI_STAT_INIT,
-	BTC_WIFI_STAT_IQK,
-	BTC_WIFI_STAT_NORMAL_OFF,
-	BTC_WIFI_STAT_MP_OFF,
-	BTC_WIFI_STAT_NORMAL,
-	BTC_WIFI_STAT_ANT_DIV,
-	BTC_WIFI_STAT_MAX
-};
-
-enum bt_ant_type {
-	BTC_ANT_TYPE_0,
-	BTC_ANT_TYPE_1,
-	BTC_ANT_TYPE_2,
-	BTC_ANT_TYPE_3,
-	BTC_ANT_TYPE_4,
-	BTC_ANT_TYPE_MAX
-};
-
-enum btc_get_type {
-	/* type bool */
-	BTC_GET_BL_HS_OPERATION,
-	BTC_GET_BL_HS_CONNECTING,
-	BTC_GET_BL_WIFI_CONNECTED,
-	BTC_GET_BL_WIFI_BUSY,
-	BTC_GET_BL_WIFI_SCAN,
-	BTC_GET_BL_WIFI_LINK,
-	BTC_GET_BL_WIFI_DHCP,
-	BTC_GET_BL_WIFI_SOFTAP_IDLE,
-	BTC_GET_BL_WIFI_SOFTAP_LINKING,
-	BTC_GET_BL_WIFI_IN_EARLY_SUSPEND,
-	BTC_GET_BL_WIFI_ROAM,
-	BTC_GET_BL_WIFI_4_WAY_PROGRESS,
-	BTC_GET_BL_WIFI_UNDER_5G,
-	BTC_GET_BL_WIFI_AP_MODE_ENABLE,
-	BTC_GET_BL_WIFI_ENABLE_ENCRYPTION,
-	BTC_GET_BL_WIFI_UNDER_B_MODE,
-	BTC_GET_BL_EXT_SWITCH,
-	BTC_GET_BL_WIFI_IS_IN_MP_MODE,
-	BTC_GET_BL_IS_ASUS_8723B,
-	BTC_GET_BL_FW_READY,
-	BTC_GET_BL_RF4CE_CONNECTED,
-
-	/* type s4Byte */
-	BTC_GET_S4_WIFI_RSSI,
-	BTC_GET_S4_HS_RSSI,
-
-	/* type u32 */
-	BTC_GET_U4_WIFI_BW,
-	BTC_GET_U4_WIFI_TRAFFIC_DIRECTION,
-	BTC_GET_U4_WIFI_FW_VER,
-	BTC_GET_U4_WIFI_LINK_STATUS,
-	BTC_GET_U4_BT_PATCH_VER,
-	BTC_GET_U4_VENDOR,
-	BTC_GET_U4_SUPPORTED_VERSION,
-	BTC_GET_U4_SUPPORTED_FEATURE,
-	BTC_GET_U4_WIFI_IQK_TOTAL,
-	BTC_GET_U4_WIFI_IQK_OK,
-	BTC_GET_U4_WIFI_IQK_FAIL,
-
-	/* type u1Byte */
-	BTC_GET_U1_WIFI_DOT11_CHNL,
-	BTC_GET_U1_WIFI_CENTRAL_CHNL,
-	BTC_GET_U1_WIFI_HS_CHNL,
-	BTC_GET_U1_MAC_PHY_MODE,
-	BTC_GET_U1_AP_NUM,
-	BTC_GET_U1_ANT_TYPE,
-	BTC_GET_U1_IOT_PEER,
-
-	/* for 1Ant */
-	BTC_GET_U1_LPS_MODE,
-	BTC_GET_BL_BT_SCO_BUSY,
-
-	/* for test mode */
-	BTC_GET_DRIVER_TEST_CFG,
-	BTC_GET_MAX
-};
-
-enum btc_vendor {
-	BTC_VENDOR_LENOVO,
-	BTC_VENDOR_ASUS,
-	BTC_VENDOR_OTHER
-};
-
-enum btc_set_type {
-	/* type bool */
-	BTC_SET_BL_BT_DISABLE,
-	BTC_SET_BL_BT_ENABLE_DISABLE_CHANGE,
-	BTC_SET_BL_BT_TRAFFIC_BUSY,
-	BTC_SET_BL_BT_LIMITED_DIG,
-	BTC_SET_BL_FORCE_TO_ROAM,
-	BTC_SET_BL_TO_REJ_AP_AGG_PKT,
-	BTC_SET_BL_BT_CTRL_AGG_SIZE,
-	BTC_SET_BL_INC_SCAN_DEV_NUM,
-	BTC_SET_BL_BT_TX_RX_MASK,
-	BTC_SET_BL_MIRACAST_PLUS_BT,
-
-	/* type u1Byte */
-	BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON,
-	BTC_SET_UI_SCAN_SIG_COMPENSATION,
-	BTC_SET_U1_AGG_BUF_SIZE,
-
-	/* type trigger some action */
-	BTC_SET_ACT_GET_BT_RSSI,
-	BTC_SET_ACT_AGGREGATE_CTRL,
-	BTC_SET_ACT_ANTPOSREGRISTRY_CTRL,
-
-	/********* for 1Ant **********/
-	/* type bool */
-	BTC_SET_BL_BT_SCO_BUSY,
-	/* type u1Byte */
-	BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE,
-	BTC_SET_U1_LPS_VAL,
-	BTC_SET_U1_RPWM_VAL,
-	BTC_SET_U1_1ANT_LPS,
-	BTC_SET_U1_1ANT_RPWM,
-	/* type trigger some action */
-	BTC_SET_ACT_LEAVE_LPS,
-	BTC_SET_ACT_ENTER_LPS,
-	BTC_SET_ACT_NORMAL_LPS,
-	BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT,
-	BTC_SET_ACT_DISABLE_LOW_POWER,
-	BTC_SET_ACT_UPDATE_RAMASK,
-	BTC_SET_ACT_SEND_MIMO_PS,
-	/* BT Coex related */
-	BTC_SET_ACT_CTRL_BT_INFO,
-	BTC_SET_ACT_CTRL_BT_COEX,
-	BTC_SET_ACT_CTRL_8723B_ANT,
-	/***************************/
-	BTC_SET_MAX
-};
-
-enum btc_dbg_disp_type {
-	BTC_DBG_DISP_COEX_STATISTICS = 0x0,
-	BTC_DBG_DISP_BT_LINK_INFO = 0x1,
-	BTC_DBG_DISP_BT_FW_VER = 0x2,
-	BTC_DBG_DISP_FW_PWR_MODE_CMD = 0x3,
-	BTC_DBG_DISP_WIFI_STATUS = 0x04,
-	BTC_DBG_DISP_MAX
-};
-
-enum btc_notify_type_ips {
-	BTC_IPS_LEAVE = 0x0,
-	BTC_IPS_ENTER = 0x1,
-	BTC_IPS_MAX
-};
-
-enum btc_notify_type_lps {
-	BTC_LPS_DISABLE = 0x0,
-	BTC_LPS_ENABLE = 0x1,
-	BTC_LPS_MAX
-};
-
-enum btc_notify_type_scan {
-	BTC_SCAN_FINISH = 0x0,
-	BTC_SCAN_START = 0x1,
-	BTC_SCAN_START_2G = 0x2,
-	BTC_SCAN_MAX
-};
-
-enum btc_notify_type_switchband {
-	BTC_NOT_SWITCH = 0x0,
-	BTC_SWITCH_TO_24G = 0x1,
-	BTC_SWITCH_TO_5G = 0x2,
-	BTC_SWITCH_TO_24G_NOFORSCAN = 0x3,
-	BTC_SWITCH_MAX
-};
-
-enum btc_notify_type_associate {
-	BTC_ASSOCIATE_FINISH = 0x0,
-	BTC_ASSOCIATE_START = 0x1,
-	BTC_ASSOCIATE_5G_FINISH = 0x2,
-	BTC_ASSOCIATE_5G_START = 0x3,
-	BTC_ASSOCIATE_MAX
-};
-
-enum btc_notify_type_media_status {
-	BTC_MEDIA_DISCONNECT = 0x0,
-	BTC_MEDIA_CONNECT = 0x1,
-	BTC_MEDIA_MAX
-};
-
-enum btc_notify_type_special_packet {
-	BTC_PACKET_UNKNOWN = 0x0,
-	BTC_PACKET_DHCP = 0x1,
-	BTC_PACKET_ARP = 0x2,
-	BTC_PACKET_EAPOL = 0x3,
-	BTC_PACKET_MAX
-};
-
-enum hci_ext_bt_operation {
-	HCI_BT_OP_NONE = 0x0,
-	HCI_BT_OP_INQUIRY_START = 0x1,
-	HCI_BT_OP_INQUIRY_FINISH = 0x2,
-	HCI_BT_OP_PAGING_START = 0x3,
-	HCI_BT_OP_PAGING_SUCCESS = 0x4,
-	HCI_BT_OP_PAGING_UNSUCCESS = 0x5,
-	HCI_BT_OP_PAIRING_START = 0x6,
-	HCI_BT_OP_PAIRING_FINISH = 0x7,
-	HCI_BT_OP_BT_DEV_ENABLE = 0x8,
-	HCI_BT_OP_BT_DEV_DISABLE = 0x9,
-	HCI_BT_OP_MAX
-};
-
-enum btc_notify_type_stack_operation {
-	BTC_STACK_OP_NONE = 0x0,
-	BTC_STACK_OP_INQ_PAGE_PAIR_START = 0x1,
-	BTC_STACK_OP_INQ_PAGE_PAIR_FINISH = 0x2,
-	BTC_STACK_OP_MAX
-};
-
-typedef u8 (*bfp_btc_r1)(void *btc_context, u32 reg_addr);
-
-typedef u16 (*bfp_btc_r2)(void *btc_context, u32 reg_addr);
-
-typedef u32 (*bfp_btc_r4)(void *btc_context, u32 reg_addr);
-
-typedef void (*bfp_btc_w1)(void *btc_context, u32 reg_addr, u32 data);
-
-typedef void (*bfp_btc_w1_bit_mak)(void *btc_context, u32 reg_addr,
-				   u32 bit_mask, u8 data1b);
-
-typedef void (*bfp_btc_w2)(void *btc_context, u32 reg_addr, u16 data);
-
-typedef void (*bfp_btc_w4)(void *btc_context, u32 reg_addr, u32 data);
-
-typedef void (*bfp_btc_local_reg_w1)(void *btc_context, u32 reg_addr, u8 data);
-typedef void (*bfp_btc_wr_1byte_bit_mask)(void *btc_context, u32 reg_addr,
-					  u8 bit_mask, u8 data);
-
-typedef void (*bfp_btc_set_bb_reg)(void *btc_context, u32 reg_addr,
-				   u32 bit_mask, u32 data);
-
-typedef u32 (*bfp_btc_get_bb_reg)(void *btc_context, u32 reg_addr,
-				  u32 bit_mask);
-
-typedef void (*bfp_btc_set_rf_reg)(void *btc_context, u8 rf_path, u32 reg_addr,
-				   u32 bit_mask, u32 data);
-
-typedef u32 (*bfp_btc_get_rf_reg)(void *btc_context, u8 rf_path,
-				  u32 reg_addr, u32 bit_mask);
-
-typedef void (*bfp_btc_fill_h2c)(void *btc_context, u8 element_id,
-				 u32 cmd_len, u8 *cmd_buffer);
-
-typedef	bool (*bfp_btc_get)(void *btcoexist, u8 get_type, void *out_buf);
-
-typedef	bool (*bfp_btc_set)(void *btcoexist, u8 set_type, void *in_buf);
-
-typedef u32 (*bfp_btc_get_bt_coex_supported_feature)(void *btcoexist);
-
-typedef u32 (*bfp_btc_get_bt_coex_supported_version)(void *btcoexist);
-
-typedef u32 (*bfp_btc_get_bt_phydm_version)(void *btcoexist);
-
-typedef void (*bfp_btc_phydm_modify_ra_pcr_threshold)(void *btcoexist,
-					  u8 ra_offset_direction,
-					  u8 ra_threshold_offset);
-
-typedef u32 (*bfp_btc_phydm_query_phy_counter)(void *btcoexist,
-					       const char *info_type);
-
-typedef u8 (*bfp_btc_get_ant_det_val_from_bt)(void *btcoexist);
-
-typedef u8 (*bfp_btc_get_ble_scan_type_from_bt)(void *btcoexist);
-
-typedef u32 (*bfp_btc_get_ble_scan_para_from_bt)(void *btcoexist, u8 scan_type);
-
-typedef bool (*bfp_btc_get_bt_afh_map_from_bt)(void *btcoexist, u8 map_type,
-					       u8 *afh_map);
-
-typedef void (*bfp_btc_set_bt_reg)(void *btc_context, u8 reg_type, u32 offset,
-				   u32 value);
-typedef u32 (*bfp_btc_get_bt_reg)(void *btc_context, u8 reg_type, u32 offset);
-
-typedef void (*bfp_btc_disp_dbg_msg)(void *btcoexist, u8 disp_type,
-				     struct seq_file *m);
-
-struct btc_bt_info {
-	bool bt_disabled;
-	u8 rssi_adjust_for_agc_table_on;
-	u8 rssi_adjust_for_1ant_coex_type;
-	bool pre_bt_ctrl_agg_buf_size;
-	bool bt_busy;
-	u8 pre_agg_buf_size;
-	u8 agg_buf_size;
-	bool limited_dig;
-	bool pre_reject_agg_pkt;
-	bool reject_agg_pkt;
-	bool bt_ctrl_buf_size;
-	bool increase_scan_dev_num;
-	bool miracast_plus_bt;
-	bool bt_ctrl_agg_buf_size;
-	bool bt_tx_rx_mask;
-	u16 bt_hci_ver;
-	u16 bt_real_fw_ver;
-	u8 bt_fw_ver;
-	u32 bt_get_fw_ver;
-
-	bool bt_disable_low_pwr;
-
-	/* the following is for 1Ant solution */
-	bool bt_ctrl_lps;
-	bool bt_pwr_save_mode;
-	bool bt_lps_on;
-	bool force_to_roam;
-	u8 force_exec_pwr_cmd_cnt;
-	u8 lps_val;
-	u8 rpwm_val;
-	u32 ra_mask;
-
-	u32 afh_map_l;
-	u32 afh_map_m;
-	u16 afh_map_h;
-	u32 bt_supported_feature;
-	u32 bt_supported_version;
-	u8 bt_ant_det_val;
-	u8 bt_ble_scan_type;
-	u32 bt_ble_scan_para;
-};
-
-struct btc_stack_info {
-	bool profile_notified;
-	u16 hci_version;	/* stack hci version */
-	u8 num_of_link;
-	bool bt_link_exist;
-	bool sco_exist;
-	bool acl_exist;
-	bool a2dp_exist;
-	bool hid_exist;
-	u8 num_of_hid;
-	bool pan_exist;
-	bool unknown_acl_exist;
-	s8 min_bt_rssi;
-};
-
-struct btc_statistics {
-	u32 cnt_bind;
-	u32 cnt_init_hw_config;
-	u32 cnt_init_coex_dm;
-	u32 cnt_ips_notify;
-	u32 cnt_lps_notify;
-	u32 cnt_scan_notify;
-	u32 cnt_connect_notify;
-	u32 cnt_media_status_notify;
-	u32 cnt_special_packet_notify;
-	u32 cnt_bt_info_notify;
-	u32 cnt_periodical;
-	u32 cnt_coex_dm_switch;
-	u32 cnt_stack_operation_notify;
-	u32 cnt_dbg_ctrl;
-	u32 cnt_pre_load_firmware;
-	u32 cnt_power_on;
-};
-
-struct btc_bt_link_info {
-	bool bt_link_exist;
-	bool bt_hi_pri_link_exist;
-	bool sco_exist;
-	bool sco_only;
-	bool a2dp_exist;
-	bool a2dp_only;
-	bool hid_exist;
-	bool hid_only;
-	bool pan_exist;
-	bool pan_only;
-	bool slave_role;
-	bool acl_busy;
-};
-
-enum btc_antenna_pos {
-	BTC_ANTENNA_AT_MAIN_PORT = 0x1,
-	BTC_ANTENNA_AT_AUX_PORT = 0x2,
-};
-
-enum btc_mp_h2c_op_code {
-	BT_OP_GET_BT_VERSION			= 0,
-	BT_OP_WRITE_REG_ADDR			= 12,
-	BT_OP_WRITE_REG_VALUE			= 13,
-	BT_OP_READ_REG				= 17,
-	BT_OP_GET_AFH_MAP_L			= 30,
-	BT_OP_GET_AFH_MAP_M			= 31,
-	BT_OP_GET_AFH_MAP_H			= 32,
-	BT_OP_GET_BT_COEX_SUPPORTED_FEATURE	= 42,
-	BT_OP_GET_BT_COEX_SUPPORTED_VERSION	= 43,
-	BT_OP_GET_BT_ANT_DET_VAL		= 44,
-	BT_OP_GET_BT_BLE_SCAN_PARA		= 45,
-	BT_OP_GET_BT_BLE_SCAN_TYPE		= 46,
-	BT_OP_MAX
-};
-
-enum btc_mp_h2c_req_num {
-	/* 4 bits only */
-	BT_SEQ_DONT_CARE			= 0,
-	BT_SEQ_GET_BT_VERSION			= 0xE,
-	BT_SEQ_GET_AFH_MAP_L			= 0x5,
-	BT_SEQ_GET_AFH_MAP_M			= 0x6,
-	BT_SEQ_GET_AFH_MAP_H			= 0x9,
-	BT_SEQ_GET_BT_COEX_SUPPORTED_FEATURE	= 0x7,
-	BT_SEQ_GET_BT_COEX_SUPPORTED_VERSION	= 0x8,
-	BT_SEQ_GET_BT_ANT_DET_VAL		= 0x2,
-	BT_SEQ_GET_BT_BLE_SCAN_PARA		= 0x3,
-	BT_SEQ_GET_BT_BLE_SCAN_TYPE		= 0x4,
-};
-
-struct btc_coexist {
-	/* make sure only one adapter can bind the data context  */
-	bool binded;
-	/* default adapter */
-	void *adapter;
-	struct btc_board_info board_info;
-	/* some bt info referenced by non-bt module */
-	struct btc_bt_info bt_info;
-	struct btc_stack_info stack_info;
-	enum btc_chip_interface	chip_interface;
-	struct btc_bt_link_info bt_link_info;
-
-	/* boolean variables to replace BT_AUTO_REPORT_ONLY_XXXXY_ZANT
-	 * configuration parameters
-	 */
-	bool auto_report_1ant;
-	bool auto_report_2ant;
-	bool dbg_mode_1ant;
-	bool dbg_mode_2ant;
-	bool initilized;
-	bool stop_coex_dm;
-	bool manual_control;
-	struct btc_statistics statistics;
-	u8 pwr_mode_val[10];
-
-	struct completion bt_mp_comp;
-
-	/* function pointers - io related */
-	bfp_btc_r1 btc_read_1byte;
-	bfp_btc_w1 btc_write_1byte;
-	bfp_btc_w1_bit_mak btc_write_1byte_bitmask;
-	bfp_btc_r2 btc_read_2byte;
-	bfp_btc_w2 btc_write_2byte;
-	bfp_btc_r4 btc_read_4byte;
-	bfp_btc_w4 btc_write_4byte;
-	bfp_btc_local_reg_w1 btc_write_local_reg_1byte;
-
-	bfp_btc_set_bb_reg btc_set_bb_reg;
-	bfp_btc_get_bb_reg btc_get_bb_reg;
-
-	bfp_btc_set_rf_reg btc_set_rf_reg;
-	bfp_btc_get_rf_reg btc_get_rf_reg;
-
-	bfp_btc_fill_h2c btc_fill_h2c;
-
-	bfp_btc_disp_dbg_msg btc_disp_dbg_msg;
-
-	bfp_btc_get btc_get;
-	bfp_btc_set btc_set;
-
-	bfp_btc_set_bt_reg btc_set_bt_reg;
-	bfp_btc_get_bt_reg btc_get_bt_reg;
-
-	bfp_btc_get_bt_coex_supported_feature btc_get_bt_coex_supported_feature;
-	bfp_btc_get_bt_coex_supported_version btc_get_bt_coex_supported_version;
-	bfp_btc_get_bt_phydm_version btc_get_bt_phydm_version;
-	bfp_btc_phydm_modify_ra_pcr_threshold btc_phydm_modify_ra_pcr_threshold;
-	bfp_btc_phydm_query_phy_counter btc_phydm_query_phy_counter;
-	bfp_btc_get_ant_det_val_from_bt btc_get_ant_det_val_from_bt;
-	bfp_btc_get_ble_scan_type_from_bt btc_get_ble_scan_type_from_bt;
-	bfp_btc_get_ble_scan_para_from_bt btc_get_ble_scan_para_from_bt;
-	bfp_btc_get_bt_afh_map_from_bt btc_get_bt_afh_map_from_bt;
-
-};
-
-bool halbtc_is_wifi_uplink(struct rtl_priv *adapter);
-
-#define rtl_btc_coexist(rtlpriv)				\
-	((struct btc_coexist *)((rtlpriv)->btcoexist.btc_context))
-#define rtl_btc_wifi_only(rtlpriv)				\
-	((struct wifi_only_cfg *)((rtlpriv)->btcoexist.wifi_only_context))
-
-struct wifi_only_cfg;
-
-bool exhalbtc_initlize_variables(struct rtl_priv *rtlpriv);
-bool exhalbtc_initlize_variables_wifi_only(struct rtl_priv *rtlpriv);
-bool exhalbtc_bind_bt_coex_withadapter(void *adapter);
-void exhalbtc_power_on_setting(struct btc_coexist *btcoexist);
-void exhalbtc_pre_load_firmware(struct btc_coexist *btcoexist);
-void exhalbtc_init_hw_config(struct btc_coexist *btcoexist, bool wifi_only);
-void exhalbtc_init_hw_config_wifi_only(struct wifi_only_cfg *wifionly_cfg);
-void exhalbtc_init_coex_dm(struct btc_coexist *btcoexist);
-void exhalbtc_ips_notify(struct btc_coexist *btcoexist, u8 type);
-void exhalbtc_lps_notify(struct btc_coexist *btcoexist, u8 type);
-void exhalbtc_scan_notify(struct btc_coexist *btcoexist, u8 type);
-void exhalbtc_scan_notify_wifi_only(struct wifi_only_cfg *wifionly_cfg,
-				    u8 is_5g);
-void exhalbtc_connect_notify(struct btc_coexist *btcoexist, u8 action);
-void exhalbtc_mediastatus_notify(struct btc_coexist *btcoexist,
-				 enum rt_media_status media_status);
-void exhalbtc_special_packet_notify(struct btc_coexist *btcoexist, u8 pkt_type);
-void exhalbtc_bt_info_notify(struct btc_coexist *btcoexist, u8 *tmp_buf,
-			     u8 length);
-void exhalbtc_rf_status_notify(struct btc_coexist *btcoexist, u8 type);
-void exhalbtc_stack_operation_notify(struct btc_coexist *btcoexist, u8 type);
-void exhalbtc_halt_notify(struct btc_coexist *btcoexist);
-void exhalbtc_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state);
-void exhalbtc_coex_dm_switch(struct btc_coexist *btcoexist);
-void exhalbtc_periodical(struct btc_coexist *btcoexist);
-void exhalbtc_dbg_control(struct btc_coexist *btcoexist, u8 code, u8 len,
-			  u8 *data);
-void exhalbtc_antenna_detection(struct btc_coexist *btcoexist, u32 cent_freq,
-				u32 offset, u32 span, u32 seconds);
-void exhalbtc_stack_update_profile_info(void);
-void exhalbtc_set_hci_version(struct btc_coexist *btcoexist, u16 hci_version);
-void exhalbtc_set_bt_patch_version(struct btc_coexist *btcoexist,
-				   u16 bt_hci_version, u16 bt_patch_version);
-void exhalbtc_update_min_bt_rssi(struct btc_coexist *btcoexist, s8 bt_rssi);
-void exhalbtc_set_bt_exist(struct btc_coexist *btcoexist, bool bt_exist);
-void exhalbtc_set_chip_type(struct btc_coexist *btcoexist, u8 chip_type);
-void exhalbtc_set_ant_num(struct rtl_priv *rtlpriv, u8 type, u8 ant_num);
-void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist,
-				   struct seq_file *m);
-void exhalbtc_switch_band_notify(struct btc_coexist *btcoexist, u8 type);
-void exhalbtc_switch_band_notify_wifi_only(struct wifi_only_cfg *wifionly_cfg,
-					   u8 is_5g);
-void exhalbtc_signal_compensation(struct btc_coexist *btcoexist,
-				  u8 *rssi_wifi, u8 *rssi_bt);
-void exhalbtc_lps_leave(struct btc_coexist *btcoexist);
-void exhalbtc_low_wifi_traffic_notify(struct btc_coexist *btcoexist);
-void exhalbtc_set_single_ant_path(struct btc_coexist *btcoexist,
-				  u8 single_ant_path);
-
-/* The following are used by wifi_only case */
-enum wifionly_chip_interface {
-	WIFIONLY_INTF_UNKNOWN	= 0,
-	WIFIONLY_INTF_PCI		= 1,
-	WIFIONLY_INTF_USB		= 2,
-	WIFIONLY_INTF_SDIO		= 3,
-	WIFIONLY_INTF_MAX
-};
-
-enum wifionly_customer_id {
-	CUSTOMER_NORMAL			= 0,
-	CUSTOMER_HP_1			= 1,
-};
-
-struct wifi_only_haldata {
-	u16		customer_id;
-	u8		efuse_pg_antnum;
-	u8		efuse_pg_antpath;
-	u8		rfe_type;
-	u8		ant_div_cfg;
-};
-
-struct wifi_only_cfg {
-	void				*adapter;
-	struct wifi_only_haldata	haldata_info;
-	enum wifionly_chip_interface	chip_interface;
-};
-
-static inline
-void halwifionly_phy_set_bb_reg(struct wifi_only_cfg *wifi_conly_cfg,
-				u32 regaddr, u32 bitmask, u32 data)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)wifi_conly_cfg->adapter;
-
-	rtl_set_bbreg(rtlpriv->hw, regaddr, bitmask, data);
-}
-
-#endif
diff --git a/drivers/staging/rtlwifi/btcoexist/rtl_btc.c b/drivers/staging/rtlwifi/btcoexist/rtl_btc.c
deleted file mode 100644
index dfd47b8..0000000
--- a/drivers/staging/rtlwifi/btcoexist/rtl_btc.c
+++ /dev/null
@@ -1,517 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2013  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "../wifi.h"
-#include <linux/vmalloc.h>
-#include <linux/module.h>
-
-#include "rtl_btc.h"
-#include "halbt_precomp.h"
-
-static struct rtl_btc_ops rtl_btc_operation = {
-	.btc_init_variables = rtl_btc_init_variables,
-	.btc_init_variables_wifi_only = rtl_btc_init_variables_wifi_only,
-	.btc_deinit_variables = rtl_btc_deinit_variables,
-	.btc_init_hal_vars = rtl_btc_init_hal_vars,
-	.btc_power_on_setting = rtl_btc_power_on_setting,
-	.btc_init_hw_config = rtl_btc_init_hw_config,
-	.btc_init_hw_config_wifi_only = rtl_btc_init_hw_config_wifi_only,
-	.btc_ips_notify = rtl_btc_ips_notify,
-	.btc_lps_notify = rtl_btc_lps_notify,
-	.btc_scan_notify = rtl_btc_scan_notify,
-	.btc_scan_notify_wifi_only = rtl_btc_scan_notify_wifi_only,
-	.btc_connect_notify = rtl_btc_connect_notify,
-	.btc_mediastatus_notify = rtl_btc_mediastatus_notify,
-	.btc_periodical = rtl_btc_periodical,
-	.btc_halt_notify = rtl_btc_halt_notify,
-	.btc_btinfo_notify = rtl_btc_btinfo_notify,
-	.btc_btmpinfo_notify = rtl_btc_btmpinfo_notify,
-	.btc_is_limited_dig = rtl_btc_is_limited_dig,
-	.btc_is_disable_edca_turbo = rtl_btc_is_disable_edca_turbo,
-	.btc_is_bt_disabled = rtl_btc_is_bt_disabled,
-	.btc_special_packet_notify = rtl_btc_special_packet_notify,
-	.btc_switch_band_notify = rtl_btc_switch_band_notify,
-	.btc_switch_band_notify_wifi_only = rtl_btc_switch_band_notify_wifionly,
-	.btc_record_pwr_mode = rtl_btc_record_pwr_mode,
-	.btc_get_lps_val = rtl_btc_get_lps_val,
-	.btc_get_rpwm_val = rtl_btc_get_rpwm_val,
-	.btc_is_bt_ctrl_lps = rtl_btc_is_bt_ctrl_lps,
-	.btc_is_bt_lps_on = rtl_btc_is_bt_lps_on,
-	.btc_get_ampdu_cfg = rtl_btc_get_ampdu_cfg,
-	.btc_display_bt_coex_info = rtl_btc_display_bt_coex_info,
-};
-
-void rtl_btc_display_bt_coex_info(struct rtl_priv *rtlpriv, struct seq_file *m)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist) {
-		seq_puts(m, "btc_coexist context is NULL!\n");
-		return;
-	}
-
-	exhalbtc_display_bt_coex_info(btcoexist, m);
-}
-
-void rtl_btc_record_pwr_mode(struct rtl_priv *rtlpriv, u8 *buf, u8 len)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-	u8 safe_len;
-
-	if (!btcoexist)
-		return;
-
-	safe_len = sizeof(btcoexist->pwr_mode_val);
-
-	if (safe_len > len)
-		safe_len = len;
-
-	memcpy(btcoexist->pwr_mode_val, buf, safe_len);
-}
-
-u8 rtl_btc_get_lps_val(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return 0;
-
-	return btcoexist->bt_info.lps_val;
-}
-
-u8 rtl_btc_get_rpwm_val(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return 0;
-
-	return btcoexist->bt_info.rpwm_val;
-}
-
-bool rtl_btc_is_bt_ctrl_lps(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return false;
-
-	return btcoexist->bt_info.bt_ctrl_lps;
-}
-
-bool rtl_btc_is_bt_lps_on(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return false;
-
-	return btcoexist->bt_info.bt_lps_on;
-}
-
-void rtl_btc_get_ampdu_cfg(struct rtl_priv *rtlpriv, u8 *reject_agg,
-			   u8 *ctrl_agg_size, u8 *agg_size)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist) {
-		*reject_agg = false;
-		*ctrl_agg_size = false;
-		return;
-	}
-
-	if (reject_agg)
-		*reject_agg = btcoexist->bt_info.reject_agg_pkt;
-	if (ctrl_agg_size)
-		*ctrl_agg_size = btcoexist->bt_info.bt_ctrl_agg_buf_size;
-	if (agg_size)
-		*agg_size = btcoexist->bt_info.agg_buf_size;
-}
-
-static void rtl_btc_alloc_variable(struct rtl_priv *rtlpriv, bool wifi_only)
-{
-	if (wifi_only)
-		rtlpriv->btcoexist.wifi_only_context =
-			kzalloc(sizeof(struct wifi_only_cfg), GFP_KERNEL);
-	else
-		rtlpriv->btcoexist.btc_context =
-			kzalloc(sizeof(struct btc_coexist), GFP_KERNEL);
-}
-
-static void rtl_btc_free_variable(struct rtl_priv *rtlpriv)
-{
-	kfree(rtlpriv->btcoexist.btc_context);
-	rtlpriv->btcoexist.btc_context = NULL;
-
-	kfree(rtlpriv->btcoexist.wifi_only_context);
-	rtlpriv->btcoexist.wifi_only_context = NULL;
-}
-
-void rtl_btc_init_variables(struct rtl_priv *rtlpriv)
-{
-	rtl_btc_alloc_variable(rtlpriv, false);
-
-	exhalbtc_initlize_variables(rtlpriv);
-	exhalbtc_bind_bt_coex_withadapter(rtlpriv);
-}
-
-void rtl_btc_init_variables_wifi_only(struct rtl_priv *rtlpriv)
-{
-	rtl_btc_alloc_variable(rtlpriv, true);
-
-	exhalbtc_initlize_variables_wifi_only(rtlpriv);
-}
-
-void rtl_btc_deinit_variables(struct rtl_priv *rtlpriv)
-{
-	rtl_btc_free_variable(rtlpriv);
-}
-
-void rtl_btc_init_hal_vars(struct rtl_priv *rtlpriv)
-{
-	/* move ant_num, bt_type and single_ant_path to
-	 * exhalbtc_bind_bt_coex_withadapter()
-	 */
-}
-
-void rtl_btc_power_on_setting(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	exhalbtc_power_on_setting(btcoexist);
-}
-
-void rtl_btc_init_hw_config(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	u8 bt_exist;
-
-	bt_exist = rtl_get_hwpg_bt_exist(rtlpriv);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-		 "%s, bt_exist is %d\n", __func__, bt_exist);
-
-	if (!btcoexist)
-		return;
-
-	exhalbtc_init_hw_config(btcoexist, !bt_exist);
-	exhalbtc_init_coex_dm(btcoexist);
-}
-
-void rtl_btc_init_hw_config_wifi_only(struct rtl_priv *rtlpriv)
-{
-	struct wifi_only_cfg *wifionly_cfg = rtl_btc_wifi_only(rtlpriv);
-
-	if (!wifionly_cfg)
-		return;
-
-	exhalbtc_init_hw_config_wifi_only(wifionly_cfg);
-}
-
-void rtl_btc_ips_notify(struct rtl_priv *rtlpriv, u8 type)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	exhalbtc_ips_notify(btcoexist, type);
-
-	if (type == ERFON) {
-		/*
-		 * In some situation, it doesn't scan after leaving IPS, and
-		 * this will cause btcoex in wrong state.
-		 */
-		exhalbtc_scan_notify(btcoexist, 1);
-		exhalbtc_scan_notify(btcoexist, 0);
-	}
-}
-
-void rtl_btc_lps_notify(struct rtl_priv *rtlpriv, u8 type)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	exhalbtc_lps_notify(btcoexist, type);
-}
-
-void rtl_btc_scan_notify(struct rtl_priv *rtlpriv, u8 scantype)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	exhalbtc_scan_notify(btcoexist, scantype);
-}
-
-void rtl_btc_scan_notify_wifi_only(struct rtl_priv *rtlpriv, u8 scantype)
-{
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	struct wifi_only_cfg *wifionly_cfg = rtl_btc_wifi_only(rtlpriv);
-	u8 is_5g = (rtlhal->current_bandtype == BAND_ON_5G);
-
-	if (!wifionly_cfg)
-		return;
-
-	exhalbtc_scan_notify_wifi_only(wifionly_cfg, is_5g);
-}
-
-void rtl_btc_connect_notify(struct rtl_priv *rtlpriv, u8 action)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	exhalbtc_connect_notify(btcoexist, action);
-}
-
-void rtl_btc_mediastatus_notify(struct rtl_priv *rtlpriv,
-				enum rt_media_status mstatus)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	exhalbtc_mediastatus_notify(btcoexist, mstatus);
-}
-
-void rtl_btc_periodical(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	/*rtl_bt_dm_monitor();*/
-	exhalbtc_periodical(btcoexist);
-}
-
-void rtl_btc_halt_notify(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	exhalbtc_halt_notify(btcoexist);
-}
-
-void rtl_btc_btinfo_notify(struct rtl_priv *rtlpriv, u8 *tmp_buf, u8 length)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	exhalbtc_bt_info_notify(btcoexist, tmp_buf, length);
-}
-
-void rtl_btc_btmpinfo_notify(struct rtl_priv *rtlpriv, u8 *tmp_buf, u8 length)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-	u8 extid, seq, len;
-	u16 bt_real_fw_ver;
-	u8 bt_fw_ver;
-	u8 *data;
-
-	if (!btcoexist)
-		return;
-
-	if ((length < 4) || (!tmp_buf))
-		return;
-
-	extid = tmp_buf[0];
-	/* not response from BT FW then exit*/
-	if (extid != 1) /* C2H_TRIG_BY_BT_FW = 1 */
-		return;
-
-	len = tmp_buf[1] >> 4;
-	seq = tmp_buf[2] >> 4;
-	data = &tmp_buf[3];
-
-	/* BT Firmware version response */
-	switch (seq) {
-	case BT_SEQ_GET_BT_VERSION:
-		bt_real_fw_ver = tmp_buf[3] | (tmp_buf[4] << 8);
-		bt_fw_ver = tmp_buf[5];
-
-		btcoexist->bt_info.bt_real_fw_ver = bt_real_fw_ver;
-		btcoexist->bt_info.bt_fw_ver = bt_fw_ver;
-		break;
-	case BT_SEQ_GET_AFH_MAP_L:
-		btcoexist->bt_info.afh_map_l = le32_to_cpu(*(__le32 *)data);
-		break;
-	case BT_SEQ_GET_AFH_MAP_M:
-		btcoexist->bt_info.afh_map_m = le32_to_cpu(*(__le32 *)data);
-		break;
-	case BT_SEQ_GET_AFH_MAP_H:
-		btcoexist->bt_info.afh_map_h = le16_to_cpu(*(__le16 *)data);
-		break;
-	case BT_SEQ_GET_BT_COEX_SUPPORTED_FEATURE:
-		btcoexist->bt_info.bt_supported_feature = tmp_buf[3] |
-							  (tmp_buf[4] << 8);
-		break;
-	case BT_SEQ_GET_BT_COEX_SUPPORTED_VERSION:
-		btcoexist->bt_info.bt_supported_version = tmp_buf[3] |
-							  (tmp_buf[4] << 8);
-		break;
-	case BT_SEQ_GET_BT_ANT_DET_VAL:
-		btcoexist->bt_info.bt_ant_det_val = tmp_buf[3];
-		break;
-	case BT_SEQ_GET_BT_BLE_SCAN_PARA:
-		btcoexist->bt_info.bt_ble_scan_para = tmp_buf[3] |
-						      (tmp_buf[4] << 8) |
-						      (tmp_buf[5] << 16) |
-						      (tmp_buf[6] << 24);
-		break;
-	case BT_SEQ_GET_BT_BLE_SCAN_TYPE:
-		btcoexist->bt_info.bt_ble_scan_type = tmp_buf[3];
-		break;
-	}
-
-	RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
-		 "btmpinfo complete req_num=%d\n", seq);
-
-	complete(&btcoexist->bt_mp_comp);
-}
-
-bool rtl_btc_is_limited_dig(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return false;
-
-	return btcoexist->bt_info.limited_dig;
-}
-
-bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv)
-{
-	bool bt_change_edca = false;
-	u32 cur_edca_val;
-	u32 edca_bt_hs_uplink = 0x5ea42b, edca_bt_hs_downlink = 0x5ea42b;
-	u32 edca_hs;
-	u32 edca_addr = 0x504;
-
-	cur_edca_val = rtl_read_dword(rtlpriv, edca_addr);
-	if (halbtc_is_wifi_uplink(rtlpriv)) {
-		if (cur_edca_val != edca_bt_hs_uplink) {
-			edca_hs = edca_bt_hs_uplink;
-			bt_change_edca = true;
-		}
-	} else {
-		if (cur_edca_val != edca_bt_hs_downlink) {
-			edca_hs = edca_bt_hs_downlink;
-			bt_change_edca = true;
-		}
-	}
-
-	if (bt_change_edca)
-		rtl_write_dword(rtlpriv, edca_addr, edca_hs);
-
-	return true;
-}
-
-bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return true;
-
-	/* It seems 'bt_disabled' is never be initialized or set. */
-	if (btcoexist->bt_info.bt_disabled)
-		return true;
-	else
-		return false;
-}
-
-void rtl_btc_special_packet_notify(struct rtl_priv *rtlpriv, u8 pkt_type)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-
-	if (!btcoexist)
-		return;
-
-	return exhalbtc_special_packet_notify(btcoexist, pkt_type);
-}
-
-void rtl_btc_switch_band_notify(struct rtl_priv *rtlpriv, u8 band_type,
-				bool scanning)
-{
-	struct btc_coexist *btcoexist = rtl_btc_coexist(rtlpriv);
-	u8 type = BTC_NOT_SWITCH;
-
-	if (!btcoexist)
-		return;
-
-	switch (band_type) {
-	case BAND_ON_2_4G:
-		if (scanning)
-			type = BTC_SWITCH_TO_24G;
-		else
-			type = BTC_SWITCH_TO_24G_NOFORSCAN;
-		break;
-
-	case BAND_ON_5G:
-		type = BTC_SWITCH_TO_5G;
-		break;
-	}
-
-	if (type != BTC_NOT_SWITCH)
-		exhalbtc_switch_band_notify(btcoexist, type);
-}
-
-void rtl_btc_switch_band_notify_wifionly(struct rtl_priv *rtlpriv, u8 band_type,
-					 bool scanning)
-{
-	struct wifi_only_cfg *wifionly_cfg = rtl_btc_wifi_only(rtlpriv);
-	u8 is_5g = (band_type == BAND_ON_5G);
-
-	if (!wifionly_cfg)
-		return;
-
-	exhalbtc_switch_band_notify_wifi_only(wifionly_cfg, is_5g);
-}
-
-struct rtl_btc_ops *rtl_btc_get_ops_pointer(void)
-{
-	return &rtl_btc_operation;
-}
-
-enum rt_media_status mgnt_link_status_query(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	enum rt_media_status    m_status = RT_MEDIA_DISCONNECT;
-
-	u8 bibss = (mac->opmode == NL80211_IFTYPE_ADHOC) ? 1 : 0;
-
-	if (bibss || rtlpriv->mac80211.link_state >= MAC80211_LINKED)
-		m_status = RT_MEDIA_CONNECT;
-
-	return m_status;
-}
-
-u8 rtl_get_hwpg_bt_exist(struct rtl_priv *rtlpriv)
-{
-	return rtlpriv->btcoexist.btc_info.btcoexist;
-}
diff --git a/drivers/staging/rtlwifi/btcoexist/rtl_btc.h b/drivers/staging/rtlwifi/btcoexist/rtl_btc.h
deleted file mode 100644
index 0141f46..0000000
--- a/drivers/staging/rtlwifi/btcoexist/rtl_btc.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2010  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_BTC_H__
-#define __RTL_BTC_H__
-
-#include "halbt_precomp.h"
-
-void rtl_btc_init_variables(struct rtl_priv *rtlpriv);
-void rtl_btc_init_variables_wifi_only(struct rtl_priv *rtlpriv);
-void rtl_btc_deinit_variables(struct rtl_priv *rtlpriv);
-void rtl_btc_init_hal_vars(struct rtl_priv *rtlpriv);
-void rtl_btc_power_on_setting(struct rtl_priv *rtlpriv);
-void rtl_btc_init_hw_config(struct rtl_priv *rtlpriv);
-void rtl_btc_init_hw_config_wifi_only(struct rtl_priv *rtlpriv);
-void rtl_btc_ips_notify(struct rtl_priv *rtlpriv, u8 type);
-void rtl_btc_lps_notify(struct rtl_priv *rtlpriv, u8 type);
-void rtl_btc_scan_notify(struct rtl_priv *rtlpriv, u8 scantype);
-void rtl_btc_scan_notify_wifi_only(struct rtl_priv *rtlpriv, u8 scantype);
-void rtl_btc_connect_notify(struct rtl_priv *rtlpriv, u8 action);
-void rtl_btc_mediastatus_notify(struct rtl_priv *rtlpriv,
-				enum rt_media_status mstatus);
-void rtl_btc_periodical(struct rtl_priv *rtlpriv);
-void rtl_btc_halt_notify(struct rtl_priv *rtlpriv);
-void rtl_btc_btinfo_notify(struct rtl_priv *rtlpriv, u8 *tmpbuf, u8 length);
-void rtl_btc_btmpinfo_notify(struct rtl_priv *rtlpriv, u8 *tmp_buf, u8 length);
-bool rtl_btc_is_limited_dig(struct rtl_priv *rtlpriv);
-bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv);
-bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv);
-void rtl_btc_special_packet_notify(struct rtl_priv *rtlpriv, u8 pkt_type);
-void rtl_btc_switch_band_notify(struct rtl_priv *rtlpriv, u8 band_type,
-				bool scanning);
-void rtl_btc_switch_band_notify_wifionly(struct rtl_priv *rtlpriv, u8 band_type,
-					 bool scanning);
-void rtl_btc_display_bt_coex_info(struct rtl_priv *rtlpriv, struct seq_file *m);
-void rtl_btc_record_pwr_mode(struct rtl_priv *rtlpriv, u8 *buf, u8 len);
-u8   rtl_btc_get_lps_val(struct rtl_priv *rtlpriv);
-u8   rtl_btc_get_rpwm_val(struct rtl_priv *rtlpriv);
-bool rtl_btc_is_bt_ctrl_lps(struct rtl_priv *rtlpriv);
-bool rtl_btc_is_bt_lps_on(struct rtl_priv *rtlpriv);
-void rtl_btc_get_ampdu_cfg(struct rtl_priv *rtlpriv, u8 *reject_agg,
-			   u8 *ctrl_agg_size, u8 *agg_size);
-
-struct rtl_btc_ops *rtl_btc_get_ops_pointer(void);
-
-u8 rtl_get_hwpg_bt_exist(struct rtl_priv *rtlpriv);
-u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv);
-u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv);
-u8 rtl_get_hwpg_single_ant_path(struct rtl_priv *rtlpriv);
-u8 rtl_get_hwpg_package_type(struct rtl_priv *rtlpriv);
-
-enum rt_media_status mgnt_link_status_query(struct ieee80211_hw *hw);
-
-#endif
diff --git a/drivers/staging/rtlwifi/cam.c b/drivers/staging/rtlwifi/cam.c
deleted file mode 100644
index e8572d6..0000000
--- a/drivers/staging/rtlwifi/cam.c
+++ /dev/null
@@ -1,315 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "wifi.h"
-#include "cam.h"
-#include <linux/export.h>
-
-void rtl_cam_reset_sec_info(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtlpriv->sec.use_defaultkey = false;
-	rtlpriv->sec.pairwise_enc_algorithm = NO_ENCRYPTION;
-	rtlpriv->sec.group_enc_algorithm = NO_ENCRYPTION;
-	memset(rtlpriv->sec.key_buf, 0, KEY_BUF_SIZE * MAX_KEY_LEN);
-	memset(rtlpriv->sec.key_len, 0, KEY_BUF_SIZE);
-	rtlpriv->sec.pairwise_key = NULL;
-}
-
-static void rtl_cam_program_entry(struct ieee80211_hw *hw, u32 entry_no,
-				  u8 *mac_addr, u8 *key_cont_128, u16 us_config)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	u32 target_command;
-	u32 target_content = 0;
-	int entry_i;
-
-	RT_PRINT_DATA(rtlpriv, COMP_SEC, DBG_DMESG, "Key content :",
-		      key_cont_128, 16);
-
-	/* 0-1 config + mac, 2-5 fill 128key,6-7 are reserved */
-	for (entry_i = CAM_CONTENT_COUNT - 1; entry_i >= 0; entry_i--) {
-		target_command = entry_i + CAM_CONTENT_COUNT * entry_no;
-		target_command = target_command | BIT(31) | BIT(16);
-
-		if (entry_i == 0) {
-			target_content = (u32)(*(mac_addr + 0)) << 16 |
-					 (u32)(*(mac_addr + 1)) << 24 |
-					 (u32)us_config;
-
-			rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI],
-					target_content);
-			rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM],
-					target_command);
-
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-				 "WRITE %x: %x\n",
-				 rtlpriv->cfg->maps[WCAMI], target_content);
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-				 "The Key ID is %d\n", entry_no);
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-				 "WRITE %x: %x\n",
-				 rtlpriv->cfg->maps[RWCAM], target_command);
-
-		} else if (entry_i == 1) {
-			target_content = (u32)(*(mac_addr + 5)) << 24 |
-					 (u32)(*(mac_addr + 4)) << 16 |
-					 (u32)(*(mac_addr + 3)) << 8 |
-					 (u32)(*(mac_addr + 2));
-
-			rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI],
-					target_content);
-			rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM],
-					target_command);
-
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-				 "WRITE A4: %x\n", target_content);
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-				 "WRITE A0: %x\n", target_command);
-		} else {
-			target_content =
-			    (u32)(*(key_cont_128 + (entry_i * 4 - 8) + 3)) <<
-			    24 | (u32)(*(key_cont_128 + (entry_i * 4 - 8) + 2))
-			    << 16 |
-			    (u32)(*(key_cont_128 + (entry_i * 4 - 8) + 1)) << 8
-			    | (u32)(*(key_cont_128 + (entry_i * 4 - 8) + 0));
-
-			rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI],
-					target_content);
-			rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM],
-					target_command);
-
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-				 "WRITE A4: %x\n", target_content);
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-				 "WRITE A0: %x\n", target_command);
-		}
-	}
-
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-		 "after set key, usconfig:%x\n", us_config);
-}
-
-u8 rtl_cam_add_one_entry(struct ieee80211_hw *hw, u8 *mac_addr,
-			 u32 ul_key_id, u32 ul_entry_idx, u32 ul_enc_alg,
-			 u32 ul_default_key, u8 *key_content)
-{
-	u32 us_config;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-		 "EntryNo:%x, ulKeyId=%x, ulEncAlg=%x, ulUseDK=%x MacAddr %pM\n",
-		 ul_entry_idx, ul_key_id, ul_enc_alg,
-		 ul_default_key, mac_addr);
-
-	if (ul_key_id == TOTAL_CAM_ENTRY) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "ulKeyId exceed!\n");
-		return 0;
-	}
-
-	if (ul_default_key == 1)
-		us_config = CFG_VALID | ((u16)(ul_enc_alg) << 2);
-	else
-		us_config = CFG_VALID | ((ul_enc_alg) << 2) | ul_key_id;
-
-	rtl_cam_program_entry(hw, ul_entry_idx, mac_addr,
-			      (u8 *)key_content, us_config);
-
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "end\n");
-
-	return 1;
-}
-
-int rtl_cam_delete_one_entry(struct ieee80211_hw *hw,
-			     u8 *mac_addr, u32 ul_key_id)
-{
-	u32 ul_command;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "key_idx:%d\n", ul_key_id);
-
-	ul_command = ul_key_id * CAM_CONTENT_COUNT;
-	ul_command = ul_command | BIT(31) | BIT(16);
-
-	rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI], 0);
-	rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command);
-
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-		 "%s(): WRITE A4: %x\n", __func__, 0);
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-		 "%s(): WRITE A0: %x\n", __func__, ul_command);
-
-	return 0;
-}
-
-void rtl_cam_reset_all_entry(struct ieee80211_hw *hw)
-{
-	u32 ul_command;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	ul_command = BIT(31) | BIT(30);
-	rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command);
-}
-
-void rtl_cam_mark_invalid(struct ieee80211_hw *hw, u8 uc_index)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	u32 ul_command;
-	u32 ul_content;
-	u32 ul_enc_algo;
-
-	switch (rtlpriv->sec.pairwise_enc_algorithm) {
-	case WEP40_ENCRYPTION:
-		ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_WEP40];
-		break;
-	case WEP104_ENCRYPTION:
-		ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_WEP104];
-		break;
-	case TKIP_ENCRYPTION:
-		ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_TKIP];
-		break;
-	case AESCCMP_ENCRYPTION:
-		ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_AES];
-		break;
-	default:
-		ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_AES];
-	}
-
-	ul_content = (uc_index & 3) | ((u16)(ul_enc_algo) << 2);
-
-	ul_content |= BIT(15);
-	ul_command = CAM_CONTENT_COUNT * uc_index;
-	ul_command = ul_command | BIT(31) | BIT(16);
-
-	rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI], ul_content);
-	rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command);
-
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-		 "%s(): WRITE A4: %x\n", __func__, ul_content);
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-		 "%s(): WRITE A0: %x\n", __func__, ul_command);
-}
-
-void rtl_cam_empty_entry(struct ieee80211_hw *hw, u8 uc_index)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	u32 ul_command;
-	u32 ul_content;
-	u32 ul_encalgo;
-	u8 entry_i;
-
-	switch (rtlpriv->sec.pairwise_enc_algorithm) {
-	case WEP40_ENCRYPTION:
-		ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_WEP40];
-		break;
-	case WEP104_ENCRYPTION:
-		ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_WEP104];
-		break;
-	case TKIP_ENCRYPTION:
-		ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_TKIP];
-		break;
-	case AESCCMP_ENCRYPTION:
-		ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_AES];
-		break;
-	default:
-		ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_AES];
-	}
-
-	for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) {
-		if (entry_i == 0) {
-			ul_content =
-			    (uc_index & 0x03) | ((u16)(ul_encalgo) << 2);
-			ul_content |= BIT(15);
-		} else {
-			ul_content = 0;
-		}
-
-		ul_command = CAM_CONTENT_COUNT * uc_index + entry_i;
-		ul_command = ul_command | BIT(31) | BIT(16);
-
-		rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI], ul_content);
-		rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command);
-
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-			 "%s(): WRITE A4: %x\n", __func__, ul_content);
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-			 "%s(): WRITE A0: %x\n", __func__, ul_command);
-	}
-}
-
-u8 rtl_cam_get_free_entry(struct ieee80211_hw *hw, u8 *sta_addr)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u32 bitmap = (rtlpriv->sec.hwsec_cam_bitmap) >> 4;
-	u8 entry_idx = 0;
-	u8 i, *addr;
-
-	if (!sta_addr) {
-		pr_err("sta_addr is NULL.\n");
-		return TOTAL_CAM_ENTRY;
-	}
-	/* Does STA already exist? */
-	for (i = 4; i < TOTAL_CAM_ENTRY; i++) {
-		addr = rtlpriv->sec.hwsec_cam_sta_addr[i];
-		if (ether_addr_equal_unaligned(addr, sta_addr))
-			return i;
-	}
-	/* Get a free CAM entry. */
-	for (entry_idx = 4; entry_idx < TOTAL_CAM_ENTRY; entry_idx++) {
-		if ((bitmap & BIT(0)) == 0) {
-			pr_err("-----hwsec_cam_bitmap: 0x%x entry_idx=%d\n",
-			       rtlpriv->sec.hwsec_cam_bitmap, entry_idx);
-			rtlpriv->sec.hwsec_cam_bitmap |= BIT(0) << entry_idx;
-			memcpy(rtlpriv->sec.hwsec_cam_sta_addr[entry_idx],
-			       sta_addr, ETH_ALEN);
-			return entry_idx;
-		}
-		bitmap = bitmap >> 1;
-	}
-	return TOTAL_CAM_ENTRY;
-}
-
-void rtl_cam_del_entry(struct ieee80211_hw *hw, u8 *sta_addr)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u32 bitmap;
-	u8 i, *addr;
-
-	if (!sta_addr) {
-		pr_err("sta_addr is NULL.\n");
-		return;
-	}
-
-	if (is_zero_ether_addr(sta_addr)) {
-		pr_err("sta_addr is %pM\n", sta_addr);
-		return;
-	}
-	/* Does STA already exist? */
-	for (i = 4; i < TOTAL_CAM_ENTRY; i++) {
-		addr = rtlpriv->sec.hwsec_cam_sta_addr[i];
-		bitmap = (rtlpriv->sec.hwsec_cam_bitmap) >> i;
-		if (((bitmap & BIT(0)) == BIT(0)) &&
-		    (ether_addr_equal_unaligned(addr, sta_addr))) {
-			/* Remove from HW Security CAM */
-			eth_zero_addr(rtlpriv->sec.hwsec_cam_sta_addr[i]);
-			rtlpriv->sec.hwsec_cam_bitmap &= ~(BIT(0) << i);
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-				 "&&&&&&&&&del entry %d\n", i);
-		}
-	}
-}
diff --git a/drivers/staging/rtlwifi/cam.h b/drivers/staging/rtlwifi/cam.h
deleted file mode 100644
index 3f1d8b5..0000000
--- a/drivers/staging/rtlwifi/cam.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_CAM_H_
-#define __RTL_CAM_H_
-
-#define CAM_CONTENT_COUNT				8
-
-#define CFG_VALID					BIT(15)
-
-#define PAIRWISE_KEYIDX					0
-#define CAM_PAIRWISE_KEY_POSITION			4
-
-#define	CAM_CONFIG_NO_USEDK				0
-
-void rtl_cam_reset_all_entry(struct ieee80211_hw *hw);
-u8 rtl_cam_add_one_entry(struct ieee80211_hw *hw, u8 *mac_addr,
-			 u32 ul_key_id, u32 ul_entry_idx, u32 ul_enc_alg,
-			 u32 ul_default_key, u8 *key_content);
-int rtl_cam_delete_one_entry(struct ieee80211_hw *hw, u8 *mac_addr,
-			     u32 ul_key_id);
-void rtl_cam_mark_invalid(struct ieee80211_hw *hw, u8 uc_index);
-void rtl_cam_empty_entry(struct ieee80211_hw *hw, u8 uc_index);
-void rtl_cam_reset_sec_info(struct ieee80211_hw *hw);
-u8 rtl_cam_get_free_entry(struct ieee80211_hw *hw, u8 *sta_addr);
-void rtl_cam_del_entry(struct ieee80211_hw *hw, u8 *sta_addr);
-
-#endif
diff --git a/drivers/staging/rtlwifi/core.c b/drivers/staging/rtlwifi/core.c
deleted file mode 100644
index 1e4e858..0000000
--- a/drivers/staging/rtlwifi/core.c
+++ /dev/null
@@ -1,1994 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "wifi.h"
-#include "core.h"
-#include "cam.h"
-#include "base.h"
-#include "ps.h"
-#include "pwrseqcmd.h"
-
-#include "btcoexist/rtl_btc.h"
-#include <linux/firmware.h>
-#include <linux/export.h>
-#include <net/cfg80211.h>
-
-u8 channel5g[CHANNEL_MAX_NUMBER_5G] = {
-	36, 38, 40, 42, 44, 46, 48,		/* Band 1 */
-	52, 54, 56, 58, 60, 62, 64,		/* Band 2 */
-	100, 102, 104, 106, 108, 110, 112,	/* Band 3 */
-	116, 118, 120, 122, 124, 126, 128,	/* Band 3 */
-	132, 134, 136, 138, 140, 142, 144,	/* Band 3 */
-	149, 151, 153, 155, 157, 159, 161,	/* Band 4 */
-	165, 167, 169, 171, 173, 175, 177	/* Band 4 */
-};
-
-u8 channel5g_80m[CHANNEL_MAX_NUMBER_5G_80M] = {
-	42, 58, 106, 122, 138, 155, 171
-};
-
-static void rtl_fw_do_work(const struct firmware *firmware, void *context,
-			   bool is_wow)
-{
-	struct ieee80211_hw *hw = context;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	int err;
-
-	RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
-		 "Firmware callback routine entered!\n");
-	complete(&rtlpriv->firmware_loading_complete);
-	if (!firmware) {
-		if (rtlpriv->cfg->alt_fw_name) {
-			err = request_firmware(&firmware,
-					       rtlpriv->cfg->alt_fw_name,
-					       rtlpriv->io.dev);
-			pr_info("Loading alternative firmware %s\n",
-				rtlpriv->cfg->alt_fw_name);
-			if (!err)
-				goto found_alt;
-		}
-		pr_err("Selected firmware is not available\n");
-		rtlpriv->max_fw_size = 0;
-		return;
-	}
-found_alt:
-	if (firmware->size > rtlpriv->max_fw_size) {
-		pr_err("Firmware is too big!\n");
-		release_firmware(firmware);
-		return;
-	}
-	if (!is_wow) {
-		memcpy(rtlpriv->rtlhal.pfirmware, firmware->data,
-		       firmware->size);
-		rtlpriv->rtlhal.fwsize = firmware->size;
-	} else {
-		memcpy(rtlpriv->rtlhal.wowlan_firmware, firmware->data,
-		       firmware->size);
-		rtlpriv->rtlhal.wowlan_fwsize = firmware->size;
-	}
-	rtlpriv->rtlhal.fwsize = firmware->size;
-	release_firmware(firmware);
-}
-
-void rtl_fw_cb(const struct firmware *firmware, void *context)
-{
-	rtl_fw_do_work(firmware, context, false);
-}
-
-void rtl_wowlan_fw_cb(const struct firmware *firmware, void *context)
-{
-	rtl_fw_do_work(firmware, context, true);
-}
-
-/*mutex for start & stop is must here. */
-static int rtl_op_start(struct ieee80211_hw *hw)
-{
-	int err = 0;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-
-	if (!is_hal_stop(rtlhal))
-		return 0;
-	if (!test_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status))
-		return 0;
-	mutex_lock(&rtlpriv->locks.conf_mutex);
-	err = rtlpriv->intf_ops->adapter_start(hw);
-	if (!err)
-		rtl_watch_dog_timer_callback(&rtlpriv->works.watchdog_timer);
-	mutex_unlock(&rtlpriv->locks.conf_mutex);
-	return err;
-}
-
-static void rtl_op_stop(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	bool support_remote_wakeup = false;
-
-	if (is_hal_stop(rtlhal))
-		return;
-
-	rtlpriv->cfg->ops->get_hw_reg(hw, HAL_DEF_WOWLAN,
-				      (u8 *)(&support_remote_wakeup));
-	/* here is must, because adhoc do stop and start,
-	 * but stop with RFOFF may cause something wrong,
-	 * like adhoc TP
-	 */
-	if (unlikely(ppsc->rfpwr_state == ERFOFF))
-		rtl_ips_nic_on(hw);
-
-	mutex_lock(&rtlpriv->locks.conf_mutex);
-	/* if wowlan supported, DON'T clear connected info */
-	if (!(support_remote_wakeup &&
-	      rtlhal->enter_pnp_sleep)) {
-		mac->link_state = MAC80211_NOLINK;
-		eth_zero_addr(mac->bssid);
-		mac->vendor = PEER_UNKNOWN;
-
-		/* reset sec info */
-		rtl_cam_reset_sec_info(hw);
-
-		rtl_deinit_deferred_work(hw);
-	}
-	rtlpriv->intf_ops->adapter_stop(hw);
-
-	mutex_unlock(&rtlpriv->locks.conf_mutex);
-}
-
-static void rtl_op_tx(struct ieee80211_hw *hw,
-		      struct ieee80211_tx_control *control,
-		      struct sk_buff *skb)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_tcb_desc tcb_desc;
-
-	memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc));
-
-	if (unlikely(is_hal_stop(rtlhal) || ppsc->rfpwr_state != ERFON))
-		goto err_free;
-
-	if (!test_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status))
-		goto err_free;
-
-	if (!rtlpriv->intf_ops->waitq_insert(hw, control->sta, skb))
-		rtlpriv->intf_ops->adapter_tx(hw, control->sta, skb, &tcb_desc);
-	return;
-
-err_free:
-	dev_kfree_skb_any(skb);
-}
-
-static int rtl_op_add_interface(struct ieee80211_hw *hw,
-				struct ieee80211_vif *vif)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	int err = 0;
-	u8 retry_limit = 0x30;
-
-	if (mac->vif) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "vif has been set!! mac->vif = 0x%p\n", mac->vif);
-		return -EOPNOTSUPP;
-	}
-
-	vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER;
-
-	rtl_ips_nic_on(hw);
-
-	mutex_lock(&rtlpriv->locks.conf_mutex);
-	switch (ieee80211_vif_type_p2p(vif)) {
-	case NL80211_IFTYPE_P2P_CLIENT:
-		mac->p2p = P2P_ROLE_CLIENT;
-		/*fall through*/
-	case NL80211_IFTYPE_STATION:
-		if (mac->beacon_enabled == 1) {
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-				 "NL80211_IFTYPE_STATION\n");
-			mac->beacon_enabled = 0;
-			rtlpriv->cfg->ops->update_interrupt_mask(hw, 0,
-					rtlpriv->cfg->maps[RTL_IBSS_INT_MASKS]);
-		}
-		break;
-	case NL80211_IFTYPE_ADHOC:
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-			 "NL80211_IFTYPE_ADHOC\n");
-
-		mac->link_state = MAC80211_LINKED;
-		rtlpriv->cfg->ops->set_bcn_reg(hw);
-		if (rtlpriv->rtlhal.current_bandtype == BAND_ON_2_4G)
-			mac->basic_rates = 0xfff;
-		else
-			mac->basic_rates = 0xff0;
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE,
-				(u8 *)(&mac->basic_rates));
-
-		retry_limit = 0x07;
-		break;
-	case NL80211_IFTYPE_P2P_GO:
-		mac->p2p = P2P_ROLE_GO;
-		/*fall through*/
-	case NL80211_IFTYPE_AP:
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-			 "NL80211_IFTYPE_AP\n");
-
-		mac->link_state = MAC80211_LINKED;
-		rtlpriv->cfg->ops->set_bcn_reg(hw);
-		if (rtlpriv->rtlhal.current_bandtype == BAND_ON_2_4G)
-			mac->basic_rates = 0xfff;
-		else
-			mac->basic_rates = 0xff0;
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE,
-					      (u8 *)(&mac->basic_rates));
-
-		retry_limit = 0x07;
-		break;
-	case NL80211_IFTYPE_MESH_POINT:
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-			 "NL80211_IFTYPE_MESH_POINT\n");
-
-		mac->link_state = MAC80211_LINKED;
-		rtlpriv->cfg->ops->set_bcn_reg(hw);
-		if (rtlpriv->rtlhal.current_bandtype == BAND_ON_2_4G)
-			mac->basic_rates = 0xfff;
-		else
-			mac->basic_rates = 0xff0;
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE,
-				(u8 *)(&mac->basic_rates));
-
-		retry_limit = 0x07;
-		break;
-	default:
-		pr_err("operation mode %d is not supported!\n",
-		       vif->type);
-		err = -EOPNOTSUPP;
-		goto out;
-	}
-
-	if (mac->p2p) {
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-			 "p2p role %x\n", vif->type);
-		mac->basic_rates = 0xff0;/*disable cck rate for p2p*/
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE,
-				(u8 *)(&mac->basic_rates));
-	}
-	mac->vif = vif;
-	mac->opmode = vif->type;
-	rtlpriv->cfg->ops->set_network_type(hw, vif->type);
-	memcpy(mac->mac_addr, vif->addr, ETH_ALEN);
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ETHER_ADDR, mac->mac_addr);
-
-	mac->retry_long = retry_limit;
-	mac->retry_short = retry_limit;
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RETRY_LIMIT,
-			(u8 *)(&retry_limit));
-out:
-	mutex_unlock(&rtlpriv->locks.conf_mutex);
-	return err;
-}
-
-static void rtl_op_remove_interface(struct ieee80211_hw *hw,
-				    struct ieee80211_vif *vif)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-
-	mutex_lock(&rtlpriv->locks.conf_mutex);
-
-	/* Free beacon resources */
-	if (vif->type == NL80211_IFTYPE_AP ||
-	    vif->type == NL80211_IFTYPE_ADHOC ||
-	    vif->type == NL80211_IFTYPE_MESH_POINT) {
-		if (mac->beacon_enabled == 1) {
-			mac->beacon_enabled = 0;
-			rtlpriv->cfg->ops->update_interrupt_mask(hw, 0,
-					rtlpriv->cfg->maps[RTL_IBSS_INT_MASKS]);
-		}
-	}
-
-	/*
-	 *Note: We assume NL80211_IFTYPE_UNSPECIFIED as
-	 *NO LINK for our hardware.
-	 */
-	mac->p2p = 0;
-	mac->vif = NULL;
-	mac->link_state = MAC80211_NOLINK;
-	eth_zero_addr(mac->bssid);
-	mac->vendor = PEER_UNKNOWN;
-	mac->opmode = NL80211_IFTYPE_UNSPECIFIED;
-	rtlpriv->cfg->ops->set_network_type(hw, mac->opmode);
-
-	mutex_unlock(&rtlpriv->locks.conf_mutex);
-}
-
-static int rtl_op_change_interface(struct ieee80211_hw *hw,
-				   struct ieee80211_vif *vif,
-				   enum nl80211_iftype new_type, bool p2p)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	int ret;
-
-	rtl_op_remove_interface(hw, vif);
-
-	vif->type = new_type;
-	vif->p2p = p2p;
-	ret = rtl_op_add_interface(hw, vif);
-	RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-		 "p2p  %x\n", p2p);
-	return ret;
-}
-
-#ifdef CONFIG_PM
-static u16 crc16_ccitt(u8 data, u16 crc)
-{
-	u8 shift_in, data_bit, crc_bit11, crc_bit4, crc_bit15;
-	u8 i;
-	u16 result;
-
-	for (i = 0; i < 8; i++) {
-		crc_bit15 = !!(crc & BIT(15));
-		data_bit  = !!(data & BIT(i));
-		shift_in = crc_bit15 ^ data_bit;
-
-		result = crc << 1;
-		if (shift_in == 0)
-			result &= ~BIT(0);
-		else
-			result |= BIT(0);
-
-		crc_bit11 = !!(crc & BIT(11)) ^ shift_in;
-		if (crc_bit11 == 0)
-			result &= ~BIT(12);
-		else
-			result |= BIT(12);
-
-		crc_bit4 = !!(crc & BIT(4)) ^ shift_in;
-		if (crc_bit4 == 0)
-			result &= ~BIT(5);
-		else
-			result |= BIT(5);
-
-		crc = result;
-	}
-
-	return crc;
-}
-
-static u16 _calculate_wol_pattern_crc(u8 *pattern, u16 len)
-{
-	u16 crc = 0xffff;
-	u32 i;
-
-	for (i = 0; i < len; i++)
-		crc = crc16_ccitt(pattern[i], crc);
-
-	return ~crc;
-}
-
-static void _rtl_add_wowlan_patterns(struct ieee80211_hw *hw,
-				     struct cfg80211_wowlan *wow)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = &rtlpriv->mac80211;
-	struct cfg80211_pkt_pattern *patterns = wow->patterns;
-	struct rtl_wow_pattern rtl_pattern;
-	const u8 *pattern_os, *mask_os;
-	u8 mask[MAX_WOL_BIT_MASK_SIZE] = {0};
-	u8 content[MAX_WOL_PATTERN_SIZE] = {0};
-	u8 broadcast_addr[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-	u8 multicast_addr1[2] = {0x33, 0x33};
-	u8 multicast_addr2[3] = {0x01, 0x00, 0x5e};
-	u8 i, mask_len;
-	u16 j, len;
-
-	for (i = 0; i < wow->n_patterns; i++) {
-		memset(&rtl_pattern, 0, sizeof(struct rtl_wow_pattern));
-		memset(mask, 0, MAX_WOL_BIT_MASK_SIZE);
-		if (patterns[i].pattern_len < 0 ||
-		    patterns[i].pattern_len > MAX_WOL_PATTERN_SIZE) {
-			RT_TRACE(rtlpriv, COMP_POWER, DBG_WARNING,
-				 "Pattern[%d] is too long\n", i);
-			continue;
-		}
-		pattern_os = patterns[i].pattern;
-		mask_len = DIV_ROUND_UP(patterns[i].pattern_len, 8);
-		mask_os = patterns[i].mask;
-		RT_PRINT_DATA(rtlpriv, COMP_POWER, DBG_TRACE,
-			      "pattern content\n", pattern_os,
-			       patterns[i].pattern_len);
-		RT_PRINT_DATA(rtlpriv, COMP_POWER, DBG_TRACE,
-			      "mask content\n", mask_os, mask_len);
-		/* 1. unicast? multicast? or broadcast? */
-		if (memcmp(pattern_os, broadcast_addr, 6) == 0)
-			rtl_pattern.type = BROADCAST_PATTERN;
-		else if (memcmp(pattern_os, multicast_addr1, 2) == 0 ||
-			 memcmp(pattern_os, multicast_addr2, 3) == 0)
-			rtl_pattern.type = MULTICAST_PATTERN;
-		else if  (memcmp(pattern_os, mac->mac_addr, 6) == 0)
-			rtl_pattern.type = UNICAST_PATTERN;
-		else
-			rtl_pattern.type = UNKNOWN_TYPE;
-
-		/* 2. translate mask_from_os to mask_for_hw */
-
-/******************************************************************************
- * pattern from OS uses 'ethenet frame', like this:
-
-		   |    6   |    6   |   2  |     20    |  Variable  |	4  |
-		   |--------+--------+------+-----------+------------+-----|
-		   |    802.3 Mac Header    | IP Header | TCP Packet | FCS |
-		   |   DA   |   SA   | Type |
-
- * BUT, packet catched by our HW is in '802.11 frame', begin from LLC,
-
-	|     24 or 30      |    6   |   2  |     20    |  Variable  |  4  |
-	|-------------------+--------+------+-----------+------------+-----|
-	| 802.11 MAC Header |       LLC     | IP Header | TCP Packet | FCS |
-			    | Others | Tpye |
-
- * Therefore, we need translate mask_from_OS to mask_to_hw.
- * We should left-shift mask by 6 bits, then set the new bit[0~5] = 0,
- * because new mask[0~5] means 'SA', but our HW packet begins from LLC,
- * bit[0~5] corresponds to first 6 Bytes in LLC, they just don't match.
- ******************************************************************************/
-
-		/* Shift 6 bits */
-		for (j = 0; j < mask_len - 1; j++) {
-			mask[j] = mask_os[j] >> 6;
-			mask[j] |= (mask_os[j + 1] & 0x3F) << 2;
-		}
-		mask[j] = (mask_os[j] >> 6) & 0x3F;
-		/* Set bit 0-5 to zero */
-		mask[0] &= 0xC0;
-
-		RT_PRINT_DATA(rtlpriv, COMP_POWER, DBG_TRACE,
-			      "mask to hw\n", mask, mask_len);
-		for (j = 0; j < (MAX_WOL_BIT_MASK_SIZE + 1) / 4; j++) {
-			rtl_pattern.mask[j] = mask[j * 4];
-			rtl_pattern.mask[j] |= (mask[j * 4 + 1] << 8);
-			rtl_pattern.mask[j] |= (mask[j * 4 + 2] << 16);
-			rtl_pattern.mask[j] |= (mask[j * 4 + 3] << 24);
-		}
-
-		/* To get the wake up pattern from the mask.
-		 * We do not count first 12 bits which means
-		 * DA[6] and SA[6] in the pattern to match HW design.
-		 */
-		len = 0;
-		for (j = 12; j < patterns[i].pattern_len; j++) {
-			if ((mask_os[j / 8] >> (j % 8)) & 0x01) {
-				content[len] = pattern_os[j];
-				len++;
-			}
-		}
-
-		RT_PRINT_DATA(rtlpriv, COMP_POWER, DBG_TRACE,
-			      "pattern to hw\n", content, len);
-		/* 3. calculate crc */
-		rtl_pattern.crc = _calculate_wol_pattern_crc(content, len);
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-			 "CRC_Remainder = 0x%x\n", rtl_pattern.crc);
-
-		/* 4. write crc & mask_for_hw to hw */
-		rtlpriv->cfg->ops->add_wowlan_pattern(hw, &rtl_pattern, i);
-	}
-	rtl_write_byte(rtlpriv, 0x698, wow->n_patterns);
-}
-
-static int rtl_op_suspend(struct ieee80211_hw *hw,
-			  struct cfg80211_wowlan *wow)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-
-	RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG, "\n");
-	if (WARN_ON(!wow))
-		return -EINVAL;
-
-	/* to resolve s4 can not wake up*/
-	rtlhal->last_suspend_sec = ktime_get_real_seconds();
-
-	if ((ppsc->wo_wlan_mode & WAKE_ON_PATTERN_MATCH) && wow->n_patterns)
-		_rtl_add_wowlan_patterns(hw, wow);
-
-	rtlhal->driver_is_goingto_unload = true;
-	rtlhal->enter_pnp_sleep = true;
-
-	rtl_lps_leave(hw);
-	rtl_op_stop(hw);
-	device_set_wakeup_enable(wiphy_dev(hw->wiphy), true);
-	return 0;
-}
-
-static int rtl_op_resume(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-
-	RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG, "\n");
-	rtlhal->driver_is_goingto_unload = false;
-	rtlhal->enter_pnp_sleep = false;
-	rtlhal->wake_from_pnp_sleep = true;
-
-	/* to resovle s4 can not wake up*/
-	if (ktime_get_real_seconds() - rtlhal->last_suspend_sec < 5)
-		return -1;
-
-	rtl_op_start(hw);
-	device_set_wakeup_enable(wiphy_dev(hw->wiphy), false);
-	ieee80211_resume_disconnect(mac->vif);
-	rtlhal->wake_from_pnp_sleep = false;
-	return 0;
-}
-#endif
-
-static int rtl_op_config(struct ieee80211_hw *hw, u32 changed)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct ieee80211_conf *conf = &hw->conf;
-
-	if (mac->skip_scan)
-		return 1;
-
-	mutex_lock(&rtlpriv->locks.conf_mutex);
-	if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) {	/* BIT(2)*/
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-			 "IEEE80211_CONF_CHANGE_LISTEN_INTERVAL\n");
-	}
-
-	/*For IPS */
-	if (changed & IEEE80211_CONF_CHANGE_IDLE) {
-		if (hw->conf.flags & IEEE80211_CONF_IDLE)
-			rtl_ips_nic_off(hw);
-		else
-			rtl_ips_nic_on(hw);
-	} else {
-		/*
-		 *although rfoff may not cause by ips, but we will
-		 *check the reason in set_rf_power_state function
-		 */
-		if (unlikely(ppsc->rfpwr_state == ERFOFF))
-			rtl_ips_nic_on(hw);
-	}
-
-	/*For LPS */
-	if ((changed & IEEE80211_CONF_CHANGE_PS) &&
-	    rtlpriv->psc.swctrl_lps && !rtlpriv->psc.fwctrl_lps) {
-		cancel_delayed_work(&rtlpriv->works.ps_work);
-		cancel_delayed_work(&rtlpriv->works.ps_rfon_wq);
-		if (conf->flags & IEEE80211_CONF_PS) {
-			rtlpriv->psc.sw_ps_enabled = true;
-			/* sleep here is must, or we may recv the beacon and
-			 * cause mac80211 into wrong ps state, this will cause
-			 * power save nullfunc send fail, and further cause
-			 * pkt loss, So sleep must quickly but not immediately
-			 * because that will cause nullfunc send by mac80211
-			 * fail, and cause pkt loss, we have tested that 5mA
-			 * works very well
-			 */
-			if (!rtlpriv->psc.multi_buffered)
-				queue_delayed_work(rtlpriv->works.rtl_wq,
-						   &rtlpriv->works.ps_work,
-						   MSECS(5));
-		} else {
-			rtl_swlps_rf_awake(hw);
-			rtlpriv->psc.sw_ps_enabled = false;
-		}
-	}
-
-	if (changed & IEEE80211_CONF_CHANGE_RETRY_LIMITS) {
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-			 "IEEE80211_CONF_CHANGE_RETRY_LIMITS %x\n",
-			 hw->conf.long_frame_max_tx_count);
-		/* brought up everything changes (changed == ~0) indicates first
-		 * open, so use our default value instead of that of wiphy.
-		 */
-		if (changed != ~0) {
-			mac->retry_long = hw->conf.long_frame_max_tx_count;
-			mac->retry_short = hw->conf.long_frame_max_tx_count;
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RETRY_LIMIT,
-				(u8 *)(&hw->conf.long_frame_max_tx_count));
-		}
-	}
-
-	if (changed & IEEE80211_CONF_CHANGE_CHANNEL &&
-	    !rtlpriv->proximity.proxim_on) {
-		struct ieee80211_channel *channel = hw->conf.chandef.chan;
-		enum nl80211_chan_width width = hw->conf.chandef.width;
-		enum nl80211_channel_type channel_type = NL80211_CHAN_NO_HT;
-		u8 wide_chan = (u8)channel->hw_value;
-
-		/* channel_type is for 20&40M */
-		if (width < NL80211_CHAN_WIDTH_80)
-			channel_type =
-				cfg80211_get_chandef_type(&hw->conf.chandef);
-		if (mac->act_scanning)
-			mac->n_channels++;
-
-		if (rtlpriv->dm.supp_phymode_switch &&
-		    mac->link_state < MAC80211_LINKED &&
-		    !mac->act_scanning) {
-			if (rtlpriv->cfg->ops->chk_switch_dmdp)
-				rtlpriv->cfg->ops->chk_switch_dmdp(hw);
-		}
-
-		/*
-		 *because we should back channel to
-		 *current_network.chan in in scanning,
-		 *So if set_chan == current_network.chan
-		 *we should set it.
-		 *because mac80211 tell us wrong bw40
-		 *info for cisco1253 bw20, so we modify
-		 *it here based on UPPER & LOWER
-		 */
-
-		if (width >= NL80211_CHAN_WIDTH_80) {
-			if (width == NL80211_CHAN_WIDTH_80) {
-				u32 center = hw->conf.chandef.center_freq1;
-				u32 primary =
-				(u32)hw->conf.chandef.chan->center_freq;
-
-				rtlphy->current_chan_bw =
-					HT_CHANNEL_WIDTH_80;
-				mac->bw_80 = true;
-				mac->bw_40 = true;
-				if (center > primary) {
-					mac->cur_80_prime_sc =
-					PRIME_CHNL_OFFSET_LOWER;
-					if (center - primary == 10) {
-						mac->cur_40_prime_sc =
-						PRIME_CHNL_OFFSET_UPPER;
-
-						wide_chan += 2;
-					} else if (center - primary == 30) {
-						mac->cur_40_prime_sc =
-						PRIME_CHNL_OFFSET_LOWER;
-
-						wide_chan += 6;
-					}
-				} else {
-					mac->cur_80_prime_sc =
-					PRIME_CHNL_OFFSET_UPPER;
-					if (primary - center == 10) {
-						mac->cur_40_prime_sc =
-						PRIME_CHNL_OFFSET_LOWER;
-
-						wide_chan -= 2;
-					} else if (primary - center == 30) {
-						mac->cur_40_prime_sc =
-						PRIME_CHNL_OFFSET_UPPER;
-
-						wide_chan -= 6;
-					}
-				}
-			}
-		} else {
-			switch (channel_type) {
-			case NL80211_CHAN_HT20:
-			case NL80211_CHAN_NO_HT:
-					/* SC */
-					mac->cur_40_prime_sc =
-						PRIME_CHNL_OFFSET_DONT_CARE;
-					rtlphy->current_chan_bw =
-						HT_CHANNEL_WIDTH_20;
-					mac->bw_40 = false;
-					mac->bw_80 = false;
-					break;
-			case NL80211_CHAN_HT40MINUS:
-					/* SC */
-					mac->cur_40_prime_sc =
-						PRIME_CHNL_OFFSET_UPPER;
-					rtlphy->current_chan_bw =
-						HT_CHANNEL_WIDTH_20_40;
-					mac->bw_40 = true;
-					mac->bw_80 = false;
-
-					/*wide channel */
-					wide_chan -= 2;
-
-					break;
-			case NL80211_CHAN_HT40PLUS:
-					/* SC */
-					mac->cur_40_prime_sc =
-						PRIME_CHNL_OFFSET_LOWER;
-					rtlphy->current_chan_bw =
-						HT_CHANNEL_WIDTH_20_40;
-					mac->bw_40 = true;
-					mac->bw_80 = false;
-
-					/*wide channel */
-					wide_chan += 2;
-
-					break;
-			default:
-					mac->bw_40 = false;
-					mac->bw_80 = false;
-					pr_err("switch case %#x not processed\n",
-					       channel_type);
-					break;
-			}
-		}
-
-		if (wide_chan <= 0)
-			wide_chan = 1;
-
-		/* In scanning, when before we offchannel we may send a ps=1
-		 * null to AP, and then we may send a ps = 0 null to AP quickly,
-		 * but first null may have caused AP to put lots of packet to
-		 * hw tx buffer. These packets must be tx'd before we go off
-		 * channel so we must delay more time to let AP flush these
-		 * packets before going offchannel, or dis-association or
-		 * delete BA will be caused by AP
-		 */
-		if (rtlpriv->mac80211.offchan_delay) {
-			rtlpriv->mac80211.offchan_delay = false;
-			mdelay(50);
-		}
-
-		rtlphy->current_channel = wide_chan;
-
-		rtlpriv->cfg->ops->switch_channel(hw);
-		rtlpriv->cfg->ops->set_channel_access(hw);
-		rtlpriv->cfg->ops->set_bw_mode(hw, channel_type);
-	}
-
-	mutex_unlock(&rtlpriv->locks.conf_mutex);
-
-	return 0;
-}
-
-static void rtl_op_configure_filter(struct ieee80211_hw *hw,
-				    unsigned int changed_flags,
-				    unsigned int *new_flags, u64 multicast)
-{
-	bool update_rcr = false;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-
-	*new_flags &= RTL_SUPPORTED_FILTERS;
-	if (changed_flags == 0)
-		return;
-
-	/*TODO: we disable broadcase now, so enable here */
-	if (changed_flags & FIF_ALLMULTI) {
-		if (*new_flags & FIF_ALLMULTI) {
-			mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_AM] |
-			    rtlpriv->cfg->maps[MAC_RCR_AB];
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-				 "Enable receive multicast frame\n");
-		} else {
-			mac->rx_conf &= ~(rtlpriv->cfg->maps[MAC_RCR_AM] |
-					  rtlpriv->cfg->maps[MAC_RCR_AB]);
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-				 "Disable receive multicast frame\n");
-		}
-		update_rcr = true;
-	}
-
-	if (changed_flags & FIF_FCSFAIL) {
-		if (*new_flags & FIF_FCSFAIL) {
-			mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_ACRC32];
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-				 "Enable receive FCS error frame\n");
-		} else {
-			mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_ACRC32];
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-				 "Disable receive FCS error frame\n");
-		}
-		if (!update_rcr)
-			update_rcr = true;
-	}
-
-	/* if ssid not set to hw don't check bssid
-	 * here just used for linked scanning, & linked
-	 * and nolink check bssid is set in set network_type
-	 */
-	if (changed_flags & FIF_BCN_PRBRESP_PROMISC &&
-	    mac->link_state >= MAC80211_LINKED) {
-		if (mac->opmode != NL80211_IFTYPE_AP &&
-		    mac->opmode != NL80211_IFTYPE_MESH_POINT) {
-			if (*new_flags & FIF_BCN_PRBRESP_PROMISC)
-				rtlpriv->cfg->ops->set_chk_bssid(hw, false);
-			else
-				rtlpriv->cfg->ops->set_chk_bssid(hw, true);
-			if (update_rcr)
-				update_rcr = false;
-		}
-	}
-
-	if (changed_flags & FIF_CONTROL) {
-		if (*new_flags & FIF_CONTROL) {
-			mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_ACF];
-
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-				 "Enable receive control frame.\n");
-		} else {
-			mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_ACF];
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-				 "Disable receive control frame.\n");
-		}
-		if (!update_rcr)
-			update_rcr = true;
-	}
-
-	if (changed_flags & FIF_OTHER_BSS) {
-		if (*new_flags & FIF_OTHER_BSS) {
-			mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_AAP];
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-				 "Enable receive other BSS's frame.\n");
-		} else {
-			mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_AAP];
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-				 "Disable receive other BSS's frame.\n");
-		}
-		if (!update_rcr)
-			update_rcr = true;
-	}
-
-	if (update_rcr)
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR,
-					      (u8 *)(&mac->rx_conf));
-}
-
-static int rtl_op_sta_add(struct ieee80211_hw *hw,
-			  struct ieee80211_vif *vif,
-			  struct ieee80211_sta *sta)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_sta_info *sta_entry;
-
-	if (sta) {
-		sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-		spin_lock_bh(&rtlpriv->locks.entry_list_lock);
-		list_add_tail(&sta_entry->list, &rtlpriv->entry_list);
-		spin_unlock_bh(&rtlpriv->locks.entry_list_lock);
-		if (rtlhal->current_bandtype == BAND_ON_2_4G) {
-			sta_entry->wireless_mode = WIRELESS_MODE_G;
-			if (sta->supp_rates[0] <= 0xf)
-				sta_entry->wireless_mode = WIRELESS_MODE_B;
-			if (sta->ht_cap.ht_supported)
-				sta_entry->wireless_mode = WIRELESS_MODE_N_24G;
-
-			if (vif->type == NL80211_IFTYPE_ADHOC)
-				sta_entry->wireless_mode = WIRELESS_MODE_G;
-		} else if (rtlhal->current_bandtype == BAND_ON_5G) {
-			sta_entry->wireless_mode = WIRELESS_MODE_A;
-			if (sta->ht_cap.ht_supported)
-				sta_entry->wireless_mode = WIRELESS_MODE_N_5G;
-			if (sta->vht_cap.vht_supported)
-				sta_entry->wireless_mode = WIRELESS_MODE_AC_5G;
-
-			if (vif->type == NL80211_IFTYPE_ADHOC)
-				sta_entry->wireless_mode = WIRELESS_MODE_A;
-		}
-		/*disable cck rate for p2p*/
-		if (mac->p2p)
-			sta->supp_rates[0] &= 0xfffffff0;
-
-		if (sta->ht_cap.ht_supported) {
-			if (sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40)
-				rtlphy->max_ht_chan_bw = HT_CHANNEL_WIDTH_20_40;
-			else
-				rtlphy->max_ht_chan_bw = HT_CHANNEL_WIDTH_20;
-		}
-
-		if (sta->vht_cap.vht_supported)
-			rtlphy->max_vht_chan_bw = HT_CHANNEL_WIDTH_80;
-
-		memcpy(sta_entry->mac_addr, sta->addr, ETH_ALEN);
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-			 "Add sta addr is %pM\n", sta->addr);
-		rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0, true);
-
-		if (rtlpriv->phydm.ops)
-			rtlpriv->phydm.ops->phydm_add_sta(rtlpriv, sta);
-	}
-
-	return 0;
-}
-
-static int rtl_op_sta_remove(struct ieee80211_hw *hw,
-			     struct ieee80211_vif *vif,
-			     struct ieee80211_sta *sta)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_sta_info *sta_entry;
-
-	if (sta) {
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-			 "Remove sta addr is %pM\n", sta->addr);
-
-		if (rtlpriv->phydm.ops)
-			rtlpriv->phydm.ops->phydm_del_sta(rtlpriv, sta);
-
-		sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-		sta_entry->wireless_mode = 0;
-		sta_entry->ratr_index = 0;
-		spin_lock_bh(&rtlpriv->locks.entry_list_lock);
-		list_del(&sta_entry->list);
-		spin_unlock_bh(&rtlpriv->locks.entry_list_lock);
-	}
-	return 0;
-}
-
-static int _rtl_get_hal_qnum(u16 queue)
-{
-	int qnum;
-
-	switch (queue) {
-	case 0:
-		qnum = AC3_VO;
-		break;
-	case 1:
-		qnum = AC2_VI;
-		break;
-	case 2:
-		qnum = AC0_BE;
-		break;
-	case 3:
-		qnum = AC1_BK;
-		break;
-	default:
-		qnum = AC0_BE;
-		break;
-	}
-	return qnum;
-}
-
-static void rtl_op_sta_statistics(struct ieee80211_hw *hw,
-				  struct ieee80211_vif *vif,
-				  struct ieee80211_sta *sta,
-				  struct station_info *sinfo)
-{
-	/* nothing filled by driver, so mac80211 will update all info */
-	sinfo->filled = 0;
-}
-
-static int rtl_op_set_frag_threshold(struct ieee80211_hw *hw, u32 value)
-{
-	return -EOPNOTSUPP;
-}
-
-/*
- *for mac80211 VO = 0, VI = 1, BE = 2, BK = 3
- *for rtl819x  BE = 0, BK = 1, VI = 2, VO = 3
- */
-static int rtl_op_conf_tx(struct ieee80211_hw *hw,
-			  struct ieee80211_vif *vif, u16 queue,
-			  const struct ieee80211_tx_queue_params *param)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	int aci;
-
-	if (queue >= AC_MAX) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "queue number %d is incorrect!\n", queue);
-		return -EINVAL;
-	}
-
-	aci = _rtl_get_hal_qnum(queue);
-	mac->ac[aci].aifs = param->aifs;
-	mac->ac[aci].cw_min = cpu_to_le16(param->cw_min);
-	mac->ac[aci].cw_max = cpu_to_le16(param->cw_max);
-	mac->ac[aci].tx_op = cpu_to_le16(param->txop);
-	memcpy(&mac->edca_param[aci], param, sizeof(*param));
-	rtlpriv->cfg->ops->set_qos(hw, aci);
-	return 0;
-}
-
-static void send_beacon_frame(struct ieee80211_hw *hw,
-			      struct ieee80211_vif *vif)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct sk_buff *skb = ieee80211_beacon_get(hw, vif);
-	struct rtl_tcb_desc tcb_desc;
-
-	if (skb) {
-		memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc));
-		rtlpriv->intf_ops->adapter_tx(hw, NULL, skb, &tcb_desc);
-	}
-}
-
-static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
-				    struct ieee80211_vif *vif,
-				    struct ieee80211_bss_conf *bss_conf,
-				    u32 changed)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-
-	mutex_lock(&rtlpriv->locks.conf_mutex);
-	if (vif->type == NL80211_IFTYPE_ADHOC ||
-	    vif->type == NL80211_IFTYPE_AP ||
-	    vif->type == NL80211_IFTYPE_MESH_POINT) {
-		if (changed & BSS_CHANGED_BEACON ||
-		    (changed & BSS_CHANGED_BEACON_ENABLED &&
-		     bss_conf->enable_beacon)) {
-			if (mac->beacon_enabled == 0) {
-				RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-					 "BSS_CHANGED_BEACON_ENABLED\n");
-
-				/*start hw beacon interrupt. */
-				/*rtlpriv->cfg->ops->set_bcn_reg(hw); */
-				mac->beacon_enabled = 1;
-				rtlpriv->cfg->ops->update_interrupt_mask(hw,
-						rtlpriv->cfg->maps
-						[RTL_IBSS_INT_MASKS], 0);
-
-				if (rtlpriv->cfg->ops->linked_set_reg)
-					rtlpriv->cfg->ops->linked_set_reg(hw);
-				send_beacon_frame(hw, vif);
-			}
-		}
-		if ((changed & BSS_CHANGED_BEACON_ENABLED &&
-		     !bss_conf->enable_beacon)) {
-			if (mac->beacon_enabled == 1) {
-				RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-					 "ADHOC DISABLE BEACON\n");
-
-				mac->beacon_enabled = 0;
-				rtlpriv->cfg->ops->update_interrupt_mask(hw, 0,
-						rtlpriv->cfg->maps
-						[RTL_IBSS_INT_MASKS]);
-			}
-		}
-		if (changed & BSS_CHANGED_BEACON_INT) {
-			RT_TRACE(rtlpriv, COMP_BEACON, DBG_TRACE,
-				 "BSS_CHANGED_BEACON_INT\n");
-			mac->beacon_interval = bss_conf->beacon_int;
-			rtlpriv->cfg->ops->set_bcn_intv(hw);
-		}
-	}
-
-	/*TODO: reference to enum ieee80211_bss_change */
-	if (changed & BSS_CHANGED_ASSOC) {
-		u8 mstatus;
-
-		if (bss_conf->assoc) {
-			struct ieee80211_sta *sta = NULL;
-			u8 keep_alive = 10;
-
-			mstatus = RT_MEDIA_CONNECT;
-			/* we should reset all sec info & cam
-			 * before set cam after linked, we should not
-			 * reset in disassoc, that will cause tkip->wep
-			 * fail because some flag will be wrong
-			 * reset sec info
-			 */
-			rtl_cam_reset_sec_info(hw);
-			/* reset cam to fix wep fail issue
-			 * when change from wpa to wep
-			 */
-			rtl_cam_reset_all_entry(hw);
-
-			mac->link_state = MAC80211_LINKED;
-			mac->cnt_after_linked = 0;
-			mac->assoc_id = bss_conf->aid;
-			memcpy(mac->bssid, bss_conf->bssid, ETH_ALEN);
-
-			if (rtlpriv->cfg->ops->linked_set_reg)
-				rtlpriv->cfg->ops->linked_set_reg(hw);
-
-			rcu_read_lock();
-			sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid);
-			if (!sta) {
-				rcu_read_unlock();
-				goto out;
-			}
-			RT_TRACE(rtlpriv, COMP_EASY_CONCURRENT, DBG_LOUD,
-				 "send PS STATIC frame\n");
-			if (rtlpriv->dm.supp_phymode_switch) {
-				if (sta->ht_cap.ht_supported)
-					rtl_send_smps_action(hw, sta,
-							     IEEE80211_SMPS_STATIC);
-			}
-
-			if (rtlhal->current_bandtype == BAND_ON_5G) {
-				mac->mode = WIRELESS_MODE_A;
-			} else {
-				if (sta->supp_rates[0] <= 0xf)
-					mac->mode = WIRELESS_MODE_B;
-				else
-					mac->mode = WIRELESS_MODE_G;
-			}
-
-			if (sta->ht_cap.ht_supported) {
-				if (rtlhal->current_bandtype == BAND_ON_2_4G)
-					mac->mode = WIRELESS_MODE_N_24G;
-				else
-					mac->mode = WIRELESS_MODE_N_5G;
-			}
-
-			if (sta->vht_cap.vht_supported) {
-				if (rtlhal->current_bandtype == BAND_ON_5G)
-					mac->mode = WIRELESS_MODE_AC_5G;
-				else
-					mac->mode = WIRELESS_MODE_AC_24G;
-			}
-
-			if (vif->type == NL80211_IFTYPE_STATION)
-				rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0,
-								   true);
-			rcu_read_unlock();
-
-			/* to avoid AP Disassociation caused by inactivity */
-			rtlpriv->cfg->ops->set_hw_reg(hw,
-						      HW_VAR_KEEP_ALIVE,
-						      (u8 *)(&keep_alive));
-
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-				 "BSS_CHANGED_ASSOC\n");
-		} else {
-			struct cfg80211_bss *bss = NULL;
-
-			mstatus = RT_MEDIA_DISCONNECT;
-
-			if (mac->link_state == MAC80211_LINKED)
-				rtl_lps_leave(hw);
-			if (ppsc->p2p_ps_info.p2p_ps_mode > P2P_PS_NONE)
-				rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE);
-			mac->link_state = MAC80211_NOLINK;
-
-			bss = cfg80211_get_bss(hw->wiphy, NULL,
-					       (u8 *)mac->bssid, NULL, 0,
-					       IEEE80211_BSS_TYPE_ESS,
-					       IEEE80211_PRIVACY_OFF);
-
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-				 "bssid = %x-%x-%x-%x-%x-%x\n",
-				 mac->bssid[0], mac->bssid[1],
-				 mac->bssid[2], mac->bssid[3],
-				 mac->bssid[4], mac->bssid[5]);
-
-			if (bss) {
-				cfg80211_unlink_bss(hw->wiphy, bss);
-				cfg80211_put_bss(hw->wiphy, bss);
-				RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-					 "cfg80211_unlink !!\n");
-			}
-
-			eth_zero_addr(mac->bssid);
-			mac->vendor = PEER_UNKNOWN;
-			mac->mode = 0;
-
-			if (rtlpriv->dm.supp_phymode_switch) {
-				if (rtlpriv->cfg->ops->chk_switch_dmdp)
-					rtlpriv->cfg->ops->chk_switch_dmdp(hw);
-			}
-			RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-				 "BSS_CHANGED_UN_ASSOC\n");
-		}
-		rtlpriv->cfg->ops->set_network_type(hw, vif->type);
-		/* For FW LPS:
-		 * To tell firmware we have connected or disconnected
-		 */
-		rtlpriv->cfg->ops->set_hw_reg(hw,
-					      HW_VAR_H2C_FW_JOINBSSRPT,
-					      (u8 *)(&mstatus));
-		ppsc->report_linked = (mstatus == RT_MEDIA_CONNECT) ?
-				      true : false;
-
-		if (rtlpriv->cfg->ops->get_btc_status())
-			rtlpriv->btcoexist.btc_ops->btc_mediastatus_notify(
-							rtlpriv, mstatus);
-	}
-
-	if (changed & BSS_CHANGED_ERP_CTS_PROT) {
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-			 "BSS_CHANGED_ERP_CTS_PROT\n");
-		mac->use_cts_protect = bss_conf->use_cts_prot;
-	}
-
-	if (changed & BSS_CHANGED_ERP_PREAMBLE) {
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-			 "BSS_CHANGED_ERP_PREAMBLE use short preamble:%x\n",
-			  bss_conf->use_short_preamble);
-
-		mac->short_preamble = bss_conf->use_short_preamble;
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACK_PREAMBLE,
-					      (u8 *)(&mac->short_preamble));
-	}
-
-	if (changed & BSS_CHANGED_ERP_SLOT) {
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-			 "BSS_CHANGED_ERP_SLOT\n");
-
-		if (bss_conf->use_short_slot)
-			mac->slot_time = RTL_SLOT_TIME_9;
-		else
-			mac->slot_time = RTL_SLOT_TIME_20;
-
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME,
-					      (u8 *)(&mac->slot_time));
-	}
-
-	if (changed & BSS_CHANGED_HT) {
-		struct ieee80211_sta *sta = NULL;
-
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-			 "BSS_CHANGED_HT\n");
-
-		rcu_read_lock();
-		sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid);
-		if (sta) {
-			if (sta->ht_cap.ampdu_density >
-			    mac->current_ampdu_density)
-				mac->current_ampdu_density =
-				    sta->ht_cap.ampdu_density;
-			if (sta->ht_cap.ampdu_factor <
-			    mac->current_ampdu_factor)
-				mac->current_ampdu_factor =
-				    sta->ht_cap.ampdu_factor;
-
-			if (sta->ht_cap.ht_supported) {
-				if (sta->ht_cap.cap &
-				    IEEE80211_HT_CAP_SUP_WIDTH_20_40)
-					rtlphy->max_ht_chan_bw =
-							HT_CHANNEL_WIDTH_20_40;
-				else
-					rtlphy->max_ht_chan_bw =
-							HT_CHANNEL_WIDTH_20;
-			}
-		}
-		rcu_read_unlock();
-
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SHORTGI_DENSITY,
-					      (u8 *)(&mac->max_mss_density));
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AMPDU_FACTOR,
-					      &mac->current_ampdu_factor);
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AMPDU_MIN_SPACE,
-					      &mac->current_ampdu_density);
-	}
-
-	if (changed & BSS_CHANGED_BANDWIDTH) {
-		struct ieee80211_sta *sta = NULL;
-
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-			 "BSS_CHANGED_BANDWIDTH\n");
-
-		rcu_read_lock();
-		sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid);
-
-		if (sta) {
-			if (sta->ht_cap.ht_supported) {
-				if (sta->ht_cap.cap &
-				    IEEE80211_HT_CAP_SUP_WIDTH_20_40)
-					rtlphy->max_ht_chan_bw =
-							HT_CHANNEL_WIDTH_20_40;
-				else
-					rtlphy->max_ht_chan_bw =
-							HT_CHANNEL_WIDTH_20;
-			}
-
-			if (sta->vht_cap.vht_supported)
-				rtlphy->max_vht_chan_bw = HT_CHANNEL_WIDTH_80;
-		}
-		rcu_read_unlock();
-	}
-
-	if (changed & BSS_CHANGED_BSSID) {
-		u32 basic_rates;
-		struct ieee80211_sta *sta = NULL;
-
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BSSID,
-					      (u8 *)bss_conf->bssid);
-
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-			 "bssid: %pM\n", bss_conf->bssid);
-
-		mac->vendor = PEER_UNKNOWN;
-		memcpy(mac->bssid, bss_conf->bssid, ETH_ALEN);
-
-		rcu_read_lock();
-		sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid);
-		if (!sta) {
-			rcu_read_unlock();
-			goto out;
-		}
-
-		if (rtlhal->current_bandtype == BAND_ON_5G) {
-			mac->mode = WIRELESS_MODE_A;
-		} else {
-			if (sta->supp_rates[0] <= 0xf)
-				mac->mode = WIRELESS_MODE_B;
-			else
-				mac->mode = WIRELESS_MODE_G;
-		}
-
-		if (sta->ht_cap.ht_supported) {
-			if (rtlhal->current_bandtype == BAND_ON_2_4G)
-				mac->mode = WIRELESS_MODE_N_24G;
-			else
-				mac->mode = WIRELESS_MODE_N_5G;
-		}
-
-		if (sta->vht_cap.vht_supported) {
-			if (rtlhal->current_bandtype == BAND_ON_5G)
-				mac->mode = WIRELESS_MODE_AC_5G;
-			else
-				mac->mode = WIRELESS_MODE_AC_24G;
-		}
-
-		/* just station need it, because ibss & ap mode will
-		 * set in sta_add, and will be NULL here
-		 */
-		if (vif->type == NL80211_IFTYPE_STATION) {
-			struct rtl_sta_info *sta_entry;
-
-			sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-			sta_entry->wireless_mode = mac->mode;
-		}
-
-		if (sta->ht_cap.ht_supported) {
-			mac->ht_enable = true;
-
-			/* for cisco 1252 bw20 it's wrong
-			 * if (ht_cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) {
-			 *	mac->bw_40 = true;
-			 * }
-			 */
-		}
-
-		if (sta->vht_cap.vht_supported)
-			mac->vht_enable = true;
-
-		if (changed & BSS_CHANGED_BASIC_RATES) {
-			/* for 5G must << RATE_6M_INDEX = 4,
-			 * because 5G have no cck rate
-			 */
-			if (rtlhal->current_bandtype == BAND_ON_5G)
-				basic_rates = sta->supp_rates[1] << 4;
-			else
-				basic_rates = sta->supp_rates[0];
-
-			mac->basic_rates = basic_rates;
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE,
-					(u8 *)(&basic_rates));
-		}
-		rcu_read_unlock();
-	}
-out:
-	mutex_unlock(&rtlpriv->locks.conf_mutex);
-}
-
-static u64 rtl_op_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u64 tsf;
-
-	rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_CORRECT_TSF, (u8 *)(&tsf));
-	return tsf;
-}
-
-static void rtl_op_set_tsf(struct ieee80211_hw *hw,
-			   struct ieee80211_vif *vif, u64 tsf)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	u8 bibss = (mac->opmode == NL80211_IFTYPE_ADHOC) ? 1 : 0;
-
-	mac->tsf = tsf;
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_CORRECT_TSF, (u8 *)(&bibss));
-}
-
-static void rtl_op_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 tmp = 0;
-
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_DUAL_TSF_RST, (u8 *)(&tmp));
-}
-
-static void rtl_op_sta_notify(struct ieee80211_hw *hw,
-			      struct ieee80211_vif *vif,
-			      enum sta_notify_cmd cmd,
-			      struct ieee80211_sta *sta)
-{
-	switch (cmd) {
-	case STA_NOTIFY_SLEEP:
-		break;
-	case STA_NOTIFY_AWAKE:
-		break;
-	default:
-		break;
-	}
-}
-
-static int rtl_op_ampdu_action(struct ieee80211_hw *hw,
-			       struct ieee80211_vif *vif,
-			       struct ieee80211_ampdu_params *params)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct ieee80211_sta *sta = params->sta;
-	enum ieee80211_ampdu_mlme_action action = params->action;
-	u16 tid = params->tid;
-	u16 *ssn = &params->ssn;
-
-	switch (action) {
-	case IEEE80211_AMPDU_TX_START:
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-			 "IEEE80211_AMPDU_TX_START: TID:%d\n", tid);
-		return rtl_tx_agg_start(hw, vif, sta, tid, ssn);
-	case IEEE80211_AMPDU_TX_STOP_CONT:
-	case IEEE80211_AMPDU_TX_STOP_FLUSH:
-	case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT:
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-			 "IEEE80211_AMPDU_TX_STOP: TID:%d\n", tid);
-		return rtl_tx_agg_stop(hw, vif, sta, tid);
-	case IEEE80211_AMPDU_TX_OPERATIONAL:
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-			 "IEEE80211_AMPDU_TX_OPERATIONAL:TID:%d\n", tid);
-		rtl_tx_agg_oper(hw, sta, tid);
-		break;
-	case IEEE80211_AMPDU_RX_START:
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-			 "IEEE80211_AMPDU_RX_START:TID:%d\n", tid);
-		return rtl_rx_agg_start(hw, sta, tid);
-	case IEEE80211_AMPDU_RX_STOP:
-		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-			 "IEEE80211_AMPDU_RX_STOP:TID:%d\n", tid);
-		return rtl_rx_agg_stop(hw, sta, tid);
-	default:
-		pr_err("IEEE80211_AMPDU_ERR!!!!:\n");
-		return -EOPNOTSUPP;
-	}
-	return 0;
-}
-
-static void rtl_op_sw_scan_start(struct ieee80211_hw *hw,
-				 struct ieee80211_vif *vif,
-				 const u8 *mac_addr)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-
-	RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "\n");
-	mac->act_scanning = true;
-	if (rtlpriv->link_info.higher_busytraffic) {
-		mac->skip_scan = true;
-		return;
-	}
-
-	if (rtlpriv->phydm.ops)
-		rtlpriv->phydm.ops->phydm_pause_dig(rtlpriv, 1);
-
-	if (rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->btcoexist.btc_ops->btc_scan_notify(rtlpriv, 1);
-	else if (rtlpriv->btcoexist.btc_ops)
-		rtlpriv->btcoexist.btc_ops->btc_scan_notify_wifi_only(rtlpriv,
-								      1);
-
-	if (rtlpriv->dm.supp_phymode_switch) {
-		if (rtlpriv->cfg->ops->chk_switch_dmdp)
-			rtlpriv->cfg->ops->chk_switch_dmdp(hw);
-	}
-
-	if (mac->link_state == MAC80211_LINKED) {
-		rtl_lps_leave(hw);
-		mac->link_state = MAC80211_LINKED_SCANNING;
-	} else {
-		rtl_ips_nic_on(hw);
-	}
-
-	/* Dul mac */
-	rtlpriv->rtlhal.load_imrandiqk_setting_for2g = false;
-
-	rtlpriv->cfg->ops->led_control(hw, LED_CTL_SITE_SURVEY);
-	rtlpriv->cfg->ops->scan_operation_backup(hw, SCAN_OPT_BACKUP_BAND0);
-}
-
-static void rtl_op_sw_scan_complete(struct ieee80211_hw *hw,
-				    struct ieee80211_vif *vif)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-
-	RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "\n");
-	mac->act_scanning = false;
-	mac->skip_scan = false;
-
-	rtlpriv->btcoexist.btc_info.ap_num = rtlpriv->scan_list.num;
-
-	if (rtlpriv->link_info.higher_busytraffic)
-		return;
-
-	/* p2p will use 1/6/11 to scan */
-	if (mac->n_channels == 3)
-		mac->p2p_in_use = true;
-	else
-		mac->p2p_in_use = false;
-	mac->n_channels = 0;
-	/* Dul mac */
-	rtlpriv->rtlhal.load_imrandiqk_setting_for2g = false;
-
-	if (mac->link_state == MAC80211_LINKED_SCANNING) {
-		mac->link_state = MAC80211_LINKED;
-		if (mac->opmode == NL80211_IFTYPE_STATION) {
-			/* fix fwlps issue */
-			rtlpriv->cfg->ops->set_network_type(hw, mac->opmode);
-		}
-	}
-
-	rtlpriv->cfg->ops->scan_operation_backup(hw, SCAN_OPT_RESTORE);
-	if (rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->btcoexist.btc_ops->btc_scan_notify(rtlpriv, 0);
-	else if (rtlpriv->btcoexist.btc_ops)
-		rtlpriv->btcoexist.btc_ops->btc_scan_notify_wifi_only(rtlpriv,
-								      0);
-
-	if (rtlpriv->phydm.ops)
-		rtlpriv->phydm.ops->phydm_pause_dig(rtlpriv, 0);
-}
-
-static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
-			  struct ieee80211_vif *vif, struct ieee80211_sta *sta,
-			  struct ieee80211_key_conf *key)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 key_type = NO_ENCRYPTION;
-	u8 key_idx;
-	bool group_key = false;
-	bool wep_only = false;
-	int err = 0;
-	u8 mac_addr[ETH_ALEN];
-	u8 bcast_addr[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
-
-	rtlpriv->btcoexist.btc_info.in_4way = false;
-
-	if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "not open hw encryption\n");
-		return -ENOSPC;	/*User disabled HW-crypto */
-	}
-	/* To support IBSS, use sw-crypto for GTK */
-	if ((vif->type == NL80211_IFTYPE_ADHOC ||
-	     vif->type == NL80211_IFTYPE_MESH_POINT) &&
-	    !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE))
-		return -ENOSPC;
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-		 "%s hardware based encryption for keyidx: %d, mac: %pM\n",
-		  cmd == SET_KEY ? "Using" : "Disabling", key->keyidx,
-		  sta ? sta->addr : bcast_addr);
-	rtlpriv->sec.being_setkey = true;
-	rtl_ips_nic_on(hw);
-	mutex_lock(&rtlpriv->locks.conf_mutex);
-	/* <1> get encryption alg */
-
-	switch (key->cipher) {
-	case WLAN_CIPHER_SUITE_WEP40:
-		key_type = WEP40_ENCRYPTION;
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:WEP40\n");
-		break;
-	case WLAN_CIPHER_SUITE_WEP104:
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:WEP104\n");
-		key_type = WEP104_ENCRYPTION;
-		break;
-	case WLAN_CIPHER_SUITE_TKIP:
-		key_type = TKIP_ENCRYPTION;
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:TKIP\n");
-		break;
-	case WLAN_CIPHER_SUITE_CCMP:
-		key_type = AESCCMP_ENCRYPTION;
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:CCMP\n");
-		break;
-	case WLAN_CIPHER_SUITE_AES_CMAC:
-		/* HW don't support CMAC encryption,
-		 * use software CMAC encryption
-		 */
-		key_type = AESCMAC_ENCRYPTION;
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:CMAC\n");
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-			 "HW don't support CMAC encryption, use software CMAC encryption\n");
-		err = -EOPNOTSUPP;
-		goto out_unlock;
-	default:
-		pr_err("alg_err:%x!!!!:\n", key->cipher);
-		goto out_unlock;
-	}
-	if (key_type == WEP40_ENCRYPTION ||
-	    key_type == WEP104_ENCRYPTION ||
-	    vif->type == NL80211_IFTYPE_ADHOC)
-		rtlpriv->sec.use_defaultkey = true;
-
-	/* <2> get key_idx */
-	key_idx = (u8)(key->keyidx);
-	if (key_idx > 3)
-		goto out_unlock;
-	/* <3> if pairwise key enable_hw_sec */
-	group_key = !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE);
-
-	/* wep always be group key, but there are two conditions:
-	 * 1) wep only: is just for wep enc, in this condition
-	 * rtlpriv->sec.pairwise_enc_algorithm == NO_ENCRYPTION
-	 * will be true & enable_hw_sec will be set when wep
-	 * ke setting.
-	 * 2) wep(group) + AES(pairwise): some AP like cisco
-	 * may use it, in this condition enable_hw_sec will not
-	 * be set when wep key setting.
-	 * we must reset sec_info after lingked before set key,
-	 * or some flag will be wrong
-	 */
-	if (vif->type == NL80211_IFTYPE_AP ||
-	    vif->type == NL80211_IFTYPE_MESH_POINT) {
-		if (!group_key || key_type == WEP40_ENCRYPTION ||
-		    key_type == WEP104_ENCRYPTION) {
-			if (group_key)
-				wep_only = true;
-			rtlpriv->cfg->ops->enable_hw_sec(hw);
-		}
-	} else {
-		if (!group_key || vif->type == NL80211_IFTYPE_ADHOC ||
-		    rtlpriv->sec.pairwise_enc_algorithm == NO_ENCRYPTION) {
-			if (rtlpriv->sec.pairwise_enc_algorithm ==
-			    NO_ENCRYPTION &&
-			   (key_type == WEP40_ENCRYPTION ||
-			    key_type == WEP104_ENCRYPTION))
-				wep_only = true;
-			rtlpriv->sec.pairwise_enc_algorithm = key_type;
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-				 "set enable_hw_sec, key_type:%x(OPEN:0 WEP40:1 TKIP:2 AES:4 WEP104:5)\n",
-				 key_type);
-			rtlpriv->cfg->ops->enable_hw_sec(hw);
-		}
-	}
-	/* <4> set key based on cmd */
-	switch (cmd) {
-	case SET_KEY:
-		if (wep_only) {
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-				 "set WEP(group/pairwise) key\n");
-			/* Pairwise key with an assigned MAC address. */
-			rtlpriv->sec.pairwise_enc_algorithm = key_type;
-			rtlpriv->sec.group_enc_algorithm = key_type;
-			/*set local buf about wep key. */
-			memcpy(rtlpriv->sec.key_buf[key_idx],
-			       key->key, key->keylen);
-			rtlpriv->sec.key_len[key_idx] = key->keylen;
-			eth_zero_addr(mac_addr);
-		} else if (group_key) {	/* group key */
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-				 "set group key\n");
-			/* group key */
-			rtlpriv->sec.group_enc_algorithm = key_type;
-			/*set local buf about group key. */
-			memcpy(rtlpriv->sec.key_buf[key_idx],
-			       key->key, key->keylen);
-			rtlpriv->sec.key_len[key_idx] = key->keylen;
-			memcpy(mac_addr, bcast_addr, ETH_ALEN);
-		} else {	/* pairwise key */
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-				 "set pairwise key\n");
-			if (!sta) {
-				WARN_ONCE(true,
-					  "rtlwifi: pairwise key without mac_addr\n");
-
-				err = -EOPNOTSUPP;
-				goto out_unlock;
-			}
-			/* Pairwise key with an assigned MAC address. */
-			rtlpriv->sec.pairwise_enc_algorithm = key_type;
-			/*set local buf about pairwise key. */
-			memcpy(rtlpriv->sec.key_buf[PAIRWISE_KEYIDX],
-			       key->key, key->keylen);
-			rtlpriv->sec.key_len[PAIRWISE_KEYIDX] = key->keylen;
-			rtlpriv->sec.pairwise_key =
-			    rtlpriv->sec.key_buf[PAIRWISE_KEYIDX];
-			memcpy(mac_addr, sta->addr, ETH_ALEN);
-		}
-		rtlpriv->cfg->ops->set_key(hw, key_idx, mac_addr,
-					   group_key, key_type, wep_only,
-					   false);
-		/* <5> tell mac80211 do something: */
-		/*must use sw generate IV, or can not work !!!!. */
-		key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
-		key->hw_key_idx = key_idx;
-		if (key_type == TKIP_ENCRYPTION)
-			key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC;
-		/*use software CCMP encryption for management frames (MFP) */
-		if (key_type == AESCCMP_ENCRYPTION)
-			key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX;
-		break;
-	case DISABLE_KEY:
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-			 "disable key delete one entry\n");
-		/*set local buf about wep key. */
-		if (vif->type == NL80211_IFTYPE_AP ||
-		    vif->type == NL80211_IFTYPE_MESH_POINT) {
-			if (sta)
-				rtl_cam_del_entry(hw, sta->addr);
-		}
-		memset(rtlpriv->sec.key_buf[key_idx], 0, key->keylen);
-		rtlpriv->sec.key_len[key_idx] = 0;
-		eth_zero_addr(mac_addr);
-		/*
-		 *mac80211 will delete entries one by one,
-		 *so don't use rtl_cam_reset_all_entry
-		 *or clear all entries here.
-		 */
-		rtl_wait_tx_report_acked(hw, 500); /* wait 500ms for TX ack */
-
-		rtl_cam_delete_one_entry(hw, mac_addr, key_idx);
-		break;
-	default:
-		pr_err("cmd_err:%x!!!!:\n", cmd);
-	}
-out_unlock:
-	mutex_unlock(&rtlpriv->locks.conf_mutex);
-	rtlpriv->sec.being_setkey = false;
-	return err;
-}
-
-static void rtl_op_rfkill_poll(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	bool radio_state;
-	bool blocked;
-	u8 valid = 0;
-
-	if (!test_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status))
-		return;
-
-	mutex_lock(&rtlpriv->locks.conf_mutex);
-
-	/*if Radio On return true here */
-	radio_state = rtlpriv->cfg->ops->radio_onoff_checking(hw, &valid);
-
-	if (valid) {
-		if (unlikely(radio_state != rtlpriv->rfkill.rfkill_state)) {
-			rtlpriv->rfkill.rfkill_state = radio_state;
-
-			RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-				 "wireless radio switch turned %s\n",
-				  radio_state ? "on" : "off");
-
-			blocked = (rtlpriv->rfkill.rfkill_state == 1) ? 0 : 1;
-			wiphy_rfkill_set_hw_state(hw->wiphy, blocked);
-		}
-	}
-
-	mutex_unlock(&rtlpriv->locks.conf_mutex);
-}
-
-/* this function is called by mac80211 to flush tx buffer
- * before switch channel or power save, or tx buffer packet
- * maybe send after offchannel or rf sleep, this may cause
- * dis-association by AP
- */
-static void rtl_op_flush(struct ieee80211_hw *hw,
-			 struct ieee80211_vif *vif,
-			 u32 queues,
-			 bool drop)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	if (rtlpriv->intf_ops->flush)
-		rtlpriv->intf_ops->flush(hw, queues, drop);
-}
-
-/*	Description:
- *		This routine deals with the Power Configuration CMD
- *		 parsing for RTL8723/RTL8188E Series IC.
- *	Assumption:
- *		We should follow specific format that was released from HW SD.
- */
-bool rtl_hal_pwrseqcmdparsing(struct rtl_priv *rtlpriv, u8 cut_version,
-			      u8 faversion, u8 interface_type,
-			      struct wlan_pwr_cfg pwrcfgcmd[])
-{
-	struct wlan_pwr_cfg cfg_cmd;
-	bool polling_bit = false;
-	u32 ary_idx = 0;
-	u8 value = 0;
-	u32 offset = 0;
-	u32 polling_count = 0;
-	u32 max_polling_cnt = 5000;
-
-	do {
-		cfg_cmd = pwrcfgcmd[ary_idx];
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-			 "%s(): offset(%#x),cut_msk(%#x), famsk(%#x), interface_msk(%#x), base(%#x), cmd(%#x), msk(%#x), value(%#x)\n",
-			 __func__, GET_PWR_CFG_OFFSET(cfg_cmd),
-					    GET_PWR_CFG_CUT_MASK(cfg_cmd),
-			 GET_PWR_CFG_FAB_MASK(cfg_cmd),
-					      GET_PWR_CFG_INTF_MASK(cfg_cmd),
-			 GET_PWR_CFG_BASE(cfg_cmd), GET_PWR_CFG_CMD(cfg_cmd),
-			 GET_PWR_CFG_MASK(cfg_cmd), GET_PWR_CFG_VALUE(cfg_cmd));
-
-		if ((GET_PWR_CFG_FAB_MASK(cfg_cmd) & faversion) &&
-		    (GET_PWR_CFG_CUT_MASK(cfg_cmd) & cut_version) &&
-		    (GET_PWR_CFG_INTF_MASK(cfg_cmd) & interface_type)) {
-			switch (GET_PWR_CFG_CMD(cfg_cmd)) {
-			case PWR_CMD_READ:
-				RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-					 "%s(): PWR_CMD_READ\n", __func__);
-				break;
-			case PWR_CMD_WRITE:
-				RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-					 "%s(): PWR_CMD_WRITE\n", __func__);
-				offset = GET_PWR_CFG_OFFSET(cfg_cmd);
-
-				/*Read the value from system register*/
-				value = rtl_read_byte(rtlpriv, offset);
-				value &= (~(GET_PWR_CFG_MASK(cfg_cmd)));
-				value |= (GET_PWR_CFG_VALUE(cfg_cmd) &
-					  GET_PWR_CFG_MASK(cfg_cmd));
-
-				/*Write the value back to system register*/
-				rtl_write_byte(rtlpriv, offset, value);
-				break;
-			case PWR_CMD_POLLING:
-				RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-					 "%s(): PWR_CMD_POLLING\n", __func__);
-				polling_bit = false;
-				offset = GET_PWR_CFG_OFFSET(cfg_cmd);
-
-				do {
-					value = rtl_read_byte(rtlpriv, offset);
-
-					value &= GET_PWR_CFG_MASK(cfg_cmd);
-					if (value ==
-					    (GET_PWR_CFG_VALUE(cfg_cmd) &
-					     GET_PWR_CFG_MASK(cfg_cmd)))
-						polling_bit = true;
-					else
-						udelay(10);
-
-					if (polling_count++ > max_polling_cnt)
-						return false;
-				} while (!polling_bit);
-				break;
-			case PWR_CMD_DELAY:
-				RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-					 "%s(): PWR_CMD_DELAY\n", __func__);
-				if (GET_PWR_CFG_VALUE(cfg_cmd) ==
-				    PWRSEQ_DELAY_US)
-					udelay(GET_PWR_CFG_OFFSET(cfg_cmd));
-				else
-					mdelay(GET_PWR_CFG_OFFSET(cfg_cmd));
-				break;
-			case PWR_CMD_END:
-				RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-					 "%s(): PWR_CMD_END\n", __func__);
-				return true;
-			default:
-				WARN_ONCE(true,
-					  "rtlwifi: %s(): Unknown CMD!!\n",
-					  __func__);
-				break;
-			}
-		}
-		ary_idx++;
-	} while (1);
-
-	return true;
-}
-
-bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl8192_tx_ring *ring;
-	struct rtl_tx_desc *pdesc;
-	unsigned long flags;
-	struct sk_buff *pskb = NULL;
-
-	ring = &rtlpci->tx_ring[BEACON_QUEUE];
-
-	spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags);
-	pskb = __skb_dequeue(&ring->queue);
-	if (pskb)
-		dev_kfree_skb_irq(pskb);
-
-	/*this is wrong, fill_tx_cmddesc needs update*/
-	pdesc = &ring->desc[0];
-
-	rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, 1, 1, skb);
-
-	__skb_queue_tail(&ring->queue, skb);
-
-	spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
-
-	rtlpriv->cfg->ops->tx_polling(hw, BEACON_QUEUE);
-
-	return true;
-}
-
-const struct ieee80211_ops rtl_ops = {
-	.start = rtl_op_start,
-	.stop = rtl_op_stop,
-	.tx = rtl_op_tx,
-	.add_interface = rtl_op_add_interface,
-	.remove_interface = rtl_op_remove_interface,
-	.change_interface = rtl_op_change_interface,
-#ifdef CONFIG_PM
-	.suspend = rtl_op_suspend,
-	.resume = rtl_op_resume,
-#endif
-	.config = rtl_op_config,
-	.configure_filter = rtl_op_configure_filter,
-	.set_key = rtl_op_set_key,
-	.sta_statistics = rtl_op_sta_statistics,
-	.set_frag_threshold = rtl_op_set_frag_threshold,
-	.conf_tx = rtl_op_conf_tx,
-	.bss_info_changed = rtl_op_bss_info_changed,
-	.get_tsf = rtl_op_get_tsf,
-	.set_tsf = rtl_op_set_tsf,
-	.reset_tsf = rtl_op_reset_tsf,
-	.sta_notify = rtl_op_sta_notify,
-	.ampdu_action = rtl_op_ampdu_action,
-	.sw_scan_start = rtl_op_sw_scan_start,
-	.sw_scan_complete = rtl_op_sw_scan_complete,
-	.rfkill_poll = rtl_op_rfkill_poll,
-	.sta_add = rtl_op_sta_add,
-	.sta_remove = rtl_op_sta_remove,
-	.flush = rtl_op_flush,
-};
-
-bool rtl_btc_status_false(void)
-{
-	return false;
-}
-
-void rtl_dm_diginit(struct ieee80211_hw *hw, u32 cur_igvalue)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct dig_t *dm_digtable = &rtlpriv->dm_digtable;
-
-	dm_digtable->dig_enable_flag = true;
-	dm_digtable->dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX;
-	dm_digtable->cur_igvalue = cur_igvalue;
-	dm_digtable->pre_igvalue = 0;
-	dm_digtable->cur_sta_cstate = DIG_STA_DISCONNECT;
-	dm_digtable->presta_cstate = DIG_STA_DISCONNECT;
-	dm_digtable->curmultista_cstate = DIG_MULTISTA_DISCONNECT;
-	dm_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW;
-	dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
-	dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
-	dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
-	dm_digtable->rx_gain_max = DM_DIG_MAX;
-	dm_digtable->rx_gain_min = DM_DIG_MIN;
-	dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
-	dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
-	dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
-	dm_digtable->pre_cck_cca_thres = 0xff;
-	dm_digtable->cur_cck_cca_thres = 0x83;
-	dm_digtable->forbidden_igi = DM_DIG_MIN;
-	dm_digtable->large_fa_hit = 0;
-	dm_digtable->recover_cnt = 0;
-	dm_digtable->dig_min_0 = 0x25;
-	dm_digtable->dig_min_1 = 0x25;
-	dm_digtable->media_connect_0 = false;
-	dm_digtable->media_connect_1 = false;
-	rtlpriv->dm.dm_initialgain_enable = true;
-	dm_digtable->bt30_cur_igi = 0x32;
-	dm_digtable->pre_cck_pd_state = CCK_PD_STAGE_MAX;
-	dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_LOWRSSI;
-}
diff --git a/drivers/staging/rtlwifi/core.h b/drivers/staging/rtlwifi/core.h
deleted file mode 100644
index 991af1a..0000000
--- a/drivers/staging/rtlwifi/core.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_CORE_H__
-#define __RTL_CORE_H__
-
-#define RTL_SUPPORTED_FILTERS		\
-	(FIF_ALLMULTI | FIF_CONTROL | \
-	FIF_OTHER_BSS | \
-	FIF_FCSFAIL | \
-	FIF_BCN_PRBRESP_PROMISC)
-
-#define DM_DIG_THRESH_HIGH		40
-#define DM_DIG_THRESH_LOW		35
-#define DM_FALSEALARM_THRESH_LOW	400
-#define DM_FALSEALARM_THRESH_HIGH	1000
-
-#define DM_DIG_MAX			0x3e
-#define DM_DIG_MIN			0x1e
-#define DM_DIG_MAX_AP			0x32
-#define DM_DIG_BACKOFF_MAX		12
-#define DM_DIG_BACKOFF_MIN		-4
-#define DM_DIG_BACKOFF_DEFAULT		10
-
-enum cck_packet_detection_threshold {
-	CCK_PD_STAGE_LOWRSSI = 0,
-	CCK_PD_STAGE_HIGHRSSI = 1,
-	CCK_FA_STAGE_LOW = 2,
-	CCK_FA_STAGE_HIGH = 3,
-	CCK_PD_STAGE_MAX = 4,
-};
-
-enum dm_dig_ext_port_alg_e {
-	DIG_EXT_PORT_STAGE_0 = 0,
-	DIG_EXT_PORT_STAGE_1 = 1,
-	DIG_EXT_PORT_STAGE_2 = 2,
-	DIG_EXT_PORT_STAGE_3 = 3,
-	DIG_EXT_PORT_STAGE_MAX = 4,
-};
-
-enum dm_dig_connect_e {
-	DIG_STA_DISCONNECT,
-	DIG_STA_CONNECT,
-	DIG_STA_BEFORE_CONNECT,
-	DIG_MULTISTA_DISCONNECT,
-	DIG_MULTISTA_CONNECT,
-	DIG_AP_DISCONNECT,
-	DIG_AP_CONNECT,
-	DIG_AP_ADD_STATION,
-	DIG_CONNECT_MAX
-};
-
-extern const struct ieee80211_ops rtl_ops;
-void rtl_fw_cb(const struct firmware *firmware, void *context);
-void rtl_wowlan_fw_cb(const struct firmware *firmware, void *context);
-bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb);
-bool rtl_btc_status_false(void);
-void rtl_dm_diginit(struct ieee80211_hw *hw, u32 cur_igval);
-
-#endif
diff --git a/drivers/staging/rtlwifi/debug.c b/drivers/staging/rtlwifi/debug.c
deleted file mode 100644
index 8999fed..0000000
--- a/drivers/staging/rtlwifi/debug.c
+++ /dev/null
@@ -1,624 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *****************************************************************************/
-
-#include "wifi.h"
-#include "cam.h"
-
-#include <linux/moduleparam.h>
-#include <linux/vmalloc.h>
-
-#ifdef CONFIG_RTLWIFI_DEBUG_ST
-void _rtl_dbg_trace(struct rtl_priv *rtlpriv, u64 comp, int level,
-		    const char *fmt, ...)
-{
-	if (unlikely((comp & rtlpriv->cfg->mod_params->debug_mask) &&
-		     level <= rtlpriv->cfg->mod_params->debug_level)) {
-		struct va_format vaf;
-		va_list args;
-
-		va_start(args, fmt);
-
-		vaf.fmt = fmt;
-		vaf.va = &args;
-
-		pr_info(":<%lx> %pV", in_interrupt(), &vaf);
-
-		va_end(args);
-	}
-}
-
-void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level,
-		    const char *fmt, ...)
-{
-	if (unlikely((comp & rtlpriv->cfg->mod_params->debug_mask) &&
-		     level <= rtlpriv->cfg->mod_params->debug_level)) {
-		struct va_format vaf;
-		va_list args;
-
-		va_start(args, fmt);
-
-		vaf.fmt = fmt;
-		vaf.va = &args;
-
-		pr_info("%pV", &vaf);
-
-		va_end(args);
-	}
-}
-
-void _rtl_dbg_print_data(struct rtl_priv *rtlpriv, u64 comp, int level,
-			 const char *titlestring,
-			 const void *hexdata, int hexdatalen)
-{
-	if (unlikely(((comp) & rtlpriv->cfg->mod_params->debug_mask) &&
-		     ((level) <= rtlpriv->cfg->mod_params->debug_level))) {
-		pr_info("In process \"%s\" (pid %i): %s\n",
-			current->comm, current->pid, titlestring);
-		print_hex_dump_bytes("", DUMP_PREFIX_NONE,
-				     hexdata, hexdatalen);
-	}
-}
-
-struct rtl_debugfs_priv {
-	struct rtl_priv *rtlpriv;
-	int (*cb_read)(struct seq_file *m, void *v);
-	ssize_t (*cb_write)(struct file *filp, const char __user *buffer,
-			    size_t count, loff_t *loff);
-	u32 cb_data;
-};
-
-static struct dentry *debugfs_topdir;
-
-static int rtl_debug_get_common(struct seq_file *m, void *v)
-{
-	struct rtl_debugfs_priv *debugfs_priv = m->private;
-
-	return debugfs_priv->cb_read(m, v);
-}
-
-static int dl_debug_open_common(struct inode *inode, struct file *file)
-{
-	return single_open(file, rtl_debug_get_common, inode->i_private);
-}
-
-static const struct file_operations file_ops_common = {
-	.open = dl_debug_open_common,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-};
-
-static int rtl_debug_get_mac_page(struct seq_file *m, void *v)
-{
-	struct rtl_debugfs_priv *debugfs_priv = m->private;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-	u32 page = debugfs_priv->cb_data;
-	int i, n;
-	int max = 0xff;
-
-	for (n = 0; n <= max; ) {
-		seq_printf(m, "\n%8.8x  ", n + page);
-		for (i = 0; i < 4 && n <= max; i++, n += 4)
-			seq_printf(m, "%8.8x    ",
-				   rtl_read_dword(rtlpriv, (page | n)));
-	}
-	seq_puts(m, "\n");
-	return 0;
-}
-
-#define RTL_DEBUG_IMPL_MAC_SERIES(page, addr)			\
-static struct rtl_debugfs_priv rtl_debug_priv_mac_ ##page = {	\
-	.cb_read = rtl_debug_get_mac_page,			\
-	.cb_data = addr,					\
-}
-
-RTL_DEBUG_IMPL_MAC_SERIES(0, 0x0000);
-RTL_DEBUG_IMPL_MAC_SERIES(1, 0x0100);
-RTL_DEBUG_IMPL_MAC_SERIES(2, 0x0200);
-RTL_DEBUG_IMPL_MAC_SERIES(3, 0x0300);
-RTL_DEBUG_IMPL_MAC_SERIES(4, 0x0400);
-RTL_DEBUG_IMPL_MAC_SERIES(5, 0x0500);
-RTL_DEBUG_IMPL_MAC_SERIES(6, 0x0600);
-RTL_DEBUG_IMPL_MAC_SERIES(7, 0x0700);
-RTL_DEBUG_IMPL_MAC_SERIES(10, 0x1000);
-RTL_DEBUG_IMPL_MAC_SERIES(11, 0x1100);
-RTL_DEBUG_IMPL_MAC_SERIES(12, 0x1200);
-RTL_DEBUG_IMPL_MAC_SERIES(13, 0x1300);
-RTL_DEBUG_IMPL_MAC_SERIES(14, 0x1400);
-RTL_DEBUG_IMPL_MAC_SERIES(15, 0x1500);
-RTL_DEBUG_IMPL_MAC_SERIES(16, 0x1600);
-RTL_DEBUG_IMPL_MAC_SERIES(17, 0x1700);
-
-static int rtl_debug_get_bb_page(struct seq_file *m, void *v)
-{
-	struct rtl_debugfs_priv *debugfs_priv = m->private;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-	struct ieee80211_hw *hw = rtlpriv->hw;
-	u32 page = debugfs_priv->cb_data;
-	int i, n;
-	int max = 0xff;
-
-	for (n = 0; n <= max; ) {
-		seq_printf(m, "\n%8.8x  ", n + page);
-		for (i = 0; i < 4 && n <= max; i++, n += 4)
-			seq_printf(m, "%8.8x    ",
-				   rtl_get_bbreg(hw, (page | n), 0xffffffff));
-	}
-	seq_puts(m, "\n");
-	return 0;
-}
-
-#define RTL_DEBUG_IMPL_BB_SERIES(page, addr)			\
-static struct rtl_debugfs_priv rtl_debug_priv_bb_ ##page = {	\
-	.cb_read = rtl_debug_get_bb_page,			\
-	.cb_data = addr,					\
-}
-
-RTL_DEBUG_IMPL_BB_SERIES(8, 0x0800);
-RTL_DEBUG_IMPL_BB_SERIES(9, 0x0900);
-RTL_DEBUG_IMPL_BB_SERIES(a, 0x0a00);
-RTL_DEBUG_IMPL_BB_SERIES(b, 0x0b00);
-RTL_DEBUG_IMPL_BB_SERIES(c, 0x0c00);
-RTL_DEBUG_IMPL_BB_SERIES(d, 0x0d00);
-RTL_DEBUG_IMPL_BB_SERIES(e, 0x0e00);
-RTL_DEBUG_IMPL_BB_SERIES(f, 0x0f00);
-RTL_DEBUG_IMPL_BB_SERIES(18, 0x1800);
-RTL_DEBUG_IMPL_BB_SERIES(19, 0x1900);
-RTL_DEBUG_IMPL_BB_SERIES(1a, 0x1a00);
-RTL_DEBUG_IMPL_BB_SERIES(1b, 0x1b00);
-RTL_DEBUG_IMPL_BB_SERIES(1c, 0x1c00);
-RTL_DEBUG_IMPL_BB_SERIES(1d, 0x1d00);
-RTL_DEBUG_IMPL_BB_SERIES(1e, 0x1e00);
-RTL_DEBUG_IMPL_BB_SERIES(1f, 0x1f00);
-
-static int rtl_debug_get_reg_rf(struct seq_file *m, void *v)
-{
-	struct rtl_debugfs_priv *debugfs_priv = m->private;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-	struct ieee80211_hw *hw = rtlpriv->hw;
-	enum radio_path rfpath = debugfs_priv->cb_data;
-	int i, n;
-	int max = 0x40;
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		max = 0xff;
-
-	seq_printf(m, "\nPATH(%d)", rfpath);
-
-	for (n = 0; n <= max; ) {
-		seq_printf(m, "\n%8.8x  ", n);
-		for (i = 0; i < 4 && n <= max; n += 1, i++)
-			seq_printf(m, "%8.8x    ",
-				   rtl_get_rfreg(hw, rfpath, n, 0xffffffff));
-	}
-	seq_puts(m, "\n");
-	return 0;
-}
-
-#define RTL_DEBUG_IMPL_RF_SERIES(page, addr)			\
-static struct rtl_debugfs_priv rtl_debug_priv_rf_ ##page = {	\
-	.cb_read = rtl_debug_get_reg_rf,			\
-	.cb_data = addr,					\
-}
-
-RTL_DEBUG_IMPL_RF_SERIES(a, RF90_PATH_A);
-RTL_DEBUG_IMPL_RF_SERIES(b, RF90_PATH_B);
-
-static int rtl_debug_get_cam_register(struct seq_file *m, void *v)
-{
-	struct rtl_debugfs_priv *debugfs_priv = m->private;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-	int start = debugfs_priv->cb_data;
-	u32 target_cmd = 0;
-	u32 target_val = 0;
-	u8 entry_i = 0;
-	u32 ulstatus;
-	int i = 100, j = 0;
-	int end = (start + 11 > TOTAL_CAM_ENTRY ? TOTAL_CAM_ENTRY : start + 11);
-
-	/* This dump the current register page */
-	seq_printf(m,
-		   "\n#################### SECURITY CAM (%d-%d) ##################\n",
-		   start, end - 1);
-
-	for (j = start; j < end; j++) {
-		seq_printf(m, "\nD:  %2x > ", j);
-		for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) {
-			/* polling bit, and No Write enable, and address  */
-			target_cmd = entry_i + CAM_CONTENT_COUNT * j;
-			target_cmd = target_cmd | BIT(31);
-
-			/* Check polling bit is clear */
-			while ((i--) >= 0) {
-				ulstatus = rtl_read_dword(
-						rtlpriv,
-						rtlpriv->cfg->maps[RWCAM]);
-				if (ulstatus & BIT(31))
-					continue;
-				else
-					break;
-			}
-
-			rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM],
-					target_cmd);
-			target_val = rtl_read_dword(rtlpriv,
-						    rtlpriv->cfg->maps[RCAMO]);
-			seq_printf(m, "%8.8x ", target_val);
-		}
-	}
-	seq_puts(m, "\n");
-	return 0;
-}
-
-#define RTL_DEBUG_IMPL_CAM_SERIES(page, addr)			\
-static struct rtl_debugfs_priv rtl_debug_priv_cam_ ##page = {	\
-	.cb_read = rtl_debug_get_cam_register,			\
-	.cb_data = addr,					\
-}
-
-RTL_DEBUG_IMPL_CAM_SERIES(1, 0);
-RTL_DEBUG_IMPL_CAM_SERIES(2, 11);
-RTL_DEBUG_IMPL_CAM_SERIES(3, 22);
-
-static int rtl_debug_get_btcoex(struct seq_file *m, void *v)
-{
-	struct rtl_debugfs_priv *debugfs_priv = m->private;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-
-	if (rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->btcoexist.btc_ops->btc_display_bt_coex_info(rtlpriv,
-								     m);
-
-	seq_puts(m, "\n");
-
-	return 0;
-}
-
-static struct rtl_debugfs_priv rtl_debug_priv_btcoex = {
-	.cb_read = rtl_debug_get_btcoex,
-	.cb_data = 0,
-};
-
-static ssize_t rtl_debugfs_set_write_reg(struct file *filp,
-					 const char __user *buffer,
-					 size_t count, loff_t *loff)
-{
-	struct rtl_debugfs_priv *debugfs_priv = filp->private_data;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-	char tmp[32 + 1];
-	int tmp_len;
-	u32 addr, val, len;
-	int num;
-
-	if (count < 3)
-		return -EFAULT;
-
-	tmp_len = (count > sizeof(tmp) - 1 ? sizeof(tmp) - 1 : count);
-
-	if (!buffer || copy_from_user(tmp, buffer, tmp_len))
-		return count;
-
-	tmp[tmp_len] = '\0';
-
-	/* write BB/MAC register */
-	num = sscanf(tmp, "%x %x %x", &addr, &val, &len);
-
-	if (num !=  3)
-		return count;
-
-	switch (len) {
-	case 1:
-		rtl_write_byte(rtlpriv, addr, (u8)val);
-		break;
-	case 2:
-		rtl_write_word(rtlpriv, addr, (u16)val);
-		break;
-	case 4:
-		rtl_write_dword(rtlpriv, addr, val);
-		break;
-	default:
-		/*printk("error write length=%d", len);*/
-		break;
-	}
-
-	return count;
-}
-
-static struct rtl_debugfs_priv rtl_debug_priv_write_reg = {
-	.cb_write = rtl_debugfs_set_write_reg,
-};
-
-static ssize_t rtl_debugfs_set_write_h2c(struct file *filp,
-					 const char __user *buffer,
-					 size_t count, loff_t *loff)
-{
-	struct rtl_debugfs_priv *debugfs_priv = filp->private_data;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-	struct ieee80211_hw *hw = rtlpriv->hw;
-	char tmp[32 + 1];
-	int tmp_len;
-	u8 h2c_len, h2c_data_packed[8];
-	int h2c_data[8];	/* idx 0: cmd */
-	int i;
-
-	if (count < 3)
-		return -EFAULT;
-
-	tmp_len = (count > sizeof(tmp) - 1 ? sizeof(tmp) - 1 : count);
-
-	if (!buffer || copy_from_user(tmp, buffer, tmp_len))
-		return count;
-
-	tmp[tmp_len] = '\0';
-
-	h2c_len = sscanf(tmp, "%X %X %X %X %X %X %X %X",
-			 &h2c_data[0], &h2c_data[1],
-			 &h2c_data[2], &h2c_data[3],
-			 &h2c_data[4], &h2c_data[5],
-			 &h2c_data[6], &h2c_data[7]);
-
-	if (h2c_len <= 0)
-		return count;
-
-	for (i = 0; i < h2c_len; i++)
-		h2c_data_packed[i] = (u8)h2c_data[i];
-
-	rtlpriv->cfg->ops->fill_h2c_cmd(hw, h2c_data_packed[0],
-					h2c_len - 1,
-					&h2c_data_packed[1]);
-
-	return count;
-}
-
-static struct rtl_debugfs_priv rtl_debug_priv_write_h2c = {
-	.cb_write = rtl_debugfs_set_write_h2c,
-};
-
-static ssize_t rtl_debugfs_set_write_rfreg(struct file *filp,
-					   const char __user *buffer,
-					    size_t count, loff_t *loff)
-{
-	struct rtl_debugfs_priv *debugfs_priv = filp->private_data;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-	struct ieee80211_hw *hw = rtlpriv->hw;
-	char tmp[32 + 1];
-	int tmp_len;
-	int num;
-	int path;
-	u32 addr, bitmask, data;
-
-	if (count < 3)
-		return -EFAULT;
-
-	tmp_len = (count > sizeof(tmp) - 1 ? sizeof(tmp) - 1 : count);
-
-	if (!buffer || copy_from_user(tmp, buffer, tmp_len))
-		return count;
-
-	tmp[tmp_len] = '\0';
-
-	num = sscanf(tmp, "%X %X %X %X",
-		     &path, &addr, &bitmask, &data);
-
-	if (num != 4) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
-			 "Format is <path> <addr> <mask> <data>\n");
-		return count;
-	}
-
-	rtl_set_rfreg(hw, path, addr, bitmask, data);
-
-	return count;
-}
-
-static struct rtl_debugfs_priv rtl_debug_priv_write_rfreg = {
-	.cb_write = rtl_debugfs_set_write_rfreg,
-};
-
-static int rtl_debugfs_close(struct inode *inode, struct file *filp)
-{
-	return 0;
-}
-
-static ssize_t rtl_debugfs_common_write(struct file *filp,
-					const char __user *buffer,
-					size_t count, loff_t *loff)
-{
-	struct rtl_debugfs_priv *debugfs_priv = filp->private_data;
-
-	return debugfs_priv->cb_write(filp, buffer, count, loff);
-}
-
-static const struct file_operations file_ops_common_write = {
-	.owner = THIS_MODULE,
-	.write = rtl_debugfs_common_write,
-	.open = simple_open,
-	.release = rtl_debugfs_close,
-};
-
-static ssize_t rtl_debugfs_phydm_cmd(struct file *filp,
-				     const char __user *buffer,
-				     size_t count, loff_t *loff)
-{
-	struct rtl_debugfs_priv *debugfs_priv = filp->private_data;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-
-	char tmp[64];
-
-	if (!rtlpriv->dbg.msg_buf)
-		return -ENOMEM;
-
-	if (!rtlpriv->phydm.ops)
-		return -EFAULT;
-
-	if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
-		tmp[count] = '\0';
-
-		rtlpriv->phydm.ops->phydm_debug_cmd(rtlpriv, tmp, count,
-						    rtlpriv->dbg.msg_buf,
-						    80 * 25);
-	}
-
-	return count;
-}
-
-static int rtl_debug_get_phydm_cmd(struct seq_file *m, void *v)
-{
-	struct rtl_debugfs_priv *debugfs_priv = m->private;
-	struct rtl_priv *rtlpriv = debugfs_priv->rtlpriv;
-
-	if (rtlpriv->dbg.msg_buf)
-		seq_puts(m, rtlpriv->dbg.msg_buf);
-
-	return 0;
-}
-
-static int rtl_debugfs_open_rw(struct inode *inode, struct file *filp)
-{
-	int ret = 0;
-
-	if (filp->f_mode & FMODE_READ)
-		ret = single_open(filp, rtl_debug_get_common, inode->i_private);
-	else
-		filp->private_data = inode->i_private;
-
-	return ret;
-}
-
-static int rtl_debugfs_close_rw(struct inode *inode, struct file *filp)
-{
-	if (filp->f_mode == FMODE_READ)
-		single_release(inode, filp);
-
-	return 0;
-}
-
-static struct rtl_debugfs_priv rtl_debug_priv_phydm_cmd = {
-	.cb_read = rtl_debug_get_phydm_cmd,
-	.cb_write = rtl_debugfs_phydm_cmd,
-	.cb_data = 0,
-};
-
-static const struct file_operations file_ops_common_rw = {
-	.owner = THIS_MODULE,
-	.open = rtl_debugfs_open_rw,
-	.release = rtl_debugfs_close_rw,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.write = rtl_debugfs_common_write,
-};
-
-#define RTL_DEBUGFS_ADD_CORE(name, mode, fopname)			   \
-	do {								   \
-		rtl_debug_priv_ ##name.rtlpriv = rtlpriv;		   \
-		debugfs_create_file(#name, mode, parent,		   \
-				    &rtl_debug_priv_ ##name,		   \
-				    &file_ops_ ##fopname);		   \
-	} while (0)
-
-#define RTL_DEBUGFS_ADD(name)						   \
-		RTL_DEBUGFS_ADD_CORE(name, S_IFREG | 0444, common)
-#define RTL_DEBUGFS_ADD_W(name)						   \
-		RTL_DEBUGFS_ADD_CORE(name, S_IFREG | 0222, common_write)
-#define RTL_DEBUGFS_ADD_RW(name)					   \
-		RTL_DEBUGFS_ADD_CORE(name, S_IFREG | 0666, common_rw)
-
-void rtl_debug_add_one(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	struct dentry *parent;
-
-	rtlpriv->dbg.msg_buf = vzalloc(80 * 25);
-
-	snprintf(rtlpriv->dbg.debugfs_name, 18, "%pMF", rtlefuse->dev_addr);
-
-	rtlpriv->dbg.debugfs_dir =
-		debugfs_create_dir(rtlpriv->dbg.debugfs_name, debugfs_topdir);
-	if (!rtlpriv->dbg.debugfs_dir) {
-		pr_err("Unable to init debugfs:/%s/%s\n", rtlpriv->cfg->name,
-		       rtlpriv->dbg.debugfs_name);
-		return;
-	}
-
-	parent = rtlpriv->dbg.debugfs_dir;
-
-	RTL_DEBUGFS_ADD(mac_0);
-	RTL_DEBUGFS_ADD(mac_1);
-	RTL_DEBUGFS_ADD(mac_2);
-	RTL_DEBUGFS_ADD(mac_3);
-	RTL_DEBUGFS_ADD(mac_4);
-	RTL_DEBUGFS_ADD(mac_5);
-	RTL_DEBUGFS_ADD(mac_6);
-	RTL_DEBUGFS_ADD(mac_7);
-	RTL_DEBUGFS_ADD(bb_8);
-	RTL_DEBUGFS_ADD(bb_9);
-	RTL_DEBUGFS_ADD(bb_a);
-	RTL_DEBUGFS_ADD(bb_b);
-	RTL_DEBUGFS_ADD(bb_c);
-	RTL_DEBUGFS_ADD(bb_d);
-	RTL_DEBUGFS_ADD(bb_e);
-	RTL_DEBUGFS_ADD(bb_f);
-	RTL_DEBUGFS_ADD(mac_10);
-	RTL_DEBUGFS_ADD(mac_11);
-	RTL_DEBUGFS_ADD(mac_12);
-	RTL_DEBUGFS_ADD(mac_13);
-	RTL_DEBUGFS_ADD(mac_14);
-	RTL_DEBUGFS_ADD(mac_15);
-	RTL_DEBUGFS_ADD(mac_16);
-	RTL_DEBUGFS_ADD(mac_17);
-	RTL_DEBUGFS_ADD(bb_18);
-	RTL_DEBUGFS_ADD(bb_19);
-	RTL_DEBUGFS_ADD(bb_1a);
-	RTL_DEBUGFS_ADD(bb_1b);
-	RTL_DEBUGFS_ADD(bb_1c);
-	RTL_DEBUGFS_ADD(bb_1d);
-	RTL_DEBUGFS_ADD(bb_1e);
-	RTL_DEBUGFS_ADD(bb_1f);
-	RTL_DEBUGFS_ADD(rf_a);
-	RTL_DEBUGFS_ADD(rf_b);
-
-	RTL_DEBUGFS_ADD(cam_1);
-	RTL_DEBUGFS_ADD(cam_2);
-	RTL_DEBUGFS_ADD(cam_3);
-
-	RTL_DEBUGFS_ADD(btcoex);
-
-	RTL_DEBUGFS_ADD_W(write_reg);
-	RTL_DEBUGFS_ADD_W(write_h2c);
-	RTL_DEBUGFS_ADD_W(write_rfreg);
-
-	RTL_DEBUGFS_ADD_RW(phydm_cmd);
-}
-
-void rtl_debug_remove_one(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	debugfs_remove_recursive(rtlpriv->dbg.debugfs_dir);
-	rtlpriv->dbg.debugfs_dir = NULL;
-
-	vfree(rtlpriv->dbg.msg_buf);
-}
-
-void rtl_debugfs_add_topdir(void)
-{
-	debugfs_topdir = debugfs_create_dir("rtlwifi", NULL);
-}
-
-void rtl_debugfs_remove_topdir(void)
-{
-	debugfs_remove_recursive(debugfs_topdir);
-}
-
-#endif
diff --git a/drivers/staging/rtlwifi/debug.h b/drivers/staging/rtlwifi/debug.h
deleted file mode 100644
index 666d7bc8..0000000
--- a/drivers/staging/rtlwifi/debug.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *****************************************************************************/
-
-#ifndef __RTL_DEBUG_H__
-#define __RTL_DEBUG_H__
-
-/*--------------------------------------------------------------
- *			Debug level
- *------------------------------------------------------------
- *
- *Fatal bug.
- *For example, Tx/Rx/IO locked up,
- *memory access violation,
- *resource allocation failed,
- *unexpected HW behavior, HW BUG
- *and so on.
- */
-/*#define DBG_EMERG			0 */
-
-/*Abnormal, rare, or unexpected cases.
- *For example, Packet/IO Ctl canceled,
- *device surprisingly removed and so on.
- */
-#define	DBG_WARNING			2
-
-/*Normal case driver developer should
- *open, we can see link status like
- *assoc/AddBA/DHCP/adapter start and
- *so on basic and useful infromations.
- */
-#define DBG_DMESG			3
-
-/*Normal case with useful information
- *about current SW or HW state.
- *For example, Tx/Rx descriptor to fill,
- *Tx/Rx descriptor completed status,
- *SW protocol state change, dynamic
- *mechanism state change and so on.
- */
-#define DBG_LOUD			4
-
-/*Normal case with detail execution
- *flow or information.
- */
-#define	DBG_TRACE			5
-
-/*--------------------------------------------------------------
- *		Define the rt_trace components
- *--------------------------------------------------------------
- */
-#define COMP_ERR			BIT(0)
-#define COMP_FW				BIT(1)
-#define COMP_INIT			BIT(2)	/*For init/deinit */
-#define COMP_RECV			BIT(3)	/*For Rx. */
-#define COMP_SEND			BIT(4)	/*For Tx. */
-#define COMP_MLME			BIT(5)	/*For MLME. */
-#define COMP_SCAN			BIT(6)	/*For Scan. */
-#define COMP_INTR			BIT(7)	/*For interrupt Related. */
-#define COMP_LED			BIT(8)	/*For LED. */
-#define COMP_SEC			BIT(9)	/*For sec. */
-#define COMP_BEACON			BIT(10)	/*For beacon. */
-#define COMP_RATE			BIT(11)	/*For rate. */
-#define COMP_RXDESC			BIT(12)	/*For rx desc. */
-#define COMP_DIG			BIT(13)	/*For DIG */
-#define COMP_TXAGC			BIT(14)	/*For Tx power */
-#define COMP_HIPWR			BIT(15)	/*For High Power Mechanism */
-#define COMP_POWER			BIT(16)	/*For lps/ips/aspm. */
-#define COMP_POWER_TRACKING	BIT(17)	/*For TX POWER TRACKING */
-#define COMP_BB_POWERSAVING	BIT(18)
-#define COMP_SWAS			BIT(19)	/*For SW Antenna Switch */
-#define COMP_RF				BIT(20)	/*For RF. */
-#define COMP_TURBO			BIT(21)	/*For EDCA TURBO. */
-#define COMP_RATR			BIT(22)
-#define COMP_CMD			BIT(23)
-#define COMP_EFUSE			BIT(24)
-#define COMP_QOS			BIT(25)
-#define COMP_MAC80211		BIT(26)
-#define COMP_REGD			BIT(27)
-#define COMP_CHAN			BIT(28)
-#define COMP_USB			BIT(29)
-#define COMP_EASY_CONCURRENT	COMP_USB /* reuse of this bit is OK */
-#define COMP_BT_COEXIST			BIT(30)
-#define COMP_IQK			BIT(31)
-#define COMP_TX_REPORT			BIT_ULL(32)
-#define COMP_HALMAC			BIT_ULL(34)
-#define COMP_PHYDM			BIT_ULL(35)
-
-/*--------------------------------------------------------------
- *		Define the rt_print components
- *--------------------------------------------------------------
- */
-/* Define EEPROM and EFUSE  check module bit*/
-#define EEPROM_W			BIT(0)
-#define EFUSE_PG			BIT(1)
-#define EFUSE_READ_ALL			BIT(2)
-
-/* Define init check for module bit*/
-#define	INIT_EEPROM			BIT(0)
-#define	INIT_TXPOWER			BIT(1)
-#define	INIT_IQK			BIT(2)
-#define	INIT_RF				BIT(3)
-
-/* Define PHY-BB/RF/MAC check module bit */
-#define	PHY_BBR				BIT(0)
-#define	PHY_BBW				BIT(1)
-#define	PHY_RFR				BIT(2)
-#define	PHY_RFW				BIT(3)
-#define	PHY_MACR			BIT(4)
-#define	PHY_MACW			BIT(5)
-#define	PHY_ALLR			BIT(6)
-#define	PHY_ALLW			BIT(7)
-#define	PHY_TXPWR			BIT(8)
-#define	PHY_PWRDIFF			BIT(9)
-
-/* Define Dynamic Mechanism check module bit --> FDM */
-#define WA_IOT				BIT(0)
-#define DM_PWDB				BIT(1)
-#define DM_MONITOR			BIT(2)
-#define DM_DIG				BIT(3)
-#define DM_EDCA_TURBO			BIT(4)
-
-#define DM_PWDB				BIT(1)
-
-enum dbgp_flag_e {
-	FQOS = 0,
-	FTX = 1,
-	FRX = 2,
-	FSEC = 3,
-	FMGNT = 4,
-	FMLME = 5,
-	FRESOURCE = 6,
-	FBEACON = 7,
-	FISR = 8,
-	FPHY = 9,
-	FMP = 10,
-	FEEPROM = 11,
-	FPWR = 12,
-	FDM = 13,
-	FDBGCTRL = 14,
-	FC2H = 15,
-	FBT = 16,
-	FINIT = 17,
-	FIOCTL = 18,
-	DBGP_TYPE_MAX
-};
-
-#ifdef CONFIG_RTLWIFI_DEBUG_ST
-
-struct rtl_priv;
-
-__printf(4, 5)
-void _rtl_dbg_trace(struct rtl_priv *rtlpriv, u64 comp, int level,
-		    const char *fmt, ...);
-
-__printf(4, 5)
-void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level,
-		    const char *fmt, ...);
-
-void _rtl_dbg_print_data(struct rtl_priv *rtlpriv, u64 comp, int level,
-			 const char *titlestring,
-			 const void *hexdata, int hexdatalen);
-
-#define RT_TRACE(rtlpriv, comp, level, fmt, ...)			\
-	_rtl_dbg_trace(rtlpriv, comp, level,				\
-		       fmt, ##__VA_ARGS__)
-
-#define RTPRINT(rtlpriv, dbgtype, dbgflag, fmt, ...)			\
-	_rtl_dbg_print(rtlpriv, dbgtype, dbgflag, fmt, ##__VA_ARGS__)
-
-#define RT_PRINT_DATA(rtlpriv, _comp, _level, _titlestring, _hexdata,	\
-		      _hexdatalen)					\
-	_rtl_dbg_print_data(rtlpriv, _comp, _level,			\
-			    _titlestring, _hexdata, _hexdatalen)
-
-#else
-
-struct rtl_priv;
-
-__printf(4, 5)
-static inline void RT_TRACE(struct rtl_priv *rtlpriv,
-			    u64 comp, int level,
-			    const char *fmt, ...)
-{
-}
-
-__printf(4, 5)
-static inline void RTPRINT(struct rtl_priv *rtlpriv,
-			   int dbgtype, int dbgflag,
-			   const char *fmt, ...)
-{
-}
-
-static inline void RT_PRINT_DATA(struct rtl_priv *rtlpriv,
-				 u64 comp, int level,
-				 const char *titlestring,
-				 const void *hexdata, size_t hexdatalen)
-{
-}
-
-#endif
-
-#ifdef CONFIG_RTLWIFI_DEBUG_ST
-void rtl_debug_add_one(struct ieee80211_hw *hw);
-void rtl_debug_remove_one(struct ieee80211_hw *hw);
-void rtl_debugfs_add_topdir(void);
-void rtl_debugfs_remove_topdir(void);
-#else
-#define rtl_debug_add_one(hw)
-#define rtl_debug_remove_one(hw)
-#define rtl_debugfs_add_topdir()
-#define rtl_debugfs_remove_topdir()
-#endif
-#endif
diff --git a/drivers/staging/rtlwifi/efuse.c b/drivers/staging/rtlwifi/efuse.c
deleted file mode 100644
index a7c9e18..0000000
--- a/drivers/staging/rtlwifi/efuse.c
+++ /dev/null
@@ -1,1329 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "wifi.h"
-#include "efuse.h"
-#include "pci.h"
-#include <linux/export.h>
-
-static const u8 MAX_PGPKT_SIZE = 9;
-static const u8 PGPKT_DATA_SIZE = 8;
-static const int EFUSE_MAX_SIZE = 512;
-
-#define START_ADDRESS		0x1000
-#define REG_MCUFWDL		0x0080
-
-static const struct efuse_map RTL8712_SDIO_EFUSE_TABLE[] = {
-	{0, 0, 0, 2},
-	{0, 1, 0, 2},
-	{0, 2, 0, 2},
-	{1, 0, 0, 1},
-	{1, 0, 1, 1},
-	{1, 1, 0, 1},
-	{1, 1, 1, 3},
-	{1, 3, 0, 17},
-	{3, 3, 1, 48},
-	{10, 0, 0, 6},
-	{10, 3, 0, 1},
-	{10, 3, 1, 1},
-	{11, 0, 0, 28}
-};
-
-static void efuse_shadow_read_1byte(struct ieee80211_hw *hw, u16 offset,
-				    u8 *value);
-static void efuse_shadow_read_2byte(struct ieee80211_hw *hw, u16 offset,
-				    u16 *value);
-static void efuse_shadow_read_4byte(struct ieee80211_hw *hw, u16 offset,
-				    u32 *value);
-static void efuse_shadow_write_1byte(struct ieee80211_hw *hw, u16 offset,
-				     u8 value);
-static void efuse_shadow_write_2byte(struct ieee80211_hw *hw, u16 offset,
-				     u16 value);
-static void efuse_shadow_write_4byte(struct ieee80211_hw *hw, u16 offset,
-				     u32 value);
-static int efuse_one_byte_write(struct ieee80211_hw *hw, u16 addr,
-				u8 data);
-static void efuse_read_all_map(struct ieee80211_hw *hw, u8 *efuse);
-static int efuse_pg_packet_read(struct ieee80211_hw *hw, u8 offset,
-				u8 *data);
-static int efuse_pg_packet_write(struct ieee80211_hw *hw, u8 offset,
-				 u8 word_en, u8 *data);
-static void efuse_word_enable_data_read(u8 word_en, u8 *sourdata,
-					u8 *targetdata);
-static u8 enable_efuse_data_write(struct ieee80211_hw *hw,
-				  u16 efuse_addr, u8 word_en, u8 *data);
-static u16 efuse_get_current_size(struct ieee80211_hw *hw);
-static u8 efuse_calculate_word_cnts(u8 word_en);
-
-void efuse_initialize(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 bytetemp;
-	u8 temp;
-
-	bytetemp = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[SYS_FUNC_EN] + 1);
-	temp = bytetemp | 0x20;
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[SYS_FUNC_EN] + 1, temp);
-
-	bytetemp = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[SYS_ISO_CTRL] + 1);
-	temp = bytetemp & 0xFE;
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[SYS_ISO_CTRL] + 1, temp);
-
-	bytetemp = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_TEST] + 3);
-	temp = bytetemp | 0x80;
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_TEST] + 3, temp);
-
-	rtl_write_byte(rtlpriv, 0x2F8, 0x3);
-
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3, 0x72);
-}
-
-u8 efuse_read_1byte(struct ieee80211_hw *hw, u16 address)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 data;
-	u8 bytetemp;
-	u8 temp;
-	u32 k = 0;
-	const u32 efuse_len =
-		rtlpriv->cfg->maps[EFUSE_REAL_CONTENT_SIZE];
-
-	if (address < efuse_len) {
-		temp = address & 0xFF;
-		rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 1,
-			       temp);
-		bytetemp = rtl_read_byte(rtlpriv,
-					 rtlpriv->cfg->maps[EFUSE_CTRL] + 2);
-		temp = ((address >> 8) & 0x03) | (bytetemp & 0xFC);
-		rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2,
-			       temp);
-
-		bytetemp = rtl_read_byte(rtlpriv,
-					 rtlpriv->cfg->maps[EFUSE_CTRL] + 3);
-		temp = bytetemp & 0x7F;
-		rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3,
-			       temp);
-
-		bytetemp = rtl_read_byte(rtlpriv,
-					 rtlpriv->cfg->maps[EFUSE_CTRL] + 3);
-		while (!(bytetemp & 0x80)) {
-			bytetemp =
-			   rtl_read_byte(rtlpriv,
-					 rtlpriv->cfg->maps[EFUSE_CTRL] + 3);
-			k++;
-			if (k == 1000) {
-				k = 0;
-				break;
-			}
-		}
-		data = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL]);
-		return data;
-	}
-	return 0xFF;
-}
-
-void efuse_write_1byte(struct ieee80211_hw *hw, u16 address, u8 value)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 bytetemp;
-	u8 temp;
-	u32 k = 0;
-	const u32 efuse_len =
-		rtlpriv->cfg->maps[EFUSE_REAL_CONTENT_SIZE];
-
-	RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, "Addr=%x Data =%x\n",
-		 address, value);
-
-	if (address < efuse_len) {
-		rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL], value);
-
-		temp = address & 0xFF;
-		rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 1,
-			       temp);
-		bytetemp = rtl_read_byte(rtlpriv,
-					 rtlpriv->cfg->maps[EFUSE_CTRL] + 2);
-
-		temp = ((address >> 8) & 0x03) | (bytetemp & 0xFC);
-		rtl_write_byte(rtlpriv,
-			       rtlpriv->cfg->maps[EFUSE_CTRL] + 2, temp);
-
-		bytetemp = rtl_read_byte(rtlpriv,
-					 rtlpriv->cfg->maps[EFUSE_CTRL] + 3);
-		temp = bytetemp | 0x80;
-		rtl_write_byte(rtlpriv,
-			       rtlpriv->cfg->maps[EFUSE_CTRL] + 3, temp);
-
-		bytetemp = rtl_read_byte(rtlpriv,
-					 rtlpriv->cfg->maps[EFUSE_CTRL] + 3);
-
-		while (bytetemp & 0x80) {
-			bytetemp =
-			    rtl_read_byte(rtlpriv,
-					  rtlpriv->cfg->maps[EFUSE_CTRL] + 3);
-			k++;
-			if (k == 100) {
-				k = 0;
-				break;
-			}
-		}
-	}
-}
-
-void read_efuse_byte(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u32 value32;
-	u8 readbyte;
-	u16 retry;
-
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 1,
-		       (_offset & 0xff));
-	readbyte = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2);
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2,
-		       ((_offset >> 8) & 0x03) | (readbyte & 0xfc));
-
-	readbyte = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3);
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3,
-		       (readbyte & 0x7f));
-
-	retry = 0;
-	value32 = rtl_read_dword(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL]);
-	while (!(((value32 >> 24) & 0xff) & 0x80) && (retry < 10000)) {
-		value32 = rtl_read_dword(rtlpriv,
-					 rtlpriv->cfg->maps[EFUSE_CTRL]);
-		retry++;
-	}
-
-	udelay(50);
-	value32 = rtl_read_dword(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL]);
-
-	*pbuf = (u8)(value32 & 0xff);
-}
-
-void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	u8 *efuse_tbl;
-	u8 rtemp8[1];
-	u16 efuse_addr = 0;
-	u8 offset, wren;
-	u8 u1temp = 0;
-	u16 i;
-	u16 j;
-	const u16 efuse_max_section =
-		rtlpriv->cfg->maps[EFUSE_MAX_SECTION_MAP];
-	const u32 efuse_len =
-		rtlpriv->cfg->maps[EFUSE_REAL_CONTENT_SIZE];
-	u16 **efuse_word;
-	u16 efuse_utilized = 0;
-	u8 efuse_usage;
-
-	if ((_offset + _size_byte) > rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]) {
-		RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-			 "%s(): Invalid offset(%#x) with read bytes(%#x)!!\n",
-			 __func__, _offset, _size_byte);
-		return;
-	}
-
-	/* allocate memory for efuse_tbl and efuse_word */
-	efuse_tbl = kzalloc(rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE],
-			    GFP_ATOMIC);
-	if (!efuse_tbl)
-		return;
-	efuse_word = kcalloc(EFUSE_MAX_WORD_UNIT, sizeof(u16 *), GFP_ATOMIC);
-	if (!efuse_word)
-		goto out;
-	for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) {
-		efuse_word[i] = kcalloc(efuse_max_section, sizeof(u16),
-					GFP_ATOMIC);
-		if (!efuse_word[i])
-			goto done;
-	}
-
-	for (i = 0; i < efuse_max_section; i++)
-		for (j = 0; j < EFUSE_MAX_WORD_UNIT; j++)
-			efuse_word[j][i] = 0xFFFF;
-
-	read_efuse_byte(hw, efuse_addr, rtemp8);
-	if (*rtemp8 != 0xFF) {
-		efuse_utilized++;
-		RTPRINT(rtlpriv, FEEPROM, EFUSE_READ_ALL,
-			"Addr=%d\n", efuse_addr);
-		efuse_addr++;
-	}
-
-	while ((*rtemp8 != 0xFF) && (efuse_addr < efuse_len)) {
-		/*  Check PG header for section num.  */
-		if ((*rtemp8 & 0x1F) == 0x0F) {/* extended header */
-			u1temp = ((*rtemp8 & 0xE0) >> 5);
-			read_efuse_byte(hw, efuse_addr, rtemp8);
-
-			if ((*rtemp8 & 0x0F) == 0x0F) {
-				efuse_addr++;
-				read_efuse_byte(hw, efuse_addr, rtemp8);
-
-				if (*rtemp8 != 0xFF &&
-				    (efuse_addr < efuse_len)) {
-					efuse_addr++;
-				}
-				continue;
-			} else {
-				offset = ((*rtemp8 & 0xF0) >> 1) | u1temp;
-				wren = (*rtemp8 & 0x0F);
-				efuse_addr++;
-			}
-		} else {
-			offset = ((*rtemp8 >> 4) & 0x0f);
-			wren = (*rtemp8 & 0x0f);
-		}
-
-		if (offset < efuse_max_section) {
-			RTPRINT(rtlpriv, FEEPROM, EFUSE_READ_ALL,
-				"offset-%d Worden=%x\n", offset, wren);
-
-			for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) {
-				if (!(wren & 0x01)) {
-					RTPRINT(rtlpriv, FEEPROM,
-						EFUSE_READ_ALL,
-						"Addr=%d\n", efuse_addr);
-
-					read_efuse_byte(hw, efuse_addr, rtemp8);
-					efuse_addr++;
-					efuse_utilized++;
-					efuse_word[i][offset] =
-							 (*rtemp8 & 0xff);
-
-					if (efuse_addr >= efuse_len)
-						break;
-
-					RTPRINT(rtlpriv, FEEPROM,
-						EFUSE_READ_ALL,
-						"Addr=%d\n", efuse_addr);
-
-					read_efuse_byte(hw, efuse_addr, rtemp8);
-					efuse_addr++;
-					efuse_utilized++;
-					efuse_word[i][offset] |=
-					    (((u16)*rtemp8 << 8) & 0xff00);
-
-					if (efuse_addr >= efuse_len)
-						break;
-				}
-
-				wren >>= 1;
-			}
-		}
-
-		RTPRINT(rtlpriv, FEEPROM, EFUSE_READ_ALL,
-			"Addr=%d\n", efuse_addr);
-		read_efuse_byte(hw, efuse_addr, rtemp8);
-		if (*rtemp8 != 0xFF && (efuse_addr < efuse_len)) {
-			efuse_utilized++;
-			efuse_addr++;
-		}
-	}
-
-	for (i = 0; i < efuse_max_section; i++) {
-		for (j = 0; j < EFUSE_MAX_WORD_UNIT; j++) {
-			efuse_tbl[(i * 8) + (j * 2)] =
-			    (efuse_word[j][i] & 0xff);
-			efuse_tbl[(i * 8) + ((j * 2) + 1)] =
-			    ((efuse_word[j][i] >> 8) & 0xff);
-		}
-	}
-
-	for (i = 0; i < _size_byte; i++)
-		pbuf[i] = efuse_tbl[_offset + i];
-
-	rtlefuse->efuse_usedbytes = efuse_utilized;
-	efuse_usage = (u8)((efuse_utilized * 100) / efuse_len);
-	rtlefuse->efuse_usedpercentage = efuse_usage;
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_EFUSE_BYTES,
-				      (u8 *)&efuse_utilized);
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_EFUSE_USAGE,
-				      &efuse_usage);
-done:
-	for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++)
-		kfree(efuse_word[i]);
-	kfree(efuse_word);
-out:
-	kfree(efuse_tbl);
-}
-
-bool efuse_shadow_update_chk(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	u8 section_idx, i, base;
-	u16 words_need = 0, hdr_num = 0, totalbytes, efuse_used;
-	bool wordchanged, result = true;
-
-	for (section_idx = 0; section_idx < 16; section_idx++) {
-		base = section_idx * 8;
-		wordchanged = false;
-
-		for (i = 0; i < 8; i = i + 2) {
-			if ((rtlefuse->efuse_map[EFUSE_INIT_MAP][base + i] !=
-			     rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base + i]) ||
-			    (rtlefuse->efuse_map[EFUSE_INIT_MAP][base + i + 1] !=
-			     rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base + i +
-								   1])) {
-				words_need++;
-				wordchanged = true;
-			}
-		}
-
-		if (wordchanged)
-			hdr_num++;
-	}
-
-	totalbytes = hdr_num + words_need * 2;
-	efuse_used = rtlefuse->efuse_usedbytes;
-
-	if ((totalbytes + efuse_used) >=
-	    (EFUSE_MAX_SIZE - rtlpriv->cfg->maps[EFUSE_OOB_PROTECT_BYTES_LEN]))
-		result = false;
-
-	RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-		 "%s(): totalbytes(%#x), hdr_num(%#x), words_need(%#x), efuse_used(%d)\n",
-		 __func__, totalbytes, hdr_num, words_need, efuse_used);
-
-	return result;
-}
-
-void efuse_shadow_read(struct ieee80211_hw *hw, u8 type,
-		       u16 offset, u32 *value)
-{
-	if (type == 1)
-		efuse_shadow_read_1byte(hw, offset, (u8 *)value);
-	else if (type == 2)
-		efuse_shadow_read_2byte(hw, offset, (u16 *)value);
-	else if (type == 4)
-		efuse_shadow_read_4byte(hw, offset, value);
-}
-
-void efuse_shadow_write(struct ieee80211_hw *hw, u8 type, u16 offset,
-			u32 value)
-{
-	if (type == 1)
-		efuse_shadow_write_1byte(hw, offset, (u8)value);
-	else if (type == 2)
-		efuse_shadow_write_2byte(hw, offset, (u16)value);
-	else if (type == 4)
-		efuse_shadow_write_4byte(hw, offset, value);
-}
-
-bool efuse_shadow_update(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	u16 i, offset, base;
-	u8 word_en = 0x0F;
-	u8 first_pg = false;
-
-	RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, "\n");
-
-	if (!efuse_shadow_update_chk(hw)) {
-		efuse_read_all_map(hw, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0]);
-		memcpy(&rtlefuse->efuse_map[EFUSE_MODIFY_MAP][0],
-		       &rtlefuse->efuse_map[EFUSE_INIT_MAP][0],
-		       rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]);
-
-		RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-			 "efuse out of capacity!!\n");
-		return false;
-	}
-	efuse_power_switch(hw, true, true);
-
-	for (offset = 0; offset < 16; offset++) {
-		word_en = 0x0F;
-		base = offset * 8;
-
-		for (i = 0; i < 8; i++) {
-			if (first_pg) {
-				word_en &= ~(BIT(i / 2));
-
-				rtlefuse->efuse_map[EFUSE_INIT_MAP][base + i] =
-				    rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base + i];
-			} else {
-				if (rtlefuse->efuse_map[EFUSE_INIT_MAP][base + i] !=
-				    rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base + i]) {
-					word_en &= ~(BIT(i / 2));
-
-					rtlefuse->efuse_map[EFUSE_INIT_MAP][base + i] =
-					    rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base + i];
-				}
-			}
-		}
-		if (word_en != 0x0F) {
-			u8 tmpdata[8];
-
-			memcpy(tmpdata,
-			       &rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base],
-			       8);
-			RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_LOUD,
-				      "U-efuse\n", tmpdata, 8);
-
-			if (!efuse_pg_packet_write(hw, (u8)offset, word_en,
-						   tmpdata)) {
-				RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-					 "PG section(%#x) fail!!\n", offset);
-				break;
-			}
-		}
-	}
-
-	efuse_power_switch(hw, true, false);
-	efuse_read_all_map(hw, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0]);
-
-	memcpy(&rtlefuse->efuse_map[EFUSE_MODIFY_MAP][0],
-	       &rtlefuse->efuse_map[EFUSE_INIT_MAP][0],
-	       rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]);
-
-	RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, "\n");
-	return true;
-}
-
-void rtl_efuse_shadow_map_update(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-
-	if (rtlefuse->autoload_failflag)
-		memset((&rtlefuse->efuse_map[EFUSE_INIT_MAP][0]),
-		       0xFF, rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]);
-	else
-		efuse_read_all_map(hw, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0]);
-
-	memcpy(&rtlefuse->efuse_map[EFUSE_MODIFY_MAP][0],
-	       &rtlefuse->efuse_map[EFUSE_INIT_MAP][0],
-	       rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]);
-}
-
-void efuse_force_write_vendor_id(struct ieee80211_hw *hw)
-{
-	u8 tmpdata[8] = { 0xFF, 0xFF, 0xEC, 0x10, 0xFF, 0xFF, 0xFF, 0xFF };
-
-	efuse_power_switch(hw, true, true);
-
-	efuse_pg_packet_write(hw, 1, 0xD, tmpdata);
-
-	efuse_power_switch(hw, true, false);
-}
-
-void efuse_re_pg_section(struct ieee80211_hw *hw, u8 section_idx)
-{
-}
-
-static void efuse_shadow_read_1byte(struct ieee80211_hw *hw,
-				    u16 offset, u8 *value)
-{
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	*value = rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset];
-}
-
-static void efuse_shadow_read_2byte(struct ieee80211_hw *hw,
-				    u16 offset, u16 *value)
-{
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-
-	*value = rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset];
-	*value |= rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 1] << 8;
-}
-
-static void efuse_shadow_read_4byte(struct ieee80211_hw *hw,
-				    u16 offset, u32 *value)
-{
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-
-	*value = rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset];
-	*value |= rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 1] << 8;
-	*value |= rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 2] << 16;
-	*value |= rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 3] << 24;
-}
-
-static void efuse_shadow_write_1byte(struct ieee80211_hw *hw,
-				     u16 offset, u8 value)
-{
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-
-	rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset] = value;
-}
-
-static void efuse_shadow_write_2byte(struct ieee80211_hw *hw,
-				     u16 offset, u16 value)
-{
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-
-	rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset] = value & 0x00FF;
-	rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 1] = value >> 8;
-}
-
-static void efuse_shadow_write_4byte(struct ieee80211_hw *hw,
-				     u16 offset, u32 value)
-{
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-
-	rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset] =
-	    (u8)(value & 0x000000FF);
-	rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 1] =
-	    (u8)((value >> 8) & 0x0000FF);
-	rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 2] =
-	    (u8)((value >> 16) & 0x00FF);
-	rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 3] =
-	    (u8)((value >> 24) & 0xFF);
-}
-
-int efuse_one_byte_read(struct ieee80211_hw *hw, u16 addr, u8 *data)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 tmpidx = 0;
-	int result;
-
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 1,
-		       (u8)(addr & 0xff));
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2,
-		       ((u8)((addr >> 8) & 0x03)) |
-		       (rtl_read_byte(rtlpriv,
-				      rtlpriv->cfg->maps[EFUSE_CTRL] + 2) &
-			0xFC));
-
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3, 0x72);
-
-	while (!(0x80 & rtl_read_byte(rtlpriv,
-				      rtlpriv->cfg->maps[EFUSE_CTRL] + 3)) &&
-	       (tmpidx < 100)) {
-		tmpidx++;
-	}
-
-	if (tmpidx < 100) {
-		*data = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL]);
-		result = true;
-	} else {
-		*data = 0xff;
-		result = false;
-	}
-	return result;
-}
-
-static int efuse_one_byte_write(struct ieee80211_hw *hw, u16 addr, u8 data)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 tmpidx = 0;
-
-	RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-		 "Addr = %x Data=%x\n", addr, data);
-
-	rtl_write_byte(rtlpriv,
-		       rtlpriv->cfg->maps[EFUSE_CTRL] + 1, (u8)(addr & 0xff));
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2,
-		       (rtl_read_byte(rtlpriv,
-			 rtlpriv->cfg->maps[EFUSE_CTRL] +
-			 2) & 0xFC) | (u8)((addr >> 8) & 0x03));
-
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL], data);
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3, 0xF2);
-
-	while ((0x80 &
-		rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3)) &&
-	       (tmpidx < 100)) {
-		tmpidx++;
-	}
-
-	if (tmpidx < 100)
-		return true;
-	return false;
-}
-
-static void efuse_read_all_map(struct ieee80211_hw *hw, u8 *efuse)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	efuse_power_switch(hw, false, true);
-	read_efuse(hw, 0, rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE], efuse);
-	efuse_power_switch(hw, false, false);
-}
-
-static void efuse_read_data_case1(struct ieee80211_hw *hw, u16 *efuse_addr,
-				  u8 efuse_data, u8 offset, u8 *tmpdata,
-				  u8 *readstate)
-{
-	bool dataempty = true;
-	u8 hoffset;
-	u8 tmpidx;
-	u8 hworden;
-	u8 word_cnts;
-
-	hoffset = (efuse_data >> 4) & 0x0F;
-	hworden = efuse_data & 0x0F;
-	word_cnts = efuse_calculate_word_cnts(hworden);
-
-	if (hoffset == offset) {
-		for (tmpidx = 0; tmpidx < word_cnts * 2; tmpidx++) {
-			if (efuse_one_byte_read(hw, *efuse_addr + 1 + tmpidx,
-						&efuse_data)) {
-				tmpdata[tmpidx] = efuse_data;
-				if (efuse_data != 0xff)
-					dataempty = false;
-			}
-		}
-
-		if (!dataempty) {
-			*readstate = PG_STATE_DATA;
-		} else {
-			*efuse_addr = *efuse_addr + (word_cnts * 2) + 1;
-			*readstate = PG_STATE_HEADER;
-		}
-
-	} else {
-		*efuse_addr = *efuse_addr + (word_cnts * 2) + 1;
-		*readstate = PG_STATE_HEADER;
-	}
-}
-
-static int efuse_pg_packet_read(struct ieee80211_hw *hw, u8 offset, u8 *data)
-{
-	u8 readstate = PG_STATE_HEADER;
-
-	bool continual = true;
-
-	u8 efuse_data, word_cnts = 0;
-	u16 efuse_addr = 0;
-	u8 tmpdata[8];
-
-	if (!data)
-		return false;
-	if (offset > 15)
-		return false;
-
-	memset(data, 0xff, PGPKT_DATA_SIZE * sizeof(u8));
-	memset(tmpdata, 0xff, PGPKT_DATA_SIZE * sizeof(u8));
-
-	while (continual && (efuse_addr < EFUSE_MAX_SIZE)) {
-		if (readstate & PG_STATE_HEADER) {
-			if (efuse_one_byte_read(hw, efuse_addr, &efuse_data) &&
-			    (efuse_data != 0xFF))
-				efuse_read_data_case1(hw, &efuse_addr,
-						      efuse_data, offset,
-						      tmpdata, &readstate);
-			else
-				continual = false;
-		} else if (readstate & PG_STATE_DATA) {
-			efuse_word_enable_data_read(0, tmpdata, data);
-			efuse_addr = efuse_addr + (word_cnts * 2) + 1;
-			readstate = PG_STATE_HEADER;
-		}
-	}
-
-	if ((data[0] == 0xff) && (data[1] == 0xff) &&
-	    (data[2] == 0xff) && (data[3] == 0xff) &&
-	    (data[4] == 0xff) && (data[5] == 0xff) &&
-	    (data[6] == 0xff) && (data[7] == 0xff))
-		return false;
-	return true;
-}
-
-static void efuse_write_data_case1(struct ieee80211_hw *hw, u16 *efuse_addr,
-				   u8 efuse_data, u8 offset,
-				   int *continual, u8 *write_state,
-				   struct pgpkt_struct *target_pkt,
-				   int *repeat_times, int *result, u8 word_en)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct pgpkt_struct tmp_pkt;
-	int dataempty = true;
-	u8 originaldata[8 * sizeof(u8)];
-	u8 badworden = 0x0F;
-	u8 match_word_en, tmp_word_en;
-	u8 tmpindex;
-	u8 tmp_header = efuse_data;
-	u8 tmp_word_cnts;
-
-	tmp_pkt.offset = (tmp_header >> 4) & 0x0F;
-	tmp_pkt.word_en = tmp_header & 0x0F;
-	tmp_word_cnts = efuse_calculate_word_cnts(tmp_pkt.word_en);
-
-	if (tmp_pkt.offset != target_pkt->offset) {
-		*efuse_addr = *efuse_addr + (tmp_word_cnts * 2) + 1;
-		*write_state = PG_STATE_HEADER;
-	} else {
-		for (tmpindex = 0; tmpindex < (tmp_word_cnts * 2); tmpindex++) {
-			if (efuse_one_byte_read(hw,
-						(*efuse_addr + 1 + tmpindex),
-						&efuse_data) &&
-			    (efuse_data != 0xFF))
-				dataempty = false;
-		}
-
-		if (!dataempty) {
-			*efuse_addr = *efuse_addr + (tmp_word_cnts * 2) + 1;
-			*write_state = PG_STATE_HEADER;
-		} else {
-			match_word_en = 0x0F;
-			if (!((target_pkt->word_en & BIT(0)) |
-			    (tmp_pkt.word_en & BIT(0))))
-				match_word_en &= (~BIT(0));
-
-			if (!((target_pkt->word_en & BIT(1)) |
-			    (tmp_pkt.word_en & BIT(1))))
-				match_word_en &= (~BIT(1));
-
-			if (!((target_pkt->word_en & BIT(2)) |
-			    (tmp_pkt.word_en & BIT(2))))
-				match_word_en &= (~BIT(2));
-
-			if (!((target_pkt->word_en & BIT(3)) |
-			    (tmp_pkt.word_en & BIT(3))))
-				match_word_en &= (~BIT(3));
-
-			if ((match_word_en & 0x0F) != 0x0F) {
-				badworden =
-				  enable_efuse_data_write(hw,
-							  *efuse_addr + 1,
-							  tmp_pkt.word_en,
-							  target_pkt->data);
-
-				if (0x0F != (badworden & 0x0F))	{
-					u8 reorg_offset = offset;
-					u8 reorg_worden = badworden;
-
-					efuse_pg_packet_write(hw, reorg_offset,
-							      reorg_worden,
-							      originaldata);
-				}
-
-				tmp_word_en = 0x0F;
-				if ((target_pkt->word_en & BIT(0)) ^
-				    (match_word_en & BIT(0)))
-					tmp_word_en &= (~BIT(0));
-
-				if ((target_pkt->word_en & BIT(1)) ^
-				    (match_word_en & BIT(1)))
-					tmp_word_en &= (~BIT(1));
-
-				if ((target_pkt->word_en & BIT(2)) ^
-				    (match_word_en & BIT(2)))
-					tmp_word_en &= (~BIT(2));
-
-				if ((target_pkt->word_en & BIT(3)) ^
-				    (match_word_en & BIT(3)))
-					tmp_word_en &= (~BIT(3));
-
-				if ((tmp_word_en & 0x0F) != 0x0F) {
-					*efuse_addr =
-					    efuse_get_current_size(hw);
-					target_pkt->offset = offset;
-					target_pkt->word_en = tmp_word_en;
-				} else {
-					*continual = false;
-				}
-				*write_state = PG_STATE_HEADER;
-				*repeat_times += 1;
-				if (*repeat_times > EFUSE_REPEAT_THRESHOLD_) {
-					*continual = false;
-					*result = false;
-				}
-			} else {
-				*efuse_addr += (2 * tmp_word_cnts) + 1;
-				target_pkt->offset = offset;
-				target_pkt->word_en = word_en;
-				*write_state = PG_STATE_HEADER;
-			}
-		}
-	}
-	RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, "efuse PG_STATE_HEADER-1\n");
-}
-
-static void efuse_write_data_case2(struct ieee80211_hw *hw, u16 *efuse_addr,
-				   int *continual, u8 *write_state,
-				   struct pgpkt_struct target_pkt,
-				   int *repeat_times, int *result)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct pgpkt_struct tmp_pkt;
-	u8 pg_header;
-	u8 tmp_header;
-	u8 originaldata[8 * sizeof(u8)];
-	u8 tmp_word_cnts;
-	u8 badworden = 0x0F;
-
-	pg_header = ((target_pkt.offset << 4) & 0xf0) | target_pkt.word_en;
-	efuse_one_byte_write(hw, *efuse_addr, pg_header);
-	efuse_one_byte_read(hw, *efuse_addr, &tmp_header);
-
-	if (tmp_header == pg_header) {
-		*write_state = PG_STATE_DATA;
-	} else if (tmp_header == 0xFF) {
-		*write_state = PG_STATE_HEADER;
-		*repeat_times += 1;
-		if (*repeat_times > EFUSE_REPEAT_THRESHOLD_) {
-			*continual = false;
-			*result = false;
-		}
-	} else {
-		tmp_pkt.offset = (tmp_header >> 4) & 0x0F;
-		tmp_pkt.word_en = tmp_header & 0x0F;
-
-		tmp_word_cnts = efuse_calculate_word_cnts(tmp_pkt.word_en);
-
-		memset(originaldata, 0xff,  8 * sizeof(u8));
-
-		if (efuse_pg_packet_read(hw, tmp_pkt.offset, originaldata)) {
-			badworden = enable_efuse_data_write(hw,
-							    *efuse_addr + 1,
-							    tmp_pkt.word_en,
-							    originaldata);
-
-			if (0x0F != (badworden & 0x0F)) {
-				u8 reorg_offset = tmp_pkt.offset;
-				u8 reorg_worden = badworden;
-
-				efuse_pg_packet_write(hw, reorg_offset,
-						      reorg_worden,
-						      originaldata);
-				*efuse_addr = efuse_get_current_size(hw);
-			} else {
-				*efuse_addr = *efuse_addr +
-					      (tmp_word_cnts * 2) + 1;
-			}
-		} else {
-			*efuse_addr = *efuse_addr + (tmp_word_cnts * 2) + 1;
-		}
-
-		*write_state = PG_STATE_HEADER;
-		*repeat_times += 1;
-		if (*repeat_times > EFUSE_REPEAT_THRESHOLD_) {
-			*continual = false;
-			*result = false;
-		}
-
-		RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-			"efuse PG_STATE_HEADER-2\n");
-	}
-}
-
-static int efuse_pg_packet_write(struct ieee80211_hw *hw,
-				 u8 offset, u8 word_en, u8 *data)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct pgpkt_struct target_pkt;
-	u8 write_state = PG_STATE_HEADER;
-	int continual = true, result = true;
-	u16 efuse_addr = 0;
-	u8 efuse_data;
-	u8 target_word_cnts = 0;
-	u8 badworden = 0x0F;
-	static int repeat_times;
-
-	if (efuse_get_current_size(hw) >= (EFUSE_MAX_SIZE -
-		rtlpriv->cfg->maps[EFUSE_OOB_PROTECT_BYTES_LEN])) {
-		RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-			"%s error\n", __func__);
-		return false;
-	}
-
-	target_pkt.offset = offset;
-	target_pkt.word_en = word_en;
-
-	memset(target_pkt.data, 0xFF,  8 * sizeof(u8));
-
-	efuse_word_enable_data_read(word_en, data, target_pkt.data);
-	target_word_cnts = efuse_calculate_word_cnts(target_pkt.word_en);
-
-	RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, "efuse Power ON\n");
-
-	while (continual && (efuse_addr < (EFUSE_MAX_SIZE -
-	       rtlpriv->cfg->maps[EFUSE_OOB_PROTECT_BYTES_LEN]))) {
-		if (write_state == PG_STATE_HEADER) {
-			badworden = 0x0F;
-			RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-				"efuse PG_STATE_HEADER\n");
-
-			if (efuse_one_byte_read(hw, efuse_addr, &efuse_data) &&
-			    (efuse_data != 0xFF))
-				efuse_write_data_case1(hw, &efuse_addr,
-						       efuse_data, offset,
-						       &continual,
-						       &write_state,
-						       &target_pkt,
-						       &repeat_times, &result,
-						       word_en);
-			else
-				efuse_write_data_case2(hw, &efuse_addr,
-						       &continual,
-						       &write_state,
-						       target_pkt,
-						       &repeat_times,
-						       &result);
-
-		} else if (write_state == PG_STATE_DATA) {
-			RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-				"efuse PG_STATE_DATA\n");
-			badworden = 0x0f;
-			badworden =
-			    enable_efuse_data_write(hw, efuse_addr + 1,
-						    target_pkt.word_en,
-						    target_pkt.data);
-
-			if ((badworden & 0x0F) == 0x0F) {
-				continual = false;
-			} else {
-				efuse_addr =
-				    efuse_addr + (2 * target_word_cnts) + 1;
-
-				target_pkt.offset = offset;
-				target_pkt.word_en = badworden;
-				target_word_cnts =
-				    efuse_calculate_word_cnts(target_pkt.word_en);
-				write_state = PG_STATE_HEADER;
-				repeat_times++;
-				if (repeat_times > EFUSE_REPEAT_THRESHOLD_) {
-					continual = false;
-					result = false;
-				}
-				RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-					"efuse PG_STATE_HEADER-3\n");
-			}
-		}
-	}
-
-	if (efuse_addr >= (EFUSE_MAX_SIZE -
-		rtlpriv->cfg->maps[EFUSE_OOB_PROTECT_BYTES_LEN])) {
-		RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-			 "efuse_addr(%#x) Out of size!!\n", efuse_addr);
-	}
-
-	return true;
-}
-
-static void efuse_word_enable_data_read(u8 word_en, u8 *sourdata,
-					u8 *targetdata)
-{
-	if (!(word_en & BIT(0))) {
-		targetdata[0] = sourdata[0];
-		targetdata[1] = sourdata[1];
-	}
-
-	if (!(word_en & BIT(1))) {
-		targetdata[2] = sourdata[2];
-		targetdata[3] = sourdata[3];
-	}
-
-	if (!(word_en & BIT(2))) {
-		targetdata[4] = sourdata[4];
-		targetdata[5] = sourdata[5];
-	}
-
-	if (!(word_en & BIT(3))) {
-		targetdata[6] = sourdata[6];
-		targetdata[7] = sourdata[7];
-	}
-}
-
-static u8 enable_efuse_data_write(struct ieee80211_hw *hw,
-				  u16 efuse_addr, u8 word_en, u8 *data)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u16 tmpaddr;
-	u16 start_addr = efuse_addr;
-	u8 badworden = 0x0F;
-	u8 tmpdata[8];
-
-	memset(tmpdata, 0xff, PGPKT_DATA_SIZE);
-	RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-		 "word_en = %x efuse_addr=%x\n", word_en, efuse_addr);
-
-	if (!(word_en & BIT(0))) {
-		tmpaddr = start_addr;
-		efuse_one_byte_write(hw, start_addr++, data[0]);
-		efuse_one_byte_write(hw, start_addr++, data[1]);
-
-		efuse_one_byte_read(hw, tmpaddr, &tmpdata[0]);
-		efuse_one_byte_read(hw, tmpaddr + 1, &tmpdata[1]);
-		if ((data[0] != tmpdata[0]) || (data[1] != tmpdata[1]))
-			badworden &= (~BIT(0));
-	}
-
-	if (!(word_en & BIT(1))) {
-		tmpaddr = start_addr;
-		efuse_one_byte_write(hw, start_addr++, data[2]);
-		efuse_one_byte_write(hw, start_addr++, data[3]);
-
-		efuse_one_byte_read(hw, tmpaddr, &tmpdata[2]);
-		efuse_one_byte_read(hw, tmpaddr + 1, &tmpdata[3]);
-		if ((data[2] != tmpdata[2]) || (data[3] != tmpdata[3]))
-			badworden &= (~BIT(1));
-	}
-
-	if (!(word_en & BIT(2))) {
-		tmpaddr = start_addr;
-		efuse_one_byte_write(hw, start_addr++, data[4]);
-		efuse_one_byte_write(hw, start_addr++, data[5]);
-
-		efuse_one_byte_read(hw, tmpaddr, &tmpdata[4]);
-		efuse_one_byte_read(hw, tmpaddr + 1, &tmpdata[5]);
-		if ((data[4] != tmpdata[4]) || (data[5] != tmpdata[5]))
-			badworden &= (~BIT(2));
-	}
-
-	if (!(word_en & BIT(3))) {
-		tmpaddr = start_addr;
-		efuse_one_byte_write(hw, start_addr++, data[6]);
-		efuse_one_byte_write(hw, start_addr++, data[7]);
-
-		efuse_one_byte_read(hw, tmpaddr, &tmpdata[6]);
-		efuse_one_byte_read(hw, tmpaddr + 1, &tmpdata[7]);
-		if ((data[6] != tmpdata[6]) || (data[7] != tmpdata[7]))
-			badworden &= (~BIT(3));
-	}
-
-	return badworden;
-}
-
-void efuse_power_switch(struct ieee80211_hw *hw, u8 write, u8 pwrstate)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	u8 tempval;
-	u16 tmpv16;
-
-	if (pwrstate && (rtlhal->hw_type != HARDWARE_TYPE_RTL8192SE)) {
-		if (rtlhal->hw_type != HARDWARE_TYPE_RTL8192CE &&
-		    rtlhal->hw_type != HARDWARE_TYPE_RTL8192DE) {
-			rtl_write_byte(rtlpriv,
-				       rtlpriv->cfg->maps[EFUSE_ACCESS], 0x69);
-		} else {
-			tmpv16 =
-			  rtl_read_word(rtlpriv,
-					rtlpriv->cfg->maps[SYS_ISO_CTRL]);
-			if (!(tmpv16 & rtlpriv->cfg->maps[EFUSE_PWC_EV12V])) {
-				tmpv16 |= rtlpriv->cfg->maps[EFUSE_PWC_EV12V];
-				rtl_write_word(rtlpriv,
-					       rtlpriv->cfg->maps[SYS_ISO_CTRL],
-					       tmpv16);
-			}
-		}
-		tmpv16 = rtl_read_word(rtlpriv,
-				       rtlpriv->cfg->maps[SYS_FUNC_EN]);
-		if (!(tmpv16 & rtlpriv->cfg->maps[EFUSE_FEN_ELDR])) {
-			tmpv16 |= rtlpriv->cfg->maps[EFUSE_FEN_ELDR];
-			rtl_write_word(rtlpriv,
-				       rtlpriv->cfg->maps[SYS_FUNC_EN], tmpv16);
-		}
-
-		tmpv16 = rtl_read_word(rtlpriv, rtlpriv->cfg->maps[SYS_CLK]);
-		if ((!(tmpv16 & rtlpriv->cfg->maps[EFUSE_LOADER_CLK_EN])) ||
-		    (!(tmpv16 & rtlpriv->cfg->maps[EFUSE_ANA8M]))) {
-			tmpv16 |= (rtlpriv->cfg->maps[EFUSE_LOADER_CLK_EN] |
-				   rtlpriv->cfg->maps[EFUSE_ANA8M]);
-			rtl_write_word(rtlpriv,
-				       rtlpriv->cfg->maps[SYS_CLK], tmpv16);
-		}
-	}
-
-	if (pwrstate) {
-		if (write) {
-			tempval = rtl_read_byte(rtlpriv,
-						rtlpriv->cfg->maps[EFUSE_TEST] +
-						3);
-
-			if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) {
-				tempval &= ~(BIT(3) | BIT(4) | BIT(5) | BIT(6));
-				tempval |= (VOLTAGE_V25 << 3);
-			} else if (rtlhal->hw_type != HARDWARE_TYPE_RTL8192SE) {
-				tempval &= 0x0F;
-				tempval |= (VOLTAGE_V25 << 4);
-			}
-
-			rtl_write_byte(rtlpriv,
-				       rtlpriv->cfg->maps[EFUSE_TEST] + 3,
-				       (tempval | 0x80));
-		}
-
-		if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE) {
-			rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CLK],
-				       0x03);
-		}
-	} else {
-		if (rtlhal->hw_type != HARDWARE_TYPE_RTL8192CE &&
-		    rtlhal->hw_type != HARDWARE_TYPE_RTL8192DE)
-			rtl_write_byte(rtlpriv,
-				       rtlpriv->cfg->maps[EFUSE_ACCESS], 0);
-
-		if (write) {
-			tempval = rtl_read_byte(rtlpriv,
-						rtlpriv->cfg->maps[EFUSE_TEST] +
-						3);
-			rtl_write_byte(rtlpriv,
-				       rtlpriv->cfg->maps[EFUSE_TEST] + 3,
-				       (tempval & 0x7F));
-		}
-
-		if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE) {
-			rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CLK],
-				       0x02);
-		}
-	}
-}
-
-static u16 efuse_get_current_size(struct ieee80211_hw *hw)
-{
-	int continual = true;
-	u16 efuse_addr = 0;
-	u8 hworden;
-	u8 efuse_data, word_cnts;
-
-	while (continual && efuse_one_byte_read(hw, efuse_addr, &efuse_data) &&
-	       (efuse_addr < EFUSE_MAX_SIZE)) {
-		if (efuse_data != 0xFF) {
-			hworden = efuse_data & 0x0F;
-			word_cnts = efuse_calculate_word_cnts(hworden);
-			efuse_addr = efuse_addr + (word_cnts * 2) + 1;
-		} else {
-			continual = false;
-		}
-	}
-
-	return efuse_addr;
-}
-
-static u8 efuse_calculate_word_cnts(u8 word_en)
-{
-	u8 word_cnts = 0;
-
-	if (!(word_en & BIT(0)))
-		word_cnts++;
-	if (!(word_en & BIT(1)))
-		word_cnts++;
-	if (!(word_en & BIT(2)))
-		word_cnts++;
-	if (!(word_en & BIT(3)))
-		word_cnts++;
-	return word_cnts;
-}
-
-int rtl_get_hwinfo(struct ieee80211_hw *hw, struct rtl_priv *rtlpriv,
-		   int max_size, u8 *hwinfo, int *params)
-{
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw);
-	struct device *dev = &rtlpcipriv->dev.pdev->dev;
-	u16 eeprom_id;
-	u16 i, usvalue;
-
-	switch (rtlefuse->epromtype) {
-	case EEPROM_BOOT_EFUSE:
-		rtl_efuse_shadow_map_update(hw);
-		break;
-
-	case EEPROM_93C46:
-		pr_err("RTL8XXX did not boot from eeprom, check it !!\n");
-		return 1;
-
-	default:
-		dev_warn(dev, "no efuse data\n");
-		return 1;
-	}
-
-	memcpy(hwinfo, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0], max_size);
-
-	RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, "MAP",
-		      hwinfo, max_size);
-
-	eeprom_id = *((u16 *)&hwinfo[0]);
-	if (eeprom_id != params[0]) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "EEPROM ID(%#x) is invalid!!\n", eeprom_id);
-		rtlefuse->autoload_failflag = true;
-	} else {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
-		rtlefuse->autoload_failflag = false;
-	}
-
-	if (rtlefuse->autoload_failflag)
-		return 1;
-
-	rtlefuse->eeprom_vid = *(u16 *)&hwinfo[params[1]];
-	rtlefuse->eeprom_did = *(u16 *)&hwinfo[params[2]];
-	rtlefuse->eeprom_svid = *(u16 *)&hwinfo[params[3]];
-	rtlefuse->eeprom_smid = *(u16 *)&hwinfo[params[4]];
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "EEPROMId = 0x%4x\n", eeprom_id);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "EEPROM VID = 0x%4x\n", rtlefuse->eeprom_vid);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "EEPROM DID = 0x%4x\n", rtlefuse->eeprom_did);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "EEPROM SVID = 0x%4x\n", rtlefuse->eeprom_svid);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "EEPROM SMID = 0x%4x\n", rtlefuse->eeprom_smid);
-
-	for (i = 0; i < 6; i += 2) {
-		usvalue = *(u16 *)&hwinfo[params[5] + i];
-		*((u16 *)(&rtlefuse->dev_addr[i])) = usvalue;
-	}
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "%pM\n", rtlefuse->dev_addr);
-
-	rtlefuse->eeprom_channelplan = *&hwinfo[params[6]];
-	rtlefuse->eeprom_version = *(u16 *)&hwinfo[params[7]];
-	rtlefuse->txpwr_fromeprom = true;
-	rtlefuse->eeprom_oemid = *&hwinfo[params[8]];
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid);
-
-	/* set channel plan to world wide 13 */
-	rtlefuse->channel_plan = params[9];
-
-	return 0;
-}
-
-void rtl_fw_block_write(struct ieee80211_hw *hw, const u8 *buffer, u32 size)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 *pu4byteptr = (u8 *)buffer;
-	u32 i;
-
-	for (i = 0; i < size; i++)
-		rtl_write_byte(rtlpriv, (START_ADDRESS + i), *(pu4byteptr + i));
-}
-
-void rtl_fw_page_write(struct ieee80211_hw *hw, u32 page, const u8 *buffer,
-		       u32 size)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 value8;
-	u8 u8page = (u8)(page & 0x07);
-
-	value8 = (rtl_read_byte(rtlpriv, REG_MCUFWDL + 2) & 0xF8) | u8page;
-
-	rtl_write_byte(rtlpriv, (REG_MCUFWDL + 2), value8);
-	rtl_fw_block_write(hw, buffer, size);
-}
-
-void rtl_fill_dummy(u8 *pfwbuf, u32 *pfwlen)
-{
-	u32 fwlen = *pfwlen;
-	u8 remain = (u8)(fwlen % 4);
-
-	remain = (remain == 0) ? 0 : (4 - remain);
-
-	while (remain > 0) {
-		pfwbuf[fwlen] = 0;
-		fwlen++;
-		remain--;
-	}
-
-	*pfwlen = fwlen;
-}
diff --git a/drivers/staging/rtlwifi/efuse.h b/drivers/staging/rtlwifi/efuse.h
deleted file mode 100644
index 5335d3e..0000000
--- a/drivers/staging/rtlwifi/efuse.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_EFUSE_H_
-#define __RTL_EFUSE_H_
-
-#define EFUSE_IC_ID_OFFSET		506
-
-#define EFUSE_MAX_WORD_UNIT		4
-
-#define EFUSE_INIT_MAP			0
-#define EFUSE_MODIFY_MAP		1
-
-#define PG_STATE_HEADER			0x01
-#define PG_STATE_WORD_0			0x02
-#define PG_STATE_WORD_1			0x04
-#define PG_STATE_WORD_2			0x08
-#define PG_STATE_WORD_3			0x10
-#define PG_STATE_DATA			0x20
-
-#define EFUSE_REPEAT_THRESHOLD_		3
-#define EFUSE_ERROE_HANDLE		1
-
-struct efuse_map {
-	u8 offset;
-	u8 word_start;
-	u8 byte_start;
-	u8 byte_cnts;
-};
-
-struct pgpkt_struct {
-	u8 offset;
-	u8 word_en;
-	u8 data[8];
-};
-
-enum efuse_data_item {
-	EFUSE_CHIP_ID = 0,
-	EFUSE_LDO_SETTING,
-	EFUSE_CLK_SETTING,
-	EFUSE_SDIO_SETTING,
-	EFUSE_CCCR,
-	EFUSE_SDIO_MODE,
-	EFUSE_OCR,
-	EFUSE_F0CIS,
-	EFUSE_F1CIS,
-	EFUSE_MAC_ADDR,
-	EFUSE_EEPROM_VER,
-	EFUSE_CHAN_PLAN,
-	EFUSE_TXPW_TAB
-};
-
-enum {
-	VOLTAGE_V25 = 0x03,
-	LDOE25_SHIFT = 28,
-};
-
-struct efuse_priv {
-	u8 id[2];
-	u8 ldo_setting[2];
-	u8 clk_setting[2];
-	u8 cccr;
-	u8 sdio_mode;
-	u8 ocr[3];
-	u8 cis0[17];
-	u8 cis1[48];
-	u8 mac_addr[6];
-	u8 eeprom_verno;
-	u8 channel_plan;
-	u8 tx_power_b[14];
-	u8 tx_power_g[14];
-};
-
-void read_efuse_byte(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf);
-void efuse_initialize(struct ieee80211_hw *hw);
-u8 efuse_read_1byte(struct ieee80211_hw *hw, u16 address);
-int efuse_one_byte_read(struct ieee80211_hw *hw, u16 addr, u8 *data);
-void efuse_write_1byte(struct ieee80211_hw *hw, u16 address, u8 value);
-void read_efuse(struct ieee80211_hw *hw, u16 _offset,
-		u16 _size_byte, u8 *pbuf);
-void efuse_shadow_read(struct ieee80211_hw *hw, u8 type,
-		       u16 offset, u32 *value);
-void efuse_shadow_write(struct ieee80211_hw *hw, u8 type,
-			u16 offset, u32 value);
-bool efuse_shadow_update(struct ieee80211_hw *hw);
-bool efuse_shadow_update_chk(struct ieee80211_hw *hw);
-void rtl_efuse_shadow_map_update(struct ieee80211_hw *hw);
-void efuse_force_write_vendor_id(struct ieee80211_hw *hw);
-void efuse_re_pg_section(struct ieee80211_hw *hw, u8 section_idx);
-void efuse_power_switch(struct ieee80211_hw *hw, u8 write, u8 pwrstate);
-int rtl_get_hwinfo(struct ieee80211_hw *hw, struct rtl_priv *rtlpriv,
-		   int max_size, u8 *hwinfo, int *params);
-void rtl_fill_dummy(u8 *pfwbuf, u32 *pfwlen);
-void rtl_fw_page_write(struct ieee80211_hw *hw, u32 page, const u8 *buffer,
-		       u32 size);
-void rtl_fw_block_write(struct ieee80211_hw *hw, const u8 *buffer, u32 size);
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_2_platform.h b/drivers/staging/rtlwifi/halmac/halmac_2_platform.h
deleted file mode 100644
index 262304d..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_2_platform.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_2_PLATFORM_H_
-#define _HALMAC_2_PLATFORM_H_
-
-#include "../wifi.h"
-#include <asm/byteorder.h>
-
-#define HALMAC_PLATFORM_LITTLE_ENDIAN 1
-#define HALMAC_PLATFORM_BIG_ENDIAN 0
-
-/* Note : Named HALMAC_PLATFORM_LITTLE_ENDIAN / HALMAC_PLATFORM_BIG_ENDIAN
- * is not mandatory. But Little endian must be '1'. Big endian must be '0'
- */
-#if defined(__LITTLE_ENDIAN)
-#define HALMAC_SYSTEM_ENDIAN HALMAC_PLATFORM_LITTLE_ENDIAN
-#elif defined(__BIG_ENDIAN)
-#define HALMAC_SYSTEM_ENDIAN HALMAC_PLATFORM_BIG_ENDIAN
-#else
-#error
-#endif
-
-/* define the Platform SDIO Bus CLK */
-#define PLATFORM_SD_CLK 50000000 /*50MHz*/
-
-/* define the Rx FIFO expanding mode packet size unit for 8821C and 8822B */
-/* Should be 8 Byte alignment */
-#define HALMAC_RX_FIFO_EXPANDING_MODE_PKT_SIZE 16 /*Bytes*/
-
-#endif /* _HALMAC_2_PLATFORM_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_cfg.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_cfg.h
deleted file mode 100644
index 9013bae..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_cfg.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_8822B_CFG_H_
-#define _HALMAC_8822B_CFG_H_
-
-#include "halmac_8822b_pwr_seq.h"
-#include "halmac_api_8822b.h"
-#include "halmac_api_8822b_usb.h"
-#include "halmac_api_8822b_sdio.h"
-#include "halmac_api_8822b_pcie.h"
-#include "../../halmac_bit2.h"
-#include "../../halmac_reg2.h"
-#include "../../halmac_api.h"
-
-#define HALMAC_TX_FIFO_SIZE_8822B 262144 /* 256k */
-#define HALMAC_TX_FIFO_SIZE_LA_8822B 131072 /* 128k */
-#define HALMAC_RX_FIFO_SIZE_8822B 24576 /* 24k */
-#define HALMAC_TX_PAGE_SIZE_8822B 128 /* PageSize 128Byte */
-#define HALMAC_TX_ALIGN_SIZE_8822B 8
-#define HALMAC_TX_PAGE_SIZE_2_POWER_8822B 7 /* 128 = 2^7 */
-#define HALMAC_SECURITY_CAM_ENTRY_NUM_8822B 64 /* CAM Entry size */
-#define HALMAC_TX_AGG_ALIGNMENT_SIZE_8822B 8
-#define HALMAC_TX_DESC_SIZE_8822B 48
-#define HALMAC_RX_DESC_SIZE_8822B 24
-#define HALMAC_RX_DESC_DUMMY_SIZE_MAX_8822B 120
-#define HALMAC_C2H_PKT_BUF_8822B 256
-#define HALMAC_RX_FIFO_EXPANDING_MODE_PKT_SIZE_MAX_8822B 80 /* align 8 Byte*/
-#define HALMAC_RX_FIFO_EXPANDING_UNIT_8822B                                    \
-	(HALMAC_RX_DESC_SIZE_8822B + HALMAC_RX_DESC_DUMMY_SIZE_MAX_8822B +     \
-	 HALMAC_RX_FIFO_EXPANDING_MODE_PKT_SIZE) /* align 8 Byte*/
-#define HALMAC_RX_FIFO_EXPANDING_UNIT_MAX_8822B                                \
-	(HALMAC_RX_DESC_SIZE_8822B + HALMAC_RX_DESC_DUMMY_SIZE_MAX_8822B +     \
-	 HALMAC_RX_FIFO_EXPANDING_MODE_PKT_SIZE_MAX_8822B) /* align 8 Byte*/
-
-#define HALMAC_TX_FIFO_SIZE_EX_1_BLK_8822B 196608 /* 192k */
-#define HALMAC_RX_FIFO_SIZE_EX_1_BLK_8822B                                     \
-	((((HALMAC_RX_FIFO_EXPANDING_UNIT_8822B << 8) - 1) >> 10)              \
-	 << 10) /* < 56k*/
-#define HALMAC_RX_FIFO_SIZE_EX_1_BLK_MAX_8822B                                 \
-	((((HALMAC_RX_FIFO_EXPANDING_UNIT_MAX_8822B << 8) - 1) >> 10)          \
-	 << 10) /* 55k*/
-#define HALMAC_TX_FIFO_SIZE_EX_2_BLK_8822B 131072 /* 128k */
-#define HALMAC_RX_FIFO_SIZE_EX_2_BLK_8822B 155648 /* 152k */
-#define HALMAC_TX_FIFO_SIZE_EX_3_BLK_8822B 65536 /* 64k */
-#define HALMAC_RX_FIFO_SIZE_EX_3_BLK_8822B 221184 /* 216k */
-
-/* TXFIFO LAYOUT
- * HIGH_QUEUE
- * NORMAL_QUEUE
- * LOW_QUEUE
- * EXTRA_QUEUE
- * PUBLIC_QUEUE -- decided after all other queue are defined
- * GAP_QUEUE -- Used to separate AC queue and Rsvd page
- *
- * RSVD_DRIVER -- Driver used rsvd page area
- * RSVD_H2C_EXTRAINFO -- Extra Information for h2c
- * RSVD_H2C_QUEUE -- h2c queue in rsvd page
- * RSVD_CPU_INSTRUCTION -- extend fw code
- * RSVD_FW_TXBUFF -- fw used this area to send packet
- *
- * Symbol: HALMAC_MODE_QUEUE_UNIT_CHIP, ex: HALMAC_LB_2BULKOUT_FWCMD_PGNUM_8822B
- */
-#define HALMAC_EXTRA_INFO_BUFF_SIZE_FULL_FIFO_8822B                            \
-	16384 /*16K, only used in init case*/
-
-#define HALMAC_RSVD_DRV_PGNUM_8822B 16 /*2048*/
-#define HALMAC_RSVD_H2C_EXTRAINFO_PGNUM_8822B 32 /*4096*/
-#define HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B 8 /*1024*/
-#define HALMAC_RSVD_CPU_INSTRUCTION_PGNUM_8822B 0 /*0*/
-#define HALMAC_RSVD_FW_TXBUFF_PGNUM_8822B 4 /*512*/
-
-#define HALMAC_EFUSE_SIZE_8822B 1024 /* 0x400 */
-#define HALMAC_BT_EFUSE_SIZE_8822B 128 /* 0x80 */
-#define HALMAC_EEPROM_SIZE_8822B 0x300
-#define HALMAC_CR_TRX_ENABLE_8822B                                             \
-	(BIT_HCI_TXDMA_EN | BIT_HCI_RXDMA_EN | BIT_TXDMA_EN | BIT_RXDMA_EN |   \
-	 BIT_PROTOCOL_EN | BIT_SCHEDULE_EN | BIT_MACTXEN | BIT_MACRXEN)
-
-#define HALMAC_BLK_DESC_NUM_8822B 0x3 /* Only for USB */
-
-/* AMPDU max time (unit : 32us) */
-#define HALMAC_AMPDU_MAX_TIME_8822B 0x70
-
-/* Protect mode control */
-#define HALMAC_PROT_RTS_LEN_TH_8822B 0xFF
-#define HALMAC_PROT_RTS_TX_TIME_TH_8822B 0x08
-#define HALMAC_PROT_MAX_AGG_PKT_LIMIT_8822B 0x20
-#define HALMAC_PROT_RTS_MAX_AGG_PKT_LIMIT_8822B 0x20
-
-/* Fast EDCA setting */
-#define HALMAC_FAST_EDCA_VO_TH_8822B 0x06
-#define HALMAC_FAST_EDCA_VI_TH_8822B 0x06
-#define HALMAC_FAST_EDCA_BE_TH_8822B 0x06
-#define HALMAC_FAST_EDCA_BK_TH_8822B 0x06
-
-/* BAR setting */
-#define HALMAC_BAR_RETRY_LIMIT_8822B 0x01
-#define HALMAC_RA_TRY_RATE_AGG_LIMIT_8822B 0x08
-
-enum halmac_normal_rxagg_th_to_8822b {
-	HALMAC_NORMAL_RXAGG_THRESHOLD_8822B = 0xFF,
-	HALMAC_NORMAL_RXAGG_TIMEOUT_8822B = 0x01,
-};
-
-enum halmac_loopback_rxagg_th_to_8822b {
-	HALMAC_LOOPBACK_RXAGG_THRESHOLD_8822B = 0xFF,
-	HALMAC_LOOPBACK_RXAGG_TIMEOUT_8822B = 0x01,
-};
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_phy.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_phy.c
deleted file mode 100644
index c68b9e8..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_phy.c
+++ /dev/null
@@ -1,95 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "../halmac_88xx_cfg.h"
-#include "halmac_8822b_cfg.h"
-
-/**
- * ============ip sel item list============
- * HALMAC_IP_SEL_INTF_PHY
- *	USB2 : usb2 phy, 1byte value
- *	USB3 : usb3 phy, 2byte value
- *	PCIE1 : pcie gen1 mdio, 2byte value
- *	PCIE2 : pcie gen2 mdio, 2byte value
- * HALMAC_IP_SEL_MAC
- *	USB2, USB3, PCIE1, PCIE2 : mac ip, 1byte value
- * HALMAC_IP_SEL_PCIE_DBI
- *	USB2 USB3 : none
- *	PCIE1, PCIE2 : pcie dbi, 1byte value
- */
-
-struct halmac_intf_phy_para_ HALMAC_RTL8822B_USB2_PHY[] = {
-	/* {offset, value, ip sel, cut mask, platform mask} */
-	{0xFFFF, 0x00, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_ALL,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-};
-
-struct halmac_intf_phy_para_ HALMAC_RTL8822B_USB3_PHY[] = {
-	/* {offset, value, ip sel, cut mask, platform mask} */
-	{0x0001, 0xA841, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_D,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0xFFFF, 0x0000, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_ALL,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-};
-
-struct halmac_intf_phy_para_ HALMAC_RTL8822B_PCIE_PHY_GEN1[] = {
-	/* {offset, value, ip sel, cut mask, platform mask} */
-	{0x0001, 0xA841, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0002, 0x60C6, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0008, 0x3596, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0009, 0x321C, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x000A, 0x9623, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0020, 0x94FF, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0021, 0xFFCF, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0026, 0xC006, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0029, 0xFF0E, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x002A, 0x1840, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0xFFFF, 0x0000, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_ALL,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-};
-
-struct halmac_intf_phy_para_ HALMAC_RTL8822B_PCIE_PHY_GEN2[] = {
-	/* {offset, value, ip sel, cut mask, platform mask} */
-	{0x0001, 0xA841, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0002, 0x60C6, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0008, 0x3597, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0009, 0x321C, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x000A, 0x9623, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0020, 0x94FF, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0021, 0xFFCF, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0026, 0xC006, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x0029, 0xFF0E, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0x002A, 0x3040, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_C,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-	{0xFFFF, 0x0000, HALMAC_IP_SEL_INTF_PHY, HALMAC_INTF_PHY_CUT_ALL,
-	 HALMAC_INTF_PHY_PLATFORM_ALL},
-};
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.c
deleted file mode 100644
index 08f6536..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.c
+++ /dev/null
@@ -1,552 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "../halmac_88xx_cfg.h"
-#include "halmac_8822b_cfg.h"
-
-static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_CARDEMU_TO_ACT[] = {
-	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */
-	{0x0012, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), 0}, /*SWR OCP = SWR OCP = 010 1382.40*/
-	{0x0012, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), BIT(0)}, /*SWR OCP = 010 1382.40 */
-	{0x0020, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK,
-	 HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(0),
-	 BIT(0)}, /*0x20[0] = 1b'1 enable LDOA12 MACRO block for all interface*/
-	{0x0001, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK,
-	 HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY, 1,
-	 HALMAC_PWRSEQ_DELAY_MS}, /*Delay 1ms*/
-	{0x0000, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK,
-	 HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(5),
-	 0}, /*0x00[5] = 1b'0 release analog Ips to digital ,1:isolation*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 (BIT(4) | BIT(3) | BIT(2)),
-	 0}, /* disable SW LPS 0x04[10]=0 and WLSUS_EN 0x04[12:11]=0*/
-	{0x0075, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), BIT(0)}, /* Disable USB suspend */
-	{0x0006, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, BIT(1),
-	 BIT(1)}, /* wait till 0x04[17] = 1    power ready*/
-	{0x0075, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), 0}, /* Enable USB suspend */
-	{0xFF1A, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0}, /*0xFF1A = 0 to release resume signals*/
-	{0x0006, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), BIT(0)}, /* release WLON reset  0x04[16]=1*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(7), 0}, /* disable HWPDN 0x04[15]=0*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 (BIT(4) | BIT(3)), 0}, /* disable WL suspend*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), BIT(0)}, /* polling until return 0*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, BIT(0), 0},
-	{0x0020, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(3), BIT(3)}, /*Enable XTAL_CLK*/
-	{0x10A8, HALMAC_PWR_CUT_C_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0}, /*NFC pad enabled*/
-	{0x10A9, HALMAC_PWR_CUT_C_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xef}, /*NFC pad enabled*/
-	{0x10AA, HALMAC_PWR_CUT_C_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x0c}, /*NFC pad enabled*/
-	{0x0068, HALMAC_PWR_CUT_C_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(4), BIT(4)}, /*SDIO pad power down disabled*/
-	{0x0029, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xF9}, /*PLL seting*/
-	{0x0024, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(2), 0}, /*Improve TX EVM of CH13 and some 5G channles */
-	{0x0074, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(5), BIT(5)}, /*PCIE WAKE# enabled*/
-	{0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0},
-};
-
-static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_ACT_TO_CARDEMU[] = {
-	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */
-	{0x0003, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(2), 0}, /*0x02[10] = 0 Disable MCU Core*/
-	{0x0093, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(3), 0}, /*LPS option 0x93[3]=0 , SWR PFM*/
-	{0x001F, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0}, /*0x1F[7:0] = 0 turn off RF*/
-	{0x00EF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0}, /*0xEF[7:0] = 0 turn off RF*/
-	{0xFF1A, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x30}, /*0xFF1A = 0x30 to block resume signals*/
-	{0x0049, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), 0}, /*Enable rising edge triggering interrupt*/
-	{0x0006, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), BIT(0)}, /* release WLON reset  0x04[16]=1*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), 0}, /* Whole BB is reset */
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), BIT(1)}, /*0x04[9] = 1 turn off MAC by HW state machine*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, BIT(1),
-	 0}, /*wait till 0x04[9] = 0 polling until return 0 to disable*/
-	{0x0020, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(3), 0}, /* XTAL_CLK gated*/
-	{0x0000, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK,
-	 HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(5),
-	 BIT(5)}, /*0x00[5] = 1b'1 analog Ips to digital ,1:isolation*/
-	{0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0},
-};
-
-static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_CARDEMU_TO_SUS[] = {
-	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(4) | BIT(3),
-	 (BIT(4) | BIT(3))}, /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK,
-	 HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(3) | BIT(4),
-	 BIT(3)}, /*0x04[12:11] = 2b'01 enable WL suspend*/
-	{0x0007, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, 0xFF,
-	 0x20}, /*0x07[7:0] = 0x20 SDIO SOP option to disable BG/MB/ACK/SWR*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(3) | BIT(4),
-	 BIT(3) | BIT(4)}, /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/
-	{0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, BIT(0),
-	 BIT(0)}, /*Set SDIO suspend local register*/
-	{0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_POLLING, BIT(1), 0}, /*wait power state to suspend*/
-	{0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0},
-};
-
-static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_SUS_TO_CARDEMU[] = {
-	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(3) | BIT(7), 0}, /*clear suspend enable and power down enable*/
-	{0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, BIT(0), 0}, /*Set SDIO suspend local register*/
-	{0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_POLLING, BIT(1),
-	 BIT(1)}, /*wait power state to suspend*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(3) | BIT(4), 0}, /*0x04[12:11] = 2b'01enable WL suspend*/
-	{0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0},
-};
-
-static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_CARDEMU_TO_CARDDIS[] = {
-	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(7),
-	 BIT(7)}, /*suspend enable and power down enable*/
-	{0x0007, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK,
-	 HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, 0xFF,
-	 0x20}, /*0x07=0x20 , SOP option to disable BG/MB*/
-	{0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(5), 0}, /*0x67[5]=0 , BIT_PAPE_WLBT_SEL*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_SDIO_MSK,
-	 HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(3) | BIT(4),
-	 BIT(3)}, /*0x04[12:11] = 2b'01 enable WL suspend*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(2), BIT(2)}, /*0x04[10] = 1, enable SW LPS*/
-	{0x004A, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), 0}, /*0x48[16] = 0 to disable GPIO9 as EXT WAKEUP*/
-	{0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(5),
-	 0}, /* 0: BT PAPE control ; 1: WL BB LNAON control*/
-	{0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(4),
-	 0}, /* 0: BT GPIO[11:10] control  ; 1: WL BB LNAON control*/
-	{0x004F, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(0), 0}, /* 0: BT Control*/
-	{0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(1),
-	 0}, /* turn off BT_3DD_SYNC_B and BT_GPIO[18] */
-	{0x0046, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(6), BIT(6)}, /* GPIO[6] : Output mode*/
-	{0x0067, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(2), 0}, /* turn off BT_GPIO[16] */
-	{0x0046, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(7), BIT(7)}, /* GPIO[7] : Output mode*/
-	{0x0062, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_WRITE, BIT(4), BIT(4)}, /* GPIO[12] : Output mode */
-	{0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, BIT(0),
-	 BIT(0)}, /*Set SDIO suspend local register*/
-	{0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_POLLING, BIT(1), 0}, /*wait power state to suspend*/
-	{0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK | HALMAC_PWR_INTF_PCI_MSK,
-	 HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE, BIT(1),
-	 0}, /*0x90[1]=0 , disable 32k clock*/
-	{0x0044, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, 0xFF,
-	 0}, /*0x90[1]=0 , disable 32k clock by indirect access*/
-	{0x0040, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, 0xFF,
-	 0x90}, /*0x90[1]=0 , disable 32k clock by indirect access*/
-	{0x0041, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, 0xFF,
-	 0x00}, /*0x90[1]=0 , disable 32k clock by indirect access*/
-	{0x0042, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, 0xFF,
-	 0x04}, /*0x90[1]=0 , disable 32k clock by indirect access*/
-	{0x0081, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(7), 0}, /*0x80[15]clean fw init ready bit*/
-	{0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0},
-};
-
-static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_CARDDIS_TO_CARDEMU[] = {
-	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */
-	{0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, BIT(0), 0}, /*Set SDIO suspend local register*/
-	{0x0086, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_POLLING, BIT(1),
-	 BIT(1)}, /*wait power state to suspend*/
-	{0x004A, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), 0}, /*0x48[16] = 0 to disable GPIO9 as EXT WAKEUP*/
-	{0x0005, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(3) | BIT(4) | BIT(7),
-	 0}, /*clear suspend enable and power down enable*/
-	{0x0301, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0},
-	{0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0},
-};
-
-static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_ACT_TO_LPS[] = {
-	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */
-	{0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(2), BIT(2)}, /*Enable 32k calibration and thermal meter*/
-	{0x0199, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(3), BIT(3)}, /*Register write data of 32K calibration*/
-	{0x019B, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(7), BIT(7)}, /*Enable 32k calibration reg write*/
-	{0x1138, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0) | BIT(1), BIT(0) | BIT(1)}, /*set RPWM IMR*/
-	{0x0194, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), BIT(0)}, /* enable 32K CLK*/
-	{0x0093, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x42}, /* LPS Option MAC OFF enable*/
-	{0x0092, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x20}, /* LPS Option  Enable memory to deep sleep mode*/
-	{0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), BIT(1)}, /* enable reg use 32K CLK*/
-	{0x0301, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xFF}, /*PCIe DMA stop*/
-	{0x0522, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xFF}, /*Tx Pause*/
-	{0x05F8, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, 0xFF,
-	 0}, /*Should be zero if no packet is transmitting*/
-	{0x05F9, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, 0xFF,
-	 0}, /*Should be zero if no packet is transmitting*/
-	{0x05FA, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, 0xFF,
-	 0}, /*Should be zero if no packet is transmitting*/
-	{0x05FB, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, 0xFF,
-	 0}, /*Should be zero if no packet is transmitting*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), 0}, /*CCK and OFDM are disabled,and clock are gated*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY,
-	 0, HALMAC_PWRSEQ_DELAY_US}, /*Delay 1us*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), 0}, /*Whole BB is reset*/
-	{0x0100, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x3F}, /*Reset MAC TRX*/
-	{0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), 0}, /*check if removed later*/
-	{0x0553, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(5), BIT(5)}, /*Respond TxOK to scheduler*/
-	{0x0008, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(4), BIT(4)}, /* switch TSF clock to 32K*/
-	{0x0109, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, BIT(7),
-	 BIT(7)}, /*Polling 0x109[7]=0  TSF in 40M*/
-	{0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), BIT(0)}, /* enable WL_LPS_EN*/
-	{0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0},
-};
-
-static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_ACT_TO_DEEP_LPS[] = {
-	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */
-	{0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(2), BIT(2)}, /*Enable 32k calibration and thermal meter*/
-	{0x0199, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(3), BIT(3)}, /*Register write data of 32K calibration*/
-	{0x019B, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(7), BIT(7)}, /*Enable 32k calibration reg write*/
-	{0x1138, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0) | BIT(1), BIT(0) | BIT(1)}, /*set RPWM IMR*/
-	{0x0194, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), BIT(0)}, /* enable 32K CLK*/
-	{0x0093, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x40}, /* LPS Option MAC OFF enable*/
-	{0x0092, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x20}, /* LPS Option  Enable memory to deep sleep mode*/
-	{0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), BIT(1)}, /* enable reg use 32K CLK*/
-	{0x0301, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xFF}, /*PCIe DMA stop*/
-	{0x0522, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xFF}, /*Tx Pause*/
-	{0x05F8, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, 0xFF,
-	 0}, /*Should be zero if no packet is transmitting*/
-	{0x05F9, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, 0xFF,
-	 0}, /*Should be zero if no packet is transmitting*/
-	{0x05FA, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, 0xFF,
-	 0}, /*Should be zero if no packet is transmitting*/
-	{0x05FB, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, 0xFF,
-	 0}, /*Should be zero if no packet is transmitting*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), 0}, /*CCK and OFDM are disabled,and clock are gated*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY,
-	 0, HALMAC_PWRSEQ_DELAY_US}, /*Delay 1us*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), 0}, /*Whole BB is reset*/
-	{0x0100, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x3F}, /*Reset MAC TRX*/
-	{0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), 0}, /*check if removed later*/
-	{0x0553, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(5), BIT(5)}, /*Respond TxOK to scheduler*/
-	{0x0008, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(4), BIT(4)}, /* switch TSF clock to 32K*/
-	{0x0109, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, BIT(7),
-	 BIT(7)}, /*Polling 0x109[7]=1  TSF in 32K*/
-	{0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(0), BIT(0)}, /* enable WL_LPS_EN*/
-	{0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0},
-};
-
-static struct halmac_wl_pwr_cfg_ HALMAC_RTL8822B_TRANS_LPS_TO_ACT[] = {
-	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value } */
-	{0x0080, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, BIT(7), BIT(7)}, /*SDIO RPWM*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY,
-	 0, HALMAC_PWRSEQ_DELAY_MS}, /*Delay*/
-	{0x0080, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_SDIO_MSK, HALMAC_PWR_BASEADDR_SDIO,
-	 HALMAC_PWR_CMD_WRITE, BIT(7), 0}, /*SDIO RPWM*/
-	{0xFE58, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_USB_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x84}, /*USB RPWM*/
-	{0x0361, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_PCI_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x84}, /*PCIe RPWM*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_DELAY,
-	 0, HALMAC_PWRSEQ_DELAY_MS}, /*Delay*/
-	{0x0008, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(4), 0}, /* switch TSF to 40M*/
-	{0x0109, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC,
-	 HALMAC_PWR_CMD_POLLING, BIT(7), 0}, /*Polling 0x109[7]=0  TSF in 40M*/
-	{0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), BIT(1)},
-	{0x0100, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xFF}, /*nable WMAC TRX*/
-	{0x0002, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1) | BIT(0), BIT(1) | BIT(0)}, /*nable BB macro*/
-	{0x0522, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0},
-	{0x113C, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0x03}, /*clear RPWM INT*/
-	{0x0124, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xFF}, /*clear FW INT*/
-	{0x0125, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xFF}, /*clear FW INT*/
-	{0x0126, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xFF}, /*clear FW INT*/
-	{0x0127, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 0xFF, 0xFF}, /*clear FW INT*/
-	{0x0090, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(1), 0}, /* disable reg use 32K CLK*/
-	{0x0101, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, HALMAC_PWR_BASEADDR_MAC, HALMAC_PWR_CMD_WRITE,
-	 BIT(2), 0}, /*disable 32k calibration and thermal meter*/
-	{0xFFFF, HALMAC_PWR_CUT_ALL_MSK, HALMAC_PWR_FAB_ALL_MSK,
-	 HALMAC_PWR_INTF_ALL_MSK, 0, HALMAC_PWR_CMD_END, 0, 0},
-};
-
-/* Card Enable Array */
-struct halmac_wl_pwr_cfg_ *halmac_8822b_card_enable_flow[] = {
-	HALMAC_RTL8822B_TRANS_CARDDIS_TO_CARDEMU,
-	HALMAC_RTL8822B_TRANS_CARDEMU_TO_ACT, NULL};
-
-/* Card Disable Array */
-struct halmac_wl_pwr_cfg_ *halmac_8822b_card_disable_flow[] = {
-	HALMAC_RTL8822B_TRANS_ACT_TO_CARDEMU,
-	HALMAC_RTL8822B_TRANS_CARDEMU_TO_CARDDIS, NULL};
-
-/* Suspend Array */
-struct halmac_wl_pwr_cfg_ *halmac_8822b_suspend_flow[] = {
-	HALMAC_RTL8822B_TRANS_ACT_TO_CARDEMU,
-	HALMAC_RTL8822B_TRANS_CARDEMU_TO_SUS, NULL};
-
-/* Resume Array */
-struct halmac_wl_pwr_cfg_ *halmac_8822b_resume_flow[] = {
-	HALMAC_RTL8822B_TRANS_SUS_TO_CARDEMU,
-	HALMAC_RTL8822B_TRANS_CARDEMU_TO_ACT, NULL};
-
-/* HWPDN Array - HW behavior */
-struct halmac_wl_pwr_cfg_ *halmac_8822b_hwpdn_flow[] = {NULL};
-
-/* Enter LPS - FW behavior */
-struct halmac_wl_pwr_cfg_ *halmac_8822b_enter_lps_flow[] = {
-	HALMAC_RTL8822B_TRANS_ACT_TO_LPS, NULL};
-
-/* Enter Deep LPS - FW behavior */
-struct halmac_wl_pwr_cfg_ *halmac_8822b_enter_deep_lps_flow[] = {
-	HALMAC_RTL8822B_TRANS_ACT_TO_DEEP_LPS, NULL};
-
-/* Leave LPS -FW behavior */
-struct halmac_wl_pwr_cfg_ *halmac_8822b_leave_lps_flow[] = {
-	HALMAC_RTL8822B_TRANS_LPS_TO_ACT, NULL};
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.h
deleted file mode 100644
index 03bbec3..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_8822b_pwr_seq.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef HALMAC_POWER_SEQUENCE_8822B
-#define HALMAC_POWER_SEQUENCE_8822B
-
-#include "../../halmac_pwr_seq_cmd.h"
-
-#define HALMAC_8822B_PWR_SEQ_VER "V17"
-extern struct halmac_wl_pwr_cfg_ *halmac_8822b_card_disable_flow[];
-extern struct halmac_wl_pwr_cfg_ *halmac_8822b_card_enable_flow[];
-extern struct halmac_wl_pwr_cfg_ *halmac_8822b_suspend_flow[];
-extern struct halmac_wl_pwr_cfg_ *halmac_8822b_resume_flow[];
-extern struct halmac_wl_pwr_cfg_ *halmac_8822b_hwpdn_flow[];
-extern struct halmac_wl_pwr_cfg_ *halmac_8822b_enter_lps_flow[];
-extern struct halmac_wl_pwr_cfg_ *halmac_8822b_enter_deep_lps_flow[];
-extern struct halmac_wl_pwr_cfg_ *halmac_8822b_leave_lps_flow[];
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.c
deleted file mode 100644
index aea481b..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.c
+++ /dev/null
@@ -1,332 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halmac_8822b_cfg.h"
-#include "halmac_func_8822b.h"
-#include "../halmac_func_88xx.h"
-
-/**
- * halmac_mount_api_8822b() - attach functions to function pointer
- * @halmac_adapter
- *
- * SD1 internal use
- *
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- */
-enum halmac_ret_status
-halmac_mount_api_8822b(struct halmac_adapter *halmac_adapter)
-{
-	struct halmac_api *halmac_api =
-		(struct halmac_api *)halmac_adapter->halmac_api;
-
-	halmac_adapter->chip_id = HALMAC_CHIP_ID_8822B;
-	halmac_adapter->hw_config_info.efuse_size = HALMAC_EFUSE_SIZE_8822B;
-	halmac_adapter->hw_config_info.eeprom_size = HALMAC_EEPROM_SIZE_8822B;
-	halmac_adapter->hw_config_info.bt_efuse_size =
-		HALMAC_BT_EFUSE_SIZE_8822B;
-	halmac_adapter->hw_config_info.cam_entry_num =
-		HALMAC_SECURITY_CAM_ENTRY_NUM_8822B;
-	halmac_adapter->hw_config_info.txdesc_size = HALMAC_TX_DESC_SIZE_8822B;
-	halmac_adapter->hw_config_info.rxdesc_size = HALMAC_RX_DESC_SIZE_8822B;
-	halmac_adapter->hw_config_info.tx_fifo_size = HALMAC_TX_FIFO_SIZE_8822B;
-	halmac_adapter->hw_config_info.rx_fifo_size = HALMAC_RX_FIFO_SIZE_8822B;
-	halmac_adapter->hw_config_info.page_size = HALMAC_TX_PAGE_SIZE_8822B;
-	halmac_adapter->hw_config_info.tx_align_size =
-		HALMAC_TX_ALIGN_SIZE_8822B;
-	halmac_adapter->hw_config_info.page_size_2_power =
-		HALMAC_TX_PAGE_SIZE_2_POWER_8822B;
-
-	halmac_adapter->txff_allocation.rsvd_drv_pg_num =
-		HALMAC_RSVD_DRV_PGNUM_8822B;
-
-	halmac_api->halmac_init_trx_cfg = halmac_init_trx_cfg_8822b;
-	halmac_api->halmac_init_protocol_cfg = halmac_init_protocol_cfg_8822b;
-	halmac_api->halmac_init_h2c = halmac_init_h2c_8822b;
-
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		halmac_api->halmac_tx_allowed_sdio =
-			halmac_tx_allowed_sdio_88xx;
-		halmac_api->halmac_cfg_tx_agg_align =
-			halmac_cfg_tx_agg_align_sdio_not_support_88xx;
-		halmac_api->halmac_mac_power_switch =
-			halmac_mac_power_switch_8822b_sdio;
-		halmac_api->halmac_phy_cfg = halmac_phy_cfg_8822b_sdio;
-		halmac_api->halmac_interface_integration_tuning =
-			halmac_interface_integration_tuning_8822b_sdio;
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) {
-		halmac_api->halmac_mac_power_switch =
-			halmac_mac_power_switch_8822b_usb;
-		halmac_api->halmac_cfg_tx_agg_align =
-			halmac_cfg_tx_agg_align_usb_not_support_88xx;
-		halmac_api->halmac_phy_cfg = halmac_phy_cfg_8822b_usb;
-		halmac_api->halmac_interface_integration_tuning =
-			halmac_interface_integration_tuning_8822b_usb;
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_PCIE) {
-		halmac_api->halmac_mac_power_switch =
-			halmac_mac_power_switch_8822b_pcie;
-		halmac_api->halmac_cfg_tx_agg_align =
-			halmac_cfg_tx_agg_align_pcie_not_support_88xx;
-		halmac_api->halmac_pcie_switch = halmac_pcie_switch_8822b;
-		halmac_api->halmac_phy_cfg = halmac_phy_cfg_8822b_pcie;
-		halmac_api->halmac_interface_integration_tuning =
-			halmac_interface_integration_tuning_8822b_pcie;
-	} else {
-		halmac_api->halmac_pcie_switch = halmac_pcie_switch_8822b_nc;
-	}
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_init_trx_cfg_8822b() - config trx dma register
- * @halmac_adapter : the adapter of halmac
- * @halmac_trx_mode : trx mode selection
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_trx_cfg_8822b(struct halmac_adapter *halmac_adapter,
-			  enum halmac_trx_mode halmac_trx_mode)
-{
-	u8 value8;
-	u32 value32;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_TRX_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-	halmac_adapter->trx_mode = halmac_trx_mode;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"halmac_init_trx_cfg ==========>halmac_trx_mode = %d\n",
-			halmac_trx_mode);
-
-	status = halmac_txdma_queue_mapping_8822b(halmac_adapter,
-						  halmac_trx_mode);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_txdma_queue_mapping fail!\n");
-		return status;
-	}
-
-	value8 = 0;
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CR, value8);
-	value8 = HALMAC_CR_TRX_ENABLE_8822B;
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CR, value8);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_H2CQ_CSR, BIT(31));
-
-	status = halmac_priority_queue_config_8822b(halmac_adapter,
-						    halmac_trx_mode);
-	if (halmac_adapter->txff_allocation.rx_fifo_expanding_mode !=
-	    HALMAC_RX_FIFO_EXPANDING_MODE_DISABLE)
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_RX_DRVINFO_SZ, 0xF);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_txdma_queue_mapping fail!\n");
-		return status;
-	}
-
-	/* Config H2C packet buffer */
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_HEAD);
-	value32 = (value32 & 0xFFFC0000) |
-		  (halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy
-		   << HALMAC_TX_PAGE_SIZE_2_POWER_8822B);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_HEAD, value32);
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_READ_ADDR);
-	value32 = (value32 & 0xFFFC0000) |
-		  (halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy
-		   << HALMAC_TX_PAGE_SIZE_2_POWER_8822B);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_READ_ADDR, value32);
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_TAIL);
-	value32 = (value32 & 0xFFFC0000) |
-		  ((halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy
-		    << HALMAC_TX_PAGE_SIZE_2_POWER_8822B) +
-		   (HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B
-		    << HALMAC_TX_PAGE_SIZE_2_POWER_8822B));
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_TAIL, value32);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_H2C_INFO);
-	value8 = (u8)((value8 & 0xFC) | 0x01);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_H2C_INFO, value8);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_H2C_INFO);
-	value8 = (u8)((value8 & 0xFB) | 0x04);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_H2C_INFO, value8);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1);
-	value8 = (u8)((value8 & 0x7f) | 0x80);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1, value8);
-
-	halmac_adapter->h2c_buff_size = HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B
-					<< HALMAC_TX_PAGE_SIZE_2_POWER_8822B;
-	halmac_get_h2c_buff_free_space_88xx(halmac_adapter);
-
-	if (halmac_adapter->h2c_buff_size !=
-	    halmac_adapter->h2c_buf_free_space) {
-		pr_err("get h2c free space error!\n");
-		return HALMAC_RET_GET_H2C_SPACE_ERR;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"halmac_init_trx_cfg <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_init_protocol_cfg_8822b() - config protocol register
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_protocol_cfg_8822b(struct halmac_adapter *halmac_adapter)
-{
-	u32 value32;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_PROTOCOL_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]%s ==========>\n", __func__);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_AMPDU_MAX_TIME_V1,
-			   HALMAC_AMPDU_MAX_TIME_8822B);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TX_HANG_CTRL, BIT_EN_EOF_V1);
-
-	value32 = HALMAC_PROT_RTS_LEN_TH_8822B |
-		  (HALMAC_PROT_RTS_TX_TIME_TH_8822B << 8) |
-		  (HALMAC_PROT_MAX_AGG_PKT_LIMIT_8822B << 16) |
-		  (HALMAC_PROT_RTS_MAX_AGG_PKT_LIMIT_8822B << 24);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_PROT_MODE_CTRL, value32);
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_BAR_MODE_CTRL + 2,
-			    HALMAC_BAR_RETRY_LIMIT_8822B |
-				    HALMAC_RA_TRY_RATE_AGG_LIMIT_8822B << 8);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_FAST_EDCA_VOVI_SETTING,
-			   HALMAC_FAST_EDCA_VO_TH_8822B);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_FAST_EDCA_VOVI_SETTING + 2,
-			   HALMAC_FAST_EDCA_VI_TH_8822B);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_FAST_EDCA_BEBK_SETTING,
-			   HALMAC_FAST_EDCA_BE_TH_8822B);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_FAST_EDCA_BEBK_SETTING + 2,
-			   HALMAC_FAST_EDCA_BK_TH_8822B);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_init_h2c_8822b() - config h2c packet buffer
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_h2c_8822b(struct halmac_adapter *halmac_adapter)
-{
-	u8 value8;
-	u32 value32;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	value8 = 0;
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CR, value8);
-	value8 = HALMAC_CR_TRX_ENABLE_8822B;
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CR, value8);
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_HEAD);
-	value32 = (value32 & 0xFFFC0000) |
-		  (halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy
-		   << HALMAC_TX_PAGE_SIZE_2_POWER_8822B);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_HEAD, value32);
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_READ_ADDR);
-	value32 = (value32 & 0xFFFC0000) |
-		  (halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy
-		   << HALMAC_TX_PAGE_SIZE_2_POWER_8822B);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_READ_ADDR, value32);
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_TAIL);
-	value32 = (value32 & 0xFFFC0000) |
-		  ((halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy
-		    << HALMAC_TX_PAGE_SIZE_2_POWER_8822B) +
-		   (HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B
-		    << HALMAC_TX_PAGE_SIZE_2_POWER_8822B));
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_H2C_TAIL, value32);
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_H2C_INFO);
-	value8 = (u8)((value8 & 0xFC) | 0x01);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_H2C_INFO, value8);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_H2C_INFO);
-	value8 = (u8)((value8 & 0xFB) | 0x04);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_H2C_INFO, value8);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1);
-	value8 = (u8)((value8 & 0x7f) | 0x80);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1, value8);
-
-	halmac_adapter->h2c_buff_size = HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B
-					<< HALMAC_TX_PAGE_SIZE_2_POWER_8822B;
-	halmac_get_h2c_buff_free_space_88xx(halmac_adapter);
-
-	if (halmac_adapter->h2c_buff_size !=
-	    halmac_adapter->h2c_buf_free_space) {
-		pr_err("get h2c free space error!\n");
-		return HALMAC_RET_GET_H2C_SPACE_ERR;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"h2c free space : %d\n",
-			halmac_adapter->h2c_buf_free_space);
-
-	return HALMAC_RET_SUCCESS;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.h
deleted file mode 100644
index 072cd40f..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_API_8822B_H_
-#define _HALMAC_API_8822B_H_
-
-#include "../../halmac_2_platform.h"
-#include "../../halmac_type.h"
-
-enum halmac_ret_status
-halmac_mount_api_8822b(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_init_trx_cfg_8822b(struct halmac_adapter *halmac_adapter,
-			  enum halmac_trx_mode halmac_trx_mode);
-
-enum halmac_ret_status
-halmac_init_protocol_cfg_8822b(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_init_h2c_8822b(struct halmac_adapter *halmac_adapter);
-
-#endif /* _HALMAC_API_8822B_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.c
deleted file mode 100644
index a716fb5..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.c
+++ /dev/null
@@ -1,312 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "../halmac_88xx_cfg.h"
-#include "../halmac_api_88xx_pcie.h"
-#include "halmac_8822b_cfg.h"
-
-/**
- * halmac_mac_power_switch_8822b_pcie() - switch mac power
- * @halmac_adapter : the adapter of halmac
- * @halmac_power : power state
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_mac_power_switch_8822b_pcie(struct halmac_adapter *halmac_adapter,
-				   enum halmac_mac_power halmac_power)
-{
-	u8 interface_mask;
-	u8 value8;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_MAC_POWER_SWITCH);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-		"halmac_mac_power_switch_88xx_pcie halmac_power =  %x ==========>\n",
-		halmac_power);
-	interface_mask = HALMAC_PWR_INTF_PCI_MSK;
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CR);
-	if (value8 == 0xEA)
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF;
-	else
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON;
-
-	/* Check if power switch is needed */
-	if (halmac_power == HALMAC_MAC_POWER_ON &&
-	    halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_ON) {
-		HALMAC_RT_TRACE(
-			driver_adapter, HALMAC_MSG_PWR, DBG_WARNING,
-			"halmac_mac_power_switch power state unchange!\n");
-		return HALMAC_RET_PWR_UNCHANGE;
-	}
-
-	if (halmac_power == HALMAC_MAC_POWER_OFF) {
-		if (halmac_pwr_seq_parser_88xx(
-			    halmac_adapter, HALMAC_PWR_CUT_ALL_MSK,
-			    HALMAC_PWR_FAB_TSMC_MSK, interface_mask,
-			    halmac_8822b_card_disable_flow) !=
-		    HALMAC_RET_SUCCESS) {
-			pr_err("Handle power off cmd error\n");
-			return HALMAC_RET_POWER_OFF_FAIL;
-		}
-
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF;
-		halmac_adapter->halmac_state.ps_state =
-			HALMAC_PS_STATE_UNDEFINE;
-		halmac_adapter->halmac_state.dlfw_state = HALMAC_DLFW_NONE;
-		halmac_init_adapter_dynamic_para_88xx(halmac_adapter);
-	} else {
-		if (halmac_pwr_seq_parser_88xx(
-			    halmac_adapter, HALMAC_PWR_CUT_ALL_MSK,
-			    HALMAC_PWR_FAB_TSMC_MSK, interface_mask,
-			    halmac_8822b_card_enable_flow) !=
-		    HALMAC_RET_SUCCESS) {
-			pr_err("Handle power on cmd error\n");
-			return HALMAC_RET_POWER_ON_FAIL;
-		}
-
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON;
-		halmac_adapter->halmac_state.ps_state = HALMAC_PS_STATE_ACT;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"halmac_mac_power_switch_88xx_pcie <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_pcie_switch_8822b() - pcie gen1/gen2 switch
- * @halmac_adapter : the adapter of halmac
- * @pcie_cfg : gen1/gen2 selection
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_pcie_switch_8822b(struct halmac_adapter *halmac_adapter,
-			 enum halmac_pcie_cfg pcie_cfg)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	u8 current_link_speed = 0;
-	u32 count = 0;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PCIE_SWITCH);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	/* Link Control 2 Register[3:0] Target Link Speed
-	 * Defined encodings are:
-	 * 0001b Target Link 2.5 GT/s
-	 * 0010b Target Link 5.0 GT/s
-	 * 0100b Target Link 8.0 GT/s
-	 */
-
-	if (pcie_cfg == HALMAC_PCIE_GEN1) {
-		/* cfg 0xA0[3:0]=4'b0001 */
-		halmac_dbi_write8_88xx(
-			halmac_adapter, LINK_CTRL2_REG_OFFSET,
-			(halmac_dbi_read8_88xx(halmac_adapter,
-					       LINK_CTRL2_REG_OFFSET) &
-			 0xF0) | BIT(0));
-
-		/* cfg 0x80C[17]=1 //PCIe DesignWave */
-		halmac_dbi_write32_88xx(
-			halmac_adapter, GEN2_CTRL_OFFSET,
-			halmac_dbi_read32_88xx(halmac_adapter,
-					       GEN2_CTRL_OFFSET) |
-				BIT(17));
-
-		/* check link speed if GEN1 */
-		/* cfg 0x82[3:0]=4'b0001 */
-		current_link_speed =
-			halmac_dbi_read8_88xx(halmac_adapter,
-					      LINK_STATUS_REG_OFFSET) &
-			0x0F;
-		count = 2000;
-
-		while (current_link_speed != GEN1_SPEED && count != 0) {
-			usleep_range(50, 60);
-			current_link_speed =
-				halmac_dbi_read8_88xx(halmac_adapter,
-						      LINK_STATUS_REG_OFFSET) &
-				0x0F;
-			count--;
-		}
-
-		if (current_link_speed != GEN1_SPEED) {
-			pr_err("Speed change to GEN1 fail !\n");
-			return HALMAC_RET_FAIL;
-		}
-
-	} else if (pcie_cfg == HALMAC_PCIE_GEN2) {
-		/* cfg 0xA0[3:0]=4'b0010 */
-		halmac_dbi_write8_88xx(
-			halmac_adapter, LINK_CTRL2_REG_OFFSET,
-			(halmac_dbi_read8_88xx(halmac_adapter,
-					       LINK_CTRL2_REG_OFFSET) &
-			 0xF0) | BIT(1));
-
-		/* cfg 0x80C[17]=1 //PCIe DesignWave */
-		halmac_dbi_write32_88xx(
-			halmac_adapter, GEN2_CTRL_OFFSET,
-			halmac_dbi_read32_88xx(halmac_adapter,
-					       GEN2_CTRL_OFFSET) |
-				BIT(17));
-
-		/* check link speed if GEN2 */
-		/* cfg 0x82[3:0]=4'b0010 */
-		current_link_speed =
-			halmac_dbi_read8_88xx(halmac_adapter,
-					      LINK_STATUS_REG_OFFSET) &
-			0x0F;
-		count = 2000;
-
-		while (current_link_speed != GEN2_SPEED && count != 0) {
-			usleep_range(50, 60);
-			current_link_speed =
-				halmac_dbi_read8_88xx(halmac_adapter,
-						      LINK_STATUS_REG_OFFSET) &
-				0x0F;
-			count--;
-		}
-
-		if (current_link_speed != GEN2_SPEED) {
-			pr_err("Speed change to GEN1 fail !\n");
-			return HALMAC_RET_FAIL;
-		}
-
-	} else {
-		pr_err("Error Speed !\n");
-		return HALMAC_RET_FAIL;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_pcie_switch_8822b_nc(struct halmac_adapter *halmac_adapter,
-			    enum halmac_pcie_cfg pcie_cfg)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PCIE_SWITCH);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_phy_cfg_8822b_pcie() - phy config
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_phy_cfg_8822b_pcie(struct halmac_adapter *halmac_adapter,
-			  enum halmac_intf_phy_platform platform)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PHY_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"halmac_phy_cfg ==========>\n");
-
-	status = halmac_parse_intf_phy_88xx(halmac_adapter,
-					    HALMAC_RTL8822B_PCIE_PHY_GEN1,
-					    platform, HAL_INTF_PHY_PCIE_GEN1);
-
-	if (status != HALMAC_RET_SUCCESS)
-		return status;
-
-	status = halmac_parse_intf_phy_88xx(halmac_adapter,
-					    HALMAC_RTL8822B_PCIE_PHY_GEN2,
-					    platform, HAL_INTF_PHY_PCIE_GEN2);
-
-	if (status != HALMAC_RET_SUCCESS)
-		return status;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"halmac_phy_cfg <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_interface_integration_tuning_8822b_pcie() - pcie interface fine tuning
- * @halmac_adapter : the adapter of halmac
- * Author : Rick Liu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_interface_integration_tuning_8822b_pcie(
-	struct halmac_adapter *halmac_adapter)
-{
-	return HALMAC_RET_SUCCESS;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.h
deleted file mode 100644
index b47c508..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_pcie.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_API_8822B_PCIE_H_
-#define _HALMAC_API_8822B_PCIE_H_
-
-#include "../../halmac_2_platform.h"
-#include "../../halmac_type.h"
-
-extern struct halmac_intf_phy_para_ HALMAC_RTL8822B_PCIE_PHY_GEN1[];
-extern struct halmac_intf_phy_para_ HALMAC_RTL8822B_PCIE_PHY_GEN2[];
-
-enum halmac_ret_status
-halmac_mac_power_switch_8822b_pcie(struct halmac_adapter *halmac_adapter,
-				   enum halmac_mac_power halmac_power);
-
-enum halmac_ret_status
-halmac_pcie_switch_8822b(struct halmac_adapter *halmac_adapter,
-			 enum halmac_pcie_cfg pcie_cfg);
-
-enum halmac_ret_status
-halmac_pcie_switch_8822b_nc(struct halmac_adapter *halmac_adapter,
-			    enum halmac_pcie_cfg pcie_cfg);
-
-enum halmac_ret_status
-halmac_phy_cfg_8822b_pcie(struct halmac_adapter *halmac_adapter,
-			  enum halmac_intf_phy_platform platform);
-
-enum halmac_ret_status halmac_interface_integration_tuning_8822b_pcie(
-	struct halmac_adapter *halmac_adapter);
-
-#endif /* _HALMAC_API_8822B_PCIE_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.c
deleted file mode 100644
index a6b6d7f..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.c
+++ /dev/null
@@ -1,173 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halmac_8822b_cfg.h"
-
-/**
- * halmac_mac_power_switch_8822b_sdio() - switch mac power
- * @halmac_adapter : the adapter of halmac
- * @halmac_power : power state
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_mac_power_switch_8822b_sdio(struct halmac_adapter *halmac_adapter,
-				   enum halmac_mac_power halmac_power)
-{
-	u8 interface_mask;
-	u8 value8;
-	u8 rpwm;
-	u32 imr_backup;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-		"[TRACE]halmac_mac_power_switch_88xx_sdio==========>\n");
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"[TRACE]halmac_power = %x ==========>\n", halmac_power);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"[TRACE]8822B pwr seq ver = %s\n",
-			HALMAC_8822B_PWR_SEQ_VER);
-
-	interface_mask = HALMAC_PWR_INTF_SDIO_MSK;
-
-	halmac_adapter->rpwm_record =
-		HALMAC_REG_READ_8(halmac_adapter, REG_SDIO_HRPWM1);
-
-	/* Check FW still exist or not */
-	if (HALMAC_REG_READ_16(halmac_adapter, REG_MCUFW_CTRL) == 0xC078) {
-		/* Leave 32K */
-		rpwm = (u8)((halmac_adapter->rpwm_record ^ BIT(7)) & 0x80);
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_SDIO_HRPWM1, rpwm);
-	}
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CR);
-	if (value8 == 0xEA)
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF;
-	else
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON;
-
-	/*Check if power switch is needed*/
-	if (halmac_power == HALMAC_MAC_POWER_ON &&
-	    halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_ON) {
-		HALMAC_RT_TRACE(
-			driver_adapter, HALMAC_MSG_PWR, DBG_WARNING,
-			"[WARN]halmac_mac_power_switch power state unchange!\n");
-		return HALMAC_RET_PWR_UNCHANGE;
-	}
-
-	imr_backup = HALMAC_REG_READ_32(halmac_adapter, REG_SDIO_HIMR);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_HIMR, 0);
-
-	if (halmac_power == HALMAC_MAC_POWER_OFF) {
-		if (halmac_pwr_seq_parser_88xx(
-			    halmac_adapter, HALMAC_PWR_CUT_ALL_MSK,
-			    HALMAC_PWR_FAB_TSMC_MSK, interface_mask,
-			    halmac_8822b_card_disable_flow) !=
-		    HALMAC_RET_SUCCESS) {
-			pr_err("[ERR]Handle power off cmd error\n");
-			HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_HIMR,
-					    imr_backup);
-			return HALMAC_RET_POWER_OFF_FAIL;
-		}
-
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF;
-		halmac_adapter->halmac_state.ps_state =
-			HALMAC_PS_STATE_UNDEFINE;
-		halmac_adapter->halmac_state.dlfw_state = HALMAC_DLFW_NONE;
-		halmac_init_adapter_dynamic_para_88xx(halmac_adapter);
-	} else {
-		if (halmac_pwr_seq_parser_88xx(
-			    halmac_adapter, HALMAC_PWR_CUT_ALL_MSK,
-			    HALMAC_PWR_FAB_TSMC_MSK, interface_mask,
-			    halmac_8822b_card_enable_flow) !=
-		    HALMAC_RET_SUCCESS) {
-			pr_err("[ERR]Handle power on cmd error\n");
-			HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_HIMR,
-					    imr_backup);
-			return HALMAC_RET_POWER_ON_FAIL;
-		}
-
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON;
-		halmac_adapter->halmac_state.ps_state = HALMAC_PS_STATE_ACT;
-	}
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_HIMR, imr_backup);
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-		"[TRACE]halmac_mac_power_switch_88xx_sdio <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_phy_cfg_8822b_sdio() - phy config
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_phy_cfg_8822b_sdio(struct halmac_adapter *halmac_adapter,
-			  enum halmac_intf_phy_platform platform)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PHY_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"halmac_phy_cfg ==========>\n");
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"sdio no phy\n");
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"halmac_phy_cfg <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_interface_integration_tuning_8822b_sdio() - sdio interface fine tuning
- * @halmac_adapter : the adapter of halmac
- * Author : Ivan
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_interface_integration_tuning_8822b_sdio(
-	struct halmac_adapter *halmac_adapter)
-{
-	return HALMAC_RET_SUCCESS;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.h
deleted file mode 100644
index 75c83f7..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_sdio.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_API_8822B_SDIO_H_
-#define _HALMAC_API_8822B_SDIO_H_
-
-#include "../../halmac_2_platform.h"
-#include "../../halmac_type.h"
-
-enum halmac_ret_status
-halmac_mac_power_switch_8822b_sdio(struct halmac_adapter *halmac_adapter,
-				   enum halmac_mac_power halmac_power);
-
-enum halmac_ret_status
-halmac_phy_cfg_8822b_sdio(struct halmac_adapter *halmac_adapter,
-			  enum halmac_intf_phy_platform platform);
-
-enum halmac_ret_status halmac_interface_integration_tuning_8822b_sdio(
-	struct halmac_adapter *halmac_adapter);
-
-#endif /* _HALMAC_API_8822B_SDIO_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.c
deleted file mode 100644
index 2eaf362..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.c
+++ /dev/null
@@ -1,174 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "../halmac_88xx_cfg.h"
-#include "halmac_8822b_cfg.h"
-
-/**
- * halmac_mac_power_switch_8822b_usb() - switch mac power
- * @halmac_adapter : the adapter of halmac
- * @halmac_power : power state
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_mac_power_switch_8822b_usb(struct halmac_adapter *halmac_adapter,
-				  enum halmac_mac_power halmac_power)
-{
-	u8 interface_mask;
-	u8 value8;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_MAC_POWER_SWITCH);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-		"halmac_mac_power_switch_88xx_usb halmac_power = %x ==========>\n",
-		halmac_power);
-
-	interface_mask = HALMAC_PWR_INTF_USB_MSK;
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CR);
-	if (value8 == 0xEA) {
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF;
-	} else {
-		if (BIT(0) ==
-		    (HALMAC_REG_READ_8(halmac_adapter, REG_SYS_STATUS1 + 1) &
-		     BIT(0)))
-			halmac_adapter->halmac_state.mac_power =
-				HALMAC_MAC_POWER_OFF;
-		else
-			halmac_adapter->halmac_state.mac_power =
-				HALMAC_MAC_POWER_ON;
-	}
-
-	/*Check if power switch is needed*/
-	if (halmac_power == HALMAC_MAC_POWER_ON &&
-	    halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_ON) {
-		HALMAC_RT_TRACE(
-			driver_adapter, HALMAC_MSG_PWR, DBG_WARNING,
-			"halmac_mac_power_switch power state unchange!\n");
-		return HALMAC_RET_PWR_UNCHANGE;
-	}
-	if (halmac_power == HALMAC_MAC_POWER_OFF) {
-		if (halmac_pwr_seq_parser_88xx(
-			    halmac_adapter, HALMAC_PWR_CUT_ALL_MSK,
-			    HALMAC_PWR_FAB_TSMC_MSK, interface_mask,
-			    halmac_8822b_card_disable_flow) !=
-		    HALMAC_RET_SUCCESS) {
-			pr_err("Handle power off cmd error\n");
-			return HALMAC_RET_POWER_OFF_FAIL;
-		}
-
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_OFF;
-		halmac_adapter->halmac_state.ps_state =
-			HALMAC_PS_STATE_UNDEFINE;
-		halmac_adapter->halmac_state.dlfw_state = HALMAC_DLFW_NONE;
-		halmac_init_adapter_dynamic_para_88xx(halmac_adapter);
-	} else {
-		if (halmac_pwr_seq_parser_88xx(
-			    halmac_adapter, HALMAC_PWR_CUT_ALL_MSK,
-			    HALMAC_PWR_FAB_TSMC_MSK, interface_mask,
-			    halmac_8822b_card_enable_flow) !=
-		    HALMAC_RET_SUCCESS) {
-			pr_err("Handle power on cmd error\n");
-			return HALMAC_RET_POWER_ON_FAIL;
-		}
-
-		HALMAC_REG_WRITE_8(
-			halmac_adapter, REG_SYS_STATUS1 + 1,
-			HALMAC_REG_READ_8(halmac_adapter, REG_SYS_STATUS1 + 1) &
-				~(BIT(0)));
-
-		halmac_adapter->halmac_state.mac_power = HALMAC_MAC_POWER_ON;
-		halmac_adapter->halmac_state.ps_state = HALMAC_PS_STATE_ACT;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"halmac_mac_power_switch_88xx_usb <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_phy_cfg_8822b_usb() - phy config
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_phy_cfg_8822b_usb(struct halmac_adapter *halmac_adapter,
-			 enum halmac_intf_phy_platform platform)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PHY_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"halmac_phy_cfg ==========>\n");
-
-	status = halmac_parse_intf_phy_88xx(halmac_adapter,
-					    HALMAC_RTL8822B_USB2_PHY, platform,
-					    HAL_INTF_PHY_USB2);
-
-	if (status != HALMAC_RET_SUCCESS)
-		return status;
-
-	status = halmac_parse_intf_phy_88xx(halmac_adapter,
-					    HALMAC_RTL8822B_USB3_PHY, platform,
-					    HAL_INTF_PHY_USB3);
-
-	if (status != HALMAC_RET_SUCCESS)
-		return status;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"halmac_phy_cfg <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_interface_integration_tuning_8822b_usb() - usb interface fine tuning
- * @halmac_adapter : the adapter of halmac
- * Author : Ivan
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_interface_integration_tuning_8822b_usb(
-	struct halmac_adapter *halmac_adapter)
-{
-	return HALMAC_RET_SUCCESS;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.h
deleted file mode 100644
index 8ba7bee..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_api_8822b_usb.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_API_8822B_USB_H_
-#define _HALMAC_API_8822B_USB_H_
-
-extern struct halmac_intf_phy_para_ HALMAC_RTL8822B_USB2_PHY[];
-extern struct halmac_intf_phy_para_ HALMAC_RTL8822B_USB3_PHY[];
-
-#include "../../halmac_2_platform.h"
-#include "../../halmac_type.h"
-
-enum halmac_ret_status
-halmac_mac_power_switch_8822b_usb(struct halmac_adapter *halmac_adapter,
-				  enum halmac_mac_power halmac_power);
-
-enum halmac_ret_status
-halmac_phy_cfg_8822b_usb(struct halmac_adapter *halmac_adapter,
-			 enum halmac_intf_phy_platform platform);
-
-enum halmac_ret_status halmac_interface_integration_tuning_8822b_usb(
-	struct halmac_adapter *halmac_adapter);
-
-#endif /* _HALMAC_API_8822B_USB_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.c
deleted file mode 100644
index bcc4028..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.c
+++ /dev/null
@@ -1,403 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halmac_8822b_cfg.h"
-#include "halmac_func_8822b.h"
-
-/*SDIO RQPN Mapping*/
-static struct halmac_rqpn_ HALMAC_RQPN_SDIO_8822B[] = {
-	/* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */
-	{HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_WMM, HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_NQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_P2P, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-};
-
-/*PCIE RQPN Mapping*/
-static struct halmac_rqpn_ HALMAC_RQPN_PCIE_8822B[] = {
-	/* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */
-	{HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_WMM, HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_NQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_P2P, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-};
-
-/*USB 2 Bulkout RQPN Mapping*/
-static struct halmac_rqpn_ HALMAC_RQPN_2BULKOUT_8822B[] = {
-	/* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */
-	{HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_WMM, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_P2P, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ,
-	 HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ,
-	 HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ,
-	 HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-};
-
-/*USB 3 Bulkout RQPN Mapping*/
-static struct halmac_rqpn_ HALMAC_RQPN_3BULKOUT_8822B[] = {
-	/* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */
-	{HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_WMM, HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_P2P, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_NQ, HALMAC_MAP2_HQ, HALMAC_MAP2_HQ},
-};
-
-/*USB 4 Bulkout RQPN Mapping*/
-static struct halmac_rqpn_ HALMAC_RQPN_4BULKOUT_8822B[] = {
-	/* { mode, vo_map, vi_map, be_map, bk_map, mg_map, hi_map } */
-	{HALMAC_TRX_MODE_NORMAL, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_TRXSHARE, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_WMM, HALMAC_MAP2_HQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_NQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_P2P, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ, HALMAC_MAP2_LQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, HALMAC_MAP2_NQ, HALMAC_MAP2_NQ,
-	 HALMAC_MAP2_LQ, HALMAC_MAP2_LQ, HALMAC_MAP2_EXQ, HALMAC_MAP2_HQ},
-};
-
-/*SDIO Page Number*/
-static struct halmac_pg_num_ HALMAC_PG_NUM_SDIO_8822B[] = {
-	/* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */
-	{HALMAC_TRX_MODE_NORMAL, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_TRXSHARE, 32, 32, 32, 32, 1},
-	{HALMAC_TRX_MODE_WMM, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_P2P, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_LOOPBACK, 64, 64, 64, 64, 640},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 64, 64, 640},
-};
-
-/*PCIE Page Number*/
-static struct halmac_pg_num_ HALMAC_PG_NUM_PCIE_8822B[] = {
-	/* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */
-	{HALMAC_TRX_MODE_NORMAL, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_TRXSHARE, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_WMM, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_P2P, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_LOOPBACK, 64, 64, 64, 64, 640},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 64, 64, 640},
-};
-
-/*USB 2 Bulkout Page Number*/
-static struct halmac_pg_num_ HALMAC_PG_NUM_2BULKOUT_8822B[] = {
-	/* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */
-	{HALMAC_TRX_MODE_NORMAL, 64, 64, 0, 0, 1},
-	{HALMAC_TRX_MODE_TRXSHARE, 64, 64, 0, 0, 1},
-	{HALMAC_TRX_MODE_WMM, 64, 64, 0, 0, 1},
-	{HALMAC_TRX_MODE_P2P, 64, 64, 0, 0, 1},
-	{HALMAC_TRX_MODE_LOOPBACK, 64, 64, 0, 0, 1024},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 0, 0, 1024},
-};
-
-/*USB 3 Bulkout Page Number*/
-static struct halmac_pg_num_ HALMAC_PG_NUM_3BULKOUT_8822B[] = {
-	/* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */
-	{HALMAC_TRX_MODE_NORMAL, 64, 64, 64, 0, 1},
-	{HALMAC_TRX_MODE_TRXSHARE, 64, 64, 64, 0, 1},
-	{HALMAC_TRX_MODE_WMM, 64, 64, 64, 0, 1},
-	{HALMAC_TRX_MODE_P2P, 64, 64, 64, 0, 1},
-	{HALMAC_TRX_MODE_LOOPBACK, 64, 64, 64, 0, 1024},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 64, 0, 1024},
-};
-
-/*USB 4 Bulkout Page Number*/
-static struct halmac_pg_num_ HALMAC_PG_NUM_4BULKOUT_8822B[] = {
-	/* { mode, hq_num, nq_num, lq_num, exq_num, gap_num} */
-	{HALMAC_TRX_MODE_NORMAL, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_TRXSHARE, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_WMM, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_P2P, 64, 64, 64, 64, 1},
-	{HALMAC_TRX_MODE_LOOPBACK, 64, 64, 64, 64, 640},
-	{HALMAC_TRX_MODE_DELAY_LOOPBACK, 64, 64, 64, 64, 640},
-};
-
-enum halmac_ret_status
-halmac_txdma_queue_mapping_8822b(struct halmac_adapter *halmac_adapter,
-				 enum halmac_trx_mode halmac_trx_mode)
-{
-	u16 value16;
-	void *driver_adapter = NULL;
-	struct halmac_rqpn_ *curr_rqpn_sel = NULL;
-	enum halmac_ret_status status;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		curr_rqpn_sel = HALMAC_RQPN_SDIO_8822B;
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_PCIE) {
-		curr_rqpn_sel = HALMAC_RQPN_PCIE_8822B;
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) {
-		if (halmac_adapter->halmac_bulkout_num == 2) {
-			curr_rqpn_sel = HALMAC_RQPN_2BULKOUT_8822B;
-		} else if (halmac_adapter->halmac_bulkout_num == 3) {
-			curr_rqpn_sel = HALMAC_RQPN_3BULKOUT_8822B;
-		} else if (halmac_adapter->halmac_bulkout_num == 4) {
-			curr_rqpn_sel = HALMAC_RQPN_4BULKOUT_8822B;
-		} else {
-			pr_err("[ERR]interface not support\n");
-			return HALMAC_RET_NOT_SUPPORT;
-		}
-	} else {
-		return HALMAC_RET_NOT_SUPPORT;
-	}
-
-	status = halmac_rqpn_parser_88xx(halmac_adapter, halmac_trx_mode,
-					 curr_rqpn_sel);
-	if (status != HALMAC_RET_SUCCESS)
-		return status;
-
-	value16 = 0;
-	value16 |= BIT_TXDMA_HIQ_MAP(
-		halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_HI]);
-	value16 |= BIT_TXDMA_MGQ_MAP(
-		halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_MG]);
-	value16 |= BIT_TXDMA_BKQ_MAP(
-		halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BK]);
-	value16 |= BIT_TXDMA_BEQ_MAP(
-		halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BE]);
-	value16 |= BIT_TXDMA_VIQ_MAP(
-		halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VI]);
-	value16 |= BIT_TXDMA_VOQ_MAP(
-		halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VO]);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_TXDMA_PQ_MAP, value16);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_priority_queue_config_8822b(struct halmac_adapter *halmac_adapter,
-				   enum halmac_trx_mode halmac_trx_mode)
-{
-	u8 transfer_mode = 0;
-	u8 value8;
-	u32 counter;
-	enum halmac_ret_status status;
-	struct halmac_pg_num_ *curr_pg_num = NULL;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (halmac_adapter->txff_allocation.la_mode == HALMAC_LA_MODE_DISABLE) {
-		if (halmac_adapter->txff_allocation.rx_fifo_expanding_mode ==
-		    HALMAC_RX_FIFO_EXPANDING_MODE_DISABLE) {
-			halmac_adapter->txff_allocation.tx_fifo_pg_num =
-				HALMAC_TX_FIFO_SIZE_8822B >>
-				HALMAC_TX_PAGE_SIZE_2_POWER_8822B;
-		} else if (halmac_adapter->txff_allocation
-				   .rx_fifo_expanding_mode ==
-			   HALMAC_RX_FIFO_EXPANDING_MODE_1_BLOCK) {
-			halmac_adapter->txff_allocation.tx_fifo_pg_num =
-				HALMAC_TX_FIFO_SIZE_EX_1_BLK_8822B >>
-				HALMAC_TX_PAGE_SIZE_2_POWER_8822B;
-			halmac_adapter->hw_config_info.tx_fifo_size =
-				HALMAC_TX_FIFO_SIZE_EX_1_BLK_8822B;
-			if (HALMAC_RX_FIFO_SIZE_EX_1_BLK_8822B <=
-			    HALMAC_RX_FIFO_SIZE_EX_1_BLK_MAX_8822B)
-				halmac_adapter->hw_config_info.rx_fifo_size =
-					HALMAC_RX_FIFO_SIZE_EX_1_BLK_8822B;
-			else
-				halmac_adapter->hw_config_info.rx_fifo_size =
-					HALMAC_RX_FIFO_SIZE_EX_1_BLK_MAX_8822B;
-		} else {
-			halmac_adapter->txff_allocation.tx_fifo_pg_num =
-				HALMAC_TX_FIFO_SIZE_8822B >>
-				HALMAC_TX_PAGE_SIZE_2_POWER_8822B;
-			pr_err("[ERR]rx_fifo_expanding_mode = %d not support\n",
-			       halmac_adapter->txff_allocation
-				       .rx_fifo_expanding_mode);
-		}
-	} else {
-		halmac_adapter->txff_allocation.tx_fifo_pg_num =
-			HALMAC_TX_FIFO_SIZE_LA_8822B >>
-			HALMAC_TX_PAGE_SIZE_2_POWER_8822B;
-	}
-	halmac_adapter->txff_allocation.rsvd_pg_num =
-		(halmac_adapter->txff_allocation.rsvd_drv_pg_num +
-		 HALMAC_RSVD_H2C_EXTRAINFO_PGNUM_8822B +
-		 HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B +
-		 HALMAC_RSVD_CPU_INSTRUCTION_PGNUM_8822B +
-		 HALMAC_RSVD_FW_TXBUFF_PGNUM_8822B);
-	if (halmac_adapter->txff_allocation.rsvd_pg_num >
-	    halmac_adapter->txff_allocation.tx_fifo_pg_num)
-		return HALMAC_RET_CFG_TXFIFO_PAGE_FAIL;
-
-	halmac_adapter->txff_allocation.ac_q_pg_num =
-		halmac_adapter->txff_allocation.tx_fifo_pg_num -
-		halmac_adapter->txff_allocation.rsvd_pg_num;
-	halmac_adapter->txff_allocation.rsvd_pg_bndy =
-		halmac_adapter->txff_allocation.tx_fifo_pg_num -
-		halmac_adapter->txff_allocation.rsvd_pg_num;
-	halmac_adapter->txff_allocation.rsvd_fw_txbuff_pg_bndy =
-		halmac_adapter->txff_allocation.tx_fifo_pg_num -
-		HALMAC_RSVD_FW_TXBUFF_PGNUM_8822B;
-	halmac_adapter->txff_allocation.rsvd_cpu_instr_pg_bndy =
-		halmac_adapter->txff_allocation.rsvd_fw_txbuff_pg_bndy -
-		HALMAC_RSVD_CPU_INSTRUCTION_PGNUM_8822B;
-	halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy =
-		halmac_adapter->txff_allocation.rsvd_cpu_instr_pg_bndy -
-		HALMAC_RSVD_H2C_QUEUE_PGNUM_8822B;
-	halmac_adapter->txff_allocation.rsvd_h2c_extra_info_pg_bndy =
-		halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy -
-		HALMAC_RSVD_H2C_EXTRAINFO_PGNUM_8822B;
-	halmac_adapter->txff_allocation.rsvd_drv_pg_bndy =
-		halmac_adapter->txff_allocation.rsvd_h2c_extra_info_pg_bndy -
-		halmac_adapter->txff_allocation.rsvd_drv_pg_num;
-
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		curr_pg_num = HALMAC_PG_NUM_SDIO_8822B;
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_PCIE) {
-		curr_pg_num = HALMAC_PG_NUM_PCIE_8822B;
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) {
-		if (halmac_adapter->halmac_bulkout_num == 2) {
-			curr_pg_num = HALMAC_PG_NUM_2BULKOUT_8822B;
-		} else if (halmac_adapter->halmac_bulkout_num == 3) {
-			curr_pg_num = HALMAC_PG_NUM_3BULKOUT_8822B;
-		} else if (halmac_adapter->halmac_bulkout_num == 4) {
-			curr_pg_num = HALMAC_PG_NUM_4BULKOUT_8822B;
-		} else {
-			pr_err("[ERR]interface not support\n");
-			return HALMAC_RET_NOT_SUPPORT;
-		}
-	} else {
-		return HALMAC_RET_NOT_SUPPORT;
-	}
-
-	status = halmac_pg_num_parser_88xx(halmac_adapter, halmac_trx_mode,
-					   curr_pg_num);
-	if (status != HALMAC_RET_SUCCESS)
-		return status;
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_INFO_1,
-			    halmac_adapter->txff_allocation.high_queue_pg_num);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_INFO_2,
-			    halmac_adapter->txff_allocation.low_queue_pg_num);
-	HALMAC_REG_WRITE_16(
-		halmac_adapter, REG_FIFOPAGE_INFO_3,
-		halmac_adapter->txff_allocation.normal_queue_pg_num);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_INFO_4,
-			    halmac_adapter->txff_allocation.extra_queue_pg_num);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_INFO_5,
-			    halmac_adapter->txff_allocation.pub_queue_pg_num);
-
-	halmac_adapter->sdio_free_space.high_queue_number =
-		halmac_adapter->txff_allocation.high_queue_pg_num;
-	halmac_adapter->sdio_free_space.normal_queue_number =
-		halmac_adapter->txff_allocation.normal_queue_pg_num;
-	halmac_adapter->sdio_free_space.low_queue_number =
-		halmac_adapter->txff_allocation.low_queue_pg_num;
-	halmac_adapter->sdio_free_space.public_queue_number =
-		halmac_adapter->txff_allocation.pub_queue_pg_num;
-	halmac_adapter->sdio_free_space.extra_queue_number =
-		halmac_adapter->txff_allocation.extra_queue_pg_num;
-
-	HALMAC_REG_WRITE_32(
-		halmac_adapter, REG_RQPN_CTRL_2,
-		HALMAC_REG_READ_32(halmac_adapter, REG_RQPN_CTRL_2) | BIT(31));
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			    (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-				  BIT_MASK_BCN_HEAD_1_V1));
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_BCNQ_BDNY_V1,
-			    (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-				  BIT_MASK_BCNQ_PGBNDY_V1));
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2 + 2,
-			    (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-				  BIT_MASK_BCN_HEAD_1_V1));
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_BCNQ1_BDNY_V1,
-			    (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-				  BIT_MASK_BCNQ_PGBNDY_V1));
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_RXFF_BNDY,
-			    halmac_adapter->hw_config_info.rx_fifo_size -
-				    HALMAC_C2H_PKT_BUF_8822B - 1);
-
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) {
-		value8 = (u8)(
-			HALMAC_REG_READ_8(halmac_adapter, REG_AUTO_LLT_V1) &
-			~(BIT_MASK_BLK_DESC_NUM << BIT_SHIFT_BLK_DESC_NUM));
-		value8 = (u8)(value8 | (HALMAC_BLK_DESC_NUM_8822B
-					<< BIT_SHIFT_BLK_DESC_NUM));
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_AUTO_LLT_V1, value8);
-
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_AUTO_LLT_V1 + 3,
-				   HALMAC_BLK_DESC_NUM_8822B);
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_TXDMA_OFFSET_CHK + 1,
-				   HALMAC_REG_READ_8(halmac_adapter,
-						     REG_TXDMA_OFFSET_CHK + 1) |
-					   BIT(1));
-	}
-
-	HALMAC_REG_WRITE_8(
-		halmac_adapter, REG_AUTO_LLT_V1,
-		(u8)(HALMAC_REG_READ_8(halmac_adapter, REG_AUTO_LLT_V1) |
-		     BIT_AUTO_INIT_LLT_V1));
-	counter = 1000;
-	while (HALMAC_REG_READ_8(halmac_adapter, REG_AUTO_LLT_V1) &
-	       BIT_AUTO_INIT_LLT_V1) {
-		counter--;
-		if (counter == 0)
-			return HALMAC_RET_INIT_LLT_FAIL;
-	}
-
-	if (halmac_trx_mode == HALMAC_TRX_MODE_DELAY_LOOPBACK) {
-		transfer_mode = HALMAC_TRNSFER_LOOPBACK_DELAY;
-		HALMAC_REG_WRITE_16(
-			halmac_adapter, REG_WMAC_LBK_BUF_HD_V1,
-			(u16)halmac_adapter->txff_allocation.rsvd_pg_bndy);
-	} else if (halmac_trx_mode == HALMAC_TRX_MODE_LOOPBACK) {
-		transfer_mode = HALMAC_TRNSFER_LOOPBACK_DIRECT;
-	} else {
-		transfer_mode = HALMAC_TRNSFER_NORMAL;
-	}
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CR + 3, (u8)transfer_mode);
-
-	return HALMAC_RET_SUCCESS;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.h
deleted file mode 100644
index 8488fc5..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_8822b/halmac_func_8822b.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_FUNC_8822B_H_
-#define _HALMAC_FUNC_8822B_H_
-
-#include "../../halmac_type.h"
-
-enum halmac_ret_status
-halmac_txdma_queue_mapping_8822b(struct halmac_adapter *halmac_adapter,
-				 enum halmac_trx_mode halmac_trx_mode);
-
-enum halmac_ret_status
-halmac_priority_queue_config_8822b(struct halmac_adapter *halmac_adapter,
-				   enum halmac_trx_mode halmac_trx_mode);
-
-#endif /* _HALMAC_FUNC_8822B_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_88xx_cfg.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_88xx_cfg.h
deleted file mode 100644
index ec9b102..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_88xx_cfg.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_88XX_CFG_H_
-#define _HALMAC_88XX_CFG_H_
-
-#include "../halmac_2_platform.h"
-#include "../halmac_type.h"
-#include "../halmac_api.h"
-#include "../halmac_bit2.h"
-#include "../halmac_reg2.h"
-#include "../halmac_pwr_seq_cmd.h"
-#include "halmac_func_88xx.h"
-#include "halmac_api_88xx.h"
-#include "halmac_api_88xx_usb.h"
-#include "halmac_api_88xx_pcie.h"
-#include "halmac_api_88xx_sdio.h"
-
-#define HALMAC_SVN_VER_88XX "13359M"
-
-#define HALMAC_MAJOR_VER_88XX 0x0001 /* major version, ver_1 for async_api */
-/* For halmac_api num change or prototype change, increment prototype version.
- * Otherwise, increase minor version
- */
-#define HALMAC_PROTOTYPE_VER_88XX 0x0003 /* prototype version */
-#define HALMAC_MINOR_VER_88XX 0x0005 /* minor version */
-#define HALMAC_PATCH_VER_88XX 0x0000 /* patch version */
-
-#define HALMAC_C2H_DATA_OFFSET_88XX 10
-#define HALMAC_RX_AGG_ALIGNMENT_SIZE_88XX 8
-#define HALMAC_TX_AGG_ALIGNMENT_SIZE_88XX 8
-#define HALMAC_TX_AGG_BUFF_SIZE_88XX 32768
-
-#define HALMAC_EXTRA_INFO_BUFF_SIZE_88XX 4096 /*4K*/
-#define HALMAC_EXTRA_INFO_BUFF_SIZE_FULL_FIFO_88XX 16384 /*16K*/
-#define HALMAC_FW_OFFLOAD_CMD_SIZE_88XX                                        \
-	12 /*Fw config parameter cmd size, each 12 byte*/
-
-#define HALMAC_H2C_CMD_ORIGINAL_SIZE_88XX 8
-#define HALMAC_H2C_CMD_SIZE_UNIT_88XX 32 /* Only support 32 byte packet now */
-
-#define HALMAC_NLO_INFO_SIZE_88XX 1024
-
-/* Download FW */
-#define HALMAC_FW_SIZE_MAX_88XX 0x40000
-#define HALMAC_FWHDR_SIZE_88XX 64
-#define HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX 8
-#define HALMAC_FW_MAX_DL_SIZE_88XX 0x2000 /* need power of 2 */
-/* Max dlfw size can not over 31K, because SDIO HW restriction */
-#define HALMAC_FW_CFG_MAX_DL_SIZE_MAX_88XX 0x7C00
-
-#define DLFW_RESTORE_REG_NUM_88XX 9
-#define ID_INFORM_DLEMEM_RDY 0x80
-
-/* FW header information */
-#define HALMAC_FWHDR_OFFSET_VERSION_88XX 4
-#define HALMAC_FWHDR_OFFSET_SUBVERSION_88XX 6
-#define HALMAC_FWHDR_OFFSET_SUBINDEX_88XX 7
-#define HALMAC_FWHDR_OFFSET_MEM_USAGE_88XX 24
-#define HALMAC_FWHDR_OFFSET_H2C_FORMAT_VER_88XX 28
-#define HALMAC_FWHDR_OFFSET_DMEM_ADDR_88XX 32
-#define HALMAC_FWHDR_OFFSET_DMEM_SIZE_88XX 36
-#define HALMAC_FWHDR_OFFSET_IRAM_SIZE_88XX 48
-#define HALMAC_FWHDR_OFFSET_ERAM_SIZE_88XX 52
-#define HALMAC_FWHDR_OFFSET_EMEM_ADDR_88XX 56
-#define HALMAC_FWHDR_OFFSET_IRAM_ADDR_88XX 60
-
-/* HW memory address */
-#define HALMAC_OCPBASE_TXBUF_88XX 0x18780000
-#define HALMAC_OCPBASE_DMEM_88XX 0x00200000
-#define HALMAC_OCPBASE_IMEM_88XX 0x00000000
-
-/* define the SDIO Bus CLK threshold, for avoiding CMD53 fails that
- * result from SDIO CLK sync to ana_clk fail
- */
-#define HALMAC_SD_CLK_THRESHOLD_88XX 150000000 /* 150MHz */
-
-/* MAC clock */
-#define HALMAC_MAC_CLOCK_88XX 80 /* 80M */
-
-/* H2C/C2H*/
-#define HALMAC_H2C_CMD_SIZE_88XX 32
-#define HALMAC_H2C_CMD_HDR_SIZE_88XX 8
-
-#define HALMAC_PROTECTED_EFUSE_SIZE_88XX 0x60
-
-/* Function enable */
-#define HALMAC_FUNCTION_ENABLE_88XX 0xDC
-
-/* FIFO size & packet size */
-/* #define HALMAC_WOWLAN_PATTERN_SIZE	256 */
-
-/* CFEND rate */
-#define HALMAC_BASIC_CFEND_RATE_88XX 0x5
-#define HALMAC_STBC_CFEND_RATE_88XX 0xF
-
-/* Response rate */
-#define HALMAC_RESPONSE_RATE_BITMAP_ALL_88XX 0xFFFFF
-#define HALMAC_RESPONSE_RATE_88XX HALMAC_RESPONSE_RATE_BITMAP_ALL_88XX
-
-/* Spec SIFS */
-#define HALMAC_SIFS_CCK_PTCL_88XX 16
-#define HALMAC_SIFS_OFDM_PTCL_88XX 16
-
-/* Retry limit */
-#define HALMAC_LONG_RETRY_LIMIT_88XX 8
-#define HALMAC_SHORT_RETRY_LIMIT_88XX 7
-
-/* Slot, SIFS, PIFS time */
-#define HALMAC_SLOT_TIME_88XX 0x05
-#define HALMAC_PIFS_TIME_88XX 0x19
-#define HALMAC_SIFS_CCK_CTX_88XX 0xA
-#define HALMAC_SIFS_OFDM_CTX_88XX 0xA
-#define HALMAC_SIFS_CCK_TRX_88XX 0x10
-#define HALMAC_SIFS_OFDM_TRX_88XX 0x10
-
-/* TXOP limit */
-#define HALMAC_VO_TXOP_LIMIT_88XX 0x186
-#define HALMAC_VI_TXOP_LIMIT_88XX 0x3BC
-
-/* NAV */
-#define HALMAC_RDG_NAV_88XX 0x05
-#define HALMAC_TXOP_NAV_88XX 0x1B
-
-/* TSF */
-#define HALMAC_CCK_RX_TSF_88XX 0x30
-#define HALMAC_OFDM_RX_TSF_88XX 0x30
-
-/* Send beacon related */
-#define HALMAC_TBTT_PROHIBIT_88XX 0x04
-#define HALMAC_TBTT_HOLD_TIME_88XX 0x064
-#define HALMAC_DRIVER_EARLY_INT_88XX 0x04
-#define HALMAC_BEACON_DMA_TIM_88XX 0x02
-
-/* RX filter */
-#define HALMAC_RX_FILTER0_RECIVE_ALL_88XX 0xFFFFFFF
-#define HALMAC_RX_FILTER0_88XX HALMAC_RX_FILTER0_RECIVE_ALL_88XX
-#define HALMAC_RX_FILTER_RECIVE_ALL_88XX 0xFFFF
-#define HALMAC_RX_FILTER_88XX HALMAC_RX_FILTER_RECIVE_ALL_88XX
-
-/* RCR */
-#define HALMAC_RCR_CONFIG_88XX 0xE400631E
-
-/* Security config */
-#define HALMAC_SECURITY_CONFIG_88XX 0x01CC
-
-/* CCK rate ACK timeout */
-#define HALMAC_ACK_TO_CCK_88XX 0x40
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx.c
deleted file mode 100644
index acd7930..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx.c
+++ /dev/null
@@ -1,5970 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halmac_88xx_cfg.h"
-
-/**
- * halmac_init_adapter_para_88xx() - int halmac adapter
- * @halmac_adapter
- *
- * SD1 internal use
- *
- * Author : KaiYuan Chang/Ivan Lin
- * Return : void
- */
-void halmac_init_adapter_para_88xx(struct halmac_adapter *halmac_adapter)
-{
-	halmac_adapter->api_record.array_wptr = 0;
-	halmac_adapter->hal_adapter_backup = halmac_adapter;
-	halmac_adapter->hal_efuse_map = (u8 *)NULL;
-	halmac_adapter->hal_efuse_map_valid = false;
-	halmac_adapter->efuse_end = 0;
-	halmac_adapter->hal_mac_addr[0].address_l_h.address_low = 0;
-	halmac_adapter->hal_mac_addr[0].address_l_h.address_high = 0;
-	halmac_adapter->hal_mac_addr[1].address_l_h.address_low = 0;
-	halmac_adapter->hal_mac_addr[1].address_l_h.address_high = 0;
-	halmac_adapter->hal_bss_addr[0].address_l_h.address_low = 0;
-	halmac_adapter->hal_bss_addr[0].address_l_h.address_high = 0;
-	halmac_adapter->hal_bss_addr[1].address_l_h.address_low = 0;
-	halmac_adapter->hal_bss_addr[1].address_l_h.address_high = 0;
-
-	halmac_adapter->low_clk = false;
-	halmac_adapter->max_download_size = HALMAC_FW_MAX_DL_SIZE_88XX;
-
-	/* Init LPS Option */
-	halmac_adapter->fwlps_option.mode = 0x01; /*0:Active 1:LPS 2:WMMPS*/
-	halmac_adapter->fwlps_option.awake_interval = 1;
-	halmac_adapter->fwlps_option.enter_32K = 1;
-	halmac_adapter->fwlps_option.clk_request = 0;
-	halmac_adapter->fwlps_option.rlbm = 0;
-	halmac_adapter->fwlps_option.smart_ps = 0;
-	halmac_adapter->fwlps_option.awake_interval = 1;
-	halmac_adapter->fwlps_option.all_queue_uapsd = 0;
-	halmac_adapter->fwlps_option.pwr_state = 0;
-	halmac_adapter->fwlps_option.low_pwr_rx_beacon = 0;
-	halmac_adapter->fwlps_option.ant_auto_switch = 0;
-	halmac_adapter->fwlps_option.ps_allow_bt_high_priority = 0;
-	halmac_adapter->fwlps_option.protect_bcn = 0;
-	halmac_adapter->fwlps_option.silence_period = 0;
-	halmac_adapter->fwlps_option.fast_bt_connect = 0;
-	halmac_adapter->fwlps_option.two_antenna_en = 0;
-	halmac_adapter->fwlps_option.adopt_user_setting = 1;
-	halmac_adapter->fwlps_option.drv_bcn_early_shift = 0;
-
-	halmac_adapter->config_para_info.cfg_para_buf = NULL;
-	halmac_adapter->config_para_info.para_buf_w = NULL;
-	halmac_adapter->config_para_info.para_num = 0;
-	halmac_adapter->config_para_info.full_fifo_mode = false;
-	halmac_adapter->config_para_info.para_buf_size = 0;
-	halmac_adapter->config_para_info.avai_para_buf_size = 0;
-	halmac_adapter->config_para_info.offset_accumulation = 0;
-	halmac_adapter->config_para_info.value_accumulation = 0;
-	halmac_adapter->config_para_info.datapack_segment = 0;
-
-	halmac_adapter->ch_sw_info.ch_info_buf = NULL;
-	halmac_adapter->ch_sw_info.ch_info_buf_w = NULL;
-	halmac_adapter->ch_sw_info.extra_info_en = 0;
-	halmac_adapter->ch_sw_info.buf_size = 0;
-	halmac_adapter->ch_sw_info.avai_buf_size = 0;
-	halmac_adapter->ch_sw_info.total_size = 0;
-	halmac_adapter->ch_sw_info.ch_num = 0;
-
-	halmac_adapter->drv_info_size = 0;
-
-	memset(halmac_adapter->api_record.api_array, HALMAC_API_STUFF,
-	       sizeof(halmac_adapter->api_record.api_array));
-
-	halmac_adapter->txff_allocation.tx_fifo_pg_num = 0;
-	halmac_adapter->txff_allocation.ac_q_pg_num = 0;
-	halmac_adapter->txff_allocation.rsvd_pg_bndy = 0;
-	halmac_adapter->txff_allocation.rsvd_drv_pg_bndy = 0;
-	halmac_adapter->txff_allocation.rsvd_h2c_extra_info_pg_bndy = 0;
-	halmac_adapter->txff_allocation.rsvd_h2c_queue_pg_bndy = 0;
-	halmac_adapter->txff_allocation.rsvd_cpu_instr_pg_bndy = 0;
-	halmac_adapter->txff_allocation.rsvd_fw_txbuff_pg_bndy = 0;
-	halmac_adapter->txff_allocation.pub_queue_pg_num = 0;
-	halmac_adapter->txff_allocation.high_queue_pg_num = 0;
-	halmac_adapter->txff_allocation.low_queue_pg_num = 0;
-	halmac_adapter->txff_allocation.normal_queue_pg_num = 0;
-	halmac_adapter->txff_allocation.extra_queue_pg_num = 0;
-
-	halmac_adapter->txff_allocation.la_mode = HALMAC_LA_MODE_DISABLE;
-	halmac_adapter->txff_allocation.rx_fifo_expanding_mode =
-		HALMAC_RX_FIFO_EXPANDING_MODE_DISABLE;
-
-	halmac_init_adapter_dynamic_para_88xx(halmac_adapter);
-	halmac_init_state_machine_88xx(halmac_adapter);
-}
-
-/**
- * halmac_init_adapter_dynamic_para_88xx() - int halmac adapter
- * @halmac_adapter
- *
- * SD1 internal use
- *
- * Author : KaiYuan Chang/Ivan Lin
- * Return : void
- */
-void halmac_init_adapter_dynamic_para_88xx(
-	struct halmac_adapter *halmac_adapter)
-{
-	halmac_adapter->h2c_packet_seq = 0;
-	halmac_adapter->h2c_buf_free_space = 0;
-	halmac_adapter->gen_info_valid = false;
-}
-
-/**
- * halmac_init_state_machine_88xx() - init halmac software state machine
- * @halmac_adapter
- *
- * SD1 internal use.
- *
- * Author : KaiYuan Chang/Ivan Lin
- * Return : void
- */
-void halmac_init_state_machine_88xx(struct halmac_adapter *halmac_adapter)
-{
-	struct halmac_state *state = &halmac_adapter->halmac_state;
-
-	halmac_init_offload_feature_state_machine_88xx(halmac_adapter);
-
-	state->api_state = HALMAC_API_STATE_INIT;
-
-	state->dlfw_state = HALMAC_DLFW_NONE;
-	state->mac_power = HALMAC_MAC_POWER_OFF;
-	state->ps_state = HALMAC_PS_STATE_UNDEFINE;
-}
-
-/**
- * halmac_mount_api_88xx() - attach functions to function pointer
- * @halmac_adapter
- *
- * SD1 internal use
- *
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- */
-enum halmac_ret_status
-halmac_mount_api_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	struct halmac_api *halmac_api = (struct halmac_api *)NULL;
-
-	halmac_adapter->halmac_api =
-		kzalloc(sizeof(struct halmac_api), GFP_KERNEL);
-	if (!halmac_adapter->halmac_api)
-		return HALMAC_RET_MALLOC_FAIL;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			HALMAC_SVN_VER_88XX "\n");
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"HALMAC_MAJOR_VER_88XX = %x\n", HALMAC_MAJOR_VER_88XX);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"HALMAC_PROTOTYPE_88XX = %x\n",
-			HALMAC_PROTOTYPE_VER_88XX);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"HALMAC_MINOR_VER_88XX = %x\n", HALMAC_MINOR_VER_88XX);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"HALMAC_PATCH_VER_88XX = %x\n", HALMAC_PATCH_VER_88XX);
-
-	/* Mount function pointer */
-	halmac_api->halmac_download_firmware = halmac_download_firmware_88xx;
-	halmac_api->halmac_free_download_firmware =
-		halmac_free_download_firmware_88xx;
-	halmac_api->halmac_get_fw_version = halmac_get_fw_version_88xx;
-	halmac_api->halmac_cfg_mac_addr = halmac_cfg_mac_addr_88xx;
-	halmac_api->halmac_cfg_bssid = halmac_cfg_bssid_88xx;
-	halmac_api->halmac_cfg_multicast_addr = halmac_cfg_multicast_addr_88xx;
-	halmac_api->halmac_pre_init_system_cfg =
-		halmac_pre_init_system_cfg_88xx;
-	halmac_api->halmac_init_system_cfg = halmac_init_system_cfg_88xx;
-	halmac_api->halmac_init_edca_cfg = halmac_init_edca_cfg_88xx;
-	halmac_api->halmac_cfg_operation_mode = halmac_cfg_operation_mode_88xx;
-	halmac_api->halmac_cfg_ch_bw = halmac_cfg_ch_bw_88xx;
-	halmac_api->halmac_cfg_bw = halmac_cfg_bw_88xx;
-	halmac_api->halmac_init_wmac_cfg = halmac_init_wmac_cfg_88xx;
-	halmac_api->halmac_init_mac_cfg = halmac_init_mac_cfg_88xx;
-	halmac_api->halmac_init_sdio_cfg = halmac_init_sdio_cfg_88xx;
-	halmac_api->halmac_init_usb_cfg = halmac_init_usb_cfg_88xx;
-	halmac_api->halmac_init_pcie_cfg = halmac_init_pcie_cfg_88xx;
-	halmac_api->halmac_deinit_sdio_cfg = halmac_deinit_sdio_cfg_88xx;
-	halmac_api->halmac_deinit_usb_cfg = halmac_deinit_usb_cfg_88xx;
-	halmac_api->halmac_deinit_pcie_cfg = halmac_deinit_pcie_cfg_88xx;
-	halmac_api->halmac_dump_efuse_map = halmac_dump_efuse_map_88xx;
-	halmac_api->halmac_dump_efuse_map_bt = halmac_dump_efuse_map_bt_88xx;
-	halmac_api->halmac_write_efuse_bt = halmac_write_efuse_bt_88xx;
-	halmac_api->halmac_dump_logical_efuse_map =
-		halmac_dump_logical_efuse_map_88xx;
-	halmac_api->halmac_pg_efuse_by_map = halmac_pg_efuse_by_map_88xx;
-	halmac_api->halmac_get_efuse_size = halmac_get_efuse_size_88xx;
-	halmac_api->halmac_get_efuse_available_size =
-		halmac_get_efuse_available_size_88xx;
-	halmac_api->halmac_get_c2h_info = halmac_get_c2h_info_88xx;
-
-	halmac_api->halmac_get_logical_efuse_size =
-		halmac_get_logical_efuse_size_88xx;
-
-	halmac_api->halmac_write_logical_efuse =
-		halmac_write_logical_efuse_88xx;
-	halmac_api->halmac_read_logical_efuse = halmac_read_logical_efuse_88xx;
-
-	halmac_api->halmac_cfg_fwlps_option = halmac_cfg_fwlps_option_88xx;
-	halmac_api->halmac_cfg_fwips_option = halmac_cfg_fwips_option_88xx;
-	halmac_api->halmac_enter_wowlan = halmac_enter_wowlan_88xx;
-	halmac_api->halmac_leave_wowlan = halmac_leave_wowlan_88xx;
-	halmac_api->halmac_enter_ps = halmac_enter_ps_88xx;
-	halmac_api->halmac_leave_ps = halmac_leave_ps_88xx;
-	halmac_api->halmac_h2c_lb = halmac_h2c_lb_88xx;
-	halmac_api->halmac_debug = halmac_debug_88xx;
-	halmac_api->halmac_cfg_parameter = halmac_cfg_parameter_88xx;
-	halmac_api->halmac_update_datapack = halmac_update_datapack_88xx;
-	halmac_api->halmac_run_datapack = halmac_run_datapack_88xx;
-	halmac_api->halmac_cfg_drv_info = halmac_cfg_drv_info_88xx;
-	halmac_api->halmac_send_bt_coex = halmac_send_bt_coex_88xx;
-	halmac_api->halmac_verify_platform_api =
-		halmac_verify_platform_api_88xx;
-	halmac_api->halmac_update_packet = halmac_update_packet_88xx;
-	halmac_api->halmac_bcn_ie_filter = halmac_bcn_ie_filter_88xx;
-	halmac_api->halmac_cfg_txbf = halmac_cfg_txbf_88xx;
-	halmac_api->halmac_cfg_mumimo = halmac_cfg_mumimo_88xx;
-	halmac_api->halmac_cfg_sounding = halmac_cfg_sounding_88xx;
-	halmac_api->halmac_del_sounding = halmac_del_sounding_88xx;
-	halmac_api->halmac_su_bfer_entry_init = halmac_su_bfer_entry_init_88xx;
-	halmac_api->halmac_su_bfee_entry_init = halmac_su_bfee_entry_init_88xx;
-	halmac_api->halmac_mu_bfer_entry_init = halmac_mu_bfer_entry_init_88xx;
-	halmac_api->halmac_mu_bfee_entry_init = halmac_mu_bfee_entry_init_88xx;
-	halmac_api->halmac_su_bfer_entry_del = halmac_su_bfer_entry_del_88xx;
-	halmac_api->halmac_su_bfee_entry_del = halmac_su_bfee_entry_del_88xx;
-	halmac_api->halmac_mu_bfer_entry_del = halmac_mu_bfer_entry_del_88xx;
-	halmac_api->halmac_mu_bfee_entry_del = halmac_mu_bfee_entry_del_88xx;
-
-	halmac_api->halmac_add_ch_info = halmac_add_ch_info_88xx;
-	halmac_api->halmac_add_extra_ch_info = halmac_add_extra_ch_info_88xx;
-	halmac_api->halmac_ctrl_ch_switch = halmac_ctrl_ch_switch_88xx;
-	halmac_api->halmac_p2pps = halmac_p2pps_88xx;
-	halmac_api->halmac_clear_ch_info = halmac_clear_ch_info_88xx;
-	halmac_api->halmac_send_general_info = halmac_send_general_info_88xx;
-
-	halmac_api->halmac_start_iqk = halmac_start_iqk_88xx;
-	halmac_api->halmac_ctrl_pwr_tracking = halmac_ctrl_pwr_tracking_88xx;
-	halmac_api->halmac_psd = halmac_psd_88xx;
-	halmac_api->halmac_cfg_la_mode = halmac_cfg_la_mode_88xx;
-	halmac_api->halmac_cfg_rx_fifo_expanding_mode =
-		halmac_cfg_rx_fifo_expanding_mode_88xx;
-
-	halmac_api->halmac_config_security = halmac_config_security_88xx;
-	halmac_api->halmac_get_used_cam_entry_num =
-		halmac_get_used_cam_entry_num_88xx;
-	halmac_api->halmac_read_cam_entry = halmac_read_cam_entry_88xx;
-	halmac_api->halmac_write_cam = halmac_write_cam_88xx;
-	halmac_api->halmac_clear_cam_entry = halmac_clear_cam_entry_88xx;
-
-	halmac_api->halmac_get_hw_value = halmac_get_hw_value_88xx;
-	halmac_api->halmac_set_hw_value = halmac_set_hw_value_88xx;
-
-	halmac_api->halmac_cfg_drv_rsvd_pg_num =
-		halmac_cfg_drv_rsvd_pg_num_88xx;
-	halmac_api->halmac_get_chip_version = halmac_get_chip_version_88xx;
-
-	halmac_api->halmac_query_status = halmac_query_status_88xx;
-	halmac_api->halmac_reset_feature = halmac_reset_feature_88xx;
-	halmac_api->halmac_check_fw_status = halmac_check_fw_status_88xx;
-	halmac_api->halmac_dump_fw_dmem = halmac_dump_fw_dmem_88xx;
-	halmac_api->halmac_cfg_max_dl_size = halmac_cfg_max_dl_size_88xx;
-
-	halmac_api->halmac_dump_fifo = halmac_dump_fifo_88xx;
-	halmac_api->halmac_get_fifo_size = halmac_get_fifo_size_88xx;
-
-	halmac_api->halmac_chk_txdesc = halmac_chk_txdesc_88xx;
-	halmac_api->halmac_dl_drv_rsvd_page = halmac_dl_drv_rsvd_page_88xx;
-	halmac_api->halmac_cfg_csi_rate = halmac_cfg_csi_rate_88xx;
-
-	halmac_api->halmac_sdio_cmd53_4byte = halmac_sdio_cmd53_4byte_88xx;
-	halmac_api->halmac_txfifo_is_empty = halmac_txfifo_is_empty_88xx;
-
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		halmac_api->halmac_cfg_rx_aggregation =
-			halmac_cfg_rx_aggregation_88xx_sdio;
-		halmac_api->halmac_init_interface_cfg =
-			halmac_init_sdio_cfg_88xx;
-		halmac_api->halmac_deinit_interface_cfg =
-			halmac_deinit_sdio_cfg_88xx;
-		halmac_api->halmac_reg_read_8 = halmac_reg_read_8_sdio_88xx;
-		halmac_api->halmac_reg_write_8 = halmac_reg_write_8_sdio_88xx;
-		halmac_api->halmac_reg_read_16 = halmac_reg_read_16_sdio_88xx;
-		halmac_api->halmac_reg_write_16 = halmac_reg_write_16_sdio_88xx;
-		halmac_api->halmac_reg_read_32 = halmac_reg_read_32_sdio_88xx;
-		halmac_api->halmac_reg_write_32 = halmac_reg_write_32_sdio_88xx;
-		halmac_api->halmac_reg_read_indirect_32 =
-			halmac_reg_read_indirect_32_sdio_88xx;
-		halmac_api->halmac_reg_sdio_cmd53_read_n =
-			halmac_reg_read_nbyte_sdio_88xx;
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) {
-		halmac_api->halmac_cfg_rx_aggregation =
-			halmac_cfg_rx_aggregation_88xx_usb;
-		halmac_api->halmac_init_interface_cfg =
-			halmac_init_usb_cfg_88xx;
-		halmac_api->halmac_deinit_interface_cfg =
-			halmac_deinit_usb_cfg_88xx;
-		halmac_api->halmac_reg_read_8 = halmac_reg_read_8_usb_88xx;
-		halmac_api->halmac_reg_write_8 = halmac_reg_write_8_usb_88xx;
-		halmac_api->halmac_reg_read_16 = halmac_reg_read_16_usb_88xx;
-		halmac_api->halmac_reg_write_16 = halmac_reg_write_16_usb_88xx;
-		halmac_api->halmac_reg_read_32 = halmac_reg_read_32_usb_88xx;
-		halmac_api->halmac_reg_write_32 = halmac_reg_write_32_usb_88xx;
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_PCIE) {
-		halmac_api->halmac_cfg_rx_aggregation =
-			halmac_cfg_rx_aggregation_88xx_pcie;
-		halmac_api->halmac_init_interface_cfg =
-			halmac_init_pcie_cfg_88xx;
-		halmac_api->halmac_deinit_interface_cfg =
-			halmac_deinit_pcie_cfg_88xx;
-		halmac_api->halmac_reg_read_8 = halmac_reg_read_8_pcie_88xx;
-		halmac_api->halmac_reg_write_8 = halmac_reg_write_8_pcie_88xx;
-		halmac_api->halmac_reg_read_16 = halmac_reg_read_16_pcie_88xx;
-		halmac_api->halmac_reg_write_16 = halmac_reg_write_16_pcie_88xx;
-		halmac_api->halmac_reg_read_32 = halmac_reg_read_32_pcie_88xx;
-		halmac_api->halmac_reg_write_32 = halmac_reg_write_32_pcie_88xx;
-	} else {
-		pr_err("Set halmac io function Error!!\n");
-	}
-
-	halmac_api->halmac_set_bulkout_num = halmac_set_bulkout_num_88xx;
-	halmac_api->halmac_get_sdio_tx_addr = halmac_get_sdio_tx_addr_88xx;
-	halmac_api->halmac_get_usb_bulkout_id = halmac_get_usb_bulkout_id_88xx;
-	halmac_api->halmac_timer_2s = halmac_timer_2s_88xx;
-	halmac_api->halmac_fill_txdesc_checksum =
-		halmac_fill_txdesc_check_sum_88xx;
-
-	if (halmac_adapter->chip_id == HALMAC_CHIP_ID_8822B) {
-		/*mount 8822b function and data*/
-		halmac_mount_api_8822b(halmac_adapter);
-
-	} else if (halmac_adapter->chip_id == HALMAC_CHIP_ID_8821C) {
-	} else if (halmac_adapter->chip_id == HALMAC_CHIP_ID_8814B) {
-	} else if (halmac_adapter->chip_id == HALMAC_CHIP_ID_8197F) {
-	} else {
-		pr_err("Chip ID undefine!!\n");
-		return HALMAC_RET_CHIP_NOT_SUPPORT;
-	}
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_download_firmware_88xx() - download Firmware
- * @halmac_adapter : the adapter of halmac
- * @hamacl_fw : firmware bin
- * @halmac_fw_size : firmware size
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_download_firmware_88xx(struct halmac_adapter *halmac_adapter,
-			      u8 *hamacl_fw, u32 halmac_fw_size)
-{
-	u8 value8;
-	u8 *file_ptr;
-	u32 dest;
-	u16 value16;
-	u32 restore_index = 0;
-	u32 halmac_h2c_ver = 0, fw_h2c_ver = 0;
-	u32 iram_pkt_size, dmem_pkt_size, eram_pkt_size = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	struct halmac_restore_info restore_info[DLFW_RESTORE_REG_NUM_88XX];
-	u32 temp;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DOWNLOAD_FIRMWARE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s start!!\n", __func__);
-
-	if (halmac_fw_size > HALMAC_FW_SIZE_MAX_88XX ||
-	    halmac_fw_size < HALMAC_FWHDR_SIZE_88XX) {
-		pr_err("FW size error!\n");
-		return HALMAC_RET_FW_SIZE_ERR;
-	}
-
-	fw_h2c_ver = le32_to_cpu(
-		*((__le32 *)
-		  (hamacl_fw + HALMAC_FWHDR_OFFSET_H2C_FORMAT_VER_88XX)));
-	halmac_h2c_ver = H2C_FORMAT_VERSION;
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"halmac h2c/c2h format = %x, fw h2c/c2h format = %x!!\n",
-		halmac_h2c_ver, fw_h2c_ver);
-	if (fw_h2c_ver != halmac_h2c_ver)
-		HALMAC_RT_TRACE(
-			driver_adapter, HALMAC_MSG_INIT, DBG_WARNING,
-			"[WARN]H2C/C2H version between HALMAC and FW is compatible!!\n");
-
-	halmac_adapter->halmac_state.dlfw_state = HALMAC_DLFW_NONE;
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_SYS_FUNC_EN + 1);
-	value8 = (u8)(value8 & ~(BIT(2)));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_SYS_FUNC_EN + 1,
-			   value8); /* Disable CPU reset */
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_RSV_CTRL + 1);
-	value8 = (u8)(value8 & ~(BIT(0)));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_RSV_CTRL + 1, value8);
-
-	restore_info[restore_index].length = 1;
-	restore_info[restore_index].mac_register = REG_TXDMA_PQ_MAP + 1;
-	restore_info[restore_index].value =
-		HALMAC_REG_READ_8(halmac_adapter, REG_TXDMA_PQ_MAP + 1);
-	restore_index++;
-	value8 = HALMAC_DMA_MAPPING_HIGH << 6;
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TXDMA_PQ_MAP + 1,
-			   value8); /* set HIQ to hi priority */
-
-	/* DLFW only use HIQ, map HIQ to hi priority */
-	halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_HI] =
-		HALMAC_DMA_MAPPING_HIGH;
-	restore_info[restore_index].length = 1;
-	restore_info[restore_index].mac_register = REG_CR;
-	restore_info[restore_index].value =
-		HALMAC_REG_READ_8(halmac_adapter, REG_CR);
-	restore_index++;
-	restore_info[restore_index].length = 4;
-	restore_info[restore_index].mac_register = REG_H2CQ_CSR;
-	restore_info[restore_index].value = BIT(31);
-	restore_index++;
-	value8 = BIT_HCI_TXDMA_EN | BIT_TXDMA_EN;
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CR, value8);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_H2CQ_CSR, BIT(31));
-
-	/* Config hi priority queue and public priority queue page number
-	 * (only for DLFW)
-	 */
-	restore_info[restore_index].length = 2;
-	restore_info[restore_index].mac_register = REG_FIFOPAGE_INFO_1;
-	restore_info[restore_index].value =
-		HALMAC_REG_READ_16(halmac_adapter, REG_FIFOPAGE_INFO_1);
-	restore_index++;
-	restore_info[restore_index].length = 4;
-	restore_info[restore_index].mac_register = REG_RQPN_CTRL_2;
-	restore_info[restore_index].value =
-		HALMAC_REG_READ_32(halmac_adapter, REG_RQPN_CTRL_2) | BIT(31);
-	restore_index++;
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_INFO_1, 0x200);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_RQPN_CTRL_2,
-			    restore_info[restore_index - 1].value);
-
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		HALMAC_REG_READ_32(halmac_adapter, REG_SDIO_FREE_TXPG);
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_TX_CTRL,
-				    0x00000000);
-	}
-
-	halmac_adapter->fw_version.version = le16_to_cpu(
-		*((__le16 *)(hamacl_fw + HALMAC_FWHDR_OFFSET_VERSION_88XX)));
-	halmac_adapter->fw_version.sub_version =
-		*(hamacl_fw + HALMAC_FWHDR_OFFSET_SUBVERSION_88XX);
-	halmac_adapter->fw_version.sub_index =
-		*(hamacl_fw + HALMAC_FWHDR_OFFSET_SUBINDEX_88XX);
-	halmac_adapter->fw_version.h2c_version = (u16)fw_h2c_ver;
-
-	dmem_pkt_size = le32_to_cpu(*((__le32 *)(hamacl_fw +
-				      HALMAC_FWHDR_OFFSET_DMEM_SIZE_88XX)));
-	iram_pkt_size = le32_to_cpu(*((__le32 *)(hamacl_fw +
-				      HALMAC_FWHDR_OFFSET_IRAM_SIZE_88XX)));
-	if (((*(hamacl_fw + HALMAC_FWHDR_OFFSET_MEM_USAGE_88XX)) & BIT(4)) != 0)
-		eram_pkt_size =
-		     le32_to_cpu(*((__le32 *)(hamacl_fw +
-				   HALMAC_FWHDR_OFFSET_ERAM_SIZE_88XX)));
-
-	dmem_pkt_size += HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX;
-	iram_pkt_size += HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX;
-	if (eram_pkt_size != 0)
-		eram_pkt_size += HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX;
-
-	if (halmac_fw_size != (HALMAC_FWHDR_SIZE_88XX + dmem_pkt_size +
-			       iram_pkt_size + eram_pkt_size)) {
-		pr_err("FW size mismatch the real fw size!\n");
-		goto DLFW_FAIL;
-	}
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CR + 1);
-	restore_info[restore_index].length = 1;
-	restore_info[restore_index].mac_register = REG_CR + 1;
-	restore_info[restore_index].value = value8;
-	restore_index++;
-	value8 = (u8)(value8 | BIT(0));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CR + 1,
-			   value8); /* Enable SW TX beacon */
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_BCN_CTRL);
-	restore_info[restore_index].length = 1;
-	restore_info[restore_index].mac_register = REG_BCN_CTRL;
-	restore_info[restore_index].value = value8;
-	restore_index++;
-	value8 = (u8)((value8 & (~BIT(3))) | BIT(4));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_BCN_CTRL,
-			   value8); /* Disable beacon related functions */
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_FWHW_TXQ_CTRL + 2);
-	restore_info[restore_index].length = 1;
-	restore_info[restore_index].mac_register = REG_FWHW_TXQ_CTRL + 2;
-	restore_info[restore_index].value = value8;
-	restore_index++;
-	value8 = (u8)(value8 & ~(BIT(6)));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_FWHW_TXQ_CTRL + 2,
-			   value8); /* Disable ptcl tx bcnq */
-
-	restore_info[restore_index].length = 2;
-	restore_info[restore_index].mac_register = REG_FIFOPAGE_CTRL_2;
-	restore_info[restore_index].value =
-		HALMAC_REG_READ_16(halmac_adapter, REG_FIFOPAGE_CTRL_2) |
-		BIT(15);
-	restore_index++;
-	value16 = 0x8000;
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			    value16); /* Set beacon header to  0 */
-
-	value16 = (u16)(HALMAC_REG_READ_16(halmac_adapter, REG_MCUFW_CTRL) &
-			0x3800);
-	value16 |= BIT(0);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_MCUFW_CTRL,
-			    value16); /* MCU/FW setting */
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CPU_DMEM_CON + 2);
-	value8 &= ~(BIT(0));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CPU_DMEM_CON + 2, value8);
-	value8 |= BIT(0);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CPU_DMEM_CON + 2, value8);
-
-	/* Download to DMEM */
-	file_ptr = hamacl_fw + HALMAC_FWHDR_SIZE_88XX;
-	temp = le32_to_cpu(*((__le32 *)(hamacl_fw +
-			   HALMAC_FWHDR_OFFSET_DMEM_ADDR_88XX))) &
-			   ~(BIT(31));
-	if (halmac_dlfw_to_mem_88xx(halmac_adapter, file_ptr, temp,
-				    dmem_pkt_size) != HALMAC_RET_SUCCESS)
-		goto DLFW_END;
-
-	/* Download to IMEM */
-	file_ptr = hamacl_fw + HALMAC_FWHDR_SIZE_88XX + dmem_pkt_size;
-	temp = le32_to_cpu(*((__le32 *)(hamacl_fw +
-			   HALMAC_FWHDR_OFFSET_IRAM_ADDR_88XX))) &
-			   ~(BIT(31));
-	if (halmac_dlfw_to_mem_88xx(halmac_adapter, file_ptr, temp,
-				    iram_pkt_size) != HALMAC_RET_SUCCESS)
-		goto DLFW_END;
-
-	/* Download to EMEM */
-	if (eram_pkt_size != 0) {
-		file_ptr = hamacl_fw + HALMAC_FWHDR_SIZE_88XX + dmem_pkt_size +
-			   iram_pkt_size;
-		dest = le32_to_cpu((*((__le32 *)(hamacl_fw +
-				    HALMAC_FWHDR_OFFSET_EMEM_ADDR_88XX)))) &
-				   ~(BIT(31));
-		if (halmac_dlfw_to_mem_88xx(halmac_adapter, file_ptr, dest,
-					    eram_pkt_size) !=
-		    HALMAC_RET_SUCCESS)
-			goto DLFW_END;
-	}
-
-	halmac_init_offload_feature_state_machine_88xx(halmac_adapter);
-DLFW_END:
-
-	halmac_restore_mac_register_88xx(halmac_adapter, restore_info,
-					 DLFW_RESTORE_REG_NUM_88XX);
-
-	if (halmac_dlfw_end_flow_88xx(halmac_adapter) != HALMAC_RET_SUCCESS)
-		goto DLFW_FAIL;
-
-	halmac_adapter->halmac_state.dlfw_state = HALMAC_DLFW_DONE;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-
-DLFW_FAIL:
-
-	/* Disable FWDL_EN */
-	HALMAC_REG_WRITE_8(
-		halmac_adapter, REG_MCUFW_CTRL,
-		(u8)(HALMAC_REG_READ_8(halmac_adapter, REG_MCUFW_CTRL) &
-		     ~(BIT(0))));
-
-	return HALMAC_RET_DLFW_FAIL;
-}
-
-/**
- * halmac_free_download_firmware_88xx() - download specific memory firmware
- * @halmac_adapter
- * @dlfw_mem : memory selection
- * @hamacl_fw : firmware bin
- * @halmac_fw_size : firmware size
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- */
-enum halmac_ret_status
-halmac_free_download_firmware_88xx(struct halmac_adapter *halmac_adapter,
-				   enum halmac_dlfw_mem dlfw_mem, u8 *hamacl_fw,
-				   u32 halmac_fw_size)
-{
-	u8 tx_pause_backup;
-	u8 *file_ptr;
-	u32 dest;
-	u16 bcn_head_backup;
-	u32 iram_pkt_size, dmem_pkt_size, eram_pkt_size = 0;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_DLFW_FAIL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]%s ==========>\n", __func__);
-
-	if (halmac_fw_size > HALMAC_FW_SIZE_MAX_88XX ||
-	    halmac_fw_size < HALMAC_FWHDR_SIZE_88XX) {
-		pr_err("[ERR]FW size error!\n");
-		return HALMAC_RET_FW_SIZE_ERR;
-	}
-
-	dmem_pkt_size =
-	    le32_to_cpu(*(__le32 *)(hamacl_fw +
-				    HALMAC_FWHDR_OFFSET_DMEM_SIZE_88XX));
-	iram_pkt_size =
-	    le32_to_cpu(*(__le32 *)(hamacl_fw +
-				    HALMAC_FWHDR_OFFSET_IRAM_SIZE_88XX));
-	if (((*(hamacl_fw + HALMAC_FWHDR_OFFSET_MEM_USAGE_88XX)) & BIT(4)) != 0)
-		eram_pkt_size =
-		  le32_to_cpu(*(__le32 *)(hamacl_fw +
-					  HALMAC_FWHDR_OFFSET_ERAM_SIZE_88XX));
-
-	dmem_pkt_size += HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX;
-	iram_pkt_size += HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX;
-	if (eram_pkt_size != 0)
-		eram_pkt_size += HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX;
-
-	if (halmac_fw_size != (HALMAC_FWHDR_SIZE_88XX + dmem_pkt_size +
-			       iram_pkt_size + eram_pkt_size)) {
-		pr_err("[ERR]FW size mismatch the real fw size!\n");
-		return HALMAC_RET_DLFW_FAIL;
-	}
-
-	tx_pause_backup = HALMAC_REG_READ_8(halmac_adapter, REG_TXPAUSE);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TXPAUSE,
-			   tx_pause_backup | BIT(7));
-
-	bcn_head_backup =
-		HALMAC_REG_READ_16(halmac_adapter, REG_FIFOPAGE_CTRL_2) |
-		BIT(15);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2, 0x8000);
-
-	if (eram_pkt_size != 0) {
-		file_ptr = hamacl_fw + HALMAC_FWHDR_SIZE_88XX + dmem_pkt_size +
-			   iram_pkt_size;
-		dest = le32_to_cpu(*((__le32 *)(hamacl_fw +
-				   HALMAC_FWHDR_OFFSET_EMEM_ADDR_88XX))) &
-				   ~(BIT(31));
-		status = halmac_dlfw_to_mem_88xx(halmac_adapter, file_ptr, dest,
-						 eram_pkt_size);
-		if (status != HALMAC_RET_SUCCESS)
-			goto DL_FREE_FW_END;
-	}
-
-	status = halmac_free_dl_fw_end_flow_88xx(halmac_adapter);
-
-DL_FREE_FW_END:
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TXPAUSE, tx_pause_backup);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			    bcn_head_backup);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]%s <==========\n", __func__);
-
-	return status;
-}
-
-/**
- * halmac_get_fw_version_88xx() - get FW version
- * @halmac_adapter : the adapter of halmac
- * @fw_version : fw version info
- * Author : Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_get_fw_version_88xx(struct halmac_adapter *halmac_adapter,
-			   struct halmac_fw_version *fw_version)
-{
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_adapter->halmac_state.dlfw_state == 0)
-		return HALMAC_RET_DLFW_FAIL;
-
-	fw_version->version = halmac_adapter->fw_version.version;
-	fw_version->sub_version = halmac_adapter->fw_version.sub_version;
-	fw_version->sub_index = halmac_adapter->fw_version.sub_index;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_mac_addr_88xx() - config mac address
- * @halmac_adapter : the adapter of halmac
- * @halmac_port :0 for port0, 1 for port1, 2 for port2, 3 for port3, 4 for port4
- * @hal_address : mac address
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_mac_addr_88xx(struct halmac_adapter *halmac_adapter, u8 halmac_port,
-			 union halmac_wlan_addr *hal_address)
-{
-	u16 mac_address_H;
-	u32 mac_address_L;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]%s ==========>\n", __func__);
-
-	if (halmac_port >= HALMAC_PORTIDMAX) {
-		pr_err("[ERR]port index > 5\n");
-		return HALMAC_RET_PORT_NOT_SUPPORT;
-	}
-
-	mac_address_L = le32_to_cpu(hal_address->address_l_h.le_address_low);
-	mac_address_H = le16_to_cpu(hal_address->address_l_h.le_address_high);
-
-	halmac_adapter->hal_mac_addr[halmac_port].address_l_h.address_low =
-		mac_address_L;
-	halmac_adapter->hal_mac_addr[halmac_port].address_l_h.address_high =
-		mac_address_H;
-
-	switch (halmac_port) {
-	case HALMAC_PORTID0:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_MACID, mac_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_MACID + 4,
-				    mac_address_H);
-		break;
-
-	case HALMAC_PORTID1:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_MACID1, mac_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_MACID1 + 4,
-				    mac_address_H);
-		break;
-
-	case HALMAC_PORTID2:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_MACID2, mac_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_MACID2 + 4,
-				    mac_address_H);
-		break;
-
-	case HALMAC_PORTID3:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_MACID3, mac_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_MACID3 + 4,
-				    mac_address_H);
-		break;
-
-	case HALMAC_PORTID4:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_MACID4, mac_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_MACID4 + 4,
-				    mac_address_H);
-		break;
-
-	default:
-
-		break;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_bssid_88xx() - config BSSID
- * @halmac_adapter : the adapter of halmac
- * @halmac_port :0 for port0, 1 for port1, 2 for port2, 3 for port3, 4 for port4
- * @hal_address : bssid
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_bssid_88xx(struct halmac_adapter *halmac_adapter, u8 halmac_port,
-		      union halmac_wlan_addr *hal_address)
-{
-	u16 bssid_address_H;
-	u32 bssid_address_L;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]%s ==========>\n", __func__);
-
-	if (halmac_port >= HALMAC_PORTIDMAX) {
-		pr_err("[ERR]port index > 5\n");
-		return HALMAC_RET_PORT_NOT_SUPPORT;
-	}
-
-	bssid_address_L = le32_to_cpu(hal_address->address_l_h.le_address_low);
-	bssid_address_H = le16_to_cpu(hal_address->address_l_h.le_address_high);
-
-	halmac_adapter->hal_bss_addr[halmac_port].address_l_h.address_low =
-		bssid_address_L;
-	halmac_adapter->hal_bss_addr[halmac_port].address_l_h.address_high =
-		bssid_address_H;
-
-	switch (halmac_port) {
-	case HALMAC_PORTID0:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_BSSID, bssid_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_BSSID + 4,
-				    bssid_address_H);
-		break;
-
-	case HALMAC_PORTID1:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_BSSID1,
-				    bssid_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_BSSID1 + 4,
-				    bssid_address_H);
-		break;
-
-	case HALMAC_PORTID2:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_BSSID2,
-				    bssid_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_BSSID2 + 4,
-				    bssid_address_H);
-		break;
-
-	case HALMAC_PORTID3:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_BSSID3,
-				    bssid_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_BSSID3 + 4,
-				    bssid_address_H);
-		break;
-
-	case HALMAC_PORTID4:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_BSSID4,
-				    bssid_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_BSSID4 + 4,
-				    bssid_address_H);
-		break;
-
-	default:
-
-		break;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_multicast_addr_88xx() - config multicast address
- * @halmac_adapter : the adapter of halmac
- * @hal_address : multicast address
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_multicast_addr_88xx(struct halmac_adapter *halmac_adapter,
-			       union halmac_wlan_addr *hal_address)
-{
-	u16 address_H;
-	u32 address_L;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_CFG_MULTICAST_ADDR);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	address_L = le32_to_cpu(hal_address->address_l_h.le_address_low);
-	address_H = le16_to_cpu(hal_address->address_l_h.le_address_high);
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_MAR, address_L);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_MAR + 4, address_H);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_pre_init_system_cfg_88xx() - pre-init system config
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_pre_init_system_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u32 value32, counter;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	bool enable_bb;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_PRE_INIT_SYSTEM_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"halmac_pre_init_system_cfg ==========>\n");
-
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		HALMAC_REG_WRITE_8(
-			halmac_adapter, REG_SDIO_HSUS_CTRL,
-			HALMAC_REG_READ_8(halmac_adapter, REG_SDIO_HSUS_CTRL) &
-				~(BIT(0)));
-		counter = 10000;
-		while (!(HALMAC_REG_READ_8(halmac_adapter, REG_SDIO_HSUS_CTRL) &
-			 0x02)) {
-			counter--;
-			if (counter == 0)
-				return HALMAC_RET_SDIO_LEAVE_SUSPEND_FAIL;
-		}
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) {
-		if (HALMAC_REG_READ_8(halmac_adapter, REG_SYS_CFG2 + 3) ==
-		    0x20) /* usb3.0 */
-			HALMAC_REG_WRITE_8(
-				halmac_adapter, 0xFE5B,
-				HALMAC_REG_READ_8(halmac_adapter, 0xFE5B) |
-					BIT(4));
-	}
-
-	/* Config PIN Mux */
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_PAD_CTRL1);
-	value32 = value32 & (~(BIT(28) | BIT(29)));
-	value32 = value32 | BIT(28) | BIT(29);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_PAD_CTRL1, value32);
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_LED_CFG);
-	value32 = value32 & (~(BIT(25) | BIT(26)));
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_LED_CFG, value32);
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_GPIO_MUXCFG);
-	value32 = value32 & (~(BIT(2)));
-	value32 = value32 | BIT(2);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_GPIO_MUXCFG, value32);
-
-	enable_bb = false;
-	halmac_set_hw_value_88xx(halmac_adapter, HALMAC_HW_EN_BB_RF,
-				 &enable_bb);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"halmac_pre_init_system_cfg <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_init_system_cfg_88xx() -  init system config
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_system_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_SYSTEM_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"halmac_init_system_cfg ==========>\n");
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_SYS_FUNC_EN + 1,
-			   HALMAC_FUNCTION_ENABLE_88XX);
-	HALMAC_REG_WRITE_32(
-		halmac_adapter, REG_SYS_SDIO_CTRL,
-		(u32)(HALMAC_REG_READ_32(halmac_adapter, REG_SYS_SDIO_CTRL) |
-		      BIT_LTE_MUX_CTRL_PATH));
-	HALMAC_REG_WRITE_32(
-		halmac_adapter, REG_CPU_DMEM_CON,
-		(u32)(HALMAC_REG_READ_32(halmac_adapter, REG_CPU_DMEM_CON) |
-		      BIT_WL_PLATFORM_RST));
-
-	/* halmac_api->halmac_init_h2c(halmac_adapter); */
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"halmac_init_system_cfg <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_init_edca_cfg_88xx() - init EDCA config
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_edca_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u8 value8;
-	u32 value32;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_EDCA_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	/* Clear TX pause */
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_TXPAUSE, 0x0000);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_SLOT, HALMAC_SLOT_TIME_88XX);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PIFS, HALMAC_PIFS_TIME_88XX);
-	value32 = HALMAC_SIFS_CCK_CTX_88XX |
-		  (HALMAC_SIFS_OFDM_CTX_88XX << BIT_SHIFT_SIFS_OFDM_CTX) |
-		  (HALMAC_SIFS_CCK_TRX_88XX << BIT_SHIFT_SIFS_CCK_TRX) |
-		  (HALMAC_SIFS_OFDM_TRX_88XX << BIT_SHIFT_SIFS_OFDM_TRX);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_SIFS, value32);
-
-	HALMAC_REG_WRITE_32(
-		halmac_adapter, REG_EDCA_VO_PARAM,
-		HALMAC_REG_READ_32(halmac_adapter, REG_EDCA_VO_PARAM) & 0xFFFF);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_EDCA_VO_PARAM + 2,
-			    HALMAC_VO_TXOP_LIMIT_88XX);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_EDCA_VI_PARAM + 2,
-			    HALMAC_VI_TXOP_LIMIT_88XX);
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_RD_NAV_NXT,
-			    HALMAC_RDG_NAV_88XX | (HALMAC_TXOP_NAV_88XX << 16));
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_RXTSF_OFFSET_CCK,
-			    HALMAC_CCK_RX_TSF_88XX |
-				    (HALMAC_OFDM_RX_TSF_88XX) << 8);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_RD_CTRL + 1);
-	value8 |=
-		(BIT_VOQ_RD_INIT_EN | BIT_VIQ_RD_INIT_EN | BIT_BEQ_RD_INIT_EN);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_RD_CTRL + 1, value8);
-
-	/* Set beacon cotnrol - enable TSF and other related functions */
-	HALMAC_REG_WRITE_8(
-		halmac_adapter, REG_BCN_CTRL,
-		(u8)(HALMAC_REG_READ_8(halmac_adapter, REG_BCN_CTRL) |
-		     BIT_EN_BCN_FUNCTION));
-
-	/* Set send beacon related registers */
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_TBTT_PROHIBIT,
-			    HALMAC_TBTT_PROHIBIT_88XX |
-				    (HALMAC_TBTT_HOLD_TIME_88XX
-				     << BIT_SHIFT_TBTT_HOLD_TIME_AP));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_DRVERLYINT,
-			   HALMAC_DRIVER_EARLY_INT_88XX);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_BCNDMATIM,
-			   HALMAC_BEACON_DMA_TIM_88XX);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_init_wmac_cfg_88xx() - init wmac config
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_wmac_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_WMAC_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_RXFLTMAP0,
-			    HALMAC_RX_FILTER0_88XX);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_RXFLTMAP,
-			    HALMAC_RX_FILTER_88XX);
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_RCR, HALMAC_RCR_CONFIG_88XX);
-
-	HALMAC_REG_WRITE_8(
-		halmac_adapter, REG_TCR + 1,
-		(u8)(HALMAC_REG_READ_8(halmac_adapter, REG_TCR + 1) | 0x30));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TCR + 2, 0x30);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TCR + 1, 0x00);
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_WMAC_OPTION_FUNCTION + 8,
-			    0x30810041);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_WMAC_OPTION_FUNCTION + 4,
-			    0x50802080);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_init_mac_cfg_88xx() - config page1~page7 register
- * @halmac_adapter : the adapter of halmac
- * @mode : trx mode
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_mac_cfg_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_trx_mode mode)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_MAC_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>mode = %d\n", __func__,
-			mode);
-
-	status = halmac_api->halmac_init_trx_cfg(halmac_adapter, mode);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_init_trx_cfg error = %x\n", status);
-		return status;
-	}
-	status = halmac_api->halmac_init_protocol_cfg(halmac_adapter);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_init_protocol_cfg_88xx error = %x\n", status);
-		return status;
-	}
-
-	status = halmac_init_edca_cfg_88xx(halmac_adapter);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_init_edca_cfg_88xx error = %x\n", status);
-		return status;
-	}
-
-	status = halmac_init_wmac_cfg_88xx(halmac_adapter);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_init_wmac_cfg_88xx error = %x\n", status);
-		return status;
-	}
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return status;
-}
-
-/**
- * halmac_cfg_operation_mode_88xx() - config operation mode
- * @halmac_adapter : the adapter of halmac
- * @wireless_mode : 802.11 standard(b/g/n/ac)
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_operation_mode_88xx(struct halmac_adapter *halmac_adapter,
-			       enum halmac_wireless_mode wireless_mode)
-{
-	void *driver_adapter = NULL;
-	enum halmac_wireless_mode wireless_mode_local =
-		HALMAC_WIRELESS_MODE_UNDEFINE;
-
-	wireless_mode_local = wireless_mode;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_CFG_OPERATION_MODE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s ==========>wireless_mode = %d\n", __func__,
-		wireless_mode);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_ch_bw_88xx() - config channel & bandwidth
- * @halmac_adapter : the adapter of halmac
- * @channel : WLAN channel, support 2.4G & 5G
- * @pri_ch_idx : primary channel index, idx1, idx2, idx3, idx4
- * @bw : band width, 20, 40, 80, 160, 5 ,10
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_ch_bw_88xx(struct halmac_adapter *halmac_adapter, u8 channel,
-		      enum halmac_pri_ch_idx pri_ch_idx, enum halmac_bw bw)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_CH_BW);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>ch = %d, idx=%d, bw=%d\n", __func__,
-			channel, pri_ch_idx, bw);
-
-	halmac_cfg_pri_ch_idx_88xx(halmac_adapter, pri_ch_idx);
-
-	halmac_cfg_bw_88xx(halmac_adapter, bw);
-
-	halmac_cfg_ch_88xx(halmac_adapter, channel);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_cfg_ch_88xx(struct halmac_adapter *halmac_adapter,
-					  u8 channel)
-{
-	u8 value8;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_CH_BW);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>ch = %d\n", __func__, channel);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CCK_CHECK);
-	value8 = value8 & (~(BIT(7)));
-
-	if (channel > 35)
-		value8 = value8 | BIT(7);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CCK_CHECK, value8);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_cfg_pri_ch_idx_88xx(struct halmac_adapter *halmac_adapter,
-			   enum halmac_pri_ch_idx pri_ch_idx)
-{
-	u8 txsc_40 = 0, txsc_20 = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_CH_BW);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========> idx=%d\n", __func__,
-			pri_ch_idx);
-
-	txsc_20 = pri_ch_idx;
-	if (txsc_20 == HALMAC_CH_IDX_1 || txsc_20 == HALMAC_CH_IDX_3)
-		txsc_40 = 9;
-	else
-		txsc_40 = 10;
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_DATA_SC,
-			   BIT_TXSC_20M(txsc_20) | BIT_TXSC_40M(txsc_40));
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_bw_88xx() - config bandwidth
- * @halmac_adapter : the adapter of halmac
- * @bw : band width, 20, 40, 80, 160, 5 ,10
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_cfg_bw_88xx(struct halmac_adapter *halmac_adapter,
-					  enum halmac_bw bw)
-{
-	u32 value32;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_BW);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>bw=%d\n", __func__, bw);
-
-	/* RF mode */
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_WMAC_TRXPTCL_CTL);
-	value32 = value32 & (~(BIT(7) | BIT(8)));
-
-	switch (bw) {
-	case HALMAC_BW_80:
-		value32 = value32 | BIT(7);
-		break;
-	case HALMAC_BW_40:
-		value32 = value32 | BIT(8);
-		break;
-	case HALMAC_BW_20:
-	case HALMAC_BW_10:
-	case HALMAC_BW_5:
-		break;
-	default:
-		pr_err("%s switch case not support\n", __func__);
-		break;
-	}
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_WMAC_TRXPTCL_CTL, value32);
-
-	/* MAC CLK */
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_AFE_CTRL1);
-	value32 = (value32 & (~(BIT(20) | BIT(21)))) |
-		  (HALMAC_MAC_CLOCK_HW_DEF_80M << BIT_SHIFT_MAC_CLK_SEL);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_AFE_CTRL1, value32);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_USTIME_TSF,
-			   HALMAC_MAC_CLOCK_88XX);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_USTIME_EDCA,
-			   HALMAC_MAC_CLOCK_88XX);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_dump_efuse_map_88xx() - dump "physical" efuse map
- * @halmac_adapter : the adapter of halmac
- * @cfg : dump efuse method
- * Author : Ivan Lin/KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_dump_efuse_map_88xx(struct halmac_adapter *halmac_adapter,
-			   enum halmac_efuse_read_cfg cfg)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.efuse_state_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DUMP_EFUSE_MAP);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>cfg=%d\n", __func__, cfg);
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait event(dump efuse)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	if (halmac_query_efuse_curr_state_88xx(halmac_adapter) !=
-	    HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Not idle state(dump efuse)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	if (halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_OFF)
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_WARNING,
-				"[WARN]Dump efuse in suspend mode\n");
-
-	*process_status = HALMAC_CMD_PROCESS_IDLE;
-	halmac_adapter->event_trigger.physical_efuse_map = 1;
-
-	status = halmac_func_switch_efuse_bank_88xx(halmac_adapter,
-						    HALMAC_EFUSE_BANK_WIFI);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_func_switch_efuse_bank error = %x\n", status);
-		return status;
-	}
-
-	status = halmac_dump_efuse_88xx(halmac_adapter, cfg);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_read_efuse error = %x\n", status);
-		return status;
-	}
-
-	if (halmac_adapter->hal_efuse_map_valid) {
-		*process_status = HALMAC_CMD_PROCESS_DONE;
-
-		PLATFORM_EVENT_INDICATION(
-			driver_adapter, HALMAC_FEATURE_DUMP_PHYSICAL_EFUSE,
-			*process_status, halmac_adapter->hal_efuse_map,
-			halmac_adapter->hw_config_info.efuse_size);
-		halmac_adapter->event_trigger.physical_efuse_map = 0;
-	}
-
-	if (halmac_transition_efuse_state_88xx(
-		    halmac_adapter, HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_dump_efuse_map_bt_88xx() - dump "BT physical" efuse map
- * @halmac_adapter : the adapter of halmac
- * @halmac_efuse_bank : bt efuse bank
- * @bt_efuse_map_size : bt efuse map size. get from halmac_get_efuse_size API
- * @bt_efuse_map : bt efuse map
- * Author : Soar / Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_dump_efuse_map_bt_88xx(struct halmac_adapter *halmac_adapter,
-			      enum halmac_efuse_bank halmac_efuse_bank,
-			      u32 bt_efuse_map_size, u8 *bt_efuse_map)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.efuse_state_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DUMP_EFUSE_MAP_BT);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (halmac_adapter->hw_config_info.bt_efuse_size != bt_efuse_map_size)
-		return HALMAC_RET_EFUSE_SIZE_INCORRECT;
-
-	if ((halmac_efuse_bank >= HALMAC_EFUSE_BANK_MAX) ||
-	    halmac_efuse_bank == HALMAC_EFUSE_BANK_WIFI) {
-		pr_err("Undefined BT bank\n");
-		return HALMAC_RET_EFUSE_BANK_INCORRECT;
-	}
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait event(dump efuse)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	if (halmac_query_efuse_curr_state_88xx(halmac_adapter) !=
-	    HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Not idle state(dump efuse)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	status = halmac_func_switch_efuse_bank_88xx(halmac_adapter,
-						    halmac_efuse_bank);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_func_switch_efuse_bank error = %x\n", status);
-		return status;
-	}
-
-	status = halmac_read_hw_efuse_88xx(halmac_adapter, 0, bt_efuse_map_size,
-					   bt_efuse_map);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_read_hw_efuse_88xx error = %x\n", status);
-		return status;
-	}
-
-	if (halmac_transition_efuse_state_88xx(
-		    halmac_adapter, HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_write_efuse_bt_88xx() - write "BT physical" efuse offset
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : offset
- * @halmac_value : Write value
- * @bt_efuse_map : bt efuse map
- * Author : Soar
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_write_efuse_bt_88xx(struct halmac_adapter *halmac_adapter,
-			   u32 halmac_offset, u8 halmac_value,
-			   enum halmac_efuse_bank halmac_efuse_bank)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.efuse_state_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_WRITE_EFUSE_BT);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s ==========>\n", __func__);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"offset : %X value : %X Bank : %X\n", halmac_offset,
-			halmac_value, halmac_efuse_bank);
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait/Rcvd event(dump efuse)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	if (halmac_query_efuse_curr_state_88xx(halmac_adapter) !=
-	    HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Not idle state(dump efuse)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	if (halmac_offset >= halmac_adapter->hw_config_info.efuse_size) {
-		pr_err("Offset is too large\n");
-		return HALMAC_RET_EFUSE_SIZE_INCORRECT;
-	}
-
-	if (halmac_efuse_bank > HALMAC_EFUSE_BANK_MAX ||
-	    halmac_efuse_bank == HALMAC_EFUSE_BANK_WIFI) {
-		pr_err("Undefined BT bank\n");
-		return HALMAC_RET_EFUSE_BANK_INCORRECT;
-	}
-
-	status = halmac_func_switch_efuse_bank_88xx(halmac_adapter,
-						    halmac_efuse_bank);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_func_switch_efuse_bank error = %x\n", status);
-		return status;
-	}
-
-	status = halmac_func_write_efuse_88xx(halmac_adapter, halmac_offset,
-					      halmac_value);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_func_write_efuse error = %x\n", status);
-		return status;
-	}
-
-	if (halmac_transition_efuse_state_88xx(
-		    halmac_adapter, HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_get_efuse_available_size_88xx() - get efuse available size
- * @halmac_adapter : the adapter of halmac
- * @halmac_size : physical efuse available size
- * Author : Soar
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_get_efuse_available_size_88xx(struct halmac_adapter *halmac_adapter,
-				     u32 *halmac_size)
-{
-	enum halmac_ret_status status;
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	status = halmac_dump_logical_efuse_map_88xx(halmac_adapter,
-						    HALMAC_EFUSE_R_DRV);
-
-	if (status != HALMAC_RET_SUCCESS)
-		return status;
-
-	*halmac_size = halmac_adapter->hw_config_info.efuse_size -
-		       HALMAC_PROTECTED_EFUSE_SIZE_88XX -
-		       halmac_adapter->efuse_end;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_get_efuse_size_88xx() - get "physical" efuse size
- * @halmac_adapter : the adapter of halmac
- * @halmac_size : physical efuse size
- * Author : Ivan Lin/KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_get_efuse_size_88xx(struct halmac_adapter *halmac_adapter,
-			   u32 *halmac_size)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_GET_EFUSE_SIZE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	*halmac_size = halmac_adapter->hw_config_info.efuse_size;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_get_logical_efuse_size_88xx() - get "logical" efuse size
- * @halmac_adapter : the adapter of halmac
- * @halmac_size : logical efuse size
- * Author : Ivan Lin/KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_get_logical_efuse_size_88xx(struct halmac_adapter *halmac_adapter,
-				   u32 *halmac_size)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_GET_LOGICAL_EFUSE_SIZE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	*halmac_size = halmac_adapter->hw_config_info.eeprom_size;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_dump_logical_efuse_map_88xx() - dump "logical" efuse map
- * @halmac_adapter : the adapter of halmac
- * @cfg : dump efuse method
- * Author : Soar
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_dump_logical_efuse_map_88xx(struct halmac_adapter *halmac_adapter,
-				   enum halmac_efuse_read_cfg cfg)
-{
-	u8 *eeprom_map = NULL;
-	u32 eeprom_size = halmac_adapter->hw_config_info.eeprom_size;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.efuse_state_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_DUMP_LOGICAL_EFUSE_MAP);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s ==========>cfg = %d\n", __func__, cfg);
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait/Rcvd event(dump efuse)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	if (halmac_query_efuse_curr_state_88xx(halmac_adapter) !=
-	    HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Not idle state(dump efuse)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	if (halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_OFF)
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_WARNING,
-				"[WARN]Dump logical efuse in suspend mode\n");
-
-	*process_status = HALMAC_CMD_PROCESS_IDLE;
-	halmac_adapter->event_trigger.logical_efuse_map = 1;
-
-	status = halmac_func_switch_efuse_bank_88xx(halmac_adapter,
-						    HALMAC_EFUSE_BANK_WIFI);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_func_switch_efuse_bank error = %x\n", status);
-		return status;
-	}
-
-	status = halmac_dump_efuse_88xx(halmac_adapter, cfg);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_eeprom_parser_88xx error = %x\n", status);
-		return status;
-	}
-
-	if (halmac_adapter->hal_efuse_map_valid) {
-		*process_status = HALMAC_CMD_PROCESS_DONE;
-
-		eeprom_map = kzalloc(eeprom_size, GFP_KERNEL);
-		if (!eeprom_map) {
-			/* out of memory */
-			return HALMAC_RET_MALLOC_FAIL;
-		}
-		memset(eeprom_map, 0xFF, eeprom_size);
-
-		if (halmac_eeprom_parser_88xx(halmac_adapter,
-					      halmac_adapter->hal_efuse_map,
-					      eeprom_map) != HALMAC_RET_SUCCESS) {
-			kfree(eeprom_map);
-			return HALMAC_RET_EEPROM_PARSING_FAIL;
-		}
-
-		PLATFORM_EVENT_INDICATION(
-			driver_adapter, HALMAC_FEATURE_DUMP_LOGICAL_EFUSE,
-			*process_status, eeprom_map, eeprom_size);
-		halmac_adapter->event_trigger.logical_efuse_map = 0;
-
-		kfree(eeprom_map);
-	}
-
-	if (halmac_transition_efuse_state_88xx(
-		    halmac_adapter, HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_read_logical_efuse_88xx() - read logical efuse map 1 byte
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : offset
- * @value : 1 byte efuse value
- * Author : Soar
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_read_logical_efuse_88xx(struct halmac_adapter *halmac_adapter,
-			       u32 halmac_offset, u8 *value)
-{
-	u8 *eeprom_map = NULL;
-	u32 eeprom_size = halmac_adapter->hw_config_info.eeprom_size;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.efuse_state_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_READ_LOGICAL_EFUSE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (halmac_offset >= eeprom_size) {
-		pr_err("Offset is too large\n");
-		return HALMAC_RET_EFUSE_SIZE_INCORRECT;
-	}
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait/Rcvd event(dump efuse)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-	if (halmac_query_efuse_curr_state_88xx(halmac_adapter) !=
-	    HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Not idle state(dump efuse)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	status = halmac_func_switch_efuse_bank_88xx(halmac_adapter,
-						    HALMAC_EFUSE_BANK_WIFI);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_func_switch_efuse_bank error = %x\n", status);
-		return status;
-	}
-
-	eeprom_map = kzalloc(eeprom_size, GFP_KERNEL);
-	if (!eeprom_map) {
-		/* out of memory */
-		return HALMAC_RET_MALLOC_FAIL;
-	}
-	memset(eeprom_map, 0xFF, eeprom_size);
-
-	status = halmac_read_logical_efuse_map_88xx(halmac_adapter, eeprom_map);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_read_logical_efuse_map error = %x\n", status);
-		kfree(eeprom_map);
-		return status;
-	}
-
-	*value = *(eeprom_map + halmac_offset);
-
-	if (halmac_transition_efuse_state_88xx(
-		    halmac_adapter, HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) !=
-	    HALMAC_RET_SUCCESS) {
-		kfree(eeprom_map);
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	kfree(eeprom_map);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_write_logical_efuse_88xx() - write "logical" efuse offset
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : offset
- * @halmac_value : value
- * Author : Soar
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_write_logical_efuse_88xx(struct halmac_adapter *halmac_adapter,
-				u32 halmac_offset, u8 halmac_value)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.efuse_state_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_WRITE_LOGICAL_EFUSE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (halmac_offset >= halmac_adapter->hw_config_info.eeprom_size) {
-		pr_err("Offset is too large\n");
-		return HALMAC_RET_EFUSE_SIZE_INCORRECT;
-	}
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait/Rcvd event(dump efuse)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	if (halmac_query_efuse_curr_state_88xx(halmac_adapter) !=
-	    HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Not idle state(dump efuse)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	status = halmac_func_switch_efuse_bank_88xx(halmac_adapter,
-						    HALMAC_EFUSE_BANK_WIFI);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_func_switch_efuse_bank error = %x\n", status);
-		return status;
-	}
-
-	status = halmac_func_write_logical_efuse_88xx(
-		halmac_adapter, halmac_offset, halmac_value);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_write_logical_efuse error = %x\n", status);
-		return status;
-	}
-
-	if (halmac_transition_efuse_state_88xx(
-		    halmac_adapter, HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_pg_efuse_by_map_88xx() - pg logical efuse by map
- * @halmac_adapter : the adapter of halmac
- * @pg_efuse_info : efuse map information
- * @cfg : dump efuse method
- * Author : Soar
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_pg_efuse_by_map_88xx(struct halmac_adapter *halmac_adapter,
-			    struct halmac_pg_efuse_info *pg_efuse_info,
-			    enum halmac_efuse_read_cfg cfg)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.efuse_state_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PG_EFUSE_BY_MAP);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (pg_efuse_info->efuse_map_size !=
-	    halmac_adapter->hw_config_info.eeprom_size) {
-		pr_err("efuse_map_size is incorrect, should be %d bytes\n",
-		       halmac_adapter->hw_config_info.eeprom_size);
-		return HALMAC_RET_EFUSE_SIZE_INCORRECT;
-	}
-
-	if ((pg_efuse_info->efuse_map_size & 0xF) > 0) {
-		pr_err("efuse_map_size should be multiple of 16\n");
-		return HALMAC_RET_EFUSE_SIZE_INCORRECT;
-	}
-
-	if (pg_efuse_info->efuse_mask_size !=
-	    pg_efuse_info->efuse_map_size >> 4) {
-		pr_err("efuse_mask_size is incorrect, should be %d bytes\n",
-		       pg_efuse_info->efuse_map_size >> 4);
-		return HALMAC_RET_EFUSE_SIZE_INCORRECT;
-	}
-
-	if (!pg_efuse_info->efuse_map) {
-		pr_err("efuse_map is NULL\n");
-		return HALMAC_RET_NULL_POINTER;
-	}
-
-	if (!pg_efuse_info->efuse_mask) {
-		pr_err("efuse_mask is NULL\n");
-		return HALMAC_RET_NULL_POINTER;
-	}
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait/Rcvd event(dump efuse)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	if (halmac_query_efuse_curr_state_88xx(halmac_adapter) !=
-	    HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Not idle state(dump efuse)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	status = halmac_func_switch_efuse_bank_88xx(halmac_adapter,
-						    HALMAC_EFUSE_BANK_WIFI);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_func_switch_efuse_bank error = %x\n", status);
-		return status;
-	}
-
-	status = halmac_func_pg_efuse_by_map_88xx(halmac_adapter, pg_efuse_info,
-						  cfg);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_pg_efuse_by_map error = %x\n", status);
-		return status;
-	}
-
-	if (halmac_transition_efuse_state_88xx(
-		    halmac_adapter, HALMAC_EFUSE_CMD_CONSTRUCT_IDLE) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_EFUSE, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_get_c2h_info_88xx() - process halmac C2H packet
- * @halmac_adapter : the adapter of halmac
- * @halmac_buf : RX Packet pointer
- * @halmac_size : RX Packet size
- * Author : KaiYuan Chang/Ivan Lin
- *
- * Used to process c2h packet info from RX path. After receiving the packet,
- * user need to call this api and pass the packet pointer.
- *
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_get_c2h_info_88xx(struct halmac_adapter *halmac_adapter, u8 *halmac_buf,
-			 u32 halmac_size)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_GET_C2H_INFO);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	/* Check if it is C2H packet */
-	if (GET_RX_DESC_C2H(halmac_buf)) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-				"C2H packet, start parsing!\n");
-
-		status = halmac_parse_c2h_packet_88xx(halmac_adapter,
-						      halmac_buf, halmac_size);
-
-		if (status != HALMAC_RET_SUCCESS) {
-			pr_err("halmac_parse_c2h_packet_88xx error = %x\n",
-			       status);
-			return status;
-		}
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_cfg_fwlps_option_88xx(struct halmac_adapter *halmac_adapter,
-			     struct halmac_fwlps_option *lps_option)
-{
-	void *driver_adapter = NULL;
-	struct halmac_fwlps_option *hal_fwlps_option;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_FWLPS_OPTION);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	hal_fwlps_option = &halmac_adapter->fwlps_option;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	hal_fwlps_option->mode = lps_option->mode;
-	hal_fwlps_option->clk_request = lps_option->clk_request;
-	hal_fwlps_option->rlbm = lps_option->rlbm;
-	hal_fwlps_option->smart_ps = lps_option->smart_ps;
-	hal_fwlps_option->awake_interval = lps_option->awake_interval;
-	hal_fwlps_option->all_queue_uapsd = lps_option->all_queue_uapsd;
-	hal_fwlps_option->pwr_state = lps_option->pwr_state;
-	hal_fwlps_option->low_pwr_rx_beacon = lps_option->low_pwr_rx_beacon;
-	hal_fwlps_option->ant_auto_switch = lps_option->ant_auto_switch;
-	hal_fwlps_option->ps_allow_bt_high_priority =
-		lps_option->ps_allow_bt_high_priority;
-	hal_fwlps_option->protect_bcn = lps_option->protect_bcn;
-	hal_fwlps_option->silence_period = lps_option->silence_period;
-	hal_fwlps_option->fast_bt_connect = lps_option->fast_bt_connect;
-	hal_fwlps_option->two_antenna_en = lps_option->two_antenna_en;
-	hal_fwlps_option->adopt_user_setting = lps_option->adopt_user_setting;
-	hal_fwlps_option->drv_bcn_early_shift = lps_option->drv_bcn_early_shift;
-	hal_fwlps_option->enter_32K = lps_option->enter_32K;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_cfg_fwips_option_88xx(struct halmac_adapter *halmac_adapter,
-			     struct halmac_fwips_option *ips_option)
-{
-	void *driver_adapter = NULL;
-	struct halmac_fwips_option *ips_option_local;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_FWIPS_OPTION);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	ips_option_local = ips_option;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_enter_wowlan_88xx(struct halmac_adapter *halmac_adapter,
-			 struct halmac_wowlan_option *wowlan_option)
-{
-	void *driver_adapter = NULL;
-	struct halmac_wowlan_option *wowlan_option_local;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_ENTER_WOWLAN);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	wowlan_option_local = wowlan_option;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_leave_wowlan_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_LEAVE_WOWLAN);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_enter_ps_88xx(struct halmac_adapter *halmac_adapter,
-		     enum halmac_ps_state ps_state)
-{
-	u8 rpwm;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_ENTER_PS);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (ps_state == halmac_adapter->halmac_state.ps_state) {
-		pr_err("power state is already in PS State!!\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (ps_state == HALMAC_PS_STATE_LPS) {
-		status = halmac_send_h2c_set_pwr_mode_88xx(
-			halmac_adapter, &halmac_adapter->fwlps_option);
-		if (status != HALMAC_RET_SUCCESS) {
-			pr_err("halmac_send_h2c_set_pwr_mode_88xx error = %x!!\n",
-			       status);
-			return status;
-		}
-	} else if (ps_state == HALMAC_PS_STATE_IPS) {
-	}
-
-	halmac_adapter->halmac_state.ps_state = ps_state;
-
-	/* Enter 32K */
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		if (halmac_adapter->fwlps_option.enter_32K) {
-			rpwm = (u8)(((halmac_adapter->rpwm_record ^ (BIT(7))) |
-				     (BIT(0))) &
-				    0x81);
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_SDIO_HRPWM1,
-					   rpwm);
-			halmac_adapter->low_clk = true;
-		}
-	} else if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_USB) {
-		if (halmac_adapter->fwlps_option.enter_32K) {
-			rpwm = (u8)(((halmac_adapter->rpwm_record ^ (BIT(7))) |
-				     (BIT(0))) &
-				    0x81);
-			HALMAC_REG_WRITE_8(halmac_adapter, 0xFE58, rpwm);
-			halmac_adapter->low_clk = true;
-		}
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_leave_ps_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u8 rpwm, cpwm;
-	u32 counter;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	struct halmac_fwlps_option fw_lps_option;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_LEAVE_PS);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (halmac_adapter->halmac_state.ps_state == HALMAC_PS_STATE_ACT) {
-		pr_err("power state is already in active!!\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (halmac_adapter->low_clk) {
-		cpwm = HALMAC_REG_READ_8(halmac_adapter, REG_SDIO_HRPWM1);
-		rpwm = (u8)(
-			((halmac_adapter->rpwm_record ^ (BIT(7))) | (BIT(6))) &
-			0xC0);
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_SDIO_HRPWM1, rpwm);
-
-		cpwm = (u8)((cpwm ^ BIT(7)) & BIT(7));
-		counter = 100;
-		while (cpwm !=
-		       (HALMAC_REG_READ_8(halmac_adapter, REG_SDIO_HRPWM1) &
-			BIT(7))) {
-			usleep_range(50, 60);
-			counter--;
-			if (counter == 0)
-				return HALMAC_RET_CHANGE_PS_FAIL;
-		}
-		halmac_adapter->low_clk = false;
-	}
-
-	memcpy(&fw_lps_option, &halmac_adapter->fwlps_option,
-	       sizeof(struct halmac_fwlps_option));
-	fw_lps_option.mode = 0;
-
-	status = halmac_send_h2c_set_pwr_mode_88xx(halmac_adapter,
-						   &fw_lps_option);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_set_pwr_mode_88xx error!!=%x\n",
-		       status);
-		return status;
-	}
-
-	halmac_adapter->halmac_state.ps_state = HALMAC_PS_STATE_ACT;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * (debug API)halmac_h2c_lb_88xx() - send h2c loopback packet
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_h2c_lb_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_H2C_LB);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_debug_88xx() - dump information for debugging
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_debug_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u8 temp8 = 0;
-	u32 i = 0, temp32 = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DEBUG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		/* Dump CCCR, it needs new platform api */
-
-		/*Dump SDIO Local Register, use CMD52*/
-		for (i = 0x10250000; i < 0x102500ff; i++) {
-			temp8 = PLATFORM_SDIO_CMD52_READ(halmac_adapter, i);
-			HALMAC_RT_TRACE(
-				driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_debug: sdio[%x]=%x\n", i, temp8);
-		}
-
-		/*Dump MAC Register*/
-		for (i = 0x0000; i < 0x17ff; i++) {
-			temp8 = PLATFORM_SDIO_CMD52_READ(halmac_adapter, i);
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT,
-					DBG_DMESG, "halmac_debug: mac[%x]=%x\n",
-					i, temp8);
-		}
-
-		/*Check RX Fifo status*/
-		i = REG_RXFF_PTR_V1;
-		temp8 = PLATFORM_SDIO_CMD52_READ(halmac_adapter, i);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_debug: mac[%x]=%x\n", i, temp8);
-		i = REG_RXFF_WTR_V1;
-		temp8 = PLATFORM_SDIO_CMD52_READ(halmac_adapter, i);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_debug: mac[%x]=%x\n", i, temp8);
-		i = REG_RXFF_PTR_V1;
-		temp8 = PLATFORM_SDIO_CMD52_READ(halmac_adapter, i);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_debug: mac[%x]=%x\n", i, temp8);
-		i = REG_RXFF_WTR_V1;
-		temp8 = PLATFORM_SDIO_CMD52_READ(halmac_adapter, i);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_debug: mac[%x]=%x\n", i, temp8);
-	} else {
-		/*Dump MAC Register*/
-		for (i = 0x0000; i < 0x17fc; i += 4) {
-			temp32 = HALMAC_REG_READ_32(halmac_adapter, i);
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT,
-					DBG_DMESG, "halmac_debug: mac[%x]=%x\n",
-					i, temp32);
-		}
-
-		/*Check RX Fifo status*/
-		i = REG_RXFF_PTR_V1;
-		temp32 = HALMAC_REG_READ_32(halmac_adapter, i);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_debug: mac[%x]=%x\n", i, temp32);
-		i = REG_RXFF_WTR_V1;
-		temp32 = HALMAC_REG_READ_32(halmac_adapter, i);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_debug: mac[%x]=%x\n", i, temp32);
-		i = REG_RXFF_PTR_V1;
-		temp32 = HALMAC_REG_READ_32(halmac_adapter, i);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_debug: mac[%x]=%x\n", i, temp32);
-		i = REG_RXFF_WTR_V1;
-		temp32 = HALMAC_REG_READ_32(halmac_adapter, i);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"halmac_debug: mac[%x]=%x\n", i, temp32);
-	}
-
-	/*	TODO: Add check register code, including MAC CLK, CPU CLK */
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_parameter_88xx() - config parameter by FW
- * @halmac_adapter : the adapter of halmac
- * @para_info : cmd id, content
- * @full_fifo : parameter information
- *
- * If msk_en = true, the format of array is {reg_info, mask, value}.
- * If msk_en =_FAUSE, the format of array is {reg_info, value}
- * The format of reg_info is
- * reg_info[31]=rf_reg, 0: MAC_BB reg, 1: RF reg
- * reg_info[27:24]=rf_path, 0: path_A, 1: path_B
- * if rf_reg=0(MAC_BB reg), rf_path is meaningless.
- * ref_info[15:0]=offset
- *
- * Example: msk_en = false
- * {0x8100000a, 0x00001122}
- * =>Set RF register, path_B, offset 0xA to 0x00001122
- * {0x00000824, 0x11224433}
- * =>Set MAC_BB register, offset 0x800 to 0x11224433
- *
- * Note : full fifo mode only for init flow
- *
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_parameter_88xx(struct halmac_adapter *halmac_adapter,
-			  struct halmac_phy_parameter_info *para_info,
-			  u8 full_fifo)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status ret_status = HALMAC_RET_SUCCESS;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.cfg_para_state_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	if (halmac_adapter->fw_version.h2c_version < 4)
-		return HALMAC_RET_FW_NO_SUPPORT;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_PARAMETER);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	if (halmac_adapter->halmac_state.dlfw_state == HALMAC_DLFW_NONE) {
-		pr_err("%s Fail due to DLFW NONE!!\n", __func__);
-		return HALMAC_RET_DLFW_FAIL;
-	}
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait event(cfg para)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	if (halmac_query_cfg_para_curr_state_88xx(halmac_adapter) !=
-		    HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE &&
-	    halmac_query_cfg_para_curr_state_88xx(halmac_adapter) !=
-		    HALMAC_CFG_PARA_CMD_CONSTRUCT_CONSTRUCTING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Not idle state(cfg para)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	*process_status = HALMAC_CMD_PROCESS_IDLE;
-
-	ret_status = halmac_send_h2c_phy_parameter_88xx(halmac_adapter,
-							para_info, full_fifo);
-
-	if (ret_status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_phy_parameter_88xx Fail!! = %x\n",
-		       ret_status);
-		return ret_status;
-	}
-
-	return ret_status;
-}
-
-/**
- * halmac_update_packet_88xx() - send specific packet to FW
- * @halmac_adapter : the adapter of halmac
- * @pkt_id : packet id, to know the purpose of this packet
- * @pkt : packet
- * @pkt_size : packet size
- *
- * Note : TX_DESC is not included in the pkt
- *
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_update_packet_88xx(struct halmac_adapter *halmac_adapter,
-			  enum halmac_packet_id pkt_id, u8 *pkt, u32 pkt_size)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.update_packet_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	if (halmac_adapter->fw_version.h2c_version < 4)
-		return HALMAC_RET_FW_NO_SUPPORT;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_UPDATE_PACKET);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait event(update_packet)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	*process_status = HALMAC_CMD_PROCESS_SENDING;
-
-	status = halmac_send_h2c_update_packet_88xx(halmac_adapter, pkt_id, pkt,
-						    pkt_size);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_update_packet_88xx packet = %x,  fail = %x!!\n",
-		       pkt_id, status);
-		return status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_bcn_ie_filter_88xx(struct halmac_adapter *halmac_adapter,
-			  struct halmac_bcn_ie_info *bcn_ie_info)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	if (halmac_adapter->fw_version.h2c_version < 4)
-		return HALMAC_RET_FW_NO_SUPPORT;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_BCN_IE_FILTER);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	status = halmac_send_h2c_update_bcn_parse_info_88xx(halmac_adapter,
-							    bcn_ie_info);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_update_bcn_parse_info_88xx fail = %x\n",
-		       status);
-		return status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_update_datapack_88xx(struct halmac_adapter *halmac_adapter,
-			    enum halmac_data_type halmac_data_type,
-			    struct halmac_phy_parameter_info *para_info)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	if (halmac_adapter->fw_version.h2c_version < 4)
-		return HALMAC_RET_FW_NO_SUPPORT;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_run_datapack_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_data_type halmac_data_type)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status ret_status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	if (halmac_adapter->fw_version.h2c_version < 4)
-		return HALMAC_RET_FW_NO_SUPPORT;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_RUN_DATAPACK);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	ret_status = halmac_send_h2c_run_datapack_88xx(halmac_adapter,
-						       halmac_data_type);
-
-	if (ret_status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_run_datapack_88xx Fail, datatype = %x, status = %x!!\n",
-		       halmac_data_type, ret_status);
-		return ret_status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"halmac_update_datapack_88xx <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_drv_info_88xx() - config driver info
- * @halmac_adapter : the adapter of halmac
- * @halmac_drv_info : driver information selection
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_drv_info_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_drv_info halmac_drv_info)
-{
-	u8 drv_info_size = 0;
-	u8 phy_status_en = 0;
-	u8 sniffer_en = 0;
-	u8 plcp_hdr_en = 0;
-	u32 value32;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_DRV_INFO);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"halmac_cfg_drv_info = %d\n", halmac_drv_info);
-
-	switch (halmac_drv_info) {
-	case HALMAC_DRV_INFO_NONE:
-		drv_info_size = 0;
-		phy_status_en = 0;
-		sniffer_en = 0;
-		plcp_hdr_en = 0;
-		break;
-	case HALMAC_DRV_INFO_PHY_STATUS:
-		drv_info_size = 4;
-		phy_status_en = 1;
-		sniffer_en = 0;
-		plcp_hdr_en = 0;
-		break;
-	case HALMAC_DRV_INFO_PHY_SNIFFER:
-		drv_info_size = 5; /* phy status 4byte, sniffer info 1byte */
-		phy_status_en = 1;
-		sniffer_en = 1;
-		plcp_hdr_en = 0;
-		break;
-	case HALMAC_DRV_INFO_PHY_PLCP:
-		drv_info_size = 6; /* phy status 4byte, plcp header 2byte */
-		phy_status_en = 1;
-		sniffer_en = 0;
-		plcp_hdr_en = 1;
-		break;
-	default:
-		status = HALMAC_RET_SW_CASE_NOT_SUPPORT;
-		pr_err("%s error = %x\n", __func__, status);
-		return status;
-	}
-
-	if (halmac_adapter->txff_allocation.rx_fifo_expanding_mode !=
-	    HALMAC_RX_FIFO_EXPANDING_MODE_DISABLE)
-		drv_info_size = 0xF;
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_RX_DRVINFO_SZ, drv_info_size);
-
-	halmac_adapter->drv_info_size = drv_info_size;
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_RCR);
-	value32 = (value32 & (~BIT_APP_PHYSTS));
-	if (phy_status_en == 1)
-		value32 = value32 | BIT_APP_PHYSTS;
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_RCR, value32);
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter,
-				     REG_WMAC_OPTION_FUNCTION + 4);
-	value32 = (value32 & (~(BIT(8) | BIT(9))));
-	if (sniffer_en == 1)
-		value32 = value32 | BIT(9);
-	if (plcp_hdr_en == 1)
-		value32 = value32 | BIT(8);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_WMAC_OPTION_FUNCTION + 4,
-			    value32);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_send_bt_coex_88xx(struct halmac_adapter *halmac_adapter, u8 *bt_buf,
-			 u32 bt_size, u8 ack)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status ret_status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_SEND_BT_COEX);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	ret_status = halmac_send_bt_coex_cmd_88xx(halmac_adapter, bt_buf,
-						  bt_size, ack);
-
-	if (ret_status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_bt_coex_cmd_88xx Fail = %x!!\n",
-		       ret_status);
-		return ret_status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * (debug API)halmac_verify_platform_api_88xx() - verify platform api
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_verify_platform_api_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status ret_status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_VERIFY_PLATFORM_API);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	ret_status = halmac_verify_io_88xx(halmac_adapter);
-
-	if (ret_status != HALMAC_RET_SUCCESS)
-		return ret_status;
-
-	if (halmac_adapter->txff_allocation.la_mode != HALMAC_LA_MODE_FULL)
-		ret_status = halmac_verify_send_rsvd_page_88xx(halmac_adapter);
-
-	if (ret_status != HALMAC_RET_SUCCESS)
-		return ret_status;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return ret_status;
-}
-
-enum halmac_ret_status
-halmac_send_original_h2c_88xx(struct halmac_adapter *halmac_adapter,
-			      u8 *original_h2c, u16 *seq, u8 ack)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_SEND_ORIGINAL_H2C);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	status = halmac_func_send_original_h2c_88xx(halmac_adapter,
-						    original_h2c, seq, ack);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_original_h2c FAIL = %x!!\n", status);
-		return status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_timer_2s_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_fill_txdesc_check_sum_88xx() -  fill in tx desc check sum
- * @halmac_adapter : the adapter of halmac
- * @cur_desc : tx desc packet
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_fill_txdesc_check_sum_88xx(struct halmac_adapter *halmac_adapter,
-				  u8 *cur_desc)
-{
-	u16 chk_result = 0;
-	u16 *data = (u16 *)NULL;
-	u32 i;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_FILL_TXDESC_CHECKSUM);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (!cur_desc) {
-		pr_err("%s NULL PTR", __func__);
-		return HALMAC_RET_NULL_POINTER;
-	}
-
-	SET_TX_DESC_TXDESC_CHECKSUM(cur_desc, 0x0000);
-
-	data = (u16 *)(cur_desc);
-
-	/* HW clculates only 32byte */
-	for (i = 0; i < 8; i++)
-		chk_result ^= (*(data + 2 * i) ^ *(data + (2 * i + 1)));
-
-	SET_TX_DESC_TXDESC_CHECKSUM(cur_desc, chk_result);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_dump_fifo_88xx() - dump fifo data
- * @halmac_adapter : the adapter of halmac
- * @halmac_fifo_sel : FIFO selection
- * @halmac_start_addr : start address of selected FIFO
- * @halmac_fifo_dump_size : dump size of selected FIFO
- * @fifo_map : FIFO data
- *
- * Note : before dump fifo, user need to call halmac_get_fifo_size to
- * get fifo size. Then input this size to halmac_dump_fifo.
- *
- * Author : Ivan Lin/KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_dump_fifo_88xx(struct halmac_adapter *halmac_adapter,
-		      enum hal_fifo_sel halmac_fifo_sel, u32 halmac_start_addr,
-		      u32 halmac_fifo_dump_size, u8 *fifo_map)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DUMP_FIFO);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (halmac_fifo_sel == HAL_FIFO_SEL_TX &&
-	    (halmac_start_addr + halmac_fifo_dump_size) >
-		    halmac_adapter->hw_config_info.tx_fifo_size) {
-		pr_err("TX fifo dump size is too large\n");
-		return HALMAC_RET_DUMP_FIFOSIZE_INCORRECT;
-	}
-
-	if (halmac_fifo_sel == HAL_FIFO_SEL_RX &&
-	    (halmac_start_addr + halmac_fifo_dump_size) >
-		    halmac_adapter->hw_config_info.rx_fifo_size) {
-		pr_err("RX fifo dump size is too large\n");
-		return HALMAC_RET_DUMP_FIFOSIZE_INCORRECT;
-	}
-
-	if ((halmac_fifo_dump_size & (4 - 1)) != 0) {
-		pr_err("halmac_fifo_dump_size shall 4byte align\n");
-		return HALMAC_RET_DUMP_FIFOSIZE_INCORRECT;
-	}
-
-	if (!fifo_map) {
-		pr_err("fifo_map address is NULL\n");
-		return HALMAC_RET_NULL_POINTER;
-	}
-
-	status = halmac_buffer_read_88xx(halmac_adapter, halmac_start_addr,
-					 halmac_fifo_dump_size, halmac_fifo_sel,
-					 fifo_map);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_buffer_read_88xx error = %x\n", status);
-		return status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_get_fifo_size_88xx() - get fifo size
- * @halmac_adapter : the adapter of halmac
- * @halmac_fifo_sel : FIFO selection
- * Author : Ivan Lin/KaiYuan Chang
- * Return : u32
- * More details of status code can be found in prototype document
- */
-u32 halmac_get_fifo_size_88xx(struct halmac_adapter *halmac_adapter,
-			      enum hal_fifo_sel halmac_fifo_sel)
-{
-	u32 fifo_size = 0;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_GET_FIFO_SIZE);
-
-	if (halmac_fifo_sel == HAL_FIFO_SEL_TX)
-		fifo_size = halmac_adapter->hw_config_info.tx_fifo_size;
-	else if (halmac_fifo_sel == HAL_FIFO_SEL_RX)
-		fifo_size = halmac_adapter->hw_config_info.rx_fifo_size;
-	else if (halmac_fifo_sel == HAL_FIFO_SEL_RSVD_PAGE)
-		fifo_size =
-			((halmac_adapter->hw_config_info.tx_fifo_size >> 7) -
-			 halmac_adapter->txff_allocation.rsvd_pg_bndy)
-			<< 7;
-	else if (halmac_fifo_sel == HAL_FIFO_SEL_REPORT)
-		fifo_size = 65536;
-	else if (halmac_fifo_sel == HAL_FIFO_SEL_LLT)
-		fifo_size = 65536;
-
-	return fifo_size;
-}
-
-/**
- * halmac_cfg_txbf_88xx() - enable/disable specific user's txbf
- * @halmac_adapter : the adapter of halmac
- * @userid : su bfee userid = 0 or 1 to apply TXBF
- * @bw : the sounding bandwidth
- * @txbf_en : 0: disable TXBF, 1: enable TXBF
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_txbf_88xx(struct halmac_adapter *halmac_adapter, u8 userid,
-		     enum halmac_bw bw, u8 txbf_en)
-{
-	u16 temp42C = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_TXBF);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (txbf_en) {
-		switch (bw) {
-		case HALMAC_BW_80:
-			temp42C |= BIT_R_TXBF0_80M;
-			/* fall through */
-		case HALMAC_BW_40:
-			temp42C |= BIT_R_TXBF0_40M;
-			/* fall through */
-		case HALMAC_BW_20:
-			temp42C |= BIT_R_TXBF0_20M;
-			break;
-		default:
-			pr_err("%s invalid TXBF BW setting 0x%x of userid %d\n",
-			       __func__, bw, userid);
-			return HALMAC_RET_INVALID_SOUNDING_SETTING;
-		}
-	}
-
-	switch (userid) {
-	case 0:
-		temp42C |=
-			HALMAC_REG_READ_16(halmac_adapter, REG_TXBF_CTRL) &
-			~(BIT_R_TXBF0_20M | BIT_R_TXBF0_40M | BIT_R_TXBF0_80M);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_TXBF_CTRL, temp42C);
-		break;
-	case 1:
-		temp42C |=
-			HALMAC_REG_READ_16(halmac_adapter, REG_TXBF_CTRL + 2) &
-			~(BIT_R_TXBF0_20M | BIT_R_TXBF0_40M | BIT_R_TXBF0_80M);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_TXBF_CTRL + 2, temp42C);
-		break;
-	default:
-		pr_err("%s invalid userid %d\n", __func__, userid);
-		return HALMAC_RET_INVALID_SOUNDING_SETTING;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s, txbf_en = %x <==========\n", __func__,
-			txbf_en);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_mumimo_88xx() -config mumimo
- * @halmac_adapter : the adapter of halmac
- * @cfgmu : parameters to configure MU PPDU Tx/Rx
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_mumimo_88xx(struct halmac_adapter *halmac_adapter,
-		       struct halmac_cfg_mumimo_para *cfgmu)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	u8 i, idx, id0, id1, gid, mu_tab_sel;
-	u8 mu_tab_valid = 0;
-	u32 gid_valid[6] = {0};
-	u8 temp14C0 = 0;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_MUMIMO);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (cfgmu->role == HAL_BFEE) {
-		/*config MU BFEE*/
-		temp14C0 = HALMAC_REG_READ_8(halmac_adapter, REG_MU_TX_CTL) &
-			   ~BIT_MASK_R_MU_TABLE_VALID;
-		/*enable MU table 0 and 1, disable MU TX*/
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_MU_TX_CTL,
-				   (temp14C0 | BIT(0) | BIT(1)) & ~(BIT(7)));
-
-		/*config GID valid table and user position table*/
-		mu_tab_sel =
-			HALMAC_REG_READ_8(halmac_adapter, REG_MU_TX_CTL + 1) &
-			~(BIT(0) | BIT(1) | BIT(2));
-		for (i = 0; i < 2; i++) {
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_MU_TX_CTL + 1,
-					   mu_tab_sel | i);
-			HALMAC_REG_WRITE_32(halmac_adapter, REG_MU_STA_GID_VLD,
-					    cfgmu->given_gid_tab[i]);
-			HALMAC_REG_WRITE_32(halmac_adapter,
-					    REG_MU_STA_USER_POS_INFO,
-					    cfgmu->given_user_pos[i * 2]);
-			HALMAC_REG_WRITE_32(halmac_adapter,
-					    REG_MU_STA_USER_POS_INFO + 4,
-					    cfgmu->given_user_pos[i * 2 + 1]);
-		}
-	} else {
-		/*config MU BFER*/
-		if (!cfgmu->mu_tx_en) {
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_MU_TX_CTL,
-					   HALMAC_REG_READ_8(halmac_adapter,
-							     REG_MU_TX_CTL) &
-						   ~(BIT(7)));
-			HALMAC_RT_TRACE(
-				driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-				"%s disable mu tx <==========\n", __func__);
-			return HALMAC_RET_SUCCESS;
-		}
-
-		/*Transform BB grouping bitmap[14:0] to MAC GID_valid table*/
-		for (idx = 0; idx < 15; idx++) {
-			if (idx < 5) {
-				/*group_bitmap bit0~4, MU_STA0 with MUSTA1~5*/
-				id0 = 0;
-				id1 = (u8)(idx + 1);
-			} else if (idx < 9) {
-				/*group_bitmap bit5~8, MU_STA1 with MUSTA2~5*/
-				id0 = 1;
-				id1 = (u8)(idx - 3);
-			} else if (idx < 12) {
-				/*group_bitmap bit9~11, MU_STA2 with MUSTA3~5*/
-				id0 = 2;
-				id1 = (u8)(idx - 6);
-			} else if (idx < 14) {
-				/*group_bitmap bit12~13, MU_STA3 with MUSTA4~5*/
-				id0 = 3;
-				id1 = (u8)(idx - 8);
-			} else {
-				/*group_bitmap bit14, MU_STA4 with MUSTA5*/
-				id0 = 4;
-				id1 = (u8)(idx - 9);
-			}
-			if (cfgmu->grouping_bitmap & BIT(idx)) {
-				/*Pair 1*/
-				gid = (idx << 1) + 1;
-				gid_valid[id0] |= (BIT(gid));
-				gid_valid[id1] |= (BIT(gid));
-				/*Pair 2*/
-				gid += 1;
-				gid_valid[id0] |= (BIT(gid));
-				gid_valid[id1] |= (BIT(gid));
-			} else {
-				/*Pair 1*/
-				gid = (idx << 1) + 1;
-				gid_valid[id0] &= ~(BIT(gid));
-				gid_valid[id1] &= ~(BIT(gid));
-				/*Pair 2*/
-				gid += 1;
-				gid_valid[id0] &= ~(BIT(gid));
-				gid_valid[id1] &= ~(BIT(gid));
-			}
-		}
-
-		/*set MU STA GID valid TABLE*/
-		mu_tab_sel =
-			HALMAC_REG_READ_8(halmac_adapter, REG_MU_TX_CTL + 1) &
-			~(BIT(0) | BIT(1) | BIT(2));
-		for (idx = 0; idx < 6; idx++) {
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_MU_TX_CTL + 1,
-					   idx | mu_tab_sel);
-			HALMAC_REG_WRITE_32(halmac_adapter, REG_MU_STA_GID_VLD,
-					    gid_valid[idx]);
-		}
-
-		/*To validate the sounding successful MU STA and enable MU TX*/
-		for (i = 0; i < 6; i++) {
-			if (cfgmu->sounding_sts[i])
-				mu_tab_valid |= BIT(i);
-		}
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_MU_TX_CTL,
-				   mu_tab_valid | BIT(7));
-	}
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_sounding_88xx() - configure general sounding
- * @halmac_adapter : the adapter of halmac
- * @role : driver's role, BFer or BFee
- * @datarate : set ndpa tx rate if driver is BFer, or set csi response rate
- *             if driver is BFee
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_sounding_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_snd_role role,
-			 enum halmac_data_rate datarate)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_SOUNDING);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	switch (role) {
-	case HAL_BFER:
-		HALMAC_REG_WRITE_32(
-			halmac_adapter, REG_TXBF_CTRL,
-			HALMAC_REG_READ_32(halmac_adapter, REG_TXBF_CTRL) |
-				BIT_R_ENABLE_NDPA | BIT_USE_NDPA_PARAMETER |
-				BIT_R_EN_NDPA_INT | BIT_DIS_NDP_BFEN);
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_NDPA_RATE, datarate);
-		HALMAC_REG_WRITE_8(
-			halmac_adapter, REG_NDPA_OPT_CTRL,
-			HALMAC_REG_READ_8(halmac_adapter, REG_NDPA_OPT_CTRL) &
-				(~(BIT(0) | BIT(1))));
-		/*service file length 2 bytes; fix non-STA1 csi start offset */
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_SND_PTCL_CTRL + 1,
-				   0x2 | BIT(7));
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_SND_PTCL_CTRL + 2, 0x2);
-		break;
-	case HAL_BFEE:
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_SND_PTCL_CTRL, 0xDB);
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_SND_PTCL_CTRL + 3, 0x50);
-		/*use ndpa rx rate to decide csi rate*/
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_BBPSF_CTRL + 3,
-				   HALMAC_OFDM54 | BIT(6));
-		HALMAC_REG_WRITE_16(
-			halmac_adapter, REG_RRSR,
-			HALMAC_REG_READ_16(halmac_adapter, REG_RRSR) |
-				BIT(datarate));
-		/*RXFF do not accept BF Rpt Poll, avoid CSI crc error*/
-		HALMAC_REG_WRITE_8(
-			halmac_adapter, REG_RXFLTMAP1,
-			HALMAC_REG_READ_8(halmac_adapter, REG_RXFLTMAP1) &
-				(~(BIT(4))));
-		/*FWFF do not accept BF Rpt Poll, avoid CSI crc error*/
-		HALMAC_REG_WRITE_8(
-			halmac_adapter, REG_RXFLTMAP4,
-			HALMAC_REG_READ_8(halmac_adapter, REG_RXFLTMAP4) &
-				(~(BIT(4))));
-		break;
-	default:
-		pr_err("%s invalid role\n", __func__);
-		return HALMAC_RET_INVALID_SOUNDING_SETTING;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_del_sounding_88xx() - reset general sounding
- * @halmac_adapter : the adapter of halmac
- * @role : driver's role, BFer or BFee
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_del_sounding_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_snd_role role)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DEL_SOUNDING);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	switch (role) {
-	case HAL_BFER:
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_TXBF_CTRL + 3, 0);
-		break;
-	case HAL_BFEE:
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_SND_PTCL_CTRL, 0);
-		break;
-	default:
-		pr_err("%s invalid role\n", __func__);
-		return HALMAC_RET_INVALID_SOUNDING_SETTING;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_su_bfee_entry_init_88xx() - config SU beamformee's registers
- * @halmac_adapter : the adapter of halmac
- * @userid : SU bfee userid = 0 or 1 to be added
- * @paid : partial AID of this bfee
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_su_bfee_entry_init_88xx(struct halmac_adapter *halmac_adapter, u8 userid,
-			       u16 paid)
-{
-	u16 temp42C = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_SU_BFEE_ENTRY_INIT);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	switch (userid) {
-	case 0:
-		temp42C = HALMAC_REG_READ_16(halmac_adapter, REG_TXBF_CTRL) &
-			  ~(BIT_MASK_R_TXBF0_AID | BIT_R_TXBF0_20M |
-			    BIT_R_TXBF0_40M | BIT_R_TXBF0_80M);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_TXBF_CTRL,
-				    temp42C | paid);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_ASSOCIATED_BFMEE_SEL,
-				    paid);
-		break;
-	case 1:
-		temp42C =
-			HALMAC_REG_READ_16(halmac_adapter, REG_TXBF_CTRL + 2) &
-			~(BIT_MASK_R_TXBF1_AID | BIT_R_TXBF0_20M |
-			  BIT_R_TXBF0_40M | BIT_R_TXBF0_80M);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_TXBF_CTRL + 2,
-				    temp42C | paid);
-		HALMAC_REG_WRITE_16(halmac_adapter,
-				    REG_ASSOCIATED_BFMEE_SEL + 2,
-				    paid | BIT(9));
-		break;
-	default:
-		pr_err("%s invalid userid %d\n", __func__,
-		       userid);
-		return HALMAC_RET_INVALID_SOUNDING_SETTING;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_su_bfee_entry_init_88xx() - config SU beamformer's registers
- * @halmac_adapter : the adapter of halmac
- * @su_bfer_init : parameters to configure SU BFER entry
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_su_bfer_entry_init_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_su_bfer_init_para *su_bfer_init)
-{
-	u16 mac_address_H;
-	u32 mac_address_L;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_SU_BFER_ENTRY_INIT);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	/* mac_address_L = bfer_address.address_l_h.address_low; */
-	/* mac_address_H = bfer_address.address_l_h.address_high; */
-
-	mac_address_L = le32_to_cpu(
-		su_bfer_init->bfer_address.address_l_h.le_address_low);
-	mac_address_H = le16_to_cpu(
-		su_bfer_init->bfer_address.address_l_h.le_address_high);
-
-	switch (su_bfer_init->userid) {
-	case 0:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_ASSOCIATED_BFMER0_INFO,
-				    mac_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter,
-				    REG_ASSOCIATED_BFMER0_INFO + 4,
-				    mac_address_H);
-		HALMAC_REG_WRITE_16(halmac_adapter,
-				    REG_ASSOCIATED_BFMER0_INFO + 6,
-				    su_bfer_init->paid);
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_TX_CSI_RPT_PARAM_BW20,
-				    su_bfer_init->csi_para);
-		break;
-	case 1:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_ASSOCIATED_BFMER1_INFO,
-				    mac_address_L);
-		HALMAC_REG_WRITE_16(halmac_adapter,
-				    REG_ASSOCIATED_BFMER1_INFO + 4,
-				    mac_address_H);
-		HALMAC_REG_WRITE_16(halmac_adapter,
-				    REG_ASSOCIATED_BFMER1_INFO + 6,
-				    su_bfer_init->paid);
-		HALMAC_REG_WRITE_16(halmac_adapter,
-				    REG_TX_CSI_RPT_PARAM_BW20 + 2,
-				    su_bfer_init->csi_para);
-		break;
-	default:
-		pr_err("%s invalid userid %d\n", __func__,
-		       su_bfer_init->userid);
-		return HALMAC_RET_INVALID_SOUNDING_SETTING;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_mu_bfee_entry_init_88xx() - config MU beamformee's registers
- * @halmac_adapter : the adapter of halmac
- * @mu_bfee_init : parameters to configure MU BFEE entry
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_mu_bfee_entry_init_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_mu_bfee_init_para *mu_bfee_init)
-{
-	u16 temp168X = 0, temp14C0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_MU_BFEE_ENTRY_INIT);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	temp168X |= mu_bfee_init->paid | BIT(9);
-	HALMAC_REG_WRITE_16(halmac_adapter, (0x1680 + mu_bfee_init->userid * 2),
-			    temp168X);
-
-	temp14C0 = HALMAC_REG_READ_16(halmac_adapter, REG_MU_TX_CTL) &
-		   ~(BIT(8) | BIT(9) | BIT(10));
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_MU_TX_CTL,
-			    temp14C0 | ((mu_bfee_init->userid - 2) << 8));
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_MU_STA_GID_VLD, 0);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_MU_STA_USER_POS_INFO,
-			    mu_bfee_init->user_position_l);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_MU_STA_USER_POS_INFO + 4,
-			    mu_bfee_init->user_position_h);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_mu_bfer_entry_init_88xx() - config MU beamformer's registers
- * @halmac_adapter : the adapter of halmac
- * @mu_bfer_init : parameters to configure MU BFER entry
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_mu_bfer_entry_init_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_mu_bfer_init_para *mu_bfer_init)
-{
-	u16 temp1680 = 0;
-	u16 mac_address_H;
-	u32 mac_address_L;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_MU_BFER_ENTRY_INIT);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	mac_address_L =
-	    le32_to_cpu(mu_bfer_init->bfer_address.address_l_h.le_address_low);
-	mac_address_H =
-	    le16_to_cpu(mu_bfer_init->bfer_address.address_l_h.le_address_high);
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_ASSOCIATED_BFMER0_INFO,
-			    mac_address_L);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_ASSOCIATED_BFMER0_INFO + 4,
-			    mac_address_H);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_ASSOCIATED_BFMER0_INFO + 6,
-			    mu_bfer_init->paid);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_TX_CSI_RPT_PARAM_BW20,
-			    mu_bfer_init->csi_para);
-
-	temp1680 = HALMAC_REG_READ_16(halmac_adapter, 0x1680) & 0xC000;
-	temp1680 |= mu_bfer_init->my_aid | (mu_bfer_init->csi_length_sel << 12);
-	HALMAC_REG_WRITE_16(halmac_adapter, 0x1680, temp1680);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_su_bfee_entry_del_88xx() - reset SU beamformee's registers
- * @halmac_adapter : the adapter of halmac
- * @userid : the SU BFee userid to be deleted
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_su_bfee_entry_del_88xx(struct halmac_adapter *halmac_adapter, u8 userid)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_SU_BFEE_ENTRY_DEL);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	switch (userid) {
-	case 0:
-		HALMAC_REG_WRITE_16(
-			halmac_adapter, REG_TXBF_CTRL,
-			HALMAC_REG_READ_16(halmac_adapter, REG_TXBF_CTRL) &
-				~(BIT_MASK_R_TXBF0_AID | BIT_R_TXBF0_20M |
-				  BIT_R_TXBF0_40M | BIT_R_TXBF0_80M));
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_ASSOCIATED_BFMEE_SEL,
-				    0);
-		break;
-	case 1:
-		HALMAC_REG_WRITE_16(
-			halmac_adapter, REG_TXBF_CTRL + 2,
-			HALMAC_REG_READ_16(halmac_adapter, REG_TXBF_CTRL + 2) &
-				~(BIT_MASK_R_TXBF1_AID | BIT_R_TXBF0_20M |
-				  BIT_R_TXBF0_40M | BIT_R_TXBF0_80M));
-		HALMAC_REG_WRITE_16(halmac_adapter,
-				    REG_ASSOCIATED_BFMEE_SEL + 2, 0);
-		break;
-	default:
-		pr_err("%s invalid userid %d\n", __func__,
-		       userid);
-		return HALMAC_RET_INVALID_SOUNDING_SETTING;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_su_bfee_entry_del_88xx() - reset SU beamformer's registers
- * @halmac_adapter : the adapter of halmac
- * @userid : the SU BFer userid to be deleted
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_su_bfer_entry_del_88xx(struct halmac_adapter *halmac_adapter, u8 userid)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_SU_BFER_ENTRY_DEL);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	switch (userid) {
-	case 0:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_ASSOCIATED_BFMER0_INFO,
-				    0);
-		HALMAC_REG_WRITE_32(halmac_adapter,
-				    REG_ASSOCIATED_BFMER0_INFO + 4, 0);
-		break;
-	case 1:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_ASSOCIATED_BFMER1_INFO,
-				    0);
-		HALMAC_REG_WRITE_32(halmac_adapter,
-				    REG_ASSOCIATED_BFMER1_INFO + 4, 0);
-		break;
-	default:
-		pr_err("%s invalid userid %d\n", __func__,
-		       userid);
-		return HALMAC_RET_INVALID_SOUNDING_SETTING;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_mu_bfee_entry_del_88xx() - reset MU beamformee's registers
- * @halmac_adapter : the adapter of halmac
- * @userid : the MU STA userid to be deleted
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_mu_bfee_entry_del_88xx(struct halmac_adapter *halmac_adapter, u8 userid)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_MU_BFEE_ENTRY_DEL);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_16(halmac_adapter, 0x1680 + userid * 2, 0);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_MU_TX_CTL,
-			   HALMAC_REG_READ_8(halmac_adapter, REG_MU_TX_CTL) &
-				   ~(BIT(userid - 2)));
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_mu_bfer_entry_del_88xx() -reset MU beamformer's registers
- * @halmac_adapter : the adapter of halmac
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_mu_bfer_entry_del_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_MU_BFER_ENTRY_DEL);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_ASSOCIATED_BFMER0_INFO, 0);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_ASSOCIATED_BFMER0_INFO + 4, 0);
-	HALMAC_REG_WRITE_16(halmac_adapter, 0x1680, 0);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_MU_TX_CTL, 0);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_add_ch_info_88xx() -add channel information
- * @halmac_adapter : the adapter of halmac
- * @ch_info : channel information
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_add_ch_info_88xx(struct halmac_adapter *halmac_adapter,
-			struct halmac_ch_info *ch_info)
-{
-	void *driver_adapter = NULL;
-	struct halmac_cs_info *ch_sw_info;
-	enum halmac_scan_cmd_construct_state state_scan;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	ch_sw_info = &halmac_adapter->ch_sw_info;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]%s ==========>\n", __func__);
-
-	if (halmac_adapter->halmac_state.dlfw_state != HALMAC_GEN_INFO_SENT) {
-		pr_err("[ERR]%s: gen_info is not send to FW!!!!\n", __func__);
-		return HALMAC_RET_GEN_INFO_NOT_SENT;
-	}
-
-	state_scan = halmac_query_scan_curr_state_88xx(halmac_adapter);
-	if (state_scan != HALMAC_SCAN_CMD_CONSTRUCT_BUFFER_CLEARED &&
-	    state_scan != HALMAC_SCAN_CMD_CONSTRUCT_CONSTRUCTING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_WARNING,
-				"[WARN]Scan machine fail(add ch info)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	if (!ch_sw_info->ch_info_buf) {
-		ch_sw_info->ch_info_buf =
-			kzalloc(HALMAC_EXTRA_INFO_BUFF_SIZE_88XX, GFP_KERNEL);
-		if (!ch_sw_info->ch_info_buf)
-			return HALMAC_RET_NULL_POINTER;
-		ch_sw_info->ch_info_buf_w = ch_sw_info->ch_info_buf;
-		ch_sw_info->buf_size = HALMAC_EXTRA_INFO_BUFF_SIZE_88XX;
-		ch_sw_info->avai_buf_size = HALMAC_EXTRA_INFO_BUFF_SIZE_88XX;
-		ch_sw_info->total_size = 0;
-		ch_sw_info->extra_info_en = 0;
-		ch_sw_info->ch_num = 0;
-	}
-
-	if (ch_sw_info->extra_info_en == 1) {
-		pr_err("[ERR]%s: construct sequence wrong!!\n", __func__);
-		return HALMAC_RET_CH_SW_SEQ_WRONG;
-	}
-
-	if (ch_sw_info->avai_buf_size < 4) {
-		pr_err("[ERR]%s: no available buffer!!\n", __func__);
-		return HALMAC_RET_CH_SW_NO_BUF;
-	}
-
-	if (halmac_transition_scan_state_88xx(
-		    halmac_adapter, HALMAC_SCAN_CMD_CONSTRUCT_CONSTRUCTING) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	CHANNEL_INFO_SET_CHANNEL(ch_sw_info->ch_info_buf_w, ch_info->channel);
-	CHANNEL_INFO_SET_PRI_CH_IDX(ch_sw_info->ch_info_buf_w,
-				    ch_info->pri_ch_idx);
-	CHANNEL_INFO_SET_BANDWIDTH(ch_sw_info->ch_info_buf_w, ch_info->bw);
-	CHANNEL_INFO_SET_TIMEOUT(ch_sw_info->ch_info_buf_w, ch_info->timeout);
-	CHANNEL_INFO_SET_ACTION_ID(ch_sw_info->ch_info_buf_w,
-				   ch_info->action_id);
-	CHANNEL_INFO_SET_CH_EXTRA_INFO(ch_sw_info->ch_info_buf_w,
-				       ch_info->extra_info);
-
-	ch_sw_info->avai_buf_size = ch_sw_info->avai_buf_size - 4;
-	ch_sw_info->total_size = ch_sw_info->total_size + 4;
-	ch_sw_info->ch_num++;
-	ch_sw_info->extra_info_en = ch_info->extra_info;
-	ch_sw_info->ch_info_buf_w = ch_sw_info->ch_info_buf_w + 4;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_add_extra_ch_info_88xx() -add extra channel information
- * @halmac_adapter : the adapter of halmac
- * @ch_extra_info : extra channel information
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_add_extra_ch_info_88xx(struct halmac_adapter *halmac_adapter,
-			      struct halmac_ch_extra_info *ch_extra_info)
-{
-	void *driver_adapter = NULL;
-	struct halmac_cs_info *ch_sw_info;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_ADD_EXTRA_CH_INFO);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	ch_sw_info = &halmac_adapter->ch_sw_info;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (!ch_sw_info->ch_info_buf) {
-		pr_err("%s: NULL==ch_sw_info->ch_info_buf!!\n", __func__);
-		return HALMAC_RET_CH_SW_SEQ_WRONG;
-	}
-
-	if (ch_sw_info->extra_info_en == 0) {
-		pr_err("%s: construct sequence wrong!!\n", __func__);
-		return HALMAC_RET_CH_SW_SEQ_WRONG;
-	}
-
-	if (ch_sw_info->avai_buf_size <
-	    (u32)(ch_extra_info->extra_info_size + 2)) {
-		/* +2: ch_extra_info_id, ch_extra_info, ch_extra_info_size
-		 * are totally 2Byte
-		 */
-		pr_err("%s: no available buffer!!\n", __func__);
-		return HALMAC_RET_CH_SW_NO_BUF;
-	}
-
-	if (halmac_query_scan_curr_state_88xx(halmac_adapter) !=
-	    HALMAC_SCAN_CMD_CONSTRUCT_CONSTRUCTING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Scan machine fail(add extra ch info)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	if (halmac_transition_scan_state_88xx(
-		    halmac_adapter, HALMAC_SCAN_CMD_CONSTRUCT_CONSTRUCTING) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	CH_EXTRA_INFO_SET_CH_EXTRA_INFO_ID(ch_sw_info->ch_info_buf_w,
-					   ch_extra_info->extra_action_id);
-	CH_EXTRA_INFO_SET_CH_EXTRA_INFO(ch_sw_info->ch_info_buf_w,
-					ch_extra_info->extra_info);
-	CH_EXTRA_INFO_SET_CH_EXTRA_INFO_SIZE(ch_sw_info->ch_info_buf_w,
-					     ch_extra_info->extra_info_size);
-	memcpy(ch_sw_info->ch_info_buf_w + 2, ch_extra_info->extra_info_data,
-	       ch_extra_info->extra_info_size);
-
-	ch_sw_info->avai_buf_size = ch_sw_info->avai_buf_size -
-				    (2 + ch_extra_info->extra_info_size);
-	ch_sw_info->total_size =
-		ch_sw_info->total_size + (2 + ch_extra_info->extra_info_size);
-	ch_sw_info->extra_info_en = ch_extra_info->extra_info;
-	ch_sw_info->ch_info_buf_w = ch_sw_info->ch_info_buf_w +
-				    (2 + ch_extra_info->extra_info_size);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_ctrl_ch_switch_88xx() -send channel switch cmd
- * @halmac_adapter : the adapter of halmac
- * @cs_option : channel switch config
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_ctrl_ch_switch_88xx(struct halmac_adapter *halmac_adapter,
-			   struct halmac_ch_switch_option *cs_option)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	enum halmac_scan_cmd_construct_state state_scan;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.scan_state_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	if (halmac_adapter->fw_version.h2c_version < 4)
-		return HALMAC_RET_FW_NO_SUPPORT;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CTRL_CH_SWITCH);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s  cs_option->switch_en = %d==========>\n", __func__,
-			cs_option->switch_en);
-
-	if (!cs_option->switch_en)
-		*process_status = HALMAC_CMD_PROCESS_IDLE;
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING ||
-	    *process_status == HALMAC_CMD_PROCESS_RCVD) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait event(ctrl ch switch)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	state_scan = halmac_query_scan_curr_state_88xx(halmac_adapter);
-	if (cs_option->switch_en) {
-		if (state_scan != HALMAC_SCAN_CMD_CONSTRUCT_CONSTRUCTING) {
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C,
-					DBG_DMESG,
-					"%s(on)  invalid in state %x\n",
-					__func__, state_scan);
-			return HALMAC_RET_ERROR_STATE;
-		}
-	} else {
-		if (state_scan != HALMAC_SCAN_CMD_CONSTRUCT_BUFFER_CLEARED) {
-			HALMAC_RT_TRACE(
-				driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-				"%s(off)  invalid in state %x\n", __func__,
-				state_scan);
-			return HALMAC_RET_ERROR_STATE;
-		}
-	}
-
-	status = halmac_func_ctrl_ch_switch_88xx(halmac_adapter, cs_option);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_ctrl_ch_switch FAIL = %x!!\n", status);
-		return status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_clear_ch_info_88xx() -clear channel information
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_clear_ch_info_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CLEAR_CH_INFO);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (halmac_query_scan_curr_state_88xx(halmac_adapter) ==
-	    HALMAC_SCAN_CMD_CONSTRUCT_H2C_SENT) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Scan machine fail(clear ch info)...\n");
-		return HALMAC_RET_ERROR_STATE;
-	}
-
-	if (halmac_transition_scan_state_88xx(
-		    halmac_adapter, HALMAC_SCAN_CMD_CONSTRUCT_BUFFER_CLEARED) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	kfree(halmac_adapter->ch_sw_info.ch_info_buf);
-	halmac_adapter->ch_sw_info.ch_info_buf = NULL;
-	halmac_adapter->ch_sw_info.ch_info_buf_w = NULL;
-	halmac_adapter->ch_sw_info.extra_info_en = 0;
-	halmac_adapter->ch_sw_info.buf_size = 0;
-	halmac_adapter->ch_sw_info.avai_buf_size = 0;
-	halmac_adapter->ch_sw_info.total_size = 0;
-	halmac_adapter->ch_sw_info.ch_num = 0;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_p2pps_88xx(struct halmac_adapter *halmac_adapter,
-					 struct halmac_p2pps *p2p_ps)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	if (halmac_adapter->fw_version.h2c_version < 6)
-		return HALMAC_RET_FW_NO_SUPPORT;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	status = halmac_func_p2pps_88xx(halmac_adapter, p2p_ps);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("[ERR]halmac_p2pps FAIL = %x!!\n", status);
-		return status;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_func_p2pps_88xx(struct halmac_adapter *halmac_adapter,
-		       struct halmac_p2pps *p2p_ps)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	struct halmac_api *halmac_api;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]halmac_p2pps !!\n");
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	P2PPS_SET_OFFLOAD_EN(h2c_buff, p2p_ps->offload_en);
-	P2PPS_SET_ROLE(h2c_buff, p2p_ps->role);
-	P2PPS_SET_CTWINDOW_EN(h2c_buff, p2p_ps->ctwindow_en);
-	P2PPS_SET_NOA_EN(h2c_buff, p2p_ps->noa_en);
-	P2PPS_SET_NOA_SEL(h2c_buff, p2p_ps->noa_sel);
-	P2PPS_SET_ALLSTASLEEP(h2c_buff, p2p_ps->all_sta_sleep);
-	P2PPS_SET_DISCOVERY(h2c_buff, p2p_ps->discovery);
-	P2PPS_SET_P2P_PORT_ID(h2c_buff, p2p_ps->p2p_port_id);
-	P2PPS_SET_P2P_GROUP(h2c_buff, p2p_ps->p2p_group);
-	P2PPS_SET_P2P_MACID(h2c_buff, p2p_ps->p2p_macid);
-
-	P2PPS_SET_CTWINDOW_LENGTH(h2c_buff, p2p_ps->ctwindow_length);
-
-	P2PPS_SET_NOA_DURATION_PARA(h2c_buff, p2p_ps->noa_duration_para);
-	P2PPS_SET_NOA_INTERVAL_PARA(h2c_buff, p2p_ps->noa_interval_para);
-	P2PPS_SET_NOA_START_TIME_PARA(h2c_buff, p2p_ps->noa_start_time_para);
-	P2PPS_SET_NOA_COUNT_PARA(h2c_buff, p2p_ps->noa_count_para);
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_P2PPS;
-	h2c_header_info.content_size = 24;
-	h2c_header_info.ack = false;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, false);
-
-	if (status != HALMAC_RET_SUCCESS)
-		pr_err("[ERR]halmac_send_h2c_p2pps_88xx Fail = %x!!\n", status);
-
-	return status;
-}
-
-/**
- * halmac_send_general_info_88xx() -send general information to FW
- * @halmac_adapter : the adapter of halmac
- * @general_info : general information
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_send_general_info_88xx(struct halmac_adapter *halmac_adapter,
-			      struct halmac_general_info *general_info)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	if (halmac_adapter->fw_version.h2c_version < 4)
-		return HALMAC_RET_FW_NO_SUPPORT;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_SEND_GENERAL_INFO);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (halmac_adapter->halmac_state.dlfw_state == HALMAC_DLFW_NONE) {
-		pr_err("%s Fail due to DLFW NONE!!\n", __func__);
-		return HALMAC_RET_DLFW_FAIL;
-	}
-
-	status = halmac_func_send_general_info_88xx(halmac_adapter,
-						    general_info);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_general_info error = %x\n", status);
-		return status;
-	}
-
-	if (halmac_adapter->halmac_state.dlfw_state == HALMAC_DLFW_DONE)
-		halmac_adapter->halmac_state.dlfw_state = HALMAC_GEN_INFO_SENT;
-
-	halmac_adapter->gen_info_valid = true;
-	memcpy(&halmac_adapter->general_info, general_info,
-	       sizeof(struct halmac_general_info));
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_start_iqk_88xx() -trigger FW IQK
- * @halmac_adapter : the adapter of halmac
- * @iqk_para : IQK parameter
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_start_iqk_88xx(struct halmac_adapter *halmac_adapter,
-		      struct halmac_iqk_para_ *iqk_para)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_num = 0;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.iqk_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_START_IQK);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait event(iqk)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	*process_status = HALMAC_CMD_PROCESS_SENDING;
-
-	IQK_SET_CLEAR(h2c_buff, iqk_para->clear);
-	IQK_SET_SEGMENT_IQK(h2c_buff, iqk_para->segment_iqk);
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_IQK;
-	h2c_header_info.content_size = 1;
-	h2c_header_info.ack = true;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_num);
-
-	halmac_adapter->halmac_state.iqk_set.seq_num = h2c_seq_num;
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_pkt_88xx Fail = %x!!\n", status);
-		return status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_ctrl_pwr_tracking_88xx() -trigger FW power tracking
- * @halmac_adapter : the adapter of halmac
- * @pwr_tracking_opt : power tracking option
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_ctrl_pwr_tracking_88xx(
-	struct halmac_adapter *halmac_adapter,
-	struct halmac_pwr_tracking_option *pwr_tracking_opt)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.power_tracking_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CTRL_PWR_TRACKING);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"halmac_start_iqk_88xx ==========>\n");
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait event(pwr tracking)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	*process_status = HALMAC_CMD_PROCESS_SENDING;
-
-	POWER_TRACKING_SET_TYPE(h2c_buff, pwr_tracking_opt->type);
-	POWER_TRACKING_SET_BBSWING_INDEX(h2c_buff,
-					 pwr_tracking_opt->bbswing_index);
-	POWER_TRACKING_SET_ENABLE_A(
-		h2c_buff,
-		pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_A].enable);
-	POWER_TRACKING_SET_TX_PWR_INDEX_A(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_A]
-				  .tx_pwr_index);
-	POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_A(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_A]
-				  .pwr_tracking_offset_value);
-	POWER_TRACKING_SET_TSSI_VALUE_A(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_A]
-				  .tssi_value);
-	POWER_TRACKING_SET_ENABLE_B(
-		h2c_buff,
-		pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_B].enable);
-	POWER_TRACKING_SET_TX_PWR_INDEX_B(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_B]
-				  .tx_pwr_index);
-	POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_B(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_B]
-				  .pwr_tracking_offset_value);
-	POWER_TRACKING_SET_TSSI_VALUE_B(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_B]
-				  .tssi_value);
-	POWER_TRACKING_SET_ENABLE_C(
-		h2c_buff,
-		pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_C].enable);
-	POWER_TRACKING_SET_TX_PWR_INDEX_C(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_C]
-				  .tx_pwr_index);
-	POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_C(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_C]
-				  .pwr_tracking_offset_value);
-	POWER_TRACKING_SET_TSSI_VALUE_C(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_C]
-				  .tssi_value);
-	POWER_TRACKING_SET_ENABLE_D(
-		h2c_buff,
-		pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_D].enable);
-	POWER_TRACKING_SET_TX_PWR_INDEX_D(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_D]
-				  .tx_pwr_index);
-	POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_D(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_D]
-				  .pwr_tracking_offset_value);
-	POWER_TRACKING_SET_TSSI_VALUE_D(
-		h2c_buff, pwr_tracking_opt->pwr_tracking_para[HALMAC_RF_PATH_D]
-				  .tssi_value);
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_POWER_TRACKING;
-	h2c_header_info.content_size = 20;
-	h2c_header_info.ack = true;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-
-	halmac_adapter->halmac_state.power_tracking_set.seq_num = h2c_seq_mum;
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_pkt_88xx Fail = %x!!\n", status);
-		return status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"halmac_start_iqk_88xx <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_query_status_88xx() -query the offload feature status
- * @halmac_adapter : the adapter of halmac
- * @feature_id : feature_id
- * @process_status : feature_status
- * @data : data buffer
- * @size : data size
- *
- * Note :
- * If user wants to know the data size, use can allocate zero
- * size buffer first. If this size less than the data size, halmac
- * will return  HALMAC_RET_BUFFER_TOO_SMALL. User need to
- * re-allocate data buffer with correct data size.
- *
- * Author : Ivan Lin/KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_query_status_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_feature_id feature_id,
-			 enum halmac_cmd_process_status *process_status,
-			 u8 *data, u32 *size)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_QUERY_STATE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	if (!process_status) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-				"null pointer!!\n");
-		return HALMAC_RET_NULL_POINTER;
-	}
-
-	switch (feature_id) {
-	case HALMAC_FEATURE_CFG_PARA:
-		status = halmac_query_cfg_para_status_88xx(
-			halmac_adapter, process_status, data, size);
-		break;
-	case HALMAC_FEATURE_DUMP_PHYSICAL_EFUSE:
-		status = halmac_query_dump_physical_efuse_status_88xx(
-			halmac_adapter, process_status, data, size);
-		break;
-	case HALMAC_FEATURE_DUMP_LOGICAL_EFUSE:
-		status = halmac_query_dump_logical_efuse_status_88xx(
-			halmac_adapter, process_status, data, size);
-		break;
-	case HALMAC_FEATURE_CHANNEL_SWITCH:
-		status = halmac_query_channel_switch_status_88xx(
-			halmac_adapter, process_status, data, size);
-		break;
-	case HALMAC_FEATURE_UPDATE_PACKET:
-		status = halmac_query_update_packet_status_88xx(
-			halmac_adapter, process_status, data, size);
-		break;
-	case HALMAC_FEATURE_IQK:
-		status = halmac_query_iqk_status_88xx(
-			halmac_adapter, process_status, data, size);
-		break;
-	case HALMAC_FEATURE_POWER_TRACKING:
-		status = halmac_query_power_tracking_status_88xx(
-			halmac_adapter, process_status, data, size);
-		break;
-	case HALMAC_FEATURE_PSD:
-		status = halmac_query_psd_status_88xx(
-			halmac_adapter, process_status, data, size);
-		break;
-	default:
-		pr_err("%s invalid feature id %d\n", __func__,
-		       feature_id);
-		return HALMAC_RET_INVALID_FEATURE_ID;
-	}
-
-	return status;
-}
-
-/**
- * halmac_reset_feature_88xx() -reset async api cmd status
- * @halmac_adapter : the adapter of halmac
- * @feature_id : feature_id
- * Author : Ivan Lin/KaiYuan Chang
- * Return : enum halmac_ret_status.
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reset_feature_88xx(struct halmac_adapter *halmac_adapter,
-			  enum halmac_feature_id feature_id)
-{
-	void *driver_adapter = NULL;
-	struct halmac_state *state = &halmac_adapter->halmac_state;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_RESET_FEATURE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	switch (feature_id) {
-	case HALMAC_FEATURE_CFG_PARA:
-		state->cfg_para_state_set.process_status =
-			HALMAC_CMD_PROCESS_IDLE;
-		state->cfg_para_state_set.cfg_para_cmd_construct_state =
-			HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE;
-		break;
-	case HALMAC_FEATURE_DUMP_PHYSICAL_EFUSE:
-	case HALMAC_FEATURE_DUMP_LOGICAL_EFUSE:
-		state->efuse_state_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-		state->efuse_state_set.efuse_cmd_construct_state =
-			HALMAC_EFUSE_CMD_CONSTRUCT_IDLE;
-		break;
-	case HALMAC_FEATURE_CHANNEL_SWITCH:
-		state->scan_state_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-		state->scan_state_set.scan_cmd_construct_state =
-			HALMAC_SCAN_CMD_CONSTRUCT_IDLE;
-		break;
-	case HALMAC_FEATURE_UPDATE_PACKET:
-		state->update_packet_set.process_status =
-			HALMAC_CMD_PROCESS_IDLE;
-		break;
-	case HALMAC_FEATURE_ALL:
-		state->cfg_para_state_set.process_status =
-			HALMAC_CMD_PROCESS_IDLE;
-		state->cfg_para_state_set.cfg_para_cmd_construct_state =
-			HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE;
-		state->efuse_state_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-		state->efuse_state_set.efuse_cmd_construct_state =
-			HALMAC_EFUSE_CMD_CONSTRUCT_IDLE;
-		state->scan_state_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-		state->scan_state_set.scan_cmd_construct_state =
-			HALMAC_SCAN_CMD_CONSTRUCT_IDLE;
-		state->update_packet_set.process_status =
-			HALMAC_CMD_PROCESS_IDLE;
-		break;
-	default:
-		pr_err("%s invalid feature id %d\n", __func__,
-		       feature_id);
-		return HALMAC_RET_INVALID_FEATURE_ID;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_check_fw_status_88xx() -check fw status
- * @halmac_adapter : the adapter of halmac
- * @fw_status : fw status
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_check_fw_status_88xx(struct halmac_adapter *halmac_adapter,
-			    bool *fw_status)
-{
-	u32 value32 = 0, value32_backup = 0, i = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CHECK_FW_STATUS);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	value32 = PLATFORM_REG_READ_32(driver_adapter, REG_FW_DBG6);
-
-	if (value32 != 0) {
-		pr_err("halmac_check_fw_status REG_FW_DBG6 !=0\n");
-		*fw_status = false;
-		return status;
-	}
-
-	value32_backup = PLATFORM_REG_READ_32(driver_adapter, REG_FW_DBG7);
-
-	for (i = 0; i <= 10; i++) {
-		value32 = PLATFORM_REG_READ_32(driver_adapter, REG_FW_DBG7);
-		if (value32_backup != value32)
-			break;
-
-		if (i == 10) {
-			pr_err("halmac_check_fw_status Polling FW PC fail\n");
-			*fw_status = false;
-			return status;
-		}
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_dump_fw_dmem_88xx(struct halmac_adapter *halmac_adapter, u8 *dmem,
-			 u32 *size)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DUMP_FW_DMEM);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return status;
-}
-
-/**
- * halmac_cfg_max_dl_size_88xx() - config max download FW size
- * @halmac_adapter : the adapter of halmac
- * @size : max download fw size
- *
- * Halmac uses this setting to set max packet size for
- * download FW.
- * If user has not called this API, halmac use default
- * setting for download FW
- * Note1 : size need multiple of 2
- * Note2 : max size is 31K
- *
- * Author : Ivan Lin/KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_max_dl_size_88xx(struct halmac_adapter *halmac_adapter, u32 size)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_MAX_DL_SIZE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_FW, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (size > HALMAC_FW_CFG_MAX_DL_SIZE_MAX_88XX) {
-		pr_err("size > HALMAC_FW_CFG_MAX_DL_SIZE_MAX!\n");
-		return HALMAC_RET_CFG_DLFW_SIZE_FAIL;
-	}
-
-	if ((size & (2 - 1)) != 0) {
-		pr_err("size is not power of 2!\n");
-		return HALMAC_RET_CFG_DLFW_SIZE_FAIL;
-	}
-
-	halmac_adapter->max_download_size = size;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_FW, DBG_DMESG,
-			"Cfg max size is : %X\n", size);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_FW, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_psd_88xx() - trigger fw psd
- * @halmac_adapter : the adapter of halmac
- * @start_psd : start PSD
- * @end_psd : end PSD
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_psd_88xx(struct halmac_adapter *halmac_adapter,
-				       u16 start_psd, u16 end_psd)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.psd_set.process_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	if (halmac_fw_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_NO_DLFW;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_PSD);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (*process_status == HALMAC_CMD_PROCESS_SENDING) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Wait event(psd)...\n");
-		return HALMAC_RET_BUSY_STATE;
-	}
-
-	kfree(halmac_adapter->halmac_state.psd_set.data);
-	halmac_adapter->halmac_state.psd_set.data = (u8 *)NULL;
-
-	halmac_adapter->halmac_state.psd_set.data_size = 0;
-	halmac_adapter->halmac_state.psd_set.segment_size = 0;
-
-	*process_status = HALMAC_CMD_PROCESS_SENDING;
-
-	PSD_SET_START_PSD(h2c_buff, start_psd);
-	PSD_SET_END_PSD(h2c_buff, end_psd);
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_PSD;
-	h2c_header_info.content_size = 4;
-	h2c_header_info.ack = true;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_pkt_88xx Fail = %x!!\n", status);
-		return status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_la_mode_88xx() - config la mode
- * @halmac_adapter : the adapter of halmac
- * @la_mode :
- *	disable : no TXFF space reserved for LA debug
- *	partial : partial TXFF space is reserved for LA debug
- *	full : all TXFF space is reserved for LA debug
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_la_mode_88xx(struct halmac_adapter *halmac_adapter,
-			enum halmac_la_mode la_mode)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_LA_MODE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>la_mode = %d\n", __func__,
-			la_mode);
-
-	halmac_adapter->txff_allocation.la_mode = la_mode;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_rx_fifo_expanding_mode_88xx() - rx fifo expanding
- * @halmac_adapter : the adapter of halmac
- * @la_mode :
- *	disable : normal mode
- *	1 block : Rx FIFO + 1 FIFO block; Tx fifo - 1 FIFO block
- *	2 block : Rx FIFO + 2 FIFO block; Tx fifo - 2 FIFO block
- *	3 block : Rx FIFO + 3 FIFO block; Tx fifo - 3 FIFO block
- * Author : Soar
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_cfg_rx_fifo_expanding_mode_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_rx_fifo_expanding_mode rx_fifo_expanding_mode)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_CFG_RX_FIFO_EXPANDING_MODE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-		"%s ==========>rx_fifo_expanding_mode = %d\n", __func__,
-		rx_fifo_expanding_mode);
-
-	halmac_adapter->txff_allocation.rx_fifo_expanding_mode =
-		rx_fifo_expanding_mode;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_config_security_88xx(struct halmac_adapter *halmac_adapter,
-			    struct halmac_security_setting *sec_setting)
-{
-	struct halmac_api *halmac_api;
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_CR,
-			    (u16)(HALMAC_REG_READ_16(halmac_adapter, REG_CR) |
-				  BIT_MAC_SEC_EN));
-
-	if (sec_setting->tx_encryption == 1)
-		HALMAC_REG_WRITE_8(
-			halmac_adapter, REG_SECCFG,
-			HALMAC_REG_READ_8(halmac_adapter, REG_SECCFG) | BIT(2));
-	else
-		HALMAC_REG_WRITE_8(
-			halmac_adapter, REG_SECCFG,
-			HALMAC_REG_READ_8(halmac_adapter, REG_SECCFG) &
-				~(BIT(2)));
-
-	if (sec_setting->rx_decryption == 1)
-		HALMAC_REG_WRITE_8(
-			halmac_adapter, REG_SECCFG,
-			HALMAC_REG_READ_8(halmac_adapter, REG_SECCFG) | BIT(3));
-	else
-		HALMAC_REG_WRITE_8(
-			halmac_adapter, REG_SECCFG,
-			HALMAC_REG_READ_8(halmac_adapter, REG_SECCFG) &
-				~(BIT(3)));
-
-	if (sec_setting->bip_enable == 1) {
-		if (halmac_adapter->chip_id == HALMAC_CHIP_ID_8822B)
-			return HALMAC_RET_BIP_NO_SUPPORT;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-u8 halmac_get_used_cam_entry_num_88xx(struct halmac_adapter *halmac_adapter,
-				      enum hal_security_type sec_type)
-{
-	u8 entry_num;
-	void *driver_adapter = NULL;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	switch (sec_type) {
-	case HAL_SECURITY_TYPE_WEP40:
-	case HAL_SECURITY_TYPE_WEP104:
-	case HAL_SECURITY_TYPE_TKIP:
-	case HAL_SECURITY_TYPE_AES128:
-	case HAL_SECURITY_TYPE_GCMP128:
-	case HAL_SECURITY_TYPE_GCMSMS4:
-	case HAL_SECURITY_TYPE_BIP:
-		entry_num = 1;
-		break;
-	case HAL_SECURITY_TYPE_WAPI:
-	case HAL_SECURITY_TYPE_AES256:
-	case HAL_SECURITY_TYPE_GCMP256:
-		entry_num = 2;
-		break;
-	default:
-		entry_num = 0;
-		break;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return entry_num;
-}
-
-enum halmac_ret_status
-halmac_write_cam_88xx(struct halmac_adapter *halmac_adapter, u32 entry_index,
-		      struct halmac_cam_entry_info *cam_entry_info)
-{
-	u32 i;
-	u32 command = 0x80010000;
-	struct halmac_api *halmac_api;
-	void *driver_adapter = NULL;
-	struct halmac_cam_entry_format *cam_entry_format = NULL;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"[TRACE]%s ==========>\n", __func__);
-
-	if (entry_index >= halmac_adapter->hw_config_info.cam_entry_num)
-		return HALMAC_RET_ENTRY_INDEX_ERROR;
-
-	if (cam_entry_info->key_id > 3)
-		return HALMAC_RET_FAIL;
-
-	cam_entry_format = kzalloc(sizeof(*cam_entry_format), GFP_KERNEL);
-	if (!cam_entry_format)
-		return HALMAC_RET_NULL_POINTER;
-
-	cam_entry_format->key_id = cam_entry_info->key_id;
-	cam_entry_format->valid = cam_entry_info->valid;
-	memcpy(cam_entry_format->mac_address, cam_entry_info->mac_address, 6);
-	memcpy(cam_entry_format->key, cam_entry_info->key, 16);
-
-	switch (cam_entry_info->security_type) {
-	case HAL_SECURITY_TYPE_NONE:
-		cam_entry_format->type = 0;
-		break;
-	case HAL_SECURITY_TYPE_WEP40:
-		cam_entry_format->type = 1;
-		break;
-	case HAL_SECURITY_TYPE_WEP104:
-		cam_entry_format->type = 5;
-		break;
-	case HAL_SECURITY_TYPE_TKIP:
-		cam_entry_format->type = 2;
-		break;
-	case HAL_SECURITY_TYPE_AES128:
-		cam_entry_format->type = 4;
-		break;
-	case HAL_SECURITY_TYPE_WAPI:
-		cam_entry_format->type = 6;
-		break;
-	case HAL_SECURITY_TYPE_AES256:
-		cam_entry_format->type = 4;
-		cam_entry_format->ext_sectype = 1;
-		break;
-	case HAL_SECURITY_TYPE_GCMP128:
-		cam_entry_format->type = 7;
-		break;
-	case HAL_SECURITY_TYPE_GCMP256:
-	case HAL_SECURITY_TYPE_GCMSMS4:
-		cam_entry_format->type = 7;
-		cam_entry_format->ext_sectype = 1;
-		break;
-	case HAL_SECURITY_TYPE_BIP:
-		cam_entry_format->type = cam_entry_info->unicast == 1 ? 4 : 0;
-		cam_entry_format->mgnt = 1;
-		cam_entry_format->grp = cam_entry_info->unicast == 1 ? 0 : 1;
-		break;
-	default:
-		kfree(cam_entry_format);
-		return HALMAC_RET_FAIL;
-	}
-
-	for (i = 0; i < 8; i++) {
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_CAMWRITE,
-				    *((u32 *)cam_entry_format + i));
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_CAMCMD,
-				    command | ((entry_index << 3) + i));
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-				"[TRACE]1 - CAM entry format : %X\n",
-				*((u32 *)cam_entry_format + i));
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-				"[TRACE]1 - REG_CAMCMD : %X\n",
-				command | ((entry_index << 3) + i));
-	}
-
-	if (cam_entry_info->security_type == HAL_SECURITY_TYPE_WAPI ||
-	    cam_entry_info->security_type == HAL_SECURITY_TYPE_AES256 ||
-	    cam_entry_info->security_type == HAL_SECURITY_TYPE_GCMP256 ||
-	    cam_entry_info->security_type == HAL_SECURITY_TYPE_GCMSMS4) {
-		cam_entry_format->mic = 1;
-		memcpy(cam_entry_format->key, cam_entry_info->key_ext, 16);
-
-		for (i = 0; i < 8; i++) {
-			HALMAC_REG_WRITE_32(halmac_adapter, REG_CAMWRITE,
-					    *((u32 *)cam_entry_format + i));
-			HALMAC_REG_WRITE_32(
-				halmac_adapter, REG_CAMCMD,
-				command | (((entry_index + 1) << 3) + i));
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON,
-					DBG_DMESG,
-					"[TRACE]2 - CAM entry format : %X\n",
-					*((u32 *)cam_entry_format + i));
-			HALMAC_RT_TRACE(
-				driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-				"[TRACE]2 - REG_CAMCMD : %X\n",
-				command | (((entry_index + 1) << 3) + i));
-		}
-	}
-
-	kfree(cam_entry_format);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"[TRACE]%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_read_cam_entry_88xx(struct halmac_adapter *halmac_adapter,
-			   u32 entry_index,
-			   struct halmac_cam_entry_format *content)
-{
-	u32 i;
-	u32 command = 0x80000000;
-	struct halmac_api *halmac_api;
-	void *driver_adapter = NULL;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (entry_index >= halmac_adapter->hw_config_info.cam_entry_num)
-		return HALMAC_RET_ENTRY_INDEX_ERROR;
-
-	for (i = 0; i < 8; i++) {
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_CAMCMD,
-				    command | ((entry_index << 3) + i));
-		*((u32 *)content + i) =
-			HALMAC_REG_READ_32(halmac_adapter, REG_CAMREAD);
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_clear_cam_entry_88xx(struct halmac_adapter *halmac_adapter,
-			    u32 entry_index)
-{
-	u32 i;
-	u32 command = 0x80010000;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	struct halmac_cam_entry_format *cam_entry_format;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]halmac_clear_security_cam_88xx ==========>\n");
-
-	if (entry_index >= halmac_adapter->hw_config_info.cam_entry_num)
-		return HALMAC_RET_ENTRY_INDEX_ERROR;
-
-	cam_entry_format = kzalloc(sizeof(*cam_entry_format), GFP_KERNEL);
-	if (!cam_entry_format)
-		return HALMAC_RET_NULL_POINTER;
-
-	for (i = 0; i < 8; i++) {
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_CAMWRITE,
-				    *((u32 *)cam_entry_format + i));
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_CAMCMD,
-				    command | ((entry_index << 3) + i));
-	}
-
-	kfree(cam_entry_format);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]halmac_clear_security_cam_88xx <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_get_hw_value_88xx() -get hw config value
- * @halmac_adapter : the adapter of halmac
- * @hw_id : hw id for driver to query
- * @pvalue : hw value, reference table to get data type
- * Author : KaiYuan Chang / Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_get_hw_value_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_hw_id hw_id, void *pvalue)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_GET_HW_VALUE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (!pvalue) {
-		pr_err("%s (!pvalue)==========>\n", __func__);
-		return HALMAC_RET_NULL_POINTER;
-	}
-
-	switch (hw_id) {
-	case HALMAC_HW_RQPN_MAPPING:
-		((struct halmac_rqpn_map *)pvalue)->dma_map_vo =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VO];
-		((struct halmac_rqpn_map *)pvalue)->dma_map_vi =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VI];
-		((struct halmac_rqpn_map *)pvalue)->dma_map_be =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BE];
-		((struct halmac_rqpn_map *)pvalue)->dma_map_bk =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BK];
-		((struct halmac_rqpn_map *)pvalue)->dma_map_mg =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_MG];
-		((struct halmac_rqpn_map *)pvalue)->dma_map_hi =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_HI];
-		break;
-	case HALMAC_HW_EFUSE_SIZE:
-		*(u32 *)pvalue = halmac_adapter->hw_config_info.efuse_size;
-		break;
-	case HALMAC_HW_EEPROM_SIZE:
-		*(u32 *)pvalue = halmac_adapter->hw_config_info.eeprom_size;
-		break;
-	case HALMAC_HW_BT_BANK_EFUSE_SIZE:
-		*(u32 *)pvalue = halmac_adapter->hw_config_info.bt_efuse_size;
-		break;
-	case HALMAC_HW_BT_BANK1_EFUSE_SIZE:
-	case HALMAC_HW_BT_BANK2_EFUSE_SIZE:
-		*(u32 *)pvalue = 0;
-		break;
-	case HALMAC_HW_TXFIFO_SIZE:
-		*(u32 *)pvalue = halmac_adapter->hw_config_info.tx_fifo_size;
-		break;
-	case HALMAC_HW_RSVD_PG_BNDY:
-		*(u16 *)pvalue =
-			halmac_adapter->txff_allocation.rsvd_drv_pg_bndy;
-		break;
-	case HALMAC_HW_CAM_ENTRY_NUM:
-		*(u8 *)pvalue = halmac_adapter->hw_config_info.cam_entry_num;
-		break;
-	case HALMAC_HW_WLAN_EFUSE_AVAILABLE_SIZE: /*Remove later*/
-		status = halmac_dump_logical_efuse_map_88xx(halmac_adapter,
-							    HALMAC_EFUSE_R_DRV);
-		if (status != HALMAC_RET_SUCCESS)
-			return status;
-		*(u32 *)pvalue = halmac_adapter->hw_config_info.efuse_size -
-				 HALMAC_PROTECTED_EFUSE_SIZE_88XX -
-				 halmac_adapter->efuse_end;
-		break;
-	case HALMAC_HW_IC_VERSION:
-		*(u8 *)pvalue = halmac_adapter->chip_version;
-		break;
-	case HALMAC_HW_PAGE_SIZE:
-		*(u32 *)pvalue = halmac_adapter->hw_config_info.page_size;
-		break;
-	case HALMAC_HW_TX_AGG_ALIGN_SIZE:
-		*(u16 *)pvalue = halmac_adapter->hw_config_info.tx_align_size;
-		break;
-	case HALMAC_HW_RX_AGG_ALIGN_SIZE:
-		*(u8 *)pvalue = 8;
-		break;
-	case HALMAC_HW_DRV_INFO_SIZE:
-		*(u8 *)pvalue = halmac_adapter->drv_info_size;
-		break;
-	case HALMAC_HW_TXFF_ALLOCATION:
-		memcpy(pvalue, &halmac_adapter->txff_allocation,
-		       sizeof(struct halmac_txff_allocation));
-		break;
-	case HALMAC_HW_TX_DESC_SIZE:
-		*(u32 *)pvalue = halmac_adapter->hw_config_info.txdesc_size;
-		break;
-	case HALMAC_HW_RX_DESC_SIZE:
-		*(u32 *)pvalue = halmac_adapter->hw_config_info.rxdesc_size;
-		break;
-	default:
-		return HALMAC_RET_PARA_NOT_SUPPORT;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_set_hw_value_88xx() -set hw config value
- * @halmac_adapter : the adapter of halmac
- * @hw_id : hw id for driver to config
- * @pvalue : hw value, reference table to get data type
- * Author : KaiYuan Chang / Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_set_hw_value_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_hw_id hw_id, void *pvalue)
-{
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_GET_HW_VALUE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (!pvalue) {
-		pr_err("%s (!pvalue)==========>\n", __func__);
-		return HALMAC_RET_NULL_POINTER;
-	}
-
-	switch (hw_id) {
-	case HALMAC_HW_USB_MODE:
-		status = halmac_set_usb_mode_88xx(
-			halmac_adapter, *(enum halmac_usb_mode *)pvalue);
-		if (status != HALMAC_RET_SUCCESS)
-			return status;
-		break;
-	case HALMAC_HW_SEQ_EN:
-		break;
-	case HALMAC_HW_BANDWIDTH:
-		halmac_cfg_bw_88xx(halmac_adapter, *(enum halmac_bw *)pvalue);
-		break;
-	case HALMAC_HW_CHANNEL:
-		halmac_cfg_ch_88xx(halmac_adapter, *(u8 *)pvalue);
-		break;
-	case HALMAC_HW_PRI_CHANNEL_IDX:
-		halmac_cfg_pri_ch_idx_88xx(halmac_adapter,
-					   *(enum halmac_pri_ch_idx *)pvalue);
-		break;
-	case HALMAC_HW_EN_BB_RF:
-		halmac_enable_bb_rf_88xx(halmac_adapter, *(u8 *)pvalue);
-		break;
-	case HALMAC_HW_SDIO_TX_PAGE_THRESHOLD:
-		halmac_config_sdio_tx_page_threshold_88xx(
-			halmac_adapter,
-			(struct halmac_tx_page_threshold_info *)pvalue);
-		break;
-	case HALMAC_HW_AMPDU_CONFIG:
-		halmac_config_ampdu_88xx(halmac_adapter,
-					 (struct halmac_ampdu_config *)pvalue);
-		break;
-	default:
-		return HALMAC_RET_PARA_NOT_SUPPORT;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_drv_rsvd_pg_num_88xx() -config reserved page number for driver
- * @halmac_adapter : the adapter of halmac
- * @pg_num : page number
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_drv_rsvd_pg_num_88xx(struct halmac_adapter *halmac_adapter,
-				enum halmac_drv_rsvd_pg_num pg_num)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_CFG_DRV_RSVD_PG_NUM);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>pg_num = %d\n", __func__,
-			pg_num);
-
-	switch (pg_num) {
-	case HALMAC_RSVD_PG_NUM16:
-		halmac_adapter->txff_allocation.rsvd_drv_pg_num = 16;
-		break;
-	case HALMAC_RSVD_PG_NUM24:
-		halmac_adapter->txff_allocation.rsvd_drv_pg_num = 24;
-		break;
-	case HALMAC_RSVD_PG_NUM32:
-		halmac_adapter->txff_allocation.rsvd_drv_pg_num = 32;
-		break;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_get_chip_version_88xx(struct halmac_adapter *halmac_adapter,
-			     struct halmac_ver *version)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s ==========>\n", __func__);
-	version->major_ver = (u8)HALMAC_MAJOR_VER_88XX;
-	version->prototype_ver = (u8)HALMAC_PROTOTYPE_VER_88XX;
-	version->minor_ver = (u8)HALMAC_MINOR_VER_88XX;
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_chk_txdesc_88xx() -check if the tx packet format is incorrect
- * @halmac_adapter : the adapter of halmac
- * @halmac_buf : tx Packet buffer, tx desc is included
- * @halmac_size : tx packet size
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_chk_txdesc_88xx(struct halmac_adapter *halmac_adapter, u8 *halmac_buf,
-		       u32 halmac_size)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (GET_TX_DESC_BMC(halmac_buf))
-		if (GET_TX_DESC_AGG_EN(halmac_buf))
-			pr_err("TxDesc: Agg should not be set when BMC\n");
-
-	if (halmac_size < (GET_TX_DESC_TXPKTSIZE(halmac_buf) +
-			   GET_TX_DESC_OFFSET(halmac_buf)))
-		pr_err("TxDesc: PktSize too small\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_dl_drv_rsvd_page_88xx() - download packet to rsvd page
- * @halmac_adapter : the adapter of halmac
- * @pg_offset : page offset of driver's rsvd page
- * @halmac_buf : data to be downloaded, tx_desc is not included
- * @halmac_size : data size to be downloaded
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_dl_drv_rsvd_page_88xx(struct halmac_adapter *halmac_adapter,
-			     u8 pg_offset, u8 *halmac_buf, u32 halmac_size)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status ret_status;
-	u16 drv_pg_bndy = 0;
-	u32 dl_pg_num = 0;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DL_DRV_RSVD_PG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	/*check boundary and size valid*/
-	dl_pg_num = halmac_size / halmac_adapter->hw_config_info.page_size +
-		    ((halmac_size &
-		      (halmac_adapter->hw_config_info.page_size - 1)) ?
-			     1 :
-			     0);
-	if (pg_offset + dl_pg_num >
-	    halmac_adapter->txff_allocation.rsvd_drv_pg_num) {
-		pr_err("[ERROR] driver download offset or size error ==========>\n");
-		return HALMAC_RET_DRV_DL_ERR;
-	}
-
-	/*update to target download boundary*/
-	drv_pg_bndy =
-		halmac_adapter->txff_allocation.rsvd_drv_pg_bndy + pg_offset;
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			    (u16)(drv_pg_bndy & BIT_MASK_BCN_HEAD_1_V1));
-
-	ret_status = halmac_download_rsvd_page_88xx(halmac_adapter, halmac_buf,
-						    halmac_size);
-
-	/*restore to original bundary*/
-	if (ret_status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_download_rsvd_page_88xx Fail = %x!!\n",
-		       ret_status);
-		HALMAC_REG_WRITE_16(
-			halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			(u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-			      BIT_MASK_BCN_HEAD_1_V1));
-		return ret_status;
-	}
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			    (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-				  BIT_MASK_BCN_HEAD_1_V1));
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s < ==========\n", __func__);
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_csi_rate_88xx() - config CSI frame Tx rate
- * @halmac_adapter : the adapter of halmac
- * @rssi : rssi in decimal value
- * @current_rate : current CSI frame rate
- * @fixrate_en : enable to fix CSI frame in VHT rate, otherwise legacy OFDM rate
- * @new_rate : API returns the final CSI frame rate
- * Author : chunchu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_csi_rate_88xx(struct halmac_adapter *halmac_adapter, u8 rssi,
-			 u8 current_rate, u8 fixrate_en, u8 *new_rate)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	u32 temp_csi_setting;
-	u16 current_rrsr;
-	enum halmac_ret_status ret_status;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_CSI_RATE);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_SND, DBG_DMESG,
-			"<%s ==========>\n", __func__);
-
-	temp_csi_setting = HALMAC_REG_READ_32(halmac_adapter, REG_BBPSF_CTRL) &
-			   ~(BIT_MASK_WMAC_CSI_RATE << BIT_SHIFT_WMAC_CSI_RATE);
-
-	current_rrsr = HALMAC_REG_READ_16(halmac_adapter, REG_RRSR);
-
-	if (rssi >= 40) {
-		if (current_rate != HALMAC_OFDM54) {
-			HALMAC_REG_WRITE_16(halmac_adapter, REG_RRSR,
-					    current_rrsr | BIT(HALMAC_OFDM54));
-			HALMAC_REG_WRITE_32(
-				halmac_adapter, REG_BBPSF_CTRL,
-				temp_csi_setting |
-					BIT_WMAC_CSI_RATE(HALMAC_OFDM54));
-		}
-		*new_rate = HALMAC_OFDM54;
-		ret_status = HALMAC_RET_SUCCESS;
-	} else {
-		if (current_rate != HALMAC_OFDM24) {
-			HALMAC_REG_WRITE_16(halmac_adapter, REG_RRSR,
-					    current_rrsr &
-						    ~(BIT(HALMAC_OFDM54)));
-			HALMAC_REG_WRITE_32(
-				halmac_adapter, REG_BBPSF_CTRL,
-				temp_csi_setting |
-					BIT_WMAC_CSI_RATE(HALMAC_OFDM24));
-		}
-		*new_rate = HALMAC_OFDM24;
-		ret_status = HALMAC_RET_SUCCESS;
-	}
-
-	return ret_status;
-}
-
-/**
- * halmac_sdio_cmd53_4byte_88xx() - cmd53 only for 4byte len register IO
- * @halmac_adapter : the adapter of halmac
- * @enable : 1->CMD53 only use in 4byte reg, 0 : No limitation
- * Author : Ivan Lin/KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_sdio_cmd53_4byte_88xx(struct halmac_adapter *halmac_adapter,
-			     enum halmac_sdio_cmd53_4byte_mode cmd53_4byte_mode)
-{
-	halmac_adapter->sdio_cmd53_4byte = cmd53_4byte_mode;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_txfifo_is_empty_88xx() -check if txfifo is empty
- * @halmac_adapter : the adapter of halmac
- * Author : Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_txfifo_is_empty_88xx(struct halmac_adapter *halmac_adapter, u32 chk_num)
-{
-	u32 counter;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	counter = (chk_num <= 10) ? 10 : chk_num;
-	do {
-		if (HALMAC_REG_READ_8(halmac_adapter, REG_TXPKT_EMPTY) != 0xFF)
-			return HALMAC_RET_TXFIFO_NO_EMPTY;
-
-		if ((HALMAC_REG_READ_8(halmac_adapter, REG_TXPKT_EMPTY + 1) &
-		     0x07) != 0x07)
-			return HALMAC_RET_TXFIFO_NO_EMPTY;
-		counter--;
-
-	} while (counter != 0);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_COMMON, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx.h
deleted file mode 100644
index 6c6eb85..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx.h
+++ /dev/null
@@ -1,385 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_API_88XX_H_
-#define _HALMAC_API_88XX_H_
-
-#include "../halmac_2_platform.h"
-#include "../halmac_type.h"
-
-void halmac_init_state_machine_88xx(struct halmac_adapter *halmac_adapter);
-
-void halmac_init_adapter_para_88xx(struct halmac_adapter *halmac_adapter);
-
-void halmac_init_adapter_dynamic_para_88xx(
-	struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_mount_api_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_download_firmware_88xx(struct halmac_adapter *halmac_adapter,
-			      u8 *hamacl_fw, u32 halmac_fw_size);
-
-enum halmac_ret_status
-halmac_free_download_firmware_88xx(struct halmac_adapter *halmac_adapter,
-				   enum halmac_dlfw_mem dlfw_mem, u8 *hamacl_fw,
-				   u32 halmac_fw_size);
-
-enum halmac_ret_status
-halmac_get_fw_version_88xx(struct halmac_adapter *halmac_adapter,
-			   struct halmac_fw_version *fw_version);
-
-enum halmac_ret_status
-halmac_cfg_mac_addr_88xx(struct halmac_adapter *halmac_adapter, u8 halmac_port,
-			 union halmac_wlan_addr *hal_address);
-
-enum halmac_ret_status
-halmac_cfg_bssid_88xx(struct halmac_adapter *halmac_adapter, u8 halmac_port,
-		      union halmac_wlan_addr *hal_address);
-
-enum halmac_ret_status
-halmac_cfg_multicast_addr_88xx(struct halmac_adapter *halmac_adapter,
-			       union halmac_wlan_addr *hal_address);
-
-enum halmac_ret_status
-halmac_pre_init_system_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_init_system_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_cfg_rx_aggregation_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_rxagg_cfg halmac_rxagg_cfg);
-
-enum halmac_ret_status
-halmac_init_edca_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_cfg_operation_mode_88xx(struct halmac_adapter *halmac_adapter,
-			       enum halmac_wireless_mode wireless_mode);
-
-enum halmac_ret_status
-halmac_cfg_ch_bw_88xx(struct halmac_adapter *halmac_adapter, u8 channel,
-		      enum halmac_pri_ch_idx pri_ch_idx, enum halmac_bw bw);
-
-enum halmac_ret_status halmac_cfg_ch_88xx(struct halmac_adapter *halmac_adapter,
-					  u8 channel);
-
-enum halmac_ret_status
-halmac_cfg_pri_ch_idx_88xx(struct halmac_adapter *halmac_adapter,
-			   enum halmac_pri_ch_idx pri_ch_idx);
-
-enum halmac_ret_status halmac_cfg_bw_88xx(struct halmac_adapter *halmac_adapter,
-					  enum halmac_bw bw);
-
-enum halmac_ret_status
-halmac_init_wmac_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_init_mac_cfg_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_trx_mode mode);
-
-enum halmac_ret_status
-halmac_dump_efuse_map_88xx(struct halmac_adapter *halmac_adapter,
-			   enum halmac_efuse_read_cfg cfg);
-
-enum halmac_ret_status
-halmac_dump_efuse_map_bt_88xx(struct halmac_adapter *halmac_adapter,
-			      enum halmac_efuse_bank halmac_efuse_bank,
-			      u32 bt_efuse_map_size, u8 *bt_efuse_map);
-
-enum halmac_ret_status
-halmac_write_efuse_bt_88xx(struct halmac_adapter *halmac_adapter,
-			   u32 halmac_offset, u8 halmac_value,
-			   enum halmac_efuse_bank halmac_efuse_bank);
-
-enum halmac_ret_status
-halmac_pg_efuse_by_map_88xx(struct halmac_adapter *halmac_adapter,
-			    struct halmac_pg_efuse_info *pg_efuse_info,
-			    enum halmac_efuse_read_cfg cfg);
-
-enum halmac_ret_status
-halmac_get_efuse_size_88xx(struct halmac_adapter *halmac_adapter,
-			   u32 *halmac_size);
-
-enum halmac_ret_status
-halmac_get_efuse_available_size_88xx(struct halmac_adapter *halmac_adapter,
-				     u32 *halmac_size);
-
-enum halmac_ret_status
-halmac_get_c2h_info_88xx(struct halmac_adapter *halmac_adapter, u8 *halmac_buf,
-			 u32 halmac_size);
-
-enum halmac_ret_status
-halmac_get_logical_efuse_size_88xx(struct halmac_adapter *halmac_adapter,
-				   u32 *halmac_size);
-
-enum halmac_ret_status
-halmac_dump_logical_efuse_map_88xx(struct halmac_adapter *halmac_adapter,
-				   enum halmac_efuse_read_cfg cfg);
-
-enum halmac_ret_status
-halmac_write_logical_efuse_88xx(struct halmac_adapter *halmac_adapter,
-				u32 halmac_offset, u8 halmac_value);
-
-enum halmac_ret_status
-halmac_read_logical_efuse_88xx(struct halmac_adapter *halmac_adapter,
-			       u32 halmac_offset, u8 *value);
-
-enum halmac_ret_status
-halmac_cfg_fwlps_option_88xx(struct halmac_adapter *halmac_adapter,
-			     struct halmac_fwlps_option *lps_option);
-
-enum halmac_ret_status
-halmac_cfg_fwips_option_88xx(struct halmac_adapter *halmac_adapter,
-			     struct halmac_fwips_option *ips_option);
-
-enum halmac_ret_status
-halmac_enter_wowlan_88xx(struct halmac_adapter *halmac_adapter,
-			 struct halmac_wowlan_option *wowlan_option);
-
-enum halmac_ret_status
-halmac_leave_wowlan_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_enter_ps_88xx(struct halmac_adapter *halmac_adapter,
-		     enum halmac_ps_state ps_state);
-
-enum halmac_ret_status
-halmac_leave_ps_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_h2c_lb_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status halmac_debug_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_cfg_parameter_88xx(struct halmac_adapter *halmac_adapter,
-			  struct halmac_phy_parameter_info *para_info,
-			  u8 full_fifo);
-
-enum halmac_ret_status
-halmac_update_packet_88xx(struct halmac_adapter *halmac_adapter,
-			  enum halmac_packet_id pkt_id, u8 *pkt, u32 pkt_size);
-
-enum halmac_ret_status
-halmac_bcn_ie_filter_88xx(struct halmac_adapter *halmac_adapter,
-			  struct halmac_bcn_ie_info *bcn_ie_info);
-
-enum halmac_ret_status
-halmac_send_original_h2c_88xx(struct halmac_adapter *halmac_adapter,
-			      u8 *original_h2c, u16 *seq, u8 ack);
-
-enum halmac_ret_status
-halmac_update_datapack_88xx(struct halmac_adapter *halmac_adapter,
-			    enum halmac_data_type halmac_data_type,
-			    struct halmac_phy_parameter_info *para_info);
-
-enum halmac_ret_status
-halmac_run_datapack_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_data_type halmac_data_type);
-
-enum halmac_ret_status
-halmac_cfg_drv_info_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_drv_info halmac_drv_info);
-
-enum halmac_ret_status
-halmac_send_bt_coex_88xx(struct halmac_adapter *halmac_adapter, u8 *bt_buf,
-			 u32 bt_size, u8 ack);
-
-enum halmac_ret_status
-halmac_verify_platform_api_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_timer_2s_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_fill_txdesc_check_sum_88xx(struct halmac_adapter *halmac_adapter,
-				  u8 *cur_desc);
-
-enum halmac_ret_status
-halmac_dump_fifo_88xx(struct halmac_adapter *halmac_adapter,
-		      enum hal_fifo_sel halmac_fifo_sel, u32 halmac_start_addr,
-		      u32 halmac_fifo_dump_size, u8 *fifo_map);
-
-u32 halmac_get_fifo_size_88xx(struct halmac_adapter *halmac_adapter,
-			      enum hal_fifo_sel halmac_fifo_sel);
-
-enum halmac_ret_status
-halmac_cfg_txbf_88xx(struct halmac_adapter *halmac_adapter, u8 userid,
-		     enum halmac_bw bw, u8 txbf_en);
-
-enum halmac_ret_status
-halmac_cfg_mumimo_88xx(struct halmac_adapter *halmac_adapter,
-		       struct halmac_cfg_mumimo_para *cfgmu);
-
-enum halmac_ret_status
-halmac_cfg_sounding_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_snd_role role,
-			 enum halmac_data_rate datarate);
-
-enum halmac_ret_status
-halmac_del_sounding_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_snd_role role);
-
-enum halmac_ret_status
-halmac_su_bfee_entry_init_88xx(struct halmac_adapter *halmac_adapter, u8 userid,
-			       u16 paid);
-
-enum halmac_ret_status
-halmac_su_bfer_entry_init_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_su_bfer_init_para *su_bfer_init);
-
-enum halmac_ret_status
-halmac_mu_bfee_entry_init_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_mu_bfee_init_para *mu_bfee_init);
-
-enum halmac_ret_status
-halmac_mu_bfer_entry_init_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_mu_bfer_init_para *mu_bfer_init);
-
-enum halmac_ret_status
-halmac_su_bfee_entry_del_88xx(struct halmac_adapter *halmac_adapter, u8 userid);
-
-enum halmac_ret_status
-halmac_su_bfer_entry_del_88xx(struct halmac_adapter *halmac_adapter, u8 userid);
-
-enum halmac_ret_status
-halmac_mu_bfee_entry_del_88xx(struct halmac_adapter *halmac_adapter, u8 userid);
-
-enum halmac_ret_status
-halmac_mu_bfer_entry_del_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_add_ch_info_88xx(struct halmac_adapter *halmac_adapter,
-			struct halmac_ch_info *ch_info);
-
-enum halmac_ret_status
-halmac_add_extra_ch_info_88xx(struct halmac_adapter *halmac_adapter,
-			      struct halmac_ch_extra_info *ch_extra_info);
-
-enum halmac_ret_status
-halmac_ctrl_ch_switch_88xx(struct halmac_adapter *halmac_adapter,
-			   struct halmac_ch_switch_option *cs_option);
-
-enum halmac_ret_status halmac_p2pps_88xx(struct halmac_adapter *halmac_adapter,
-					 struct halmac_p2pps *p2p_ps);
-
-enum halmac_ret_status
-halmac_func_p2pps_88xx(struct halmac_adapter *halmac_adapter,
-		       struct halmac_p2pps *p2p_ps);
-
-enum halmac_ret_status
-halmac_clear_ch_info_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_send_general_info_88xx(struct halmac_adapter *halmac_adapter,
-			      struct halmac_general_info *general_info);
-
-enum halmac_ret_status
-halmac_start_iqk_88xx(struct halmac_adapter *halmac_adapter,
-		      struct halmac_iqk_para_ *iqk_para);
-
-enum halmac_ret_status halmac_ctrl_pwr_tracking_88xx(
-	struct halmac_adapter *halmac_adapter,
-	struct halmac_pwr_tracking_option *pwr_tracking_opt);
-
-enum halmac_ret_status
-halmac_query_status_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_feature_id feature_id,
-			 enum halmac_cmd_process_status *process_status,
-			 u8 *data, u32 *size);
-
-enum halmac_ret_status
-halmac_reset_feature_88xx(struct halmac_adapter *halmac_adapter,
-			  enum halmac_feature_id feature_id);
-
-enum halmac_ret_status
-halmac_check_fw_status_88xx(struct halmac_adapter *halmac_adapter,
-			    bool *fw_status);
-
-enum halmac_ret_status
-halmac_dump_fw_dmem_88xx(struct halmac_adapter *halmac_adapter, u8 *dmem,
-			 u32 *size);
-
-enum halmac_ret_status
-halmac_cfg_max_dl_size_88xx(struct halmac_adapter *halmac_adapter, u32 size);
-
-enum halmac_ret_status halmac_psd_88xx(struct halmac_adapter *halmac_adapter,
-				       u16 start_psd, u16 end_psd);
-
-enum halmac_ret_status
-halmac_cfg_la_mode_88xx(struct halmac_adapter *halmac_adapter,
-			enum halmac_la_mode la_mode);
-
-enum halmac_ret_status halmac_cfg_rx_fifo_expanding_mode_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_rx_fifo_expanding_mode rx_fifo_expanding_mode);
-
-enum halmac_ret_status
-halmac_config_security_88xx(struct halmac_adapter *halmac_adapter,
-			    struct halmac_security_setting *sec_setting);
-
-u8 halmac_get_used_cam_entry_num_88xx(struct halmac_adapter *halmac_adapter,
-				      enum hal_security_type sec_type);
-
-enum halmac_ret_status
-halmac_write_cam_88xx(struct halmac_adapter *halmac_adapter, u32 entry_index,
-		      struct halmac_cam_entry_info *cam_entry_info);
-
-enum halmac_ret_status
-halmac_read_cam_entry_88xx(struct halmac_adapter *halmac_adapter,
-			   u32 entry_index,
-			   struct halmac_cam_entry_format *content);
-
-enum halmac_ret_status
-halmac_clear_cam_entry_88xx(struct halmac_adapter *halmac_adapter,
-			    u32 entry_index);
-
-enum halmac_ret_status
-halmac_get_hw_value_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_hw_id hw_id, void *pvalue);
-
-enum halmac_ret_status
-halmac_set_hw_value_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_hw_id hw_id, void *pvalue);
-
-enum halmac_ret_status
-halmac_cfg_drv_rsvd_pg_num_88xx(struct halmac_adapter *halmac_adapter,
-				enum halmac_drv_rsvd_pg_num pg_num);
-
-enum halmac_ret_status
-halmac_get_chip_version_88xx(struct halmac_adapter *halmac_adapter,
-			     struct halmac_ver *version);
-
-enum halmac_ret_status
-halmac_chk_txdesc_88xx(struct halmac_adapter *halmac_adapter, u8 *halmac_buf,
-		       u32 halmac_size);
-
-enum halmac_ret_status
-halmac_dl_drv_rsvd_page_88xx(struct halmac_adapter *halmac_adapter,
-			     u8 pg_offset, u8 *halmac_buf, u32 halmac_size);
-
-enum halmac_ret_status
-halmac_cfg_csi_rate_88xx(struct halmac_adapter *halmac_adapter, u8 rssi,
-			 u8 current_rate, u8 fixrate_en, u8 *new_rate);
-
-enum halmac_ret_status halmac_sdio_cmd53_4byte_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_sdio_cmd53_4byte_mode cmd53_4byte_mode);
-
-enum halmac_ret_status
-halmac_txfifo_is_empty_88xx(struct halmac_adapter *halmac_adapter, u32 chk_num);
-
-#endif /* _HALMAC_API_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_pcie.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_pcie.c
deleted file mode 100644
index 8462f23b..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_pcie.c
+++ /dev/null
@@ -1,318 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halmac_88xx_cfg.h"
-
-/**
- * halmac_init_pcie_cfg_88xx() -  init PCIe
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_pcie_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_PCIE_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_deinit_pcie_cfg_88xx() - deinit PCIE
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_deinit_pcie_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DEINIT_PCIE_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_rx_aggregation_88xx_pcie() - config rx aggregation
- * @halmac_adapter : the adapter of halmac
- * @halmac_rx_agg_mode
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_rx_aggregation_88xx_pcie(struct halmac_adapter *halmac_adapter,
-				    struct halmac_rxagg_cfg *phalmac_rxagg_cfg)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_CFG_RX_AGGREGATION);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_8_pcie_88xx() - read 1byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u8 halmac_reg_read_8_pcie_88xx(struct halmac_adapter *halmac_adapter,
-			       u32 halmac_offset)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	return PLATFORM_REG_READ_8(driver_adapter, halmac_offset);
-}
-
-/**
- * halmac_reg_write_8_pcie_88xx() - write 1byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reg_write_8_pcie_88xx(struct halmac_adapter *halmac_adapter,
-			     u32 halmac_offset, u8 halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	PLATFORM_REG_WRITE_8(driver_adapter, halmac_offset, halmac_data);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_16_pcie_88xx() - read 2byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u16 halmac_reg_read_16_pcie_88xx(struct halmac_adapter *halmac_adapter,
-				 u32 halmac_offset)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	return PLATFORM_REG_READ_16(driver_adapter, halmac_offset);
-}
-
-/**
- * halmac_reg_write_16_pcie_88xx() - write 2byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reg_write_16_pcie_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset, u16 halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	PLATFORM_REG_WRITE_16(driver_adapter, halmac_offset, halmac_data);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_32_pcie_88xx() - read 4byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u32 halmac_reg_read_32_pcie_88xx(struct halmac_adapter *halmac_adapter,
-				 u32 halmac_offset)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	return PLATFORM_REG_READ_32(driver_adapter, halmac_offset);
-}
-
-/**
- * halmac_reg_write_32_pcie_88xx() - write 4byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reg_write_32_pcie_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset, u32 halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	PLATFORM_REG_WRITE_32(driver_adapter, halmac_offset, halmac_data);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_tx_agg_align_pcie_88xx() -config sdio bus tx agg alignment
- * @halmac_adapter : the adapter of halmac
- * @enable : function enable(1)/disable(0)
- * @align_size : sdio bus tx agg alignment size (2^n, n = 3~11)
- * Author : Soar Tu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_cfg_tx_agg_align_pcie_not_support_88xx(
-	struct halmac_adapter *halmac_adapter, u8 enable, u16 align_size)
-{
-	struct halmac_api *halmac_api;
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_TX_AGG_ALIGN);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s not support\n", __func__);
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_pcie.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_pcie.h
deleted file mode 100644
index dc4d98b..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_pcie.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_API_88XX_PCIE_H_
-#define _HALMAC_API_88XX_PCIE_H_
-
-#include "../halmac_2_platform.h"
-#include "../halmac_type.h"
-
-#define LINK_CTRL2_REG_OFFSET 0xA0
-#define GEN2_CTRL_OFFSET 0x80C
-#define LINK_STATUS_REG_OFFSET 0x82
-#define GEN1_SPEED 0x01
-#define GEN2_SPEED 0x02
-
-enum halmac_ret_status
-halmac_init_pcie_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_deinit_pcie_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_cfg_rx_aggregation_88xx_pcie(struct halmac_adapter *halmac_adapter,
-				    struct halmac_rxagg_cfg *phalmac_rxagg_cfg);
-
-u8 halmac_reg_read_8_pcie_88xx(struct halmac_adapter *halmac_adapter,
-			       u32 halmac_offset);
-
-enum halmac_ret_status
-halmac_reg_write_8_pcie_88xx(struct halmac_adapter *halmac_adapter,
-			     u32 halmac_offset, u8 halmac_data);
-
-u16 halmac_reg_read_16_pcie_88xx(struct halmac_adapter *halmac_adapter,
-				 u32 halmac_offset);
-
-enum halmac_ret_status
-halmac_reg_write_16_pcie_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset, u16 halmac_data);
-
-u32 halmac_reg_read_32_pcie_88xx(struct halmac_adapter *halmac_adapter,
-				 u32 halmac_offset);
-
-enum halmac_ret_status
-halmac_reg_write_32_pcie_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset, u32 halmac_data);
-
-enum halmac_ret_status halmac_cfg_tx_agg_align_pcie_not_support_88xx(
-	struct halmac_adapter *halmac_adapter, u8 enable, u16 align_size);
-
-#endif /* _HALMAC_API_88XX_PCIE_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_sdio.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_sdio.c
deleted file mode 100644
index 5811787..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_sdio.c
+++ /dev/null
@@ -1,960 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halmac_88xx_cfg.h"
-
-/**
- * halmac_init_sdio_cfg_88xx() - init SDIO
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_sdio_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_SDIO_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_REG_READ_32(halmac_adapter, REG_SDIO_FREE_TXPG);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_SDIO_TX_CTRL, 0x00000000);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_deinit_sdio_cfg_88xx() - deinit SDIO
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_deinit_sdio_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DEINIT_SDIO_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_rx_aggregation_88xx_sdio() - config rx aggregation
- * @halmac_adapter : the adapter of halmac
- * @halmac_rx_agg_mode
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_rx_aggregation_88xx_sdio(struct halmac_adapter *halmac_adapter,
-				    struct halmac_rxagg_cfg *phalmac_rxagg_cfg)
-{
-	u8 value8;
-	u8 size = 0, timeout = 0, agg_enable = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_CFG_RX_AGGREGATION);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	agg_enable = HALMAC_REG_READ_8(halmac_adapter, REG_TXDMA_PQ_MAP);
-
-	switch (phalmac_rxagg_cfg->mode) {
-	case HALMAC_RX_AGG_MODE_NONE:
-		agg_enable &= ~(BIT_RXDMA_AGG_EN);
-		break;
-	case HALMAC_RX_AGG_MODE_DMA:
-	case HALMAC_RX_AGG_MODE_USB:
-		agg_enable |= BIT_RXDMA_AGG_EN;
-		break;
-	default:
-		pr_err("halmac_cfg_rx_aggregation_88xx_usb switch case not support\n");
-		agg_enable &= ~BIT_RXDMA_AGG_EN;
-		break;
-	}
-
-	if (!phalmac_rxagg_cfg->threshold.drv_define) {
-		size = 0xFF;
-		timeout = 0x01;
-	} else {
-		size = phalmac_rxagg_cfg->threshold.size;
-		timeout = phalmac_rxagg_cfg->threshold.timeout;
-	}
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TXDMA_PQ_MAP, agg_enable);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_RXDMA_AGG_PG_TH,
-			    (u16)(size | (timeout << BIT_SHIFT_DMA_AGG_TO)));
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_RXDMA_MODE);
-	if ((agg_enable & BIT_RXDMA_AGG_EN) != 0)
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_RXDMA_MODE,
-				   value8 | BIT_DMA_MODE);
-	else
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_RXDMA_MODE,
-				   value8 & ~(BIT_DMA_MODE));
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_8_sdio_88xx() - read 1byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u8 halmac_reg_read_8_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			       u32 halmac_offset)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if ((halmac_offset & 0xFFFF0000) == 0)
-		halmac_offset |= WLAN_IOREG_OFFSET;
-
-	status = halmac_convert_to_sdio_bus_offset_88xx(halmac_adapter,
-							&halmac_offset);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s error = %x\n", __func__, status);
-		return status;
-	}
-
-	return PLATFORM_SDIO_CMD52_READ(driver_adapter, halmac_offset);
-}
-
-/**
- * halmac_reg_write_8_sdio_88xx() - write 1byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reg_write_8_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			     u32 halmac_offset, u8 halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if ((halmac_offset & 0xFFFF0000) == 0)
-		halmac_offset |= WLAN_IOREG_OFFSET;
-
-	status = halmac_convert_to_sdio_bus_offset_88xx(halmac_adapter,
-							&halmac_offset);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s error = %x\n", __func__, status);
-		return status;
-	}
-
-	PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset, halmac_data);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_16_sdio_88xx() - read 2byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u16 halmac_reg_read_16_sdio_88xx(struct halmac_adapter *halmac_adapter,
-				 u32 halmac_offset)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	union {
-		u16 word;
-		u8 byte[2];
-		__le16 le_word;
-	} value16 = {0x0000};
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if ((halmac_offset & 0xFFFF0000) == 0)
-		halmac_offset |= WLAN_IOREG_OFFSET;
-
-	status = halmac_convert_to_sdio_bus_offset_88xx(halmac_adapter,
-							&halmac_offset);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s error = %x\n", __func__, status);
-		return status;
-	}
-
-	if (halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_OFF ||
-	    (halmac_offset & (2 - 1)) != 0 ||
-	    halmac_adapter->sdio_cmd53_4byte ==
-		    HALMAC_SDIO_CMD53_4BYTE_MODE_RW ||
-	    halmac_adapter->sdio_cmd53_4byte ==
-		    HALMAC_SDIO_CMD53_4BYTE_MODE_R) {
-		value16.byte[0] =
-			PLATFORM_SDIO_CMD52_READ(driver_adapter, halmac_offset);
-		value16.byte[1] = PLATFORM_SDIO_CMD52_READ(driver_adapter,
-							   halmac_offset + 1);
-		value16.word = le16_to_cpu(value16.le_word);
-	} else {
-#if (PLATFORM_SD_CLK > HALMAC_SD_CLK_THRESHOLD_88XX)
-		if ((halmac_offset & 0xffffef00) == 0x00000000) {
-			value16.byte[0] = PLATFORM_SDIO_CMD52_READ(
-				driver_adapter, halmac_offset);
-			value16.byte[1] = PLATFORM_SDIO_CMD52_READ(
-				driver_adapter, halmac_offset + 1);
-			value16.word = le16_to_cpu(value16.word);
-		} else {
-			value16.word = PLATFORM_SDIO_CMD53_READ_16(
-				driver_adapter, halmac_offset);
-		}
-#else
-		value16.word = PLATFORM_SDIO_CMD53_READ_16(driver_adapter,
-							   halmac_offset);
-#endif
-	}
-
-	return value16.word;
-}
-
-/**
- * halmac_reg_write_16_sdio_88xx() - write 2byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reg_write_16_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset, u16 halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if ((halmac_offset & 0xFFFF0000) == 0)
-		halmac_offset |= WLAN_IOREG_OFFSET;
-
-	status = halmac_convert_to_sdio_bus_offset_88xx(halmac_adapter,
-							&halmac_offset);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s error = %x\n", __func__, status);
-		return status;
-	}
-
-	if (halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_OFF ||
-	    (halmac_offset & (2 - 1)) != 0 ||
-	    halmac_adapter->sdio_cmd53_4byte ==
-		    HALMAC_SDIO_CMD53_4BYTE_MODE_RW ||
-	    halmac_adapter->sdio_cmd53_4byte ==
-		    HALMAC_SDIO_CMD53_4BYTE_MODE_W) {
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset,
-					  (u8)(halmac_data & 0xFF));
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset + 1,
-					  (u8)((halmac_data & 0xFF00) >> 8));
-	} else {
-		PLATFORM_SDIO_CMD53_WRITE_16(driver_adapter, halmac_offset,
-					     halmac_data);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_32_sdio_88xx() - read 4byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u32 halmac_reg_read_32_sdio_88xx(struct halmac_adapter *halmac_adapter,
-				 u32 halmac_offset)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	u32 halmac_offset_old = 0;
-
-	union {
-		u32 dword;
-		u8 byte[4];
-		__le32 le_dword;
-	} value32 = {0x00000000};
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	halmac_offset_old = halmac_offset;
-
-	if ((halmac_offset & 0xFFFF0000) == 0)
-		halmac_offset |= WLAN_IOREG_OFFSET;
-
-	status = halmac_convert_to_sdio_bus_offset_88xx(halmac_adapter,
-							&halmac_offset);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s error = %x\n", __func__, status);
-		return status;
-	}
-
-	if (halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_OFF ||
-	    (halmac_offset & (4 - 1)) != 0) {
-		value32.byte[0] =
-			PLATFORM_SDIO_CMD52_READ(driver_adapter, halmac_offset);
-		value32.byte[1] = PLATFORM_SDIO_CMD52_READ(driver_adapter,
-							   halmac_offset + 1);
-		value32.byte[2] = PLATFORM_SDIO_CMD52_READ(driver_adapter,
-							   halmac_offset + 2);
-		value32.byte[3] = PLATFORM_SDIO_CMD52_READ(driver_adapter,
-							   halmac_offset + 3);
-		value32.dword = le32_to_cpu(value32.le_dword);
-	} else {
-#if (PLATFORM_SD_CLK > HALMAC_SD_CLK_THRESHOLD_88XX)
-		if ((halmac_offset_old & 0xffffef00) == 0x00000000) {
-			value32.byte[0] = PLATFORM_SDIO_CMD52_READ(
-				driver_adapter, halmac_offset);
-			value32.byte[1] = PLATFORM_SDIO_CMD52_READ(
-				driver_adapter, halmac_offset + 1);
-			value32.byte[2] = PLATFORM_SDIO_CMD52_READ(
-				driver_adapter, halmac_offset + 2);
-			value32.byte[3] = PLATFORM_SDIO_CMD52_READ(
-				driver_adapter, halmac_offset + 3);
-			value32.dword = le32_to_cpu(value32.dword);
-		} else {
-			value32.dword = PLATFORM_SDIO_CMD53_READ_32(
-				driver_adapter, halmac_offset);
-		}
-#else
-		value32.dword = PLATFORM_SDIO_CMD53_READ_32(driver_adapter,
-							    halmac_offset);
-#endif
-	}
-
-	return value32.dword;
-}
-
-/**
- * halmac_reg_write_32_sdio_88xx() - write 4byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reg_write_32_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset, u32 halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if ((halmac_offset & 0xFFFF0000) == 0)
-		halmac_offset |= WLAN_IOREG_OFFSET;
-
-	status = halmac_convert_to_sdio_bus_offset_88xx(halmac_adapter,
-							&halmac_offset);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s error = %x\n", __func__, status);
-		return status;
-	}
-
-	if (halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_OFF ||
-	    (halmac_offset & (4 - 1)) != 0) {
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset,
-					  (u8)(halmac_data & 0xFF));
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset + 1,
-					  (u8)((halmac_data & 0xFF00) >> 8));
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset + 2,
-					  (u8)((halmac_data & 0xFF0000) >> 16));
-		PLATFORM_SDIO_CMD52_WRITE(
-			driver_adapter, halmac_offset + 3,
-			(u8)((halmac_data & 0xFF000000) >> 24));
-	} else {
-		PLATFORM_SDIO_CMD53_WRITE_32(driver_adapter, halmac_offset,
-					     halmac_data);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_nbyte_sdio_88xx() - read n byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_size : register value size
- * @halmac_data : register value
- * Author : Soar
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u8 halmac_reg_read_nbyte_sdio_88xx(struct halmac_adapter *halmac_adapter,
-				   u32 halmac_offset, u32 halmac_size,
-				   u8 *halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if ((halmac_offset & 0xFFFF0000) == 0) {
-		pr_err("halmac_offset error = 0x%x\n", halmac_offset);
-		return HALMAC_RET_FAIL;
-	}
-
-	status = halmac_convert_to_sdio_bus_offset_88xx(halmac_adapter,
-							&halmac_offset);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s error = %x\n", __func__, status);
-		return status;
-	}
-
-	if (halmac_adapter->halmac_state.mac_power == HALMAC_MAC_POWER_OFF) {
-		pr_err("halmac_state error = 0x%x\n",
-		       halmac_adapter->halmac_state.mac_power);
-		return HALMAC_RET_FAIL;
-	}
-
-	PLATFORM_SDIO_CMD53_READ_N(driver_adapter, halmac_offset, halmac_size,
-				   halmac_data);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_get_sdio_tx_addr_sdio_88xx() - get CMD53 addr for the TX packet
- * @halmac_adapter : the adapter of halmac
- * @halmac_buf : tx packet, include txdesc
- * @halmac_size : tx packet size
- * @pcmd53_addr : cmd53 addr value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_get_sdio_tx_addr_88xx(struct halmac_adapter *halmac_adapter,
-			     u8 *halmac_buf, u32 halmac_size, u32 *pcmd53_addr)
-{
-	u32 four_byte_len;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_queue_select queue_sel;
-	enum halmac_dma_mapping dma_mapping;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_GET_SDIO_TX_ADDR);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (!halmac_buf) {
-		pr_err("halmac_buf is NULL!!\n");
-		return HALMAC_RET_DATA_BUF_NULL;
-	}
-
-	if (halmac_size == 0) {
-		pr_err("halmac_size is 0!!\n");
-		return HALMAC_RET_DATA_SIZE_INCORRECT;
-	}
-
-	queue_sel = (enum halmac_queue_select)GET_TX_DESC_QSEL(halmac_buf);
-
-	switch (queue_sel) {
-	case HALMAC_QUEUE_SELECT_VO:
-	case HALMAC_QUEUE_SELECT_VO_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VO];
-		break;
-	case HALMAC_QUEUE_SELECT_VI:
-	case HALMAC_QUEUE_SELECT_VI_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VI];
-		break;
-	case HALMAC_QUEUE_SELECT_BE:
-	case HALMAC_QUEUE_SELECT_BE_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BE];
-		break;
-	case HALMAC_QUEUE_SELECT_BK:
-	case HALMAC_QUEUE_SELECT_BK_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BK];
-		break;
-	case HALMAC_QUEUE_SELECT_MGNT:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_MG];
-		break;
-	case HALMAC_QUEUE_SELECT_HIGH:
-	case HALMAC_QUEUE_SELECT_BCN:
-	case HALMAC_QUEUE_SELECT_CMD:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_HI];
-		break;
-	default:
-		pr_err("Qsel is out of range\n");
-		return HALMAC_RET_QSEL_INCORRECT;
-	}
-
-	four_byte_len = (halmac_size >> 2) + ((halmac_size & (4 - 1)) ? 1 : 0);
-
-	switch (dma_mapping) {
-	case HALMAC_DMA_MAPPING_HIGH:
-		*pcmd53_addr = HALMAC_SDIO_CMD_ADDR_TXFF_HIGH;
-		break;
-	case HALMAC_DMA_MAPPING_NORMAL:
-		*pcmd53_addr = HALMAC_SDIO_CMD_ADDR_TXFF_NORMAL;
-		break;
-	case HALMAC_DMA_MAPPING_LOW:
-		*pcmd53_addr = HALMAC_SDIO_CMD_ADDR_TXFF_LOW;
-		break;
-	case HALMAC_DMA_MAPPING_EXTRA:
-		*pcmd53_addr = HALMAC_SDIO_CMD_ADDR_TXFF_EXTRA;
-		break;
-	default:
-		pr_err("DmaMapping is out of range\n");
-		return HALMAC_RET_DMA_MAP_INCORRECT;
-	}
-
-	*pcmd53_addr = (*pcmd53_addr << 13) |
-		       (four_byte_len & HALMAC_SDIO_4BYTE_LEN_MASK);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_tx_agg_align_sdio_88xx() -config sdio bus tx agg alignment
- * @halmac_adapter : the adapter of halmac
- * @enable : function enable(1)/disable(0)
- * @align_size : sdio bus tx agg alignment size (2^n, n = 3~11)
- * Author : Soar Tu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_tx_agg_align_sdio_88xx(struct halmac_adapter *halmac_adapter,
-				  u8 enable, u16 align_size)
-{
-	struct halmac_api *halmac_api;
-	void *driver_adapter = NULL;
-	u8 i, align_size_ok = 0;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_TX_AGG_ALIGN);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if ((align_size & 0xF000) != 0) {
-		pr_err("Align size is out of range\n");
-		return HALMAC_RET_FAIL;
-	}
-
-	for (i = 3; i <= 11; i++) {
-		if (align_size == 1 << i) {
-			align_size_ok = 1;
-			break;
-		}
-	}
-	if (align_size_ok == 0) {
-		pr_err("Align size is not 2^3 ~ 2^11\n");
-		return HALMAC_RET_FAIL;
-	}
-
-	/*Keep sdio tx agg alignment size for driver query*/
-	halmac_adapter->hw_config_info.tx_align_size = align_size;
-
-	if (enable)
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_RQPN_CTRL_2,
-				    0x8000 | align_size);
-	else
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_RQPN_CTRL_2,
-				    align_size);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_cfg_tx_agg_align_sdio_not_support_88xx(
-	struct halmac_adapter *halmac_adapter, u8 enable, u16 align_size)
-{
-	struct halmac_api *halmac_api;
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_TX_AGG_ALIGN);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s not support\n", __func__);
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_tx_allowed_sdio_88xx() - check tx status
- * @halmac_adapter : the adapter of halmac
- * @halmac_buf : tx packet, include txdesc
- * @halmac_size : tx packet size, include txdesc
- * Author : Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_tx_allowed_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			    u8 *halmac_buf, u32 halmac_size)
-{
-	u8 *curr_packet;
-	u16 *curr_free_space;
-	u32 i, counter;
-	u32 tx_agg_num, packet_size = 0;
-	u32 tx_required_page_num, total_required_page_num = 0;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	void *driver_adapter = NULL;
-	enum halmac_dma_mapping dma_mapping;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_TX_ALLOWED_SDIO);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	tx_agg_num = GET_TX_DESC_DMA_TXAGG_NUM(halmac_buf);
-	curr_packet = halmac_buf;
-
-	tx_agg_num = tx_agg_num == 0 ? 1 : tx_agg_num;
-
-	switch ((enum halmac_queue_select)GET_TX_DESC_QSEL(curr_packet)) {
-	case HALMAC_QUEUE_SELECT_VO:
-	case HALMAC_QUEUE_SELECT_VO_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VO];
-		break;
-	case HALMAC_QUEUE_SELECT_VI:
-	case HALMAC_QUEUE_SELECT_VI_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VI];
-		break;
-	case HALMAC_QUEUE_SELECT_BE:
-	case HALMAC_QUEUE_SELECT_BE_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BE];
-		break;
-	case HALMAC_QUEUE_SELECT_BK:
-	case HALMAC_QUEUE_SELECT_BK_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BK];
-		break;
-	case HALMAC_QUEUE_SELECT_MGNT:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_MG];
-		break;
-	case HALMAC_QUEUE_SELECT_HIGH:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_HI];
-		break;
-	case HALMAC_QUEUE_SELECT_BCN:
-	case HALMAC_QUEUE_SELECT_CMD:
-		return HALMAC_RET_SUCCESS;
-	default:
-		pr_err("Qsel is out of range\n");
-		return HALMAC_RET_QSEL_INCORRECT;
-	}
-
-	switch (dma_mapping) {
-	case HALMAC_DMA_MAPPING_HIGH:
-		curr_free_space =
-			&halmac_adapter->sdio_free_space.high_queue_number;
-		break;
-	case HALMAC_DMA_MAPPING_NORMAL:
-		curr_free_space =
-			&halmac_adapter->sdio_free_space.normal_queue_number;
-		break;
-	case HALMAC_DMA_MAPPING_LOW:
-		curr_free_space =
-			&halmac_adapter->sdio_free_space.low_queue_number;
-		break;
-	case HALMAC_DMA_MAPPING_EXTRA:
-		curr_free_space =
-			&halmac_adapter->sdio_free_space.extra_queue_number;
-		break;
-	default:
-		pr_err("DmaMapping is out of range\n");
-		return HALMAC_RET_DMA_MAP_INCORRECT;
-	}
-
-	for (i = 0; i < tx_agg_num; i++) {
-		packet_size = GET_TX_DESC_TXPKTSIZE(curr_packet) +
-			      GET_TX_DESC_OFFSET(curr_packet) +
-			      (GET_TX_DESC_PKT_OFFSET(curr_packet) << 3);
-		tx_required_page_num =
-			(packet_size >>
-			 halmac_adapter->hw_config_info.page_size_2_power) +
-			((packet_size &
-			  (halmac_adapter->hw_config_info.page_size - 1)) ?
-				 1 :
-				 0);
-		total_required_page_num += tx_required_page_num;
-
-		packet_size = HALMAC_ALIGN(packet_size, 8);
-
-		curr_packet += packet_size;
-	}
-
-	counter = 10;
-	do {
-		if ((u32)(*curr_free_space +
-			  halmac_adapter->sdio_free_space.public_queue_number) >
-		    total_required_page_num) {
-			if (*curr_free_space >= total_required_page_num) {
-				*curr_free_space -=
-					(u16)total_required_page_num;
-			} else {
-				halmac_adapter->sdio_free_space
-					.public_queue_number -=
-					(u16)(total_required_page_num -
-					      *curr_free_space);
-				*curr_free_space = 0;
-			}
-
-			status = halmac_check_oqt_88xx(halmac_adapter,
-						       tx_agg_num, halmac_buf);
-
-			if (status != HALMAC_RET_SUCCESS)
-				return status;
-
-			break;
-		}
-
-		halmac_update_sdio_free_page_88xx(halmac_adapter);
-
-		counter--;
-		if (counter == 0)
-			return HALMAC_RET_FREE_SPACE_NOT_ENOUGH;
-	} while (1);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_indirect_32_sdio_88xx() - read MAC reg by SDIO reg
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : Soar
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u32 halmac_reg_read_indirect_32_sdio_88xx(struct halmac_adapter *halmac_adapter,
-					  u32 halmac_offset)
-{
-	u8 rtemp;
-	u32 counter = 1000;
-	void *driver_adapter = NULL;
-
-	union {
-		u32 dword;
-		u8 byte[4];
-	} value32 = {0x00000000};
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	PLATFORM_SDIO_CMD53_WRITE_32(
-		driver_adapter,
-		(HALMAC_SDIO_CMD_ADDR_SDIO_REG << 13) |
-			(REG_SDIO_INDIRECT_REG_CFG & HALMAC_SDIO_LOCAL_MSK),
-		halmac_offset | BIT(19) | BIT(17));
-
-	do {
-		rtemp = PLATFORM_SDIO_CMD52_READ(
-			driver_adapter,
-			(HALMAC_SDIO_CMD_ADDR_SDIO_REG << 13) |
-				((REG_SDIO_INDIRECT_REG_CFG + 2) &
-				 HALMAC_SDIO_LOCAL_MSK));
-		counter--;
-	} while ((rtemp & BIT(4)) != 0 && counter > 0);
-
-	value32.dword = PLATFORM_SDIO_CMD53_READ_32(
-		driver_adapter,
-		(HALMAC_SDIO_CMD_ADDR_SDIO_REG << 13) |
-			(REG_SDIO_INDIRECT_REG_DATA & HALMAC_SDIO_LOCAL_MSK));
-
-	return value32.dword;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_sdio.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_sdio.h
deleted file mode 100644
index 2a891b0..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_sdio.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_API_88XX_SDIO_H_
-#define _HALMAC_API_88XX_SDIO_H_
-
-#include "../halmac_2_platform.h"
-#include "../halmac_type.h"
-
-enum halmac_ret_status
-halmac_init_sdio_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_deinit_sdio_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_cfg_rx_aggregation_88xx_sdio(struct halmac_adapter *halmac_adapter,
-				    struct halmac_rxagg_cfg *phalmac_rxagg_cfg);
-
-u8 halmac_reg_read_8_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			       u32 halmac_offset);
-
-enum halmac_ret_status
-halmac_reg_write_8_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			     u32 halmac_offset, u8 halmac_data);
-
-u16 halmac_reg_read_16_sdio_88xx(struct halmac_adapter *halmac_adapter,
-				 u32 halmac_offset);
-
-enum halmac_ret_status
-halmac_reg_write_16_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset, u16 halmac_data);
-
-u32 halmac_reg_read_32_sdio_88xx(struct halmac_adapter *halmac_adapter,
-				 u32 halmac_offset);
-
-enum halmac_ret_status
-halmac_reg_write_32_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset, u32 halmac_data);
-
-enum halmac_ret_status
-halmac_get_sdio_tx_addr_88xx(struct halmac_adapter *halmac_adapter,
-			     u8 *halmac_buf, u32 halmac_size, u32 *pcmd53_addr);
-
-enum halmac_ret_status
-halmac_cfg_tx_agg_align_sdio_88xx(struct halmac_adapter *halmac_adapter,
-				  u8 enable, u16 align_size);
-
-enum halmac_ret_status halmac_cfg_tx_agg_align_sdio_not_support_88xx(
-	struct halmac_adapter *halmac_adapter, u8 enable, u16 align_size);
-
-enum halmac_ret_status
-halmac_tx_allowed_sdio_88xx(struct halmac_adapter *halmac_adapter,
-			    u8 *halmac_buf, u32 halmac_size);
-
-u32 halmac_reg_read_indirect_32_sdio_88xx(struct halmac_adapter *halmac_adapter,
-					  u32 halmac_offset);
-
-u8 halmac_reg_read_nbyte_sdio_88xx(struct halmac_adapter *halmac_adapter,
-				   u32 halmac_offset, u32 halmac_size,
-				   u8 *halmac_data);
-
-#endif /* _HALMAC_API_88XX_SDIO_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_usb.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_usb.c
deleted file mode 100644
index 0ae0d02..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_usb.c
+++ /dev/null
@@ -1,540 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halmac_88xx_cfg.h"
-
-/**
- * halmac_init_usb_cfg_88xx() - init USB
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_usb_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-	u8 value8 = 0;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_INIT_USB_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	value8 |= (BIT_DMA_MODE |
-		   (0x3 << BIT_SHIFT_BURST_CNT)); /* burst number = 4 */
-
-	if (PLATFORM_REG_READ_8(driver_adapter, REG_SYS_CFG2 + 3) ==
-	    0x20) { /* usb3.0 */
-		value8 |= (HALMAC_USB_BURST_SIZE_3_0 << BIT_SHIFT_BURST_SIZE);
-	} else {
-		if ((PLATFORM_REG_READ_8(driver_adapter, REG_USB_USBSTAT) &
-		     0x3) == 0x1) /* usb2.0 */
-			value8 |= HALMAC_USB_BURST_SIZE_2_0_HSPEED
-				  << BIT_SHIFT_BURST_SIZE;
-		else /* usb1.1 */
-			value8 |= HALMAC_USB_BURST_SIZE_2_0_FSPEED
-				  << BIT_SHIFT_BURST_SIZE;
-	}
-
-	PLATFORM_REG_WRITE_8(driver_adapter, REG_RXDMA_MODE, value8);
-	PLATFORM_REG_WRITE_16(
-		driver_adapter, REG_TXDMA_OFFSET_CHK,
-		PLATFORM_REG_READ_16(driver_adapter, REG_TXDMA_OFFSET_CHK) |
-			BIT_DROP_DATA_EN);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_deinit_usb_cfg_88xx() - deinit USB
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_deinit_usb_cfg_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_DEINIT_USB_CFG);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_rx_aggregation_88xx_usb() - config rx aggregation
- * @halmac_adapter : the adapter of halmac
- * @halmac_rx_agg_mode
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_cfg_rx_aggregation_88xx_usb(struct halmac_adapter *halmac_adapter,
-				   struct halmac_rxagg_cfg *phalmac_rxagg_cfg)
-{
-	u8 dma_usb_agg;
-	u8 size = 0, timeout = 0, agg_enable = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_CFG_RX_AGGREGATION);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	dma_usb_agg =
-		HALMAC_REG_READ_8(halmac_adapter, REG_RXDMA_AGG_PG_TH + 3);
-	agg_enable = HALMAC_REG_READ_8(halmac_adapter, REG_TXDMA_PQ_MAP);
-
-	switch (phalmac_rxagg_cfg->mode) {
-	case HALMAC_RX_AGG_MODE_NONE:
-		agg_enable &= ~BIT_RXDMA_AGG_EN;
-		break;
-	case HALMAC_RX_AGG_MODE_DMA:
-		agg_enable |= BIT_RXDMA_AGG_EN;
-		dma_usb_agg |= BIT(7);
-		break;
-
-	case HALMAC_RX_AGG_MODE_USB:
-		agg_enable |= BIT_RXDMA_AGG_EN;
-		dma_usb_agg &= ~BIT(7);
-		break;
-	default:
-		pr_err("%s switch case not support\n", __func__);
-		agg_enable &= ~BIT_RXDMA_AGG_EN;
-		break;
-	}
-
-	if (!phalmac_rxagg_cfg->threshold.drv_define) {
-		if (PLATFORM_REG_READ_8(driver_adapter, REG_SYS_CFG2 + 3) ==
-		    0x20) {
-			/* usb3.0 */
-			size = 0x5;
-			timeout = 0xA;
-		} else {
-			/* usb2.0 */
-			size = 0x5;
-			timeout = 0x20;
-		}
-	} else {
-		size = phalmac_rxagg_cfg->threshold.size;
-		timeout = phalmac_rxagg_cfg->threshold.timeout;
-	}
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_TXDMA_PQ_MAP, agg_enable);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_RXDMA_AGG_PG_TH + 3,
-			   dma_usb_agg);
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_RXDMA_AGG_PG_TH,
-			    (u16)(size | (timeout << BIT_SHIFT_DMA_AGG_TO)));
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_8_usb_88xx() - read 1byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u8 halmac_reg_read_8_usb_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	return PLATFORM_REG_READ_8(driver_adapter, halmac_offset);
-}
-
-/**
- * halmac_reg_write_8_usb_88xx() - write 1byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reg_write_8_usb_88xx(struct halmac_adapter *halmac_adapter,
-			    u32 halmac_offset, u8 halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	PLATFORM_REG_WRITE_8(driver_adapter, halmac_offset, halmac_data);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_16_usb_88xx() - read 2byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u16 halmac_reg_read_16_usb_88xx(struct halmac_adapter *halmac_adapter,
-				u32 halmac_offset)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	union {
-		u16 word;
-		u8 byte[2];
-	} value16 = {0x0000};
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	value16.word = PLATFORM_REG_READ_16(driver_adapter, halmac_offset);
-
-	return value16.word;
-}
-
-/**
- * halmac_reg_write_16_usb_88xx() - write 2byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reg_write_16_usb_88xx(struct halmac_adapter *halmac_adapter,
-			     u32 halmac_offset, u16 halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	PLATFORM_REG_WRITE_16(driver_adapter, halmac_offset, halmac_data);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_reg_read_32_usb_88xx() - read 4byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-u32 halmac_reg_read_32_usb_88xx(struct halmac_adapter *halmac_adapter,
-				u32 halmac_offset)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	union {
-		u32 dword;
-		u8 byte[4];
-	} value32 = {0x00000000};
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	value32.dword = PLATFORM_REG_READ_32(driver_adapter, halmac_offset);
-
-	return value32.dword;
-}
-
-/**
- * halmac_reg_write_32_usb_88xx() - write 4byte register
- * @halmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_reg_write_32_usb_88xx(struct halmac_adapter *halmac_adapter,
-			     u32 halmac_offset, u32 halmac_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	PLATFORM_REG_WRITE_32(driver_adapter, halmac_offset, halmac_data);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_set_bulkout_num_usb_88xx() - inform bulk-out num
- * @halmac_adapter : the adapter of halmac
- * @bulkout_num : usb bulk-out number
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_set_bulkout_num_88xx(struct halmac_adapter *halmac_adapter,
-			    u8 bulkout_num)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_SET_BULKOUT_NUM);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	halmac_adapter->halmac_bulkout_num = bulkout_num;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_get_usb_bulkout_id_usb_88xx() - get bulk out id for the TX packet
- * @halmac_adapter : the adapter of halmac
- * @halmac_buf : tx packet, include txdesc
- * @halmac_size : tx packet size
- * @bulkout_id : usb bulk-out id
- * Author : KaiYuan Chang
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_get_usb_bulkout_id_88xx(struct halmac_adapter *halmac_adapter,
-			       u8 *halmac_buf, u32 halmac_size, u8 *bulkout_id)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_queue_select queue_sel;
-	enum halmac_dma_mapping dma_mapping;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter,
-				  HALMAC_API_GET_USB_BULKOUT_ID);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	if (!halmac_buf) {
-		pr_err("halmac_buf is NULL!!\n");
-		return HALMAC_RET_DATA_BUF_NULL;
-	}
-
-	if (halmac_size == 0) {
-		pr_err("halmac_size is 0!!\n");
-		return HALMAC_RET_DATA_SIZE_INCORRECT;
-	}
-
-	queue_sel = (enum halmac_queue_select)GET_TX_DESC_QSEL(halmac_buf);
-
-	switch (queue_sel) {
-	case HALMAC_QUEUE_SELECT_VO:
-	case HALMAC_QUEUE_SELECT_VO_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VO];
-		break;
-	case HALMAC_QUEUE_SELECT_VI:
-	case HALMAC_QUEUE_SELECT_VI_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VI];
-		break;
-	case HALMAC_QUEUE_SELECT_BE:
-	case HALMAC_QUEUE_SELECT_BE_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BE];
-		break;
-	case HALMAC_QUEUE_SELECT_BK:
-	case HALMAC_QUEUE_SELECT_BK_V2:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BK];
-		break;
-	case HALMAC_QUEUE_SELECT_MGNT:
-		dma_mapping =
-			halmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_MG];
-		break;
-	case HALMAC_QUEUE_SELECT_HIGH:
-	case HALMAC_QUEUE_SELECT_BCN:
-	case HALMAC_QUEUE_SELECT_CMD:
-		dma_mapping = HALMAC_DMA_MAPPING_HIGH;
-		break;
-	default:
-		pr_err("Qsel is out of range\n");
-		return HALMAC_RET_QSEL_INCORRECT;
-	}
-
-	switch (dma_mapping) {
-	case HALMAC_DMA_MAPPING_HIGH:
-		*bulkout_id = 0;
-		break;
-	case HALMAC_DMA_MAPPING_NORMAL:
-		*bulkout_id = 1;
-		break;
-	case HALMAC_DMA_MAPPING_LOW:
-		*bulkout_id = 2;
-		break;
-	case HALMAC_DMA_MAPPING_EXTRA:
-		*bulkout_id = 3;
-		break;
-	default:
-		pr_err("DmaMapping is out of range\n");
-		return HALMAC_RET_DMA_MAP_INCORRECT;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_cfg_tx_agg_align_usb_88xx() -config sdio bus tx agg alignment
- * @halmac_adapter : the adapter of halmac
- * @enable : function enable(1)/disable(0)
- * @align_size : sdio bus tx agg alignment size (2^n, n = 3~11)
- * Author : Soar Tu
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_cfg_tx_agg_align_usb_not_support_88xx(
-	struct halmac_adapter *halmac_adapter, u8 enable, u16 align_size)
-{
-	struct halmac_api *halmac_api;
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	if (halmac_api_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_API_INVALID;
-
-	halmac_api_record_id_88xx(halmac_adapter, HALMAC_API_CFG_TX_AGG_ALIGN);
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s ==========>\n", __func__);
-
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s not support\n", __func__);
-	HALMAC_RT_TRACE(
-		driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-		"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_usb.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_usb.h
deleted file mode 100644
index befa4a5..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx_usb.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_API_88XX_USB_H_
-#define _HALMAC_API_88XX_USB_H_
-
-#include "../halmac_2_platform.h"
-#include "../halmac_type.h"
-
-enum halmac_ret_status
-halmac_init_usb_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_deinit_usb_cfg_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_cfg_rx_aggregation_88xx_usb(struct halmac_adapter *halmac_adapter,
-				   struct halmac_rxagg_cfg *phalmac_rxagg_cfg);
-
-u8 halmac_reg_read_8_usb_88xx(struct halmac_adapter *halmac_adapter,
-			      u32 halmac_offset);
-
-enum halmac_ret_status
-halmac_reg_write_8_usb_88xx(struct halmac_adapter *halmac_adapter,
-			    u32 halmac_offset, u8 halmac_data);
-
-u16 halmac_reg_read_16_usb_88xx(struct halmac_adapter *halmac_adapter,
-				u32 halmac_offset);
-
-enum halmac_ret_status
-halmac_reg_write_16_usb_88xx(struct halmac_adapter *halmac_adapter,
-			     u32 halmac_offset, u16 halmac_data);
-
-u32 halmac_reg_read_32_usb_88xx(struct halmac_adapter *halmac_adapter,
-				u32 halmac_offset);
-
-enum halmac_ret_status
-halmac_reg_write_32_usb_88xx(struct halmac_adapter *halmac_adapter,
-			     u32 halmac_offset, u32 halmac_data);
-
-enum halmac_ret_status
-halmac_set_bulkout_num_88xx(struct halmac_adapter *halmac_adapter,
-			    u8 bulkout_num);
-
-enum halmac_ret_status
-halmac_get_usb_bulkout_id_88xx(struct halmac_adapter *halmac_adapter,
-			       u8 *halmac_buf, u32 halmac_size, u8 *bulkout_id);
-
-enum halmac_ret_status halmac_cfg_tx_agg_align_usb_not_support_88xx(
-	struct halmac_adapter *halmac_adapter, u8 enable, u16 align_size);
-
-#endif /* _HALMAC_API_88XX_USB_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c
deleted file mode 100644
index ddbeff8..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c
+++ /dev/null
@@ -1,4465 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halmac_88xx_cfg.h"
-
-static enum halmac_ret_status
-halmac_dump_efuse_fw_88xx(struct halmac_adapter *halmac_adapter);
-
-static enum halmac_ret_status
-halmac_dump_efuse_drv_88xx(struct halmac_adapter *halmac_adapter);
-
-static enum halmac_ret_status
-halmac_update_eeprom_mask_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_pg_efuse_info *pg_efuse_info,
-			       u8 *eeprom_mask_updated);
-
-static enum halmac_ret_status
-halmac_check_efuse_enough_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_pg_efuse_info *pg_efuse_info,
-			       u8 *eeprom_mask_updated);
-
-static enum halmac_ret_status
-halmac_program_efuse_88xx(struct halmac_adapter *halmac_adapter,
-			  struct halmac_pg_efuse_info *pg_efuse_info,
-			  u8 *eeprom_mask_updated);
-
-static enum halmac_ret_status
-halmac_pwr_sub_seq_parer_88xx(struct halmac_adapter *halmac_adapter, u8 cut,
-			      u8 fab, u8 intf,
-			      struct halmac_wl_pwr_cfg_ *pwr_sub_seq_cfg);
-
-static enum halmac_ret_status
-halmac_parse_c2h_debug_88xx(struct halmac_adapter *halmac_adapter, u8 *c2h_buf,
-			    u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_scan_status_rpt_88xx(struct halmac_adapter *halmac_adapter,
-				  u8 *c2h_buf, u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_psd_data_88xx(struct halmac_adapter *halmac_adapter, u8 *c2h_buf,
-			   u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_efuse_data_88xx(struct halmac_adapter *halmac_adapter, u8 *c2h_buf,
-			     u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_88xx(struct halmac_adapter *halmac_adapter, u8 *c2h_buf,
-			  u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_enqueue_para_buff_88xx(struct halmac_adapter *halmac_adapter,
-			      struct halmac_phy_parameter_info *para_info,
-			      u8 *curr_buff_wptr, bool *end_cmd);
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_phy_efuse_88xx(struct halmac_adapter *halmac_adapter,
-				    u8 *c2h_buf, u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_cfg_para_88xx(struct halmac_adapter *halmac_adapter,
-				   u8 *c2h_buf, u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_gen_cfg_para_h2c_88xx(struct halmac_adapter *halmac_adapter,
-			     u8 *h2c_buff);
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_update_packet_88xx(struct halmac_adapter *halmac_adapter,
-					u8 *c2h_buf, u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_update_datapack_88xx(struct halmac_adapter *halmac_adapter,
-					  u8 *c2h_buf, u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_run_datapack_88xx(struct halmac_adapter *halmac_adapter,
-				       u8 *c2h_buf, u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_channel_switch_88xx(struct halmac_adapter *halmac_adapter,
-					 u8 *c2h_buf, u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_iqk_88xx(struct halmac_adapter *halmac_adapter,
-			      u8 *c2h_buf, u32 c2h_size);
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_power_tracking_88xx(struct halmac_adapter *halmac_adapter,
-					 u8 *c2h_buf, u32 c2h_size);
-
-void halmac_init_offload_feature_state_machine_88xx(
-	struct halmac_adapter *halmac_adapter)
-{
-	struct halmac_state *state = &halmac_adapter->halmac_state;
-
-	state->efuse_state_set.efuse_cmd_construct_state =
-		HALMAC_EFUSE_CMD_CONSTRUCT_IDLE;
-	state->efuse_state_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-	state->efuse_state_set.seq_num = halmac_adapter->h2c_packet_seq;
-
-	state->cfg_para_state_set.cfg_para_cmd_construct_state =
-		HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE;
-	state->cfg_para_state_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-	state->cfg_para_state_set.seq_num = halmac_adapter->h2c_packet_seq;
-
-	state->scan_state_set.scan_cmd_construct_state =
-		HALMAC_SCAN_CMD_CONSTRUCT_IDLE;
-	state->scan_state_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-	state->scan_state_set.seq_num = halmac_adapter->h2c_packet_seq;
-
-	state->update_packet_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-	state->update_packet_set.seq_num = halmac_adapter->h2c_packet_seq;
-
-	state->iqk_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-	state->iqk_set.seq_num = halmac_adapter->h2c_packet_seq;
-
-	state->power_tracking_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-	state->power_tracking_set.seq_num = halmac_adapter->h2c_packet_seq;
-
-	state->psd_set.process_status = HALMAC_CMD_PROCESS_IDLE;
-	state->psd_set.seq_num = halmac_adapter->h2c_packet_seq;
-	state->psd_set.data_size = 0;
-	state->psd_set.segment_size = 0;
-	state->psd_set.data = NULL;
-}
-
-enum halmac_ret_status
-halmac_dump_efuse_88xx(struct halmac_adapter *halmac_adapter,
-		       enum halmac_efuse_read_cfg cfg)
-{
-	u32 chk_h2c_init;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api =
-		(struct halmac_api *)halmac_adapter->halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.efuse_state_set.process_status;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	*process_status = HALMAC_CMD_PROCESS_SENDING;
-
-	if (halmac_transition_efuse_state_88xx(
-		    halmac_adapter, HALMAC_EFUSE_CMD_CONSTRUCT_H2C_SENT) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	if (cfg == HALMAC_EFUSE_R_AUTO) {
-		chk_h2c_init = HALMAC_REG_READ_32(halmac_adapter,
-						  REG_H2C_PKT_READADDR);
-		if (halmac_adapter->halmac_state.dlfw_state ==
-			    HALMAC_DLFW_NONE ||
-		    chk_h2c_init == 0)
-			status = halmac_dump_efuse_drv_88xx(halmac_adapter);
-		else
-			status = halmac_dump_efuse_fw_88xx(halmac_adapter);
-	} else if (cfg == HALMAC_EFUSE_R_FW) {
-		status = halmac_dump_efuse_fw_88xx(halmac_adapter);
-	} else {
-		status = halmac_dump_efuse_drv_88xx(halmac_adapter);
-	}
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_read_efuse error = %x\n", status);
-		return status;
-	}
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_func_read_efuse_88xx(struct halmac_adapter *halmac_adapter, u32 offset,
-			    u32 size, u8 *efuse_map)
-{
-	void *driver_adapter = NULL;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	if (!efuse_map) {
-		pr_err("Malloc for dump efuse map error\n");
-		return HALMAC_RET_NULL_POINTER;
-	}
-
-	if (halmac_adapter->hal_efuse_map_valid)
-		memcpy(efuse_map, halmac_adapter->hal_efuse_map + offset, size);
-	else if (halmac_read_hw_efuse_88xx(halmac_adapter, offset, size,
-					   efuse_map) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_EFUSE_R_FAIL;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_read_hw_efuse_88xx(struct halmac_adapter *halmac_adapter, u32 offset,
-			  u32 size, u8 *efuse_map)
-{
-	u8 value8;
-	u32 value32;
-	u32 address;
-	u32 tmp32, counter;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	/* Read efuse no need 2.5V LDO */
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_LDO_EFUSE_CTRL + 3);
-	if (value8 & BIT(7))
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_LDO_EFUSE_CTRL + 3,
-				   (u8)(value8 & ~(BIT(7))));
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_EFUSE_CTRL);
-
-	for (address = offset; address < offset + size; address++) {
-		value32 = value32 &
-			  ~((BIT_MASK_EF_DATA) |
-			    (BIT_MASK_EF_ADDR << BIT_SHIFT_EF_ADDR));
-		value32 = value32 |
-			  ((address & BIT_MASK_EF_ADDR) << BIT_SHIFT_EF_ADDR);
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_EFUSE_CTRL,
-				    value32 & (~BIT_EF_FLAG));
-
-		counter = 1000000;
-		do {
-			udelay(1);
-			tmp32 = HALMAC_REG_READ_32(halmac_adapter,
-						   REG_EFUSE_CTRL);
-			counter--;
-			if (counter == 0) {
-				pr_err("HALMAC_RET_EFUSE_R_FAIL\n");
-				return HALMAC_RET_EFUSE_R_FAIL;
-			}
-		} while ((tmp32 & BIT_EF_FLAG) == 0);
-
-		*(efuse_map + address - offset) =
-			(u8)(tmp32 & BIT_MASK_EF_DATA);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_dump_efuse_drv_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u8 *efuse_map = NULL;
-	u32 efuse_size;
-	void *driver_adapter = NULL;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	efuse_size = halmac_adapter->hw_config_info.efuse_size;
-
-	if (!halmac_adapter->hal_efuse_map) {
-		halmac_adapter->hal_efuse_map = kzalloc(efuse_size, GFP_KERNEL);
-		if (!halmac_adapter->hal_efuse_map)
-			return HALMAC_RET_MALLOC_FAIL;
-	}
-
-	efuse_map = kzalloc(efuse_size, GFP_KERNEL);
-	if (!efuse_map)
-		return HALMAC_RET_MALLOC_FAIL;
-
-	if (halmac_read_hw_efuse_88xx(halmac_adapter, 0, efuse_size,
-				      efuse_map) != HALMAC_RET_SUCCESS) {
-		kfree(efuse_map);
-		return HALMAC_RET_EFUSE_R_FAIL;
-	}
-
-	spin_lock(&halmac_adapter->efuse_lock);
-	memcpy(halmac_adapter->hal_efuse_map, efuse_map, efuse_size);
-	halmac_adapter->hal_efuse_map_valid = true;
-	spin_unlock(&halmac_adapter->efuse_lock);
-
-	kfree(efuse_map);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_dump_efuse_fw_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = NULL;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_DUMP_PHYSICAL_EFUSE;
-	h2c_header_info.content_size = 0;
-	h2c_header_info.ack = true;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-	halmac_adapter->halmac_state.efuse_state_set.seq_num = h2c_seq_mum;
-
-	if (!halmac_adapter->hal_efuse_map) {
-		halmac_adapter->hal_efuse_map = kzalloc(
-			halmac_adapter->hw_config_info.efuse_size, GFP_KERNEL);
-		if (!halmac_adapter->hal_efuse_map)
-			return HALMAC_RET_MALLOC_FAIL;
-	}
-
-	if (!halmac_adapter->hal_efuse_map_valid) {
-		status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-						  HALMAC_H2C_CMD_SIZE_88XX,
-						  true);
-		if (status != HALMAC_RET_SUCCESS) {
-			pr_err("halmac_read_efuse_fw Fail = %x!!\n", status);
-			return status;
-		}
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_func_write_efuse_88xx(struct halmac_adapter *halmac_adapter, u32 offset,
-			     u8 value)
-{
-	const u8 wite_protect_code = 0x69;
-	u32 value32, tmp32, counter;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	spin_lock(&halmac_adapter->efuse_lock);
-	halmac_adapter->hal_efuse_map_valid = false;
-	spin_unlock(&halmac_adapter->efuse_lock);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PMC_DBG_CTRL2 + 3,
-			   wite_protect_code);
-
-	/* Enable 2.5V LDO */
-	HALMAC_REG_WRITE_8(
-		halmac_adapter, REG_LDO_EFUSE_CTRL + 3,
-		(u8)(HALMAC_REG_READ_8(halmac_adapter, REG_LDO_EFUSE_CTRL + 3) |
-		     BIT(7)));
-
-	value32 = HALMAC_REG_READ_32(halmac_adapter, REG_EFUSE_CTRL);
-	value32 =
-		value32 &
-		~((BIT_MASK_EF_DATA) | (BIT_MASK_EF_ADDR << BIT_SHIFT_EF_ADDR));
-	value32 = value32 | ((offset & BIT_MASK_EF_ADDR) << BIT_SHIFT_EF_ADDR) |
-		  (value & BIT_MASK_EF_DATA);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_EFUSE_CTRL,
-			    value32 | BIT_EF_FLAG);
-
-	counter = 1000000;
-	do {
-		udelay(1);
-		tmp32 = HALMAC_REG_READ_32(halmac_adapter, REG_EFUSE_CTRL);
-		counter--;
-		if (counter == 0) {
-			pr_err("halmac_write_efuse Fail !!\n");
-			return HALMAC_RET_EFUSE_W_FAIL;
-		}
-	} while ((tmp32 & BIT_EF_FLAG) == BIT_EF_FLAG);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PMC_DBG_CTRL2 + 3, 0x00);
-
-	/* Disable 2.5V LDO */
-	HALMAC_REG_WRITE_8(
-		halmac_adapter, REG_LDO_EFUSE_CTRL + 3,
-		(u8)(HALMAC_REG_READ_8(halmac_adapter, REG_LDO_EFUSE_CTRL + 3) &
-		     ~(BIT(7))));
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_func_switch_efuse_bank_88xx(struct halmac_adapter *halmac_adapter,
-				   enum halmac_efuse_bank efuse_bank)
-{
-	u8 reg_value;
-	struct halmac_api *halmac_api;
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (halmac_transition_efuse_state_88xx(
-		    halmac_adapter, HALMAC_EFUSE_CMD_CONSTRUCT_BUSY) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	reg_value = HALMAC_REG_READ_8(halmac_adapter, REG_LDO_EFUSE_CTRL + 1);
-
-	if (efuse_bank == (reg_value & (BIT(0) | BIT(1))))
-		return HALMAC_RET_SUCCESS;
-
-	reg_value &= ~(BIT(0) | BIT(1));
-	reg_value |= efuse_bank;
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_LDO_EFUSE_CTRL + 1, reg_value);
-
-	if ((HALMAC_REG_READ_8(halmac_adapter, REG_LDO_EFUSE_CTRL + 1) &
-	     (BIT(0) | BIT(1))) != efuse_bank)
-		return HALMAC_RET_SWITCH_EFUSE_BANK_FAIL;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_eeprom_parser_88xx(struct halmac_adapter *halmac_adapter,
-			  u8 *physical_efuse_map, u8 *logical_efuse_map)
-{
-	u8 j;
-	u8 value8;
-	u8 block_index;
-	u8 valid_word_enable, word_enable;
-	u8 efuse_read_header, efuse_read_header2 = 0;
-	u32 eeprom_index;
-	u32 efuse_index = 0;
-	u32 eeprom_size = halmac_adapter->hw_config_info.eeprom_size;
-	void *driver_adapter = NULL;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	memset(logical_efuse_map, 0xFF, eeprom_size);
-
-	do {
-		value8 = *(physical_efuse_map + efuse_index);
-		efuse_read_header = value8;
-
-		if ((efuse_read_header & 0x1f) == 0x0f) {
-			efuse_index++;
-			value8 = *(physical_efuse_map + efuse_index);
-			efuse_read_header2 = value8;
-			block_index = ((efuse_read_header2 & 0xF0) >> 1) |
-				      ((efuse_read_header >> 5) & 0x07);
-			word_enable = efuse_read_header2 & 0x0F;
-		} else {
-			block_index = (efuse_read_header & 0xF0) >> 4;
-			word_enable = efuse_read_header & 0x0F;
-		}
-
-		if (efuse_read_header == 0xff)
-			break;
-
-		efuse_index++;
-
-		if (efuse_index >= halmac_adapter->hw_config_info.efuse_size -
-					   HALMAC_PROTECTED_EFUSE_SIZE_88XX - 1)
-			return HALMAC_RET_EEPROM_PARSING_FAIL;
-
-		for (j = 0; j < 4; j++) {
-			valid_word_enable =
-				(u8)((~(word_enable >> j)) & BIT(0));
-			if (valid_word_enable != 1)
-				continue;
-
-			eeprom_index = (block_index << 3) + (j << 1);
-
-			if ((eeprom_index + 1) > eeprom_size) {
-				pr_err("Error: EEPROM addr exceeds eeprom_size:0x%X, at eFuse 0x%X\n",
-				       eeprom_size, efuse_index - 1);
-				if ((efuse_read_header & 0x1f) == 0x0f)
-					pr_err("Error: EEPROM header: 0x%X, 0x%X,\n",
-					       efuse_read_header,
-					       efuse_read_header2);
-				else
-					pr_err("Error: EEPROM header: 0x%X,\n",
-					       efuse_read_header);
-
-				return HALMAC_RET_EEPROM_PARSING_FAIL;
-			}
-
-			value8 = *(physical_efuse_map + efuse_index);
-			*(logical_efuse_map + eeprom_index) = value8;
-
-			eeprom_index++;
-			efuse_index++;
-
-			if (efuse_index >
-			    halmac_adapter->hw_config_info.efuse_size -
-				    HALMAC_PROTECTED_EFUSE_SIZE_88XX - 1)
-				return HALMAC_RET_EEPROM_PARSING_FAIL;
-
-			value8 = *(physical_efuse_map + efuse_index);
-			*(logical_efuse_map + eeprom_index) = value8;
-
-			efuse_index++;
-
-			if (efuse_index >
-			    halmac_adapter->hw_config_info.efuse_size -
-				    HALMAC_PROTECTED_EFUSE_SIZE_88XX)
-				return HALMAC_RET_EEPROM_PARSING_FAIL;
-		}
-	} while (1);
-
-	halmac_adapter->efuse_end = efuse_index;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_read_logical_efuse_map_88xx(struct halmac_adapter *halmac_adapter,
-				   u8 *map)
-{
-	u8 *efuse_map = NULL;
-	u32 efuse_size;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	efuse_size = halmac_adapter->hw_config_info.efuse_size;
-
-	if (!halmac_adapter->hal_efuse_map_valid) {
-		efuse_map = kzalloc(efuse_size, GFP_KERNEL);
-		if (!efuse_map)
-			return HALMAC_RET_MALLOC_FAIL;
-
-		status = halmac_func_read_efuse_88xx(halmac_adapter, 0,
-						     efuse_size, efuse_map);
-		if (status != HALMAC_RET_SUCCESS) {
-			pr_err("[ERR]halmac_read_efuse error = %x\n", status);
-			kfree(efuse_map);
-			return status;
-		}
-
-		if (!halmac_adapter->hal_efuse_map) {
-			halmac_adapter->hal_efuse_map =
-				kzalloc(efuse_size, GFP_KERNEL);
-			if (!halmac_adapter->hal_efuse_map) {
-				kfree(efuse_map);
-				return HALMAC_RET_MALLOC_FAIL;
-			}
-		}
-
-		spin_lock(&halmac_adapter->efuse_lock);
-		memcpy(halmac_adapter->hal_efuse_map, efuse_map, efuse_size);
-		halmac_adapter->hal_efuse_map_valid = true;
-		spin_unlock(&halmac_adapter->efuse_lock);
-
-		kfree(efuse_map);
-	}
-
-	if (halmac_eeprom_parser_88xx(halmac_adapter,
-				      halmac_adapter->hal_efuse_map,
-				      map) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_EEPROM_PARSING_FAIL;
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_func_write_logical_efuse_88xx(struct halmac_adapter *halmac_adapter,
-				     u32 offset, u8 value)
-{
-	u8 pg_efuse_byte1, pg_efuse_byte2;
-	u8 pg_block, pg_block_index;
-	u8 pg_efuse_header, pg_efuse_header2;
-	u8 *eeprom_map = NULL;
-	u32 eeprom_size = halmac_adapter->hw_config_info.eeprom_size;
-	u32 efuse_end, pg_efuse_num;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	eeprom_map = kzalloc(eeprom_size, GFP_KERNEL);
-	if (!eeprom_map)
-		return HALMAC_RET_MALLOC_FAIL;
-	memset(eeprom_map, 0xFF, eeprom_size);
-
-	status = halmac_read_logical_efuse_map_88xx(halmac_adapter, eeprom_map);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("[ERR]halmac_read_logical_efuse_map_88xx error = %x\n",
-		       status);
-		kfree(eeprom_map);
-		return status;
-	}
-
-	if (*(eeprom_map + offset) != value) {
-		efuse_end = halmac_adapter->efuse_end;
-		pg_block = (u8)(offset >> 3);
-		pg_block_index = (u8)((offset & (8 - 1)) >> 1);
-
-		if (offset > 0x7f) {
-			pg_efuse_header =
-				(((pg_block & 0x07) << 5) & 0xE0) | 0x0F;
-			pg_efuse_header2 =
-				(u8)(((pg_block & 0x78) << 1) +
-				     ((0x1 << pg_block_index) ^ 0x0F));
-		} else {
-			pg_efuse_header =
-				(u8)((pg_block << 4) +
-				     ((0x01 << pg_block_index) ^ 0x0F));
-		}
-
-		if ((offset & 1) == 0) {
-			pg_efuse_byte1 = value;
-			pg_efuse_byte2 = *(eeprom_map + offset + 1);
-		} else {
-			pg_efuse_byte1 = *(eeprom_map + offset - 1);
-			pg_efuse_byte2 = value;
-		}
-
-		if (offset > 0x7f) {
-			pg_efuse_num = 4;
-			if (halmac_adapter->hw_config_info.efuse_size <=
-			    (pg_efuse_num + HALMAC_PROTECTED_EFUSE_SIZE_88XX +
-			     halmac_adapter->efuse_end)) {
-				kfree(eeprom_map);
-				return HALMAC_RET_EFUSE_NOT_ENOUGH;
-			}
-			halmac_func_write_efuse_88xx(halmac_adapter, efuse_end,
-						     pg_efuse_header);
-			halmac_func_write_efuse_88xx(halmac_adapter,
-						     efuse_end + 1,
-						     pg_efuse_header2);
-			halmac_func_write_efuse_88xx(
-				halmac_adapter, efuse_end + 2, pg_efuse_byte1);
-			status = halmac_func_write_efuse_88xx(
-				halmac_adapter, efuse_end + 3, pg_efuse_byte2);
-		} else {
-			pg_efuse_num = 3;
-			if (halmac_adapter->hw_config_info.efuse_size <=
-			    (pg_efuse_num + HALMAC_PROTECTED_EFUSE_SIZE_88XX +
-			     halmac_adapter->efuse_end)) {
-				kfree(eeprom_map);
-				return HALMAC_RET_EFUSE_NOT_ENOUGH;
-			}
-			halmac_func_write_efuse_88xx(halmac_adapter, efuse_end,
-						     pg_efuse_header);
-			halmac_func_write_efuse_88xx(
-				halmac_adapter, efuse_end + 1, pg_efuse_byte1);
-			status = halmac_func_write_efuse_88xx(
-				halmac_adapter, efuse_end + 2, pg_efuse_byte2);
-		}
-
-		if (status != HALMAC_RET_SUCCESS) {
-			pr_err("[ERR]halmac_write_logical_efuse error = %x\n",
-			       status);
-			kfree(eeprom_map);
-			return status;
-		}
-	}
-
-	kfree(eeprom_map);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_func_pg_efuse_by_map_88xx(struct halmac_adapter *halmac_adapter,
-				 struct halmac_pg_efuse_info *pg_efuse_info,
-				 enum halmac_efuse_read_cfg cfg)
-{
-	u8 *eeprom_mask_updated = NULL;
-	u32 eeprom_mask_size = halmac_adapter->hw_config_info.eeprom_size >> 4;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	eeprom_mask_updated = kzalloc(eeprom_mask_size, GFP_KERNEL);
-	if (!eeprom_mask_updated)
-		return HALMAC_RET_MALLOC_FAIL;
-
-	status = halmac_update_eeprom_mask_88xx(halmac_adapter, pg_efuse_info,
-						eeprom_mask_updated);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("[ERR]halmac_update_eeprom_mask_88xx error = %x\n",
-		       status);
-		kfree(eeprom_mask_updated);
-		return status;
-	}
-
-	status = halmac_check_efuse_enough_88xx(halmac_adapter, pg_efuse_info,
-						eeprom_mask_updated);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("[ERR]halmac_check_efuse_enough_88xx error = %x\n",
-		       status);
-		kfree(eeprom_mask_updated);
-		return status;
-	}
-
-	status = halmac_program_efuse_88xx(halmac_adapter, pg_efuse_info,
-					   eeprom_mask_updated);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("[ERR]halmac_program_efuse_88xx error = %x\n", status);
-		kfree(eeprom_mask_updated);
-		return status;
-	}
-
-	kfree(eeprom_mask_updated);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_update_eeprom_mask_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_pg_efuse_info *pg_efuse_info,
-			       u8 *eeprom_mask_updated)
-{
-	u8 *eeprom_map = NULL;
-	u32 eeprom_size = halmac_adapter->hw_config_info.eeprom_size;
-	u8 *eeprom_map_pg, *eeprom_mask;
-	u16 i, j;
-	u16 map_byte_offset, mask_byte_offset;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	void *driver_adapter = NULL;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	eeprom_map = kzalloc(eeprom_size, GFP_KERNEL);
-	if (!eeprom_map)
-		return HALMAC_RET_MALLOC_FAIL;
-
-	memset(eeprom_map, 0xFF, eeprom_size);
-	memset(eeprom_mask_updated, 0x00, pg_efuse_info->efuse_mask_size);
-
-	status = halmac_read_logical_efuse_map_88xx(halmac_adapter, eeprom_map);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		kfree(eeprom_map);
-		return status;
-	}
-
-	eeprom_map_pg = pg_efuse_info->efuse_map;
-	eeprom_mask = pg_efuse_info->efuse_mask;
-
-	for (i = 0; i < pg_efuse_info->efuse_mask_size; i++)
-		*(eeprom_mask_updated + i) = *(eeprom_mask + i);
-
-	for (i = 0; i < pg_efuse_info->efuse_map_size; i = i + 16) {
-		for (j = 0; j < 16; j = j + 2) {
-			map_byte_offset = i + j;
-			mask_byte_offset = i >> 4;
-			if (*(eeprom_map_pg + map_byte_offset) ==
-			    *(eeprom_map + map_byte_offset)) {
-				if (*(eeprom_map_pg + map_byte_offset + 1) ==
-				    *(eeprom_map + map_byte_offset + 1)) {
-					switch (j) {
-					case 0:
-						*(eeprom_mask_updated +
-						  mask_byte_offset) =
-							*(eeprom_mask_updated +
-							  mask_byte_offset) &
-							(BIT(4) ^ 0xFF);
-						break;
-					case 2:
-						*(eeprom_mask_updated +
-						  mask_byte_offset) =
-							*(eeprom_mask_updated +
-							  mask_byte_offset) &
-							(BIT(5) ^ 0xFF);
-						break;
-					case 4:
-						*(eeprom_mask_updated +
-						  mask_byte_offset) =
-							*(eeprom_mask_updated +
-							  mask_byte_offset) &
-							(BIT(6) ^ 0xFF);
-						break;
-					case 6:
-						*(eeprom_mask_updated +
-						  mask_byte_offset) =
-							*(eeprom_mask_updated +
-							  mask_byte_offset) &
-							(BIT(7) ^ 0xFF);
-						break;
-					case 8:
-						*(eeprom_mask_updated +
-						  mask_byte_offset) =
-							*(eeprom_mask_updated +
-							  mask_byte_offset) &
-							(BIT(0) ^ 0xFF);
-						break;
-					case 10:
-						*(eeprom_mask_updated +
-						  mask_byte_offset) =
-							*(eeprom_mask_updated +
-							  mask_byte_offset) &
-							(BIT(1) ^ 0xFF);
-						break;
-					case 12:
-						*(eeprom_mask_updated +
-						  mask_byte_offset) =
-							*(eeprom_mask_updated +
-							  mask_byte_offset) &
-							(BIT(2) ^ 0xFF);
-						break;
-					case 14:
-						*(eeprom_mask_updated +
-						  mask_byte_offset) =
-							*(eeprom_mask_updated +
-							  mask_byte_offset) &
-							(BIT(3) ^ 0xFF);
-						break;
-					default:
-						break;
-					}
-				}
-			}
-		}
-	}
-
-	kfree(eeprom_map);
-
-	return status;
-}
-
-static enum halmac_ret_status
-halmac_check_efuse_enough_88xx(struct halmac_adapter *halmac_adapter,
-			       struct halmac_pg_efuse_info *pg_efuse_info,
-			       u8 *eeprom_mask_updated)
-{
-	u8 pre_word_enb, word_enb;
-	u8 pg_efuse_header, pg_efuse_header2;
-	u8 pg_block;
-	u16 i, j;
-	u32 efuse_end;
-	u32 tmp_eeprom_offset, pg_efuse_num = 0;
-
-	efuse_end = halmac_adapter->efuse_end;
-
-	for (i = 0; i < pg_efuse_info->efuse_map_size; i = i + 8) {
-		tmp_eeprom_offset = i;
-
-		if ((tmp_eeprom_offset & 7) > 0) {
-			pre_word_enb =
-				(*(eeprom_mask_updated + (i >> 4)) & 0x0F);
-			word_enb = pre_word_enb ^ 0x0F;
-		} else {
-			pre_word_enb = (*(eeprom_mask_updated + (i >> 4)) >> 4);
-			word_enb = pre_word_enb ^ 0x0F;
-		}
-
-		pg_block = (u8)(tmp_eeprom_offset >> 3);
-
-		if (pre_word_enb > 0) {
-			if (tmp_eeprom_offset > 0x7f) {
-				pg_efuse_header =
-					(((pg_block & 0x07) << 5) & 0xE0) |
-					0x0F;
-				pg_efuse_header2 = (u8)(
-					((pg_block & 0x78) << 1) + word_enb);
-			} else {
-				pg_efuse_header =
-					(u8)((pg_block << 4) + word_enb);
-			}
-
-			if (tmp_eeprom_offset > 0x7f) {
-				pg_efuse_num++;
-				pg_efuse_num++;
-				efuse_end = efuse_end + 2;
-				for (j = 0; j < 4; j++) {
-					if (((pre_word_enb >> j) & 0x1) > 0) {
-						pg_efuse_num++;
-						pg_efuse_num++;
-						efuse_end = efuse_end + 2;
-					}
-				}
-			} else {
-				pg_efuse_num++;
-				efuse_end = efuse_end + 1;
-				for (j = 0; j < 4; j++) {
-					if (((pre_word_enb >> j) & 0x1) > 0) {
-						pg_efuse_num++;
-						pg_efuse_num++;
-						efuse_end = efuse_end + 2;
-					}
-				}
-			}
-		}
-	}
-
-	if (halmac_adapter->hw_config_info.efuse_size <=
-	    (pg_efuse_num + HALMAC_PROTECTED_EFUSE_SIZE_88XX +
-	     halmac_adapter->efuse_end))
-		return HALMAC_RET_EFUSE_NOT_ENOUGH;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_program_efuse_88xx(struct halmac_adapter *halmac_adapter,
-			  struct halmac_pg_efuse_info *pg_efuse_info,
-			  u8 *eeprom_mask_updated)
-{
-	u8 pre_word_enb, word_enb;
-	u8 pg_efuse_header, pg_efuse_header2;
-	u8 pg_block;
-	u16 i, j;
-	u32 efuse_end;
-	u32 tmp_eeprom_offset;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	efuse_end = halmac_adapter->efuse_end;
-
-	for (i = 0; i < pg_efuse_info->efuse_map_size; i = i + 8) {
-		tmp_eeprom_offset = i;
-
-		if (((tmp_eeprom_offset >> 3) & 1) > 0) {
-			pre_word_enb =
-				(*(eeprom_mask_updated + (i >> 4)) & 0x0F);
-			word_enb = pre_word_enb ^ 0x0F;
-		} else {
-			pre_word_enb = (*(eeprom_mask_updated + (i >> 4)) >> 4);
-			word_enb = pre_word_enb ^ 0x0F;
-		}
-
-		pg_block = (u8)(tmp_eeprom_offset >> 3);
-
-		if (pre_word_enb <= 0)
-			continue;
-
-		if (tmp_eeprom_offset > 0x7f) {
-			pg_efuse_header =
-				(((pg_block & 0x07) << 5) & 0xE0) | 0x0F;
-			pg_efuse_header2 =
-				(u8)(((pg_block & 0x78) << 1) + word_enb);
-		} else {
-			pg_efuse_header = (u8)((pg_block << 4) + word_enb);
-		}
-
-		if (tmp_eeprom_offset > 0x7f) {
-			halmac_func_write_efuse_88xx(halmac_adapter, efuse_end,
-						     pg_efuse_header);
-			status = halmac_func_write_efuse_88xx(halmac_adapter,
-							      efuse_end + 1,
-							      pg_efuse_header2);
-			efuse_end = efuse_end + 2;
-			for (j = 0; j < 4; j++) {
-				if (((pre_word_enb >> j) & 0x1) > 0) {
-					halmac_func_write_efuse_88xx(
-						halmac_adapter, efuse_end,
-						*(pg_efuse_info->efuse_map +
-						  tmp_eeprom_offset +
-						  (j << 1)));
-					status = halmac_func_write_efuse_88xx(
-						halmac_adapter, efuse_end + 1,
-						*(pg_efuse_info->efuse_map +
-						  tmp_eeprom_offset + (j << 1) +
-						  1));
-					efuse_end = efuse_end + 2;
-				}
-			}
-		} else {
-			status = halmac_func_write_efuse_88xx(
-				halmac_adapter, efuse_end, pg_efuse_header);
-			efuse_end = efuse_end + 1;
-			for (j = 0; j < 4; j++) {
-				if (((pre_word_enb >> j) & 0x1) > 0) {
-					halmac_func_write_efuse_88xx(
-						halmac_adapter, efuse_end,
-						*(pg_efuse_info->efuse_map +
-						  tmp_eeprom_offset +
-						  (j << 1)));
-					status = halmac_func_write_efuse_88xx(
-						halmac_adapter, efuse_end + 1,
-						*(pg_efuse_info->efuse_map +
-						  tmp_eeprom_offset + (j << 1) +
-						  1));
-					efuse_end = efuse_end + 2;
-				}
-			}
-		}
-	}
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_dlfw_to_mem_88xx(struct halmac_adapter *halmac_adapter, u8 *ram_code,
-			u32 dest, u32 code_size)
-{
-	u8 *code_ptr;
-	u8 first_part;
-	u32 mem_offset;
-	u32 pkt_size_tmp, send_pkt_size;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	code_ptr = ram_code;
-	mem_offset = 0;
-	first_part = 1;
-	pkt_size_tmp = code_size;
-
-	HALMAC_REG_WRITE_32(
-		halmac_adapter, REG_DDMA_CH0CTRL,
-		HALMAC_REG_READ_32(halmac_adapter, REG_DDMA_CH0CTRL) |
-			BIT_DDMACH0_RESET_CHKSUM_STS);
-
-	while (pkt_size_tmp != 0) {
-		if (pkt_size_tmp >= halmac_adapter->max_download_size)
-			send_pkt_size = halmac_adapter->max_download_size;
-		else
-			send_pkt_size = pkt_size_tmp;
-
-		if (halmac_send_fwpkt_88xx(
-			    halmac_adapter, code_ptr + mem_offset,
-			    send_pkt_size) != HALMAC_RET_SUCCESS) {
-			pr_err("halmac_send_fwpkt_88xx fail!!\n");
-			return HALMAC_RET_DLFW_FAIL;
-		}
-
-		if (halmac_iddma_dlfw_88xx(
-			    halmac_adapter,
-			    HALMAC_OCPBASE_TXBUF_88XX +
-				    halmac_adapter->hw_config_info.txdesc_size,
-			    dest + mem_offset, send_pkt_size,
-			    first_part) != HALMAC_RET_SUCCESS) {
-			pr_err("halmac_iddma_dlfw_88xx fail!!\n");
-			return HALMAC_RET_DLFW_FAIL;
-		}
-
-		first_part = 0;
-		mem_offset += send_pkt_size;
-		pkt_size_tmp -= send_pkt_size;
-	}
-
-	if (halmac_check_fw_chksum_88xx(halmac_adapter, dest) !=
-	    HALMAC_RET_SUCCESS) {
-		pr_err("halmac_check_fw_chksum_88xx fail!!\n");
-		return HALMAC_RET_DLFW_FAIL;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_send_fwpkt_88xx(struct halmac_adapter *halmac_adapter, u8 *ram_code,
-		       u32 code_size)
-{
-	if (halmac_download_rsvd_page_88xx(halmac_adapter, ram_code,
-					   code_size) != HALMAC_RET_SUCCESS) {
-		pr_err("PLATFORM_SEND_RSVD_PAGE 0 error!!\n");
-		return HALMAC_RET_DL_RSVD_PAGE_FAIL;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_iddma_dlfw_88xx(struct halmac_adapter *halmac_adapter, u32 source,
-		       u32 dest, u32 length, u8 first)
-{
-	u32 counter;
-	u32 ch0_control = (u32)(BIT_DDMACH0_CHKSUM_EN | BIT_DDMACH0_OWN);
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	counter = HALMC_DDMA_POLLING_COUNT;
-	while (HALMAC_REG_READ_32(halmac_adapter, REG_DDMA_CH0CTRL) &
-	       BIT_DDMACH0_OWN) {
-		counter--;
-		if (counter == 0) {
-			pr_err("%s error-1!!\n", __func__);
-			return HALMAC_RET_DDMA_FAIL;
-		}
-	}
-
-	ch0_control |= (length & BIT_MASK_DDMACH0_DLEN);
-	if (first == 0)
-		ch0_control |= BIT_DDMACH0_CHKSUM_CONT;
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_DDMA_CH0SA, source);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_DDMA_CH0DA, dest);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_DDMA_CH0CTRL, ch0_control);
-
-	counter = HALMC_DDMA_POLLING_COUNT;
-	while (HALMAC_REG_READ_32(halmac_adapter, REG_DDMA_CH0CTRL) &
-	       BIT_DDMACH0_OWN) {
-		counter--;
-		if (counter == 0) {
-			pr_err("%s error-2!!\n", __func__);
-			return HALMAC_RET_DDMA_FAIL;
-		}
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_check_fw_chksum_88xx(struct halmac_adapter *halmac_adapter,
-			    u32 memory_address)
-{
-	u8 mcu_fw_ctrl;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	mcu_fw_ctrl = HALMAC_REG_READ_8(halmac_adapter, REG_MCUFW_CTRL);
-
-	if (HALMAC_REG_READ_32(halmac_adapter, REG_DDMA_CH0CTRL) &
-	    BIT_DDMACH0_CHKSUM_STS) {
-		if (memory_address < HALMAC_OCPBASE_DMEM_88XX) {
-			mcu_fw_ctrl |= BIT_IMEM_DW_OK;
-			HALMAC_REG_WRITE_8(
-				halmac_adapter, REG_MCUFW_CTRL,
-				(u8)(mcu_fw_ctrl & ~(BIT_IMEM_CHKSUM_OK)));
-		} else {
-			mcu_fw_ctrl |= BIT_DMEM_DW_OK;
-			HALMAC_REG_WRITE_8(
-				halmac_adapter, REG_MCUFW_CTRL,
-				(u8)(mcu_fw_ctrl & ~(BIT_DMEM_CHKSUM_OK)));
-		}
-
-		pr_err("%s error!!\n", __func__);
-
-		status = HALMAC_RET_FW_CHECKSUM_FAIL;
-	} else {
-		if (memory_address < HALMAC_OCPBASE_DMEM_88XX) {
-			mcu_fw_ctrl |= BIT_IMEM_DW_OK;
-			HALMAC_REG_WRITE_8(
-				halmac_adapter, REG_MCUFW_CTRL,
-				(u8)(mcu_fw_ctrl | BIT_IMEM_CHKSUM_OK));
-		} else {
-			mcu_fw_ctrl |= BIT_DMEM_DW_OK;
-			HALMAC_REG_WRITE_8(
-				halmac_adapter, REG_MCUFW_CTRL,
-				(u8)(mcu_fw_ctrl | BIT_DMEM_CHKSUM_OK));
-		}
-
-		status = HALMAC_RET_SUCCESS;
-	}
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_dlfw_end_flow_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u8 value8;
-	u32 counter;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	struct halmac_api *halmac_api =
-		(struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_TXDMA_STATUS, BIT(2));
-
-	/* Check IMEM & DMEM checksum is OK or not */
-	if ((HALMAC_REG_READ_8(halmac_adapter, REG_MCUFW_CTRL) & 0x50) == 0x50)
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_MCUFW_CTRL,
-				    (u16)(HALMAC_REG_READ_16(halmac_adapter,
-							     REG_MCUFW_CTRL) |
-					  BIT_FW_DW_RDY));
-	else
-		return HALMAC_RET_DLFW_FAIL;
-
-	HALMAC_REG_WRITE_8(
-		halmac_adapter, REG_MCUFW_CTRL,
-		(u8)(HALMAC_REG_READ_8(halmac_adapter, REG_MCUFW_CTRL) &
-		     ~(BIT(0))));
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_RSV_CTRL + 1);
-	value8 = (u8)(value8 | BIT(0));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_RSV_CTRL + 1, value8);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_SYS_FUNC_EN + 1);
-	value8 = (u8)(value8 | BIT(2));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_SYS_FUNC_EN + 1,
-			   value8); /* Release MCU reset */
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"Download Finish, Reset CPU\n");
-
-	counter = 10000;
-	while (HALMAC_REG_READ_16(halmac_adapter, REG_MCUFW_CTRL) != 0xC078) {
-		if (counter == 0) {
-			pr_err("Check 0x80 = 0xC078 fail\n");
-			if ((HALMAC_REG_READ_32(halmac_adapter, REG_FW_DBG7) &
-			     0xFFFFFF00) == 0xFAAAAA00)
-				pr_err("Key fail\n");
-			return HALMAC_RET_DLFW_FAIL;
-		}
-		counter--;
-		usleep_range(50, 60);
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"Check 0x80 = 0xC078 counter = %d\n", counter);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_free_dl_fw_end_flow_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u32 counter;
-	struct halmac_api *halmac_api =
-		(struct halmac_api *)halmac_adapter->halmac_api;
-
-	counter = 100;
-	while (HALMAC_REG_READ_8(halmac_adapter, REG_HMETFR + 3) != 0) {
-		counter--;
-		if (counter == 0) {
-			pr_err("[ERR]0x1CF != 0\n");
-			return HALMAC_RET_DLFW_FAIL;
-		}
-		usleep_range(50, 60);
-	}
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_HMETFR + 3,
-			   ID_INFORM_DLEMEM_RDY);
-
-	counter = 10000;
-	while (HALMAC_REG_READ_8(halmac_adapter, REG_C2HEVT_3 + 3) !=
-	       ID_INFORM_DLEMEM_RDY) {
-		counter--;
-		if (counter == 0) {
-			pr_err("[ERR]0x1AF != 0x80\n");
-			return HALMAC_RET_DLFW_FAIL;
-		}
-		usleep_range(50, 60);
-	}
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_C2HEVT_3 + 3, 0);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_pwr_seq_parser_88xx(struct halmac_adapter *halmac_adapter, u8 cut,
-			   u8 fab, u8 intf,
-			   struct halmac_wl_pwr_cfg_ **pp_pwr_seq_cfg)
-{
-	u32 seq_idx = 0;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	struct halmac_wl_pwr_cfg_ *seq_cmd;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	do {
-		seq_cmd = pp_pwr_seq_cfg[seq_idx];
-
-		if (!seq_cmd)
-			break;
-
-		status = halmac_pwr_sub_seq_parer_88xx(halmac_adapter, cut, fab,
-						       intf, seq_cmd);
-		if (status != HALMAC_RET_SUCCESS) {
-			pr_err("[Err]pwr sub seq parser fail, status = 0x%X!\n",
-			       status);
-			return status;
-		}
-
-		seq_idx++;
-	} while (1);
-
-	return status;
-}
-
-static enum halmac_ret_status
-halmac_pwr_sub_seq_parer_do_cmd_88xx(struct halmac_adapter *halmac_adapter,
-				     struct halmac_wl_pwr_cfg_ *sub_seq_cmd,
-				     bool *reti)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	u8 value, flag;
-	u8 polling_bit;
-	u32 polling_count;
-	static u32 poll_to_static;
-	u32 offset;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-	*reti = true;
-
-	switch (sub_seq_cmd->cmd) {
-	case HALMAC_PWR_CMD_WRITE:
-		if (sub_seq_cmd->base == HALMAC_PWR_BASEADDR_SDIO)
-			offset = sub_seq_cmd->offset | SDIO_LOCAL_OFFSET;
-		else
-			offset = sub_seq_cmd->offset;
-
-		value = HALMAC_REG_READ_8(halmac_adapter, offset);
-		value = (u8)(value & (u8)(~(sub_seq_cmd->msk)));
-		value = (u8)(value |
-			     (u8)(sub_seq_cmd->value & sub_seq_cmd->msk));
-
-		HALMAC_REG_WRITE_8(halmac_adapter, offset, value);
-		break;
-	case HALMAC_PWR_CMD_POLLING:
-		polling_bit = 0;
-		polling_count = HALMAC_POLLING_READY_TIMEOUT_COUNT;
-		flag = 0;
-
-		if (sub_seq_cmd->base == HALMAC_PWR_BASEADDR_SDIO)
-			offset = sub_seq_cmd->offset | SDIO_LOCAL_OFFSET;
-		else
-			offset = sub_seq_cmd->offset;
-
-		do {
-			polling_count--;
-			value = HALMAC_REG_READ_8(halmac_adapter, offset);
-			value = (u8)(value & sub_seq_cmd->msk);
-
-			if (value == (sub_seq_cmd->value & sub_seq_cmd->msk)) {
-				polling_bit = 1;
-				continue;
-			}
-
-			if (polling_count != 0) {
-				usleep_range(50, 60);
-				continue;
-			}
-
-			if (halmac_adapter->halmac_interface ==
-				    HALMAC_INTERFACE_PCIE &&
-			    flag == 0) {
-				/* For PCIE + USB package poll power bit
-				 * timeout issue
-				 */
-				poll_to_static++;
-				HALMAC_RT_TRACE(
-					driver_adapter, HALMAC_MSG_PWR,
-					DBG_WARNING,
-					"[WARN]PCIE polling timeout : %d!!\n",
-					poll_to_static);
-				HALMAC_REG_WRITE_8(
-					halmac_adapter, REG_SYS_PW_CTRL,
-					HALMAC_REG_READ_8(halmac_adapter,
-							  REG_SYS_PW_CTRL) |
-						BIT(3));
-				HALMAC_REG_WRITE_8(
-					halmac_adapter, REG_SYS_PW_CTRL,
-					HALMAC_REG_READ_8(halmac_adapter,
-							  REG_SYS_PW_CTRL) &
-						~BIT(3));
-				polling_bit = 0;
-				polling_count =
-					HALMAC_POLLING_READY_TIMEOUT_COUNT;
-				flag = 1;
-			} else {
-				pr_err("[ERR]Pwr cmd polling timeout!!\n");
-				pr_err("[ERR]Pwr cmd offset : %X!!\n",
-				       sub_seq_cmd->offset);
-				pr_err("[ERR]Pwr cmd value : %X!!\n",
-				       sub_seq_cmd->value);
-				pr_err("[ERR]Pwr cmd msk : %X!!\n",
-				       sub_seq_cmd->msk);
-				pr_err("[ERR]Read offset = %X value = %X!!\n",
-				       offset, value);
-				return HALMAC_RET_PWRSEQ_POLLING_FAIL;
-			}
-		} while (!polling_bit);
-		break;
-	case HALMAC_PWR_CMD_DELAY:
-		if (sub_seq_cmd->value == HALMAC_PWRSEQ_DELAY_US)
-			udelay(sub_seq_cmd->offset);
-		else
-			usleep_range(1000 * sub_seq_cmd->offset,
-				     1000 * sub_seq_cmd->offset + 100);
-
-		break;
-	case HALMAC_PWR_CMD_READ:
-		break;
-	case HALMAC_PWR_CMD_END:
-		return HALMAC_RET_SUCCESS;
-	default:
-		return HALMAC_RET_PWRSEQ_CMD_INCORRECT;
-	}
-
-	*reti = false;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_pwr_sub_seq_parer_88xx(struct halmac_adapter *halmac_adapter, u8 cut,
-			      u8 fab, u8 intf,
-			      struct halmac_wl_pwr_cfg_ *pwr_sub_seq_cfg)
-{
-	struct halmac_wl_pwr_cfg_ *sub_seq_cmd;
-	bool reti;
-	enum halmac_ret_status status;
-
-	for (sub_seq_cmd = pwr_sub_seq_cfg;; sub_seq_cmd++) {
-		if ((sub_seq_cmd->interface_msk & intf) &&
-		    (sub_seq_cmd->fab_msk & fab) &&
-		    (sub_seq_cmd->cut_msk & cut)) {
-			status = halmac_pwr_sub_seq_parer_do_cmd_88xx(
-				halmac_adapter, sub_seq_cmd, &reti);
-
-			if (reti)
-				return status;
-		}
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_get_h2c_buff_free_space_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u32 hw_wptr, fw_rptr;
-	struct halmac_api *halmac_api =
-		(struct halmac_api *)halmac_adapter->halmac_api;
-
-	hw_wptr = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_PKT_WRITEADDR) &
-		  BIT_MASK_H2C_WR_ADDR;
-	fw_rptr = HALMAC_REG_READ_32(halmac_adapter, REG_H2C_PKT_READADDR) &
-		  BIT_MASK_H2C_READ_ADDR;
-
-	if (hw_wptr >= fw_rptr)
-		halmac_adapter->h2c_buf_free_space =
-			halmac_adapter->h2c_buff_size - (hw_wptr - fw_rptr);
-	else
-		halmac_adapter->h2c_buf_free_space = fw_rptr - hw_wptr;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_send_h2c_pkt_88xx(struct halmac_adapter *halmac_adapter, u8 *hal_h2c_cmd,
-			 u32 size, bool ack)
-{
-	u32 counter = 100;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	while (halmac_adapter->h2c_buf_free_space <=
-	       HALMAC_H2C_CMD_SIZE_UNIT_88XX) {
-		halmac_get_h2c_buff_free_space_88xx(halmac_adapter);
-		counter--;
-		if (counter == 0) {
-			pr_err("h2c free space is not enough!!\n");
-			return HALMAC_RET_H2C_SPACE_FULL;
-		}
-	}
-
-	/* Send TxDesc + H2C_CMD */
-	if (!PLATFORM_SEND_H2C_PKT(driver_adapter, hal_h2c_cmd, size)) {
-		pr_err("Send H2C_CMD pkt error!!\n");
-		return HALMAC_RET_SEND_H2C_FAIL;
-	}
-
-	halmac_adapter->h2c_buf_free_space -= HALMAC_H2C_CMD_SIZE_UNIT_88XX;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"H2C free space : %d\n",
-			halmac_adapter->h2c_buf_free_space);
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_download_rsvd_page_88xx(struct halmac_adapter *halmac_adapter,
-			       u8 *hal_buf, u32 size)
-{
-	u8 restore[3];
-	u8 value8;
-	u32 counter;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (size == 0) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-				"Rsvd page packet size is zero!!\n");
-		return HALMAC_RET_ZERO_LEN_RSVD_PACKET;
-	}
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_FIFOPAGE_CTRL_2 + 1);
-	value8 = (u8)(value8 | BIT(7));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_FIFOPAGE_CTRL_2 + 1, value8);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_CR + 1);
-	restore[0] = value8;
-	value8 = (u8)(value8 | BIT(0));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CR + 1, value8);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_BCN_CTRL);
-	restore[1] = value8;
-	value8 = (u8)((value8 & ~(BIT(3))) | BIT(4));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_BCN_CTRL, value8);
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_FWHW_TXQ_CTRL + 2);
-	restore[2] = value8;
-	value8 = (u8)(value8 & ~(BIT(6)));
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_FWHW_TXQ_CTRL + 2, value8);
-
-	if (!PLATFORM_SEND_RSVD_PAGE(driver_adapter, hal_buf, size)) {
-		pr_err("PLATFORM_SEND_RSVD_PAGE 1 error!!\n");
-		status = HALMAC_RET_DL_RSVD_PAGE_FAIL;
-	}
-
-	/* Check Bcn_Valid_Bit */
-	counter = 1000;
-	while (!(HALMAC_REG_READ_8(halmac_adapter, REG_FIFOPAGE_CTRL_2 + 1) &
-		 BIT(7))) {
-		udelay(10);
-		counter--;
-		if (counter == 0) {
-			pr_err("Polling Bcn_Valid_Fail error!!\n");
-			status = HALMAC_RET_POLLING_BCN_VALID_FAIL;
-			break;
-		}
-	}
-
-	value8 = HALMAC_REG_READ_8(halmac_adapter, REG_FIFOPAGE_CTRL_2 + 1);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_FIFOPAGE_CTRL_2 + 1,
-			   (value8 | BIT(7)));
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_FWHW_TXQ_CTRL + 2, restore[2]);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_BCN_CTRL, restore[1]);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_CR + 1, restore[0]);
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_set_h2c_header_88xx(struct halmac_adapter *halmac_adapter,
-			   u8 *hal_h2c_hdr, u16 *seq, bool ack)
-{
-	void *driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s!!\n", __func__);
-
-	H2C_CMD_HEADER_SET_CATEGORY(hal_h2c_hdr, 0x00);
-	H2C_CMD_HEADER_SET_TOTAL_LEN(hal_h2c_hdr, 16);
-
-	spin_lock(&halmac_adapter->h2c_seq_lock);
-	H2C_CMD_HEADER_SET_SEQ_NUM(hal_h2c_hdr, halmac_adapter->h2c_packet_seq);
-	*seq = halmac_adapter->h2c_packet_seq;
-	halmac_adapter->h2c_packet_seq++;
-	spin_unlock(&halmac_adapter->h2c_seq_lock);
-
-	if (ack)
-		H2C_CMD_HEADER_SET_ACK(hal_h2c_hdr, 1);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_set_fw_offload_h2c_header_88xx(
-	struct halmac_adapter *halmac_adapter, u8 *hal_h2c_hdr,
-	struct halmac_h2c_header_info *h2c_header_info, u16 *seq_num)
-{
-	void *driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s!!\n", __func__);
-
-	FW_OFFLOAD_H2C_SET_TOTAL_LEN(hal_h2c_hdr,
-				     8 + h2c_header_info->content_size);
-	FW_OFFLOAD_H2C_SET_SUB_CMD_ID(hal_h2c_hdr, h2c_header_info->sub_cmd_id);
-
-	FW_OFFLOAD_H2C_SET_CATEGORY(hal_h2c_hdr, 0x01);
-	FW_OFFLOAD_H2C_SET_CMD_ID(hal_h2c_hdr, 0xFF);
-
-	spin_lock(&halmac_adapter->h2c_seq_lock);
-	FW_OFFLOAD_H2C_SET_SEQ_NUM(hal_h2c_hdr, halmac_adapter->h2c_packet_seq);
-	*seq_num = halmac_adapter->h2c_packet_seq;
-	halmac_adapter->h2c_packet_seq++;
-	spin_unlock(&halmac_adapter->h2c_seq_lock);
-
-	if (h2c_header_info->ack)
-		FW_OFFLOAD_H2C_SET_ACK(hal_h2c_hdr, 1);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_send_h2c_set_pwr_mode_88xx(struct halmac_adapter *halmac_adapter,
-				  struct halmac_fwlps_option *hal_fw_lps_opt)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX];
-	u8 *h2c_header, *h2c_cmd;
-	u16 seq = 0;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s!!\n", __func__);
-
-	h2c_header = h2c_buff;
-	h2c_cmd = h2c_header + HALMAC_H2C_CMD_HDR_SIZE_88XX;
-
-	memset(h2c_buff, 0x00, HALMAC_H2C_CMD_SIZE_88XX);
-
-	SET_PWR_MODE_SET_CMD_ID(h2c_cmd, CMD_ID_SET_PWR_MODE);
-	SET_PWR_MODE_SET_CLASS(h2c_cmd, CLASS_SET_PWR_MODE);
-	SET_PWR_MODE_SET_MODE(h2c_cmd, hal_fw_lps_opt->mode);
-	SET_PWR_MODE_SET_CLK_REQUEST(h2c_cmd, hal_fw_lps_opt->clk_request);
-	SET_PWR_MODE_SET_RLBM(h2c_cmd, hal_fw_lps_opt->rlbm);
-	SET_PWR_MODE_SET_SMART_PS(h2c_cmd, hal_fw_lps_opt->smart_ps);
-	SET_PWR_MODE_SET_AWAKE_INTERVAL(h2c_cmd,
-					hal_fw_lps_opt->awake_interval);
-	SET_PWR_MODE_SET_B_ALL_QUEUE_UAPSD(h2c_cmd,
-					   hal_fw_lps_opt->all_queue_uapsd);
-	SET_PWR_MODE_SET_PWR_STATE(h2c_cmd, hal_fw_lps_opt->pwr_state);
-	SET_PWR_MODE_SET_ANT_AUTO_SWITCH(h2c_cmd,
-					 hal_fw_lps_opt->ant_auto_switch);
-	SET_PWR_MODE_SET_PS_ALLOW_BT_HIGH_PRIORITY(
-		h2c_cmd, hal_fw_lps_opt->ps_allow_bt_high_priority);
-	SET_PWR_MODE_SET_PROTECT_BCN(h2c_cmd, hal_fw_lps_opt->protect_bcn);
-	SET_PWR_MODE_SET_SILENCE_PERIOD(h2c_cmd,
-					hal_fw_lps_opt->silence_period);
-	SET_PWR_MODE_SET_FAST_BT_CONNECT(h2c_cmd,
-					 hal_fw_lps_opt->fast_bt_connect);
-	SET_PWR_MODE_SET_TWO_ANTENNA_EN(h2c_cmd,
-					hal_fw_lps_opt->two_antenna_en);
-	SET_PWR_MODE_SET_ADOPT_USER_SETTING(h2c_cmd,
-					    hal_fw_lps_opt->adopt_user_setting);
-	SET_PWR_MODE_SET_DRV_BCN_EARLY_SHIFT(
-		h2c_cmd, hal_fw_lps_opt->drv_bcn_early_shift);
-
-	halmac_set_h2c_header_88xx(halmac_adapter, h2c_header, &seq, true);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s Fail = %x!!\n", __func__, status);
-		return status;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_func_send_original_h2c_88xx(struct halmac_adapter *halmac_adapter,
-				   u8 *original_h2c, u16 *seq, u8 ack)
-{
-	u8 H2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u8 *h2c_header, *h2c_cmd;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"halmac_send_original_h2c ==========>\n");
-
-	h2c_header = H2c_buff;
-	h2c_cmd = h2c_header + HALMAC_H2C_CMD_HDR_SIZE_88XX;
-	memcpy(h2c_cmd, original_h2c, 8); /* Original H2C 8 byte */
-
-	halmac_set_h2c_header_88xx(halmac_adapter, h2c_header, seq, ack);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, H2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, ack);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_original_h2c Fail = %x!!\n", status);
-		return status;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"halmac_send_original_h2c <==========\n");
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_media_status_rpt_88xx(struct halmac_adapter *halmac_adapter, u8 op_mode,
-			     u8 mac_id_ind, u8 mac_id, u8 mac_id_end)
-{
-	u8 H2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u8 *h2c_header, *h2c_cmd;
-	u16 seq = 0;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"halmac_send_h2c_set_pwr_mode_88xx!!\n");
-
-	h2c_header = H2c_buff;
-	h2c_cmd = h2c_header + HALMAC_H2C_CMD_HDR_SIZE_88XX;
-
-	memset(H2c_buff, 0x00, HALMAC_H2C_CMD_SIZE_88XX);
-
-	MEDIA_STATUS_RPT_SET_CMD_ID(h2c_cmd, CMD_ID_MEDIA_STATUS_RPT);
-	MEDIA_STATUS_RPT_SET_CLASS(h2c_cmd, CLASS_MEDIA_STATUS_RPT);
-	MEDIA_STATUS_RPT_SET_OP_MODE(h2c_cmd, op_mode);
-	MEDIA_STATUS_RPT_SET_MACID_IN(h2c_cmd, mac_id_ind);
-	MEDIA_STATUS_RPT_SET_MACID(h2c_cmd, mac_id);
-	MEDIA_STATUS_RPT_SET_MACID_END(h2c_cmd, mac_id_end);
-
-	halmac_set_h2c_header_88xx(halmac_adapter, h2c_header, &seq, true);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, H2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s Fail = %x!!\n", __func__, status);
-		return status;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_send_h2c_update_packet_88xx(struct halmac_adapter *halmac_adapter,
-				   enum halmac_packet_id pkt_id, u8 *pkt,
-				   u32 pkt_size)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_ret_status ret_status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			    (u16)(halmac_adapter->txff_allocation
-					  .rsvd_h2c_extra_info_pg_bndy &
-				  BIT_MASK_BCN_HEAD_1_V1));
-
-	ret_status =
-		halmac_download_rsvd_page_88xx(halmac_adapter, pkt, pkt_size);
-
-	if (ret_status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_download_rsvd_page_88xx Fail = %x!!\n",
-		       ret_status);
-		HALMAC_REG_WRITE_16(
-			halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			(u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-			      BIT_MASK_BCN_HEAD_1_V1));
-		return ret_status;
-	}
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			    (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-				  BIT_MASK_BCN_HEAD_1_V1));
-
-	UPDATE_PACKET_SET_SIZE(
-		h2c_buff,
-		pkt_size + halmac_adapter->hw_config_info.txdesc_size);
-	UPDATE_PACKET_SET_PACKET_ID(h2c_buff, pkt_id);
-	UPDATE_PACKET_SET_PACKET_LOC(
-		h2c_buff,
-		halmac_adapter->txff_allocation.rsvd_h2c_extra_info_pg_bndy -
-			halmac_adapter->txff_allocation.rsvd_pg_bndy);
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_UPDATE_PACKET;
-	h2c_header_info.content_size = 8;
-	h2c_header_info.ack = true;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-	halmac_adapter->halmac_state.update_packet_set.seq_num = h2c_seq_mum;
-
-	ret_status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					      HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (ret_status != HALMAC_RET_SUCCESS) {
-		pr_err("%s Fail = %x!!\n", __func__, ret_status);
-		return ret_status;
-	}
-
-	return ret_status;
-}
-
-enum halmac_ret_status
-halmac_send_h2c_phy_parameter_88xx(struct halmac_adapter *halmac_adapter,
-				   struct halmac_phy_parameter_info *para_info,
-				   bool full_fifo)
-{
-	bool drv_trigger_send = false;
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	u32 info_size = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	struct halmac_config_para_info *config_para_info;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-	config_para_info = &halmac_adapter->config_para_info;
-
-	if (!config_para_info->cfg_para_buf) {
-		if (full_fifo)
-			config_para_info->para_buf_size =
-				HALMAC_EXTRA_INFO_BUFF_SIZE_FULL_FIFO_88XX;
-		else
-			config_para_info->para_buf_size =
-				HALMAC_EXTRA_INFO_BUFF_SIZE_88XX;
-
-		config_para_info->cfg_para_buf =
-			kzalloc(config_para_info->para_buf_size, GFP_KERNEL);
-
-		if (config_para_info->cfg_para_buf) {
-			memset(config_para_info->cfg_para_buf, 0x00,
-			       config_para_info->para_buf_size);
-			config_para_info->full_fifo_mode = full_fifo;
-			config_para_info->para_buf_w =
-				config_para_info->cfg_para_buf;
-			config_para_info->para_num = 0;
-			config_para_info->avai_para_buf_size =
-				config_para_info->para_buf_size;
-			config_para_info->value_accumulation = 0;
-			config_para_info->offset_accumulation = 0;
-		} else {
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C,
-					DBG_DMESG,
-					"Allocate cfg_para_buf fail!!\n");
-			return HALMAC_RET_MALLOC_FAIL;
-		}
-	}
-
-	if (halmac_transition_cfg_para_state_88xx(
-		    halmac_adapter,
-		    HALMAC_CFG_PARA_CMD_CONSTRUCT_CONSTRUCTING) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	halmac_enqueue_para_buff_88xx(halmac_adapter, para_info,
-				      config_para_info->para_buf_w,
-				      &drv_trigger_send);
-
-	if (para_info->cmd_id != HALMAC_PARAMETER_CMD_END) {
-		config_para_info->para_num++;
-		config_para_info->para_buf_w += HALMAC_FW_OFFLOAD_CMD_SIZE_88XX;
-		config_para_info->avai_para_buf_size =
-			config_para_info->avai_para_buf_size -
-			HALMAC_FW_OFFLOAD_CMD_SIZE_88XX;
-	}
-
-	if ((config_para_info->avai_para_buf_size -
-	     halmac_adapter->hw_config_info.txdesc_size) >
-		    HALMAC_FW_OFFLOAD_CMD_SIZE_88XX &&
-	    !drv_trigger_send)
-		return HALMAC_RET_SUCCESS;
-
-	if (config_para_info->para_num == 0) {
-		kfree(config_para_info->cfg_para_buf);
-		config_para_info->cfg_para_buf = NULL;
-		config_para_info->para_buf_w = NULL;
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_WARNING,
-				"no cfg parameter element!!\n");
-
-		if (halmac_transition_cfg_para_state_88xx(
-			    halmac_adapter,
-			    HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE) !=
-		    HALMAC_RET_SUCCESS)
-			return HALMAC_RET_ERROR_STATE;
-
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (halmac_transition_cfg_para_state_88xx(
-		    halmac_adapter, HALMAC_CFG_PARA_CMD_CONSTRUCT_H2C_SENT) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	halmac_adapter->halmac_state.cfg_para_state_set.process_status =
-		HALMAC_CMD_PROCESS_SENDING;
-
-	if (config_para_info->full_fifo_mode)
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2, 0);
-	else
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-				    (u16)(halmac_adapter->txff_allocation
-						  .rsvd_h2c_extra_info_pg_bndy &
-					  BIT_MASK_BCN_HEAD_1_V1));
-
-	info_size =
-		config_para_info->para_num * HALMAC_FW_OFFLOAD_CMD_SIZE_88XX;
-
-	status = halmac_download_rsvd_page_88xx(
-		halmac_adapter, (u8 *)config_para_info->cfg_para_buf,
-		info_size);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_download_rsvd_page_88xx Fail!!\n");
-	} else {
-		halmac_gen_cfg_para_h2c_88xx(halmac_adapter, h2c_buff);
-
-		h2c_header_info.sub_cmd_id = SUB_CMD_ID_CFG_PARAMETER;
-		h2c_header_info.content_size = 4;
-		h2c_header_info.ack = true;
-		halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-						      &h2c_header_info,
-						      &h2c_seq_mum);
-
-		halmac_adapter->halmac_state.cfg_para_state_set.seq_num =
-			h2c_seq_mum;
-
-		status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-						  HALMAC_H2C_CMD_SIZE_88XX,
-						  true);
-
-		if (status != HALMAC_RET_SUCCESS)
-			pr_err("halmac_send_h2c_pkt_88xx Fail!!\n");
-
-		HALMAC_RT_TRACE(
-			driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"config parameter time = %d\n",
-			HALMAC_REG_READ_32(halmac_adapter, REG_FW_DBG6));
-	}
-
-	kfree(config_para_info->cfg_para_buf);
-	config_para_info->cfg_para_buf = NULL;
-	config_para_info->para_buf_w = NULL;
-
-	/* Restore bcn head */
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			    (u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-				  BIT_MASK_BCN_HEAD_1_V1));
-
-	if (halmac_transition_cfg_para_state_88xx(
-		    halmac_adapter, HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	if (!drv_trigger_send) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-				"Buffer full trigger sending H2C!!\n");
-		return HALMAC_RET_PARA_SENDING;
-	}
-
-	return status;
-}
-
-static enum halmac_ret_status
-halmac_enqueue_para_buff_88xx(struct halmac_adapter *halmac_adapter,
-			      struct halmac_phy_parameter_info *para_info,
-			      u8 *curr_buff_wptr, bool *end_cmd)
-{
-	struct halmac_config_para_info *config_para_info =
-		&halmac_adapter->config_para_info;
-
-	*end_cmd = false;
-
-	PHY_PARAMETER_INFO_SET_LENGTH(curr_buff_wptr,
-				      HALMAC_FW_OFFLOAD_CMD_SIZE_88XX);
-	PHY_PARAMETER_INFO_SET_IO_CMD(curr_buff_wptr, para_info->cmd_id);
-
-	switch (para_info->cmd_id) {
-	case HALMAC_PARAMETER_CMD_BB_W8:
-	case HALMAC_PARAMETER_CMD_BB_W16:
-	case HALMAC_PARAMETER_CMD_BB_W32:
-	case HALMAC_PARAMETER_CMD_MAC_W8:
-	case HALMAC_PARAMETER_CMD_MAC_W16:
-	case HALMAC_PARAMETER_CMD_MAC_W32:
-		PHY_PARAMETER_INFO_SET_IO_ADDR(
-			curr_buff_wptr, para_info->content.MAC_REG_W.offset);
-		PHY_PARAMETER_INFO_SET_DATA(curr_buff_wptr,
-					    para_info->content.MAC_REG_W.value);
-		PHY_PARAMETER_INFO_SET_MASK(curr_buff_wptr,
-					    para_info->content.MAC_REG_W.msk);
-		PHY_PARAMETER_INFO_SET_MSK_EN(
-			curr_buff_wptr, para_info->content.MAC_REG_W.msk_en);
-		config_para_info->value_accumulation +=
-			para_info->content.MAC_REG_W.value;
-		config_para_info->offset_accumulation +=
-			para_info->content.MAC_REG_W.offset;
-		break;
-	case HALMAC_PARAMETER_CMD_RF_W:
-		/*In rf register, the address is only 1 byte*/
-		PHY_PARAMETER_INFO_SET_RF_ADDR(
-			curr_buff_wptr, para_info->content.RF_REG_W.offset);
-		PHY_PARAMETER_INFO_SET_RF_PATH(
-			curr_buff_wptr, para_info->content.RF_REG_W.rf_path);
-		PHY_PARAMETER_INFO_SET_DATA(curr_buff_wptr,
-					    para_info->content.RF_REG_W.value);
-		PHY_PARAMETER_INFO_SET_MASK(curr_buff_wptr,
-					    para_info->content.RF_REG_W.msk);
-		PHY_PARAMETER_INFO_SET_MSK_EN(
-			curr_buff_wptr, para_info->content.RF_REG_W.msk_en);
-		config_para_info->value_accumulation +=
-			para_info->content.RF_REG_W.value;
-		config_para_info->offset_accumulation +=
-			(para_info->content.RF_REG_W.offset +
-			 (para_info->content.RF_REG_W.rf_path << 8));
-		break;
-	case HALMAC_PARAMETER_CMD_DELAY_US:
-	case HALMAC_PARAMETER_CMD_DELAY_MS:
-		PHY_PARAMETER_INFO_SET_DELAY_VALUE(
-			curr_buff_wptr,
-			para_info->content.DELAY_TIME.delay_time);
-		break;
-	case HALMAC_PARAMETER_CMD_END:
-		*end_cmd = true;
-		break;
-	default:
-		pr_err(" halmac_send_h2c_phy_parameter_88xx illegal cmd_id!!\n");
-		break;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_gen_cfg_para_h2c_88xx(struct halmac_adapter *halmac_adapter,
-			     u8 *h2c_buff)
-{
-	struct halmac_config_para_info *config_para_info =
-		&halmac_adapter->config_para_info;
-
-	CFG_PARAMETER_SET_NUM(h2c_buff, config_para_info->para_num);
-
-	if (config_para_info->full_fifo_mode) {
-		CFG_PARAMETER_SET_INIT_CASE(h2c_buff, 0x1);
-		CFG_PARAMETER_SET_PHY_PARAMETER_LOC(h2c_buff, 0);
-	} else {
-		CFG_PARAMETER_SET_INIT_CASE(h2c_buff, 0x0);
-		CFG_PARAMETER_SET_PHY_PARAMETER_LOC(
-			h2c_buff,
-			halmac_adapter->txff_allocation
-					.rsvd_h2c_extra_info_pg_bndy -
-				halmac_adapter->txff_allocation.rsvd_pg_bndy);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_send_h2c_run_datapack_88xx(struct halmac_adapter *halmac_adapter,
-				  enum halmac_data_type halmac_data_type)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = NULL;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s!!\n", __func__);
-
-	RUN_DATAPACK_SET_DATAPACK_ID(h2c_buff, halmac_data_type);
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_RUN_DATAPACK;
-	h2c_header_info.content_size = 4;
-	h2c_header_info.ack = true;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_pkt_88xx Fail = %x!!\n", status);
-		return status;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_send_bt_coex_cmd_88xx(struct halmac_adapter *halmac_adapter, u8 *bt_buf,
-			     u32 bt_size, u8 ack)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = NULL;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s!!\n", __func__);
-
-	memcpy(h2c_buff + 8, bt_buf, bt_size);
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_BT_COEX;
-	h2c_header_info.content_size = (u16)bt_size;
-	h2c_header_info.ack = ack;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, ack);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_pkt_88xx Fail = %x!!\n", status);
-		return status;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_func_ctrl_ch_switch_88xx(struct halmac_adapter *halmac_adapter,
-				struct halmac_ch_switch_option *cs_option)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	enum halmac_cmd_process_status *process_status =
-		&halmac_adapter->halmac_state.scan_state_set.process_status;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"halmac_ctrl_ch_switch!!\n");
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (halmac_transition_scan_state_88xx(
-		    halmac_adapter, HALMAC_SCAN_CMD_CONSTRUCT_H2C_SENT) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	*process_status = HALMAC_CMD_PROCESS_SENDING;
-
-	if (cs_option->switch_en != 0) {
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_FIFOPAGE_CTRL_2,
-				    (u16)(halmac_adapter->txff_allocation
-						  .rsvd_h2c_extra_info_pg_bndy &
-					  BIT_MASK_BCN_HEAD_1_V1));
-
-		status = halmac_download_rsvd_page_88xx(
-			halmac_adapter, halmac_adapter->ch_sw_info.ch_info_buf,
-			halmac_adapter->ch_sw_info.total_size);
-
-		if (status != HALMAC_RET_SUCCESS) {
-			pr_err("halmac_download_rsvd_page_88xx Fail = %x!!\n",
-			       status);
-			HALMAC_REG_WRITE_16(
-				halmac_adapter, REG_FIFOPAGE_CTRL_2,
-				(u16)(halmac_adapter->txff_allocation
-					      .rsvd_pg_bndy &
-				      BIT_MASK_BCN_HEAD_1_V1));
-			return status;
-		}
-
-		HALMAC_REG_WRITE_16(
-			halmac_adapter, REG_FIFOPAGE_CTRL_2,
-			(u16)(halmac_adapter->txff_allocation.rsvd_pg_bndy &
-			      BIT_MASK_BCN_HEAD_1_V1));
-	}
-
-	CHANNEL_SWITCH_SET_SWITCH_START(h2c_buff, cs_option->switch_en);
-	CHANNEL_SWITCH_SET_CHANNEL_NUM(h2c_buff,
-				       halmac_adapter->ch_sw_info.ch_num);
-	CHANNEL_SWITCH_SET_CHANNEL_INFO_LOC(
-		h2c_buff,
-		halmac_adapter->txff_allocation.rsvd_h2c_extra_info_pg_bndy -
-			halmac_adapter->txff_allocation.rsvd_pg_bndy);
-	CHANNEL_SWITCH_SET_DEST_CH_EN(h2c_buff, cs_option->dest_ch_en);
-	CHANNEL_SWITCH_SET_DEST_CH(h2c_buff, cs_option->dest_ch);
-	CHANNEL_SWITCH_SET_PRI_CH_IDX(h2c_buff, cs_option->dest_pri_ch_idx);
-	CHANNEL_SWITCH_SET_ABSOLUTE_TIME(h2c_buff, cs_option->absolute_time_en);
-	CHANNEL_SWITCH_SET_TSF_LOW(h2c_buff, cs_option->tsf_low);
-	CHANNEL_SWITCH_SET_PERIODIC_OPTION(h2c_buff,
-					   cs_option->periodic_option);
-	CHANNEL_SWITCH_SET_NORMAL_CYCLE(h2c_buff, cs_option->normal_cycle);
-	CHANNEL_SWITCH_SET_NORMAL_PERIOD(h2c_buff, cs_option->normal_period);
-	CHANNEL_SWITCH_SET_SLOW_PERIOD(h2c_buff, cs_option->phase_2_period);
-	CHANNEL_SWITCH_SET_CHANNEL_INFO_SIZE(
-		h2c_buff, halmac_adapter->ch_sw_info.total_size);
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_CHANNEL_SWITCH;
-	h2c_header_info.content_size = 20;
-	h2c_header_info.ack = true;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-	halmac_adapter->halmac_state.scan_state_set.seq_num = h2c_seq_mum;
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (status != HALMAC_RET_SUCCESS)
-		pr_err("halmac_send_h2c_pkt_88xx Fail = %x!!\n", status);
-
-	kfree(halmac_adapter->ch_sw_info.ch_info_buf);
-	halmac_adapter->ch_sw_info.ch_info_buf = NULL;
-	halmac_adapter->ch_sw_info.ch_info_buf_w = NULL;
-	halmac_adapter->ch_sw_info.extra_info_en = 0;
-	halmac_adapter->ch_sw_info.buf_size = 0;
-	halmac_adapter->ch_sw_info.avai_buf_size = 0;
-	halmac_adapter->ch_sw_info.total_size = 0;
-	halmac_adapter->ch_sw_info.ch_num = 0;
-
-	if (halmac_transition_scan_state_88xx(halmac_adapter,
-					      HALMAC_SCAN_CMD_CONSTRUCT_IDLE) !=
-	    HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ERROR_STATE;
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_func_send_general_info_88xx(struct halmac_adapter *halmac_adapter,
-				   struct halmac_general_info *general_info)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = NULL;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"halmac_send_general_info!!\n");
-
-	GENERAL_INFO_SET_REF_TYPE(h2c_buff, general_info->rfe_type);
-	GENERAL_INFO_SET_RF_TYPE(h2c_buff, general_info->rf_type);
-	GENERAL_INFO_SET_FW_TX_BOUNDARY(
-		h2c_buff,
-		halmac_adapter->txff_allocation.rsvd_fw_txbuff_pg_bndy -
-			halmac_adapter->txff_allocation.rsvd_pg_bndy);
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_GENERAL_INFO;
-	h2c_header_info.content_size = 4;
-	h2c_header_info.ack = false;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (status != HALMAC_RET_SUCCESS)
-		pr_err("halmac_send_h2c_pkt_88xx Fail = %x!!\n", status);
-
-	return status;
-}
-
-enum halmac_ret_status halmac_send_h2c_update_bcn_parse_info_88xx(
-	struct halmac_adapter *halmac_adapter,
-	struct halmac_bcn_ie_info *bcn_ie_info)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u16 h2c_seq_mum = 0;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	struct halmac_h2c_header_info h2c_header_info;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s!!\n", __func__);
-
-	UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN(h2c_buff, bcn_ie_info->func_en);
-	UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH(h2c_buff, bcn_ie_info->size_th);
-	UPDATE_BEACON_PARSING_INFO_SET_TIMEOUT(h2c_buff, bcn_ie_info->timeout);
-
-	UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_0(
-		h2c_buff, (u32)(bcn_ie_info->ie_bmp[0]));
-	UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_1(
-		h2c_buff, (u32)(bcn_ie_info->ie_bmp[1]));
-	UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_2(
-		h2c_buff, (u32)(bcn_ie_info->ie_bmp[2]));
-	UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_3(
-		h2c_buff, (u32)(bcn_ie_info->ie_bmp[3]));
-	UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_4(
-		h2c_buff, (u32)(bcn_ie_info->ie_bmp[4]));
-
-	h2c_header_info.sub_cmd_id = SUB_CMD_ID_UPDATE_BEACON_PARSING_INFO;
-	h2c_header_info.content_size = 24;
-	h2c_header_info.ack = true;
-	halmac_set_fw_offload_h2c_header_88xx(halmac_adapter, h2c_buff,
-					      &h2c_header_info, &h2c_seq_mum);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, true);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_pkt_88xx Fail =%x !!\n", status);
-		return status;
-	}
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_send_h2c_ps_tuning_para_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0};
-	u8 *h2c_header, *h2c_cmd;
-	u16 seq = 0;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"%s!!\n", __func__);
-
-	h2c_header = h2c_buff;
-	h2c_cmd = h2c_header + HALMAC_H2C_CMD_HDR_SIZE_88XX;
-
-	halmac_set_h2c_header_88xx(halmac_adapter, h2c_header, &seq, false);
-
-	status = halmac_send_h2c_pkt_88xx(halmac_adapter, h2c_buff,
-					  HALMAC_H2C_CMD_SIZE_88XX, false);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_send_h2c_pkt_88xx Fail = %x!!\n", status);
-		return status;
-	}
-
-	return status;
-}
-
-enum halmac_ret_status
-halmac_parse_c2h_packet_88xx(struct halmac_adapter *halmac_adapter,
-			     u8 *halmac_buf, u32 halmac_size)
-{
-	u8 c2h_cmd, c2h_sub_cmd_id;
-	u8 *c2h_buf = halmac_buf + halmac_adapter->hw_config_info.rxdesc_size;
-	u32 c2h_size = halmac_size - halmac_adapter->hw_config_info.rxdesc_size;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	c2h_cmd = (u8)C2H_HDR_GET_CMD_ID(c2h_buf);
-
-	/* FW offload C2H cmd is 0xFF */
-	if (c2h_cmd != 0xFF) {
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-				"C2H_PKT not for FwOffloadC2HFormat!!\n");
-		return HALMAC_RET_C2H_NOT_HANDLED;
-	}
-
-	/* Get C2H sub cmd ID */
-	c2h_sub_cmd_id = (u8)C2H_HDR_GET_C2H_SUB_CMD_ID(c2h_buf);
-
-	switch (c2h_sub_cmd_id) {
-	case C2H_SUB_CMD_ID_C2H_DBG:
-		status = halmac_parse_c2h_debug_88xx(halmac_adapter, c2h_buf,
-						     c2h_size);
-		break;
-	case C2H_SUB_CMD_ID_H2C_ACK_HDR:
-		status = halmac_parse_h2c_ack_88xx(halmac_adapter, c2h_buf,
-						   c2h_size);
-		break;
-	case C2H_SUB_CMD_ID_BT_COEX_INFO:
-		status = HALMAC_RET_C2H_NOT_HANDLED;
-		break;
-	case C2H_SUB_CMD_ID_SCAN_STATUS_RPT:
-		status = halmac_parse_scan_status_rpt_88xx(halmac_adapter,
-							   c2h_buf, c2h_size);
-		break;
-	case C2H_SUB_CMD_ID_PSD_DATA:
-		status = halmac_parse_psd_data_88xx(halmac_adapter, c2h_buf,
-						    c2h_size);
-		break;
-
-	case C2H_SUB_CMD_ID_EFUSE_DATA:
-		status = halmac_parse_efuse_data_88xx(halmac_adapter, c2h_buf,
-						      c2h_size);
-		break;
-	default:
-		pr_err("c2h_sub_cmd_id switch case out of boundary!!\n");
-		pr_err("[ERR]c2h pkt : %.8X %.8X!!\n", *(u32 *)c2h_buf,
-		       *(u32 *)(c2h_buf + 4));
-		status = HALMAC_RET_C2H_NOT_HANDLED;
-		break;
-	}
-
-	return status;
-}
-
-static enum halmac_ret_status
-halmac_parse_c2h_debug_88xx(struct halmac_adapter *halmac_adapter, u8 *c2h_buf,
-			    u32 c2h_size)
-{
-	void *driver_adapter = NULL;
-	u8 *c2h_buf_local = (u8 *)NULL;
-	u32 c2h_size_local = 0;
-	u8 dbg_content_length = 0;
-	u8 dbg_seq_num = 0;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	c2h_buf_local = c2h_buf;
-	c2h_size_local = c2h_size;
-
-	dbg_content_length = (u8)C2H_HDR_GET_LEN((u8 *)c2h_buf_local);
-
-	if (dbg_content_length > C2H_DBG_CONTENT_MAX_LENGTH)
-		return HALMAC_RET_SUCCESS;
-
-	*(c2h_buf_local + C2H_DBG_HEADER_LENGTH + dbg_content_length - 2) =
-		'\n';
-	dbg_seq_num = (u8)(*(c2h_buf_local + C2H_DBG_HEADER_LENGTH));
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[RTKFW, SEQ=%d]: %s", dbg_seq_num,
-			(char *)(c2h_buf_local + C2H_DBG_HEADER_LENGTH + 1));
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_scan_status_rpt_88xx(struct halmac_adapter *halmac_adapter,
-				  u8 *c2h_buf, u32 c2h_size)
-{
-	u8 h2c_return_code;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status;
-
-	h2c_return_code = (u8)SCAN_STATUS_RPT_GET_H2C_RETURN_CODE(c2h_buf);
-	process_status = (enum halmac_h2c_return_code)h2c_return_code ==
-					 HALMAC_H2C_RETURN_SUCCESS ?
-				 HALMAC_CMD_PROCESS_DONE :
-				 HALMAC_CMD_PROCESS_ERROR;
-
-	PLATFORM_EVENT_INDICATION(driver_adapter, HALMAC_FEATURE_CHANNEL_SWITCH,
-				  process_status, NULL, 0);
-
-	halmac_adapter->halmac_state.scan_state_set.process_status =
-		process_status;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]scan status : %X\n", process_status);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_psd_data_88xx(struct halmac_adapter *halmac_adapter, u8 *c2h_buf,
-			   u32 c2h_size)
-{
-	u8 segment_id = 0, segment_size = 0, h2c_seq = 0;
-	u16 total_size;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status;
-	struct halmac_psd_state_set *psd_set =
-		&halmac_adapter->halmac_state.psd_set;
-
-	h2c_seq = (u8)PSD_DATA_GET_H2C_SEQ(c2h_buf);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]Seq num : h2c -> %d c2h -> %d\n",
-			psd_set->seq_num, h2c_seq);
-	if (h2c_seq != psd_set->seq_num) {
-		pr_err("[ERR]Seq num mismatch : h2c -> %d c2h -> %d\n",
-		       psd_set->seq_num, h2c_seq);
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (psd_set->process_status != HALMAC_CMD_PROCESS_SENDING) {
-		pr_err("[ERR]Not in HALMAC_CMD_PROCESS_SENDING\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	total_size = (u16)PSD_DATA_GET_TOTAL_SIZE(c2h_buf);
-	segment_id = (u8)PSD_DATA_GET_SEGMENT_ID(c2h_buf);
-	segment_size = (u8)PSD_DATA_GET_SEGMENT_SIZE(c2h_buf);
-	psd_set->data_size = total_size;
-
-	if (!psd_set->data) {
-		psd_set->data = kzalloc(psd_set->data_size, GFP_KERNEL);
-		if (!psd_set->data)
-			return HALMAC_RET_MALLOC_FAIL;
-	}
-
-	if (segment_id == 0)
-		psd_set->segment_size = segment_size;
-
-	memcpy(psd_set->data + segment_id * psd_set->segment_size,
-	       c2h_buf + HALMAC_C2H_DATA_OFFSET_88XX, segment_size);
-
-	if (!PSD_DATA_GET_END_SEGMENT(c2h_buf))
-		return HALMAC_RET_SUCCESS;
-
-	process_status = HALMAC_CMD_PROCESS_DONE;
-	psd_set->process_status = process_status;
-
-	PLATFORM_EVENT_INDICATION(driver_adapter, HALMAC_FEATURE_PSD,
-				  process_status, psd_set->data,
-				  psd_set->data_size);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_efuse_data_88xx(struct halmac_adapter *halmac_adapter, u8 *c2h_buf,
-			     u32 c2h_size)
-{
-	u8 segment_id = 0, segment_size = 0, h2c_seq = 0;
-	u8 *eeprom_map = NULL;
-	u32 eeprom_size = halmac_adapter->hw_config_info.eeprom_size;
-	u8 h2c_return_code = 0;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status;
-
-	h2c_seq = (u8)EFUSE_DATA_GET_H2C_SEQ(c2h_buf);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]Seq num : h2c -> %d c2h -> %d\n",
-			halmac_adapter->halmac_state.efuse_state_set.seq_num,
-			h2c_seq);
-	if (h2c_seq != halmac_adapter->halmac_state.efuse_state_set.seq_num) {
-		pr_err("[ERR]Seq num mismatch : h2c -> %d c2h -> %d\n",
-		       halmac_adapter->halmac_state.efuse_state_set.seq_num,
-		       h2c_seq);
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (halmac_adapter->halmac_state.efuse_state_set.process_status !=
-	    HALMAC_CMD_PROCESS_SENDING) {
-		pr_err("[ERR]Not in HALMAC_CMD_PROCESS_SENDING\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	segment_id = (u8)EFUSE_DATA_GET_SEGMENT_ID(c2h_buf);
-	segment_size = (u8)EFUSE_DATA_GET_SEGMENT_SIZE(c2h_buf);
-	if (segment_id == 0)
-		halmac_adapter->efuse_segment_size = segment_size;
-
-	eeprom_map = kzalloc(eeprom_size, GFP_KERNEL);
-	if (!eeprom_map)
-		return HALMAC_RET_MALLOC_FAIL;
-	memset(eeprom_map, 0xFF, eeprom_size);
-
-	spin_lock(&halmac_adapter->efuse_lock);
-	memcpy(halmac_adapter->hal_efuse_map +
-		       segment_id * halmac_adapter->efuse_segment_size,
-	       c2h_buf + HALMAC_C2H_DATA_OFFSET_88XX, segment_size);
-	spin_unlock(&halmac_adapter->efuse_lock);
-
-	if (!EFUSE_DATA_GET_END_SEGMENT(c2h_buf)) {
-		kfree(eeprom_map);
-		return HALMAC_RET_SUCCESS;
-	}
-
-	h2c_return_code =
-		halmac_adapter->halmac_state.efuse_state_set.fw_return_code;
-
-	if ((enum halmac_h2c_return_code)h2c_return_code ==
-	    HALMAC_H2C_RETURN_SUCCESS) {
-		process_status = HALMAC_CMD_PROCESS_DONE;
-		halmac_adapter->halmac_state.efuse_state_set.process_status =
-			process_status;
-
-		spin_lock(&halmac_adapter->efuse_lock);
-		halmac_adapter->hal_efuse_map_valid = true;
-		spin_unlock(&halmac_adapter->efuse_lock);
-
-		if (halmac_adapter->event_trigger.physical_efuse_map == 1) {
-			PLATFORM_EVENT_INDICATION(
-				driver_adapter,
-				HALMAC_FEATURE_DUMP_PHYSICAL_EFUSE,
-				process_status, halmac_adapter->hal_efuse_map,
-				halmac_adapter->hw_config_info.efuse_size);
-			halmac_adapter->event_trigger.physical_efuse_map = 0;
-		}
-
-		if (halmac_adapter->event_trigger.logical_efuse_map == 1) {
-			if (halmac_eeprom_parser_88xx(
-				    halmac_adapter,
-				    halmac_adapter->hal_efuse_map,
-				    eeprom_map) != HALMAC_RET_SUCCESS) {
-				kfree(eeprom_map);
-				return HALMAC_RET_EEPROM_PARSING_FAIL;
-			}
-			PLATFORM_EVENT_INDICATION(
-				driver_adapter,
-				HALMAC_FEATURE_DUMP_LOGICAL_EFUSE,
-				process_status, eeprom_map, eeprom_size);
-			halmac_adapter->event_trigger.logical_efuse_map = 0;
-		}
-	} else {
-		process_status = HALMAC_CMD_PROCESS_ERROR;
-		halmac_adapter->halmac_state.efuse_state_set.process_status =
-			process_status;
-
-		if (halmac_adapter->event_trigger.physical_efuse_map == 1) {
-			PLATFORM_EVENT_INDICATION(
-				driver_adapter,
-				HALMAC_FEATURE_DUMP_PHYSICAL_EFUSE,
-				process_status,
-				&halmac_adapter->halmac_state.efuse_state_set
-					 .fw_return_code,
-				1);
-			halmac_adapter->event_trigger.physical_efuse_map = 0;
-		}
-
-		if (halmac_adapter->event_trigger.logical_efuse_map == 1) {
-			if (halmac_eeprom_parser_88xx(
-				    halmac_adapter,
-				    halmac_adapter->hal_efuse_map,
-				    eeprom_map) != HALMAC_RET_SUCCESS) {
-				kfree(eeprom_map);
-				return HALMAC_RET_EEPROM_PARSING_FAIL;
-			}
-			PLATFORM_EVENT_INDICATION(
-				driver_adapter,
-				HALMAC_FEATURE_DUMP_LOGICAL_EFUSE,
-				process_status,
-				&halmac_adapter->halmac_state.efuse_state_set
-					 .fw_return_code,
-				1);
-			halmac_adapter->event_trigger.logical_efuse_map = 0;
-		}
-	}
-
-	kfree(eeprom_map);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_88xx(struct halmac_adapter *halmac_adapter, u8 *c2h_buf,
-			  u32 c2h_size)
-{
-	u8 h2c_cmd_id, h2c_sub_cmd_id;
-	u8 h2c_return_code;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"Ack for C2H!!\n");
-
-	h2c_return_code = (u8)H2C_ACK_HDR_GET_H2C_RETURN_CODE(c2h_buf);
-	if ((enum halmac_h2c_return_code)h2c_return_code !=
-	    HALMAC_H2C_RETURN_SUCCESS)
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-				"C2H_PKT Status Error!! Status = %d\n",
-				h2c_return_code);
-
-	h2c_cmd_id = (u8)H2C_ACK_HDR_GET_H2C_CMD_ID(c2h_buf);
-
-	if (h2c_cmd_id != 0xFF) {
-		pr_err("original h2c ack is not handled!!\n");
-		status = HALMAC_RET_C2H_NOT_HANDLED;
-	} else {
-		h2c_sub_cmd_id = (u8)H2C_ACK_HDR_GET_H2C_SUB_CMD_ID(c2h_buf);
-
-		switch (h2c_sub_cmd_id) {
-		case H2C_SUB_CMD_ID_DUMP_PHYSICAL_EFUSE_ACK:
-			status = halmac_parse_h2c_ack_phy_efuse_88xx(
-				halmac_adapter, c2h_buf, c2h_size);
-			break;
-		case H2C_SUB_CMD_ID_CFG_PARAMETER_ACK:
-			status = halmac_parse_h2c_ack_cfg_para_88xx(
-				halmac_adapter, c2h_buf, c2h_size);
-			break;
-		case H2C_SUB_CMD_ID_UPDATE_PACKET_ACK:
-			status = halmac_parse_h2c_ack_update_packet_88xx(
-				halmac_adapter, c2h_buf, c2h_size);
-			break;
-		case H2C_SUB_CMD_ID_UPDATE_DATAPACK_ACK:
-			status = halmac_parse_h2c_ack_update_datapack_88xx(
-				halmac_adapter, c2h_buf, c2h_size);
-			break;
-		case H2C_SUB_CMD_ID_RUN_DATAPACK_ACK:
-			status = halmac_parse_h2c_ack_run_datapack_88xx(
-				halmac_adapter, c2h_buf, c2h_size);
-			break;
-		case H2C_SUB_CMD_ID_CHANNEL_SWITCH_ACK:
-			status = halmac_parse_h2c_ack_channel_switch_88xx(
-				halmac_adapter, c2h_buf, c2h_size);
-			break;
-		case H2C_SUB_CMD_ID_IQK_ACK:
-			status = halmac_parse_h2c_ack_iqk_88xx(
-				halmac_adapter, c2h_buf, c2h_size);
-			break;
-		case H2C_SUB_CMD_ID_POWER_TRACKING_ACK:
-			status = halmac_parse_h2c_ack_power_tracking_88xx(
-				halmac_adapter, c2h_buf, c2h_size);
-			break;
-		case H2C_SUB_CMD_ID_PSD_ACK:
-			break;
-		default:
-			pr_err("h2c_sub_cmd_id switch case out of boundary!!\n");
-			status = HALMAC_RET_C2H_NOT_HANDLED;
-			break;
-		}
-	}
-
-	return status;
-}
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_phy_efuse_88xx(struct halmac_adapter *halmac_adapter,
-				    u8 *c2h_buf, u32 c2h_size)
-{
-	u8 h2c_seq = 0;
-	u8 h2c_return_code;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-
-	h2c_seq = (u8)H2C_ACK_HDR_GET_H2C_SEQ(c2h_buf);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]Seq num : h2c -> %d c2h -> %d\n",
-			halmac_adapter->halmac_state.efuse_state_set.seq_num,
-			h2c_seq);
-	if (h2c_seq != halmac_adapter->halmac_state.efuse_state_set.seq_num) {
-		pr_err("[ERR]Seq num mismatch : h2c -> %d c2h -> %d\n",
-		       halmac_adapter->halmac_state.efuse_state_set.seq_num,
-		       h2c_seq);
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (halmac_adapter->halmac_state.efuse_state_set.process_status !=
-	    HALMAC_CMD_PROCESS_SENDING) {
-		pr_err("[ERR]Not in HALMAC_CMD_PROCESS_SENDING\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	h2c_return_code = (u8)H2C_ACK_HDR_GET_H2C_RETURN_CODE(c2h_buf);
-	halmac_adapter->halmac_state.efuse_state_set.fw_return_code =
-		h2c_return_code;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_cfg_para_88xx(struct halmac_adapter *halmac_adapter,
-				   u8 *c2h_buf, u32 c2h_size)
-{
-	u8 h2c_seq = 0;
-	u8 h2c_return_code;
-	u32 offset_accu = 0, value_accu = 0;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status =
-		HALMAC_CMD_PROCESS_UNDEFINE;
-
-	h2c_seq = (u8)H2C_ACK_HDR_GET_H2C_SEQ(c2h_buf);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"Seq num : h2c -> %d c2h -> %d\n",
-			halmac_adapter->halmac_state.cfg_para_state_set.seq_num,
-			h2c_seq);
-	if (h2c_seq !=
-	    halmac_adapter->halmac_state.cfg_para_state_set.seq_num) {
-		pr_err("Seq num mismatch : h2c -> %d c2h -> %d\n",
-		       halmac_adapter->halmac_state.cfg_para_state_set.seq_num,
-		       h2c_seq);
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (halmac_adapter->halmac_state.cfg_para_state_set.process_status !=
-	    HALMAC_CMD_PROCESS_SENDING) {
-		pr_err("Not in HALMAC_CMD_PROCESS_SENDING\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	h2c_return_code = (u8)H2C_ACK_HDR_GET_H2C_RETURN_CODE(c2h_buf);
-	halmac_adapter->halmac_state.cfg_para_state_set.fw_return_code =
-		h2c_return_code;
-	offset_accu = CFG_PARAMETER_ACK_GET_OFFSET_ACCUMULATION(c2h_buf);
-	value_accu = CFG_PARAMETER_ACK_GET_VALUE_ACCUMULATION(c2h_buf);
-
-	if ((offset_accu !=
-	     halmac_adapter->config_para_info.offset_accumulation) ||
-	    (value_accu !=
-	     halmac_adapter->config_para_info.value_accumulation)) {
-		pr_err("[C2H]offset_accu : %x, value_accu : %x!!\n",
-		       offset_accu, value_accu);
-		pr_err("[Adapter]offset_accu : %x, value_accu : %x!!\n",
-		       halmac_adapter->config_para_info.offset_accumulation,
-		       halmac_adapter->config_para_info.value_accumulation);
-		process_status = HALMAC_CMD_PROCESS_ERROR;
-	}
-
-	if ((enum halmac_h2c_return_code)h2c_return_code ==
-		    HALMAC_H2C_RETURN_SUCCESS &&
-	    process_status != HALMAC_CMD_PROCESS_ERROR) {
-		process_status = HALMAC_CMD_PROCESS_DONE;
-		halmac_adapter->halmac_state.cfg_para_state_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(driver_adapter,
-					  HALMAC_FEATURE_CFG_PARA,
-					  process_status, NULL, 0);
-	} else {
-		process_status = HALMAC_CMD_PROCESS_ERROR;
-		halmac_adapter->halmac_state.cfg_para_state_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(
-			driver_adapter, HALMAC_FEATURE_CFG_PARA, process_status,
-			&halmac_adapter->halmac_state.cfg_para_state_set
-				 .fw_return_code,
-			1);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_update_packet_88xx(struct halmac_adapter *halmac_adapter,
-					u8 *c2h_buf, u32 c2h_size)
-{
-	u8 h2c_seq = 0;
-	u8 h2c_return_code;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status;
-
-	h2c_seq = (u8)H2C_ACK_HDR_GET_H2C_SEQ(c2h_buf);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]Seq num : h2c -> %d c2h -> %d\n",
-			halmac_adapter->halmac_state.update_packet_set.seq_num,
-			h2c_seq);
-	if (h2c_seq != halmac_adapter->halmac_state.update_packet_set.seq_num) {
-		pr_err("[ERR]Seq num mismatch : h2c -> %d c2h -> %d\n",
-		       halmac_adapter->halmac_state.update_packet_set.seq_num,
-		       h2c_seq);
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (halmac_adapter->halmac_state.update_packet_set.process_status !=
-	    HALMAC_CMD_PROCESS_SENDING) {
-		pr_err("[ERR]Not in HALMAC_CMD_PROCESS_SENDING\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	h2c_return_code = (u8)H2C_ACK_HDR_GET_H2C_RETURN_CODE(c2h_buf);
-	halmac_adapter->halmac_state.update_packet_set.fw_return_code =
-		h2c_return_code;
-
-	if ((enum halmac_h2c_return_code)h2c_return_code ==
-	    HALMAC_H2C_RETURN_SUCCESS) {
-		process_status = HALMAC_CMD_PROCESS_DONE;
-		halmac_adapter->halmac_state.update_packet_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(driver_adapter,
-					  HALMAC_FEATURE_UPDATE_PACKET,
-					  process_status, NULL, 0);
-	} else {
-		process_status = HALMAC_CMD_PROCESS_ERROR;
-		halmac_adapter->halmac_state.update_packet_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(
-			driver_adapter, HALMAC_FEATURE_UPDATE_PACKET,
-			process_status,
-			&halmac_adapter->halmac_state.update_packet_set
-				 .fw_return_code,
-			1);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_update_datapack_88xx(struct halmac_adapter *halmac_adapter,
-					  u8 *c2h_buf, u32 c2h_size)
-{
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status =
-		HALMAC_CMD_PROCESS_UNDEFINE;
-
-	PLATFORM_EVENT_INDICATION(driver_adapter,
-				  HALMAC_FEATURE_UPDATE_DATAPACK,
-				  process_status, NULL, 0);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_run_datapack_88xx(struct halmac_adapter *halmac_adapter,
-				       u8 *c2h_buf, u32 c2h_size)
-{
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status =
-		HALMAC_CMD_PROCESS_UNDEFINE;
-
-	PLATFORM_EVENT_INDICATION(driver_adapter, HALMAC_FEATURE_RUN_DATAPACK,
-				  process_status, NULL, 0);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_channel_switch_88xx(struct halmac_adapter *halmac_adapter,
-					 u8 *c2h_buf, u32 c2h_size)
-{
-	u8 h2c_seq = 0;
-	u8 h2c_return_code;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status;
-
-	h2c_seq = (u8)H2C_ACK_HDR_GET_H2C_SEQ(c2h_buf);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]Seq num : h2c -> %d c2h -> %d\n",
-			halmac_adapter->halmac_state.scan_state_set.seq_num,
-			h2c_seq);
-	if (h2c_seq != halmac_adapter->halmac_state.scan_state_set.seq_num) {
-		pr_err("[ERR]Seq num misactch : h2c -> %d c2h -> %d\n",
-		       halmac_adapter->halmac_state.scan_state_set.seq_num,
-		       h2c_seq);
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (halmac_adapter->halmac_state.scan_state_set.process_status !=
-	    HALMAC_CMD_PROCESS_SENDING) {
-		pr_err("[ERR]Not in HALMAC_CMD_PROCESS_SENDING\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	h2c_return_code = (u8)H2C_ACK_HDR_GET_H2C_RETURN_CODE(c2h_buf);
-	halmac_adapter->halmac_state.scan_state_set.fw_return_code =
-		h2c_return_code;
-
-	if ((enum halmac_h2c_return_code)h2c_return_code ==
-	    HALMAC_H2C_RETURN_SUCCESS) {
-		process_status = HALMAC_CMD_PROCESS_RCVD;
-		halmac_adapter->halmac_state.scan_state_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(driver_adapter,
-					  HALMAC_FEATURE_CHANNEL_SWITCH,
-					  process_status, NULL, 0);
-	} else {
-		process_status = HALMAC_CMD_PROCESS_ERROR;
-		halmac_adapter->halmac_state.scan_state_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(
-			driver_adapter, HALMAC_FEATURE_CHANNEL_SWITCH,
-			process_status, &halmac_adapter->halmac_state
-						 .scan_state_set.fw_return_code,
-			1);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_iqk_88xx(struct halmac_adapter *halmac_adapter,
-			      u8 *c2h_buf, u32 c2h_size)
-{
-	u8 h2c_seq = 0;
-	u8 h2c_return_code;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status;
-
-	h2c_seq = (u8)H2C_ACK_HDR_GET_H2C_SEQ(c2h_buf);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]Seq num : h2c -> %d c2h -> %d\n",
-			halmac_adapter->halmac_state.iqk_set.seq_num, h2c_seq);
-	if (h2c_seq != halmac_adapter->halmac_state.iqk_set.seq_num) {
-		pr_err("[ERR]Seq num misactch : h2c -> %d c2h -> %d\n",
-		       halmac_adapter->halmac_state.iqk_set.seq_num, h2c_seq);
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (halmac_adapter->halmac_state.iqk_set.process_status !=
-	    HALMAC_CMD_PROCESS_SENDING) {
-		pr_err("[ERR]Not in HALMAC_CMD_PROCESS_SENDING\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	h2c_return_code = (u8)H2C_ACK_HDR_GET_H2C_RETURN_CODE(c2h_buf);
-	halmac_adapter->halmac_state.iqk_set.fw_return_code = h2c_return_code;
-
-	if ((enum halmac_h2c_return_code)h2c_return_code ==
-	    HALMAC_H2C_RETURN_SUCCESS) {
-		process_status = HALMAC_CMD_PROCESS_DONE;
-		halmac_adapter->halmac_state.iqk_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(driver_adapter, HALMAC_FEATURE_IQK,
-					  process_status, NULL, 0);
-	} else {
-		process_status = HALMAC_CMD_PROCESS_ERROR;
-		halmac_adapter->halmac_state.iqk_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(
-			driver_adapter, HALMAC_FEATURE_IQK, process_status,
-			&halmac_adapter->halmac_state.iqk_set.fw_return_code,
-			1);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_parse_h2c_ack_power_tracking_88xx(struct halmac_adapter *halmac_adapter,
-					 u8 *c2h_buf, u32 c2h_size)
-{
-	u8 h2c_seq = 0;
-	u8 h2c_return_code;
-	void *driver_adapter = halmac_adapter->driver_adapter;
-	enum halmac_cmd_process_status process_status;
-
-	h2c_seq = (u8)H2C_ACK_HDR_GET_H2C_SEQ(c2h_buf);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG,
-			"[TRACE]Seq num : h2c -> %d c2h -> %d\n",
-			halmac_adapter->halmac_state.power_tracking_set.seq_num,
-			h2c_seq);
-	if (h2c_seq !=
-	    halmac_adapter->halmac_state.power_tracking_set.seq_num) {
-		pr_err("[ERR]Seq num mismatch : h2c -> %d c2h -> %d\n",
-		       halmac_adapter->halmac_state.power_tracking_set.seq_num,
-		       h2c_seq);
-		return HALMAC_RET_SUCCESS;
-	}
-
-	if (halmac_adapter->halmac_state.power_tracking_set.process_status !=
-	    HALMAC_CMD_PROCESS_SENDING) {
-		pr_err("[ERR]Not in HALMAC_CMD_PROCESS_SENDING\n");
-		return HALMAC_RET_SUCCESS;
-	}
-
-	h2c_return_code = (u8)H2C_ACK_HDR_GET_H2C_RETURN_CODE(c2h_buf);
-	halmac_adapter->halmac_state.power_tracking_set.fw_return_code =
-		h2c_return_code;
-
-	if ((enum halmac_h2c_return_code)h2c_return_code ==
-	    HALMAC_H2C_RETURN_SUCCESS) {
-		process_status = HALMAC_CMD_PROCESS_DONE;
-		halmac_adapter->halmac_state.power_tracking_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(driver_adapter,
-					  HALMAC_FEATURE_POWER_TRACKING,
-					  process_status, NULL, 0);
-	} else {
-		process_status = HALMAC_CMD_PROCESS_ERROR;
-		halmac_adapter->halmac_state.power_tracking_set.process_status =
-			process_status;
-		PLATFORM_EVENT_INDICATION(
-			driver_adapter, HALMAC_FEATURE_POWER_TRACKING,
-			process_status,
-			&halmac_adapter->halmac_state.power_tracking_set
-				 .fw_return_code,
-			1);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_convert_to_sdio_bus_offset_88xx(struct halmac_adapter *halmac_adapter,
-				       u32 *halmac_offset)
-{
-	void *driver_adapter = NULL;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	switch ((*halmac_offset) & 0xFFFF0000) {
-	case WLAN_IOREG_OFFSET:
-		*halmac_offset = (HALMAC_SDIO_CMD_ADDR_MAC_REG << 13) |
-				 (*halmac_offset & HALMAC_WLAN_MAC_REG_MSK);
-		break;
-	case SDIO_LOCAL_OFFSET:
-		*halmac_offset = (HALMAC_SDIO_CMD_ADDR_SDIO_REG << 13) |
-				 (*halmac_offset & HALMAC_SDIO_LOCAL_MSK);
-		break;
-	default:
-		*halmac_offset = 0xFFFFFFFF;
-		pr_err("Unknown base address!!\n");
-		return HALMAC_RET_CONVERT_SDIO_OFFSET_FAIL;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_update_sdio_free_page_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u32 free_page = 0, free_page2 = 0, free_page3 = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	struct halmac_sdio_free_space *sdio_free_space;
-	u8 data[12] = {0};
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	sdio_free_space = &halmac_adapter->sdio_free_space;
-	/*need to use HALMAC_REG_READ_N, 20160316, Soar*/
-	HALMAC_REG_SDIO_CMD53_READ_N(halmac_adapter, REG_SDIO_FREE_TXPG, 12,
-				     data);
-	free_page =
-		data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24);
-	free_page2 =
-		data[4] | (data[5] << 8) | (data[6] << 16) | (data[7] << 24);
-	free_page3 =
-		data[8] | (data[9] << 8) | (data[10] << 16) | (data[11] << 24);
-
-	sdio_free_space->high_queue_number =
-		(u16)BIT_GET_HIQ_FREEPG_V1(free_page);
-	sdio_free_space->normal_queue_number =
-		(u16)BIT_GET_MID_FREEPG_V1(free_page);
-	sdio_free_space->low_queue_number =
-		(u16)BIT_GET_LOW_FREEPG_V1(free_page2);
-	sdio_free_space->public_queue_number =
-		(u16)BIT_GET_PUB_FREEPG_V1(free_page2);
-	sdio_free_space->extra_queue_number =
-		(u16)BIT_GET_EXQ_FREEPG_V1(free_page3);
-	sdio_free_space->ac_oqt_number = (u8)((free_page3 >> 16) & 0xFF);
-	sdio_free_space->non_ac_oqt_number = (u8)((free_page3 >> 24) & 0xFF);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_update_oqt_free_space_88xx(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	struct halmac_sdio_free_space *sdio_free_space;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	sdio_free_space = &halmac_adapter->sdio_free_space;
-
-	sdio_free_space->ac_oqt_number = HALMAC_REG_READ_8(
-		halmac_adapter, REG_SDIO_OQT_FREE_TXPG_V1 + 2);
-	sdio_free_space->ac_empty =
-		HALMAC_REG_READ_8(halmac_adapter, REG_TXPKT_EMPTY);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s <==========\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_efuse_cmd_construct_state
-halmac_query_efuse_curr_state_88xx(struct halmac_adapter *halmac_adapter)
-{
-	return halmac_adapter->halmac_state.efuse_state_set
-		.efuse_cmd_construct_state;
-}
-
-enum halmac_ret_status halmac_transition_efuse_state_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_efuse_cmd_construct_state dest_state)
-{
-	struct halmac_efuse_state_set *efuse_state =
-		&halmac_adapter->halmac_state.efuse_state_set;
-
-	if (efuse_state->efuse_cmd_construct_state !=
-		    HALMAC_EFUSE_CMD_CONSTRUCT_IDLE &&
-	    efuse_state->efuse_cmd_construct_state !=
-		    HALMAC_EFUSE_CMD_CONSTRUCT_BUSY &&
-	    efuse_state->efuse_cmd_construct_state !=
-		    HALMAC_EFUSE_CMD_CONSTRUCT_H2C_SENT)
-		return HALMAC_RET_ERROR_STATE;
-
-	if (efuse_state->efuse_cmd_construct_state == dest_state)
-		return HALMAC_RET_ERROR_STATE;
-
-	if (dest_state == HALMAC_EFUSE_CMD_CONSTRUCT_BUSY) {
-		if (efuse_state->efuse_cmd_construct_state ==
-		    HALMAC_EFUSE_CMD_CONSTRUCT_H2C_SENT)
-			return HALMAC_RET_ERROR_STATE;
-	} else if (dest_state == HALMAC_EFUSE_CMD_CONSTRUCT_H2C_SENT) {
-		if (efuse_state->efuse_cmd_construct_state ==
-		    HALMAC_EFUSE_CMD_CONSTRUCT_IDLE)
-			return HALMAC_RET_ERROR_STATE;
-	}
-
-	efuse_state->efuse_cmd_construct_state = dest_state;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_cfg_para_cmd_construct_state
-halmac_query_cfg_para_curr_state_88xx(struct halmac_adapter *halmac_adapter)
-{
-	return halmac_adapter->halmac_state.cfg_para_state_set
-		.cfg_para_cmd_construct_state;
-}
-
-enum halmac_ret_status halmac_transition_cfg_para_state_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cfg_para_cmd_construct_state dest_state)
-{
-	struct halmac_cfg_para_state_set *cfg_para =
-		&halmac_adapter->halmac_state.cfg_para_state_set;
-
-	if (cfg_para->cfg_para_cmd_construct_state !=
-		    HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE &&
-	    cfg_para->cfg_para_cmd_construct_state !=
-		    HALMAC_CFG_PARA_CMD_CONSTRUCT_CONSTRUCTING &&
-	    cfg_para->cfg_para_cmd_construct_state !=
-		    HALMAC_CFG_PARA_CMD_CONSTRUCT_H2C_SENT)
-		return HALMAC_RET_ERROR_STATE;
-
-	if (dest_state == HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE) {
-		if (cfg_para->cfg_para_cmd_construct_state ==
-		    HALMAC_CFG_PARA_CMD_CONSTRUCT_CONSTRUCTING)
-			return HALMAC_RET_ERROR_STATE;
-	} else if (dest_state == HALMAC_CFG_PARA_CMD_CONSTRUCT_CONSTRUCTING) {
-		if (cfg_para->cfg_para_cmd_construct_state ==
-		    HALMAC_CFG_PARA_CMD_CONSTRUCT_H2C_SENT)
-			return HALMAC_RET_ERROR_STATE;
-	} else if (dest_state == HALMAC_CFG_PARA_CMD_CONSTRUCT_H2C_SENT) {
-		if (cfg_para->cfg_para_cmd_construct_state ==
-			    HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE ||
-		    cfg_para->cfg_para_cmd_construct_state ==
-			    HALMAC_CFG_PARA_CMD_CONSTRUCT_H2C_SENT)
-			return HALMAC_RET_ERROR_STATE;
-	}
-
-	cfg_para->cfg_para_cmd_construct_state = dest_state;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_scan_cmd_construct_state
-halmac_query_scan_curr_state_88xx(struct halmac_adapter *halmac_adapter)
-{
-	return halmac_adapter->halmac_state.scan_state_set
-		.scan_cmd_construct_state;
-}
-
-enum halmac_ret_status halmac_transition_scan_state_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_scan_cmd_construct_state dest_state)
-{
-	struct halmac_scan_state_set *scan =
-		&halmac_adapter->halmac_state.scan_state_set;
-
-	if (scan->scan_cmd_construct_state > HALMAC_SCAN_CMD_CONSTRUCT_H2C_SENT)
-		return HALMAC_RET_ERROR_STATE;
-
-	if (dest_state == HALMAC_SCAN_CMD_CONSTRUCT_IDLE) {
-		if (scan->scan_cmd_construct_state ==
-			    HALMAC_SCAN_CMD_CONSTRUCT_BUFFER_CLEARED ||
-		    scan->scan_cmd_construct_state ==
-			    HALMAC_SCAN_CMD_CONSTRUCT_CONSTRUCTING)
-			return HALMAC_RET_ERROR_STATE;
-	} else if (dest_state == HALMAC_SCAN_CMD_CONSTRUCT_BUFFER_CLEARED) {
-		if (scan->scan_cmd_construct_state ==
-		    HALMAC_SCAN_CMD_CONSTRUCT_H2C_SENT)
-			return HALMAC_RET_ERROR_STATE;
-	} else if (dest_state == HALMAC_SCAN_CMD_CONSTRUCT_CONSTRUCTING) {
-		if (scan->scan_cmd_construct_state ==
-			    HALMAC_SCAN_CMD_CONSTRUCT_IDLE ||
-		    scan->scan_cmd_construct_state ==
-			    HALMAC_SCAN_CMD_CONSTRUCT_H2C_SENT)
-			return HALMAC_RET_ERROR_STATE;
-	} else if (dest_state == HALMAC_SCAN_CMD_CONSTRUCT_H2C_SENT) {
-		if (scan->scan_cmd_construct_state !=
-			    HALMAC_SCAN_CMD_CONSTRUCT_CONSTRUCTING &&
-		    scan->scan_cmd_construct_state !=
-			    HALMAC_SCAN_CMD_CONSTRUCT_BUFFER_CLEARED)
-			return HALMAC_RET_ERROR_STATE;
-	}
-
-	scan->scan_cmd_construct_state = dest_state;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_query_cfg_para_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size)
-{
-	struct halmac_cfg_para_state_set *cfg_para_state_set =
-		&halmac_adapter->halmac_state.cfg_para_state_set;
-
-	*process_status = cfg_para_state_set->process_status;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_query_dump_physical_efuse_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size)
-{
-	void *driver_adapter = NULL;
-	struct halmac_efuse_state_set *efuse_state_set =
-		&halmac_adapter->halmac_state.efuse_state_set;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	*process_status = efuse_state_set->process_status;
-
-	if (!data)
-		return HALMAC_RET_NULL_POINTER;
-
-	if (!size)
-		return HALMAC_RET_NULL_POINTER;
-
-	if (*process_status == HALMAC_CMD_PROCESS_DONE) {
-		if (*size < halmac_adapter->hw_config_info.efuse_size) {
-			*size = halmac_adapter->hw_config_info.efuse_size;
-			return HALMAC_RET_BUFFER_TOO_SMALL;
-		}
-
-		*size = halmac_adapter->hw_config_info.efuse_size;
-		memcpy(data, halmac_adapter->hal_efuse_map, *size);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_query_dump_logical_efuse_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size)
-{
-	u8 *eeprom_map = NULL;
-	u32 eeprom_size = halmac_adapter->hw_config_info.eeprom_size;
-	void *driver_adapter = NULL;
-	struct halmac_efuse_state_set *efuse_state_set =
-		&halmac_adapter->halmac_state.efuse_state_set;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	*process_status = efuse_state_set->process_status;
-
-	if (!data)
-		return HALMAC_RET_NULL_POINTER;
-
-	if (!size)
-		return HALMAC_RET_NULL_POINTER;
-
-	if (*process_status == HALMAC_CMD_PROCESS_DONE) {
-		if (*size < eeprom_size) {
-			*size = eeprom_size;
-			return HALMAC_RET_BUFFER_TOO_SMALL;
-		}
-
-		*size = eeprom_size;
-
-		eeprom_map = kzalloc(eeprom_size, GFP_KERNEL);
-		if (!eeprom_map)
-			return HALMAC_RET_MALLOC_FAIL;
-		memset(eeprom_map, 0xFF, eeprom_size);
-
-		if (halmac_eeprom_parser_88xx(
-			    halmac_adapter, halmac_adapter->hal_efuse_map,
-			    eeprom_map) != HALMAC_RET_SUCCESS) {
-			kfree(eeprom_map);
-			return HALMAC_RET_EEPROM_PARSING_FAIL;
-		}
-
-		memcpy(data, eeprom_map, *size);
-
-		kfree(eeprom_map);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_query_channel_switch_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size)
-{
-	struct halmac_scan_state_set *scan_state_set =
-		&halmac_adapter->halmac_state.scan_state_set;
-
-	*process_status = scan_state_set->process_status;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_query_update_packet_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size)
-{
-	struct halmac_update_packet_state_set *update_packet_set =
-		&halmac_adapter->halmac_state.update_packet_set;
-
-	*process_status = update_packet_set->process_status;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_query_iqk_status_88xx(struct halmac_adapter *halmac_adapter,
-			     enum halmac_cmd_process_status *process_status,
-			     u8 *data, u32 *size)
-{
-	struct halmac_iqk_state_set *iqk_set =
-		&halmac_adapter->halmac_state.iqk_set;
-
-	*process_status = iqk_set->process_status;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status halmac_query_power_tracking_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size)
-{
-	struct halmac_power_tracking_state_set *power_tracking_state_set =
-		&halmac_adapter->halmac_state.power_tracking_set;
-	;
-
-	*process_status = power_tracking_state_set->process_status;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_query_psd_status_88xx(struct halmac_adapter *halmac_adapter,
-			     enum halmac_cmd_process_status *process_status,
-			     u8 *data, u32 *size)
-{
-	void *driver_adapter = NULL;
-	struct halmac_psd_state_set *psd_set =
-		&halmac_adapter->halmac_state.psd_set;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	*process_status = psd_set->process_status;
-
-	if (!data)
-		return HALMAC_RET_NULL_POINTER;
-
-	if (!size)
-		return HALMAC_RET_NULL_POINTER;
-
-	if (*process_status == HALMAC_CMD_PROCESS_DONE) {
-		if (*size < psd_set->data_size) {
-			*size = psd_set->data_size;
-			return HALMAC_RET_BUFFER_TOO_SMALL;
-		}
-
-		*size = psd_set->data_size;
-		memcpy(data, psd_set->data, *size);
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_verify_io_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u8 value8, wvalue8;
-	u32 value32, value32_2, wvalue32;
-	u32 halmac_offset;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status ret_status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		halmac_offset = REG_PAGE5_DUMMY;
-		if ((halmac_offset & 0xFFFF0000) == 0)
-			halmac_offset |= WLAN_IOREG_OFFSET;
-
-		ret_status = halmac_convert_to_sdio_bus_offset_88xx(
-			halmac_adapter, &halmac_offset);
-
-		/* Verify CMD52 R/W */
-		wvalue8 = 0xab;
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset,
-					  wvalue8);
-
-		value8 =
-			PLATFORM_SDIO_CMD52_READ(driver_adapter, halmac_offset);
-
-		if (value8 != wvalue8) {
-			pr_err("cmd52 r/w fail write = %X read = %X\n", wvalue8,
-			       value8);
-			ret_status = HALMAC_RET_PLATFORM_API_INCORRECT;
-		} else {
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT,
-					DBG_DMESG, "cmd52 r/w ok\n");
-		}
-
-		/* Verify CMD53 R/W */
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset, 0xaa);
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset + 1,
-					  0xbb);
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset + 2,
-					  0xcc);
-		PLATFORM_SDIO_CMD52_WRITE(driver_adapter, halmac_offset + 3,
-					  0xdd);
-
-		value32 = PLATFORM_SDIO_CMD53_READ_32(driver_adapter,
-						      halmac_offset);
-
-		if (value32 != 0xddccbbaa) {
-			pr_err("cmd53 r fail : read = %X\n", value32);
-			ret_status = HALMAC_RET_PLATFORM_API_INCORRECT;
-		} else {
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT,
-					DBG_DMESG, "cmd53 r ok\n");
-		}
-
-		wvalue32 = 0x11223344;
-		PLATFORM_SDIO_CMD53_WRITE_32(driver_adapter, halmac_offset,
-					     wvalue32);
-
-		value32 = PLATFORM_SDIO_CMD53_READ_32(driver_adapter,
-						      halmac_offset);
-
-		if (value32 != wvalue32) {
-			pr_err("cmd53 w fail\n");
-			ret_status = HALMAC_RET_PLATFORM_API_INCORRECT;
-		} else {
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT,
-					DBG_DMESG, "cmd53 w ok\n");
-		}
-
-		value32 = PLATFORM_SDIO_CMD53_READ_32(
-			driver_adapter,
-			halmac_offset + 2); /* value32 should be 0x33441122 */
-
-		wvalue32 = 0x11225566;
-		PLATFORM_SDIO_CMD53_WRITE_32(driver_adapter, halmac_offset,
-					     wvalue32);
-
-		value32_2 = PLATFORM_SDIO_CMD53_READ_32(
-			driver_adapter,
-			halmac_offset + 2); /* value32 should be 0x55661122 */
-		if (value32_2 == value32) {
-			pr_err("cmd52 is used for HAL_SDIO_CMD53_READ_32\n");
-			ret_status = HALMAC_RET_PLATFORM_API_INCORRECT;
-		} else {
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT,
-					DBG_DMESG, "cmd53 is correctly used\n");
-		}
-	} else {
-		wvalue32 = 0x77665511;
-		PLATFORM_REG_WRITE_32(driver_adapter, REG_PAGE5_DUMMY,
-				      wvalue32);
-
-		value32 = PLATFORM_REG_READ_32(driver_adapter, REG_PAGE5_DUMMY);
-		if (value32 != wvalue32) {
-			pr_err("reg rw\n");
-			ret_status = HALMAC_RET_PLATFORM_API_INCORRECT;
-		} else {
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT,
-					DBG_DMESG, "reg rw ok\n");
-		}
-	}
-
-	return ret_status;
-}
-
-enum halmac_ret_status
-halmac_verify_send_rsvd_page_88xx(struct halmac_adapter *halmac_adapter)
-{
-	u8 *rsvd_buf = NULL;
-	u8 *rsvd_page = NULL;
-	u32 i;
-	u32 h2c_pkt_verify_size = 64, h2c_pkt_verify_payload = 0xab;
-	void *driver_adapter = NULL;
-	enum halmac_ret_status ret_status = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	rsvd_buf = kzalloc(h2c_pkt_verify_size, GFP_KERNEL);
-
-	if (!rsvd_buf)
-		return HALMAC_RET_MALLOC_FAIL;
-
-	memset(rsvd_buf, (u8)h2c_pkt_verify_payload, h2c_pkt_verify_size);
-
-	ret_status = halmac_download_rsvd_page_88xx(halmac_adapter, rsvd_buf,
-						    h2c_pkt_verify_size);
-
-	if (ret_status != HALMAC_RET_SUCCESS) {
-		kfree(rsvd_buf);
-		return ret_status;
-	}
-
-	rsvd_page = kzalloc(h2c_pkt_verify_size +
-				    halmac_adapter->hw_config_info.txdesc_size,
-			    GFP_KERNEL);
-
-	if (!rsvd_page) {
-		kfree(rsvd_buf);
-		return HALMAC_RET_MALLOC_FAIL;
-	}
-
-	ret_status = halmac_dump_fifo_88xx(
-		halmac_adapter, HAL_FIFO_SEL_RSVD_PAGE, 0,
-		h2c_pkt_verify_size +
-			halmac_adapter->hw_config_info.txdesc_size,
-		rsvd_page);
-
-	if (ret_status != HALMAC_RET_SUCCESS) {
-		kfree(rsvd_buf);
-		kfree(rsvd_page);
-		return ret_status;
-	}
-
-	for (i = 0; i < h2c_pkt_verify_size; i++) {
-		if (*(rsvd_buf + i) !=
-		    *(rsvd_page +
-		      (i + halmac_adapter->hw_config_info.txdesc_size))) {
-			pr_err("[ERR]Compare RSVD page Fail\n");
-			ret_status = HALMAC_RET_PLATFORM_API_INCORRECT;
-		}
-	}
-
-	kfree(rsvd_buf);
-	kfree(rsvd_page);
-
-	return ret_status;
-}
-
-void halmac_power_save_cb_88xx(void *cb_data)
-{
-	void *driver_adapter = NULL;
-	struct halmac_adapter *halmac_adapter = (struct halmac_adapter *)NULL;
-
-	halmac_adapter = (struct halmac_adapter *)cb_data;
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_PWR, DBG_DMESG,
-			"%s\n", __func__);
-}
-
-enum halmac_ret_status
-halmac_buffer_read_88xx(struct halmac_adapter *halmac_adapter, u32 offset,
-			u32 size, enum hal_fifo_sel halmac_fifo_sel,
-			u8 *fifo_map)
-{
-	u32 start_page, value_read;
-	u32 i, counter = 0, residue;
-	struct halmac_api *halmac_api;
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (halmac_fifo_sel == HAL_FIFO_SEL_RSVD_PAGE)
-		offset = offset +
-			 (halmac_adapter->txff_allocation.rsvd_pg_bndy << 7);
-
-	start_page = offset >> 12;
-	residue = offset & (4096 - 1);
-
-	if (halmac_fifo_sel == HAL_FIFO_SEL_TX ||
-	    halmac_fifo_sel == HAL_FIFO_SEL_RSVD_PAGE)
-		start_page += 0x780;
-	else if (halmac_fifo_sel == HAL_FIFO_SEL_RX)
-		start_page += 0x700;
-	else if (halmac_fifo_sel == HAL_FIFO_SEL_REPORT)
-		start_page += 0x660;
-	else if (halmac_fifo_sel == HAL_FIFO_SEL_LLT)
-		start_page += 0x650;
-	else
-		return HALMAC_RET_NOT_SUPPORT;
-
-	value_read = HALMAC_REG_READ_16(halmac_adapter, REG_PKTBUF_DBG_CTRL);
-
-	do {
-		HALMAC_REG_WRITE_16(halmac_adapter, REG_PKTBUF_DBG_CTRL,
-				    (u16)(start_page | (value_read & 0xF000)));
-
-		for (i = 0x8000 + residue; i <= 0x8FFF; i += 4) {
-			*(u32 *)(fifo_map + counter) =
-				HALMAC_REG_READ_32(halmac_adapter, i);
-			*(u32 *)(fifo_map + counter) =
-				le32_to_cpu(*(__le32 *)(fifo_map + counter));
-			counter += 4;
-			if (size == counter)
-				goto HALMAC_BUF_READ_OK;
-		}
-
-		residue = 0;
-		start_page++;
-	} while (1);
-
-HALMAC_BUF_READ_OK:
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_PKTBUF_DBG_CTRL,
-			    (u16)value_read);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-void halmac_restore_mac_register_88xx(struct halmac_adapter *halmac_adapter,
-				      struct halmac_restore_info *restore_info,
-				      u32 restore_num)
-{
-	u8 value_length;
-	u32 i;
-	u32 mac_register;
-	u32 mac_value;
-	struct halmac_api *halmac_api;
-	struct halmac_restore_info *curr_restore_info = restore_info;
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	for (i = 0; i < restore_num; i++) {
-		mac_register = curr_restore_info->mac_register;
-		mac_value = curr_restore_info->value;
-		value_length = curr_restore_info->length;
-
-		if (value_length == 1)
-			HALMAC_REG_WRITE_8(halmac_adapter, mac_register,
-					   (u8)mac_value);
-		else if (value_length == 2)
-			HALMAC_REG_WRITE_16(halmac_adapter, mac_register,
-					    (u16)mac_value);
-		else if (value_length == 4)
-			HALMAC_REG_WRITE_32(halmac_adapter, mac_register,
-					    mac_value);
-
-		curr_restore_info++;
-	}
-}
-
-void halmac_api_record_id_88xx(struct halmac_adapter *halmac_adapter,
-			       enum halmac_api_id api_id)
-{
-}
-
-enum halmac_ret_status
-halmac_set_usb_mode_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_usb_mode usb_mode)
-{
-	u32 usb_temp;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	enum halmac_usb_mode current_usb_mode;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	current_usb_mode =
-		HALMAC_REG_READ_8(halmac_adapter, REG_SYS_CFG2 + 3) == 0x20 ?
-			HALMAC_USB_MODE_U3 :
-			HALMAC_USB_MODE_U2;
-
-	/*check if HW supports usb2_usb3 swtich*/
-	usb_temp = HALMAC_REG_READ_32(halmac_adapter, REG_PAD_CTRL2);
-	if (!BIT_GET_USB23_SW_MODE_V1(usb_temp) &&
-	    !(usb_temp & BIT_USB3_USB2_TRANSITION)) {
-		pr_err("HALMAC_HW_USB_MODE usb mode HW unsupport\n");
-		return HALMAC_RET_USB2_3_SWITCH_UNSUPPORT;
-	}
-
-	if (usb_mode == current_usb_mode) {
-		pr_err("HALMAC_HW_USB_MODE usb mode unchange\n");
-		return HALMAC_RET_USB_MODE_UNCHANGE;
-	}
-
-	usb_temp &= ~(BIT_USB23_SW_MODE_V1(0x3));
-
-	if (usb_mode == HALMAC_USB_MODE_U2) {
-		/* usb3 to usb2 */
-		HALMAC_REG_WRITE_32(
-			halmac_adapter, REG_PAD_CTRL2,
-			usb_temp | BIT_USB23_SW_MODE_V1(HALMAC_USB_MODE_U2) |
-				BIT_RSM_EN_V1);
-	} else {
-		/* usb2 to usb3 */
-		HALMAC_REG_WRITE_32(
-			halmac_adapter, REG_PAD_CTRL2,
-			usb_temp | BIT_USB23_SW_MODE_V1(HALMAC_USB_MODE_U3) |
-				BIT_RSM_EN_V1);
-	}
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PAD_CTRL2 + 1,
-			   4); /* set counter down timer 4x64 ms */
-	HALMAC_REG_WRITE_16(
-		halmac_adapter, REG_SYS_PW_CTRL,
-		HALMAC_REG_READ_16(halmac_adapter, REG_SYS_PW_CTRL) |
-			BIT_APFM_OFFMAC);
-	usleep_range(1000, 1100);
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_PAD_CTRL2,
-			    HALMAC_REG_READ_32(halmac_adapter, REG_PAD_CTRL2) |
-				    BIT_NO_PDN_CHIPOFF_V1);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-void halmac_enable_bb_rf_88xx(struct halmac_adapter *halmac_adapter, u8 enable)
-{
-	u8 value8;
-	u32 value32;
-	struct halmac_api *halmac_api;
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (enable == 1) {
-		value8 = HALMAC_REG_READ_8(halmac_adapter, REG_SYS_FUNC_EN);
-		value8 = value8 | BIT(0) | BIT(1);
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_SYS_FUNC_EN, value8);
-
-		value8 = HALMAC_REG_READ_8(halmac_adapter, REG_RF_CTRL);
-		value8 = value8 | BIT(0) | BIT(1) | BIT(2);
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_RF_CTRL, value8);
-
-		value32 = HALMAC_REG_READ_32(halmac_adapter, REG_WLRF1);
-		value32 = value32 | BIT(24) | BIT(25) | BIT(26);
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_WLRF1, value32);
-	} else {
-		value8 = HALMAC_REG_READ_8(halmac_adapter, REG_SYS_FUNC_EN);
-		value8 = value8 & (~(BIT(0) | BIT(1)));
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_SYS_FUNC_EN, value8);
-
-		value8 = HALMAC_REG_READ_8(halmac_adapter, REG_RF_CTRL);
-		value8 = value8 & (~(BIT(0) | BIT(1) | BIT(2)));
-		HALMAC_REG_WRITE_8(halmac_adapter, REG_RF_CTRL, value8);
-
-		value32 = HALMAC_REG_READ_32(halmac_adapter, REG_WLRF1);
-		value32 = value32 & (~(BIT(24) | BIT(25) | BIT(26)));
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_WLRF1, value32);
-	}
-}
-
-void halmac_config_sdio_tx_page_threshold_88xx(
-	struct halmac_adapter *halmac_adapter,
-	struct halmac_tx_page_threshold_info *threshold_info)
-{
-	struct halmac_api *halmac_api;
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	switch (threshold_info->dma_queue_sel) {
-	case HALMAC_MAP2_HQ:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_TQPNT1,
-				    threshold_info->threshold);
-		break;
-	case HALMAC_MAP2_NQ:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_TQPNT2,
-				    threshold_info->threshold);
-		break;
-	case HALMAC_MAP2_LQ:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_TQPNT3,
-				    threshold_info->threshold);
-		break;
-	case HALMAC_MAP2_EXQ:
-		HALMAC_REG_WRITE_32(halmac_adapter, REG_TQPNT4,
-				    threshold_info->threshold);
-		break;
-	default:
-		break;
-	}
-}
-
-void halmac_config_ampdu_88xx(struct halmac_adapter *halmac_adapter,
-			      struct halmac_ampdu_config *ampdu_config)
-{
-	struct halmac_api *halmac_api;
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PROT_MODE_CTRL + 2,
-			   ampdu_config->max_agg_num);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PROT_MODE_CTRL + 3,
-			   ampdu_config->max_agg_num);
-};
-
-enum halmac_ret_status
-halmac_check_oqt_88xx(struct halmac_adapter *halmac_adapter, u32 tx_agg_num,
-		      u8 *halmac_buf)
-{
-	u32 counter = 10;
-
-	/*S0, S1 are not allowed to use, 0x4E4[0] should be 0. Soar 20160323*/
-	/*no need to check non_ac_oqt_number. HI and MGQ blocked will cause
-	 *protocal issue before H_OQT being full
-	 */
-	switch ((enum halmac_queue_select)GET_TX_DESC_QSEL(halmac_buf)) {
-	case HALMAC_QUEUE_SELECT_VO:
-	case HALMAC_QUEUE_SELECT_VO_V2:
-	case HALMAC_QUEUE_SELECT_VI:
-	case HALMAC_QUEUE_SELECT_VI_V2:
-	case HALMAC_QUEUE_SELECT_BE:
-	case HALMAC_QUEUE_SELECT_BE_V2:
-	case HALMAC_QUEUE_SELECT_BK:
-	case HALMAC_QUEUE_SELECT_BK_V2:
-		counter = 10;
-		do {
-			if (halmac_adapter->sdio_free_space.ac_empty > 0) {
-				halmac_adapter->sdio_free_space.ac_empty -= 1;
-				break;
-			}
-
-			if (halmac_adapter->sdio_free_space.ac_oqt_number >=
-			    tx_agg_num) {
-				halmac_adapter->sdio_free_space.ac_oqt_number -=
-					(u8)tx_agg_num;
-				break;
-			}
-
-			halmac_update_oqt_free_space_88xx(halmac_adapter);
-
-			counter--;
-			if (counter == 0)
-				return HALMAC_RET_OQT_NOT_ENOUGH;
-		} while (1);
-		break;
-	default:
-		break;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_rqpn_parser_88xx(struct halmac_adapter *halmac_adapter,
-			enum halmac_trx_mode halmac_trx_mode,
-			struct halmac_rqpn_ *rqpn_table)
-{
-	u8 search_flag;
-	u32 i;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	search_flag = 0;
-	for (i = 0; i < HALMAC_TRX_MODE_MAX; i++) {
-		if (halmac_trx_mode == rqpn_table[i].mode) {
-			halmac_adapter
-				->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VO] =
-				rqpn_table[i].dma_map_vo;
-			halmac_adapter
-				->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VI] =
-				rqpn_table[i].dma_map_vi;
-			halmac_adapter
-				->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BE] =
-				rqpn_table[i].dma_map_be;
-			halmac_adapter
-				->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BK] =
-				rqpn_table[i].dma_map_bk;
-			halmac_adapter
-				->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_MG] =
-				rqpn_table[i].dma_map_mg;
-			halmac_adapter
-				->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_HI] =
-				rqpn_table[i].dma_map_hi;
-			search_flag = 1;
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT,
-					DBG_DMESG, "%s done\n", __func__);
-			break;
-		}
-	}
-
-	if (search_flag == 0) {
-		pr_err("HALMAC_RET_TRX_MODE_NOT_SUPPORT 1 switch case not support\n");
-		return HALMAC_RET_TRX_MODE_NOT_SUPPORT;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_pg_num_parser_88xx(struct halmac_adapter *halmac_adapter,
-			  enum halmac_trx_mode halmac_trx_mode,
-			  struct halmac_pg_num_ *pg_num_table)
-{
-	u8 search_flag;
-	u16 HPQ_num = 0, lpq_nnum = 0, NPQ_num = 0, GAPQ_num = 0;
-	u16 EXPQ_num = 0, PUBQ_num = 0;
-	u32 i = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	search_flag = 0;
-	for (i = 0; i < HALMAC_TRX_MODE_MAX; i++) {
-		if (halmac_trx_mode == pg_num_table[i].mode) {
-			HPQ_num = pg_num_table[i].hq_num;
-			lpq_nnum = pg_num_table[i].lq_num;
-			NPQ_num = pg_num_table[i].nq_num;
-			EXPQ_num = pg_num_table[i].exq_num;
-			GAPQ_num = pg_num_table[i].gap_num;
-			PUBQ_num = halmac_adapter->txff_allocation.ac_q_pg_num -
-				   HPQ_num - lpq_nnum - NPQ_num - EXPQ_num -
-				   GAPQ_num;
-			search_flag = 1;
-			HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT,
-					DBG_DMESG, "%s done\n", __func__);
-			break;
-		}
-	}
-
-	if (search_flag == 0) {
-		pr_err("HALMAC_RET_TRX_MODE_NOT_SUPPORT 1 switch case not support\n");
-		return HALMAC_RET_TRX_MODE_NOT_SUPPORT;
-	}
-
-	if (halmac_adapter->txff_allocation.ac_q_pg_num <
-	    HPQ_num + lpq_nnum + NPQ_num + EXPQ_num + GAPQ_num)
-		return HALMAC_RET_CFG_TXFIFO_PAGE_FAIL;
-
-	halmac_adapter->txff_allocation.high_queue_pg_num = HPQ_num;
-	halmac_adapter->txff_allocation.low_queue_pg_num = lpq_nnum;
-	halmac_adapter->txff_allocation.normal_queue_pg_num = NPQ_num;
-	halmac_adapter->txff_allocation.extra_queue_pg_num = EXPQ_num;
-	halmac_adapter->txff_allocation.pub_queue_pg_num = PUBQ_num;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_parse_intf_phy_88xx(struct halmac_adapter *halmac_adapter,
-			   struct halmac_intf_phy_para_ *intf_phy_para,
-			   enum halmac_intf_phy_platform platform,
-			   enum hal_intf_phy intf_phy)
-{
-	u16 value;
-	u16 curr_cut;
-	u16 offset;
-	u16 ip_sel;
-	struct halmac_intf_phy_para_ *curr_phy_para;
-	struct halmac_api *halmac_api;
-	void *driver_adapter = NULL;
-	u8 result = HALMAC_RET_SUCCESS;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	switch (halmac_adapter->chip_version) {
-	case HALMAC_CHIP_VER_A_CUT:
-		curr_cut = (u16)HALMAC_INTF_PHY_CUT_A;
-		break;
-	case HALMAC_CHIP_VER_B_CUT:
-		curr_cut = (u16)HALMAC_INTF_PHY_CUT_B;
-		break;
-	case HALMAC_CHIP_VER_C_CUT:
-		curr_cut = (u16)HALMAC_INTF_PHY_CUT_C;
-		break;
-	case HALMAC_CHIP_VER_D_CUT:
-		curr_cut = (u16)HALMAC_INTF_PHY_CUT_D;
-		break;
-	case HALMAC_CHIP_VER_E_CUT:
-		curr_cut = (u16)HALMAC_INTF_PHY_CUT_E;
-		break;
-	case HALMAC_CHIP_VER_F_CUT:
-		curr_cut = (u16)HALMAC_INTF_PHY_CUT_F;
-		break;
-	case HALMAC_CHIP_VER_TEST:
-		curr_cut = (u16)HALMAC_INTF_PHY_CUT_TESTCHIP;
-		break;
-	default:
-		return HALMAC_RET_FAIL;
-	}
-
-	for (curr_phy_para = intf_phy_para;; curr_phy_para++) {
-		if (!(curr_phy_para->cut & curr_cut) ||
-		    !(curr_phy_para->plaform & (u16)platform))
-			continue;
-
-		offset = curr_phy_para->offset;
-		value = curr_phy_para->value;
-		ip_sel = curr_phy_para->ip_sel;
-
-		if (offset == 0xFFFF)
-			break;
-
-		if (ip_sel == HALMAC_IP_SEL_MAC) {
-			HALMAC_REG_WRITE_8(halmac_adapter, (u32)offset,
-					   (u8)value);
-		} else if (intf_phy == HAL_INTF_PHY_USB2) {
-			result = halmac_usbphy_write_88xx(halmac_adapter,
-							  (u8)offset, value,
-							  HAL_INTF_PHY_USB2);
-
-			if (result != HALMAC_RET_SUCCESS)
-				pr_err("[ERR]Write USB2PHY fail!\n");
-
-		} else if (intf_phy == HAL_INTF_PHY_USB3) {
-			result = halmac_usbphy_write_88xx(halmac_adapter,
-							  (u8)offset, value,
-							  HAL_INTF_PHY_USB3);
-
-			if (result != HALMAC_RET_SUCCESS)
-				pr_err("[ERR]Write USB3PHY fail!\n");
-
-		} else if (intf_phy == HAL_INTF_PHY_PCIE_GEN1) {
-			if (ip_sel == HALMAC_IP_SEL_INTF_PHY)
-				result = halmac_mdio_write_88xx(
-					halmac_adapter, (u8)offset, value,
-					HAL_INTF_PHY_PCIE_GEN1);
-			else
-				result = halmac_dbi_write8_88xx(
-					halmac_adapter, offset, (u8)value);
-
-			if (result != HALMAC_RET_SUCCESS)
-				pr_err("[ERR]MDIO write GEN1 fail!\n");
-
-		} else if (intf_phy == HAL_INTF_PHY_PCIE_GEN2) {
-			if (ip_sel == HALMAC_IP_SEL_INTF_PHY)
-				result = halmac_mdio_write_88xx(
-					halmac_adapter, (u8)offset, value,
-					HAL_INTF_PHY_PCIE_GEN2);
-			else
-				result = halmac_dbi_write8_88xx(
-					halmac_adapter, offset, (u8)value);
-
-			if (result != HALMAC_RET_SUCCESS)
-				pr_err("[ERR]MDIO write GEN2 fail!\n");
-		} else {
-			pr_err("[ERR]Parse intf phy cfg error!\n");
-		}
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-enum halmac_ret_status
-halmac_dbi_write32_88xx(struct halmac_adapter *halmac_adapter, u16 addr,
-			u32 data)
-{
-	u8 tmp_u1b = 0;
-	u32 count = 0;
-	u16 write_addr = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_32(halmac_adapter, REG_DBI_WDATA_V1, data);
-
-	write_addr = ((addr & 0x0ffc) | (0x000F << 12));
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_DBI_FLAG_V1, write_addr);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_DBI, DBG_DMESG,
-			"WriteAddr = %x\n", write_addr);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_DBI_FLAG_V1 + 2, 0x01);
-	tmp_u1b = HALMAC_REG_READ_8(halmac_adapter, REG_DBI_FLAG_V1 + 2);
-
-	count = 20;
-	while (tmp_u1b && count != 0) {
-		udelay(10);
-		tmp_u1b =
-			HALMAC_REG_READ_8(halmac_adapter, REG_DBI_FLAG_V1 + 2);
-		count--;
-	}
-
-	if (tmp_u1b) {
-		pr_err("DBI write fail!\n");
-		return HALMAC_RET_FAIL;
-	} else {
-		return HALMAC_RET_SUCCESS;
-	}
-}
-
-u32 halmac_dbi_read32_88xx(struct halmac_adapter *halmac_adapter, u16 addr)
-{
-	u16 read_addr = addr & 0x0ffc;
-	u8 tmp_u1b = 0;
-	u32 count = 0;
-	u32 ret = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_DBI_FLAG_V1, read_addr);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_DBI_FLAG_V1 + 2, 0x2);
-	tmp_u1b = HALMAC_REG_READ_8(halmac_adapter, REG_DBI_FLAG_V1 + 2);
-
-	count = 20;
-	while (tmp_u1b && count != 0) {
-		udelay(10);
-		tmp_u1b =
-			HALMAC_REG_READ_8(halmac_adapter, REG_DBI_FLAG_V1 + 2);
-		count--;
-	}
-
-	if (tmp_u1b) {
-		ret = 0xFFFF;
-		pr_err("DBI read fail!\n");
-	} else {
-		ret = HALMAC_REG_READ_32(halmac_adapter, REG_DBI_RDATA_V1);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_DBI, DBG_DMESG,
-				"Read Value = %x\n", ret);
-	}
-
-	return ret;
-}
-
-enum halmac_ret_status
-halmac_dbi_write8_88xx(struct halmac_adapter *halmac_adapter, u16 addr, u8 data)
-{
-	u8 tmp_u1b = 0;
-	u32 count = 0;
-	u16 write_addr = 0;
-	u16 remainder = addr & (4 - 1);
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_DBI_WDATA_V1 + remainder, data);
-
-	write_addr = ((addr & 0x0ffc) | (BIT(0) << (remainder + 12)));
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_DBI_FLAG_V1, write_addr);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_DBI, DBG_DMESG,
-			"WriteAddr = %x\n", write_addr);
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_DBI_FLAG_V1 + 2, 0x01);
-
-	tmp_u1b = HALMAC_REG_READ_8(halmac_adapter, REG_DBI_FLAG_V1 + 2);
-
-	count = 20;
-	while (tmp_u1b && count != 0) {
-		udelay(10);
-		tmp_u1b =
-			HALMAC_REG_READ_8(halmac_adapter, REG_DBI_FLAG_V1 + 2);
-		count--;
-	}
-
-	if (tmp_u1b) {
-		pr_err("DBI write fail!\n");
-		return HALMAC_RET_FAIL;
-	} else {
-		return HALMAC_RET_SUCCESS;
-	}
-}
-
-u8 halmac_dbi_read8_88xx(struct halmac_adapter *halmac_adapter, u16 addr)
-{
-	u16 read_addr = addr & 0x0ffc;
-	u8 tmp_u1b = 0;
-	u32 count = 0;
-	u8 ret = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_DBI_FLAG_V1, read_addr);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_DBI_FLAG_V1 + 2, 0x2);
-
-	tmp_u1b = HALMAC_REG_READ_8(halmac_adapter, REG_DBI_FLAG_V1 + 2);
-
-	count = 20;
-	while (tmp_u1b && count != 0) {
-		udelay(10);
-		tmp_u1b =
-			HALMAC_REG_READ_8(halmac_adapter, REG_DBI_FLAG_V1 + 2);
-		count--;
-	}
-
-	if (tmp_u1b) {
-		ret = 0xFF;
-		pr_err("DBI read fail!\n");
-	} else {
-		ret = HALMAC_REG_READ_8(halmac_adapter,
-					REG_DBI_RDATA_V1 + (addr & (4 - 1)));
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_DBI, DBG_DMESG,
-				"Read Value = %x\n", ret);
-	}
-
-	return ret;
-}
-
-enum halmac_ret_status
-halmac_mdio_write_88xx(struct halmac_adapter *halmac_adapter, u8 addr, u16 data,
-		       u8 speed)
-{
-	u8 tmp_u1b = 0;
-	u32 count = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	u8 real_addr = 0;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_REG_WRITE_16(halmac_adapter, REG_MDIO_V1, data);
-
-	/* address : 5bit */
-	real_addr = (addr & 0x1F);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG, real_addr);
-
-	if (speed == HAL_INTF_PHY_PCIE_GEN1) {
-		/* GEN1 page 0 */
-		if (addr < 0x20) {
-			/* select MDIO PHY Addr : reg 0x3F8[28:24]=5'b00 */
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG + 3,
-					   0x00);
-
-			/* GEN1 page 1 */
-		} else {
-			/* select MDIO PHY Addr : reg 0x3F8[28:24]=5'b01 */
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG + 3,
-					   0x01);
-		}
-
-	} else if (speed == HAL_INTF_PHY_PCIE_GEN2) {
-		/* GEN2 page 0 */
-		if (addr < 0x20) {
-			/* select MDIO PHY Addr : reg 0x3F8[28:24]=5'b10 */
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG + 3,
-					   0x02);
-
-			/* GEN2 page 1 */
-		} else {
-			/* select MDIO PHY Addr : reg 0x3F8[28:24]=5'b11 */
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG + 3,
-					   0x03);
-		}
-	} else {
-		pr_err("Error Speed !\n");
-	}
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG,
-			   HALMAC_REG_READ_8(halmac_adapter, REG_PCIE_MIX_CFG) |
-				   BIT_MDIO_WFLAG_V1);
-
-	tmp_u1b = HALMAC_REG_READ_8(halmac_adapter, REG_PCIE_MIX_CFG) &
-		  BIT_MDIO_WFLAG_V1;
-	count = 20;
-
-	while (tmp_u1b && count != 0) {
-		udelay(10);
-		tmp_u1b = HALMAC_REG_READ_8(halmac_adapter, REG_PCIE_MIX_CFG) &
-			  BIT_MDIO_WFLAG_V1;
-		count--;
-	}
-
-	if (tmp_u1b) {
-		pr_err("MDIO write fail!\n");
-		return HALMAC_RET_FAIL;
-	} else {
-		return HALMAC_RET_SUCCESS;
-	}
-}
-
-u16 halmac_mdio_read_88xx(struct halmac_adapter *halmac_adapter, u8 addr,
-			  u8 speed
-
-			  )
-{
-	u16 ret = 0;
-	u8 tmp_u1b = 0;
-	u32 count = 0;
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	u8 real_addr = 0;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	/* address : 5bit */
-	real_addr = (addr & 0x1F);
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG, real_addr);
-
-	if (speed == HAL_INTF_PHY_PCIE_GEN1) {
-		/* GEN1 page 0 */
-		if (addr < 0x20) {
-			/* select MDIO PHY Addr : reg 0x3F8[28:24]=5'b00 */
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG + 3,
-					   0x00);
-
-			/* GEN1 page 1 */
-		} else {
-			/* select MDIO PHY Addr : reg 0x3F8[28:24]=5'b01 */
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG + 3,
-					   0x01);
-		}
-
-	} else if (speed == HAL_INTF_PHY_PCIE_GEN2) {
-		/* GEN2 page 0 */
-		if (addr < 0x20) {
-			/* select MDIO PHY Addr : reg 0x3F8[28:24]=5'b10 */
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG + 3,
-					   0x02);
-
-			/* GEN2 page 1 */
-		} else {
-			/* select MDIO PHY Addr : reg 0x3F8[28:24]=5'b11 */
-			HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG + 3,
-					   0x03);
-		}
-	} else {
-		pr_err("Error Speed !\n");
-	}
-
-	HALMAC_REG_WRITE_8(halmac_adapter, REG_PCIE_MIX_CFG,
-			   HALMAC_REG_READ_8(halmac_adapter, REG_PCIE_MIX_CFG) |
-				   BIT_MDIO_RFLAG_V1);
-
-	tmp_u1b = HALMAC_REG_READ_8(halmac_adapter, REG_PCIE_MIX_CFG) &
-		  BIT_MDIO_RFLAG_V1;
-	count = 20;
-
-	while (tmp_u1b && count != 0) {
-		udelay(10);
-		tmp_u1b = HALMAC_REG_READ_8(halmac_adapter, REG_PCIE_MIX_CFG) &
-			  BIT_MDIO_RFLAG_V1;
-		count--;
-	}
-
-	if (tmp_u1b) {
-		ret = 0xFFFF;
-		pr_err("MDIO read fail!\n");
-
-	} else {
-		ret = HALMAC_REG_READ_16(halmac_adapter, REG_MDIO_V1 + 2);
-		HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_MDIO, DBG_DMESG,
-				"Read Value = %x\n", ret);
-	}
-
-	return ret;
-}
-
-enum halmac_ret_status
-halmac_usbphy_write_88xx(struct halmac_adapter *halmac_adapter, u8 addr,
-			 u16 data, u8 speed)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (speed == HAL_INTF_PHY_USB3) {
-		HALMAC_REG_WRITE_8(halmac_adapter, 0xff0d, (u8)data);
-		HALMAC_REG_WRITE_8(halmac_adapter, 0xff0e, (u8)(data >> 8));
-		HALMAC_REG_WRITE_8(halmac_adapter, 0xff0c, addr | BIT(7));
-	} else if (speed == HAL_INTF_PHY_USB2) {
-		HALMAC_REG_WRITE_8(halmac_adapter, 0xfe41, (u8)data);
-		HALMAC_REG_WRITE_8(halmac_adapter, 0xfe40, addr);
-		HALMAC_REG_WRITE_8(halmac_adapter, 0xfe42, 0x81);
-	} else {
-		pr_err("[ERR]Error USB Speed !\n");
-		return HALMAC_RET_NOT_SUPPORT;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-u16 halmac_usbphy_read_88xx(struct halmac_adapter *halmac_adapter, u8 addr,
-			    u8 speed)
-{
-	void *driver_adapter = NULL;
-	struct halmac_api *halmac_api;
-	u16 value = 0;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	if (speed == HAL_INTF_PHY_USB3) {
-		HALMAC_REG_WRITE_8(halmac_adapter, 0xff0c, addr | BIT(6));
-		value = (u16)(HALMAC_REG_READ_32(halmac_adapter, 0xff0c) >> 8);
-	} else if (speed == HAL_INTF_PHY_USB2) {
-		if ((addr >= 0xE0) /*&& (addr <= 0xFF)*/)
-			addr -= 0x20;
-		if ((addr >= 0xC0) && (addr <= 0xDF)) {
-			HALMAC_REG_WRITE_8(halmac_adapter, 0xfe40, addr);
-			HALMAC_REG_WRITE_8(halmac_adapter, 0xfe42, 0x81);
-			value = HALMAC_REG_READ_8(halmac_adapter, 0xfe43);
-		} else {
-			pr_err("[ERR]Error USB2PHY offset!\n");
-			return HALMAC_RET_NOT_SUPPORT;
-		}
-	} else {
-		pr_err("[ERR]Error USB Speed !\n");
-		return HALMAC_RET_NOT_SUPPORT;
-	}
-
-	return value;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.h b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.h
deleted file mode 100644
index 86d59d9..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_FUNC_88XX_H_
-#define _HALMAC_FUNC_88XX_H_
-
-#include "../halmac_type.h"
-
-void halmac_init_offload_feature_state_machine_88xx(
-	struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_send_h2c_pkt_88xx(struct halmac_adapter *halmac_adapter, u8 *hal_buff,
-			 u32 size, bool ack);
-
-enum halmac_ret_status
-halmac_download_rsvd_page_88xx(struct halmac_adapter *halmac_adapter,
-			       u8 *hal_buf, u32 size);
-
-enum halmac_ret_status
-halmac_set_h2c_header_88xx(struct halmac_adapter *halmac_adapter,
-			   u8 *hal_h2c_hdr, u16 *seq, bool ack);
-
-enum halmac_ret_status halmac_set_fw_offload_h2c_header_88xx(
-	struct halmac_adapter *halmac_adapter, u8 *hal_h2c_hdr,
-	struct halmac_h2c_header_info *h2c_header_info, u16 *seq_num);
-
-enum halmac_ret_status
-halmac_dump_efuse_88xx(struct halmac_adapter *halmac_adapter,
-		       enum halmac_efuse_read_cfg cfg);
-
-enum halmac_ret_status
-halmac_func_read_efuse_88xx(struct halmac_adapter *halmac_adapter, u32 offset,
-			    u32 size, u8 *efuse_map);
-
-enum halmac_ret_status
-halmac_func_write_efuse_88xx(struct halmac_adapter *halmac_adapter, u32 offset,
-			     u8 value);
-
-enum halmac_ret_status
-halmac_func_switch_efuse_bank_88xx(struct halmac_adapter *halmac_adapter,
-				   enum halmac_efuse_bank efuse_bank);
-
-enum halmac_ret_status
-halmac_read_logical_efuse_map_88xx(struct halmac_adapter *halmac_adapter,
-				   u8 *map);
-
-enum halmac_ret_status
-halmac_func_write_logical_efuse_88xx(struct halmac_adapter *halmac_adapter,
-				     u32 offset, u8 value);
-
-enum halmac_ret_status
-halmac_func_pg_efuse_by_map_88xx(struct halmac_adapter *halmac_adapter,
-				 struct halmac_pg_efuse_info *pg_efuse_info,
-				 enum halmac_efuse_read_cfg cfg);
-
-enum halmac_ret_status
-halmac_eeprom_parser_88xx(struct halmac_adapter *halmac_adapter,
-			  u8 *physical_efuse_map, u8 *logical_efuse_map);
-
-enum halmac_ret_status
-halmac_read_hw_efuse_88xx(struct halmac_adapter *halmac_adapter, u32 offset,
-			  u32 size, u8 *efuse_map);
-
-enum halmac_ret_status
-halmac_dlfw_to_mem_88xx(struct halmac_adapter *halmac_adapter, u8 *ram_code,
-			u32 dest, u32 code_size);
-
-enum halmac_ret_status
-halmac_send_fwpkt_88xx(struct halmac_adapter *halmac_adapter, u8 *ram_code,
-		       u32 code_size);
-
-enum halmac_ret_status
-halmac_iddma_dlfw_88xx(struct halmac_adapter *halmac_adapter, u32 source,
-		       u32 dest, u32 length, u8 first);
-
-enum halmac_ret_status
-halmac_check_fw_chksum_88xx(struct halmac_adapter *halmac_adapter,
-			    u32 memory_address);
-
-enum halmac_ret_status
-halmac_dlfw_end_flow_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_free_dl_fw_end_flow_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_pwr_seq_parser_88xx(struct halmac_adapter *halmac_adapter, u8 cut,
-			   u8 fab, u8 intf,
-			   struct halmac_wl_pwr_cfg_ **pp_pwr_seq_cfg
-
-			   );
-
-enum halmac_ret_status
-halmac_get_h2c_buff_free_space_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_send_h2c_set_pwr_mode_88xx(struct halmac_adapter *halmac_adapter,
-				  struct halmac_fwlps_option *hal_fw_lps_opt);
-
-enum halmac_ret_status
-halmac_func_send_original_h2c_88xx(struct halmac_adapter *halmac_adapter,
-				   u8 *original_h2c, u16 *seq, u8 ack);
-
-enum halmac_ret_status
-halmac_media_status_rpt_88xx(struct halmac_adapter *halmac_adapter, u8 op_mode,
-			     u8 mac_id_ind, u8 mac_id, u8 mac_id_end);
-
-enum halmac_ret_status halmac_send_h2c_update_datapack_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_data_type halmac_data_type,
-	struct halmac_phy_parameter_info *para_info);
-
-enum halmac_ret_status
-halmac_send_h2c_run_datapack_88xx(struct halmac_adapter *halmac_adapter,
-				  enum halmac_data_type halmac_data_type);
-
-enum halmac_ret_status
-halmac_send_bt_coex_cmd_88xx(struct halmac_adapter *halmac_adapter, u8 *bt_buf,
-			     u32 bt_size, u8 ack);
-
-enum halmac_ret_status
-halmac_func_ctrl_ch_switch_88xx(struct halmac_adapter *halmac_adapter,
-				struct halmac_ch_switch_option *cs_option);
-
-enum halmac_ret_status
-halmac_func_send_general_info_88xx(struct halmac_adapter *halmac_adapter,
-				   struct halmac_general_info *general_info);
-
-enum halmac_ret_status
-halmac_send_h2c_ps_tuning_para_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_parse_c2h_packet_88xx(struct halmac_adapter *halmac_adapter,
-			     u8 *halmac_buf, u32 halmac_size);
-
-enum halmac_ret_status
-halmac_send_h2c_update_packet_88xx(struct halmac_adapter *halmac_adapter,
-				   enum halmac_packet_id pkt_id, u8 *pkt,
-				   u32 pkt_size);
-
-enum halmac_ret_status
-halmac_send_h2c_phy_parameter_88xx(struct halmac_adapter *halmac_adapter,
-				   struct halmac_phy_parameter_info *para_info,
-				   bool full_fifo);
-
-enum halmac_ret_status
-halmac_dump_physical_efuse_fw_88xx(struct halmac_adapter *halmac_adapter,
-				   u32 offset, u32 size, u8 *efuse_map);
-
-enum halmac_ret_status halmac_send_h2c_update_bcn_parse_info_88xx(
-	struct halmac_adapter *halmac_adapter,
-	struct halmac_bcn_ie_info *bcn_ie_info);
-
-enum halmac_ret_status
-halmac_convert_to_sdio_bus_offset_88xx(struct halmac_adapter *halmac_adapter,
-				       u32 *halmac_offset);
-
-enum halmac_ret_status
-halmac_update_sdio_free_page_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_update_oqt_free_space_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_efuse_cmd_construct_state
-halmac_query_efuse_curr_state_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status halmac_transition_efuse_state_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_efuse_cmd_construct_state dest_state);
-
-enum halmac_cfg_para_cmd_construct_state
-halmac_query_cfg_para_curr_state_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status halmac_transition_cfg_para_state_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cfg_para_cmd_construct_state dest_state);
-
-enum halmac_scan_cmd_construct_state
-halmac_query_scan_curr_state_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status halmac_transition_scan_state_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_scan_cmd_construct_state dest_state);
-
-enum halmac_ret_status halmac_query_cfg_para_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size);
-
-enum halmac_ret_status halmac_query_dump_physical_efuse_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size);
-
-enum halmac_ret_status halmac_query_dump_logical_efuse_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size);
-
-enum halmac_ret_status halmac_query_channel_switch_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size);
-
-enum halmac_ret_status halmac_query_update_packet_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size);
-
-enum halmac_ret_status
-halmac_query_iqk_status_88xx(struct halmac_adapter *halmac_adapter,
-			     enum halmac_cmd_process_status *process_status,
-			     u8 *data, u32 *size);
-
-enum halmac_ret_status halmac_query_power_tracking_status_88xx(
-	struct halmac_adapter *halmac_adapter,
-	enum halmac_cmd_process_status *process_status, u8 *data, u32 *size);
-
-enum halmac_ret_status
-halmac_query_psd_status_88xx(struct halmac_adapter *halmac_adapter,
-			     enum halmac_cmd_process_status *process_status,
-			     u8 *data, u32 *size);
-
-enum halmac_ret_status
-halmac_verify_io_88xx(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status
-halmac_verify_send_rsvd_page_88xx(struct halmac_adapter *halmac_adapter);
-
-void halmac_power_save_cb_88xx(void *cb_data);
-
-enum halmac_ret_status
-halmac_buffer_read_88xx(struct halmac_adapter *halmac_adapter, u32 offset,
-			u32 size, enum hal_fifo_sel halmac_fifo_sel,
-			u8 *fifo_map);
-
-void halmac_restore_mac_register_88xx(struct halmac_adapter *halmac_adapter,
-				      struct halmac_restore_info *restore_info,
-				      u32 restore_num);
-
-void halmac_api_record_id_88xx(struct halmac_adapter *halmac_adapter,
-			       enum halmac_api_id api_id);
-
-enum halmac_ret_status
-halmac_set_usb_mode_88xx(struct halmac_adapter *halmac_adapter,
-			 enum halmac_usb_mode usb_mode);
-
-void halmac_enable_bb_rf_88xx(struct halmac_adapter *halmac_adapter, u8 enable);
-
-void halmac_config_sdio_tx_page_threshold_88xx(
-	struct halmac_adapter *halmac_adapter,
-	struct halmac_tx_page_threshold_info *threshold_info);
-
-enum halmac_ret_status
-halmac_rqpn_parser_88xx(struct halmac_adapter *halmac_adapter,
-			enum halmac_trx_mode halmac_trx_mode,
-			struct halmac_rqpn_ *pwr_seq_cfg);
-
-enum halmac_ret_status
-halmac_check_oqt_88xx(struct halmac_adapter *halmac_adapter, u32 tx_agg_num,
-		      u8 *halmac_buf);
-
-enum halmac_ret_status
-halmac_pg_num_parser_88xx(struct halmac_adapter *halmac_adapter,
-			  enum halmac_trx_mode halmac_trx_mode,
-			  struct halmac_pg_num_ *pg_num_table);
-
-enum halmac_ret_status
-halmac_parse_intf_phy_88xx(struct halmac_adapter *halmac_adapter,
-			   struct halmac_intf_phy_para_ *intf_phy_para,
-			   enum halmac_intf_phy_platform platform,
-			   enum hal_intf_phy intf_phy);
-
-enum halmac_ret_status
-halmac_dbi_write32_88xx(struct halmac_adapter *halmac_adapter, u16 addr,
-			u32 data);
-
-u32 halmac_dbi_read32_88xx(struct halmac_adapter *halmac_adapter, u16 addr);
-
-enum halmac_ret_status
-halmac_dbi_write8_88xx(struct halmac_adapter *halmac_adapter, u16 addr,
-		       u8 data);
-
-u8 halmac_dbi_read8_88xx(struct halmac_adapter *halmac_adapter, u16 addr);
-
-u16 halmac_mdio_read_88xx(struct halmac_adapter *halmac_adapter, u8 addr,
-			  u8 speed
-
-			  );
-
-enum halmac_ret_status
-halmac_mdio_write_88xx(struct halmac_adapter *halmac_adapter, u8 addr, u16 data,
-		       u8 speed);
-
-void halmac_config_ampdu_88xx(struct halmac_adapter *halmac_adapter,
-			      struct halmac_ampdu_config *ampdu_config);
-
-enum halmac_ret_status
-halmac_usbphy_write_88xx(struct halmac_adapter *halmac_adapter, u8 addr,
-			 u16 data, u8 speed);
-
-u16 halmac_usbphy_read_88xx(struct halmac_adapter *halmac_adapter, u8 addr,
-			    u8 speed);
-#endif /* _HALMAC_FUNC_88XX_H_ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_api.c b/drivers/staging/rtlwifi/halmac/halmac_api.c
deleted file mode 100644
index be75731..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_api.c
+++ /dev/null
@@ -1,412 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "halmac_2_platform.h"
-#include "halmac_type.h"
-#include "halmac_88xx/halmac_api_88xx.h"
-#include "halmac_88xx/halmac_88xx_cfg.h"
-
-#include "halmac_88xx/halmac_8822b/halmac_8822b_cfg.h"
-
-static enum halmac_ret_status
-halmac_check_platform_api(void *driver_adapter,
-			  enum halmac_interface halmac_interface,
-			  struct halmac_platform_api *halmac_platform_api)
-{
-	void *adapter_local = NULL;
-
-	adapter_local = driver_adapter;
-
-	if (!halmac_platform_api)
-		return HALMAC_RET_PLATFORM_API_NULL;
-
-	if (halmac_interface == HALMAC_INTERFACE_SDIO) {
-		if (!halmac_platform_api->SDIO_CMD52_READ) {
-			pr_err("(!halmac_platform_api->SDIO_CMD52_READ)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->SDIO_CMD53_READ_8) {
-			pr_err("(!halmac_platform_api->SDIO_CMD53_READ_8)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->SDIO_CMD53_READ_16) {
-			pr_err("(!halmac_platform_api->SDIO_CMD53_READ_16)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->SDIO_CMD53_READ_32) {
-			pr_err("(!halmac_platform_api->SDIO_CMD53_READ_32)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->SDIO_CMD53_READ_N) {
-			pr_err("(!halmac_platform_api->SDIO_CMD53_READ_N)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->SDIO_CMD52_WRITE) {
-			pr_err("(!halmac_platform_api->SDIO_CMD52_WRITE)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->SDIO_CMD53_WRITE_8) {
-			pr_err("(!halmac_platform_api->SDIO_CMD53_WRITE_8)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->SDIO_CMD53_WRITE_16) {
-			pr_err("(!halmac_platform_api->SDIO_CMD53_WRITE_16)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->SDIO_CMD53_WRITE_32) {
-			pr_err("(!halmac_platform_api->SDIO_CMD53_WRITE_32)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-	}
-
-	if (halmac_interface == HALMAC_INTERFACE_USB ||
-	    halmac_interface == HALMAC_INTERFACE_PCIE) {
-		if (!halmac_platform_api->REG_READ_8) {
-			pr_err("(!halmac_platform_api->REG_READ_8)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->REG_READ_16) {
-			pr_err("(!halmac_platform_api->REG_READ_16)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->REG_READ_32) {
-			pr_err("(!halmac_platform_api->REG_READ_32)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->REG_WRITE_8) {
-			pr_err("(!halmac_platform_api->REG_WRITE_8)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->REG_WRITE_16) {
-			pr_err("(!halmac_platform_api->REG_WRITE_16)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-		if (!halmac_platform_api->REG_WRITE_32) {
-			pr_err("(!halmac_platform_api->REG_WRITE_32)\n");
-			return HALMAC_RET_PLATFORM_API_NULL;
-		}
-	}
-
-	if (!halmac_platform_api->EVENT_INDICATION) {
-		pr_err("(!halmac_platform_api->EVENT_INDICATION)\n");
-		return HALMAC_RET_PLATFORM_API_NULL;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_convert_to_sdio_bus_offset(u32 *halmac_offset)
-{
-	switch ((*halmac_offset) & 0xFFFF0000) {
-	case WLAN_IOREG_OFFSET:
-		*halmac_offset = (HALMAC_SDIO_CMD_ADDR_MAC_REG << 13) |
-				 (*halmac_offset & HALMAC_WLAN_MAC_REG_MSK);
-		break;
-	case SDIO_LOCAL_OFFSET:
-		*halmac_offset = (HALMAC_SDIO_CMD_ADDR_SDIO_REG << 13) |
-				 (*halmac_offset & HALMAC_SDIO_LOCAL_MSK);
-		break;
-	default:
-		*halmac_offset = 0xFFFFFFFF;
-		return HALMAC_RET_CONVERT_SDIO_OFFSET_FAIL;
-	}
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static u8
-platform_reg_read_8_sdio(void *driver_adapter,
-			 struct halmac_platform_api *halmac_platform_api,
-			 u32 offset)
-{
-	u32 halmac_offset = offset;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	if ((halmac_offset & 0xFFFF0000) == 0)
-		halmac_offset |= WLAN_IOREG_OFFSET;
-
-	status = halmac_convert_to_sdio_bus_offset(&halmac_offset);
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("%s error = %x\n", __func__, status);
-		return status;
-	}
-
-	return halmac_platform_api->SDIO_CMD52_READ(driver_adapter,
-						    halmac_offset);
-}
-
-static enum halmac_ret_status
-platform_reg_write_8_sdio(void *driver_adapter,
-			  struct halmac_platform_api *halmac_platform_api,
-			  u32 offset, u8 data)
-{
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-	u32 halmac_offset = offset;
-
-	if ((halmac_offset & 0xFFFF0000) == 0)
-		halmac_offset |= WLAN_IOREG_OFFSET;
-
-	status = halmac_convert_to_sdio_bus_offset(&halmac_offset);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		pr_err("halmac_reg_write_8_sdio_88xx error = %x\n", status);
-		return status;
-	}
-	halmac_platform_api->SDIO_CMD52_WRITE(driver_adapter, halmac_offset,
-					      data);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static enum halmac_ret_status
-halmac_get_chip_info(void *driver_adapter,
-		     struct halmac_platform_api *halmac_platform_api,
-		     enum halmac_interface halmac_interface,
-		     struct halmac_adapter *halmac_adapter)
-{
-	struct halmac_api *halmac_api = (struct halmac_api *)NULL;
-	u8 chip_id, chip_version;
-	u32 polling_count;
-
-	halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	/* Get Chip_id and Chip_version */
-	if (halmac_adapter->halmac_interface == HALMAC_INTERFACE_SDIO) {
-		platform_reg_write_8_sdio(
-			driver_adapter, halmac_platform_api, REG_SDIO_HSUS_CTRL,
-			platform_reg_read_8_sdio(driver_adapter,
-						 halmac_platform_api,
-						 REG_SDIO_HSUS_CTRL) &
-				~(BIT(0)));
-
-		polling_count = 10000;
-		while (!(platform_reg_read_8_sdio(driver_adapter,
-						  halmac_platform_api,
-						  REG_SDIO_HSUS_CTRL) &
-			 0x02)) {
-			polling_count--;
-			if (polling_count == 0)
-				return HALMAC_RET_SDIO_LEAVE_SUSPEND_FAIL;
-		}
-
-		chip_id = platform_reg_read_8_sdio(
-			driver_adapter, halmac_platform_api, REG_SYS_CFG2);
-		chip_version = platform_reg_read_8_sdio(driver_adapter,
-							halmac_platform_api,
-							REG_SYS_CFG1 + 1) >>
-			       4;
-	} else {
-		chip_id = halmac_platform_api->REG_READ_8(driver_adapter,
-							  REG_SYS_CFG2);
-		chip_version = halmac_platform_api->REG_READ_8(
-				       driver_adapter, REG_SYS_CFG1 + 1) >>
-			       4;
-	}
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]Chip id : 0x%X\n", chip_id);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]Chip version : 0x%X\n", chip_version);
-
-	halmac_adapter->chip_version = (enum halmac_chip_ver)chip_version;
-
-	if (chip_id == HALMAC_CHIP_ID_HW_DEF_8822B)
-		halmac_adapter->chip_id = HALMAC_CHIP_ID_8822B;
-	else if (chip_id == HALMAC_CHIP_ID_HW_DEF_8821C)
-		halmac_adapter->chip_id = HALMAC_CHIP_ID_8821C;
-	else if (chip_id == HALMAC_CHIP_ID_HW_DEF_8814B)
-		halmac_adapter->chip_id = HALMAC_CHIP_ID_8814B;
-	else if (chip_id == HALMAC_CHIP_ID_HW_DEF_8197F)
-		halmac_adapter->chip_id = HALMAC_CHIP_ID_8197F;
-	else
-		halmac_adapter->chip_id = HALMAC_CHIP_ID_UNDEFINE;
-
-	if (halmac_adapter->chip_id == HALMAC_CHIP_ID_UNDEFINE)
-		return HALMAC_RET_CHIP_NOT_SUPPORT;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_init_adapter() - init halmac_adapter
- * @driver_adapter : the adapter of caller
- * @halmac_platform_api : the platform APIs which is used in halmac APIs
- * @halmac_interface : bus interface
- * @pp_halmac_adapter : the adapter of halmac
- * @pp_halmac_api : the function pointer of APIs, caller shall call APIs by
- *                 function pointer
- * Author : KaiYuan Chang / Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_init_adapter(void *driver_adapter,
-		    struct halmac_platform_api *halmac_platform_api,
-		    enum halmac_interface halmac_interface,
-		    struct halmac_adapter **pp_halmac_adapter,
-		    struct halmac_api **pp_halmac_api)
-{
-	struct halmac_adapter *halmac_adapter = (struct halmac_adapter *)NULL;
-	enum halmac_ret_status status = HALMAC_RET_SUCCESS;
-
-	union {
-		u32 i;
-		u8 x[4];
-	} ENDIAN_CHECK = {0x01000000};
-
-	status = halmac_check_platform_api(driver_adapter, halmac_interface,
-					   halmac_platform_api);
-	if (status != HALMAC_RET_SUCCESS)
-		return status;
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			HALMAC_SVN_VER "\n");
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"HALMAC_MAJOR_VER = %x\n", HALMAC_MAJOR_VER);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"HALMAC_PROTOTYPE_VER = %x\n", HALMAC_PROTOTYPE_VER);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"HALMAC_MINOR_VER = %x\n", HALMAC_MINOR_VER);
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"HALMAC_PATCH_VER = %x\n", HALMAC_PATCH_VER);
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"halmac_init_adapter_88xx ==========>\n");
-
-	/* Check endian setting - Little endian : 1, Big endian : 0*/
-	if (ENDIAN_CHECK.x[0] == HALMAC_SYSTEM_ENDIAN) {
-		pr_err("Endian setting Err!!\n");
-		return HALMAC_RET_ENDIAN_ERR;
-	}
-
-	halmac_adapter = kzalloc(sizeof(*halmac_adapter), GFP_KERNEL);
-	if (!halmac_adapter) {
-		/* out of memory */
-		return HALMAC_RET_MALLOC_FAIL;
-	}
-
-	/* return halmac adapter address to caller */
-	*pp_halmac_adapter = halmac_adapter;
-
-	/* Record caller info */
-	halmac_adapter->halmac_platform_api = halmac_platform_api;
-	halmac_adapter->driver_adapter = driver_adapter;
-	halmac_interface = halmac_interface == HALMAC_INTERFACE_AXI ?
-				   HALMAC_INTERFACE_PCIE :
-				   halmac_interface;
-	halmac_adapter->halmac_interface = halmac_interface;
-
-	spin_lock_init(&halmac_adapter->efuse_lock);
-	spin_lock_init(&halmac_adapter->h2c_seq_lock);
-
-	/*Get Chip*/
-	if (halmac_get_chip_info(driver_adapter, halmac_platform_api,
-				 halmac_interface,
-				 halmac_adapter) != HALMAC_RET_SUCCESS) {
-		pr_err("HALMAC_RET_CHIP_NOT_SUPPORT\n");
-		return HALMAC_RET_CHIP_NOT_SUPPORT;
-	}
-
-	/* Assign function pointer to halmac API */
-	halmac_init_adapter_para_88xx(halmac_adapter);
-	status = halmac_mount_api_88xx(halmac_adapter);
-
-	/* Return halmac API function pointer */
-	*pp_halmac_api = (struct halmac_api *)halmac_adapter->halmac_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"halmac_init_adapter_88xx <==========\n");
-
-	return status;
-}
-
-/**
- * halmac_halt_api() - stop halmac_api action
- * @halmac_adapter : the adapter of halmac
- * Author : Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_halt_api(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-	struct halmac_platform_api *halmac_platform_api =
-		(struct halmac_platform_api *)NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-	halmac_platform_api = halmac_adapter->halmac_platform_api;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-	halmac_adapter->halmac_state.api_state = HALMAC_API_STATE_HALT;
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"%s ==========>\n", __func__);
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_deinit_adapter() - deinit halmac adapter
- * @halmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang / Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status
-halmac_deinit_adapter(struct halmac_adapter *halmac_adapter)
-{
-	void *driver_adapter = NULL;
-
-	if (halmac_adapter_validate(halmac_adapter) != HALMAC_RET_SUCCESS)
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	driver_adapter = halmac_adapter->driver_adapter;
-
-	HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_INIT, DBG_DMESG,
-			"[TRACE]halmac_deinit_adapter_88xx ==========>\n");
-
-	kfree(halmac_adapter->hal_efuse_map);
-	halmac_adapter->hal_efuse_map = (u8 *)NULL;
-
-	kfree(halmac_adapter->halmac_state.psd_set.data);
-	halmac_adapter->halmac_state.psd_set.data = (u8 *)NULL;
-
-	kfree(halmac_adapter->halmac_api);
-	halmac_adapter->halmac_api = NULL;
-
-	halmac_adapter->hal_adapter_backup = NULL;
-	kfree(halmac_adapter);
-
-	return HALMAC_RET_SUCCESS;
-}
-
-/**
- * halmac_get_version() - get HALMAC version
- * @version : return version of major, prototype and minor information
- * Author : KaiYuan Chang / Ivan Lin
- * Return : enum halmac_ret_status
- * More details of status code can be found in prototype document
- */
-enum halmac_ret_status halmac_get_version(struct halmac_ver *version)
-{
-	version->major_ver = (u8)HALMAC_MAJOR_VER;
-	version->prototype_ver = (u8)HALMAC_PROTOTYPE_VER;
-	version->minor_ver = (u8)HALMAC_MINOR_VER;
-
-	return HALMAC_RET_SUCCESS;
-}
diff --git a/drivers/staging/rtlwifi/halmac/halmac_api.h b/drivers/staging/rtlwifi/halmac/halmac_api.h
deleted file mode 100644
index e220db3..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_api.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_API_H_
-#define _HALMAC_API_H_
-
-#define HALMAC_SVN_VER "13348M"
-
-#define HALMAC_MAJOR_VER 0x0001 /* major version, ver_1 for async_api */
-/* For halmac_api num change or prototype change, increment prototype version.
- * Otherwise, increase minor version
- */
-#define HALMAC_PROTOTYPE_VER 0x0003 /* prototype version */
-#define HALMAC_MINOR_VER 0x0005 /* minor version */
-#define HALMAC_PATCH_VER 0x0000 /* patch version */
-
-#include "halmac_2_platform.h"
-#include "halmac_type.h"
-
-#include "halmac_usb_reg.h"
-#include "halmac_sdio_reg.h"
-
-#include "halmac_bit2.h"
-#include "halmac_reg2.h"
-
-#include "halmac_tx_desc_nic.h"
-#include "halmac_rx_desc_nic.h"
-#include "halmac_tx_bd_nic.h"
-#include "halmac_rx_bd_nic.h"
-#include "halmac_fw_offload_c2h_nic.h"
-#include "halmac_fw_offload_h2c_nic.h"
-#include "halmac_h2c_extra_info_nic.h"
-#include "halmac_original_c2h_nic.h"
-#include "halmac_original_h2c_nic.h"
-
-#include "halmac_tx_desc_chip.h"
-#include "halmac_rx_desc_chip.h"
-#include "halmac_tx_bd_chip.h"
-#include "halmac_rx_bd_chip.h"
-#include "halmac_88xx/halmac_88xx_cfg.h"
-
-#include "halmac_88xx/halmac_8822b/halmac_8822b_cfg.h"
-#include "halmac_reg_8822b.h"
-#include "halmac_bit_8822b.h"
-
-enum halmac_ret_status
-halmac_init_adapter(void *driver_adapter,
-		    struct halmac_platform_api *halmac_platform_api,
-		    enum halmac_interface halmac_interface,
-		    struct halmac_adapter **pp_halmac_adapter,
-		    struct halmac_api **pp_halmac_api);
-
-enum halmac_ret_status
-halmac_deinit_adapter(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status halmac_halt_api(struct halmac_adapter *halmac_adapter);
-
-enum halmac_ret_status halmac_get_version(struct halmac_ver *version);
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_bit2.h b/drivers/staging/rtlwifi/halmac/halmac_bit2.h
deleted file mode 100644
index 5f0f852..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_bit2.h
+++ /dev/null
@@ -1,13396 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __RTL_WLAN_BITDEF_H__
-#define __RTL_WLAN_BITDEF_H__
-
-/*-------------------------Modification Log-----------------------------------
- *	Base on MAC_Register.doc SVN391
- *-------------------------Modification Log-----------------------------------
- */
-
-/*--------------------------Include File--------------------------------------*/
-/*--------------------------Include File--------------------------------------*/
-
-/* 3 ============Programming guide Start===================== */
-/*
- *	1. For all bit define, it should be prefixed by "BIT_"
- *	2. For all bit mask, it should be prefixed by "BIT_MASK_"
- *	3. For all bit shift, it should be prefixed by "BIT_SHIFT_"
- *	4. For other case, prefix is not needed
- *
- * Example:
- * #define BIT_SHIFT_MAX_TXDMA		16
- * #define BIT_MASK_MAX_TXDMA		0x7
- * #define BIT_MAX_TXDMA(x)		\
- *			(((x) & BIT_MASK_MAX_TXDMA) << BIT_SHIFT_MAX_TXDMA)
- * #define BIT_GET_MAX_TXDMA(x)		\
- *			(((x) >> BIT_SHIFT_MAX_TXDMA) & BIT_MASK_MAX_TXDMA)
- *
- */
-/* 3 ============Programming guide End===================== */
-
-#define CPU_OPT_WIDTH 0x1F
-
-#define BIT_SHIFT_WATCH_DOG_RECORD_V1 10
-#define BIT_MASK_WATCH_DOG_RECORD_V1 0x3fff
-#define BIT_WATCH_DOG_RECORD_V1(x)                                             \
-	(((x) & BIT_MASK_WATCH_DOG_RECORD_V1) << BIT_SHIFT_WATCH_DOG_RECORD_V1)
-#define BIT_GET_WATCH_DOG_RECORD_V1(x)                                         \
-	(((x) >> BIT_SHIFT_WATCH_DOG_RECORD_V1) & BIT_MASK_WATCH_DOG_RECORD_V1)
-
-#define BIT_R_IO_TIMEOUT_FLAG_V1 BIT(9)
-
-#define BIT_ISO_MD2PP BIT(0)
-
-#define BIT_SHIFT_R_WMAC_IPV6_MYIPAD 0
-#define BIT_MASK_R_WMAC_IPV6_MYIPAD 0xffffffffffffffffffffffffffffffffL
-#define BIT_R_WMAC_IPV6_MYIPAD(x)                                              \
-	(((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD) << BIT_SHIFT_R_WMAC_IPV6_MYIPAD)
-#define BIT_GET_R_WMAC_IPV6_MYIPAD(x)                                          \
-	(((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD) & BIT_MASK_R_WMAC_IPV6_MYIPAD)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_SHIFT_SDIO_INT_TIMEOUT 16
-#define BIT_MASK_SDIO_INT_TIMEOUT 0xffff
-#define BIT_SDIO_INT_TIMEOUT(x)                                                \
-	(((x) & BIT_MASK_SDIO_INT_TIMEOUT) << BIT_SHIFT_SDIO_INT_TIMEOUT)
-#define BIT_GET_SDIO_INT_TIMEOUT(x)                                            \
-	(((x) >> BIT_SHIFT_SDIO_INT_TIMEOUT) & BIT_MASK_SDIO_INT_TIMEOUT)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_PWC_EV12V BIT(15)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_IO_ERR_STATUS BIT(15)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_PWC_EV25V BIT(14)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_PA33V_EN BIT(13)
-#define BIT_PA12V_EN BIT(12)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_UA33V_EN BIT(11)
-#define BIT_UA12V_EN BIT(10)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_RFDIO BIT(9)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_REPLY_ERRCRC_IN_DATA BIT(9)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_EB2CORE BIT(8)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_EN_CMD53_OVERLAP BIT(8)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_DIOE BIT(7)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_REPLY_ERR_IN_R5 BIT(7)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_WLPON2PP BIT(6)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_R18A_EN BIT(6)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_IP2MAC_WA2PP BIT(5)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_INIT_CMD_EN BIT(5)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_PD2CORE BIT(4)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_PA2PCIE BIT(3)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_UD2CORE BIT(2)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_EN_RXDMA_MASK_INT BIT(2)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_UA2USB BIT(1)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_EN_MASK_TIMER BIT(1)
-
-/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */
-
-#define BIT_ISO_WD2PP BIT(0)
-
-/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */
-
-#define BIT_CMD_ERR_STOP_INT_EN BIT(0)
-
-/* 2 REG_SYS_FUNC_EN				(Offset 0x0002) */
-
-#define BIT_FEN_MREGEN BIT(15)
-#define BIT_FEN_HWPDN BIT(14)
-
-/* 2 REG_SYS_FUNC_EN				(Offset 0x0002) */
-
-#define BIT_EN_25_1 BIT(13)
-
-/* 2 REG_SYS_FUNC_EN				(Offset 0x0002) */
-
-#define BIT_FEN_ELDR BIT(12)
-#define BIT_FEN_DCORE BIT(11)
-#define BIT_FEN_CPUEN BIT(10)
-#define BIT_FEN_DIOE BIT(9)
-#define BIT_FEN_PCIED BIT(8)
-#define BIT_FEN_PPLL BIT(7)
-#define BIT_FEN_PCIEA BIT(6)
-#define BIT_FEN_DIO_PCIE BIT(5)
-#define BIT_FEN_USBD BIT(4)
-#define BIT_FEN_UPLL BIT(3)
-#define BIT_FEN_USBA BIT(2)
-
-/* 2 REG_SYS_FUNC_EN				(Offset 0x0002) */
-
-#define BIT_FEN_BB_GLB_RSTN BIT(1)
-#define BIT_FEN_BBRSTB BIT(0)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_SOP_EABM BIT(31)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_SOP_ACKF BIT(30)
-#define BIT_SOP_ERCK BIT(29)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_SOP_ESWR BIT(28)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_SOP_PWMM BIT(27)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_SOP_EECK BIT(26)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_SOP_EXTL BIT(24)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_SYM_OP_RING_12M BIT(22)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_ROP_SWPR BIT(21)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_DIS_HW_LPLDM BIT(20)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_OPT_SWRST_WLMCU BIT(19)
-#define BIT_RDY_SYSPWR BIT(17)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_EN_WLON BIT(16)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_APDM_HPDN BIT(15)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_AFSM_PCIE_SUS_EN BIT(12)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_AFSM_WLSUS_EN BIT(11)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_APFM_SWLPS BIT(10)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_APFM_OFFMAC BIT(9)
-#define BIT_APFN_ONMAC BIT(8)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_CHIP_PDN_EN BIT(7)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_RDY_MACDIS BIT(6)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_RING_CLK_12M_EN BIT(4)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_PFM_WOWL BIT(3)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_PFM_LDKP BIT(2)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_WL_HCI_ALD BIT(1)
-
-/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */
-
-#define BIT_PFM_LDALL BIT(0)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_LDO_DUMMY BIT(15)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_CPU_CLK_EN BIT(14)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_SYMREG_CLK_EN BIT(13)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_HCI_CLK_EN BIT(12)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_MAC_CLK_EN BIT(11)
-#define BIT_SEC_CLK_EN BIT(10)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_PHY_SSC_RSTB BIT(9)
-#define BIT_EXT_32K_EN BIT(8)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_WL_CLK_TEST BIT(7)
-#define BIT_OP_SPS_PWM_EN BIT(6)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_LOADER_CLK_EN BIT(5)
-#define BIT_MACSLP BIT(4)
-#define BIT_WAKEPAD_EN BIT(3)
-#define BIT_ROMD16V_EN BIT(2)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_CKANA12M_EN BIT(1)
-
-/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */
-
-#define BIT_CNTD16V_EN BIT(0)
-
-/* 2 REG_SYS_EEPROM_CTRL			(Offset 0x000A) */
-
-#define BIT_SHIFT_VPDIDX 8
-#define BIT_MASK_VPDIDX 0xff
-#define BIT_VPDIDX(x) (((x) & BIT_MASK_VPDIDX) << BIT_SHIFT_VPDIDX)
-#define BIT_GET_VPDIDX(x) (((x) >> BIT_SHIFT_VPDIDX) & BIT_MASK_VPDIDX)
-
-#define BIT_SHIFT_EEM1_0 6
-#define BIT_MASK_EEM1_0 0x3
-#define BIT_EEM1_0(x) (((x) & BIT_MASK_EEM1_0) << BIT_SHIFT_EEM1_0)
-#define BIT_GET_EEM1_0(x) (((x) >> BIT_SHIFT_EEM1_0) & BIT_MASK_EEM1_0)
-
-#define BIT_AUTOLOAD_SUS BIT(5)
-
-/* 2 REG_SYS_EEPROM_CTRL			(Offset 0x000A) */
-
-#define BIT_EERPOMSEL BIT(4)
-
-/* 2 REG_SYS_EEPROM_CTRL			(Offset 0x000A) */
-
-#define BIT_EECS_V1 BIT(3)
-#define BIT_EESK_V1 BIT(2)
-#define BIT_EEDI_V1 BIT(1)
-#define BIT_EEDO_V1 BIT(0)
-
-/* 2 REG_EE_VPD				(Offset 0x000C) */
-
-#define BIT_SHIFT_VPD_DATA 0
-#define BIT_MASK_VPD_DATA 0xffffffffL
-#define BIT_VPD_DATA(x) (((x) & BIT_MASK_VPD_DATA) << BIT_SHIFT_VPD_DATA)
-#define BIT_GET_VPD_DATA(x) (((x) >> BIT_SHIFT_VPD_DATA) & BIT_MASK_VPD_DATA)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_C2_L_BIT0 BIT(31)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_SHIFT_C1_L 29
-#define BIT_MASK_C1_L 0x3
-#define BIT_C1_L(x) (((x) & BIT_MASK_C1_L) << BIT_SHIFT_C1_L)
-#define BIT_GET_C1_L(x) (((x) >> BIT_SHIFT_C1_L) & BIT_MASK_C1_L)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_SHIFT_REG_FREQ_L 25
-#define BIT_MASK_REG_FREQ_L 0x7
-#define BIT_REG_FREQ_L(x) (((x) & BIT_MASK_REG_FREQ_L) << BIT_SHIFT_REG_FREQ_L)
-#define BIT_GET_REG_FREQ_L(x)                                                  \
-	(((x) >> BIT_SHIFT_REG_FREQ_L) & BIT_MASK_REG_FREQ_L)
-
-#define BIT_REG_EN_DUTY BIT(24)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_SHIFT_REG_MODE 22
-#define BIT_MASK_REG_MODE 0x3
-#define BIT_REG_MODE(x) (((x) & BIT_MASK_REG_MODE) << BIT_SHIFT_REG_MODE)
-#define BIT_GET_REG_MODE(x) (((x) >> BIT_SHIFT_REG_MODE) & BIT_MASK_REG_MODE)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_REG_EN_SP BIT(21)
-#define BIT_REG_AUTO_L BIT(20)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_SW18_SELD_BIT0 BIT(19)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_SW18_POWOCP BIT(18)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_SHIFT_OCP_L1 15
-#define BIT_MASK_OCP_L1 0x7
-#define BIT_OCP_L1(x) (((x) & BIT_MASK_OCP_L1) << BIT_SHIFT_OCP_L1)
-#define BIT_GET_OCP_L1(x) (((x) >> BIT_SHIFT_OCP_L1) & BIT_MASK_OCP_L1)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_SHIFT_CF_L 13
-#define BIT_MASK_CF_L 0x3
-#define BIT_CF_L(x) (((x) & BIT_MASK_CF_L) << BIT_SHIFT_CF_L)
-#define BIT_GET_CF_L(x) (((x) >> BIT_SHIFT_CF_L) & BIT_MASK_CF_L)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_SW18_FPWM BIT(11)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_SW18_SWEN BIT(9)
-#define BIT_SW18_LDEN BIT(8)
-#define BIT_MAC_ID_EN BIT(7)
-
-/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */
-
-#define BIT_AFE_BGEN BIT(0)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_POW_ZCD_L BIT(31)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_CRCERR_MSK BIT(31)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_AUTOZCD_L BIT(30)
-#define BIT_SDIO_HSISR3_IND_MSK BIT(30)
-#define BIT_SDIO_HSISR2_IND_MSK BIT(29)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SHIFT_REG_DELAY 28
-#define BIT_MASK_REG_DELAY 0x3
-#define BIT_REG_DELAY(x) (((x) & BIT_MASK_REG_DELAY) << BIT_SHIFT_REG_DELAY)
-#define BIT_GET_REG_DELAY(x) (((x) >> BIT_SHIFT_REG_DELAY) & BIT_MASK_REG_DELAY)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_HEISR_IND_MSK BIT(28)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_CTWEND_MSK BIT(27)
-#define BIT_SDIO_ATIMEND_E_MSK BIT(26)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIIO_ATIMEND_MSK BIT(25)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_OCPINT_MSK BIT(24)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SHIFT_V15ADJ_L1_V1 24
-#define BIT_MASK_V15ADJ_L1_V1 0x7
-#define BIT_V15ADJ_L1_V1(x)                                                    \
-	(((x) & BIT_MASK_V15ADJ_L1_V1) << BIT_SHIFT_V15ADJ_L1_V1)
-#define BIT_GET_V15ADJ_L1_V1(x)                                                \
-	(((x) >> BIT_SHIFT_V15ADJ_L1_V1) & BIT_MASK_V15ADJ_L1_V1)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_PSTIMEOUT_MSK BIT(23)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_GTINT4_MSK BIT(22)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_GTINT3_MSK BIT(21)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_HSISR_IND_MSK BIT(20)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SHIFT_VOL_L1_V1 20
-#define BIT_MASK_VOL_L1_V1 0xf
-#define BIT_VOL_L1_V1(x) (((x) & BIT_MASK_VOL_L1_V1) << BIT_SHIFT_VOL_L1_V1)
-#define BIT_GET_VOL_L1_V1(x) (((x) >> BIT_SHIFT_VOL_L1_V1) & BIT_MASK_VOL_L1_V1)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_CPWM2_MSK BIT(19)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_CPWM1_MSK BIT(18)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_C2HCMD_INT_MSK BIT(17)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SHIFT_IN_L1_V1 17
-#define BIT_MASK_IN_L1_V1 0x7
-#define BIT_IN_L1_V1(x) (((x) & BIT_MASK_IN_L1_V1) << BIT_SHIFT_IN_L1_V1)
-#define BIT_GET_IN_L1_V1(x) (((x) >> BIT_SHIFT_IN_L1_V1) & BIT_MASK_IN_L1_V1)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_BCNERLY_INT_MSK BIT(16)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SHIFT_TBOX_L1 15
-#define BIT_MASK_TBOX_L1 0x3
-#define BIT_TBOX_L1(x) (((x) & BIT_MASK_TBOX_L1) << BIT_SHIFT_TBOX_L1)
-#define BIT_GET_TBOX_L1(x) (((x) >> BIT_SHIFT_TBOX_L1) & BIT_MASK_TBOX_L1)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SW18_SEL BIT(13)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SW18_SD BIT(10)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_TXBCNERR_MSK BIT(7)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SHIFT_R3_L 7
-#define BIT_MASK_R3_L 0x3
-#define BIT_R3_L(x) (((x) & BIT_MASK_R3_L) << BIT_SHIFT_R3_L)
-#define BIT_GET_R3_L(x) (((x) >> BIT_SHIFT_R3_L) & BIT_MASK_R3_L)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_TXBCNOK_MSK BIT(6)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SHIFT_SW18_R2 5
-#define BIT_MASK_SW18_R2 0x3
-#define BIT_SW18_R2(x) (((x) & BIT_MASK_SW18_R2) << BIT_SHIFT_SW18_R2)
-#define BIT_GET_SW18_R2(x) (((x) >> BIT_SHIFT_SW18_R2) & BIT_MASK_SW18_R2)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_RXFOVW_MSK BIT(5)
-#define BIT_SDIO_TXFOVW_MSK BIT(4)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SHIFT_SW18_R1 3
-#define BIT_MASK_SW18_R1 0x3
-#define BIT_SW18_R1(x) (((x) & BIT_MASK_SW18_R1) << BIT_SHIFT_SW18_R1)
-#define BIT_GET_SW18_R1(x) (((x) >> BIT_SHIFT_SW18_R1) & BIT_MASK_SW18_R1)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_RXERR_MSK BIT(3)
-#define BIT_SDIO_TXERR_MSK BIT(2)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_SDIO_AVAL_MSK BIT(1)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_SHIFT_C3_L_C3 1
-#define BIT_MASK_C3_L_C3 0x3
-#define BIT_C3_L_C3(x) (((x) & BIT_MASK_C3_L_C3) << BIT_SHIFT_C3_L_C3)
-#define BIT_GET_C3_L_C3(x) (((x) >> BIT_SHIFT_C3_L_C3) & BIT_MASK_C3_L_C3)
-
-/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */
-
-#define BIT_RX_REQUEST_MSK BIT(0)
-
-/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */
-
-#define BIT_C2_L_BIT1 BIT(0)
-
-/* 2 REG_SYS_SWR_CTRL3			(Offset 0x0018) */
-
-#define BIT_SPS18_OCP_DIS BIT(31)
-
-/* 2 REG_SDIO_HISR				(Offset 0x10250018) */
-
-#define BIT_SDIO_CRCERR BIT(31)
-
-/* 2 REG_SDIO_HISR				(Offset 0x10250018) */
-
-#define BIT_SDIO_HSISR3_IND BIT(30)
-#define BIT_SDIO_HSISR2_IND BIT(29)
-#define BIT_SDIO_HEISR_IND BIT(28)
-
-/* 2 REG_SDIO_HISR				(Offset 0x10250018) */
-
-#define BIT_SDIO_CTWEND BIT(27)
-#define BIT_SDIO_ATIMEND_E BIT(26)
-#define BIT_SDIO_ATIMEND BIT(25)
-#define BIT_SDIO_OCPINT BIT(24)
-#define BIT_SDIO_PSTIMEOUT BIT(23)
-#define BIT_SDIO_GTINT4 BIT(22)
-#define BIT_SDIO_GTINT3 BIT(21)
-#define BIT_SDIO_HSISR_IND BIT(20)
-#define BIT_SDIO_CPWM2 BIT(19)
-#define BIT_SDIO_CPWM1 BIT(18)
-#define BIT_SDIO_C2HCMD_INT BIT(17)
-
-/* 2 REG_SYS_SWR_CTRL3			(Offset 0x0018) */
-
-#define BIT_SHIFT_SPS18_OCP_TH 16
-#define BIT_MASK_SPS18_OCP_TH 0x7fff
-#define BIT_SPS18_OCP_TH(x)                                                    \
-	(((x) & BIT_MASK_SPS18_OCP_TH) << BIT_SHIFT_SPS18_OCP_TH)
-#define BIT_GET_SPS18_OCP_TH(x)                                                \
-	(((x) >> BIT_SHIFT_SPS18_OCP_TH) & BIT_MASK_SPS18_OCP_TH)
-
-/* 2 REG_SDIO_HISR				(Offset 0x10250018) */
-
-#define BIT_SDIO_BCNERLY_INT BIT(16)
-#define BIT_SDIO_TXBCNERR BIT(7)
-#define BIT_SDIO_TXBCNOK BIT(6)
-#define BIT_SDIO_RXFOVW BIT(5)
-#define BIT_SDIO_TXFOVW BIT(4)
-#define BIT_SDIO_RXERR BIT(3)
-#define BIT_SDIO_TXERR BIT(2)
-#define BIT_SDIO_AVAL BIT(1)
-
-/* 2 REG_SYS_SWR_CTRL3			(Offset 0x0018) */
-
-#define BIT_SHIFT_OCP_WINDOW 0
-#define BIT_MASK_OCP_WINDOW 0xffff
-#define BIT_OCP_WINDOW(x) (((x) & BIT_MASK_OCP_WINDOW) << BIT_SHIFT_OCP_WINDOW)
-#define BIT_GET_OCP_WINDOW(x)                                                  \
-	(((x) >> BIT_SHIFT_OCP_WINDOW) & BIT_MASK_OCP_WINDOW)
-
-/* 2 REG_SDIO_HISR				(Offset 0x10250018) */
-
-#define BIT_RX_REQUEST BIT(0)
-
-/* 2 REG_RSV_CTRL				(Offset 0x001C) */
-
-#define BIT_HREG_DBG BIT(23)
-
-/* 2 REG_RSV_CTRL				(Offset 0x001C) */
-
-#define BIT_WLMCUIOIF BIT(8)
-
-/* 2 REG_RSV_CTRL				(Offset 0x001C) */
-
-#define BIT_LOCK_ALL_EN BIT(7)
-
-/* 2 REG_RSV_CTRL				(Offset 0x001C) */
-
-#define BIT_R_DIS_PRST BIT(6)
-
-/* 2 REG_RSV_CTRL				(Offset 0x001C) */
-
-#define BIT_WLOCK_1C_B6 BIT(5)
-
-/* 2 REG_RSV_CTRL				(Offset 0x001C) */
-
-#define BIT_WLOCK_40 BIT(4)
-#define BIT_WLOCK_08 BIT(3)
-#define BIT_WLOCK_04 BIT(2)
-#define BIT_WLOCK_00 BIT(1)
-#define BIT_WLOCK_ALL BIT(0)
-
-/* 2 REG_SDIO_RX_REQ_LEN			(Offset 0x1025001C) */
-
-#define BIT_SHIFT_RX_REQ_LEN_V1 0
-#define BIT_MASK_RX_REQ_LEN_V1 0x3ffff
-#define BIT_RX_REQ_LEN_V1(x)                                                   \
-	(((x) & BIT_MASK_RX_REQ_LEN_V1) << BIT_SHIFT_RX_REQ_LEN_V1)
-#define BIT_GET_RX_REQ_LEN_V1(x)                                               \
-	(((x) >> BIT_SHIFT_RX_REQ_LEN_V1) & BIT_MASK_RX_REQ_LEN_V1)
-
-/* 2 REG_RF_CTRL				(Offset 0x001F) */
-
-#define BIT_RF_SDMRSTB BIT(2)
-
-/* 2 REG_RF_CTRL				(Offset 0x001F) */
-
-#define BIT_RF_RSTB BIT(1)
-
-/* 2 REG_RF_CTRL				(Offset 0x001F) */
-
-#define BIT_RF_EN BIT(0)
-
-/* 2 REG_SDIO_FREE_TXPG_SEQ_V1		(Offset 0x1025001F) */
-
-#define BIT_SHIFT_FREE_TXPG_SEQ 0
-#define BIT_MASK_FREE_TXPG_SEQ 0xff
-#define BIT_FREE_TXPG_SEQ(x)                                                   \
-	(((x) & BIT_MASK_FREE_TXPG_SEQ) << BIT_SHIFT_FREE_TXPG_SEQ)
-#define BIT_GET_FREE_TXPG_SEQ(x)                                               \
-	(((x) >> BIT_SHIFT_FREE_TXPG_SEQ) & BIT_MASK_FREE_TXPG_SEQ)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_SHIFT_LPLDH12_RSV 29
-#define BIT_MASK_LPLDH12_RSV 0x7
-#define BIT_LPLDH12_RSV(x)                                                     \
-	(((x) & BIT_MASK_LPLDH12_RSV) << BIT_SHIFT_LPLDH12_RSV)
-#define BIT_GET_LPLDH12_RSV(x)                                                 \
-	(((x) >> BIT_SHIFT_LPLDH12_RSV) & BIT_MASK_LPLDH12_RSV)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_LPLDH12_SLP BIT(28)
-
-#define BIT_SHIFT_LPLDH12_VADJ 24
-#define BIT_MASK_LPLDH12_VADJ 0xf
-#define BIT_LPLDH12_VADJ(x)                                                    \
-	(((x) & BIT_MASK_LPLDH12_VADJ) << BIT_SHIFT_LPLDH12_VADJ)
-#define BIT_GET_LPLDH12_VADJ(x)                                                \
-	(((x) >> BIT_SHIFT_LPLDH12_VADJ) & BIT_MASK_LPLDH12_VADJ)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_LDH12_EN BIT(16)
-
-/* 2 REG_SDIO_FREE_TXPG			(Offset 0x10250020) */
-
-#define BIT_SHIFT_MID_FREEPG_V1 16
-#define BIT_MASK_MID_FREEPG_V1 0xfff
-#define BIT_MID_FREEPG_V1(x)                                                   \
-	(((x) & BIT_MASK_MID_FREEPG_V1) << BIT_SHIFT_MID_FREEPG_V1)
-#define BIT_GET_MID_FREEPG_V1(x)                                               \
-	(((x) >> BIT_SHIFT_MID_FREEPG_V1) & BIT_MASK_MID_FREEPG_V1)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_WLBBOFF_BIG_PWC_EN BIT(14)
-#define BIT_WLBBOFF_SMALL_PWC_EN BIT(13)
-#define BIT_WLMACOFF_BIG_PWC_EN BIT(12)
-#define BIT_WLPON_PWC_EN BIT(11)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_POW_REGU_P1 BIT(10)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_LDOV12W_EN BIT(8)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_EX_XTAL_DRV_DIGI BIT(7)
-#define BIT_EX_XTAL_DRV_USB BIT(6)
-#define BIT_EX_XTAL_DRV_AFE BIT(5)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_EX_XTAL_DRV_RF2 BIT(4)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_EX_XTAL_DRV_RF1 BIT(3)
-#define BIT_POW_REGU_P0 BIT(2)
-
-/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */
-
-#define BIT_POW_PLL_LDO BIT(0)
-
-/* 2 REG_SDIO_FREE_TXPG			(Offset 0x10250020) */
-
-#define BIT_SHIFT_HIQ_FREEPG_V1 0
-#define BIT_MASK_HIQ_FREEPG_V1 0xfff
-#define BIT_HIQ_FREEPG_V1(x)                                                   \
-	(((x) & BIT_MASK_HIQ_FREEPG_V1) << BIT_SHIFT_HIQ_FREEPG_V1)
-#define BIT_GET_HIQ_FREEPG_V1(x)                                               \
-	(((x) >> BIT_SHIFT_HIQ_FREEPG_V1) & BIT_MASK_HIQ_FREEPG_V1)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_AGPIO_GPE BIT(31)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_SHIFT_XTAL_CAP_XI 25
-#define BIT_MASK_XTAL_CAP_XI 0x3f
-#define BIT_XTAL_CAP_XI(x)                                                     \
-	(((x) & BIT_MASK_XTAL_CAP_XI) << BIT_SHIFT_XTAL_CAP_XI)
-#define BIT_GET_XTAL_CAP_XI(x)                                                 \
-	(((x) >> BIT_SHIFT_XTAL_CAP_XI) & BIT_MASK_XTAL_CAP_XI)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_SHIFT_XTAL_DRV_DIGI 23
-#define BIT_MASK_XTAL_DRV_DIGI 0x3
-#define BIT_XTAL_DRV_DIGI(x)                                                   \
-	(((x) & BIT_MASK_XTAL_DRV_DIGI) << BIT_SHIFT_XTAL_DRV_DIGI)
-#define BIT_GET_XTAL_DRV_DIGI(x)                                               \
-	(((x) >> BIT_SHIFT_XTAL_DRV_DIGI) & BIT_MASK_XTAL_DRV_DIGI)
-
-#define BIT_XTAL_DRV_USB_BIT1 BIT(22)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_SHIFT_MAC_CLK_SEL 20
-#define BIT_MASK_MAC_CLK_SEL 0x3
-#define BIT_MAC_CLK_SEL(x)                                                     \
-	(((x) & BIT_MASK_MAC_CLK_SEL) << BIT_SHIFT_MAC_CLK_SEL)
-#define BIT_GET_MAC_CLK_SEL(x)                                                 \
-	(((x) >> BIT_SHIFT_MAC_CLK_SEL) & BIT_MASK_MAC_CLK_SEL)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_XTAL_DRV_USB_BIT0 BIT(19)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_SHIFT_XTAL_DRV_AFE 17
-#define BIT_MASK_XTAL_DRV_AFE 0x3
-#define BIT_XTAL_DRV_AFE(x)                                                    \
-	(((x) & BIT_MASK_XTAL_DRV_AFE) << BIT_SHIFT_XTAL_DRV_AFE)
-#define BIT_GET_XTAL_DRV_AFE(x)                                                \
-	(((x) >> BIT_SHIFT_XTAL_DRV_AFE) & BIT_MASK_XTAL_DRV_AFE)
-
-/* 2 REG_SDIO_FREE_TXPG2			(Offset 0x10250024) */
-
-#define BIT_SHIFT_PUB_FREEPG_V1 16
-#define BIT_MASK_PUB_FREEPG_V1 0xfff
-#define BIT_PUB_FREEPG_V1(x)                                                   \
-	(((x) & BIT_MASK_PUB_FREEPG_V1) << BIT_SHIFT_PUB_FREEPG_V1)
-#define BIT_GET_PUB_FREEPG_V1(x)                                               \
-	(((x) >> BIT_SHIFT_PUB_FREEPG_V1) & BIT_MASK_PUB_FREEPG_V1)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_SHIFT_XTAL_DRV_RF2 15
-#define BIT_MASK_XTAL_DRV_RF2 0x3
-#define BIT_XTAL_DRV_RF2(x)                                                    \
-	(((x) & BIT_MASK_XTAL_DRV_RF2) << BIT_SHIFT_XTAL_DRV_RF2)
-#define BIT_GET_XTAL_DRV_RF2(x)                                                \
-	(((x) >> BIT_SHIFT_XTAL_DRV_RF2) & BIT_MASK_XTAL_DRV_RF2)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_SHIFT_XTAL_DRV_RF1 13
-#define BIT_MASK_XTAL_DRV_RF1 0x3
-#define BIT_XTAL_DRV_RF1(x)                                                    \
-	(((x) & BIT_MASK_XTAL_DRV_RF1) << BIT_SHIFT_XTAL_DRV_RF1)
-#define BIT_GET_XTAL_DRV_RF1(x)                                                \
-	(((x) >> BIT_SHIFT_XTAL_DRV_RF1) & BIT_MASK_XTAL_DRV_RF1)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_XTAL_DELAY_DIGI BIT(12)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_XTAL_DELAY_USB BIT(11)
-#define BIT_XTAL_DELAY_AFE BIT(10)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_SHIFT_XTAL_LDO_VREF 7
-#define BIT_MASK_XTAL_LDO_VREF 0x7
-#define BIT_XTAL_LDO_VREF(x)                                                   \
-	(((x) & BIT_MASK_XTAL_LDO_VREF) << BIT_SHIFT_XTAL_LDO_VREF)
-#define BIT_GET_XTAL_LDO_VREF(x)                                               \
-	(((x) >> BIT_SHIFT_XTAL_LDO_VREF) & BIT_MASK_XTAL_LDO_VREF)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_XTAL_XQSEL_RF BIT(6)
-#define BIT_XTAL_XQSEL BIT(5)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_SHIFT_XTAL_GMN_V2 3
-#define BIT_MASK_XTAL_GMN_V2 0x3
-#define BIT_XTAL_GMN_V2(x)                                                     \
-	(((x) & BIT_MASK_XTAL_GMN_V2) << BIT_SHIFT_XTAL_GMN_V2)
-#define BIT_GET_XTAL_GMN_V2(x)                                                 \
-	(((x) >> BIT_SHIFT_XTAL_GMN_V2) & BIT_MASK_XTAL_GMN_V2)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_SHIFT_XTAL_GMP_V2 1
-#define BIT_MASK_XTAL_GMP_V2 0x3
-#define BIT_XTAL_GMP_V2(x)                                                     \
-	(((x) & BIT_MASK_XTAL_GMP_V2) << BIT_SHIFT_XTAL_GMP_V2)
-#define BIT_GET_XTAL_GMP_V2(x)                                                 \
-	(((x) >> BIT_SHIFT_XTAL_GMP_V2) & BIT_MASK_XTAL_GMP_V2)
-
-/* 2 REG_AFE_CTRL1				(Offset 0x0024) */
-
-#define BIT_XTAL_EN BIT(0)
-
-/* 2 REG_SDIO_FREE_TXPG2			(Offset 0x10250024) */
-
-#define BIT_SHIFT_LOW_FREEPG_V1 0
-#define BIT_MASK_LOW_FREEPG_V1 0xfff
-#define BIT_LOW_FREEPG_V1(x)                                                   \
-	(((x) & BIT_MASK_LOW_FREEPG_V1) << BIT_SHIFT_LOW_FREEPG_V1)
-#define BIT_GET_LOW_FREEPG_V1(x)                                               \
-	(((x) >> BIT_SHIFT_LOW_FREEPG_V1) & BIT_MASK_LOW_FREEPG_V1)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_SHIFT_REG_C3_V4 30
-#define BIT_MASK_REG_C3_V4 0x3
-#define BIT_REG_C3_V4(x) (((x) & BIT_MASK_REG_C3_V4) << BIT_SHIFT_REG_C3_V4)
-#define BIT_GET_REG_C3_V4(x) (((x) >> BIT_SHIFT_REG_C3_V4) & BIT_MASK_REG_C3_V4)
-
-#define BIT_REG_CP_BIT1 BIT(29)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_SHIFT_REG_RS_V4 26
-#define BIT_MASK_REG_RS_V4 0x7
-#define BIT_REG_RS_V4(x) (((x) & BIT_MASK_REG_RS_V4) << BIT_SHIFT_REG_RS_V4)
-#define BIT_GET_REG_RS_V4(x) (((x) >> BIT_SHIFT_REG_RS_V4) & BIT_MASK_REG_RS_V4)
-
-/* 2 REG_SDIO_OQT_FREE_TXPG_V1		(Offset 0x10250028) */
-
-#define BIT_SHIFT_NOAC_OQT_FREEPG_V1 24
-#define BIT_MASK_NOAC_OQT_FREEPG_V1 0xff
-#define BIT_NOAC_OQT_FREEPG_V1(x)                                              \
-	(((x) & BIT_MASK_NOAC_OQT_FREEPG_V1) << BIT_SHIFT_NOAC_OQT_FREEPG_V1)
-#define BIT_GET_NOAC_OQT_FREEPG_V1(x)                                          \
-	(((x) >> BIT_SHIFT_NOAC_OQT_FREEPG_V1) & BIT_MASK_NOAC_OQT_FREEPG_V1)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_SHIFT_REG__CS 24
-#define BIT_MASK_REG__CS 0x3
-#define BIT_REG__CS(x) (((x) & BIT_MASK_REG__CS) << BIT_SHIFT_REG__CS)
-#define BIT_GET_REG__CS(x) (((x) >> BIT_SHIFT_REG__CS) & BIT_MASK_REG__CS)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_SHIFT_REG_CP_OFFSET 21
-#define BIT_MASK_REG_CP_OFFSET 0x7
-#define BIT_REG_CP_OFFSET(x)                                                   \
-	(((x) & BIT_MASK_REG_CP_OFFSET) << BIT_SHIFT_REG_CP_OFFSET)
-#define BIT_GET_REG_CP_OFFSET(x)                                               \
-	(((x) >> BIT_SHIFT_REG_CP_OFFSET) & BIT_MASK_REG_CP_OFFSET)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_SHIFT_CP_BIAS 18
-#define BIT_MASK_CP_BIAS 0x7
-#define BIT_CP_BIAS(x) (((x) & BIT_MASK_CP_BIAS) << BIT_SHIFT_CP_BIAS)
-#define BIT_GET_CP_BIAS(x) (((x) >> BIT_SHIFT_CP_BIAS) & BIT_MASK_CP_BIAS)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_REG_IDOUBLE_V2 BIT(17)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_EN_SYN BIT(16)
-
-#define BIT_SHIFT_AC_OQT_FREEPG_V1 16
-#define BIT_MASK_AC_OQT_FREEPG_V1 0xff
-#define BIT_AC_OQT_FREEPG_V1(x)                                                \
-	(((x) & BIT_MASK_AC_OQT_FREEPG_V1) << BIT_SHIFT_AC_OQT_FREEPG_V1)
-#define BIT_GET_AC_OQT_FREEPG_V1(x)                                            \
-	(((x) >> BIT_SHIFT_AC_OQT_FREEPG_V1) & BIT_MASK_AC_OQT_FREEPG_V1)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_SHIFT_MCCO 14
-#define BIT_MASK_MCCO 0x3
-#define BIT_MCCO(x) (((x) & BIT_MASK_MCCO) << BIT_SHIFT_MCCO)
-#define BIT_GET_MCCO(x) (((x) >> BIT_SHIFT_MCCO) & BIT_MASK_MCCO)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_SHIFT_REG_LDO_SEL 12
-#define BIT_MASK_REG_LDO_SEL 0x3
-#define BIT_REG_LDO_SEL(x)                                                     \
-	(((x) & BIT_MASK_REG_LDO_SEL) << BIT_SHIFT_REG_LDO_SEL)
-#define BIT_GET_REG_LDO_SEL(x)                                                 \
-	(((x) >> BIT_SHIFT_REG_LDO_SEL) & BIT_MASK_REG_LDO_SEL)
-
-#define BIT_REG_KVCO_V2 BIT(10)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_AGPIO_GPO BIT(9)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_SHIFT_AGPIO_DRV 7
-#define BIT_MASK_AGPIO_DRV 0x3
-#define BIT_AGPIO_DRV(x) (((x) & BIT_MASK_AGPIO_DRV) << BIT_SHIFT_AGPIO_DRV)
-#define BIT_GET_AGPIO_DRV(x) (((x) >> BIT_SHIFT_AGPIO_DRV) & BIT_MASK_AGPIO_DRV)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_SHIFT_XTAL_CAP_XO 1
-#define BIT_MASK_XTAL_CAP_XO 0x3f
-#define BIT_XTAL_CAP_XO(x)                                                     \
-	(((x) & BIT_MASK_XTAL_CAP_XO) << BIT_SHIFT_XTAL_CAP_XO)
-#define BIT_GET_XTAL_CAP_XO(x)                                                 \
-	(((x) >> BIT_SHIFT_XTAL_CAP_XO) & BIT_MASK_XTAL_CAP_XO)
-
-/* 2 REG_AFE_CTRL2				(Offset 0x0028) */
-
-#define BIT_POW_PLL BIT(0)
-
-/* 2 REG_SDIO_OQT_FREE_TXPG_V1		(Offset 0x10250028) */
-
-#define BIT_SHIFT_EXQ_FREEPG_V1 0
-#define BIT_MASK_EXQ_FREEPG_V1 0xfff
-#define BIT_EXQ_FREEPG_V1(x)                                                   \
-	(((x) & BIT_MASK_EXQ_FREEPG_V1) << BIT_SHIFT_EXQ_FREEPG_V1)
-#define BIT_GET_EXQ_FREEPG_V1(x)                                               \
-	(((x) >> BIT_SHIFT_EXQ_FREEPG_V1) & BIT_MASK_EXQ_FREEPG_V1)
-
-/* 2 REG_AFE_CTRL3				(Offset 0x002C) */
-
-#define BIT_SHIFT_PS 7
-#define BIT_MASK_PS 0x7
-#define BIT_PS(x) (((x) & BIT_MASK_PS) << BIT_SHIFT_PS)
-#define BIT_GET_PS(x) (((x) >> BIT_SHIFT_PS) & BIT_MASK_PS)
-
-/* 2 REG_AFE_CTRL3				(Offset 0x002C) */
-
-#define BIT_PSEN BIT(6)
-#define BIT_DOGENB BIT(5)
-
-/* 2 REG_AFE_CTRL3				(Offset 0x002C) */
-
-#define BIT_REG_MBIAS BIT(4)
-
-/* 2 REG_AFE_CTRL3				(Offset 0x002C) */
-
-#define BIT_SHIFT_REG_R3_V4 1
-#define BIT_MASK_REG_R3_V4 0x7
-#define BIT_REG_R3_V4(x) (((x) & BIT_MASK_REG_R3_V4) << BIT_SHIFT_REG_R3_V4)
-#define BIT_GET_REG_R3_V4(x) (((x) >> BIT_SHIFT_REG_R3_V4) & BIT_MASK_REG_R3_V4)
-
-/* 2 REG_AFE_CTRL3				(Offset 0x002C) */
-
-#define BIT_REG_CP_BIT0 BIT(0)
-
-/* 2 REG_EFUSE_CTRL				(Offset 0x0030) */
-
-#define BIT_EF_FLAG BIT(31)
-
-#define BIT_SHIFT_EF_PGPD 28
-#define BIT_MASK_EF_PGPD 0x7
-#define BIT_EF_PGPD(x) (((x) & BIT_MASK_EF_PGPD) << BIT_SHIFT_EF_PGPD)
-#define BIT_GET_EF_PGPD(x) (((x) >> BIT_SHIFT_EF_PGPD) & BIT_MASK_EF_PGPD)
-
-#define BIT_SHIFT_EF_RDT 24
-#define BIT_MASK_EF_RDT 0xf
-#define BIT_EF_RDT(x) (((x) & BIT_MASK_EF_RDT) << BIT_SHIFT_EF_RDT)
-#define BIT_GET_EF_RDT(x) (((x) >> BIT_SHIFT_EF_RDT) & BIT_MASK_EF_RDT)
-
-#define BIT_SHIFT_EF_PGTS 20
-#define BIT_MASK_EF_PGTS 0xf
-#define BIT_EF_PGTS(x) (((x) & BIT_MASK_EF_PGTS) << BIT_SHIFT_EF_PGTS)
-#define BIT_GET_EF_PGTS(x) (((x) >> BIT_SHIFT_EF_PGTS) & BIT_MASK_EF_PGTS)
-
-/* 2 REG_EFUSE_CTRL				(Offset 0x0030) */
-
-#define BIT_EF_PDWN BIT(19)
-
-/* 2 REG_EFUSE_CTRL				(Offset 0x0030) */
-
-#define BIT_EF_ALDEN BIT(18)
-
-/* 2 REG_SDIO_HTSFR_INFO			(Offset 0x10250030) */
-
-#define BIT_SHIFT_HTSFR1 16
-#define BIT_MASK_HTSFR1 0xffff
-#define BIT_HTSFR1(x) (((x) & BIT_MASK_HTSFR1) << BIT_SHIFT_HTSFR1)
-#define BIT_GET_HTSFR1(x) (((x) >> BIT_SHIFT_HTSFR1) & BIT_MASK_HTSFR1)
-
-/* 2 REG_EFUSE_CTRL				(Offset 0x0030) */
-
-#define BIT_SHIFT_EF_ADDR 8
-#define BIT_MASK_EF_ADDR 0x3ff
-#define BIT_EF_ADDR(x) (((x) & BIT_MASK_EF_ADDR) << BIT_SHIFT_EF_ADDR)
-#define BIT_GET_EF_ADDR(x) (((x) >> BIT_SHIFT_EF_ADDR) & BIT_MASK_EF_ADDR)
-
-#define BIT_SHIFT_EF_DATA 0
-#define BIT_MASK_EF_DATA 0xff
-#define BIT_EF_DATA(x) (((x) & BIT_MASK_EF_DATA) << BIT_SHIFT_EF_DATA)
-#define BIT_GET_EF_DATA(x) (((x) >> BIT_SHIFT_EF_DATA) & BIT_MASK_EF_DATA)
-
-/* 2 REG_SDIO_HTSFR_INFO			(Offset 0x10250030) */
-
-#define BIT_SHIFT_HTSFR0 0
-#define BIT_MASK_HTSFR0 0xffff
-#define BIT_HTSFR0(x) (((x) & BIT_MASK_HTSFR0) << BIT_SHIFT_HTSFR0)
-#define BIT_GET_HTSFR0(x) (((x) >> BIT_SHIFT_HTSFR0) & BIT_MASK_HTSFR0)
-
-/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */
-
-#define BIT_LDOE25_EN BIT(31)
-
-/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */
-
-#define BIT_SHIFT_LDOE25_V12ADJ_L 27
-#define BIT_MASK_LDOE25_V12ADJ_L 0xf
-#define BIT_LDOE25_V12ADJ_L(x)                                                 \
-	(((x) & BIT_MASK_LDOE25_V12ADJ_L) << BIT_SHIFT_LDOE25_V12ADJ_L)
-#define BIT_GET_LDOE25_V12ADJ_L(x)                                             \
-	(((x) >> BIT_SHIFT_LDOE25_V12ADJ_L) & BIT_MASK_LDOE25_V12ADJ_L)
-
-/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */
-
-#define BIT_EF_CRES_SEL BIT(26)
-
-/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */
-
-#define BIT_SHIFT_EF_SCAN_START_V1 16
-#define BIT_MASK_EF_SCAN_START_V1 0x3ff
-#define BIT_EF_SCAN_START_V1(x)                                                \
-	(((x) & BIT_MASK_EF_SCAN_START_V1) << BIT_SHIFT_EF_SCAN_START_V1)
-#define BIT_GET_EF_SCAN_START_V1(x)                                            \
-	(((x) >> BIT_SHIFT_EF_SCAN_START_V1) & BIT_MASK_EF_SCAN_START_V1)
-
-/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */
-
-#define BIT_SHIFT_EF_SCAN_END 12
-#define BIT_MASK_EF_SCAN_END 0xf
-#define BIT_EF_SCAN_END(x)                                                     \
-	(((x) & BIT_MASK_EF_SCAN_END) << BIT_SHIFT_EF_SCAN_END)
-#define BIT_GET_EF_SCAN_END(x)                                                 \
-	(((x) >> BIT_SHIFT_EF_SCAN_END) & BIT_MASK_EF_SCAN_END)
-
-/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */
-
-#define BIT_EF_PD_DIS BIT(11)
-
-/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */
-
-#define BIT_SHIFT_EF_CELL_SEL 8
-#define BIT_MASK_EF_CELL_SEL 0x3
-#define BIT_EF_CELL_SEL(x)                                                     \
-	(((x) & BIT_MASK_EF_CELL_SEL) << BIT_SHIFT_EF_CELL_SEL)
-#define BIT_GET_EF_CELL_SEL(x)                                                 \
-	(((x) >> BIT_SHIFT_EF_CELL_SEL) & BIT_MASK_EF_CELL_SEL)
-
-/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */
-
-#define BIT_EF_TRPT BIT(7)
-
-#define BIT_SHIFT_EF_TTHD 0
-#define BIT_MASK_EF_TTHD 0x7f
-#define BIT_EF_TTHD(x) (((x) & BIT_MASK_EF_TTHD) << BIT_SHIFT_EF_TTHD)
-#define BIT_GET_EF_TTHD(x) (((x) >> BIT_SHIFT_EF_TTHD) & BIT_MASK_EF_TTHD)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SHIFT_DBG_SEL_V1 16
-#define BIT_MASK_DBG_SEL_V1 0xff
-#define BIT_DBG_SEL_V1(x) (((x) & BIT_MASK_DBG_SEL_V1) << BIT_SHIFT_DBG_SEL_V1)
-#define BIT_GET_DBG_SEL_V1(x)                                                  \
-	(((x) >> BIT_SHIFT_DBG_SEL_V1) & BIT_MASK_DBG_SEL_V1)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SHIFT_DBG_SEL_BYTE 14
-#define BIT_MASK_DBG_SEL_BYTE 0x3
-#define BIT_DBG_SEL_BYTE(x)                                                    \
-	(((x) & BIT_MASK_DBG_SEL_BYTE) << BIT_SHIFT_DBG_SEL_BYTE)
-#define BIT_GET_DBG_SEL_BYTE(x)                                                \
-	(((x) >> BIT_SHIFT_DBG_SEL_BYTE) & BIT_MASK_DBG_SEL_BYTE)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SHIFT_STD_L1_V1 12
-#define BIT_MASK_STD_L1_V1 0x3
-#define BIT_STD_L1_V1(x) (((x) & BIT_MASK_STD_L1_V1) << BIT_SHIFT_STD_L1_V1)
-#define BIT_GET_STD_L1_V1(x) (((x) >> BIT_SHIFT_STD_L1_V1) & BIT_MASK_STD_L1_V1)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SYSON_DBG_PAD_E2 BIT(11)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SYSON_LED_PAD_E2 BIT(10)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SYSON_GPEE_PAD_E2 BIT(9)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SYSON_PCI_PAD_E2 BIT(8)
-
-#define BIT_SHIFT_MATCH_CNT 8
-#define BIT_MASK_MATCH_CNT 0xff
-#define BIT_MATCH_CNT(x) (((x) & BIT_MASK_MATCH_CNT) << BIT_SHIFT_MATCH_CNT)
-#define BIT_GET_MATCH_CNT(x) (((x) >> BIT_SHIFT_MATCH_CNT) & BIT_MASK_MATCH_CNT)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_AUTO_SW_LDO_VOL_EN BIT(7)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SHIFT_SYSON_SPS0WWV_WT 4
-#define BIT_MASK_SYSON_SPS0WWV_WT 0x3
-#define BIT_SYSON_SPS0WWV_WT(x)                                                \
-	(((x) & BIT_MASK_SYSON_SPS0WWV_WT) << BIT_SHIFT_SYSON_SPS0WWV_WT)
-#define BIT_GET_SYSON_SPS0WWV_WT(x)                                            \
-	(((x) >> BIT_SHIFT_SYSON_SPS0WWV_WT) & BIT_MASK_SYSON_SPS0WWV_WT)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SHIFT_SYSON_SPS0LDO_WT 2
-#define BIT_MASK_SYSON_SPS0LDO_WT 0x3
-#define BIT_SYSON_SPS0LDO_WT(x)                                                \
-	(((x) & BIT_MASK_SYSON_SPS0LDO_WT) << BIT_SHIFT_SYSON_SPS0LDO_WT)
-#define BIT_GET_SYSON_SPS0LDO_WT(x)                                            \
-	(((x) >> BIT_SHIFT_SYSON_SPS0LDO_WT) & BIT_MASK_SYSON_SPS0LDO_WT)
-
-/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */
-
-#define BIT_SHIFT_SYSON_RCLK_SCALE 0
-#define BIT_MASK_SYSON_RCLK_SCALE 0x3
-#define BIT_SYSON_RCLK_SCALE(x)                                                \
-	(((x) & BIT_MASK_SYSON_RCLK_SCALE) << BIT_SHIFT_SYSON_RCLK_SCALE)
-#define BIT_GET_SYSON_RCLK_SCALE(x)                                            \
-	(((x) >> BIT_SHIFT_SYSON_RCLK_SCALE) & BIT_MASK_SYSON_RCLK_SCALE)
-
-/* 2 REG_SDIO_HCPWM1_V2			(Offset 0x10250038) */
-
-#define BIT_SYS_CLK BIT(0)
-
-/* 2 REG_CAL_TIMER				(Offset 0x003C) */
-
-#define BIT_SHIFT_CAL_SCAL 0
-#define BIT_MASK_CAL_SCAL 0xff
-#define BIT_CAL_SCAL(x) (((x) & BIT_MASK_CAL_SCAL) << BIT_SHIFT_CAL_SCAL)
-#define BIT_GET_CAL_SCAL(x) (((x) >> BIT_SHIFT_CAL_SCAL) & BIT_MASK_CAL_SCAL)
-
-/* 2 REG_ACLK_MON				(Offset 0x003E) */
-
-#define BIT_SHIFT_RCLK_MON 5
-#define BIT_MASK_RCLK_MON 0x7ff
-#define BIT_RCLK_MON(x) (((x) & BIT_MASK_RCLK_MON) << BIT_SHIFT_RCLK_MON)
-#define BIT_GET_RCLK_MON(x) (((x) >> BIT_SHIFT_RCLK_MON) & BIT_MASK_RCLK_MON)
-
-#define BIT_CAL_EN BIT(4)
-
-#define BIT_SHIFT_DPSTU 2
-#define BIT_MASK_DPSTU 0x3
-#define BIT_DPSTU(x) (((x) & BIT_MASK_DPSTU) << BIT_SHIFT_DPSTU)
-#define BIT_GET_DPSTU(x) (((x) >> BIT_SHIFT_DPSTU) & BIT_MASK_DPSTU)
-
-#define BIT_SUS_16X BIT(1)
-
-/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */
-
-#define BIT_INDIRECT_REG_RDY BIT(20)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_FSPI_EN BIT(19)
-
-/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */
-
-#define BIT_INDIRECT_REG_R BIT(19)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_WL_RTS_EXT_32K_SEL BIT(18)
-
-/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */
-
-#define BIT_INDIRECT_REG_W BIT(18)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_WLGP_SPI_EN BIT(16)
-
-/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */
-
-#define BIT_SHIFT_INDIRECT_REG_SIZE 16
-#define BIT_MASK_INDIRECT_REG_SIZE 0x3
-#define BIT_INDIRECT_REG_SIZE(x)                                               \
-	(((x) & BIT_MASK_INDIRECT_REG_SIZE) << BIT_SHIFT_INDIRECT_REG_SIZE)
-#define BIT_GET_INDIRECT_REG_SIZE(x)                                           \
-	(((x) >> BIT_SHIFT_INDIRECT_REG_SIZE) & BIT_MASK_INDIRECT_REG_SIZE)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_SIC_LBK BIT(15)
-#define BIT_ENHTP BIT(14)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_ENSIC BIT(12)
-#define BIT_SIC_SWRST BIT(11)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_PO_WIFI_PTA_PINS BIT(10)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_PO_BT_PTA_PINS BIT(9)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_ENUART BIT(8)
-
-#define BIT_SHIFT_BTMODE 6
-#define BIT_MASK_BTMODE 0x3
-#define BIT_BTMODE(x) (((x) & BIT_MASK_BTMODE) << BIT_SHIFT_BTMODE)
-#define BIT_GET_BTMODE(x) (((x) >> BIT_SHIFT_BTMODE) & BIT_MASK_BTMODE)
-
-#define BIT_ENBT BIT(5)
-#define BIT_EROM_EN BIT(4)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_WLRFE_6_7_EN BIT(3)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_WLRFE_4_5_EN BIT(2)
-
-/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */
-
-#define BIT_SHIFT_GPIOSEL 0
-#define BIT_MASK_GPIOSEL 0x3
-#define BIT_GPIOSEL(x) (((x) & BIT_MASK_GPIOSEL) << BIT_SHIFT_GPIOSEL)
-#define BIT_GET_GPIOSEL(x) (((x) >> BIT_SHIFT_GPIOSEL) & BIT_MASK_GPIOSEL)
-
-/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */
-
-#define BIT_SHIFT_INDIRECT_REG_ADDR 0
-#define BIT_MASK_INDIRECT_REG_ADDR 0xffff
-#define BIT_INDIRECT_REG_ADDR(x)                                               \
-	(((x) & BIT_MASK_INDIRECT_REG_ADDR) << BIT_SHIFT_INDIRECT_REG_ADDR)
-#define BIT_GET_INDIRECT_REG_ADDR(x)                                           \
-	(((x) >> BIT_SHIFT_INDIRECT_REG_ADDR) & BIT_MASK_INDIRECT_REG_ADDR)
-
-/* 2 REG_GPIO_PIN_CTRL			(Offset 0x0044) */
-
-#define BIT_SHIFT_GPIO_MOD_7_TO_0 24
-#define BIT_MASK_GPIO_MOD_7_TO_0 0xff
-#define BIT_GPIO_MOD_7_TO_0(x)                                                 \
-	(((x) & BIT_MASK_GPIO_MOD_7_TO_0) << BIT_SHIFT_GPIO_MOD_7_TO_0)
-#define BIT_GET_GPIO_MOD_7_TO_0(x)                                             \
-	(((x) >> BIT_SHIFT_GPIO_MOD_7_TO_0) & BIT_MASK_GPIO_MOD_7_TO_0)
-
-#define BIT_SHIFT_GPIO_IO_SEL_7_TO_0 16
-#define BIT_MASK_GPIO_IO_SEL_7_TO_0 0xff
-#define BIT_GPIO_IO_SEL_7_TO_0(x)                                              \
-	(((x) & BIT_MASK_GPIO_IO_SEL_7_TO_0) << BIT_SHIFT_GPIO_IO_SEL_7_TO_0)
-#define BIT_GET_GPIO_IO_SEL_7_TO_0(x)                                          \
-	(((x) >> BIT_SHIFT_GPIO_IO_SEL_7_TO_0) & BIT_MASK_GPIO_IO_SEL_7_TO_0)
-
-#define BIT_SHIFT_GPIO_OUT_7_TO_0 8
-#define BIT_MASK_GPIO_OUT_7_TO_0 0xff
-#define BIT_GPIO_OUT_7_TO_0(x)                                                 \
-	(((x) & BIT_MASK_GPIO_OUT_7_TO_0) << BIT_SHIFT_GPIO_OUT_7_TO_0)
-#define BIT_GET_GPIO_OUT_7_TO_0(x)                                             \
-	(((x) >> BIT_SHIFT_GPIO_OUT_7_TO_0) & BIT_MASK_GPIO_OUT_7_TO_0)
-
-#define BIT_SHIFT_GPIO_IN_7_TO_0 0
-#define BIT_MASK_GPIO_IN_7_TO_0 0xff
-#define BIT_GPIO_IN_7_TO_0(x)                                                  \
-	(((x) & BIT_MASK_GPIO_IN_7_TO_0) << BIT_SHIFT_GPIO_IN_7_TO_0)
-#define BIT_GET_GPIO_IN_7_TO_0(x)                                              \
-	(((x) >> BIT_SHIFT_GPIO_IN_7_TO_0) & BIT_MASK_GPIO_IN_7_TO_0)
-
-/* 2 REG_SDIO_INDIRECT_REG_DATA		(Offset 0x10250044) */
-
-#define BIT_SHIFT_INDIRECT_REG_DATA 0
-#define BIT_MASK_INDIRECT_REG_DATA 0xffffffffL
-#define BIT_INDIRECT_REG_DATA(x)                                               \
-	(((x) & BIT_MASK_INDIRECT_REG_DATA) << BIT_SHIFT_INDIRECT_REG_DATA)
-#define BIT_GET_INDIRECT_REG_DATA(x)                                           \
-	(((x) >> BIT_SHIFT_INDIRECT_REG_DATA) & BIT_MASK_INDIRECT_REG_DATA)
-
-/* 2 REG_GPIO_INTM				(Offset 0x0048) */
-
-#define BIT_SHIFT_MUXDBG_SEL 30
-#define BIT_MASK_MUXDBG_SEL 0x3
-#define BIT_MUXDBG_SEL(x) (((x) & BIT_MASK_MUXDBG_SEL) << BIT_SHIFT_MUXDBG_SEL)
-#define BIT_GET_MUXDBG_SEL(x)                                                  \
-	(((x) >> BIT_SHIFT_MUXDBG_SEL) & BIT_MASK_MUXDBG_SEL)
-
-/* 2 REG_GPIO_INTM				(Offset 0x0048) */
-
-#define BIT_EXTWOL_SEL BIT(17)
-
-/* 2 REG_GPIO_INTM				(Offset 0x0048) */
-
-#define BIT_EXTWOL_EN BIT(16)
-
-/* 2 REG_GPIO_INTM				(Offset 0x0048) */
-
-#define BIT_GPIOF_INT_MD BIT(15)
-#define BIT_GPIOE_INT_MD BIT(14)
-#define BIT_GPIOD_INT_MD BIT(13)
-#define BIT_GPIOC_INT_MD BIT(12)
-#define BIT_GPIOB_INT_MD BIT(11)
-#define BIT_GPIOA_INT_MD BIT(10)
-#define BIT_GPIO9_INT_MD BIT(9)
-#define BIT_GPIO8_INT_MD BIT(8)
-#define BIT_GPIO7_INT_MD BIT(7)
-#define BIT_GPIO6_INT_MD BIT(6)
-#define BIT_GPIO5_INT_MD BIT(5)
-#define BIT_GPIO4_INT_MD BIT(4)
-#define BIT_GPIO3_INT_MD BIT(3)
-#define BIT_GPIO2_INT_MD BIT(2)
-#define BIT_GPIO1_INT_MD BIT(1)
-#define BIT_GPIO0_INT_MD BIT(0)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_GPIO3_WL_CTRL_EN BIT(27)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_LNAON_SEL_EN BIT(26)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_PAPE_SEL_EN BIT(25)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_DPDT_WLBT_SEL BIT(24)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_DPDT_SEL_EN BIT(23)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_GPIO13_14_WL_CTRL_EN BIT(22)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_LED2DIS BIT(21)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_LED2PL BIT(20)
-#define BIT_LED2SV BIT(19)
-
-#define BIT_SHIFT_LED2CM 16
-#define BIT_MASK_LED2CM 0x7
-#define BIT_LED2CM(x) (((x) & BIT_MASK_LED2CM) << BIT_SHIFT_LED2CM)
-#define BIT_GET_LED2CM(x) (((x) >> BIT_SHIFT_LED2CM) & BIT_MASK_LED2CM)
-
-#define BIT_LED1DIS BIT(15)
-#define BIT_LED1PL BIT(12)
-#define BIT_LED1SV BIT(11)
-
-#define BIT_SHIFT_LED1CM 8
-#define BIT_MASK_LED1CM 0x7
-#define BIT_LED1CM(x) (((x) & BIT_MASK_LED1CM) << BIT_SHIFT_LED1CM)
-#define BIT_GET_LED1CM(x) (((x) >> BIT_SHIFT_LED1CM) & BIT_MASK_LED1CM)
-
-#define BIT_LED0DIS BIT(7)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_SHIFT_AFE_LDO_SWR_CHECK 5
-#define BIT_MASK_AFE_LDO_SWR_CHECK 0x3
-#define BIT_AFE_LDO_SWR_CHECK(x)                                               \
-	(((x) & BIT_MASK_AFE_LDO_SWR_CHECK) << BIT_SHIFT_AFE_LDO_SWR_CHECK)
-#define BIT_GET_AFE_LDO_SWR_CHECK(x)                                           \
-	(((x) >> BIT_SHIFT_AFE_LDO_SWR_CHECK) & BIT_MASK_AFE_LDO_SWR_CHECK)
-
-/* 2 REG_LED_CFG				(Offset 0x004C) */
-
-#define BIT_LED0PL BIT(4)
-#define BIT_LED0SV BIT(3)
-
-#define BIT_SHIFT_LED0CM 0
-#define BIT_MASK_LED0CM 0x7
-#define BIT_LED0CM(x) (((x) & BIT_MASK_LED0CM) << BIT_SHIFT_LED0CM)
-#define BIT_GET_LED0CM(x) (((x) >> BIT_SHIFT_LED0CM) & BIT_MASK_LED0CM)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_PDNINT_EN BIT(31)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_NFC_INT_PAD_EN BIT(30)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_SPS_OCP_INT_EN BIT(29)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_PWMERR_INT_EN BIT(28)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIOF_INT_EN BIT(27)
-#define BIT_FS_GPIOE_INT_EN BIT(26)
-#define BIT_FS_GPIOD_INT_EN BIT(25)
-#define BIT_FS_GPIOC_INT_EN BIT(24)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIOB_INT_EN BIT(23)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIOA_INT_EN BIT(22)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO9_INT_EN BIT(21)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO8_INT_EN BIT(20)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO7_INT_EN BIT(19)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO6_INT_EN BIT(18)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO5_INT_EN BIT(17)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO4_INT_EN BIT(16)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO3_INT_EN BIT(15)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO2_INT_EN BIT(14)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO1_INT_EN BIT(13)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_GPIO0_INT_EN BIT(12)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_HCI_SUS_EN BIT(11)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_HCI_RES_EN BIT(10)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_HCI_RESET_EN BIT(9)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_BTON_STS_UPDATE_MSK_EN BIT(7)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_ACT2RECOVERY_INT_EN_V1 BIT(6)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_GEN1GEN2_SWITCH BIT(5)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_HCI_TXDMA_REQ_HIMR BIT(4)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_32K_LEAVE_SETTING_MAK BIT(3)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_32K_ENTER_SETTING_MAK BIT(2)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_USB_LPMRSM_MSK BIT(1)
-
-/* 2 REG_FSIMR				(Offset 0x0050) */
-
-#define BIT_FS_USB_LPMINT_MSK BIT(0)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_PDNINT BIT(31)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_SPS_OCP_INT BIT(29)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_PWMERR_INT BIT(28)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIOF_INT BIT(27)
-#define BIT_FS_GPIOE_INT BIT(26)
-#define BIT_FS_GPIOD_INT BIT(25)
-#define BIT_FS_GPIOC_INT BIT(24)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIOB_INT BIT(23)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIOA_INT BIT(22)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO9_INT BIT(21)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO8_INT BIT(20)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO7_INT BIT(19)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO6_INT BIT(18)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO5_INT BIT(17)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO4_INT BIT(16)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO3_INT BIT(15)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO2_INT BIT(14)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO1_INT BIT(13)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_GPIO0_INT BIT(12)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_HCI_SUS_INT BIT(11)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_HCI_RES_INT BIT(10)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_HCI_RESET_INT BIT(9)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_ACT2RECOVERY BIT(6)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_HCI_TXDMA_REQ_HISR BIT(4)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_32K_LEAVE_SETTING_INT BIT(3)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_32K_ENTER_SETTING_INT BIT(2)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_USB_LPMRSM_INT BIT(1)
-
-/* 2 REG_FSISR				(Offset 0x0054) */
-
-#define BIT_FS_USB_LPMINT_INT BIT(0)
-
-/* 2 REG_HSIMR				(Offset 0x0058) */
-
-#define BIT_GPIOF_INT_EN BIT(31)
-#define BIT_GPIOE_INT_EN BIT(30)
-#define BIT_GPIOD_INT_EN BIT(29)
-#define BIT_GPIOC_INT_EN BIT(28)
-#define BIT_GPIOB_INT_EN BIT(27)
-#define BIT_GPIOA_INT_EN BIT(26)
-#define BIT_GPIO9_INT_EN BIT(25)
-#define BIT_GPIO8_INT_EN BIT(24)
-#define BIT_GPIO7_INT_EN BIT(23)
-#define BIT_GPIO6_INT_EN BIT(22)
-#define BIT_GPIO5_INT_EN BIT(21)
-#define BIT_GPIO4_INT_EN BIT(20)
-#define BIT_GPIO3_INT_EN BIT(19)
-
-/* 2 REG_HSIMR				(Offset 0x0058) */
-
-#define BIT_GPIO1_INT_EN BIT(17)
-#define BIT_GPIO0_INT_EN BIT(16)
-
-/* 2 REG_HSIMR				(Offset 0x0058) */
-
-#define BIT_GPIO2_INT_EN_V1 BIT(16)
-
-/* 2 REG_HSIMR				(Offset 0x0058) */
-
-#define BIT_PDNINT_EN BIT(7)
-
-/* 2 REG_HSIMR				(Offset 0x0058) */
-
-#define BIT_RON_INT_EN BIT(6)
-
-/* 2 REG_HSIMR				(Offset 0x0058) */
-
-#define BIT_SPS_OCP_INT_EN BIT(5)
-
-/* 2 REG_HSIMR				(Offset 0x0058) */
-
-#define BIT_GPIO15_0_INT_EN BIT(0)
-
-/* 2 REG_HSISR				(Offset 0x005C) */
-
-#define BIT_GPIOF_INT BIT(31)
-#define BIT_GPIOE_INT BIT(30)
-#define BIT_GPIOD_INT BIT(29)
-#define BIT_GPIOC_INT BIT(28)
-#define BIT_GPIOB_INT BIT(27)
-#define BIT_GPIOA_INT BIT(26)
-#define BIT_GPIO9_INT BIT(25)
-#define BIT_GPIO8_INT BIT(24)
-#define BIT_GPIO7_INT BIT(23)
-
-/* 2 REG_HSISR				(Offset 0x005C) */
-
-#define BIT_GPIO6_INT BIT(22)
-#define BIT_GPIO5_INT BIT(21)
-#define BIT_GPIO4_INT BIT(20)
-#define BIT_GPIO3_INT BIT(19)
-
-/* 2 REG_HSISR				(Offset 0x005C) */
-
-#define BIT_GPIO1_INT BIT(17)
-#define BIT_GPIO0_INT BIT(16)
-
-/* 2 REG_HSISR				(Offset 0x005C) */
-
-#define BIT_GPIO2_INT_V1 BIT(16)
-
-/* 2 REG_HSISR				(Offset 0x005C) */
-
-#define BIT_PDNINT BIT(7)
-
-/* 2 REG_HSISR				(Offset 0x005C) */
-
-#define BIT_RON_INT BIT(6)
-
-/* 2 REG_HSISR				(Offset 0x005C) */
-
-#define BIT_SPS_OCP_INT BIT(5)
-
-/* 2 REG_HSISR				(Offset 0x005C) */
-
-#define BIT_GPIO15_0_INT BIT(0)
-#define BIT_MCUFWDL_EN BIT(0)
-
-/* 2 REG_GPIO_EXT_CTRL			(Offset 0x0060) */
-
-#define BIT_SHIFT_GPIO_MOD_15_TO_8 24
-#define BIT_MASK_GPIO_MOD_15_TO_8 0xff
-#define BIT_GPIO_MOD_15_TO_8(x)                                                \
-	(((x) & BIT_MASK_GPIO_MOD_15_TO_8) << BIT_SHIFT_GPIO_MOD_15_TO_8)
-#define BIT_GET_GPIO_MOD_15_TO_8(x)                                            \
-	(((x) >> BIT_SHIFT_GPIO_MOD_15_TO_8) & BIT_MASK_GPIO_MOD_15_TO_8)
-
-#define BIT_SHIFT_GPIO_IO_SEL_15_TO_8 16
-#define BIT_MASK_GPIO_IO_SEL_15_TO_8 0xff
-#define BIT_GPIO_IO_SEL_15_TO_8(x)                                             \
-	(((x) & BIT_MASK_GPIO_IO_SEL_15_TO_8) << BIT_SHIFT_GPIO_IO_SEL_15_TO_8)
-#define BIT_GET_GPIO_IO_SEL_15_TO_8(x)                                         \
-	(((x) >> BIT_SHIFT_GPIO_IO_SEL_15_TO_8) & BIT_MASK_GPIO_IO_SEL_15_TO_8)
-
-#define BIT_SHIFT_GPIO_OUT_15_TO_8 8
-#define BIT_MASK_GPIO_OUT_15_TO_8 0xff
-#define BIT_GPIO_OUT_15_TO_8(x)                                                \
-	(((x) & BIT_MASK_GPIO_OUT_15_TO_8) << BIT_SHIFT_GPIO_OUT_15_TO_8)
-#define BIT_GET_GPIO_OUT_15_TO_8(x)                                            \
-	(((x) >> BIT_SHIFT_GPIO_OUT_15_TO_8) & BIT_MASK_GPIO_OUT_15_TO_8)
-
-#define BIT_SHIFT_GPIO_IN_15_TO_8 0
-#define BIT_MASK_GPIO_IN_15_TO_8 0xff
-#define BIT_GPIO_IN_15_TO_8(x)                                                 \
-	(((x) & BIT_MASK_GPIO_IN_15_TO_8) << BIT_SHIFT_GPIO_IN_15_TO_8)
-#define BIT_GET_GPIO_IN_15_TO_8(x)                                             \
-	(((x) >> BIT_SHIFT_GPIO_IN_15_TO_8) & BIT_MASK_GPIO_IN_15_TO_8)
-
-/* 2 REG_SDIO_H2C				(Offset 0x10250060) */
-
-#define BIT_SHIFT_SDIO_H2C_MSG 0
-#define BIT_MASK_SDIO_H2C_MSG 0xffffffffL
-#define BIT_SDIO_H2C_MSG(x)                                                    \
-	(((x) & BIT_MASK_SDIO_H2C_MSG) << BIT_SHIFT_SDIO_H2C_MSG)
-#define BIT_GET_SDIO_H2C_MSG(x)                                                \
-	(((x) >> BIT_SHIFT_SDIO_H2C_MSG) & BIT_MASK_SDIO_H2C_MSG)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_PAPE_WLBT_SEL BIT(29)
-#define BIT_LNAON_WLBT_SEL BIT(28)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_BTGP_GPG3_FEN BIT(26)
-#define BIT_BTGP_GPG2_FEN BIT(25)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_BTGP_JTAG_EN BIT(24)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_XTAL_CLK_EXTARNAL_EN BIT(23)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_BTGP_UART0_EN BIT(22)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_BTGP_UART1_EN BIT(21)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_BTGP_SPI_EN BIT(20)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_BTGP_GPIO_E2 BIT(19)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_BTGP_GPIO_EN BIT(18)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_SHIFT_BTGP_GPIO_SL 16
-#define BIT_MASK_BTGP_GPIO_SL 0x3
-#define BIT_BTGP_GPIO_SL(x)                                                    \
-	(((x) & BIT_MASK_BTGP_GPIO_SL) << BIT_SHIFT_BTGP_GPIO_SL)
-#define BIT_GET_BTGP_GPIO_SL(x)                                                \
-	(((x) >> BIT_SHIFT_BTGP_GPIO_SL) & BIT_MASK_BTGP_GPIO_SL)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_PAD_SDIO_SR BIT(14)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_GPIO14_OUTPUT_PL BIT(13)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_HOST_WAKE_PAD_PULL_EN BIT(12)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_HOST_WAKE_PAD_SL BIT(11)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_PAD_LNAON_SR BIT(10)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_PAD_LNAON_E2 BIT(9)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_SW_LNAON_G_SEL_DATA BIT(8)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_SW_LNAON_A_SEL_DATA BIT(7)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_PAD_PAPE_SR BIT(6)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_PAD_PAPE_E2 BIT(5)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_SW_PAPE_G_SEL_DATA BIT(4)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_SW_PAPE_A_SEL_DATA BIT(3)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_PAD_DPDT_SR BIT(2)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_PAD_DPDT_PAD_E2 BIT(1)
-
-/* 2 REG_PAD_CTRL1				(Offset 0x0064) */
-
-#define BIT_SW_DPDT_SEL_DATA BIT(0)
-
-/* 2 REG_SDIO_C2H				(Offset 0x10250064) */
-
-#define BIT_SHIFT_SDIO_C2H_MSG 0
-#define BIT_MASK_SDIO_C2H_MSG 0xffffffffL
-#define BIT_SDIO_C2H_MSG(x)                                                    \
-	(((x) & BIT_MASK_SDIO_C2H_MSG) << BIT_SHIFT_SDIO_C2H_MSG)
-#define BIT_GET_SDIO_C2H_MSG(x)                                                \
-	(((x) >> BIT_SHIFT_SDIO_C2H_MSG) & BIT_MASK_SDIO_C2H_MSG)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_ISO_BD2PP BIT(31)
-#define BIT_LDOV12B_EN BIT(30)
-#define BIT_CKEN_BTGPS BIT(29)
-#define BIT_FEN_BTGPS BIT(28)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_MULRW BIT(27)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_BTCPU_BOOTSEL BIT(27)
-#define BIT_SPI_SPEEDUP BIT(26)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_DEVWAKE_PAD_TYPE_SEL BIT(24)
-#define BIT_CLKREQ_PAD_TYPE_SEL BIT(23)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_EN_CPL_TIMEOUT_PS BIT(22)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_ISO_BTPON2PP BIT(22)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_REG_TXDMA_FAIL_PS BIT(21)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_EN_HWENTR_L1 BIT(19)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_BT_HWROF_EN BIT(19)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_EN_ADV_CLKGATE BIT(18)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_BT_FUNC_EN BIT(18)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_BT_HWPDN_SL BIT(17)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_BT_DISN_EN BIT(16)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_BT_PDN_PULL_EN BIT(15)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_WL_PDN_PULL_EN BIT(14)
-#define BIT_EXTERNAL_REQUEST_PL BIT(13)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_GPIO0_2_3_PULL_LOW_EN BIT(12)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_ISO_BA2PP BIT(11)
-#define BIT_BT_AFE_LDO_EN BIT(10)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_BT_AFE_PLL_EN BIT(9)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_BT_DIG_CLK_EN BIT(8)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_WL_DRV_EXIST_IDX BIT(5)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_DOP_EHPAD BIT(4)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_WL_HWROF_EN BIT(3)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_WL_FUNC_EN BIT(2)
-
-/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */
-
-#define BIT_WL_HWPDN_SL BIT(1)
-#define BIT_WL_HWPDN_EN BIT(0)
-
-/* 2 REG_SDM_DEBUG				(Offset 0x006C) */
-
-#define BIT_SHIFT_WLCLK_PHASE 0
-#define BIT_MASK_WLCLK_PHASE 0x1f
-#define BIT_WLCLK_PHASE(x)                                                     \
-	(((x) & BIT_MASK_WLCLK_PHASE) << BIT_SHIFT_WLCLK_PHASE)
-#define BIT_GET_WLCLK_PHASE(x)                                                 \
-	(((x) >> BIT_SHIFT_WLCLK_PHASE) & BIT_MASK_WLCLK_PHASE)
-
-/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */
-
-#define BIT_DBG_GNT_WL_BT BIT(27)
-
-/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */
-
-#define BIT_LTE_MUX_CTRL_PATH BIT(26)
-
-/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */
-
-#define BIT_LTE_COEX_UART BIT(25)
-
-/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */
-
-#define BIT_3W_LTE_WL_GPIO BIT(24)
-
-/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */
-
-#define BIT_SDIO_INT_POLARITY BIT(19)
-#define BIT_SDIO_INT BIT(18)
-
-/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */
-
-#define BIT_SDIO_OFF_EN BIT(17)
-
-/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */
-
-#define BIT_SDIO_ON_EN BIT(16)
-
-/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */
-
-#define BIT_PCIE_WAIT_TIMEOUT_EVENT BIT(10)
-#define BIT_PCIE_WAIT_TIME BIT(9)
-
-/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */
-
-#define BIT_MPCIE_REFCLK_XTAL_SEL BIT(8)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_SHIFT_TSFT_SEL 29
-#define BIT_MASK_TSFT_SEL 0x7
-#define BIT_TSFT_SEL(x) (((x) & BIT_MASK_TSFT_SEL) << BIT_SHIFT_TSFT_SEL)
-#define BIT_GET_TSFT_SEL(x) (((x) >> BIT_SHIFT_TSFT_SEL) & BIT_MASK_TSFT_SEL)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_SHIFT_RPWM 24
-#define BIT_MASK_RPWM 0xff
-#define BIT_RPWM(x) (((x) & BIT_MASK_RPWM) << BIT_SHIFT_RPWM)
-#define BIT_GET_RPWM(x) (((x) >> BIT_SHIFT_RPWM) & BIT_MASK_RPWM)
-
-#define BIT_ROM_DLEN BIT(19)
-
-#define BIT_SHIFT_ROM_PGE 16
-#define BIT_MASK_ROM_PGE 0x7
-#define BIT_ROM_PGE(x) (((x) & BIT_MASK_ROM_PGE) << BIT_SHIFT_ROM_PGE)
-#define BIT_GET_ROM_PGE(x) (((x) >> BIT_SHIFT_ROM_PGE) & BIT_MASK_ROM_PGE)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_USB_HOST_PWR_OFF_EN BIT(12)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_SYM_LPS_BLOCK_EN BIT(11)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_USB_LPM_ACT_EN BIT(10)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_USB_LPM_NY BIT(9)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_USB_SUS_DIS BIT(8)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_SHIFT_SDIO_PAD_E 5
-#define BIT_MASK_SDIO_PAD_E 0x7
-#define BIT_SDIO_PAD_E(x) (((x) & BIT_MASK_SDIO_PAD_E) << BIT_SHIFT_SDIO_PAD_E)
-#define BIT_GET_SDIO_PAD_E(x)                                                  \
-	(((x) >> BIT_SHIFT_SDIO_PAD_E) & BIT_MASK_SDIO_PAD_E)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_USB_LPPLL_EN BIT(4)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_ROP_SW15 BIT(2)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_PCI_CKRDY_OPT BIT(1)
-
-/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */
-
-#define BIT_PCI_VAUX_EN BIT(0)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_ZCD_HW_AUTO_EN BIT(27)
-#define BIT_ZCD_REGSEL BIT(26)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_SHIFT_AUTO_ZCD_IN_CODE 21
-#define BIT_MASK_AUTO_ZCD_IN_CODE 0x1f
-#define BIT_AUTO_ZCD_IN_CODE(x)                                                \
-	(((x) & BIT_MASK_AUTO_ZCD_IN_CODE) << BIT_SHIFT_AUTO_ZCD_IN_CODE)
-#define BIT_GET_AUTO_ZCD_IN_CODE(x)                                            \
-	(((x) >> BIT_SHIFT_AUTO_ZCD_IN_CODE) & BIT_MASK_AUTO_ZCD_IN_CODE)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_SHIFT_ZCD_CODE_IN_L 16
-#define BIT_MASK_ZCD_CODE_IN_L 0x1f
-#define BIT_ZCD_CODE_IN_L(x)                                                   \
-	(((x) & BIT_MASK_ZCD_CODE_IN_L) << BIT_SHIFT_ZCD_CODE_IN_L)
-#define BIT_GET_ZCD_CODE_IN_L(x)                                               \
-	(((x) >> BIT_SHIFT_ZCD_CODE_IN_L) & BIT_MASK_ZCD_CODE_IN_L)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_SHIFT_LDO_HV5_DUMMY 14
-#define BIT_MASK_LDO_HV5_DUMMY 0x3
-#define BIT_LDO_HV5_DUMMY(x)                                                   \
-	(((x) & BIT_MASK_LDO_HV5_DUMMY) << BIT_SHIFT_LDO_HV5_DUMMY)
-#define BIT_GET_LDO_HV5_DUMMY(x)                                               \
-	(((x) >> BIT_SHIFT_LDO_HV5_DUMMY) & BIT_MASK_LDO_HV5_DUMMY)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1 12
-#define BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1 0x3
-#define BIT_REG_VTUNE33_BIT0_TO_BIT1(x)                                        \
-	(((x) & BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1)                             \
-	 << BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1)
-#define BIT_GET_REG_VTUNE33_BIT0_TO_BIT1(x)                                    \
-	(((x) >> BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1) &                         \
-	 BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1 10
-#define BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1 0x3
-#define BIT_REG_STANDBY33_BIT0_TO_BIT1(x)                                      \
-	(((x) & BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1)                           \
-	 << BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1)
-#define BIT_GET_REG_STANDBY33_BIT0_TO_BIT1(x)                                  \
-	(((x) >> BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1) &                       \
-	 BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1 8
-#define BIT_MASK_REG_LOAD33_BIT0_TO_BIT1 0x3
-#define BIT_REG_LOAD33_BIT0_TO_BIT1(x)                                         \
-	(((x) & BIT_MASK_REG_LOAD33_BIT0_TO_BIT1)                              \
-	 << BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1)
-#define BIT_GET_REG_LOAD33_BIT0_TO_BIT1(x)                                     \
-	(((x) >> BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1) &                          \
-	 BIT_MASK_REG_LOAD33_BIT0_TO_BIT1)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_REG_BYPASS_L BIT(7)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_REG_LDOF_L BIT(6)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_REG_TYPE_L_V1 BIT(5)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_ARENB_L BIT(3)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_SHIFT_CFC_L 1
-#define BIT_MASK_CFC_L 0x3
-#define BIT_CFC_L(x) (((x) & BIT_MASK_CFC_L) << BIT_SHIFT_CFC_L)
-#define BIT_GET_CFC_L(x) (((x) >> BIT_SHIFT_CFC_L) & BIT_MASK_CFC_L)
-
-/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */
-
-#define BIT_REG_OCPS_L_V1 BIT(0)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_ANA_PORT_EN BIT(22)
-#define BIT_MAC_PORT_EN BIT(21)
-#define BIT_BOOT_FSPI_EN BIT(20)
-#define BIT_FW_INIT_RDY BIT(15)
-#define BIT_FW_DW_RDY BIT(14)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_SHIFT_CPU_CLK_SEL 12
-#define BIT_MASK_CPU_CLK_SEL 0x3
-#define BIT_CPU_CLK_SEL(x)                                                     \
-	(((x) & BIT_MASK_CPU_CLK_SEL) << BIT_SHIFT_CPU_CLK_SEL)
-#define BIT_GET_CPU_CLK_SEL(x)                                                 \
-	(((x) >> BIT_SHIFT_CPU_CLK_SEL) & BIT_MASK_CPU_CLK_SEL)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_CCLK_CHG_MASK BIT(11)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_EMEM__TXBUF_CHKSUM_OK BIT(10)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_EMEM_TXBUF_DW_RDY BIT(9)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_EMEM_CHKSUM_OK BIT(8)
-#define BIT_EMEM_DW_OK BIT(7)
-#define BIT_TOGGLING BIT(7)
-#define BIT_DMEM_CHKSUM_OK BIT(6)
-#define BIT_ACK BIT(6)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_DMEM_DW_OK BIT(5)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_IMEM_CHKSUM_OK BIT(4)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_IMEM_DW_OK BIT(3)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_IMEM_BOOT_LOAD_CHKSUM_OK BIT(2)
-
-/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */
-
-#define BIT_IMEM_BOOT_LOAD_DW_OK BIT(1)
-
-/* 2 REG_SDIO_HRPWM1				(Offset 0x10250080) */
-
-#define BIT_32K_PERMISSION BIT(0)
-
-/* 2 REG_MCU_TST_CFG				(Offset 0x0084) */
-
-#define BIT_SHIFT_LBKTST 0
-#define BIT_MASK_LBKTST 0xffff
-#define BIT_LBKTST(x) (((x) & BIT_MASK_LBKTST) << BIT_SHIFT_LBKTST)
-#define BIT_GET_LBKTST(x) (((x) >> BIT_SHIFT_LBKTST) & BIT_MASK_LBKTST)
-
-/* 2 REG_SDIO_BUS_CTRL			(Offset 0x10250085) */
-
-#define BIT_PAD_CLK_XHGE_EN BIT(3)
-#define BIT_INTER_CLK_EN BIT(2)
-#define BIT_EN_RPT_TXCRC BIT(1)
-#define BIT_DIS_RXDMA_STS BIT(0)
-
-/* 2 REG_SDIO_HSUS_CTRL			(Offset 0x10250086) */
-
-#define BIT_INTR_CTRL BIT(4)
-#define BIT_SDIO_VOLTAGE BIT(3)
-#define BIT_BYPASS_INIT BIT(2)
-
-/* 2 REG_SDIO_HSUS_CTRL			(Offset 0x10250086) */
-
-#define BIT_HCI_RESUME_RDY BIT(1)
-#define BIT_HCI_SUS_REQ BIT(0)
-
-/* 2 REG_HMEBOX_E0_E1			(Offset 0x0088) */
-
-#define BIT_SHIFT_HOST_MSG_E1 16
-#define BIT_MASK_HOST_MSG_E1 0xffff
-#define BIT_HOST_MSG_E1(x)                                                     \
-	(((x) & BIT_MASK_HOST_MSG_E1) << BIT_SHIFT_HOST_MSG_E1)
-#define BIT_GET_HOST_MSG_E1(x)                                                 \
-	(((x) >> BIT_SHIFT_HOST_MSG_E1) & BIT_MASK_HOST_MSG_E1)
-
-#define BIT_SHIFT_HOST_MSG_E0 0
-#define BIT_MASK_HOST_MSG_E0 0xffff
-#define BIT_HOST_MSG_E0(x)                                                     \
-	(((x) & BIT_MASK_HOST_MSG_E0) << BIT_SHIFT_HOST_MSG_E0)
-#define BIT_GET_HOST_MSG_E0(x)                                                 \
-	(((x) >> BIT_SHIFT_HOST_MSG_E0) & BIT_MASK_HOST_MSG_E0)
-
-/* 2 REG_SDIO_RESPONSE_TIMER			(Offset 0x10250088) */
-
-#define BIT_SHIFT_CMDIN_2RESP_TIMER 0
-#define BIT_MASK_CMDIN_2RESP_TIMER 0xffff
-#define BIT_CMDIN_2RESP_TIMER(x)                                               \
-	(((x) & BIT_MASK_CMDIN_2RESP_TIMER) << BIT_SHIFT_CMDIN_2RESP_TIMER)
-#define BIT_GET_CMDIN_2RESP_TIMER(x)                                           \
-	(((x) >> BIT_SHIFT_CMDIN_2RESP_TIMER) & BIT_MASK_CMDIN_2RESP_TIMER)
-
-/* 2 REG_SDIO_CMD_CRC			(Offset 0x1025008A) */
-
-#define BIT_SHIFT_SDIO_CMD_CRC_V1 0
-#define BIT_MASK_SDIO_CMD_CRC_V1 0xff
-#define BIT_SDIO_CMD_CRC_V1(x)                                                 \
-	(((x) & BIT_MASK_SDIO_CMD_CRC_V1) << BIT_SHIFT_SDIO_CMD_CRC_V1)
-#define BIT_GET_SDIO_CMD_CRC_V1(x)                                             \
-	(((x) >> BIT_SHIFT_SDIO_CMD_CRC_V1) & BIT_MASK_SDIO_CMD_CRC_V1)
-
-/* 2 REG_HMEBOX_E2_E3			(Offset 0x008C) */
-
-#define BIT_SHIFT_HOST_MSG_E3 16
-#define BIT_MASK_HOST_MSG_E3 0xffff
-#define BIT_HOST_MSG_E3(x)                                                     \
-	(((x) & BIT_MASK_HOST_MSG_E3) << BIT_SHIFT_HOST_MSG_E3)
-#define BIT_GET_HOST_MSG_E3(x)                                                 \
-	(((x) >> BIT_SHIFT_HOST_MSG_E3) & BIT_MASK_HOST_MSG_E3)
-
-#define BIT_SHIFT_HOST_MSG_E2 0
-#define BIT_MASK_HOST_MSG_E2 0xffff
-#define BIT_HOST_MSG_E2(x)                                                     \
-	(((x) & BIT_MASK_HOST_MSG_E2) << BIT_SHIFT_HOST_MSG_E2)
-#define BIT_GET_HOST_MSG_E2(x)                                                 \
-	(((x) >> BIT_SHIFT_HOST_MSG_E2) & BIT_MASK_HOST_MSG_E2)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WLLPSOP_EABM BIT(31)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WLLPSOP_ACKF BIT(30)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WLLPSOP_DLDM BIT(29)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WLLPSOP_ESWR BIT(28)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WLLPSOP_PWMM BIT(27)
-#define BIT_WLLPSOP_EECK BIT(26)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WLLPSOP_WLMACOFF BIT(25)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WLLPSOP_EXTAL BIT(24)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WL_SYNPON_VOLTSPDN BIT(23)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WLLPSOP_WLBBOFF BIT(22)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WLLPSOP_WLMEM_DS BIT(21)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_SHIFT_LPLDH12_VADJ_STEP_DN 12
-#define BIT_MASK_LPLDH12_VADJ_STEP_DN 0xf
-#define BIT_LPLDH12_VADJ_STEP_DN(x)                                            \
-	(((x) & BIT_MASK_LPLDH12_VADJ_STEP_DN)                                 \
-	 << BIT_SHIFT_LPLDH12_VADJ_STEP_DN)
-#define BIT_GET_LPLDH12_VADJ_STEP_DN(x)                                        \
-	(((x) >> BIT_SHIFT_LPLDH12_VADJ_STEP_DN) &                             \
-	 BIT_MASK_LPLDH12_VADJ_STEP_DN)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_SHIFT_V15ADJ_L1_STEP_DN 8
-#define BIT_MASK_V15ADJ_L1_STEP_DN 0x7
-#define BIT_V15ADJ_L1_STEP_DN(x)                                               \
-	(((x) & BIT_MASK_V15ADJ_L1_STEP_DN) << BIT_SHIFT_V15ADJ_L1_STEP_DN)
-#define BIT_GET_V15ADJ_L1_STEP_DN(x)                                           \
-	(((x) >> BIT_SHIFT_V15ADJ_L1_STEP_DN) & BIT_MASK_V15ADJ_L1_STEP_DN)
-
-#define BIT_REGU_32K_CLK_EN BIT(1)
-#define BIT_DRV_WLAN_INT_CLR BIT(1)
-
-/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */
-
-#define BIT_WL_LPS_EN BIT(0)
-
-/* 2 REG_SDIO_HSISR				(Offset 0x10250090) */
-
-#define BIT_DRV_WLAN_INT BIT(0)
-
-/* 2 REG_SDIO_HSIMR				(Offset 0x10250091) */
-
-#define BIT_HISR_MASK BIT(0)
-
-/* 2 REG_AFE_CTRL5				(Offset 0x0094) */
-
-#define BIT_BB_DBG_SEL_AFE_SDM_BIT0 BIT(31)
-
-/* 2 REG_AFE_CTRL5				(Offset 0x0094) */
-
-#define BIT_ORDER_SDM BIT(30)
-#define BIT_RFE_SEL_SDM BIT(29)
-
-#define BIT_SHIFT_REF_SEL 25
-#define BIT_MASK_REF_SEL 0xf
-#define BIT_REF_SEL(x) (((x) & BIT_MASK_REF_SEL) << BIT_SHIFT_REF_SEL)
-#define BIT_GET_REF_SEL(x) (((x) >> BIT_SHIFT_REF_SEL) & BIT_MASK_REF_SEL)
-
-/* 2 REG_AFE_CTRL5				(Offset 0x0094) */
-
-#define BIT_SHIFT_F0F_SDM 12
-#define BIT_MASK_F0F_SDM 0x1fff
-#define BIT_F0F_SDM(x) (((x) & BIT_MASK_F0F_SDM) << BIT_SHIFT_F0F_SDM)
-#define BIT_GET_F0F_SDM(x) (((x) >> BIT_SHIFT_F0F_SDM) & BIT_MASK_F0F_SDM)
-
-/* 2 REG_AFE_CTRL5				(Offset 0x0094) */
-
-#define BIT_SHIFT_F0N_SDM 9
-#define BIT_MASK_F0N_SDM 0x7
-#define BIT_F0N_SDM(x) (((x) & BIT_MASK_F0N_SDM) << BIT_SHIFT_F0N_SDM)
-#define BIT_GET_F0N_SDM(x) (((x) >> BIT_SHIFT_F0N_SDM) & BIT_MASK_F0N_SDM)
-
-/* 2 REG_AFE_CTRL5				(Offset 0x0094) */
-
-#define BIT_SHIFT_DIVN_SDM 3
-#define BIT_MASK_DIVN_SDM 0x3f
-#define BIT_DIVN_SDM(x) (((x) & BIT_MASK_DIVN_SDM) << BIT_SHIFT_DIVN_SDM)
-#define BIT_GET_DIVN_SDM(x) (((x) >> BIT_SHIFT_DIVN_SDM) & BIT_MASK_DIVN_SDM)
-
-/* 2 REG_GPIO_DEBOUNCE_CTRL			(Offset 0x0098) */
-
-#define BIT_WLGP_DBC1EN BIT(15)
-
-#define BIT_SHIFT_WLGP_DBC1 8
-#define BIT_MASK_WLGP_DBC1 0xf
-#define BIT_WLGP_DBC1(x) (((x) & BIT_MASK_WLGP_DBC1) << BIT_SHIFT_WLGP_DBC1)
-#define BIT_GET_WLGP_DBC1(x) (((x) >> BIT_SHIFT_WLGP_DBC1) & BIT_MASK_WLGP_DBC1)
-
-#define BIT_WLGP_DBC0EN BIT(7)
-
-#define BIT_SHIFT_WLGP_DBC0 0
-#define BIT_MASK_WLGP_DBC0 0xf
-#define BIT_WLGP_DBC0(x) (((x) & BIT_MASK_WLGP_DBC0) << BIT_SHIFT_WLGP_DBC0)
-#define BIT_GET_WLGP_DBC0(x) (((x) >> BIT_SHIFT_WLGP_DBC0) & BIT_MASK_WLGP_DBC0)
-
-/* 2 REG_RPWM2				(Offset 0x009C) */
-
-#define BIT_SHIFT_RPWM2 16
-#define BIT_MASK_RPWM2 0xffff
-#define BIT_RPWM2(x) (((x) & BIT_MASK_RPWM2) << BIT_SHIFT_RPWM2)
-#define BIT_GET_RPWM2(x) (((x) >> BIT_SHIFT_RPWM2) & BIT_MASK_RPWM2)
-
-/* 2 REG_SYSON_FSM_MON			(Offset 0x00A0) */
-
-#define BIT_SHIFT_FSM_MON_SEL 24
-#define BIT_MASK_FSM_MON_SEL 0x7
-#define BIT_FSM_MON_SEL(x)                                                     \
-	(((x) & BIT_MASK_FSM_MON_SEL) << BIT_SHIFT_FSM_MON_SEL)
-#define BIT_GET_FSM_MON_SEL(x)                                                 \
-	(((x) >> BIT_SHIFT_FSM_MON_SEL) & BIT_MASK_FSM_MON_SEL)
-
-#define BIT_DOP_ELDO BIT(23)
-#define BIT_FSM_MON_UPD BIT(15)
-
-#define BIT_SHIFT_FSM_PAR 0
-#define BIT_MASK_FSM_PAR 0x7fff
-#define BIT_FSM_PAR(x) (((x) & BIT_MASK_FSM_PAR) << BIT_SHIFT_FSM_PAR)
-#define BIT_GET_FSM_PAR(x) (((x) >> BIT_SHIFT_FSM_PAR) & BIT_MASK_FSM_PAR)
-
-/* 2 REG_AFE_CTRL6				(Offset 0x00A4) */
-
-#define BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1 0
-#define BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1 0x7
-#define BIT_BB_DBG_SEL_AFE_SDM_BIT3_1(x)                                       \
-	(((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1)                            \
-	 << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1)
-#define BIT_GET_BB_DBG_SEL_AFE_SDM_BIT3_1(x)                                   \
-	(((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1) &                        \
-	 BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1)
-
-/* 2 REG_PMC_DBG_CTRL1			(Offset 0x00A8) */
-
-#define BIT_BT_INT_EN BIT(31)
-
-#define BIT_SHIFT_RD_WR_WIFI_BT_INFO 16
-#define BIT_MASK_RD_WR_WIFI_BT_INFO 0x7fff
-#define BIT_RD_WR_WIFI_BT_INFO(x)                                              \
-	(((x) & BIT_MASK_RD_WR_WIFI_BT_INFO) << BIT_SHIFT_RD_WR_WIFI_BT_INFO)
-#define BIT_GET_RD_WR_WIFI_BT_INFO(x)                                          \
-	(((x) >> BIT_SHIFT_RD_WR_WIFI_BT_INFO) & BIT_MASK_RD_WR_WIFI_BT_INFO)
-
-/* 2 REG_PMC_DBG_CTRL1			(Offset 0x00A8) */
-
-#define BIT_PMC_WR_OVF BIT(8)
-
-#define BIT_SHIFT_WLPMC_ERRINT 0
-#define BIT_MASK_WLPMC_ERRINT 0xff
-#define BIT_WLPMC_ERRINT(x)                                                    \
-	(((x) & BIT_MASK_WLPMC_ERRINT) << BIT_SHIFT_WLPMC_ERRINT)
-#define BIT_GET_WLPMC_ERRINT(x)                                                \
-	(((x) >> BIT_SHIFT_WLPMC_ERRINT) & BIT_MASK_WLPMC_ERRINT)
-
-/* 2 REG_AFE_CTRL7				(Offset 0x00AC) */
-
-#define BIT_SHIFT_SEL_V 30
-#define BIT_MASK_SEL_V 0x3
-#define BIT_SEL_V(x) (((x) & BIT_MASK_SEL_V) << BIT_SHIFT_SEL_V)
-#define BIT_GET_SEL_V(x) (((x) >> BIT_SHIFT_SEL_V) & BIT_MASK_SEL_V)
-
-/* 2 REG_AFE_CTRL7				(Offset 0x00AC) */
-
-#define BIT_TXFIFO_TH_INT BIT(30)
-
-/* 2 REG_AFE_CTRL7				(Offset 0x00AC) */
-
-#define BIT_SEL_LDO_PC BIT(29)
-
-/* 2 REG_AFE_CTRL7				(Offset 0x00AC) */
-
-#define BIT_SHIFT_CK_MON_SEL 26
-#define BIT_MASK_CK_MON_SEL 0x7
-#define BIT_CK_MON_SEL(x) (((x) & BIT_MASK_CK_MON_SEL) << BIT_SHIFT_CK_MON_SEL)
-#define BIT_GET_CK_MON_SEL(x)                                                  \
-	(((x) >> BIT_SHIFT_CK_MON_SEL) & BIT_MASK_CK_MON_SEL)
-
-/* 2 REG_AFE_CTRL7				(Offset 0x00AC) */
-
-#define BIT_CK_MON_EN BIT(25)
-#define BIT_FREF_EDGE BIT(24)
-#define BIT_CK320M_EN BIT(23)
-#define BIT_CK_5M_EN BIT(22)
-#define BIT_TESTEN BIT(21)
-
-/* 2 REG_HIMR0				(Offset 0x00B0) */
-
-#define BIT_TIMEOUT_INTERRUPT2_MASK BIT(31)
-#define BIT_TIMEOUT_INTERRUTP1_MASK BIT(30)
-#define BIT_PSTIMEOUT_MSK BIT(29)
-#define BIT_GTINT4_MSK BIT(28)
-#define BIT_GTINT3_MSK BIT(27)
-#define BIT_TXBCN0ERR_MSK BIT(26)
-#define BIT_TXBCN0OK_MSK BIT(25)
-#define BIT_TSF_BIT32_TOGGLE_MSK BIT(24)
-#define BIT_BCNDMAINT0_MSK BIT(20)
-#define BIT_BCNDERR0_MSK BIT(16)
-#define BIT_HSISR_IND_ON_INT_MSK BIT(15)
-
-/* 2 REG_HIMR0				(Offset 0x00B0) */
-
-#define BIT_BCNDMAINT_E_MSK BIT(14)
-
-/* 2 REG_HIMR0				(Offset 0x00B0) */
-
-#define BIT_CTWEND_MSK BIT(12)
-#define BIT_HISR1_IND_MSK BIT(11)
-
-/* 2 REG_HIMR0				(Offset 0x00B0) */
-
-#define BIT_C2HCMD_MSK BIT(10)
-#define BIT_CPWM2_MSK BIT(9)
-#define BIT_CPWM_MSK BIT(8)
-#define BIT_HIGHDOK_MSK BIT(7)
-#define BIT_MGTDOK_MSK BIT(6)
-#define BIT_BKDOK_MSK BIT(5)
-#define BIT_BEDOK_MSK BIT(4)
-#define BIT_VIDOK_MSK BIT(3)
-#define BIT_VODOK_MSK BIT(2)
-#define BIT_RDU_MSK BIT(1)
-#define BIT_RXOK_MSK BIT(0)
-
-/* 2 REG_HISR0				(Offset 0x00B4) */
-
-#define BIT_TIMEOUT_INTERRUPT2 BIT(31)
-
-/* 2 REG_HISR0				(Offset 0x00B4) */
-
-#define BIT_TIMEOUT_INTERRUTP1 BIT(30)
-
-/* 2 REG_HISR0				(Offset 0x00B4) */
-
-#define BIT_PSTIMEOUT BIT(29)
-#define BIT_GTINT4 BIT(28)
-#define BIT_GTINT3 BIT(27)
-#define BIT_TXBCN0ERR BIT(26)
-#define BIT_TXBCN0OK BIT(25)
-#define BIT_TSF_BIT32_TOGGLE BIT(24)
-#define BIT_BCNDMAINT0 BIT(20)
-#define BIT_BCNDERR0 BIT(16)
-#define BIT_HSISR_IND_ON_INT BIT(15)
-
-/* 2 REG_HISR0				(Offset 0x00B4) */
-
-#define BIT_BCNDMAINT_E BIT(14)
-
-/* 2 REG_HISR0				(Offset 0x00B4) */
-
-#define BIT_CTWEND BIT(12)
-
-/* 2 REG_HISR0				(Offset 0x00B4) */
-
-#define BIT_HISR1_IND_INT BIT(11)
-#define BIT_C2HCMD BIT(10)
-#define BIT_CPWM2 BIT(9)
-#define BIT_CPWM BIT(8)
-#define BIT_HIGHDOK BIT(7)
-#define BIT_MGTDOK BIT(6)
-#define BIT_BKDOK BIT(5)
-#define BIT_BEDOK BIT(4)
-#define BIT_VIDOK BIT(3)
-#define BIT_VODOK BIT(2)
-#define BIT_RDU BIT(1)
-#define BIT_RXOK BIT(0)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_BTON_STS_UPDATE_MASK BIT(29)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_MCU_ERR_MASK BIT(28)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_BCNDMAINT7__MSK BIT(27)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_BCNDMAINT6__MSK BIT(26)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_BCNDMAINT5__MSK BIT(25)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_BCNDMAINT4__MSK BIT(24)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_BCNDMAINT3_MSK BIT(23)
-#define BIT_BCNDMAINT2_MSK BIT(22)
-#define BIT_BCNDMAINT1_MSK BIT(21)
-#define BIT_BCNDERR7_MSK BIT(20)
-#define BIT_BCNDERR6_MSK BIT(19)
-#define BIT_BCNDERR5_MSK BIT(18)
-#define BIT_BCNDERR4_MSK BIT(17)
-#define BIT_BCNDERR3_MSK BIT(16)
-#define BIT_BCNDERR2_MSK BIT(15)
-#define BIT_BCNDERR1_MSK BIT(14)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_ATIMEND_E_MSK BIT(13)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_ATIMEND__MSK BIT(12)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_TXERR_MSK BIT(11)
-#define BIT_RXERR_MSK BIT(10)
-#define BIT_TXFOVW_MSK BIT(9)
-#define BIT_FOVW_MSK BIT(8)
-
-/* 2 REG_HIMR1				(Offset 0x00B8) */
-
-#define BIT_CPU_MGQ_TXDONE_MSK BIT(5)
-#define BIT_PS_TIMER_C_MSK BIT(4)
-#define BIT_PS_TIMER_B_MSK BIT(3)
-#define BIT_PS_TIMER_A_MSK BIT(2)
-#define BIT_CPUMGQ_TX_TIMER_MSK BIT(1)
-
-/* 2 REG_HISR1				(Offset 0x00BC) */
-
-#define BIT_BTON_STS_UPDATE_INT BIT(29)
-
-/* 2 REG_HISR1				(Offset 0x00BC) */
-
-#define BIT_MCU_ERR BIT(28)
-
-/* 2 REG_HISR1				(Offset 0x00BC) */
-
-#define BIT_BCNDMAINT7 BIT(27)
-#define BIT_BCNDMAINT6 BIT(26)
-#define BIT_BCNDMAINT5 BIT(25)
-#define BIT_BCNDMAINT4 BIT(24)
-#define BIT_BCNDMAINT3 BIT(23)
-#define BIT_BCNDMAINT2 BIT(22)
-#define BIT_BCNDMAINT1 BIT(21)
-#define BIT_BCNDERR7 BIT(20)
-#define BIT_BCNDERR6 BIT(19)
-#define BIT_BCNDERR5 BIT(18)
-#define BIT_BCNDERR4 BIT(17)
-#define BIT_BCNDERR3 BIT(16)
-#define BIT_BCNDERR2 BIT(15)
-#define BIT_BCNDERR1 BIT(14)
-
-/* 2 REG_HISR1				(Offset 0x00BC) */
-
-#define BIT_ATIMEND_E BIT(13)
-
-/* 2 REG_HISR1				(Offset 0x00BC) */
-
-#define BIT_ATIMEND BIT(12)
-#define BIT_TXERR_INT BIT(11)
-#define BIT_RXERR_INT BIT(10)
-#define BIT_TXFOVW BIT(9)
-#define BIT_FOVW BIT(8)
-
-/* 2 REG_HISR1				(Offset 0x00BC) */
-
-#define BIT_CPU_MGQ_TXDONE BIT(5)
-#define BIT_PS_TIMER_C BIT(4)
-#define BIT_PS_TIMER_B BIT(3)
-#define BIT_PS_TIMER_A BIT(2)
-#define BIT_CPUMGQ_TX_TIMER BIT(1)
-
-/* 2 REG_SDIO_ERR_RPT			(Offset 0x102500C0) */
-
-#define BIT_HR_FF_OVF BIT(6)
-#define BIT_HR_FF_UDN BIT(5)
-#define BIT_TXDMA_BUSY_ERR BIT(4)
-#define BIT_TXDMA_VLD_ERR BIT(3)
-#define BIT_QSEL_UNKNOWN_ERR BIT(2)
-#define BIT_QSEL_MIS_ERR BIT(1)
-
-/* 2 REG_DBG_PORT_SEL			(Offset 0x00C0) */
-
-#define BIT_SHIFT_DEBUG_ST 0
-#define BIT_MASK_DEBUG_ST 0xffffffffL
-#define BIT_DEBUG_ST(x) (((x) & BIT_MASK_DEBUG_ST) << BIT_SHIFT_DEBUG_ST)
-#define BIT_GET_DEBUG_ST(x) (((x) >> BIT_SHIFT_DEBUG_ST) & BIT_MASK_DEBUG_ST)
-
-/* 2 REG_SDIO_ERR_RPT			(Offset 0x102500C0) */
-
-#define BIT_SDIO_OVERRD_ERR BIT(0)
-
-/* 2 REG_SDIO_CMD_ERRCNT			(Offset 0x102500C1) */
-
-#define BIT_SHIFT_CMD_CRC_ERR_CNT 0
-#define BIT_MASK_CMD_CRC_ERR_CNT 0xff
-#define BIT_CMD_CRC_ERR_CNT(x)                                                 \
-	(((x) & BIT_MASK_CMD_CRC_ERR_CNT) << BIT_SHIFT_CMD_CRC_ERR_CNT)
-#define BIT_GET_CMD_CRC_ERR_CNT(x)                                             \
-	(((x) >> BIT_SHIFT_CMD_CRC_ERR_CNT) & BIT_MASK_CMD_CRC_ERR_CNT)
-
-/* 2 REG_SDIO_DATA_ERRCNT			(Offset 0x102500C2) */
-
-#define BIT_SHIFT_DATA_CRC_ERR_CNT 0
-#define BIT_MASK_DATA_CRC_ERR_CNT 0xff
-#define BIT_DATA_CRC_ERR_CNT(x)                                                \
-	(((x) & BIT_MASK_DATA_CRC_ERR_CNT) << BIT_SHIFT_DATA_CRC_ERR_CNT)
-#define BIT_GET_DATA_CRC_ERR_CNT(x)                                            \
-	(((x) >> BIT_SHIFT_DATA_CRC_ERR_CNT) & BIT_MASK_DATA_CRC_ERR_CNT)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_USB3_USB2_TRANSITION BIT(20)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_SHIFT_USB23_SW_MODE_V1 18
-#define BIT_MASK_USB23_SW_MODE_V1 0x3
-#define BIT_USB23_SW_MODE_V1(x)                                                \
-	(((x) & BIT_MASK_USB23_SW_MODE_V1) << BIT_SHIFT_USB23_SW_MODE_V1)
-#define BIT_GET_USB23_SW_MODE_V1(x)                                            \
-	(((x) >> BIT_SHIFT_USB23_SW_MODE_V1) & BIT_MASK_USB23_SW_MODE_V1)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_NO_PDN_CHIPOFF_V1 BIT(17)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_RSM_EN_V1 BIT(16)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_LD_B12V_EN BIT(7)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_EECS_IOSEL_V1 BIT(6)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_EECS_DATA_O_V1 BIT(5)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_EECS_DATA_I_V1 BIT(4)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_EESK_IOSEL_V1 BIT(2)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_EESK_DATA_O_V1 BIT(1)
-
-/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */
-
-#define BIT_EESK_DATA_I_V1 BIT(0)
-
-/* 2 REG_SDIO_CMD_ERR_CONTENT		(Offset 0x102500C4) */
-
-#define BIT_SHIFT_SDIO_CMD_ERR_CONTENT 0
-#define BIT_MASK_SDIO_CMD_ERR_CONTENT 0xffffffffffL
-#define BIT_SDIO_CMD_ERR_CONTENT(x)                                            \
-	(((x) & BIT_MASK_SDIO_CMD_ERR_CONTENT)                                 \
-	 << BIT_SHIFT_SDIO_CMD_ERR_CONTENT)
-#define BIT_GET_SDIO_CMD_ERR_CONTENT(x)                                        \
-	(((x) >> BIT_SHIFT_SDIO_CMD_ERR_CONTENT) &                             \
-	 BIT_MASK_SDIO_CMD_ERR_CONTENT)
-
-/* 2 REG_SDIO_CRC_ERR_IDX			(Offset 0x102500C9) */
-
-#define BIT_D3_CRC_ERR BIT(4)
-#define BIT_D2_CRC_ERR BIT(3)
-#define BIT_D1_CRC_ERR BIT(2)
-#define BIT_D0_CRC_ERR BIT(1)
-#define BIT_CMD_CRC_ERR BIT(0)
-
-/* 2 REG_SDIO_DATA_CRC			(Offset 0x102500CA) */
-
-#define BIT_SHIFT_SDIO_DATA_CRC 0
-#define BIT_MASK_SDIO_DATA_CRC 0xff
-#define BIT_SDIO_DATA_CRC(x)                                                   \
-	(((x) & BIT_MASK_SDIO_DATA_CRC) << BIT_SHIFT_SDIO_DATA_CRC)
-#define BIT_GET_SDIO_DATA_CRC(x)                                               \
-	(((x) >> BIT_SHIFT_SDIO_DATA_CRC) & BIT_MASK_SDIO_DATA_CRC)
-
-/* 2 REG_SDIO_DATA_REPLY_TIME		(Offset 0x102500CB) */
-
-#define BIT_SHIFT_SDIO_DATA_REPLY_TIME 0
-#define BIT_MASK_SDIO_DATA_REPLY_TIME 0x7
-#define BIT_SDIO_DATA_REPLY_TIME(x)                                            \
-	(((x) & BIT_MASK_SDIO_DATA_REPLY_TIME)                                 \
-	 << BIT_SHIFT_SDIO_DATA_REPLY_TIME)
-#define BIT_GET_SDIO_DATA_REPLY_TIME(x)                                        \
-	(((x) >> BIT_SHIFT_SDIO_DATA_REPLY_TIME) &                             \
-	 BIT_MASK_SDIO_DATA_REPLY_TIME)
-
-/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */
-
-#define BIT_SHIFT_EFUSE_BURN_GNT 24
-#define BIT_MASK_EFUSE_BURN_GNT 0xff
-#define BIT_EFUSE_BURN_GNT(x)                                                  \
-	(((x) & BIT_MASK_EFUSE_BURN_GNT) << BIT_SHIFT_EFUSE_BURN_GNT)
-#define BIT_GET_EFUSE_BURN_GNT(x)                                              \
-	(((x) >> BIT_SHIFT_EFUSE_BURN_GNT) & BIT_MASK_EFUSE_BURN_GNT)
-
-/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */
-
-#define BIT_STOP_WL_PMC BIT(9)
-#define BIT_STOP_SYM_PMC BIT(8)
-
-/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */
-
-#define BIT_REG_RST_WLPMC BIT(5)
-#define BIT_REG_RST_PD12N BIT(4)
-#define BIT_SYSON_DIS_WLREG_WRMSK BIT(3)
-#define BIT_SYSON_DIS_PMCREG_WRMSK BIT(2)
-
-#define BIT_SHIFT_SYSON_REG_ARB 0
-#define BIT_MASK_SYSON_REG_ARB 0x3
-#define BIT_SYSON_REG_ARB(x)                                                   \
-	(((x) & BIT_MASK_SYSON_REG_ARB) << BIT_SHIFT_SYSON_REG_ARB)
-#define BIT_GET_SYSON_REG_ARB(x)                                               \
-	(((x) >> BIT_SHIFT_SYSON_REG_ARB) & BIT_MASK_SYSON_REG_ARB)
-
-/* 2 REG_BIST_CTRL				(Offset 0x00D0) */
-
-#define BIT_BIST_USB_DIS BIT(27)
-
-/* 2 REG_BIST_CTRL				(Offset 0x00D0) */
-
-#define BIT_BIST_PCI_DIS BIT(26)
-
-/* 2 REG_BIST_CTRL				(Offset 0x00D0) */
-
-#define BIT_BIST_BT_DIS BIT(25)
-
-/* 2 REG_BIST_CTRL				(Offset 0x00D0) */
-
-#define BIT_BIST_WL_DIS BIT(24)
-
-/* 2 REG_BIST_CTRL				(Offset 0x00D0) */
-
-#define BIT_SHIFT_BIST_RPT_SEL 16
-#define BIT_MASK_BIST_RPT_SEL 0xf
-#define BIT_BIST_RPT_SEL(x)                                                    \
-	(((x) & BIT_MASK_BIST_RPT_SEL) << BIT_SHIFT_BIST_RPT_SEL)
-#define BIT_GET_BIST_RPT_SEL(x)                                                \
-	(((x) >> BIT_SHIFT_BIST_RPT_SEL) & BIT_MASK_BIST_RPT_SEL)
-
-/* 2 REG_BIST_CTRL				(Offset 0x00D0) */
-
-#define BIT_BIST_RESUME_PS BIT(4)
-
-/* 2 REG_BIST_CTRL				(Offset 0x00D0) */
-
-#define BIT_BIST_RESUME BIT(3)
-#define BIT_BIST_NORMAL BIT(2)
-
-/* 2 REG_BIST_CTRL				(Offset 0x00D0) */
-
-#define BIT_BIST_RSTN BIT(1)
-#define BIT_BIST_CLK_EN BIT(0)
-
-/* 2 REG_BIST_RPT				(Offset 0x00D4) */
-
-#define BIT_SHIFT_MBIST_REPORT 0
-#define BIT_MASK_MBIST_REPORT 0xffffffffL
-#define BIT_MBIST_REPORT(x)                                                    \
-	(((x) & BIT_MASK_MBIST_REPORT) << BIT_SHIFT_MBIST_REPORT)
-#define BIT_GET_MBIST_REPORT(x)                                                \
-	(((x) >> BIT_SHIFT_MBIST_REPORT) & BIT_MASK_MBIST_REPORT)
-
-/* 2 REG_MEM_CTRL				(Offset 0x00D8) */
-
-#define BIT_UMEM_RME BIT(31)
-
-/* 2 REG_MEM_CTRL				(Offset 0x00D8) */
-
-#define BIT_SHIFT_BT_SPRAM 28
-#define BIT_MASK_BT_SPRAM 0x3
-#define BIT_BT_SPRAM(x) (((x) & BIT_MASK_BT_SPRAM) << BIT_SHIFT_BT_SPRAM)
-#define BIT_GET_BT_SPRAM(x) (((x) >> BIT_SHIFT_BT_SPRAM) & BIT_MASK_BT_SPRAM)
-
-/* 2 REG_MEM_CTRL				(Offset 0x00D8) */
-
-#define BIT_SHIFT_BT_ROM 24
-#define BIT_MASK_BT_ROM 0xf
-#define BIT_BT_ROM(x) (((x) & BIT_MASK_BT_ROM) << BIT_SHIFT_BT_ROM)
-#define BIT_GET_BT_ROM(x) (((x) >> BIT_SHIFT_BT_ROM) & BIT_MASK_BT_ROM)
-
-#define BIT_SHIFT_PCI_DPRAM 10
-#define BIT_MASK_PCI_DPRAM 0x3
-#define BIT_PCI_DPRAM(x) (((x) & BIT_MASK_PCI_DPRAM) << BIT_SHIFT_PCI_DPRAM)
-#define BIT_GET_PCI_DPRAM(x) (((x) >> BIT_SHIFT_PCI_DPRAM) & BIT_MASK_PCI_DPRAM)
-
-/* 2 REG_MEM_CTRL				(Offset 0x00D8) */
-
-#define BIT_SHIFT_PCI_SPRAM 8
-#define BIT_MASK_PCI_SPRAM 0x3
-#define BIT_PCI_SPRAM(x) (((x) & BIT_MASK_PCI_SPRAM) << BIT_SHIFT_PCI_SPRAM)
-#define BIT_GET_PCI_SPRAM(x) (((x) >> BIT_SHIFT_PCI_SPRAM) & BIT_MASK_PCI_SPRAM)
-
-#define BIT_SHIFT_USB_SPRAM 6
-#define BIT_MASK_USB_SPRAM 0x3
-#define BIT_USB_SPRAM(x) (((x) & BIT_MASK_USB_SPRAM) << BIT_SHIFT_USB_SPRAM)
-#define BIT_GET_USB_SPRAM(x) (((x) >> BIT_SHIFT_USB_SPRAM) & BIT_MASK_USB_SPRAM)
-
-/* 2 REG_MEM_CTRL				(Offset 0x00D8) */
-
-#define BIT_SHIFT_USB_SPRF 4
-#define BIT_MASK_USB_SPRF 0x3
-#define BIT_USB_SPRF(x) (((x) & BIT_MASK_USB_SPRF) << BIT_SHIFT_USB_SPRF)
-#define BIT_GET_USB_SPRF(x) (((x) >> BIT_SHIFT_USB_SPRF) & BIT_MASK_USB_SPRF)
-
-/* 2 REG_MEM_CTRL				(Offset 0x00D8) */
-
-#define BIT_SHIFT_MCU_ROM 0
-#define BIT_MASK_MCU_ROM 0xf
-#define BIT_MCU_ROM(x) (((x) & BIT_MASK_MCU_ROM) << BIT_SHIFT_MCU_ROM)
-#define BIT_GET_MCU_ROM(x) (((x) >> BIT_SHIFT_MCU_ROM) & BIT_MASK_MCU_ROM)
-
-/* 2 REG_AFE_CTRL8				(Offset 0x00DC) */
-
-#define BIT_SYN_AGPIO BIT(20)
-
-/* 2 REG_AFE_CTRL8				(Offset 0x00DC) */
-
-#define BIT_XTAL_LP BIT(4)
-#define BIT_XTAL_GM_SEP BIT(3)
-
-/* 2 REG_AFE_CTRL8				(Offset 0x00DC) */
-
-#define BIT_SHIFT_XTAL_SEL_TOK 0
-#define BIT_MASK_XTAL_SEL_TOK 0x7
-#define BIT_XTAL_SEL_TOK(x)                                                    \
-	(((x) & BIT_MASK_XTAL_SEL_TOK) << BIT_SHIFT_XTAL_SEL_TOK)
-#define BIT_GET_XTAL_SEL_TOK(x)                                                \
-	(((x) >> BIT_SHIFT_XTAL_SEL_TOK) & BIT_MASK_XTAL_SEL_TOK)
-
-/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */
-
-#define BIT_RD_SEL BIT(31)
-
-/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */
-
-#define BIT_USB_SIE_INTF_WE_V1 BIT(30)
-#define BIT_USB_SIE_INTF_BYIOREG_V1 BIT(29)
-#define BIT_USB_SIE_SELECT BIT(28)
-
-/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */
-
-#define BIT_SHIFT_USB_SIE_INTF_ADDR_V1 16
-#define BIT_MASK_USB_SIE_INTF_ADDR_V1 0x1ff
-#define BIT_USB_SIE_INTF_ADDR_V1(x)                                            \
-	(((x) & BIT_MASK_USB_SIE_INTF_ADDR_V1)                                 \
-	 << BIT_SHIFT_USB_SIE_INTF_ADDR_V1)
-#define BIT_GET_USB_SIE_INTF_ADDR_V1(x)                                        \
-	(((x) >> BIT_SHIFT_USB_SIE_INTF_ADDR_V1) &                             \
-	 BIT_MASK_USB_SIE_INTF_ADDR_V1)
-
-/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */
-
-#define BIT_SHIFT_USB_SIE_INTF_RD 8
-#define BIT_MASK_USB_SIE_INTF_RD 0xff
-#define BIT_USB_SIE_INTF_RD(x)                                                 \
-	(((x) & BIT_MASK_USB_SIE_INTF_RD) << BIT_SHIFT_USB_SIE_INTF_RD)
-#define BIT_GET_USB_SIE_INTF_RD(x)                                             \
-	(((x) >> BIT_SHIFT_USB_SIE_INTF_RD) & BIT_MASK_USB_SIE_INTF_RD)
-
-#define BIT_SHIFT_USB_SIE_INTF_WD 0
-#define BIT_MASK_USB_SIE_INTF_WD 0xff
-#define BIT_USB_SIE_INTF_WD(x)                                                 \
-	(((x) & BIT_MASK_USB_SIE_INTF_WD) << BIT_SHIFT_USB_SIE_INTF_WD)
-#define BIT_GET_USB_SIE_INTF_WD(x)                                             \
-	(((x) >> BIT_SHIFT_USB_SIE_INTF_WD) & BIT_MASK_USB_SIE_INTF_WD)
-
-/* 2 REG_PCIE_MIO_INTF			(Offset 0x00E4) */
-
-#define BIT_PCIE_MIO_BYIOREG BIT(13)
-#define BIT_PCIE_MIO_RE BIT(12)
-
-#define BIT_SHIFT_PCIE_MIO_WE 8
-#define BIT_MASK_PCIE_MIO_WE 0xf
-#define BIT_PCIE_MIO_WE(x)                                                     \
-	(((x) & BIT_MASK_PCIE_MIO_WE) << BIT_SHIFT_PCIE_MIO_WE)
-#define BIT_GET_PCIE_MIO_WE(x)                                                 \
-	(((x) >> BIT_SHIFT_PCIE_MIO_WE) & BIT_MASK_PCIE_MIO_WE)
-
-#define BIT_SHIFT_PCIE_MIO_ADDR 0
-#define BIT_MASK_PCIE_MIO_ADDR 0xff
-#define BIT_PCIE_MIO_ADDR(x)                                                   \
-	(((x) & BIT_MASK_PCIE_MIO_ADDR) << BIT_SHIFT_PCIE_MIO_ADDR)
-#define BIT_GET_PCIE_MIO_ADDR(x)                                               \
-	(((x) >> BIT_SHIFT_PCIE_MIO_ADDR) & BIT_MASK_PCIE_MIO_ADDR)
-
-/* 2 REG_PCIE_MIO_INTD			(Offset 0x00E8) */
-
-#define BIT_SHIFT_PCIE_MIO_DATA 0
-#define BIT_MASK_PCIE_MIO_DATA 0xffffffffL
-#define BIT_PCIE_MIO_DATA(x)                                                   \
-	(((x) & BIT_MASK_PCIE_MIO_DATA) << BIT_SHIFT_PCIE_MIO_DATA)
-#define BIT_GET_PCIE_MIO_DATA(x)                                               \
-	(((x) >> BIT_SHIFT_PCIE_MIO_DATA) & BIT_MASK_PCIE_MIO_DATA)
-
-/* 2 REG_WLRF1				(Offset 0x00EC) */
-
-#define BIT_SHIFT_WLRF1_CTRL 24
-#define BIT_MASK_WLRF1_CTRL 0xff
-#define BIT_WLRF1_CTRL(x) (((x) & BIT_MASK_WLRF1_CTRL) << BIT_SHIFT_WLRF1_CTRL)
-#define BIT_GET_WLRF1_CTRL(x)                                                  \
-	(((x) >> BIT_SHIFT_WLRF1_CTRL) & BIT_MASK_WLRF1_CTRL)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_SHIFT_TRP_ICFG 28
-#define BIT_MASK_TRP_ICFG 0xf
-#define BIT_TRP_ICFG(x) (((x) & BIT_MASK_TRP_ICFG) << BIT_SHIFT_TRP_ICFG)
-#define BIT_GET_TRP_ICFG(x) (((x) >> BIT_SHIFT_TRP_ICFG) & BIT_MASK_TRP_ICFG)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_RF_TYPE_ID BIT(27)
-#define BIT_BD_HCI_SEL BIT(26)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_BD_PKG_SEL BIT(25)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_SPSLDO_SEL BIT(24)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_RTL_ID BIT(23)
-#define BIT_PAD_HWPD_IDN BIT(22)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_TESTMODE BIT(20)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_SHIFT_VENDOR_ID 16
-#define BIT_MASK_VENDOR_ID 0xf
-#define BIT_VENDOR_ID(x) (((x) & BIT_MASK_VENDOR_ID) << BIT_SHIFT_VENDOR_ID)
-#define BIT_GET_VENDOR_ID(x) (((x) >> BIT_SHIFT_VENDOR_ID) & BIT_MASK_VENDOR_ID)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_SHIFT_CHIP_VER 12
-#define BIT_MASK_CHIP_VER 0xf
-#define BIT_CHIP_VER(x) (((x) & BIT_MASK_CHIP_VER) << BIT_SHIFT_CHIP_VER)
-#define BIT_GET_CHIP_VER(x) (((x) >> BIT_SHIFT_CHIP_VER) & BIT_MASK_CHIP_VER)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_BD_MAC3 BIT(11)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_BD_MAC1 BIT(10)
-#define BIT_BD_MAC2 BIT(9)
-#define BIT_SIC_IDLE BIT(8)
-#define BIT_SW_OFFLOAD_EN BIT(7)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_OCP_SHUTDN BIT(6)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_V15_VLD BIT(5)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_PCIRSTB BIT(4)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_PCLK_VLD BIT(3)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_UCLK_VLD BIT(2)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_ACLK_VLD BIT(1)
-
-/* 2 REG_SYS_CFG1				(Offset 0x00F0) */
-
-#define BIT_XCLK_VLD BIT(0)
-
-/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */
-
-#define BIT_SHIFT_RF_RL_ID 28
-#define BIT_MASK_RF_RL_ID 0xf
-#define BIT_RF_RL_ID(x) (((x) & BIT_MASK_RF_RL_ID) << BIT_SHIFT_RF_RL_ID)
-#define BIT_GET_RF_RL_ID(x) (((x) >> BIT_SHIFT_RF_RL_ID) & BIT_MASK_RF_RL_ID)
-
-/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */
-
-#define BIT_HPHY_ICFG BIT(19)
-
-/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */
-
-#define BIT_SHIFT_SEL_0XC0 16
-#define BIT_MASK_SEL_0XC0 0x3
-#define BIT_SEL_0XC0(x) (((x) & BIT_MASK_SEL_0XC0) << BIT_SHIFT_SEL_0XC0)
-#define BIT_GET_SEL_0XC0(x) (((x) >> BIT_SHIFT_SEL_0XC0) & BIT_MASK_SEL_0XC0)
-
-/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */
-
-#define BIT_SHIFT_HCI_SEL_V3 12
-#define BIT_MASK_HCI_SEL_V3 0x7
-#define BIT_HCI_SEL_V3(x) (((x) & BIT_MASK_HCI_SEL_V3) << BIT_SHIFT_HCI_SEL_V3)
-#define BIT_GET_HCI_SEL_V3(x)                                                  \
-	(((x) >> BIT_SHIFT_HCI_SEL_V3) & BIT_MASK_HCI_SEL_V3)
-
-/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */
-
-#define BIT_USB_OPERATION_MODE BIT(10)
-#define BIT_BT_PDN BIT(9)
-#define BIT_AUTO_WLPON BIT(8)
-
-/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */
-
-#define BIT_WL_MODE BIT(7)
-
-/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */
-
-#define BIT_PKG_SEL_HCI BIT(6)
-
-/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */
-
-#define BIT_SHIFT_PAD_HCI_SEL_V1 3
-#define BIT_MASK_PAD_HCI_SEL_V1 0x7
-#define BIT_PAD_HCI_SEL_V1(x)                                                  \
-	(((x) & BIT_MASK_PAD_HCI_SEL_V1) << BIT_SHIFT_PAD_HCI_SEL_V1)
-#define BIT_GET_PAD_HCI_SEL_V1(x)                                              \
-	(((x) >> BIT_SHIFT_PAD_HCI_SEL_V1) & BIT_MASK_PAD_HCI_SEL_V1)
-
-/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */
-
-#define BIT_SHIFT_EFS_HCI_SEL_V1 0
-#define BIT_MASK_EFS_HCI_SEL_V1 0x7
-#define BIT_EFS_HCI_SEL_V1(x)                                                  \
-	(((x) & BIT_MASK_EFS_HCI_SEL_V1) << BIT_SHIFT_EFS_HCI_SEL_V1)
-#define BIT_GET_EFS_HCI_SEL_V1(x)                                              \
-	(((x) >> BIT_SHIFT_EFS_HCI_SEL_V1) & BIT_MASK_EFS_HCI_SEL_V1)
-
-/* 2 REG_SYS_STATUS2				(Offset 0x00F8) */
-
-#define BIT_SIO_ALDN BIT(19)
-#define BIT_USB_ALDN BIT(18)
-#define BIT_PCI_ALDN BIT(17)
-#define BIT_SYS_ALDN BIT(16)
-
-#define BIT_SHIFT_EPVID1 8
-#define BIT_MASK_EPVID1 0xff
-#define BIT_EPVID1(x) (((x) & BIT_MASK_EPVID1) << BIT_SHIFT_EPVID1)
-#define BIT_GET_EPVID1(x) (((x) >> BIT_SHIFT_EPVID1) & BIT_MASK_EPVID1)
-
-#define BIT_SHIFT_EPVID0 0
-#define BIT_MASK_EPVID0 0xff
-#define BIT_EPVID0(x) (((x) & BIT_MASK_EPVID0) << BIT_SHIFT_EPVID0)
-#define BIT_GET_EPVID0(x) (((x) >> BIT_SHIFT_EPVID0) & BIT_MASK_EPVID0)
-
-/* 2 REG_SYS_CFG2				(Offset 0x00FC) */
-
-#define BIT_HCI_SEL_EMBEDDED BIT(8)
-
-/* 2 REG_SYS_CFG2				(Offset 0x00FC) */
-
-#define BIT_SHIFT_HW_ID 0
-#define BIT_MASK_HW_ID 0xff
-#define BIT_HW_ID(x) (((x) & BIT_MASK_HW_ID) << BIT_SHIFT_HW_ID)
-#define BIT_GET_HW_ID(x) (((x) >> BIT_SHIFT_HW_ID) & BIT_MASK_HW_ID)
-
-/* 2 REG_CR					(Offset 0x0100) */
-
-#define BIT_SHIFT_LBMODE 24
-#define BIT_MASK_LBMODE 0x1f
-#define BIT_LBMODE(x) (((x) & BIT_MASK_LBMODE) << BIT_SHIFT_LBMODE)
-#define BIT_GET_LBMODE(x) (((x) >> BIT_SHIFT_LBMODE) & BIT_MASK_LBMODE)
-
-#define BIT_SHIFT_NETYPE1 18
-#define BIT_MASK_NETYPE1 0x3
-#define BIT_NETYPE1(x) (((x) & BIT_MASK_NETYPE1) << BIT_SHIFT_NETYPE1)
-#define BIT_GET_NETYPE1(x) (((x) >> BIT_SHIFT_NETYPE1) & BIT_MASK_NETYPE1)
-
-#define BIT_SHIFT_NETYPE0 16
-#define BIT_MASK_NETYPE0 0x3
-#define BIT_NETYPE0(x) (((x) & BIT_MASK_NETYPE0) << BIT_SHIFT_NETYPE0)
-#define BIT_GET_NETYPE0(x) (((x) >> BIT_SHIFT_NETYPE0) & BIT_MASK_NETYPE0)
-
-/* 2 REG_CR					(Offset 0x0100) */
-
-#define BIT_I2C_MAILBOX_EN BIT(12)
-#define BIT_SHCUT_EN BIT(11)
-
-/* 2 REG_CR					(Offset 0x0100) */
-
-#define BIT_32K_CAL_TMR_EN BIT(10)
-#define BIT_MAC_SEC_EN BIT(9)
-#define BIT_ENSWBCN BIT(8)
-#define BIT_MACRXEN BIT(7)
-#define BIT_MACTXEN BIT(6)
-#define BIT_SCHEDULE_EN BIT(5)
-#define BIT_PROTOCOL_EN BIT(4)
-#define BIT_RXDMA_EN BIT(3)
-#define BIT_TXDMA_EN BIT(2)
-#define BIT_HCI_RXDMA_EN BIT(1)
-#define BIT_HCI_TXDMA_EN BIT(0)
-
-/* 2 REG_PKT_BUFF_ACCESS_CTRL		(Offset 0x0106) */
-
-#define BIT_SHIFT_PKT_BUFF_ACCESS_CTRL 0
-#define BIT_MASK_PKT_BUFF_ACCESS_CTRL 0xff
-#define BIT_PKT_BUFF_ACCESS_CTRL(x)                                            \
-	(((x) & BIT_MASK_PKT_BUFF_ACCESS_CTRL)                                 \
-	 << BIT_SHIFT_PKT_BUFF_ACCESS_CTRL)
-#define BIT_GET_PKT_BUFF_ACCESS_CTRL(x)                                        \
-	(((x) >> BIT_SHIFT_PKT_BUFF_ACCESS_CTRL) &                             \
-	 BIT_MASK_PKT_BUFF_ACCESS_CTRL)
-
-/* 2 REG_TSF_CLK_STATE			(Offset 0x0108) */
-
-#define BIT_TSF_CLK_STABLE BIT(15)
-
-#define BIT_SHIFT_I2C_M_BUS_GNT_FW 4
-#define BIT_MASK_I2C_M_BUS_GNT_FW 0x7
-#define BIT_I2C_M_BUS_GNT_FW(x)                                                \
-	(((x) & BIT_MASK_I2C_M_BUS_GNT_FW) << BIT_SHIFT_I2C_M_BUS_GNT_FW)
-#define BIT_GET_I2C_M_BUS_GNT_FW(x)                                            \
-	(((x) >> BIT_SHIFT_I2C_M_BUS_GNT_FW) & BIT_MASK_I2C_M_BUS_GNT_FW)
-
-#define BIT_I2C_M_GNT_FW BIT(3)
-
-#define BIT_SHIFT_I2C_M_SPEED 1
-#define BIT_MASK_I2C_M_SPEED 0x3
-#define BIT_I2C_M_SPEED(x)                                                     \
-	(((x) & BIT_MASK_I2C_M_SPEED) << BIT_SHIFT_I2C_M_SPEED)
-#define BIT_GET_I2C_M_SPEED(x)                                                 \
-	(((x) >> BIT_SHIFT_I2C_M_SPEED) & BIT_MASK_I2C_M_SPEED)
-
-#define BIT_I2C_M_UNLOCK BIT(0)
-
-/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */
-
-#define BIT_SHIFT_TXDMA_HIQ_MAP 14
-#define BIT_MASK_TXDMA_HIQ_MAP 0x3
-#define BIT_TXDMA_HIQ_MAP(x)                                                   \
-	(((x) & BIT_MASK_TXDMA_HIQ_MAP) << BIT_SHIFT_TXDMA_HIQ_MAP)
-#define BIT_GET_TXDMA_HIQ_MAP(x)                                               \
-	(((x) >> BIT_SHIFT_TXDMA_HIQ_MAP) & BIT_MASK_TXDMA_HIQ_MAP)
-
-#define BIT_SHIFT_TXDMA_MGQ_MAP 12
-#define BIT_MASK_TXDMA_MGQ_MAP 0x3
-#define BIT_TXDMA_MGQ_MAP(x)                                                   \
-	(((x) & BIT_MASK_TXDMA_MGQ_MAP) << BIT_SHIFT_TXDMA_MGQ_MAP)
-#define BIT_GET_TXDMA_MGQ_MAP(x)                                               \
-	(((x) >> BIT_SHIFT_TXDMA_MGQ_MAP) & BIT_MASK_TXDMA_MGQ_MAP)
-
-#define BIT_SHIFT_TXDMA_BKQ_MAP 10
-#define BIT_MASK_TXDMA_BKQ_MAP 0x3
-#define BIT_TXDMA_BKQ_MAP(x)                                                   \
-	(((x) & BIT_MASK_TXDMA_BKQ_MAP) << BIT_SHIFT_TXDMA_BKQ_MAP)
-#define BIT_GET_TXDMA_BKQ_MAP(x)                                               \
-	(((x) >> BIT_SHIFT_TXDMA_BKQ_MAP) & BIT_MASK_TXDMA_BKQ_MAP)
-
-#define BIT_SHIFT_TXDMA_BEQ_MAP 8
-#define BIT_MASK_TXDMA_BEQ_MAP 0x3
-#define BIT_TXDMA_BEQ_MAP(x)                                                   \
-	(((x) & BIT_MASK_TXDMA_BEQ_MAP) << BIT_SHIFT_TXDMA_BEQ_MAP)
-#define BIT_GET_TXDMA_BEQ_MAP(x)                                               \
-	(((x) >> BIT_SHIFT_TXDMA_BEQ_MAP) & BIT_MASK_TXDMA_BEQ_MAP)
-
-#define BIT_SHIFT_TXDMA_VIQ_MAP 6
-#define BIT_MASK_TXDMA_VIQ_MAP 0x3
-#define BIT_TXDMA_VIQ_MAP(x)                                                   \
-	(((x) & BIT_MASK_TXDMA_VIQ_MAP) << BIT_SHIFT_TXDMA_VIQ_MAP)
-#define BIT_GET_TXDMA_VIQ_MAP(x)                                               \
-	(((x) >> BIT_SHIFT_TXDMA_VIQ_MAP) & BIT_MASK_TXDMA_VIQ_MAP)
-
-#define BIT_SHIFT_TXDMA_VOQ_MAP 4
-#define BIT_MASK_TXDMA_VOQ_MAP 0x3
-#define BIT_TXDMA_VOQ_MAP(x)                                                   \
-	(((x) & BIT_MASK_TXDMA_VOQ_MAP) << BIT_SHIFT_TXDMA_VOQ_MAP)
-#define BIT_GET_TXDMA_VOQ_MAP(x)                                               \
-	(((x) >> BIT_SHIFT_TXDMA_VOQ_MAP) & BIT_MASK_TXDMA_VOQ_MAP)
-
-#define BIT_RXDMA_AGG_EN BIT(2)
-#define BIT_RXSHFT_EN BIT(1)
-#define BIT_RXDMA_ARBBW_EN BIT(0)
-
-/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */
-
-#define BIT_SHIFT_RXFFOVFL_RSV_V2 8
-#define BIT_MASK_RXFFOVFL_RSV_V2 0xf
-#define BIT_RXFFOVFL_RSV_V2(x)                                                 \
-	(((x) & BIT_MASK_RXFFOVFL_RSV_V2) << BIT_SHIFT_RXFFOVFL_RSV_V2)
-#define BIT_GET_RXFFOVFL_RSV_V2(x)                                             \
-	(((x) >> BIT_SHIFT_RXFFOVFL_RSV_V2) & BIT_MASK_RXFFOVFL_RSV_V2)
-
-/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */
-
-#define BIT_SHIFT_TXPKTBUF_PGBNDY 0
-#define BIT_MASK_TXPKTBUF_PGBNDY 0xff
-#define BIT_TXPKTBUF_PGBNDY(x)                                                 \
-	(((x) & BIT_MASK_TXPKTBUF_PGBNDY) << BIT_SHIFT_TXPKTBUF_PGBNDY)
-#define BIT_GET_TXPKTBUF_PGBNDY(x)                                             \
-	(((x) >> BIT_SHIFT_TXPKTBUF_PGBNDY) & BIT_MASK_TXPKTBUF_PGBNDY)
-
-/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */
-
-#define BIT_SHIFT_RXFF0_BNDY_V2 0
-#define BIT_MASK_RXFF0_BNDY_V2 0x3ffff
-#define BIT_RXFF0_BNDY_V2(x)                                                   \
-	(((x) & BIT_MASK_RXFF0_BNDY_V2) << BIT_SHIFT_RXFF0_BNDY_V2)
-#define BIT_GET_RXFF0_BNDY_V2(x)                                               \
-	(((x) >> BIT_SHIFT_RXFF0_BNDY_V2) & BIT_MASK_RXFF0_BNDY_V2)
-
-#define BIT_SHIFT_RXFF0_RDPTR_V2 0
-#define BIT_MASK_RXFF0_RDPTR_V2 0x3ffff
-#define BIT_RXFF0_RDPTR_V2(x)                                                  \
-	(((x) & BIT_MASK_RXFF0_RDPTR_V2) << BIT_SHIFT_RXFF0_RDPTR_V2)
-#define BIT_GET_RXFF0_RDPTR_V2(x)                                              \
-	(((x) >> BIT_SHIFT_RXFF0_RDPTR_V2) & BIT_MASK_RXFF0_RDPTR_V2)
-
-#define BIT_SHIFT_RXFF0_WTPTR_V2 0
-#define BIT_MASK_RXFF0_WTPTR_V2 0x3ffff
-#define BIT_RXFF0_WTPTR_V2(x)                                                  \
-	(((x) & BIT_MASK_RXFF0_WTPTR_V2) << BIT_SHIFT_RXFF0_WTPTR_V2)
-#define BIT_GET_RXFF0_WTPTR_V2(x)                                              \
-	(((x) >> BIT_SHIFT_RXFF0_WTPTR_V2) & BIT_MASK_RXFF0_WTPTR_V2)
-
-/* 2 REG_PTA_I2C_MBOX			(Offset 0x0118) */
-
-#define BIT_SHIFT_I2C_M_STATUS 8
-#define BIT_MASK_I2C_M_STATUS 0xf
-#define BIT_I2C_M_STATUS(x)                                                    \
-	(((x) & BIT_MASK_I2C_M_STATUS) << BIT_SHIFT_I2C_M_STATUS)
-#define BIT_GET_I2C_M_STATUS(x)                                                \
-	(((x) >> BIT_SHIFT_I2C_M_STATUS) & BIT_MASK_I2C_M_STATUS)
-
-/* 2 REG_FE1IMR				(Offset 0x0120) */
-
-#define BIT_FS_RXDMA2_DONE_INT_EN BIT(28)
-#define BIT_FS_RXDONE3_INT_EN BIT(27)
-#define BIT_FS_RXDONE2_INT_EN BIT(26)
-#define BIT_FS_RX_BCN_P4_INT_EN BIT(25)
-#define BIT_FS_RX_BCN_P3_INT_EN BIT(24)
-#define BIT_FS_RX_BCN_P2_INT_EN BIT(23)
-#define BIT_FS_RX_BCN_P1_INT_EN BIT(22)
-#define BIT_FS_RX_BCN_P0_INT_EN BIT(21)
-#define BIT_FS_RX_UMD0_INT_EN BIT(20)
-#define BIT_FS_RX_UMD1_INT_EN BIT(19)
-#define BIT_FS_RX_BMD0_INT_EN BIT(18)
-#define BIT_FS_RX_BMD1_INT_EN BIT(17)
-#define BIT_FS_RXDONE_INT_EN BIT(16)
-#define BIT_FS_WWLAN_INT_EN BIT(15)
-#define BIT_FS_SOUND_DONE_INT_EN BIT(14)
-#define BIT_FS_LP_STBY_INT_EN BIT(13)
-#define BIT_FS_TRL_MTR_INT_EN BIT(12)
-#define BIT_FS_BF1_PRETO_INT_EN BIT(11)
-#define BIT_FS_BF0_PRETO_INT_EN BIT(10)
-#define BIT_FS_PTCL_RELEASE_MACID_INT_EN BIT(9)
-
-/* 2 REG_FE1IMR				(Offset 0x0120) */
-
-#define BIT_FS_LTE_COEX_EN BIT(6)
-
-/* 2 REG_FE1IMR				(Offset 0x0120) */
-
-#define BIT_FS_WLACTOFF_INT_EN BIT(5)
-#define BIT_FS_WLACTON_INT_EN BIT(4)
-#define BIT_FS_BTCMD_INT_EN BIT(3)
-
-/* 2 REG_FE1IMR				(Offset 0x0120) */
-
-#define BIT_FS_REG_MAILBOX_TO_I2C_INT_EN BIT(2)
-
-/* 2 REG_FE1IMR				(Offset 0x0120) */
-
-#define BIT_FS_TRPC_TO_INT_EN_V1 BIT(1)
-
-/* 2 REG_FE1IMR				(Offset 0x0120) */
-
-#define BIT_FS_RPC_O_T_INT_EN_V1 BIT(0)
-
-/* 2 REG_FE1ISR				(Offset 0x0124) */
-
-#define BIT_FS_RXDMA2_DONE_INT BIT(28)
-#define BIT_FS_RXDONE3_INT BIT(27)
-#define BIT_FS_RXDONE2_INT BIT(26)
-#define BIT_FS_RX_BCN_P4_INT BIT(25)
-#define BIT_FS_RX_BCN_P3_INT BIT(24)
-#define BIT_FS_RX_BCN_P2_INT BIT(23)
-#define BIT_FS_RX_BCN_P1_INT BIT(22)
-#define BIT_FS_RX_BCN_P0_INT BIT(21)
-#define BIT_FS_RX_UMD0_INT BIT(20)
-#define BIT_FS_RX_UMD1_INT BIT(19)
-#define BIT_FS_RX_BMD0_INT BIT(18)
-#define BIT_FS_RX_BMD1_INT BIT(17)
-#define BIT_FS_RXDONE_INT BIT(16)
-#define BIT_FS_WWLAN_INT BIT(15)
-#define BIT_FS_SOUND_DONE_INT BIT(14)
-#define BIT_FS_LP_STBY_INT BIT(13)
-#define BIT_FS_TRL_MTR_INT BIT(12)
-#define BIT_FS_BF1_PRETO_INT BIT(11)
-#define BIT_FS_BF0_PRETO_INT BIT(10)
-#define BIT_FS_PTCL_RELEASE_MACID_INT BIT(9)
-
-/* 2 REG_FE1ISR				(Offset 0x0124) */
-
-#define BIT_FS_LTE_COEX_INT BIT(6)
-
-/* 2 REG_FE1ISR				(Offset 0x0124) */
-
-#define BIT_FS_WLACTOFF_INT BIT(5)
-#define BIT_FS_WLACTON_INT BIT(4)
-#define BIT_FS_BCN_RX_INT_INT BIT(3)
-
-/* 2 REG_FE1ISR				(Offset 0x0124) */
-
-#define BIT_FS_MAILBOX_TO_I2C_INT BIT(2)
-
-/* 2 REG_FE1ISR				(Offset 0x0124) */
-
-#define BIT_FS_TRPC_TO_INT BIT(1)
-
-/* 2 REG_FE1ISR				(Offset 0x0124) */
-
-#define BIT_FS_RPC_O_T_INT BIT(0)
-
-/* 2 REG_CPWM				(Offset 0x012C) */
-
-#define BIT_CPWM_TOGGLING BIT(31)
-
-#define BIT_SHIFT_CPWM_MOD 24
-#define BIT_MASK_CPWM_MOD 0x7f
-#define BIT_CPWM_MOD(x) (((x) & BIT_MASK_CPWM_MOD) << BIT_SHIFT_CPWM_MOD)
-#define BIT_GET_CPWM_MOD(x) (((x) >> BIT_SHIFT_CPWM_MOD) & BIT_MASK_CPWM_MOD)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNOK_MB7_INT_EN BIT(31)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNOK_MB6_INT_EN BIT(30)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNOK_MB5_INT_EN BIT(29)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNOK_MB4_INT_EN BIT(28)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNOK_MB3_INT_EN BIT(27)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNOK_MB2_INT_EN BIT(26)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNOK_MB1_INT_EN BIT(25)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNOK_MB0_INT_EN BIT(24)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNERR_MB7_INT_EN BIT(23)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNERR_MB6_INT_EN BIT(22)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNERR_MB5_INT_EN BIT(21)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNERR_MB4_INT_EN BIT(20)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNERR_MB3_INT_EN BIT(19)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNERR_MB2_INT_EN BIT(18)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNERR_MB1_INT_EN BIT(17)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXBCNERR_MB0_INT_EN BIT(16)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_CPU_MGQ_TXDONE_INT_EN BIT(15)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_SIFS_OVERSPEC_INT_EN BIT(14)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_MGNTQ_RPTR_RELEASE_INT_EN BIT(13)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_MGNTQFF_TO_INT_EN BIT(12)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_DDMA1_LP_INT_EN BIT(11)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_DDMA1_HP_INT_EN BIT(10)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_DDMA0_LP_INT_EN BIT(9)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_DDMA0_HP_INT_EN BIT(8)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TRXRPT_INT_EN BIT(7)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_C2H_W_READY_INT_EN BIT(6)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_HRCV_INT_EN BIT(5)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_H2CCMD_INT_EN BIT(4)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXPKTIN_INT_EN BIT(3)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_ERRORHDL_INT_EN BIT(2)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXCCX_INT_EN BIT(1)
-
-/* 2 REG_FWIMR				(Offset 0x0130) */
-
-#define BIT_FS_TXCLOSE_INT_EN BIT(0)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNOK_MB7_INT BIT(31)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNOK_MB6_INT BIT(30)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNOK_MB5_INT BIT(29)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNOK_MB4_INT BIT(28)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNOK_MB3_INT BIT(27)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNOK_MB2_INT BIT(26)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNOK_MB1_INT BIT(25)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNOK_MB0_INT BIT(24)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNERR_MB7_INT BIT(23)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNERR_MB6_INT BIT(22)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNERR_MB5_INT BIT(21)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNERR_MB4_INT BIT(20)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNERR_MB3_INT BIT(19)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNERR_MB2_INT BIT(18)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNERR_MB1_INT BIT(17)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXBCNERR_MB0_INT BIT(16)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_CPU_MGQ_TXDONE_INT BIT(15)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_SIFS_OVERSPEC_INT BIT(14)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_MGNTQ_RPTR_RELEASE_INT BIT(13)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_MGNTQFF_TO_INT BIT(12)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_DDMA1_LP_INT BIT(11)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_DDMA1_HP_INT BIT(10)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_DDMA0_LP_INT BIT(9)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_DDMA0_HP_INT BIT(8)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TRXRPT_INT BIT(7)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_C2H_W_READY_INT BIT(6)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_HRCV_INT BIT(5)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_H2CCMD_INT BIT(4)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXPKTIN_INT BIT(3)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_ERRORHDL_INT BIT(2)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXCCX_INT BIT(1)
-
-/* 2 REG_FWISR				(Offset 0x0134) */
-
-#define BIT_FS_TXCLOSE_INT BIT(0)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_PS_TIMER_C_EARLY_INT_EN BIT(23)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_PS_TIMER_B_EARLY_INT_EN BIT(22)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_PS_TIMER_A_EARLY_INT_EN BIT(21)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_CPUMGQ_TX_TIMER_EARLY_INT_EN BIT(20)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_PS_TIMER_C_INT_EN BIT(19)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_PS_TIMER_B_INT_EN BIT(18)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_PS_TIMER_A_INT_EN BIT(17)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_CPUMGQ_TX_TIMER_INT_EN BIT(16)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_PS_TIMEOUT2_EN BIT(15)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_PS_TIMEOUT1_EN BIT(14)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_PS_TIMEOUT0_EN BIT(13)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_GTINT8_EN BIT(8)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_GTINT7_EN BIT(7)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_GTINT6_EN BIT(6)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_GTINT5_EN BIT(5)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_GTINT4_EN BIT(4)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_GTINT3_EN BIT(3)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_GTINT2_EN BIT(2)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_GTINT1_EN BIT(1)
-
-/* 2 REG_FTIMR				(Offset 0x0138) */
-
-#define BIT_FS_GTINT0_EN BIT(0)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_PS_TIMER_C_EARLY__INT BIT(23)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_PS_TIMER_B_EARLY__INT BIT(22)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_PS_TIMER_A_EARLY__INT BIT(21)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_CPUMGQ_TX_TIMER_EARLY_INT BIT(20)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_PS_TIMER_C_INT BIT(19)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_PS_TIMER_B_INT BIT(18)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_PS_TIMER_A_INT BIT(17)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_CPUMGQ_TX_TIMER_INT BIT(16)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_PS_TIMEOUT2_INT BIT(15)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_PS_TIMEOUT1_INT BIT(14)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_PS_TIMEOUT0_INT BIT(13)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_GTINT8_INT BIT(8)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_GTINT7_INT BIT(7)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_GTINT6_INT BIT(6)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_GTINT5_INT BIT(5)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_GTINT4_INT BIT(4)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_GTINT3_INT BIT(3)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_GTINT2_INT BIT(2)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_GTINT1_INT BIT(1)
-
-/* 2 REG_FTISR				(Offset 0x013C) */
-
-#define BIT_FS_GTINT0_INT BIT(0)
-
-/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */
-
-#define BIT_SHIFT_PKTBUF_WRITE_EN 24
-#define BIT_MASK_PKTBUF_WRITE_EN 0xff
-#define BIT_PKTBUF_WRITE_EN(x)                                                 \
-	(((x) & BIT_MASK_PKTBUF_WRITE_EN) << BIT_SHIFT_PKTBUF_WRITE_EN)
-#define BIT_GET_PKTBUF_WRITE_EN(x)                                             \
-	(((x) >> BIT_SHIFT_PKTBUF_WRITE_EN) & BIT_MASK_PKTBUF_WRITE_EN)
-
-/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */
-
-#define BIT_TXRPTBUF_DBG BIT(23)
-
-/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */
-
-#define BIT_TXPKTBUF_DBG_V2 BIT(20)
-
-/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */
-
-#define BIT_RXPKTBUF_DBG BIT(16)
-
-/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */
-
-#define BIT_SHIFT_PKTBUF_DBG_ADDR 0
-#define BIT_MASK_PKTBUF_DBG_ADDR 0x1fff
-#define BIT_PKTBUF_DBG_ADDR(x)                                                 \
-	(((x) & BIT_MASK_PKTBUF_DBG_ADDR) << BIT_SHIFT_PKTBUF_DBG_ADDR)
-#define BIT_GET_PKTBUF_DBG_ADDR(x)                                             \
-	(((x) >> BIT_SHIFT_PKTBUF_DBG_ADDR) & BIT_MASK_PKTBUF_DBG_ADDR)
-
-/* 2 REG_PKTBUF_DBG_DATA_L			(Offset 0x0144) */
-
-#define BIT_SHIFT_PKTBUF_DBG_DATA_L 0
-#define BIT_MASK_PKTBUF_DBG_DATA_L 0xffffffffL
-#define BIT_PKTBUF_DBG_DATA_L(x)                                               \
-	(((x) & BIT_MASK_PKTBUF_DBG_DATA_L) << BIT_SHIFT_PKTBUF_DBG_DATA_L)
-#define BIT_GET_PKTBUF_DBG_DATA_L(x)                                           \
-	(((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_L) & BIT_MASK_PKTBUF_DBG_DATA_L)
-
-/* 2 REG_PKTBUF_DBG_DATA_H			(Offset 0x0148) */
-
-#define BIT_SHIFT_PKTBUF_DBG_DATA_H 0
-#define BIT_MASK_PKTBUF_DBG_DATA_H 0xffffffffL
-#define BIT_PKTBUF_DBG_DATA_H(x)                                               \
-	(((x) & BIT_MASK_PKTBUF_DBG_DATA_H) << BIT_SHIFT_PKTBUF_DBG_DATA_H)
-#define BIT_GET_PKTBUF_DBG_DATA_H(x)                                           \
-	(((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_H) & BIT_MASK_PKTBUF_DBG_DATA_H)
-
-/* 2 REG_CPWM2				(Offset 0x014C) */
-
-#define BIT_SHIFT_L0S_TO_RCVY_NUM 16
-#define BIT_MASK_L0S_TO_RCVY_NUM 0xff
-#define BIT_L0S_TO_RCVY_NUM(x)                                                 \
-	(((x) & BIT_MASK_L0S_TO_RCVY_NUM) << BIT_SHIFT_L0S_TO_RCVY_NUM)
-#define BIT_GET_L0S_TO_RCVY_NUM(x)                                             \
-	(((x) >> BIT_SHIFT_L0S_TO_RCVY_NUM) & BIT_MASK_L0S_TO_RCVY_NUM)
-
-#define BIT_CPWM2_TOGGLING BIT(15)
-
-#define BIT_SHIFT_CPWM2_MOD 0
-#define BIT_MASK_CPWM2_MOD 0x7fff
-#define BIT_CPWM2_MOD(x) (((x) & BIT_MASK_CPWM2_MOD) << BIT_SHIFT_CPWM2_MOD)
-#define BIT_GET_CPWM2_MOD(x) (((x) >> BIT_SHIFT_CPWM2_MOD) & BIT_MASK_CPWM2_MOD)
-
-/* 2 REG_TC0_CTRL				(Offset 0x0150) */
-
-#define BIT_TC0INT_EN BIT(26)
-#define BIT_TC0MODE BIT(25)
-#define BIT_TC0EN BIT(24)
-
-#define BIT_SHIFT_TC0DATA 0
-#define BIT_MASK_TC0DATA 0xffffff
-#define BIT_TC0DATA(x) (((x) & BIT_MASK_TC0DATA) << BIT_SHIFT_TC0DATA)
-#define BIT_GET_TC0DATA(x) (((x) >> BIT_SHIFT_TC0DATA) & BIT_MASK_TC0DATA)
-
-/* 2 REG_TC1_CTRL				(Offset 0x0154) */
-
-#define BIT_TC1INT_EN BIT(26)
-#define BIT_TC1MODE BIT(25)
-#define BIT_TC1EN BIT(24)
-
-#define BIT_SHIFT_TC1DATA 0
-#define BIT_MASK_TC1DATA 0xffffff
-#define BIT_TC1DATA(x) (((x) & BIT_MASK_TC1DATA) << BIT_SHIFT_TC1DATA)
-#define BIT_GET_TC1DATA(x) (((x) >> BIT_SHIFT_TC1DATA) & BIT_MASK_TC1DATA)
-
-/* 2 REG_TC2_CTRL				(Offset 0x0158) */
-
-#define BIT_TC2INT_EN BIT(26)
-#define BIT_TC2MODE BIT(25)
-#define BIT_TC2EN BIT(24)
-
-#define BIT_SHIFT_TC2DATA 0
-#define BIT_MASK_TC2DATA 0xffffff
-#define BIT_TC2DATA(x) (((x) & BIT_MASK_TC2DATA) << BIT_SHIFT_TC2DATA)
-#define BIT_GET_TC2DATA(x) (((x) >> BIT_SHIFT_TC2DATA) & BIT_MASK_TC2DATA)
-
-/* 2 REG_TC3_CTRL				(Offset 0x015C) */
-
-#define BIT_TC3INT_EN BIT(26)
-#define BIT_TC3MODE BIT(25)
-#define BIT_TC3EN BIT(24)
-
-#define BIT_SHIFT_TC3DATA 0
-#define BIT_MASK_TC3DATA 0xffffff
-#define BIT_TC3DATA(x) (((x) & BIT_MASK_TC3DATA) << BIT_SHIFT_TC3DATA)
-#define BIT_GET_TC3DATA(x) (((x) >> BIT_SHIFT_TC3DATA) & BIT_MASK_TC3DATA)
-
-/* 2 REG_TC4_CTRL				(Offset 0x0160) */
-
-#define BIT_TC4INT_EN BIT(26)
-#define BIT_TC4MODE BIT(25)
-#define BIT_TC4EN BIT(24)
-
-#define BIT_SHIFT_TC4DATA 0
-#define BIT_MASK_TC4DATA 0xffffff
-#define BIT_TC4DATA(x) (((x) & BIT_MASK_TC4DATA) << BIT_SHIFT_TC4DATA)
-#define BIT_GET_TC4DATA(x) (((x) >> BIT_SHIFT_TC4DATA) & BIT_MASK_TC4DATA)
-
-/* 2 REG_TCUNIT_BASE				(Offset 0x0164) */
-
-#define BIT_SHIFT_TCUNIT_BASE 0
-#define BIT_MASK_TCUNIT_BASE 0x3fff
-#define BIT_TCUNIT_BASE(x)                                                     \
-	(((x) & BIT_MASK_TCUNIT_BASE) << BIT_SHIFT_TCUNIT_BASE)
-#define BIT_GET_TCUNIT_BASE(x)                                                 \
-	(((x) >> BIT_SHIFT_TCUNIT_BASE) & BIT_MASK_TCUNIT_BASE)
-
-/* 2 REG_TC5_CTRL				(Offset 0x0168) */
-
-#define BIT_TC5INT_EN BIT(26)
-
-/* 2 REG_TC5_CTRL				(Offset 0x0168) */
-
-#define BIT_TC5MODE BIT(25)
-#define BIT_TC5EN BIT(24)
-
-#define BIT_SHIFT_TC5DATA 0
-#define BIT_MASK_TC5DATA 0xffffff
-#define BIT_TC5DATA(x) (((x) & BIT_MASK_TC5DATA) << BIT_SHIFT_TC5DATA)
-#define BIT_GET_TC5DATA(x) (((x) >> BIT_SHIFT_TC5DATA) & BIT_MASK_TC5DATA)
-
-/* 2 REG_TC6_CTRL				(Offset 0x016C) */
-
-#define BIT_TC6INT_EN BIT(26)
-
-/* 2 REG_TC6_CTRL				(Offset 0x016C) */
-
-#define BIT_TC6MODE BIT(25)
-#define BIT_TC6EN BIT(24)
-
-#define BIT_SHIFT_TC6DATA 0
-#define BIT_MASK_TC6DATA 0xffffff
-#define BIT_TC6DATA(x) (((x) & BIT_MASK_TC6DATA) << BIT_SHIFT_TC6DATA)
-#define BIT_GET_TC6DATA(x) (((x) >> BIT_SHIFT_TC6DATA) & BIT_MASK_TC6DATA)
-
-/* 2 REG_MBIST_FAIL				(Offset 0x0170) */
-
-#define BIT_SHIFT_8051_MBIST_FAIL 26
-#define BIT_MASK_8051_MBIST_FAIL 0x7
-#define BIT_8051_MBIST_FAIL(x)                                                 \
-	(((x) & BIT_MASK_8051_MBIST_FAIL) << BIT_SHIFT_8051_MBIST_FAIL)
-#define BIT_GET_8051_MBIST_FAIL(x)                                             \
-	(((x) >> BIT_SHIFT_8051_MBIST_FAIL) & BIT_MASK_8051_MBIST_FAIL)
-
-#define BIT_SHIFT_USB_MBIST_FAIL 24
-#define BIT_MASK_USB_MBIST_FAIL 0x3
-#define BIT_USB_MBIST_FAIL(x)                                                  \
-	(((x) & BIT_MASK_USB_MBIST_FAIL) << BIT_SHIFT_USB_MBIST_FAIL)
-#define BIT_GET_USB_MBIST_FAIL(x)                                              \
-	(((x) >> BIT_SHIFT_USB_MBIST_FAIL) & BIT_MASK_USB_MBIST_FAIL)
-
-#define BIT_SHIFT_PCIE_MBIST_FAIL 16
-#define BIT_MASK_PCIE_MBIST_FAIL 0x3f
-#define BIT_PCIE_MBIST_FAIL(x)                                                 \
-	(((x) & BIT_MASK_PCIE_MBIST_FAIL) << BIT_SHIFT_PCIE_MBIST_FAIL)
-#define BIT_GET_PCIE_MBIST_FAIL(x)                                             \
-	(((x) >> BIT_SHIFT_PCIE_MBIST_FAIL) & BIT_MASK_PCIE_MBIST_FAIL)
-
-/* 2 REG_MBIST_FAIL				(Offset 0x0170) */
-
-#define BIT_SHIFT_MAC_MBIST_FAIL 0
-#define BIT_MASK_MAC_MBIST_FAIL 0xfff
-#define BIT_MAC_MBIST_FAIL(x)                                                  \
-	(((x) & BIT_MASK_MAC_MBIST_FAIL) << BIT_SHIFT_MAC_MBIST_FAIL)
-#define BIT_GET_MAC_MBIST_FAIL(x)                                              \
-	(((x) >> BIT_SHIFT_MAC_MBIST_FAIL) & BIT_MASK_MAC_MBIST_FAIL)
-
-/* 2 REG_MBIST_START_PAUSE			(Offset 0x0174) */
-
-#define BIT_SHIFT_8051_MBIST_START_PAUSE 26
-#define BIT_MASK_8051_MBIST_START_PAUSE 0x7
-#define BIT_8051_MBIST_START_PAUSE(x)                                          \
-	(((x) & BIT_MASK_8051_MBIST_START_PAUSE)                               \
-	 << BIT_SHIFT_8051_MBIST_START_PAUSE)
-#define BIT_GET_8051_MBIST_START_PAUSE(x)                                      \
-	(((x) >> BIT_SHIFT_8051_MBIST_START_PAUSE) &                           \
-	 BIT_MASK_8051_MBIST_START_PAUSE)
-
-#define BIT_SHIFT_USB_MBIST_START_PAUSE 24
-#define BIT_MASK_USB_MBIST_START_PAUSE 0x3
-#define BIT_USB_MBIST_START_PAUSE(x)                                           \
-	(((x) & BIT_MASK_USB_MBIST_START_PAUSE)                                \
-	 << BIT_SHIFT_USB_MBIST_START_PAUSE)
-#define BIT_GET_USB_MBIST_START_PAUSE(x)                                       \
-	(((x) >> BIT_SHIFT_USB_MBIST_START_PAUSE) &                            \
-	 BIT_MASK_USB_MBIST_START_PAUSE)
-
-#define BIT_SHIFT_PCIE_MBIST_START_PAUSE 16
-#define BIT_MASK_PCIE_MBIST_START_PAUSE 0x3f
-#define BIT_PCIE_MBIST_START_PAUSE(x)                                          \
-	(((x) & BIT_MASK_PCIE_MBIST_START_PAUSE)                               \
-	 << BIT_SHIFT_PCIE_MBIST_START_PAUSE)
-#define BIT_GET_PCIE_MBIST_START_PAUSE(x)                                      \
-	(((x) >> BIT_SHIFT_PCIE_MBIST_START_PAUSE) &                           \
-	 BIT_MASK_PCIE_MBIST_START_PAUSE)
-
-/* 2 REG_MBIST_START_PAUSE			(Offset 0x0174) */
-
-#define BIT_SHIFT_MAC_MBIST_START_PAUSE 0
-#define BIT_MASK_MAC_MBIST_START_PAUSE 0xfff
-#define BIT_MAC_MBIST_START_PAUSE(x)                                           \
-	(((x) & BIT_MASK_MAC_MBIST_START_PAUSE)                                \
-	 << BIT_SHIFT_MAC_MBIST_START_PAUSE)
-#define BIT_GET_MAC_MBIST_START_PAUSE(x)                                       \
-	(((x) >> BIT_SHIFT_MAC_MBIST_START_PAUSE) &                            \
-	 BIT_MASK_MAC_MBIST_START_PAUSE)
-
-/* 2 REG_MBIST_DONE				(Offset 0x0178) */
-
-#define BIT_SHIFT_8051_MBIST_DONE 26
-#define BIT_MASK_8051_MBIST_DONE 0x7
-#define BIT_8051_MBIST_DONE(x)                                                 \
-	(((x) & BIT_MASK_8051_MBIST_DONE) << BIT_SHIFT_8051_MBIST_DONE)
-#define BIT_GET_8051_MBIST_DONE(x)                                             \
-	(((x) >> BIT_SHIFT_8051_MBIST_DONE) & BIT_MASK_8051_MBIST_DONE)
-
-#define BIT_SHIFT_USB_MBIST_DONE 24
-#define BIT_MASK_USB_MBIST_DONE 0x3
-#define BIT_USB_MBIST_DONE(x)                                                  \
-	(((x) & BIT_MASK_USB_MBIST_DONE) << BIT_SHIFT_USB_MBIST_DONE)
-#define BIT_GET_USB_MBIST_DONE(x)                                              \
-	(((x) >> BIT_SHIFT_USB_MBIST_DONE) & BIT_MASK_USB_MBIST_DONE)
-
-#define BIT_SHIFT_PCIE_MBIST_DONE 16
-#define BIT_MASK_PCIE_MBIST_DONE 0x3f
-#define BIT_PCIE_MBIST_DONE(x)                                                 \
-	(((x) & BIT_MASK_PCIE_MBIST_DONE) << BIT_SHIFT_PCIE_MBIST_DONE)
-#define BIT_GET_PCIE_MBIST_DONE(x)                                             \
-	(((x) >> BIT_SHIFT_PCIE_MBIST_DONE) & BIT_MASK_PCIE_MBIST_DONE)
-
-/* 2 REG_MBIST_DONE				(Offset 0x0178) */
-
-#define BIT_SHIFT_MAC_MBIST_DONE 0
-#define BIT_MASK_MAC_MBIST_DONE 0xfff
-#define BIT_MAC_MBIST_DONE(x)                                                  \
-	(((x) & BIT_MASK_MAC_MBIST_DONE) << BIT_SHIFT_MAC_MBIST_DONE)
-#define BIT_GET_MAC_MBIST_DONE(x)                                              \
-	(((x) >> BIT_SHIFT_MAC_MBIST_DONE) & BIT_MASK_MAC_MBIST_DONE)
-
-/* 2 REG_MBIST_FAIL_NRML			(Offset 0x017C) */
-
-#define BIT_SHIFT_MBIST_FAIL_NRML 0
-#define BIT_MASK_MBIST_FAIL_NRML 0xffffffffL
-#define BIT_MBIST_FAIL_NRML(x)                                                 \
-	(((x) & BIT_MASK_MBIST_FAIL_NRML) << BIT_SHIFT_MBIST_FAIL_NRML)
-#define BIT_GET_MBIST_FAIL_NRML(x)                                             \
-	(((x) >> BIT_SHIFT_MBIST_FAIL_NRML) & BIT_MASK_MBIST_FAIL_NRML)
-
-/* 2 REG_AES_DECRPT_DATA			(Offset 0x0180) */
-
-#define BIT_SHIFT_IPS_CFG_ADDR 0
-#define BIT_MASK_IPS_CFG_ADDR 0xff
-#define BIT_IPS_CFG_ADDR(x)                                                    \
-	(((x) & BIT_MASK_IPS_CFG_ADDR) << BIT_SHIFT_IPS_CFG_ADDR)
-#define BIT_GET_IPS_CFG_ADDR(x)                                                \
-	(((x) >> BIT_SHIFT_IPS_CFG_ADDR) & BIT_MASK_IPS_CFG_ADDR)
-
-/* 2 REG_AES_DECRPT_CFG			(Offset 0x0184) */
-
-#define BIT_SHIFT_IPS_CFG_DATA 0
-#define BIT_MASK_IPS_CFG_DATA 0xffffffffL
-#define BIT_IPS_CFG_DATA(x)                                                    \
-	(((x) & BIT_MASK_IPS_CFG_DATA) << BIT_SHIFT_IPS_CFG_DATA)
-#define BIT_GET_IPS_CFG_DATA(x)                                                \
-	(((x) >> BIT_SHIFT_IPS_CFG_DATA) & BIT_MASK_IPS_CFG_DATA)
-
-/* 2 REG_TMETER				(Offset 0x0190) */
-
-#define BIT_TEMP_VALID BIT(31)
-
-#define BIT_SHIFT_TEMP_VALUE 24
-#define BIT_MASK_TEMP_VALUE 0x3f
-#define BIT_TEMP_VALUE(x) (((x) & BIT_MASK_TEMP_VALUE) << BIT_SHIFT_TEMP_VALUE)
-#define BIT_GET_TEMP_VALUE(x)                                                  \
-	(((x) >> BIT_SHIFT_TEMP_VALUE) & BIT_MASK_TEMP_VALUE)
-
-#define BIT_SHIFT_REG_TMETER_TIMER 8
-#define BIT_MASK_REG_TMETER_TIMER 0xfff
-#define BIT_REG_TMETER_TIMER(x)                                                \
-	(((x) & BIT_MASK_REG_TMETER_TIMER) << BIT_SHIFT_REG_TMETER_TIMER)
-#define BIT_GET_REG_TMETER_TIMER(x)                                            \
-	(((x) >> BIT_SHIFT_REG_TMETER_TIMER) & BIT_MASK_REG_TMETER_TIMER)
-
-#define BIT_SHIFT_REG_TEMP_DELTA 2
-#define BIT_MASK_REG_TEMP_DELTA 0x3f
-#define BIT_REG_TEMP_DELTA(x)                                                  \
-	(((x) & BIT_MASK_REG_TEMP_DELTA) << BIT_SHIFT_REG_TEMP_DELTA)
-#define BIT_GET_REG_TEMP_DELTA(x)                                              \
-	(((x) >> BIT_SHIFT_REG_TEMP_DELTA) & BIT_MASK_REG_TEMP_DELTA)
-
-#define BIT_REG_TMETER_EN BIT(0)
-
-/* 2 REG_OSC_32K_CTRL			(Offset 0x0194) */
-
-#define BIT_SHIFT_OSC_32K_CLKGEN_0 16
-#define BIT_MASK_OSC_32K_CLKGEN_0 0xffff
-#define BIT_OSC_32K_CLKGEN_0(x)                                                \
-	(((x) & BIT_MASK_OSC_32K_CLKGEN_0) << BIT_SHIFT_OSC_32K_CLKGEN_0)
-#define BIT_GET_OSC_32K_CLKGEN_0(x)                                            \
-	(((x) >> BIT_SHIFT_OSC_32K_CLKGEN_0) & BIT_MASK_OSC_32K_CLKGEN_0)
-
-/* 2 REG_OSC_32K_CTRL			(Offset 0x0194) */
-
-#define BIT_SHIFT_OSC_32K_RES_COMP 4
-#define BIT_MASK_OSC_32K_RES_COMP 0x3
-#define BIT_OSC_32K_RES_COMP(x)                                                \
-	(((x) & BIT_MASK_OSC_32K_RES_COMP) << BIT_SHIFT_OSC_32K_RES_COMP)
-#define BIT_GET_OSC_32K_RES_COMP(x)                                            \
-	(((x) >> BIT_SHIFT_OSC_32K_RES_COMP) & BIT_MASK_OSC_32K_RES_COMP)
-
-#define BIT_OSC_32K_OUT_SEL BIT(3)
-
-/* 2 REG_OSC_32K_CTRL			(Offset 0x0194) */
-
-#define BIT_ISO_WL_2_OSC_32K BIT(1)
-
-/* 2 REG_OSC_32K_CTRL			(Offset 0x0194) */
-
-#define BIT_POW_CKGEN BIT(0)
-
-/* 2 REG_32K_CAL_REG1			(Offset 0x0198) */
-
-#define BIT_CAL_32K_REG_WR BIT(31)
-#define BIT_CAL_32K_DBG_SEL BIT(22)
-
-#define BIT_SHIFT_CAL_32K_REG_ADDR 16
-#define BIT_MASK_CAL_32K_REG_ADDR 0x3f
-#define BIT_CAL_32K_REG_ADDR(x)                                                \
-	(((x) & BIT_MASK_CAL_32K_REG_ADDR) << BIT_SHIFT_CAL_32K_REG_ADDR)
-#define BIT_GET_CAL_32K_REG_ADDR(x)                                            \
-	(((x) >> BIT_SHIFT_CAL_32K_REG_ADDR) & BIT_MASK_CAL_32K_REG_ADDR)
-
-/* 2 REG_32K_CAL_REG1			(Offset 0x0198) */
-
-#define BIT_SHIFT_CAL_32K_REG_DATA 0
-#define BIT_MASK_CAL_32K_REG_DATA 0xffff
-#define BIT_CAL_32K_REG_DATA(x)                                                \
-	(((x) & BIT_MASK_CAL_32K_REG_DATA) << BIT_SHIFT_CAL_32K_REG_DATA)
-#define BIT_GET_CAL_32K_REG_DATA(x)                                            \
-	(((x) >> BIT_SHIFT_CAL_32K_REG_DATA) & BIT_MASK_CAL_32K_REG_DATA)
-
-/* 2 REG_C2HEVT				(Offset 0x01A0) */
-
-#define BIT_SHIFT_C2HEVT_MSG 0
-#define BIT_MASK_C2HEVT_MSG 0xffffffffffffffffffffffffffffffffL
-#define BIT_C2HEVT_MSG(x) (((x) & BIT_MASK_C2HEVT_MSG) << BIT_SHIFT_C2HEVT_MSG)
-#define BIT_GET_C2HEVT_MSG(x)                                                  \
-	(((x) >> BIT_SHIFT_C2HEVT_MSG) & BIT_MASK_C2HEVT_MSG)
-
-/* 2 REG_SW_DEFINED_PAGE1			(Offset 0x01B8) */
-
-#define BIT_SHIFT_SW_DEFINED_PAGE1 0
-#define BIT_MASK_SW_DEFINED_PAGE1 0xffffffffffffffffL
-#define BIT_SW_DEFINED_PAGE1(x)                                                \
-	(((x) & BIT_MASK_SW_DEFINED_PAGE1) << BIT_SHIFT_SW_DEFINED_PAGE1)
-#define BIT_GET_SW_DEFINED_PAGE1(x)                                            \
-	(((x) >> BIT_SHIFT_SW_DEFINED_PAGE1) & BIT_MASK_SW_DEFINED_PAGE1)
-
-/* 2 REG_MCUTST_I				(Offset 0x01C0) */
-
-#define BIT_SHIFT_MCUDMSG_I 0
-#define BIT_MASK_MCUDMSG_I 0xffffffffL
-#define BIT_MCUDMSG_I(x) (((x) & BIT_MASK_MCUDMSG_I) << BIT_SHIFT_MCUDMSG_I)
-#define BIT_GET_MCUDMSG_I(x) (((x) >> BIT_SHIFT_MCUDMSG_I) & BIT_MASK_MCUDMSG_I)
-
-/* 2 REG_MCUTST_II				(Offset 0x01C4) */
-
-#define BIT_SHIFT_MCUDMSG_II 0
-#define BIT_MASK_MCUDMSG_II 0xffffffffL
-#define BIT_MCUDMSG_II(x) (((x) & BIT_MASK_MCUDMSG_II) << BIT_SHIFT_MCUDMSG_II)
-#define BIT_GET_MCUDMSG_II(x)                                                  \
-	(((x) >> BIT_SHIFT_MCUDMSG_II) & BIT_MASK_MCUDMSG_II)
-
-/* 2 REG_FMETHR				(Offset 0x01C8) */
-
-#define BIT_FMSG_INT BIT(31)
-
-#define BIT_SHIFT_FW_MSG 0
-#define BIT_MASK_FW_MSG 0xffffffffL
-#define BIT_FW_MSG(x) (((x) & BIT_MASK_FW_MSG) << BIT_SHIFT_FW_MSG)
-#define BIT_GET_FW_MSG(x) (((x) >> BIT_SHIFT_FW_MSG) & BIT_MASK_FW_MSG)
-
-/* 2 REG_HMETFR				(Offset 0x01CC) */
-
-#define BIT_SHIFT_HRCV_MSG 24
-#define BIT_MASK_HRCV_MSG 0xff
-#define BIT_HRCV_MSG(x) (((x) & BIT_MASK_HRCV_MSG) << BIT_SHIFT_HRCV_MSG)
-#define BIT_GET_HRCV_MSG(x) (((x) >> BIT_SHIFT_HRCV_MSG) & BIT_MASK_HRCV_MSG)
-
-#define BIT_INT_BOX3 BIT(3)
-#define BIT_INT_BOX2 BIT(2)
-#define BIT_INT_BOX1 BIT(1)
-#define BIT_INT_BOX0 BIT(0)
-
-/* 2 REG_HMEBOX0				(Offset 0x01D0) */
-
-#define BIT_SHIFT_HOST_MSG_0 0
-#define BIT_MASK_HOST_MSG_0 0xffffffffL
-#define BIT_HOST_MSG_0(x) (((x) & BIT_MASK_HOST_MSG_0) << BIT_SHIFT_HOST_MSG_0)
-#define BIT_GET_HOST_MSG_0(x)                                                  \
-	(((x) >> BIT_SHIFT_HOST_MSG_0) & BIT_MASK_HOST_MSG_0)
-
-/* 2 REG_HMEBOX1				(Offset 0x01D4) */
-
-#define BIT_SHIFT_HOST_MSG_1 0
-#define BIT_MASK_HOST_MSG_1 0xffffffffL
-#define BIT_HOST_MSG_1(x) (((x) & BIT_MASK_HOST_MSG_1) << BIT_SHIFT_HOST_MSG_1)
-#define BIT_GET_HOST_MSG_1(x)                                                  \
-	(((x) >> BIT_SHIFT_HOST_MSG_1) & BIT_MASK_HOST_MSG_1)
-
-/* 2 REG_HMEBOX2				(Offset 0x01D8) */
-
-#define BIT_SHIFT_HOST_MSG_2 0
-#define BIT_MASK_HOST_MSG_2 0xffffffffL
-#define BIT_HOST_MSG_2(x) (((x) & BIT_MASK_HOST_MSG_2) << BIT_SHIFT_HOST_MSG_2)
-#define BIT_GET_HOST_MSG_2(x)                                                  \
-	(((x) >> BIT_SHIFT_HOST_MSG_2) & BIT_MASK_HOST_MSG_2)
-
-/* 2 REG_HMEBOX3				(Offset 0x01DC) */
-
-#define BIT_SHIFT_HOST_MSG_3 0
-#define BIT_MASK_HOST_MSG_3 0xffffffffL
-#define BIT_HOST_MSG_3(x) (((x) & BIT_MASK_HOST_MSG_3) << BIT_SHIFT_HOST_MSG_3)
-#define BIT_GET_HOST_MSG_3(x)                                                  \
-	(((x) >> BIT_SHIFT_HOST_MSG_3) & BIT_MASK_HOST_MSG_3)
-
-/* 2 REG_LLT_INIT				(Offset 0x01E0) */
-
-#define BIT_SHIFT_LLTE_RWM 30
-#define BIT_MASK_LLTE_RWM 0x3
-#define BIT_LLTE_RWM(x) (((x) & BIT_MASK_LLTE_RWM) << BIT_SHIFT_LLTE_RWM)
-#define BIT_GET_LLTE_RWM(x) (((x) >> BIT_SHIFT_LLTE_RWM) & BIT_MASK_LLTE_RWM)
-
-/* 2 REG_LLT_INIT				(Offset 0x01E0) */
-
-#define BIT_SHIFT_LLTINI_PDATA_V1 16
-#define BIT_MASK_LLTINI_PDATA_V1 0xfff
-#define BIT_LLTINI_PDATA_V1(x)                                                 \
-	(((x) & BIT_MASK_LLTINI_PDATA_V1) << BIT_SHIFT_LLTINI_PDATA_V1)
-#define BIT_GET_LLTINI_PDATA_V1(x)                                             \
-	(((x) >> BIT_SHIFT_LLTINI_PDATA_V1) & BIT_MASK_LLTINI_PDATA_V1)
-
-/* 2 REG_LLT_INIT				(Offset 0x01E0) */
-
-#define BIT_SHIFT_LLTINI_HDATA_V1 0
-#define BIT_MASK_LLTINI_HDATA_V1 0xfff
-#define BIT_LLTINI_HDATA_V1(x)                                                 \
-	(((x) & BIT_MASK_LLTINI_HDATA_V1) << BIT_SHIFT_LLTINI_HDATA_V1)
-#define BIT_GET_LLTINI_HDATA_V1(x)                                             \
-	(((x) >> BIT_SHIFT_LLTINI_HDATA_V1) & BIT_MASK_LLTINI_HDATA_V1)
-
-/* 2 REG_LLT_INIT_ADDR			(Offset 0x01E4) */
-
-#define BIT_SHIFT_LLTINI_ADDR_V1 0
-#define BIT_MASK_LLTINI_ADDR_V1 0xfff
-#define BIT_LLTINI_ADDR_V1(x)                                                  \
-	(((x) & BIT_MASK_LLTINI_ADDR_V1) << BIT_SHIFT_LLTINI_ADDR_V1)
-#define BIT_GET_LLTINI_ADDR_V1(x)                                              \
-	(((x) >> BIT_SHIFT_LLTINI_ADDR_V1) & BIT_MASK_LLTINI_ADDR_V1)
-
-/* 2 REG_BB_ACCESS_CTRL			(Offset 0x01E8) */
-
-#define BIT_SHIFT_BB_WRITE_READ 30
-#define BIT_MASK_BB_WRITE_READ 0x3
-#define BIT_BB_WRITE_READ(x)                                                   \
-	(((x) & BIT_MASK_BB_WRITE_READ) << BIT_SHIFT_BB_WRITE_READ)
-#define BIT_GET_BB_WRITE_READ(x)                                               \
-	(((x) >> BIT_SHIFT_BB_WRITE_READ) & BIT_MASK_BB_WRITE_READ)
-
-/* 2 REG_BB_ACCESS_CTRL			(Offset 0x01E8) */
-
-#define BIT_SHIFT_BB_WRITE_EN 12
-#define BIT_MASK_BB_WRITE_EN 0xf
-#define BIT_BB_WRITE_EN(x)                                                     \
-	(((x) & BIT_MASK_BB_WRITE_EN) << BIT_SHIFT_BB_WRITE_EN)
-#define BIT_GET_BB_WRITE_EN(x)                                                 \
-	(((x) >> BIT_SHIFT_BB_WRITE_EN) & BIT_MASK_BB_WRITE_EN)
-
-#define BIT_SHIFT_BB_ADDR 2
-#define BIT_MASK_BB_ADDR 0x1ff
-#define BIT_BB_ADDR(x) (((x) & BIT_MASK_BB_ADDR) << BIT_SHIFT_BB_ADDR)
-#define BIT_GET_BB_ADDR(x) (((x) >> BIT_SHIFT_BB_ADDR) & BIT_MASK_BB_ADDR)
-
-/* 2 REG_BB_ACCESS_CTRL			(Offset 0x01E8) */
-
-#define BIT_BB_ERRACC BIT(0)
-
-/* 2 REG_BB_ACCESS_DATA			(Offset 0x01EC) */
-
-#define BIT_SHIFT_BB_DATA 0
-#define BIT_MASK_BB_DATA 0xffffffffL
-#define BIT_BB_DATA(x) (((x) & BIT_MASK_BB_DATA) << BIT_SHIFT_BB_DATA)
-#define BIT_GET_BB_DATA(x) (((x) >> BIT_SHIFT_BB_DATA) & BIT_MASK_BB_DATA)
-
-/* 2 REG_HMEBOX_E0				(Offset 0x01F0) */
-
-#define BIT_SHIFT_HMEBOX_E0 0
-#define BIT_MASK_HMEBOX_E0 0xffffffffL
-#define BIT_HMEBOX_E0(x) (((x) & BIT_MASK_HMEBOX_E0) << BIT_SHIFT_HMEBOX_E0)
-#define BIT_GET_HMEBOX_E0(x) (((x) >> BIT_SHIFT_HMEBOX_E0) & BIT_MASK_HMEBOX_E0)
-
-/* 2 REG_HMEBOX_E1				(Offset 0x01F4) */
-
-#define BIT_SHIFT_HMEBOX_E1 0
-#define BIT_MASK_HMEBOX_E1 0xffffffffL
-#define BIT_HMEBOX_E1(x) (((x) & BIT_MASK_HMEBOX_E1) << BIT_SHIFT_HMEBOX_E1)
-#define BIT_GET_HMEBOX_E1(x) (((x) >> BIT_SHIFT_HMEBOX_E1) & BIT_MASK_HMEBOX_E1)
-
-/* 2 REG_HMEBOX_E2				(Offset 0x01F8) */
-
-#define BIT_SHIFT_HMEBOX_E2 0
-#define BIT_MASK_HMEBOX_E2 0xffffffffL
-#define BIT_HMEBOX_E2(x) (((x) & BIT_MASK_HMEBOX_E2) << BIT_SHIFT_HMEBOX_E2)
-#define BIT_GET_HMEBOX_E2(x) (((x) >> BIT_SHIFT_HMEBOX_E2) & BIT_MASK_HMEBOX_E2)
-
-/* 2 REG_HMEBOX_E3				(Offset 0x01FC) */
-
-#define BIT_LD_RQPN BIT(31)
-
-#define BIT_SHIFT_HMEBOX_E3 0
-#define BIT_MASK_HMEBOX_E3 0xffffffffL
-#define BIT_HMEBOX_E3(x) (((x) & BIT_MASK_HMEBOX_E3) << BIT_SHIFT_HMEBOX_E3)
-#define BIT_GET_HMEBOX_E3(x) (((x) >> BIT_SHIFT_HMEBOX_E3) & BIT_MASK_HMEBOX_E3)
-
-/* 2 REG_FIFOPAGE_CTRL_1			(Offset 0x0200) */
-
-#define BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1 16
-#define BIT_MASK_TX_OQT_HE_FREE_SPACE_V1 0xff
-#define BIT_TX_OQT_HE_FREE_SPACE_V1(x)                                         \
-	(((x) & BIT_MASK_TX_OQT_HE_FREE_SPACE_V1)                              \
-	 << BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1)
-#define BIT_GET_TX_OQT_HE_FREE_SPACE_V1(x)                                     \
-	(((x) >> BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1) &                          \
-	 BIT_MASK_TX_OQT_HE_FREE_SPACE_V1)
-
-/* 2 REG_FIFOPAGE_CTRL_1			(Offset 0x0200) */
-
-#define BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1 0
-#define BIT_MASK_TX_OQT_NL_FREE_SPACE_V1 0xff
-#define BIT_TX_OQT_NL_FREE_SPACE_V1(x)                                         \
-	(((x) & BIT_MASK_TX_OQT_NL_FREE_SPACE_V1)                              \
-	 << BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1)
-#define BIT_GET_TX_OQT_NL_FREE_SPACE_V1(x)                                     \
-	(((x) >> BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1) &                          \
-	 BIT_MASK_TX_OQT_NL_FREE_SPACE_V1)
-
-/* 2 REG_FIFOPAGE_CTRL_2			(Offset 0x0204) */
-
-#define BIT_BCN_VALID_1_V1 BIT(31)
-
-/* 2 REG_FIFOPAGE_CTRL_2			(Offset 0x0204) */
-
-#define BIT_SHIFT_BCN_HEAD_1_V1 16
-#define BIT_MASK_BCN_HEAD_1_V1 0xfff
-#define BIT_BCN_HEAD_1_V1(x)                                                   \
-	(((x) & BIT_MASK_BCN_HEAD_1_V1) << BIT_SHIFT_BCN_HEAD_1_V1)
-#define BIT_GET_BCN_HEAD_1_V1(x)                                               \
-	(((x) >> BIT_SHIFT_BCN_HEAD_1_V1) & BIT_MASK_BCN_HEAD_1_V1)
-
-#define BIT_BCN_VALID_V1 BIT(15)
-
-/* 2 REG_FIFOPAGE_CTRL_2			(Offset 0x0204) */
-
-#define BIT_SHIFT_BCN_HEAD_V1 0
-#define BIT_MASK_BCN_HEAD_V1 0xfff
-#define BIT_BCN_HEAD_V1(x)                                                     \
-	(((x) & BIT_MASK_BCN_HEAD_V1) << BIT_SHIFT_BCN_HEAD_V1)
-#define BIT_GET_BCN_HEAD_V1(x)                                                 \
-	(((x) >> BIT_SHIFT_BCN_HEAD_V1) & BIT_MASK_BCN_HEAD_V1)
-
-/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */
-
-#define BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1 24
-#define BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1 0xff
-#define BIT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x)                                  \
-	(((x) & BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1)                       \
-	 << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1)
-#define BIT_GET_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x)                              \
-	(((x) >> BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1) &                   \
-	 BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1)
-
-/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */
-
-#define BIT_SHIFT_LLT_FREE_PAGE_V1 8
-#define BIT_MASK_LLT_FREE_PAGE_V1 0xffff
-#define BIT_LLT_FREE_PAGE_V1(x)                                                \
-	(((x) & BIT_MASK_LLT_FREE_PAGE_V1) << BIT_SHIFT_LLT_FREE_PAGE_V1)
-#define BIT_GET_LLT_FREE_PAGE_V1(x)                                            \
-	(((x) >> BIT_SHIFT_LLT_FREE_PAGE_V1) & BIT_MASK_LLT_FREE_PAGE_V1)
-
-/* 2 REG_DWBCN0_CTRL				(Offset 0x0208) */
-
-#define BIT_SHIFT_BLK_DESC_NUM 4
-#define BIT_MASK_BLK_DESC_NUM 0xf
-#define BIT_BLK_DESC_NUM(x)                                                    \
-	(((x) & BIT_MASK_BLK_DESC_NUM) << BIT_SHIFT_BLK_DESC_NUM)
-#define BIT_GET_BLK_DESC_NUM(x)                                                \
-	(((x) >> BIT_SHIFT_BLK_DESC_NUM) & BIT_MASK_BLK_DESC_NUM)
-
-/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */
-
-#define BIT_R_BCN_HEAD_SEL BIT(3)
-#define BIT_R_EN_BCN_SW_HEAD_SEL BIT(2)
-#define BIT_LLT_DBG_SEL BIT(1)
-#define BIT_AUTO_INIT_LLT_V1 BIT(0)
-
-/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */
-
-#define BIT_EM_CHKSUM_FIN BIT(31)
-#define BIT_EMN_PCIE_DMA_MOD BIT(30)
-
-/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */
-
-#define BIT_EN_TXQUE_CLR BIT(29)
-#define BIT_EN_PCIE_FIFO_MODE BIT(28)
-
-/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */
-
-#define BIT_SHIFT_PG_UNDER_TH_V1 16
-#define BIT_MASK_PG_UNDER_TH_V1 0xfff
-#define BIT_PG_UNDER_TH_V1(x)                                                  \
-	(((x) & BIT_MASK_PG_UNDER_TH_V1) << BIT_SHIFT_PG_UNDER_TH_V1)
-#define BIT_GET_PG_UNDER_TH_V1(x)                                              \
-	(((x) >> BIT_SHIFT_PG_UNDER_TH_V1) & BIT_MASK_PG_UNDER_TH_V1)
-
-/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */
-
-#define BIT_RESTORE_H2C_ADDRESS BIT(15)
-
-/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */
-
-#define BIT_SDIO_TXDESC_CHKSUM_EN BIT(13)
-#define BIT_RST_RDPTR BIT(12)
-#define BIT_RST_WRPTR BIT(11)
-#define BIT_CHK_PG_TH_EN BIT(10)
-#define BIT_DROP_DATA_EN BIT(9)
-#define BIT_CHECK_OFFSET_EN BIT(8)
-
-#define BIT_SHIFT_CHECK_OFFSET 0
-#define BIT_MASK_CHECK_OFFSET 0xff
-#define BIT_CHECK_OFFSET(x)                                                    \
-	(((x) & BIT_MASK_CHECK_OFFSET) << BIT_SHIFT_CHECK_OFFSET)
-#define BIT_GET_CHECK_OFFSET(x)                                                \
-	(((x) >> BIT_SHIFT_CHECK_OFFSET) & BIT_MASK_CHECK_OFFSET)
-
-/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */
-
-#define BIT_HI_OQT_UDN BIT(17)
-#define BIT_HI_OQT_OVF BIT(16)
-#define BIT_PAYLOAD_CHKSUM_ERR BIT(15)
-#define BIT_PAYLOAD_UDN BIT(14)
-#define BIT_PAYLOAD_OVF BIT(13)
-#define BIT_DSC_CHKSUM_FAIL BIT(12)
-#define BIT_UNKNOWN_QSEL BIT(11)
-#define BIT_EP_QSEL_DIFF BIT(10)
-#define BIT_TX_OFFS_UNMATCH BIT(9)
-#define BIT_TXOQT_UDN BIT(8)
-#define BIT_TXOQT_OVF BIT(7)
-#define BIT_TXDMA_SFF_UDN BIT(6)
-#define BIT_TXDMA_SFF_OVF BIT(5)
-#define BIT_LLT_NULL_PG BIT(4)
-#define BIT_PAGE_UDN BIT(3)
-#define BIT_PAGE_OVF BIT(2)
-#define BIT_TXFF_PG_UDN BIT(1)
-#define BIT_TXFF_PG_OVF BIT(0)
-
-/* 2 REG_TQPNT1				(Offset 0x0218) */
-
-#define BIT_SHIFT_HPQ_HIGH_TH_V1 16
-#define BIT_MASK_HPQ_HIGH_TH_V1 0xfff
-#define BIT_HPQ_HIGH_TH_V1(x)                                                  \
-	(((x) & BIT_MASK_HPQ_HIGH_TH_V1) << BIT_SHIFT_HPQ_HIGH_TH_V1)
-#define BIT_GET_HPQ_HIGH_TH_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HPQ_HIGH_TH_V1) & BIT_MASK_HPQ_HIGH_TH_V1)
-
-/* 2 REG_TQPNT1				(Offset 0x0218) */
-
-#define BIT_SHIFT_HPQ_LOW_TH_V1 0
-#define BIT_MASK_HPQ_LOW_TH_V1 0xfff
-#define BIT_HPQ_LOW_TH_V1(x)                                                   \
-	(((x) & BIT_MASK_HPQ_LOW_TH_V1) << BIT_SHIFT_HPQ_LOW_TH_V1)
-#define BIT_GET_HPQ_LOW_TH_V1(x)                                               \
-	(((x) >> BIT_SHIFT_HPQ_LOW_TH_V1) & BIT_MASK_HPQ_LOW_TH_V1)
-
-/* 2 REG_TQPNT2				(Offset 0x021C) */
-
-#define BIT_SHIFT_NPQ_HIGH_TH_V1 16
-#define BIT_MASK_NPQ_HIGH_TH_V1 0xfff
-#define BIT_NPQ_HIGH_TH_V1(x)                                                  \
-	(((x) & BIT_MASK_NPQ_HIGH_TH_V1) << BIT_SHIFT_NPQ_HIGH_TH_V1)
-#define BIT_GET_NPQ_HIGH_TH_V1(x)                                              \
-	(((x) >> BIT_SHIFT_NPQ_HIGH_TH_V1) & BIT_MASK_NPQ_HIGH_TH_V1)
-
-/* 2 REG_TQPNT2				(Offset 0x021C) */
-
-#define BIT_SHIFT_NPQ_LOW_TH_V1 0
-#define BIT_MASK_NPQ_LOW_TH_V1 0xfff
-#define BIT_NPQ_LOW_TH_V1(x)                                                   \
-	(((x) & BIT_MASK_NPQ_LOW_TH_V1) << BIT_SHIFT_NPQ_LOW_TH_V1)
-#define BIT_GET_NPQ_LOW_TH_V1(x)                                               \
-	(((x) >> BIT_SHIFT_NPQ_LOW_TH_V1) & BIT_MASK_NPQ_LOW_TH_V1)
-
-/* 2 REG_TQPNT3				(Offset 0x0220) */
-
-#define BIT_SHIFT_LPQ_HIGH_TH_V1 16
-#define BIT_MASK_LPQ_HIGH_TH_V1 0xfff
-#define BIT_LPQ_HIGH_TH_V1(x)                                                  \
-	(((x) & BIT_MASK_LPQ_HIGH_TH_V1) << BIT_SHIFT_LPQ_HIGH_TH_V1)
-#define BIT_GET_LPQ_HIGH_TH_V1(x)                                              \
-	(((x) >> BIT_SHIFT_LPQ_HIGH_TH_V1) & BIT_MASK_LPQ_HIGH_TH_V1)
-
-/* 2 REG_TQPNT3				(Offset 0x0220) */
-
-#define BIT_SHIFT_LPQ_LOW_TH_V1 0
-#define BIT_MASK_LPQ_LOW_TH_V1 0xfff
-#define BIT_LPQ_LOW_TH_V1(x)                                                   \
-	(((x) & BIT_MASK_LPQ_LOW_TH_V1) << BIT_SHIFT_LPQ_LOW_TH_V1)
-#define BIT_GET_LPQ_LOW_TH_V1(x)                                               \
-	(((x) >> BIT_SHIFT_LPQ_LOW_TH_V1) & BIT_MASK_LPQ_LOW_TH_V1)
-
-/* 2 REG_TQPNT4				(Offset 0x0224) */
-
-#define BIT_SHIFT_EXQ_HIGH_TH_V1 16
-#define BIT_MASK_EXQ_HIGH_TH_V1 0xfff
-#define BIT_EXQ_HIGH_TH_V1(x)                                                  \
-	(((x) & BIT_MASK_EXQ_HIGH_TH_V1) << BIT_SHIFT_EXQ_HIGH_TH_V1)
-#define BIT_GET_EXQ_HIGH_TH_V1(x)                                              \
-	(((x) >> BIT_SHIFT_EXQ_HIGH_TH_V1) & BIT_MASK_EXQ_HIGH_TH_V1)
-
-/* 2 REG_TQPNT4				(Offset 0x0224) */
-
-#define BIT_SHIFT_EXQ_LOW_TH_V1 0
-#define BIT_MASK_EXQ_LOW_TH_V1 0xfff
-#define BIT_EXQ_LOW_TH_V1(x)                                                   \
-	(((x) & BIT_MASK_EXQ_LOW_TH_V1) << BIT_SHIFT_EXQ_LOW_TH_V1)
-#define BIT_GET_EXQ_LOW_TH_V1(x)                                               \
-	(((x) >> BIT_SHIFT_EXQ_LOW_TH_V1) & BIT_MASK_EXQ_LOW_TH_V1)
-
-/* 2 REG_RQPN_CTRL_1				(Offset 0x0228) */
-
-#define BIT_SHIFT_TXPKTNUM_H 16
-#define BIT_MASK_TXPKTNUM_H 0xffff
-#define BIT_TXPKTNUM_H(x) (((x) & BIT_MASK_TXPKTNUM_H) << BIT_SHIFT_TXPKTNUM_H)
-#define BIT_GET_TXPKTNUM_H(x)                                                  \
-	(((x) >> BIT_SHIFT_TXPKTNUM_H) & BIT_MASK_TXPKTNUM_H)
-
-/* 2 REG_RQPN_CTRL_1				(Offset 0x0228) */
-
-#define BIT_SHIFT_TXPKTNUM_V2 0
-#define BIT_MASK_TXPKTNUM_V2 0xffff
-#define BIT_TXPKTNUM_V2(x)                                                     \
-	(((x) & BIT_MASK_TXPKTNUM_V2) << BIT_SHIFT_TXPKTNUM_V2)
-#define BIT_GET_TXPKTNUM_V2(x)                                                 \
-	(((x) >> BIT_SHIFT_TXPKTNUM_V2) & BIT_MASK_TXPKTNUM_V2)
-
-/* 2 REG_RQPN_CTRL_2				(Offset 0x022C) */
-
-#define BIT_EXQ_PUBLIC_DIS_V1 BIT(19)
-#define BIT_NPQ_PUBLIC_DIS_V1 BIT(18)
-#define BIT_LPQ_PUBLIC_DIS_V1 BIT(17)
-#define BIT_HPQ_PUBLIC_DIS_V1 BIT(16)
-
-/* 2 REG_FIFOPAGE_INFO_1			(Offset 0x0230) */
-
-#define BIT_SHIFT_HPQ_AVAL_PG_V1 16
-#define BIT_MASK_HPQ_AVAL_PG_V1 0xfff
-#define BIT_HPQ_AVAL_PG_V1(x)                                                  \
-	(((x) & BIT_MASK_HPQ_AVAL_PG_V1) << BIT_SHIFT_HPQ_AVAL_PG_V1)
-#define BIT_GET_HPQ_AVAL_PG_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HPQ_AVAL_PG_V1) & BIT_MASK_HPQ_AVAL_PG_V1)
-
-#define BIT_SHIFT_HPQ_V1 0
-#define BIT_MASK_HPQ_V1 0xfff
-#define BIT_HPQ_V1(x) (((x) & BIT_MASK_HPQ_V1) << BIT_SHIFT_HPQ_V1)
-#define BIT_GET_HPQ_V1(x) (((x) >> BIT_SHIFT_HPQ_V1) & BIT_MASK_HPQ_V1)
-
-/* 2 REG_FIFOPAGE_INFO_2			(Offset 0x0234) */
-
-#define BIT_SHIFT_LPQ_AVAL_PG_V1 16
-#define BIT_MASK_LPQ_AVAL_PG_V1 0xfff
-#define BIT_LPQ_AVAL_PG_V1(x)                                                  \
-	(((x) & BIT_MASK_LPQ_AVAL_PG_V1) << BIT_SHIFT_LPQ_AVAL_PG_V1)
-#define BIT_GET_LPQ_AVAL_PG_V1(x)                                              \
-	(((x) >> BIT_SHIFT_LPQ_AVAL_PG_V1) & BIT_MASK_LPQ_AVAL_PG_V1)
-
-#define BIT_SHIFT_LPQ_V1 0
-#define BIT_MASK_LPQ_V1 0xfff
-#define BIT_LPQ_V1(x) (((x) & BIT_MASK_LPQ_V1) << BIT_SHIFT_LPQ_V1)
-#define BIT_GET_LPQ_V1(x) (((x) >> BIT_SHIFT_LPQ_V1) & BIT_MASK_LPQ_V1)
-
-/* 2 REG_FIFOPAGE_INFO_3			(Offset 0x0238) */
-
-#define BIT_SHIFT_NPQ_AVAL_PG_V1 16
-#define BIT_MASK_NPQ_AVAL_PG_V1 0xfff
-#define BIT_NPQ_AVAL_PG_V1(x)                                                  \
-	(((x) & BIT_MASK_NPQ_AVAL_PG_V1) << BIT_SHIFT_NPQ_AVAL_PG_V1)
-#define BIT_GET_NPQ_AVAL_PG_V1(x)                                              \
-	(((x) >> BIT_SHIFT_NPQ_AVAL_PG_V1) & BIT_MASK_NPQ_AVAL_PG_V1)
-
-/* 2 REG_FIFOPAGE_INFO_3			(Offset 0x0238) */
-
-#define BIT_SHIFT_NPQ_V1 0
-#define BIT_MASK_NPQ_V1 0xfff
-#define BIT_NPQ_V1(x) (((x) & BIT_MASK_NPQ_V1) << BIT_SHIFT_NPQ_V1)
-#define BIT_GET_NPQ_V1(x) (((x) >> BIT_SHIFT_NPQ_V1) & BIT_MASK_NPQ_V1)
-
-/* 2 REG_FIFOPAGE_INFO_4			(Offset 0x023C) */
-
-#define BIT_SHIFT_EXQ_AVAL_PG_V1 16
-#define BIT_MASK_EXQ_AVAL_PG_V1 0xfff
-#define BIT_EXQ_AVAL_PG_V1(x)                                                  \
-	(((x) & BIT_MASK_EXQ_AVAL_PG_V1) << BIT_SHIFT_EXQ_AVAL_PG_V1)
-#define BIT_GET_EXQ_AVAL_PG_V1(x)                                              \
-	(((x) >> BIT_SHIFT_EXQ_AVAL_PG_V1) & BIT_MASK_EXQ_AVAL_PG_V1)
-
-#define BIT_SHIFT_EXQ_V1 0
-#define BIT_MASK_EXQ_V1 0xfff
-#define BIT_EXQ_V1(x) (((x) & BIT_MASK_EXQ_V1) << BIT_SHIFT_EXQ_V1)
-#define BIT_GET_EXQ_V1(x) (((x) >> BIT_SHIFT_EXQ_V1) & BIT_MASK_EXQ_V1)
-
-/* 2 REG_FIFOPAGE_INFO_5			(Offset 0x0240) */
-
-#define BIT_SHIFT_PUBQ_AVAL_PG_V1 16
-#define BIT_MASK_PUBQ_AVAL_PG_V1 0xfff
-#define BIT_PUBQ_AVAL_PG_V1(x)                                                 \
-	(((x) & BIT_MASK_PUBQ_AVAL_PG_V1) << BIT_SHIFT_PUBQ_AVAL_PG_V1)
-#define BIT_GET_PUBQ_AVAL_PG_V1(x)                                             \
-	(((x) >> BIT_SHIFT_PUBQ_AVAL_PG_V1) & BIT_MASK_PUBQ_AVAL_PG_V1)
-
-#define BIT_SHIFT_PUBQ_V1 0
-#define BIT_MASK_PUBQ_V1 0xfff
-#define BIT_PUBQ_V1(x) (((x) & BIT_MASK_PUBQ_V1) << BIT_SHIFT_PUBQ_V1)
-#define BIT_GET_PUBQ_V1(x) (((x) >> BIT_SHIFT_PUBQ_V1) & BIT_MASK_PUBQ_V1)
-
-/* 2 REG_H2C_HEAD				(Offset 0x0244) */
-
-#define BIT_SHIFT_H2C_HEAD 0
-#define BIT_MASK_H2C_HEAD 0x3ffff
-#define BIT_H2C_HEAD(x) (((x) & BIT_MASK_H2C_HEAD) << BIT_SHIFT_H2C_HEAD)
-#define BIT_GET_H2C_HEAD(x) (((x) >> BIT_SHIFT_H2C_HEAD) & BIT_MASK_H2C_HEAD)
-
-/* 2 REG_H2C_TAIL				(Offset 0x0248) */
-
-#define BIT_SHIFT_H2C_TAIL 0
-#define BIT_MASK_H2C_TAIL 0x3ffff
-#define BIT_H2C_TAIL(x) (((x) & BIT_MASK_H2C_TAIL) << BIT_SHIFT_H2C_TAIL)
-#define BIT_GET_H2C_TAIL(x) (((x) >> BIT_SHIFT_H2C_TAIL) & BIT_MASK_H2C_TAIL)
-
-/* 2 REG_H2C_READ_ADDR			(Offset 0x024C) */
-
-#define BIT_SHIFT_H2C_READ_ADDR 0
-#define BIT_MASK_H2C_READ_ADDR 0x3ffff
-#define BIT_H2C_READ_ADDR(x)                                                   \
-	(((x) & BIT_MASK_H2C_READ_ADDR) << BIT_SHIFT_H2C_READ_ADDR)
-#define BIT_GET_H2C_READ_ADDR(x)                                               \
-	(((x) >> BIT_SHIFT_H2C_READ_ADDR) & BIT_MASK_H2C_READ_ADDR)
-
-/* 2 REG_H2C_WR_ADDR				(Offset 0x0250) */
-
-#define BIT_SHIFT_H2C_WR_ADDR 0
-#define BIT_MASK_H2C_WR_ADDR 0x3ffff
-#define BIT_H2C_WR_ADDR(x)                                                     \
-	(((x) & BIT_MASK_H2C_WR_ADDR) << BIT_SHIFT_H2C_WR_ADDR)
-#define BIT_GET_H2C_WR_ADDR(x)                                                 \
-	(((x) >> BIT_SHIFT_H2C_WR_ADDR) & BIT_MASK_H2C_WR_ADDR)
-
-/* 2 REG_H2C_INFO				(Offset 0x0254) */
-
-#define BIT_H2C_SPACE_VLD BIT(3)
-#define BIT_H2C_WR_ADDR_RST BIT(2)
-
-#define BIT_SHIFT_H2C_LEN_SEL 0
-#define BIT_MASK_H2C_LEN_SEL 0x3
-#define BIT_H2C_LEN_SEL(x)                                                     \
-	(((x) & BIT_MASK_H2C_LEN_SEL) << BIT_SHIFT_H2C_LEN_SEL)
-#define BIT_GET_H2C_LEN_SEL(x)                                                 \
-	(((x) >> BIT_SHIFT_H2C_LEN_SEL) & BIT_MASK_H2C_LEN_SEL)
-
-/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */
-
-#define BIT_SHIFT_RXDMA_AGG_OLD_MOD 24
-#define BIT_MASK_RXDMA_AGG_OLD_MOD 0xff
-#define BIT_RXDMA_AGG_OLD_MOD(x)                                               \
-	(((x) & BIT_MASK_RXDMA_AGG_OLD_MOD) << BIT_SHIFT_RXDMA_AGG_OLD_MOD)
-#define BIT_GET_RXDMA_AGG_OLD_MOD(x)                                           \
-	(((x) >> BIT_SHIFT_RXDMA_AGG_OLD_MOD) & BIT_MASK_RXDMA_AGG_OLD_MOD)
-
-/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */
-
-#define BIT_SHIFT_PKT_NUM_WOL 16
-#define BIT_MASK_PKT_NUM_WOL 0xff
-#define BIT_PKT_NUM_WOL(x)                                                     \
-	(((x) & BIT_MASK_PKT_NUM_WOL) << BIT_SHIFT_PKT_NUM_WOL)
-#define BIT_GET_PKT_NUM_WOL(x)                                                 \
-	(((x) >> BIT_SHIFT_PKT_NUM_WOL) & BIT_MASK_PKT_NUM_WOL)
-
-/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */
-
-#define BIT_SHIFT_DMA_AGG_TO 8
-#define BIT_MASK_DMA_AGG_TO 0xf
-#define BIT_DMA_AGG_TO(x) (((x) & BIT_MASK_DMA_AGG_TO) << BIT_SHIFT_DMA_AGG_TO)
-#define BIT_GET_DMA_AGG_TO(x)                                                  \
-	(((x) >> BIT_SHIFT_DMA_AGG_TO) & BIT_MASK_DMA_AGG_TO)
-
-/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */
-
-#define BIT_SHIFT_RXDMA_AGG_PG_TH_V1 0
-#define BIT_MASK_RXDMA_AGG_PG_TH_V1 0xf
-#define BIT_RXDMA_AGG_PG_TH_V1(x)                                              \
-	(((x) & BIT_MASK_RXDMA_AGG_PG_TH_V1) << BIT_SHIFT_RXDMA_AGG_PG_TH_V1)
-#define BIT_GET_RXDMA_AGG_PG_TH_V1(x)                                          \
-	(((x) >> BIT_SHIFT_RXDMA_AGG_PG_TH_V1) & BIT_MASK_RXDMA_AGG_PG_TH_V1)
-
-/* 2 REG_RXPKT_NUM				(Offset 0x0284) */
-
-#define BIT_SHIFT_RXPKT_NUM 24
-#define BIT_MASK_RXPKT_NUM 0xff
-#define BIT_RXPKT_NUM(x) (((x) & BIT_MASK_RXPKT_NUM) << BIT_SHIFT_RXPKT_NUM)
-#define BIT_GET_RXPKT_NUM(x) (((x) >> BIT_SHIFT_RXPKT_NUM) & BIT_MASK_RXPKT_NUM)
-
-/* 2 REG_RXPKT_NUM				(Offset 0x0284) */
-
-#define BIT_SHIFT_FW_UPD_RDPTR19_TO_16 20
-#define BIT_MASK_FW_UPD_RDPTR19_TO_16 0xf
-#define BIT_FW_UPD_RDPTR19_TO_16(x)                                            \
-	(((x) & BIT_MASK_FW_UPD_RDPTR19_TO_16)                                 \
-	 << BIT_SHIFT_FW_UPD_RDPTR19_TO_16)
-#define BIT_GET_FW_UPD_RDPTR19_TO_16(x)                                        \
-	(((x) >> BIT_SHIFT_FW_UPD_RDPTR19_TO_16) &                             \
-	 BIT_MASK_FW_UPD_RDPTR19_TO_16)
-
-/* 2 REG_RXPKT_NUM				(Offset 0x0284) */
-
-#define BIT_RXDMA_REQ BIT(19)
-#define BIT_RW_RELEASE_EN BIT(18)
-#define BIT_RXDMA_IDLE BIT(17)
-#define BIT_RXPKT_RELEASE_POLL BIT(16)
-
-#define BIT_SHIFT_FW_UPD_RDPTR 0
-#define BIT_MASK_FW_UPD_RDPTR 0xffff
-#define BIT_FW_UPD_RDPTR(x)                                                    \
-	(((x) & BIT_MASK_FW_UPD_RDPTR) << BIT_SHIFT_FW_UPD_RDPTR)
-#define BIT_GET_FW_UPD_RDPTR(x)                                                \
-	(((x) >> BIT_SHIFT_FW_UPD_RDPTR) & BIT_MASK_FW_UPD_RDPTR)
-
-/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */
-
-#define BIT_C2H_PKT_OVF BIT(7)
-
-/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */
-
-#define BIT_AGG_CONFGI_ISSUE BIT(6)
-
-/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */
-
-#define BIT_FW_POLL_ISSUE BIT(5)
-#define BIT_RX_DATA_UDN BIT(4)
-#define BIT_RX_SFF_UDN BIT(3)
-#define BIT_RX_SFF_OVF BIT(2)
-
-/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */
-
-#define BIT_RXPKT_OVF BIT(0)
-
-/* 2 REG_RXDMA_DPR				(Offset 0x028C) */
-
-#define BIT_SHIFT_RDE_DEBUG 0
-#define BIT_MASK_RDE_DEBUG 0xffffffffL
-#define BIT_RDE_DEBUG(x) (((x) & BIT_MASK_RDE_DEBUG) << BIT_SHIFT_RDE_DEBUG)
-#define BIT_GET_RDE_DEBUG(x) (((x) >> BIT_SHIFT_RDE_DEBUG) & BIT_MASK_RDE_DEBUG)
-
-/* 2 REG_RXDMA_MODE				(Offset 0x0290) */
-
-#define BIT_SHIFT_PKTNUM_TH_V2 24
-#define BIT_MASK_PKTNUM_TH_V2 0x1f
-#define BIT_PKTNUM_TH_V2(x)                                                    \
-	(((x) & BIT_MASK_PKTNUM_TH_V2) << BIT_SHIFT_PKTNUM_TH_V2)
-#define BIT_GET_PKTNUM_TH_V2(x)                                                \
-	(((x) >> BIT_SHIFT_PKTNUM_TH_V2) & BIT_MASK_PKTNUM_TH_V2)
-
-#define BIT_TXBA_BREAK_USBAGG BIT(23)
-
-#define BIT_SHIFT_PKTLEN_PARA 16
-#define BIT_MASK_PKTLEN_PARA 0x7
-#define BIT_PKTLEN_PARA(x)                                                     \
-	(((x) & BIT_MASK_PKTLEN_PARA) << BIT_SHIFT_PKTLEN_PARA)
-#define BIT_GET_PKTLEN_PARA(x)                                                 \
-	(((x) >> BIT_SHIFT_PKTLEN_PARA) & BIT_MASK_PKTLEN_PARA)
-
-/* 2 REG_RXDMA_MODE				(Offset 0x0290) */
-
-#define BIT_SHIFT_BURST_SIZE 4
-#define BIT_MASK_BURST_SIZE 0x3
-#define BIT_BURST_SIZE(x) (((x) & BIT_MASK_BURST_SIZE) << BIT_SHIFT_BURST_SIZE)
-#define BIT_GET_BURST_SIZE(x)                                                  \
-	(((x) >> BIT_SHIFT_BURST_SIZE) & BIT_MASK_BURST_SIZE)
-
-#define BIT_SHIFT_BURST_CNT 2
-#define BIT_MASK_BURST_CNT 0x3
-#define BIT_BURST_CNT(x) (((x) & BIT_MASK_BURST_CNT) << BIT_SHIFT_BURST_CNT)
-#define BIT_GET_BURST_CNT(x) (((x) >> BIT_SHIFT_BURST_CNT) & BIT_MASK_BURST_CNT)
-
-/* 2 REG_RXDMA_MODE				(Offset 0x0290) */
-
-#define BIT_DMA_MODE BIT(1)
-
-/* 2 REG_C2H_PKT				(Offset 0x0294) */
-
-#define BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19 24
-#define BIT_MASK_R_C2H_STR_ADDR_16_TO_19 0xf
-#define BIT_R_C2H_STR_ADDR_16_TO_19(x)                                         \
-	(((x) & BIT_MASK_R_C2H_STR_ADDR_16_TO_19)                              \
-	 << BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19)
-#define BIT_GET_R_C2H_STR_ADDR_16_TO_19(x)                                     \
-	(((x) >> BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19) &                          \
-	 BIT_MASK_R_C2H_STR_ADDR_16_TO_19)
-
-#define BIT_SHIFT_MDIO_PHY_ADDR 24
-#define BIT_MASK_MDIO_PHY_ADDR 0x1f
-#define BIT_MDIO_PHY_ADDR(x)                                                   \
-	(((x) & BIT_MASK_MDIO_PHY_ADDR) << BIT_SHIFT_MDIO_PHY_ADDR)
-#define BIT_GET_MDIO_PHY_ADDR(x)                                               \
-	(((x) >> BIT_SHIFT_MDIO_PHY_ADDR) & BIT_MASK_MDIO_PHY_ADDR)
-
-/* 2 REG_C2H_PKT				(Offset 0x0294) */
-
-#define BIT_R_C2H_PKT_REQ BIT(16)
-#define BIT_RX_CLOSE_EN BIT(15)
-#define BIT_STOP_BCNQ BIT(14)
-#define BIT_STOP_MGQ BIT(13)
-#define BIT_STOP_VOQ BIT(12)
-#define BIT_STOP_VIQ BIT(11)
-#define BIT_STOP_BEQ BIT(10)
-#define BIT_STOP_BKQ BIT(9)
-#define BIT_STOP_RXQ BIT(8)
-#define BIT_STOP_HI7Q BIT(7)
-#define BIT_STOP_HI6Q BIT(6)
-#define BIT_STOP_HI5Q BIT(5)
-#define BIT_STOP_HI4Q BIT(4)
-#define BIT_STOP_HI3Q BIT(3)
-#define BIT_STOP_HI2Q BIT(2)
-#define BIT_STOP_HI1Q BIT(1)
-
-#define BIT_SHIFT_R_C2H_STR_ADDR 0
-#define BIT_MASK_R_C2H_STR_ADDR 0xffff
-#define BIT_R_C2H_STR_ADDR(x)                                                  \
-	(((x) & BIT_MASK_R_C2H_STR_ADDR) << BIT_SHIFT_R_C2H_STR_ADDR)
-#define BIT_GET_R_C2H_STR_ADDR(x)                                              \
-	(((x) >> BIT_SHIFT_R_C2H_STR_ADDR) & BIT_MASK_R_C2H_STR_ADDR)
-
-#define BIT_STOP_HI0Q BIT(0)
-
-/* 2 REG_FWFF_C2H				(Offset 0x0298) */
-
-#define BIT_SHIFT_C2H_DMA_ADDR 0
-#define BIT_MASK_C2H_DMA_ADDR 0x3ffff
-#define BIT_C2H_DMA_ADDR(x)                                                    \
-	(((x) & BIT_MASK_C2H_DMA_ADDR) << BIT_SHIFT_C2H_DMA_ADDR)
-#define BIT_GET_C2H_DMA_ADDR(x)                                                \
-	(((x) >> BIT_SHIFT_C2H_DMA_ADDR) & BIT_MASK_C2H_DMA_ADDR)
-
-/* 2 REG_FWFF_CTRL				(Offset 0x029C) */
-
-#define BIT_FWFF_DMAPKT_REQ BIT(31)
-
-#define BIT_SHIFT_FWFF_DMA_PKT_NUM 16
-#define BIT_MASK_FWFF_DMA_PKT_NUM 0xff
-#define BIT_FWFF_DMA_PKT_NUM(x)                                                \
-	(((x) & BIT_MASK_FWFF_DMA_PKT_NUM) << BIT_SHIFT_FWFF_DMA_PKT_NUM)
-#define BIT_GET_FWFF_DMA_PKT_NUM(x)                                            \
-	(((x) >> BIT_SHIFT_FWFF_DMA_PKT_NUM) & BIT_MASK_FWFF_DMA_PKT_NUM)
-
-#define BIT_SHIFT_FWFF_STR_ADDR 0
-#define BIT_MASK_FWFF_STR_ADDR 0xffff
-#define BIT_FWFF_STR_ADDR(x)                                                   \
-	(((x) & BIT_MASK_FWFF_STR_ADDR) << BIT_SHIFT_FWFF_STR_ADDR)
-#define BIT_GET_FWFF_STR_ADDR(x)                                               \
-	(((x) >> BIT_SHIFT_FWFF_STR_ADDR) & BIT_MASK_FWFF_STR_ADDR)
-
-/* 2 REG_FWFF_PKT_INFO			(Offset 0x02A0) */
-
-#define BIT_SHIFT_FWFF_PKT_QUEUED 16
-#define BIT_MASK_FWFF_PKT_QUEUED 0xff
-#define BIT_FWFF_PKT_QUEUED(x)                                                 \
-	(((x) & BIT_MASK_FWFF_PKT_QUEUED) << BIT_SHIFT_FWFF_PKT_QUEUED)
-#define BIT_GET_FWFF_PKT_QUEUED(x)                                             \
-	(((x) >> BIT_SHIFT_FWFF_PKT_QUEUED) & BIT_MASK_FWFF_PKT_QUEUED)
-
-/* 2 REG_FWFF_PKT_INFO			(Offset 0x02A0) */
-
-#define BIT_SHIFT_FWFF_PKT_STR_ADDR 0
-#define BIT_MASK_FWFF_PKT_STR_ADDR 0xffff
-#define BIT_FWFF_PKT_STR_ADDR(x)                                               \
-	(((x) & BIT_MASK_FWFF_PKT_STR_ADDR) << BIT_SHIFT_FWFF_PKT_STR_ADDR)
-#define BIT_GET_FWFF_PKT_STR_ADDR(x)                                           \
-	(((x) >> BIT_SHIFT_FWFF_PKT_STR_ADDR) & BIT_MASK_FWFF_PKT_STR_ADDR)
-
-/* 2 REG_PCIE_CTRL				(Offset 0x0300) */
-
-#define BIT_PCIEIO_PERSTB_SEL BIT(31)
-
-/* 2 REG_PCIE_CTRL				(Offset 0x0300) */
-
-#define BIT_SHIFT_PCIE_MAX_RXDMA 28
-#define BIT_MASK_PCIE_MAX_RXDMA 0x7
-#define BIT_PCIE_MAX_RXDMA(x)                                                  \
-	(((x) & BIT_MASK_PCIE_MAX_RXDMA) << BIT_SHIFT_PCIE_MAX_RXDMA)
-#define BIT_GET_PCIE_MAX_RXDMA(x)                                              \
-	(((x) >> BIT_SHIFT_PCIE_MAX_RXDMA) & BIT_MASK_PCIE_MAX_RXDMA)
-
-/* 2 REG_PCIE_CTRL				(Offset 0x0300) */
-
-#define BIT_SHIFT_PCIE_MAX_TXDMA 24
-#define BIT_MASK_PCIE_MAX_TXDMA 0x7
-#define BIT_PCIE_MAX_TXDMA(x)                                                  \
-	(((x) & BIT_MASK_PCIE_MAX_TXDMA) << BIT_SHIFT_PCIE_MAX_TXDMA)
-#define BIT_GET_PCIE_MAX_TXDMA(x)                                              \
-	(((x) >> BIT_SHIFT_PCIE_MAX_TXDMA) & BIT_MASK_PCIE_MAX_TXDMA)
-
-/* 2 REG_PCIE_CTRL				(Offset 0x0300) */
-
-#define BIT_PCIE_RST_TRXDMA_INTF BIT(20)
-
-/* 2 REG_PCIE_CTRL				(Offset 0x0300) */
-
-#define BIT_PCIE_EN_SWENT_L23 BIT(17)
-
-/* 2 REG_PCIE_CTRL				(Offset 0x0300) */
-
-#define BIT_PCIE_EN_HWEXT_L1 BIT(16)
-
-/* 2 REG_INT_MIG				(Offset 0x0304) */
-
-#define BIT_SHIFT_TXTTIMER_MATCH_NUM 28
-#define BIT_MASK_TXTTIMER_MATCH_NUM 0xf
-#define BIT_TXTTIMER_MATCH_NUM(x)                                              \
-	(((x) & BIT_MASK_TXTTIMER_MATCH_NUM) << BIT_SHIFT_TXTTIMER_MATCH_NUM)
-#define BIT_GET_TXTTIMER_MATCH_NUM(x)                                          \
-	(((x) >> BIT_SHIFT_TXTTIMER_MATCH_NUM) & BIT_MASK_TXTTIMER_MATCH_NUM)
-
-#define BIT_SHIFT_TXPKT_NUM_MATCH 24
-#define BIT_MASK_TXPKT_NUM_MATCH 0xf
-#define BIT_TXPKT_NUM_MATCH(x)                                                 \
-	(((x) & BIT_MASK_TXPKT_NUM_MATCH) << BIT_SHIFT_TXPKT_NUM_MATCH)
-#define BIT_GET_TXPKT_NUM_MATCH(x)                                             \
-	(((x) >> BIT_SHIFT_TXPKT_NUM_MATCH) & BIT_MASK_TXPKT_NUM_MATCH)
-
-#define BIT_SHIFT_RXTTIMER_MATCH_NUM 20
-#define BIT_MASK_RXTTIMER_MATCH_NUM 0xf
-#define BIT_RXTTIMER_MATCH_NUM(x)                                              \
-	(((x) & BIT_MASK_RXTTIMER_MATCH_NUM) << BIT_SHIFT_RXTTIMER_MATCH_NUM)
-#define BIT_GET_RXTTIMER_MATCH_NUM(x)                                          \
-	(((x) >> BIT_SHIFT_RXTTIMER_MATCH_NUM) & BIT_MASK_RXTTIMER_MATCH_NUM)
-
-#define BIT_SHIFT_RXPKT_NUM_MATCH 16
-#define BIT_MASK_RXPKT_NUM_MATCH 0xf
-#define BIT_RXPKT_NUM_MATCH(x)                                                 \
-	(((x) & BIT_MASK_RXPKT_NUM_MATCH) << BIT_SHIFT_RXPKT_NUM_MATCH)
-#define BIT_GET_RXPKT_NUM_MATCH(x)                                             \
-	(((x) >> BIT_SHIFT_RXPKT_NUM_MATCH) & BIT_MASK_RXPKT_NUM_MATCH)
-
-#define BIT_SHIFT_MIGRATE_TIMER 0
-#define BIT_MASK_MIGRATE_TIMER 0xffff
-#define BIT_MIGRATE_TIMER(x)                                                   \
-	(((x) & BIT_MASK_MIGRATE_TIMER) << BIT_SHIFT_MIGRATE_TIMER)
-#define BIT_GET_MIGRATE_TIMER(x)                                               \
-	(((x) >> BIT_SHIFT_MIGRATE_TIMER) & BIT_MASK_MIGRATE_TIMER)
-
-/* 2 REG_BCNQ_TXBD_DESA			(Offset 0x0308) */
-
-#define BIT_SHIFT_BCNQ_TXBD_DESA 0
-#define BIT_MASK_BCNQ_TXBD_DESA 0xffffffffffffffffL
-#define BIT_BCNQ_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_BCNQ_TXBD_DESA) << BIT_SHIFT_BCNQ_TXBD_DESA)
-#define BIT_GET_BCNQ_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_BCNQ_TXBD_DESA) & BIT_MASK_BCNQ_TXBD_DESA)
-
-/* 2 REG_MGQ_TXBD_DESA			(Offset 0x0310) */
-
-#define BIT_SHIFT_MGQ_TXBD_DESA 0
-#define BIT_MASK_MGQ_TXBD_DESA 0xffffffffffffffffL
-#define BIT_MGQ_TXBD_DESA(x)                                                   \
-	(((x) & BIT_MASK_MGQ_TXBD_DESA) << BIT_SHIFT_MGQ_TXBD_DESA)
-#define BIT_GET_MGQ_TXBD_DESA(x)                                               \
-	(((x) >> BIT_SHIFT_MGQ_TXBD_DESA) & BIT_MASK_MGQ_TXBD_DESA)
-
-/* 2 REG_VOQ_TXBD_DESA			(Offset 0x0318) */
-
-#define BIT_SHIFT_VOQ_TXBD_DESA 0
-#define BIT_MASK_VOQ_TXBD_DESA 0xffffffffffffffffL
-#define BIT_VOQ_TXBD_DESA(x)                                                   \
-	(((x) & BIT_MASK_VOQ_TXBD_DESA) << BIT_SHIFT_VOQ_TXBD_DESA)
-#define BIT_GET_VOQ_TXBD_DESA(x)                                               \
-	(((x) >> BIT_SHIFT_VOQ_TXBD_DESA) & BIT_MASK_VOQ_TXBD_DESA)
-
-/* 2 REG_VIQ_TXBD_DESA			(Offset 0x0320) */
-
-#define BIT_SHIFT_VIQ_TXBD_DESA 0
-#define BIT_MASK_VIQ_TXBD_DESA 0xffffffffffffffffL
-#define BIT_VIQ_TXBD_DESA(x)                                                   \
-	(((x) & BIT_MASK_VIQ_TXBD_DESA) << BIT_SHIFT_VIQ_TXBD_DESA)
-#define BIT_GET_VIQ_TXBD_DESA(x)                                               \
-	(((x) >> BIT_SHIFT_VIQ_TXBD_DESA) & BIT_MASK_VIQ_TXBD_DESA)
-
-/* 2 REG_BEQ_TXBD_DESA			(Offset 0x0328) */
-
-#define BIT_SHIFT_BEQ_TXBD_DESA 0
-#define BIT_MASK_BEQ_TXBD_DESA 0xffffffffffffffffL
-#define BIT_BEQ_TXBD_DESA(x)                                                   \
-	(((x) & BIT_MASK_BEQ_TXBD_DESA) << BIT_SHIFT_BEQ_TXBD_DESA)
-#define BIT_GET_BEQ_TXBD_DESA(x)                                               \
-	(((x) >> BIT_SHIFT_BEQ_TXBD_DESA) & BIT_MASK_BEQ_TXBD_DESA)
-
-/* 2 REG_BKQ_TXBD_DESA			(Offset 0x0330) */
-
-#define BIT_SHIFT_BKQ_TXBD_DESA 0
-#define BIT_MASK_BKQ_TXBD_DESA 0xffffffffffffffffL
-#define BIT_BKQ_TXBD_DESA(x)                                                   \
-	(((x) & BIT_MASK_BKQ_TXBD_DESA) << BIT_SHIFT_BKQ_TXBD_DESA)
-#define BIT_GET_BKQ_TXBD_DESA(x)                                               \
-	(((x) >> BIT_SHIFT_BKQ_TXBD_DESA) & BIT_MASK_BKQ_TXBD_DESA)
-
-/* 2 REG_RXQ_RXBD_DESA			(Offset 0x0338) */
-
-#define BIT_SHIFT_RXQ_RXBD_DESA 0
-#define BIT_MASK_RXQ_RXBD_DESA 0xffffffffffffffffL
-#define BIT_RXQ_RXBD_DESA(x)                                                   \
-	(((x) & BIT_MASK_RXQ_RXBD_DESA) << BIT_SHIFT_RXQ_RXBD_DESA)
-#define BIT_GET_RXQ_RXBD_DESA(x)                                               \
-	(((x) >> BIT_SHIFT_RXQ_RXBD_DESA) & BIT_MASK_RXQ_RXBD_DESA)
-
-/* 2 REG_HI0Q_TXBD_DESA			(Offset 0x0340) */
-
-#define BIT_SHIFT_HI0Q_TXBD_DESA 0
-#define BIT_MASK_HI0Q_TXBD_DESA 0xffffffffffffffffL
-#define BIT_HI0Q_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_HI0Q_TXBD_DESA) << BIT_SHIFT_HI0Q_TXBD_DESA)
-#define BIT_GET_HI0Q_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_HI0Q_TXBD_DESA) & BIT_MASK_HI0Q_TXBD_DESA)
-
-/* 2 REG_HI1Q_TXBD_DESA			(Offset 0x0348) */
-
-#define BIT_SHIFT_HI1Q_TXBD_DESA 0
-#define BIT_MASK_HI1Q_TXBD_DESA 0xffffffffffffffffL
-#define BIT_HI1Q_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_HI1Q_TXBD_DESA) << BIT_SHIFT_HI1Q_TXBD_DESA)
-#define BIT_GET_HI1Q_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_HI1Q_TXBD_DESA) & BIT_MASK_HI1Q_TXBD_DESA)
-
-/* 2 REG_HI2Q_TXBD_DESA			(Offset 0x0350) */
-
-#define BIT_SHIFT_HI2Q_TXBD_DESA 0
-#define BIT_MASK_HI2Q_TXBD_DESA 0xffffffffffffffffL
-#define BIT_HI2Q_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_HI2Q_TXBD_DESA) << BIT_SHIFT_HI2Q_TXBD_DESA)
-#define BIT_GET_HI2Q_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_HI2Q_TXBD_DESA) & BIT_MASK_HI2Q_TXBD_DESA)
-
-/* 2 REG_HI3Q_TXBD_DESA			(Offset 0x0358) */
-
-#define BIT_SHIFT_HI3Q_TXBD_DESA 0
-#define BIT_MASK_HI3Q_TXBD_DESA 0xffffffffffffffffL
-#define BIT_HI3Q_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_HI3Q_TXBD_DESA) << BIT_SHIFT_HI3Q_TXBD_DESA)
-#define BIT_GET_HI3Q_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_HI3Q_TXBD_DESA) & BIT_MASK_HI3Q_TXBD_DESA)
-
-/* 2 REG_HI4Q_TXBD_DESA			(Offset 0x0360) */
-
-#define BIT_SHIFT_HI4Q_TXBD_DESA 0
-#define BIT_MASK_HI4Q_TXBD_DESA 0xffffffffffffffffL
-#define BIT_HI4Q_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_HI4Q_TXBD_DESA) << BIT_SHIFT_HI4Q_TXBD_DESA)
-#define BIT_GET_HI4Q_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_HI4Q_TXBD_DESA) & BIT_MASK_HI4Q_TXBD_DESA)
-
-/* 2 REG_HI5Q_TXBD_DESA			(Offset 0x0368) */
-
-#define BIT_SHIFT_HI5Q_TXBD_DESA 0
-#define BIT_MASK_HI5Q_TXBD_DESA 0xffffffffffffffffL
-#define BIT_HI5Q_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_HI5Q_TXBD_DESA) << BIT_SHIFT_HI5Q_TXBD_DESA)
-#define BIT_GET_HI5Q_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_HI5Q_TXBD_DESA) & BIT_MASK_HI5Q_TXBD_DESA)
-
-/* 2 REG_HI6Q_TXBD_DESA			(Offset 0x0370) */
-
-#define BIT_SHIFT_HI6Q_TXBD_DESA 0
-#define BIT_MASK_HI6Q_TXBD_DESA 0xffffffffffffffffL
-#define BIT_HI6Q_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_HI6Q_TXBD_DESA) << BIT_SHIFT_HI6Q_TXBD_DESA)
-#define BIT_GET_HI6Q_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_HI6Q_TXBD_DESA) & BIT_MASK_HI6Q_TXBD_DESA)
-
-/* 2 REG_HI7Q_TXBD_DESA			(Offset 0x0378) */
-
-#define BIT_SHIFT_HI7Q_TXBD_DESA 0
-#define BIT_MASK_HI7Q_TXBD_DESA 0xffffffffffffffffL
-#define BIT_HI7Q_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_HI7Q_TXBD_DESA) << BIT_SHIFT_HI7Q_TXBD_DESA)
-#define BIT_GET_HI7Q_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_HI7Q_TXBD_DESA) & BIT_MASK_HI7Q_TXBD_DESA)
-
-/* 2 REG_MGQ_TXBD_NUM			(Offset 0x0380) */
-
-#define BIT_PCIE_MGQ_FLAG BIT(14)
-
-/* 2 REG_MGQ_TXBD_NUM			(Offset 0x0380) */
-
-#define BIT_SHIFT_MGQ_DESC_MODE 12
-#define BIT_MASK_MGQ_DESC_MODE 0x3
-#define BIT_MGQ_DESC_MODE(x)                                                   \
-	(((x) & BIT_MASK_MGQ_DESC_MODE) << BIT_SHIFT_MGQ_DESC_MODE)
-#define BIT_GET_MGQ_DESC_MODE(x)                                               \
-	(((x) >> BIT_SHIFT_MGQ_DESC_MODE) & BIT_MASK_MGQ_DESC_MODE)
-
-#define BIT_SHIFT_MGQ_DESC_NUM 0
-#define BIT_MASK_MGQ_DESC_NUM 0xfff
-#define BIT_MGQ_DESC_NUM(x)                                                    \
-	(((x) & BIT_MASK_MGQ_DESC_NUM) << BIT_SHIFT_MGQ_DESC_NUM)
-#define BIT_GET_MGQ_DESC_NUM(x)                                                \
-	(((x) >> BIT_SHIFT_MGQ_DESC_NUM) & BIT_MASK_MGQ_DESC_NUM)
-
-/* 2 REG_RX_RXBD_NUM				(Offset 0x0382) */
-
-#define BIT_SYS_32_64 BIT(15)
-
-#define BIT_SHIFT_BCNQ_DESC_MODE 13
-#define BIT_MASK_BCNQ_DESC_MODE 0x3
-#define BIT_BCNQ_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_BCNQ_DESC_MODE) << BIT_SHIFT_BCNQ_DESC_MODE)
-#define BIT_GET_BCNQ_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_BCNQ_DESC_MODE) & BIT_MASK_BCNQ_DESC_MODE)
-
-/* 2 REG_RX_RXBD_NUM				(Offset 0x0382) */
-
-#define BIT_PCIE_BCNQ_FLAG BIT(12)
-
-/* 2 REG_RX_RXBD_NUM				(Offset 0x0382) */
-
-#define BIT_SHIFT_RXQ_DESC_NUM 0
-#define BIT_MASK_RXQ_DESC_NUM 0xfff
-#define BIT_RXQ_DESC_NUM(x)                                                    \
-	(((x) & BIT_MASK_RXQ_DESC_NUM) << BIT_SHIFT_RXQ_DESC_NUM)
-#define BIT_GET_RXQ_DESC_NUM(x)                                                \
-	(((x) >> BIT_SHIFT_RXQ_DESC_NUM) & BIT_MASK_RXQ_DESC_NUM)
-
-/* 2 REG_VOQ_TXBD_NUM			(Offset 0x0384) */
-
-#define BIT_PCIE_VOQ_FLAG BIT(14)
-
-/* 2 REG_VOQ_TXBD_NUM			(Offset 0x0384) */
-
-#define BIT_SHIFT_VOQ_DESC_MODE 12
-#define BIT_MASK_VOQ_DESC_MODE 0x3
-#define BIT_VOQ_DESC_MODE(x)                                                   \
-	(((x) & BIT_MASK_VOQ_DESC_MODE) << BIT_SHIFT_VOQ_DESC_MODE)
-#define BIT_GET_VOQ_DESC_MODE(x)                                               \
-	(((x) >> BIT_SHIFT_VOQ_DESC_MODE) & BIT_MASK_VOQ_DESC_MODE)
-
-#define BIT_SHIFT_VOQ_DESC_NUM 0
-#define BIT_MASK_VOQ_DESC_NUM 0xfff
-#define BIT_VOQ_DESC_NUM(x)                                                    \
-	(((x) & BIT_MASK_VOQ_DESC_NUM) << BIT_SHIFT_VOQ_DESC_NUM)
-#define BIT_GET_VOQ_DESC_NUM(x)                                                \
-	(((x) >> BIT_SHIFT_VOQ_DESC_NUM) & BIT_MASK_VOQ_DESC_NUM)
-
-/* 2 REG_VIQ_TXBD_NUM			(Offset 0x0386) */
-
-#define BIT_PCIE_VIQ_FLAG BIT(14)
-
-/* 2 REG_VIQ_TXBD_NUM			(Offset 0x0386) */
-
-#define BIT_SHIFT_VIQ_DESC_MODE 12
-#define BIT_MASK_VIQ_DESC_MODE 0x3
-#define BIT_VIQ_DESC_MODE(x)                                                   \
-	(((x) & BIT_MASK_VIQ_DESC_MODE) << BIT_SHIFT_VIQ_DESC_MODE)
-#define BIT_GET_VIQ_DESC_MODE(x)                                               \
-	(((x) >> BIT_SHIFT_VIQ_DESC_MODE) & BIT_MASK_VIQ_DESC_MODE)
-
-#define BIT_SHIFT_VIQ_DESC_NUM 0
-#define BIT_MASK_VIQ_DESC_NUM 0xfff
-#define BIT_VIQ_DESC_NUM(x)                                                    \
-	(((x) & BIT_MASK_VIQ_DESC_NUM) << BIT_SHIFT_VIQ_DESC_NUM)
-#define BIT_GET_VIQ_DESC_NUM(x)                                                \
-	(((x) >> BIT_SHIFT_VIQ_DESC_NUM) & BIT_MASK_VIQ_DESC_NUM)
-
-/* 2 REG_BEQ_TXBD_NUM			(Offset 0x0388) */
-
-#define BIT_PCIE_BEQ_FLAG BIT(14)
-
-/* 2 REG_BEQ_TXBD_NUM			(Offset 0x0388) */
-
-#define BIT_SHIFT_BEQ_DESC_MODE 12
-#define BIT_MASK_BEQ_DESC_MODE 0x3
-#define BIT_BEQ_DESC_MODE(x)                                                   \
-	(((x) & BIT_MASK_BEQ_DESC_MODE) << BIT_SHIFT_BEQ_DESC_MODE)
-#define BIT_GET_BEQ_DESC_MODE(x)                                               \
-	(((x) >> BIT_SHIFT_BEQ_DESC_MODE) & BIT_MASK_BEQ_DESC_MODE)
-
-#define BIT_SHIFT_BEQ_DESC_NUM 0
-#define BIT_MASK_BEQ_DESC_NUM 0xfff
-#define BIT_BEQ_DESC_NUM(x)                                                    \
-	(((x) & BIT_MASK_BEQ_DESC_NUM) << BIT_SHIFT_BEQ_DESC_NUM)
-#define BIT_GET_BEQ_DESC_NUM(x)                                                \
-	(((x) >> BIT_SHIFT_BEQ_DESC_NUM) & BIT_MASK_BEQ_DESC_NUM)
-
-/* 2 REG_BKQ_TXBD_NUM			(Offset 0x038A) */
-
-#define BIT_PCIE_BKQ_FLAG BIT(14)
-
-/* 2 REG_BKQ_TXBD_NUM			(Offset 0x038A) */
-
-#define BIT_SHIFT_BKQ_DESC_MODE 12
-#define BIT_MASK_BKQ_DESC_MODE 0x3
-#define BIT_BKQ_DESC_MODE(x)                                                   \
-	(((x) & BIT_MASK_BKQ_DESC_MODE) << BIT_SHIFT_BKQ_DESC_MODE)
-#define BIT_GET_BKQ_DESC_MODE(x)                                               \
-	(((x) >> BIT_SHIFT_BKQ_DESC_MODE) & BIT_MASK_BKQ_DESC_MODE)
-
-#define BIT_SHIFT_BKQ_DESC_NUM 0
-#define BIT_MASK_BKQ_DESC_NUM 0xfff
-#define BIT_BKQ_DESC_NUM(x)                                                    \
-	(((x) & BIT_MASK_BKQ_DESC_NUM) << BIT_SHIFT_BKQ_DESC_NUM)
-#define BIT_GET_BKQ_DESC_NUM(x)                                                \
-	(((x) >> BIT_SHIFT_BKQ_DESC_NUM) & BIT_MASK_BKQ_DESC_NUM)
-
-/* 2 REG_HI0Q_TXBD_NUM			(Offset 0x038C) */
-
-#define BIT_HI0Q_FLAG BIT(14)
-
-#define BIT_SHIFT_HI0Q_DESC_MODE 12
-#define BIT_MASK_HI0Q_DESC_MODE 0x3
-#define BIT_HI0Q_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_HI0Q_DESC_MODE) << BIT_SHIFT_HI0Q_DESC_MODE)
-#define BIT_GET_HI0Q_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_HI0Q_DESC_MODE) & BIT_MASK_HI0Q_DESC_MODE)
-
-#define BIT_SHIFT_HI0Q_DESC_NUM 0
-#define BIT_MASK_HI0Q_DESC_NUM 0xfff
-#define BIT_HI0Q_DESC_NUM(x)                                                   \
-	(((x) & BIT_MASK_HI0Q_DESC_NUM) << BIT_SHIFT_HI0Q_DESC_NUM)
-#define BIT_GET_HI0Q_DESC_NUM(x)                                               \
-	(((x) >> BIT_SHIFT_HI0Q_DESC_NUM) & BIT_MASK_HI0Q_DESC_NUM)
-
-/* 2 REG_HI1Q_TXBD_NUM			(Offset 0x038E) */
-
-#define BIT_HI1Q_FLAG BIT(14)
-
-#define BIT_SHIFT_HI1Q_DESC_MODE 12
-#define BIT_MASK_HI1Q_DESC_MODE 0x3
-#define BIT_HI1Q_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_HI1Q_DESC_MODE) << BIT_SHIFT_HI1Q_DESC_MODE)
-#define BIT_GET_HI1Q_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_HI1Q_DESC_MODE) & BIT_MASK_HI1Q_DESC_MODE)
-
-#define BIT_SHIFT_HI1Q_DESC_NUM 0
-#define BIT_MASK_HI1Q_DESC_NUM 0xfff
-#define BIT_HI1Q_DESC_NUM(x)                                                   \
-	(((x) & BIT_MASK_HI1Q_DESC_NUM) << BIT_SHIFT_HI1Q_DESC_NUM)
-#define BIT_GET_HI1Q_DESC_NUM(x)                                               \
-	(((x) >> BIT_SHIFT_HI1Q_DESC_NUM) & BIT_MASK_HI1Q_DESC_NUM)
-
-/* 2 REG_HI2Q_TXBD_NUM			(Offset 0x0390) */
-
-#define BIT_HI2Q_FLAG BIT(14)
-
-#define BIT_SHIFT_HI2Q_DESC_MODE 12
-#define BIT_MASK_HI2Q_DESC_MODE 0x3
-#define BIT_HI2Q_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_HI2Q_DESC_MODE) << BIT_SHIFT_HI2Q_DESC_MODE)
-#define BIT_GET_HI2Q_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_HI2Q_DESC_MODE) & BIT_MASK_HI2Q_DESC_MODE)
-
-#define BIT_SHIFT_HI2Q_DESC_NUM 0
-#define BIT_MASK_HI2Q_DESC_NUM 0xfff
-#define BIT_HI2Q_DESC_NUM(x)                                                   \
-	(((x) & BIT_MASK_HI2Q_DESC_NUM) << BIT_SHIFT_HI2Q_DESC_NUM)
-#define BIT_GET_HI2Q_DESC_NUM(x)                                               \
-	(((x) >> BIT_SHIFT_HI2Q_DESC_NUM) & BIT_MASK_HI2Q_DESC_NUM)
-
-/* 2 REG_HI3Q_TXBD_NUM			(Offset 0x0392) */
-
-#define BIT_HI3Q_FLAG BIT(14)
-
-#define BIT_SHIFT_HI3Q_DESC_MODE 12
-#define BIT_MASK_HI3Q_DESC_MODE 0x3
-#define BIT_HI3Q_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_HI3Q_DESC_MODE) << BIT_SHIFT_HI3Q_DESC_MODE)
-#define BIT_GET_HI3Q_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_HI3Q_DESC_MODE) & BIT_MASK_HI3Q_DESC_MODE)
-
-#define BIT_SHIFT_HI3Q_DESC_NUM 0
-#define BIT_MASK_HI3Q_DESC_NUM 0xfff
-#define BIT_HI3Q_DESC_NUM(x)                                                   \
-	(((x) & BIT_MASK_HI3Q_DESC_NUM) << BIT_SHIFT_HI3Q_DESC_NUM)
-#define BIT_GET_HI3Q_DESC_NUM(x)                                               \
-	(((x) >> BIT_SHIFT_HI3Q_DESC_NUM) & BIT_MASK_HI3Q_DESC_NUM)
-
-/* 2 REG_HI4Q_TXBD_NUM			(Offset 0x0394) */
-
-#define BIT_HI4Q_FLAG BIT(14)
-
-#define BIT_SHIFT_HI4Q_DESC_MODE 12
-#define BIT_MASK_HI4Q_DESC_MODE 0x3
-#define BIT_HI4Q_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_HI4Q_DESC_MODE) << BIT_SHIFT_HI4Q_DESC_MODE)
-#define BIT_GET_HI4Q_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_HI4Q_DESC_MODE) & BIT_MASK_HI4Q_DESC_MODE)
-
-#define BIT_SHIFT_HI4Q_DESC_NUM 0
-#define BIT_MASK_HI4Q_DESC_NUM 0xfff
-#define BIT_HI4Q_DESC_NUM(x)                                                   \
-	(((x) & BIT_MASK_HI4Q_DESC_NUM) << BIT_SHIFT_HI4Q_DESC_NUM)
-#define BIT_GET_HI4Q_DESC_NUM(x)                                               \
-	(((x) >> BIT_SHIFT_HI4Q_DESC_NUM) & BIT_MASK_HI4Q_DESC_NUM)
-
-/* 2 REG_HI5Q_TXBD_NUM			(Offset 0x0396) */
-
-#define BIT_HI5Q_FLAG BIT(14)
-
-#define BIT_SHIFT_HI5Q_DESC_MODE 12
-#define BIT_MASK_HI5Q_DESC_MODE 0x3
-#define BIT_HI5Q_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_HI5Q_DESC_MODE) << BIT_SHIFT_HI5Q_DESC_MODE)
-#define BIT_GET_HI5Q_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_HI5Q_DESC_MODE) & BIT_MASK_HI5Q_DESC_MODE)
-
-#define BIT_SHIFT_HI5Q_DESC_NUM 0
-#define BIT_MASK_HI5Q_DESC_NUM 0xfff
-#define BIT_HI5Q_DESC_NUM(x)                                                   \
-	(((x) & BIT_MASK_HI5Q_DESC_NUM) << BIT_SHIFT_HI5Q_DESC_NUM)
-#define BIT_GET_HI5Q_DESC_NUM(x)                                               \
-	(((x) >> BIT_SHIFT_HI5Q_DESC_NUM) & BIT_MASK_HI5Q_DESC_NUM)
-
-/* 2 REG_HI6Q_TXBD_NUM			(Offset 0x0398) */
-
-#define BIT_HI6Q_FLAG BIT(14)
-
-#define BIT_SHIFT_HI6Q_DESC_MODE 12
-#define BIT_MASK_HI6Q_DESC_MODE 0x3
-#define BIT_HI6Q_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_HI6Q_DESC_MODE) << BIT_SHIFT_HI6Q_DESC_MODE)
-#define BIT_GET_HI6Q_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_HI6Q_DESC_MODE) & BIT_MASK_HI6Q_DESC_MODE)
-
-#define BIT_SHIFT_HI6Q_DESC_NUM 0
-#define BIT_MASK_HI6Q_DESC_NUM 0xfff
-#define BIT_HI6Q_DESC_NUM(x)                                                   \
-	(((x) & BIT_MASK_HI6Q_DESC_NUM) << BIT_SHIFT_HI6Q_DESC_NUM)
-#define BIT_GET_HI6Q_DESC_NUM(x)                                               \
-	(((x) >> BIT_SHIFT_HI6Q_DESC_NUM) & BIT_MASK_HI6Q_DESC_NUM)
-
-/* 2 REG_HI7Q_TXBD_NUM			(Offset 0x039A) */
-
-#define BIT_HI7Q_FLAG BIT(14)
-
-#define BIT_SHIFT_HI7Q_DESC_MODE 12
-#define BIT_MASK_HI7Q_DESC_MODE 0x3
-#define BIT_HI7Q_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_HI7Q_DESC_MODE) << BIT_SHIFT_HI7Q_DESC_MODE)
-#define BIT_GET_HI7Q_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_HI7Q_DESC_MODE) & BIT_MASK_HI7Q_DESC_MODE)
-
-#define BIT_SHIFT_HI7Q_DESC_NUM 0
-#define BIT_MASK_HI7Q_DESC_NUM 0xfff
-#define BIT_HI7Q_DESC_NUM(x)                                                   \
-	(((x) & BIT_MASK_HI7Q_DESC_NUM) << BIT_SHIFT_HI7Q_DESC_NUM)
-#define BIT_GET_HI7Q_DESC_NUM(x)                                               \
-	(((x) >> BIT_SHIFT_HI7Q_DESC_NUM) & BIT_MASK_HI7Q_DESC_NUM)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_HI7Q_HW_IDX BIT(29)
-#define BIT_CLR_HI6Q_HW_IDX BIT(28)
-#define BIT_CLR_HI5Q_HW_IDX BIT(27)
-#define BIT_CLR_HI4Q_HW_IDX BIT(26)
-#define BIT_CLR_HI3Q_HW_IDX BIT(25)
-#define BIT_CLR_HI2Q_HW_IDX BIT(24)
-#define BIT_CLR_HI1Q_HW_IDX BIT(23)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_HI0Q_HW_IDX BIT(22)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_BKQ_HW_IDX BIT(21)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_BEQ_HW_IDX BIT(20)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_VIQ_HW_IDX BIT(19)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_VOQ_HW_IDX BIT(18)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_MGQ_HW_IDX BIT(17)
-
-/* 2 REG_TSFTIMER_HCI			(Offset 0x039C) */
-
-#define BIT_SHIFT_TSFT2_HCI 16
-#define BIT_MASK_TSFT2_HCI 0xffff
-#define BIT_TSFT2_HCI(x) (((x) & BIT_MASK_TSFT2_HCI) << BIT_SHIFT_TSFT2_HCI)
-#define BIT_GET_TSFT2_HCI(x) (((x) >> BIT_SHIFT_TSFT2_HCI) & BIT_MASK_TSFT2_HCI)
-
-#define BIT_CLR_RXQ_HW_IDX BIT(16)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_HI7Q_HOST_IDX BIT(13)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_HI6Q_HOST_IDX BIT(12)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_HI5Q_HOST_IDX BIT(11)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_HI4Q_HOST_IDX BIT(10)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_HI3Q_HOST_IDX BIT(9)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_HI2Q_HOST_IDX BIT(8)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_HI1Q_HOST_IDX BIT(7)
-#define BIT_CLR_HI0Q_HOST_IDX BIT(6)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_BKQ_HOST_IDX BIT(5)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_BEQ_HOST_IDX BIT(4)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_VIQ_HOST_IDX BIT(3)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_VOQ_HOST_IDX BIT(2)
-
-/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */
-
-#define BIT_CLR_MGQ_HOST_IDX BIT(1)
-
-/* 2 REG_TSFTIMER_HCI			(Offset 0x039C) */
-
-#define BIT_SHIFT_TSFT1_HCI 0
-#define BIT_MASK_TSFT1_HCI 0xffff
-#define BIT_TSFT1_HCI(x) (((x) & BIT_MASK_TSFT1_HCI) << BIT_SHIFT_TSFT1_HCI)
-#define BIT_GET_TSFT1_HCI(x) (((x) >> BIT_SHIFT_TSFT1_HCI) & BIT_MASK_TSFT1_HCI)
-
-#define BIT_CLR_RXQ_HOST_IDX BIT(0)
-
-/* 2 REG_VOQ_TXBD_IDX			(Offset 0x03A0) */
-
-#define BIT_SHIFT_VOQ_HW_IDX 16
-#define BIT_MASK_VOQ_HW_IDX 0xfff
-#define BIT_VOQ_HW_IDX(x) (((x) & BIT_MASK_VOQ_HW_IDX) << BIT_SHIFT_VOQ_HW_IDX)
-#define BIT_GET_VOQ_HW_IDX(x)                                                  \
-	(((x) >> BIT_SHIFT_VOQ_HW_IDX) & BIT_MASK_VOQ_HW_IDX)
-
-#define BIT_SHIFT_VOQ_HOST_IDX 0
-#define BIT_MASK_VOQ_HOST_IDX 0xfff
-#define BIT_VOQ_HOST_IDX(x)                                                    \
-	(((x) & BIT_MASK_VOQ_HOST_IDX) << BIT_SHIFT_VOQ_HOST_IDX)
-#define BIT_GET_VOQ_HOST_IDX(x)                                                \
-	(((x) >> BIT_SHIFT_VOQ_HOST_IDX) & BIT_MASK_VOQ_HOST_IDX)
-
-/* 2 REG_VIQ_TXBD_IDX			(Offset 0x03A4) */
-
-#define BIT_SHIFT_VIQ_HW_IDX 16
-#define BIT_MASK_VIQ_HW_IDX 0xfff
-#define BIT_VIQ_HW_IDX(x) (((x) & BIT_MASK_VIQ_HW_IDX) << BIT_SHIFT_VIQ_HW_IDX)
-#define BIT_GET_VIQ_HW_IDX(x)                                                  \
-	(((x) >> BIT_SHIFT_VIQ_HW_IDX) & BIT_MASK_VIQ_HW_IDX)
-
-#define BIT_SHIFT_VIQ_HOST_IDX 0
-#define BIT_MASK_VIQ_HOST_IDX 0xfff
-#define BIT_VIQ_HOST_IDX(x)                                                    \
-	(((x) & BIT_MASK_VIQ_HOST_IDX) << BIT_SHIFT_VIQ_HOST_IDX)
-#define BIT_GET_VIQ_HOST_IDX(x)                                                \
-	(((x) >> BIT_SHIFT_VIQ_HOST_IDX) & BIT_MASK_VIQ_HOST_IDX)
-
-/* 2 REG_BEQ_TXBD_IDX			(Offset 0x03A8) */
-
-#define BIT_SHIFT_BEQ_HW_IDX 16
-#define BIT_MASK_BEQ_HW_IDX 0xfff
-#define BIT_BEQ_HW_IDX(x) (((x) & BIT_MASK_BEQ_HW_IDX) << BIT_SHIFT_BEQ_HW_IDX)
-#define BIT_GET_BEQ_HW_IDX(x)                                                  \
-	(((x) >> BIT_SHIFT_BEQ_HW_IDX) & BIT_MASK_BEQ_HW_IDX)
-
-#define BIT_SHIFT_BEQ_HOST_IDX 0
-#define BIT_MASK_BEQ_HOST_IDX 0xfff
-#define BIT_BEQ_HOST_IDX(x)                                                    \
-	(((x) & BIT_MASK_BEQ_HOST_IDX) << BIT_SHIFT_BEQ_HOST_IDX)
-#define BIT_GET_BEQ_HOST_IDX(x)                                                \
-	(((x) >> BIT_SHIFT_BEQ_HOST_IDX) & BIT_MASK_BEQ_HOST_IDX)
-
-/* 2 REG_BKQ_TXBD_IDX			(Offset 0x03AC) */
-
-#define BIT_SHIFT_BKQ_HW_IDX 16
-#define BIT_MASK_BKQ_HW_IDX 0xfff
-#define BIT_BKQ_HW_IDX(x) (((x) & BIT_MASK_BKQ_HW_IDX) << BIT_SHIFT_BKQ_HW_IDX)
-#define BIT_GET_BKQ_HW_IDX(x)                                                  \
-	(((x) >> BIT_SHIFT_BKQ_HW_IDX) & BIT_MASK_BKQ_HW_IDX)
-
-#define BIT_SHIFT_BKQ_HOST_IDX 0
-#define BIT_MASK_BKQ_HOST_IDX 0xfff
-#define BIT_BKQ_HOST_IDX(x)                                                    \
-	(((x) & BIT_MASK_BKQ_HOST_IDX) << BIT_SHIFT_BKQ_HOST_IDX)
-#define BIT_GET_BKQ_HOST_IDX(x)                                                \
-	(((x) >> BIT_SHIFT_BKQ_HOST_IDX) & BIT_MASK_BKQ_HOST_IDX)
-
-/* 2 REG_MGQ_TXBD_IDX			(Offset 0x03B0) */
-
-#define BIT_SHIFT_MGQ_HW_IDX 16
-#define BIT_MASK_MGQ_HW_IDX 0xfff
-#define BIT_MGQ_HW_IDX(x) (((x) & BIT_MASK_MGQ_HW_IDX) << BIT_SHIFT_MGQ_HW_IDX)
-#define BIT_GET_MGQ_HW_IDX(x)                                                  \
-	(((x) >> BIT_SHIFT_MGQ_HW_IDX) & BIT_MASK_MGQ_HW_IDX)
-
-#define BIT_SHIFT_MGQ_HOST_IDX 0
-#define BIT_MASK_MGQ_HOST_IDX 0xfff
-#define BIT_MGQ_HOST_IDX(x)                                                    \
-	(((x) & BIT_MASK_MGQ_HOST_IDX) << BIT_SHIFT_MGQ_HOST_IDX)
-#define BIT_GET_MGQ_HOST_IDX(x)                                                \
-	(((x) >> BIT_SHIFT_MGQ_HOST_IDX) & BIT_MASK_MGQ_HOST_IDX)
-
-/* 2 REG_RXQ_RXBD_IDX			(Offset 0x03B4) */
-
-#define BIT_SHIFT_RXQ_HW_IDX 16
-#define BIT_MASK_RXQ_HW_IDX 0xfff
-#define BIT_RXQ_HW_IDX(x) (((x) & BIT_MASK_RXQ_HW_IDX) << BIT_SHIFT_RXQ_HW_IDX)
-#define BIT_GET_RXQ_HW_IDX(x)                                                  \
-	(((x) >> BIT_SHIFT_RXQ_HW_IDX) & BIT_MASK_RXQ_HW_IDX)
-
-#define BIT_SHIFT_RXQ_HOST_IDX 0
-#define BIT_MASK_RXQ_HOST_IDX 0xfff
-#define BIT_RXQ_HOST_IDX(x)                                                    \
-	(((x) & BIT_MASK_RXQ_HOST_IDX) << BIT_SHIFT_RXQ_HOST_IDX)
-#define BIT_GET_RXQ_HOST_IDX(x)                                                \
-	(((x) >> BIT_SHIFT_RXQ_HOST_IDX) & BIT_MASK_RXQ_HOST_IDX)
-
-/* 2 REG_HI0Q_TXBD_IDX			(Offset 0x03B8) */
-
-#define BIT_SHIFT_HI0Q_HW_IDX 16
-#define BIT_MASK_HI0Q_HW_IDX 0xfff
-#define BIT_HI0Q_HW_IDX(x)                                                     \
-	(((x) & BIT_MASK_HI0Q_HW_IDX) << BIT_SHIFT_HI0Q_HW_IDX)
-#define BIT_GET_HI0Q_HW_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_HI0Q_HW_IDX) & BIT_MASK_HI0Q_HW_IDX)
-
-#define BIT_SHIFT_HI0Q_HOST_IDX 0
-#define BIT_MASK_HI0Q_HOST_IDX 0xfff
-#define BIT_HI0Q_HOST_IDX(x)                                                   \
-	(((x) & BIT_MASK_HI0Q_HOST_IDX) << BIT_SHIFT_HI0Q_HOST_IDX)
-#define BIT_GET_HI0Q_HOST_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_HI0Q_HOST_IDX) & BIT_MASK_HI0Q_HOST_IDX)
-
-/* 2 REG_HI1Q_TXBD_IDX			(Offset 0x03BC) */
-
-#define BIT_SHIFT_HI1Q_HW_IDX 16
-#define BIT_MASK_HI1Q_HW_IDX 0xfff
-#define BIT_HI1Q_HW_IDX(x)                                                     \
-	(((x) & BIT_MASK_HI1Q_HW_IDX) << BIT_SHIFT_HI1Q_HW_IDX)
-#define BIT_GET_HI1Q_HW_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_HI1Q_HW_IDX) & BIT_MASK_HI1Q_HW_IDX)
-
-#define BIT_SHIFT_HI1Q_HOST_IDX 0
-#define BIT_MASK_HI1Q_HOST_IDX 0xfff
-#define BIT_HI1Q_HOST_IDX(x)                                                   \
-	(((x) & BIT_MASK_HI1Q_HOST_IDX) << BIT_SHIFT_HI1Q_HOST_IDX)
-#define BIT_GET_HI1Q_HOST_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_HI1Q_HOST_IDX) & BIT_MASK_HI1Q_HOST_IDX)
-
-/* 2 REG_HI2Q_TXBD_IDX			(Offset 0x03C0) */
-
-#define BIT_SHIFT_HI2Q_HW_IDX 16
-#define BIT_MASK_HI2Q_HW_IDX 0xfff
-#define BIT_HI2Q_HW_IDX(x)                                                     \
-	(((x) & BIT_MASK_HI2Q_HW_IDX) << BIT_SHIFT_HI2Q_HW_IDX)
-#define BIT_GET_HI2Q_HW_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_HI2Q_HW_IDX) & BIT_MASK_HI2Q_HW_IDX)
-
-#define BIT_SHIFT_HI2Q_HOST_IDX 0
-#define BIT_MASK_HI2Q_HOST_IDX 0xfff
-#define BIT_HI2Q_HOST_IDX(x)                                                   \
-	(((x) & BIT_MASK_HI2Q_HOST_IDX) << BIT_SHIFT_HI2Q_HOST_IDX)
-#define BIT_GET_HI2Q_HOST_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_HI2Q_HOST_IDX) & BIT_MASK_HI2Q_HOST_IDX)
-
-/* 2 REG_HI3Q_TXBD_IDX			(Offset 0x03C4) */
-
-#define BIT_SHIFT_HI3Q_HW_IDX 16
-#define BIT_MASK_HI3Q_HW_IDX 0xfff
-#define BIT_HI3Q_HW_IDX(x)                                                     \
-	(((x) & BIT_MASK_HI3Q_HW_IDX) << BIT_SHIFT_HI3Q_HW_IDX)
-#define BIT_GET_HI3Q_HW_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_HI3Q_HW_IDX) & BIT_MASK_HI3Q_HW_IDX)
-
-#define BIT_SHIFT_HI3Q_HOST_IDX 0
-#define BIT_MASK_HI3Q_HOST_IDX 0xfff
-#define BIT_HI3Q_HOST_IDX(x)                                                   \
-	(((x) & BIT_MASK_HI3Q_HOST_IDX) << BIT_SHIFT_HI3Q_HOST_IDX)
-#define BIT_GET_HI3Q_HOST_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_HI3Q_HOST_IDX) & BIT_MASK_HI3Q_HOST_IDX)
-
-/* 2 REG_HI4Q_TXBD_IDX			(Offset 0x03C8) */
-
-#define BIT_SHIFT_HI4Q_HW_IDX 16
-#define BIT_MASK_HI4Q_HW_IDX 0xfff
-#define BIT_HI4Q_HW_IDX(x)                                                     \
-	(((x) & BIT_MASK_HI4Q_HW_IDX) << BIT_SHIFT_HI4Q_HW_IDX)
-#define BIT_GET_HI4Q_HW_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_HI4Q_HW_IDX) & BIT_MASK_HI4Q_HW_IDX)
-
-#define BIT_SHIFT_HI4Q_HOST_IDX 0
-#define BIT_MASK_HI4Q_HOST_IDX 0xfff
-#define BIT_HI4Q_HOST_IDX(x)                                                   \
-	(((x) & BIT_MASK_HI4Q_HOST_IDX) << BIT_SHIFT_HI4Q_HOST_IDX)
-#define BIT_GET_HI4Q_HOST_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_HI4Q_HOST_IDX) & BIT_MASK_HI4Q_HOST_IDX)
-
-/* 2 REG_HI5Q_TXBD_IDX			(Offset 0x03CC) */
-
-#define BIT_SHIFT_HI5Q_HW_IDX 16
-#define BIT_MASK_HI5Q_HW_IDX 0xfff
-#define BIT_HI5Q_HW_IDX(x)                                                     \
-	(((x) & BIT_MASK_HI5Q_HW_IDX) << BIT_SHIFT_HI5Q_HW_IDX)
-#define BIT_GET_HI5Q_HW_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_HI5Q_HW_IDX) & BIT_MASK_HI5Q_HW_IDX)
-
-#define BIT_SHIFT_HI5Q_HOST_IDX 0
-#define BIT_MASK_HI5Q_HOST_IDX 0xfff
-#define BIT_HI5Q_HOST_IDX(x)                                                   \
-	(((x) & BIT_MASK_HI5Q_HOST_IDX) << BIT_SHIFT_HI5Q_HOST_IDX)
-#define BIT_GET_HI5Q_HOST_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_HI5Q_HOST_IDX) & BIT_MASK_HI5Q_HOST_IDX)
-
-/* 2 REG_HI6Q_TXBD_IDX			(Offset 0x03D0) */
-
-#define BIT_SHIFT_HI6Q_HW_IDX 16
-#define BIT_MASK_HI6Q_HW_IDX 0xfff
-#define BIT_HI6Q_HW_IDX(x)                                                     \
-	(((x) & BIT_MASK_HI6Q_HW_IDX) << BIT_SHIFT_HI6Q_HW_IDX)
-#define BIT_GET_HI6Q_HW_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_HI6Q_HW_IDX) & BIT_MASK_HI6Q_HW_IDX)
-
-#define BIT_SHIFT_HI6Q_HOST_IDX 0
-#define BIT_MASK_HI6Q_HOST_IDX 0xfff
-#define BIT_HI6Q_HOST_IDX(x)                                                   \
-	(((x) & BIT_MASK_HI6Q_HOST_IDX) << BIT_SHIFT_HI6Q_HOST_IDX)
-#define BIT_GET_HI6Q_HOST_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_HI6Q_HOST_IDX) & BIT_MASK_HI6Q_HOST_IDX)
-
-/* 2 REG_HI7Q_TXBD_IDX			(Offset 0x03D4) */
-
-#define BIT_SHIFT_HI7Q_HW_IDX 16
-#define BIT_MASK_HI7Q_HW_IDX 0xfff
-#define BIT_HI7Q_HW_IDX(x)                                                     \
-	(((x) & BIT_MASK_HI7Q_HW_IDX) << BIT_SHIFT_HI7Q_HW_IDX)
-#define BIT_GET_HI7Q_HW_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_HI7Q_HW_IDX) & BIT_MASK_HI7Q_HW_IDX)
-
-#define BIT_SHIFT_HI7Q_HOST_IDX 0
-#define BIT_MASK_HI7Q_HOST_IDX 0xfff
-#define BIT_HI7Q_HOST_IDX(x)                                                   \
-	(((x) & BIT_MASK_HI7Q_HOST_IDX) << BIT_SHIFT_HI7Q_HOST_IDX)
-#define BIT_GET_HI7Q_HOST_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_HI7Q_HOST_IDX) & BIT_MASK_HI7Q_HOST_IDX)
-
-/* 2 REG_DBG_SEL_V1				(Offset 0x03D8) */
-
-#define BIT_DIS_TXDMA_PRE BIT(7)
-#define BIT_DIS_RXDMA_PRE BIT(6)
-#define BIT_TXFLAG_EXIT_L1_EN BIT(2)
-
-#define BIT_SHIFT_DBG_SEL 0
-#define BIT_MASK_DBG_SEL 0xff
-#define BIT_DBG_SEL(x) (((x) & BIT_MASK_DBG_SEL) << BIT_SHIFT_DBG_SEL)
-#define BIT_GET_DBG_SEL(x) (((x) >> BIT_SHIFT_DBG_SEL) & BIT_MASK_DBG_SEL)
-
-/* 2 REG_PCIE_HRPWM1_V1			(Offset 0x03D9) */
-
-#define BIT_SHIFT_PCIE_HRPWM 0
-#define BIT_MASK_PCIE_HRPWM 0xff
-#define BIT_PCIE_HRPWM(x) (((x) & BIT_MASK_PCIE_HRPWM) << BIT_SHIFT_PCIE_HRPWM)
-#define BIT_GET_PCIE_HRPWM(x)                                                  \
-	(((x) >> BIT_SHIFT_PCIE_HRPWM) & BIT_MASK_PCIE_HRPWM)
-
-/* 2 REG_PCIE_HCPWM1_V1			(Offset 0x03DA) */
-
-#define BIT_SHIFT_PCIE_HCPWM 0
-#define BIT_MASK_PCIE_HCPWM 0xff
-#define BIT_PCIE_HCPWM(x) (((x) & BIT_MASK_PCIE_HCPWM) << BIT_SHIFT_PCIE_HCPWM)
-#define BIT_GET_PCIE_HCPWM(x)                                                  \
-	(((x) >> BIT_SHIFT_PCIE_HCPWM) & BIT_MASK_PCIE_HCPWM)
-
-/* 2 REG_PCIE_CTRL2				(Offset 0x03DB) */
-
-#define BIT_SHIFT_HPS_CLKR_PCIE 4
-#define BIT_MASK_HPS_CLKR_PCIE 0x3
-#define BIT_HPS_CLKR_PCIE(x)                                                   \
-	(((x) & BIT_MASK_HPS_CLKR_PCIE) << BIT_SHIFT_HPS_CLKR_PCIE)
-#define BIT_GET_HPS_CLKR_PCIE(x)                                               \
-	(((x) >> BIT_SHIFT_HPS_CLKR_PCIE) & BIT_MASK_HPS_CLKR_PCIE)
-
-/* 2 REG_PCIE_CTRL2				(Offset 0x03DB) */
-
-#define BIT_PCIE_INT BIT(3)
-
-/* 2 REG_PCIE_CTRL2				(Offset 0x03DB) */
-
-#define BIT_EN_RXDMA_ALIGN BIT(1)
-#define BIT_EN_TXDMA_ALIGN BIT(0)
-
-/* 2 REG_PCIE_HRPWM2_V1			(Offset 0x03DC) */
-
-#define BIT_SHIFT_PCIE_HRPWM2 0
-#define BIT_MASK_PCIE_HRPWM2 0xffff
-#define BIT_PCIE_HRPWM2(x)                                                     \
-	(((x) & BIT_MASK_PCIE_HRPWM2) << BIT_SHIFT_PCIE_HRPWM2)
-#define BIT_GET_PCIE_HRPWM2(x)                                                 \
-	(((x) >> BIT_SHIFT_PCIE_HRPWM2) & BIT_MASK_PCIE_HRPWM2)
-
-/* 2 REG_PCIE_HCPWM2_V1			(Offset 0x03DE) */
-
-#define BIT_SHIFT_PCIE_HCPWM2 0
-#define BIT_MASK_PCIE_HCPWM2 0xffff
-#define BIT_PCIE_HCPWM2(x)                                                     \
-	(((x) & BIT_MASK_PCIE_HCPWM2) << BIT_SHIFT_PCIE_HCPWM2)
-#define BIT_GET_PCIE_HCPWM2(x)                                                 \
-	(((x) >> BIT_SHIFT_PCIE_HCPWM2) & BIT_MASK_PCIE_HCPWM2)
-
-/* 2 REG_PCIE_H2C_MSG_V1			(Offset 0x03E0) */
-
-#define BIT_SHIFT_DRV2FW_INFO 0
-#define BIT_MASK_DRV2FW_INFO 0xffffffffL
-#define BIT_DRV2FW_INFO(x)                                                     \
-	(((x) & BIT_MASK_DRV2FW_INFO) << BIT_SHIFT_DRV2FW_INFO)
-#define BIT_GET_DRV2FW_INFO(x)                                                 \
-	(((x) >> BIT_SHIFT_DRV2FW_INFO) & BIT_MASK_DRV2FW_INFO)
-
-/* 2 REG_PCIE_C2H_MSG_V1			(Offset 0x03E4) */
-
-#define BIT_SHIFT_HCI_PCIE_C2H_MSG 0
-#define BIT_MASK_HCI_PCIE_C2H_MSG 0xffffffffL
-#define BIT_HCI_PCIE_C2H_MSG(x)                                                \
-	(((x) & BIT_MASK_HCI_PCIE_C2H_MSG) << BIT_SHIFT_HCI_PCIE_C2H_MSG)
-#define BIT_GET_HCI_PCIE_C2H_MSG(x)                                            \
-	(((x) >> BIT_SHIFT_HCI_PCIE_C2H_MSG) & BIT_MASK_HCI_PCIE_C2H_MSG)
-
-/* 2 REG_DBI_WDATA_V1			(Offset 0x03E8) */
-
-#define BIT_SHIFT_DBI_WDATA 0
-#define BIT_MASK_DBI_WDATA 0xffffffffL
-#define BIT_DBI_WDATA(x) (((x) & BIT_MASK_DBI_WDATA) << BIT_SHIFT_DBI_WDATA)
-#define BIT_GET_DBI_WDATA(x) (((x) >> BIT_SHIFT_DBI_WDATA) & BIT_MASK_DBI_WDATA)
-
-/* 2 REG_DBI_RDATA_V1			(Offset 0x03EC) */
-
-#define BIT_SHIFT_DBI_RDATA 0
-#define BIT_MASK_DBI_RDATA 0xffffffffL
-#define BIT_DBI_RDATA(x) (((x) & BIT_MASK_DBI_RDATA) << BIT_SHIFT_DBI_RDATA)
-#define BIT_GET_DBI_RDATA(x) (((x) >> BIT_SHIFT_DBI_RDATA) & BIT_MASK_DBI_RDATA)
-
-/* 2 REG_DBI_FLAG_V1				(Offset 0x03F0) */
-
-#define BIT_EN_STUCK_DBG BIT(26)
-#define BIT_RX_STUCK BIT(25)
-#define BIT_TX_STUCK BIT(24)
-#define BIT_DBI_RFLAG BIT(17)
-#define BIT_DBI_WFLAG BIT(16)
-
-#define BIT_SHIFT_DBI_WREN 12
-#define BIT_MASK_DBI_WREN 0xf
-#define BIT_DBI_WREN(x) (((x) & BIT_MASK_DBI_WREN) << BIT_SHIFT_DBI_WREN)
-#define BIT_GET_DBI_WREN(x) (((x) >> BIT_SHIFT_DBI_WREN) & BIT_MASK_DBI_WREN)
-
-#define BIT_SHIFT_DBI_ADDR 0
-#define BIT_MASK_DBI_ADDR 0xfff
-#define BIT_DBI_ADDR(x) (((x) & BIT_MASK_DBI_ADDR) << BIT_SHIFT_DBI_ADDR)
-#define BIT_GET_DBI_ADDR(x) (((x) >> BIT_SHIFT_DBI_ADDR) & BIT_MASK_DBI_ADDR)
-
-/* 2 REG_MDIO_V1				(Offset 0x03F4) */
-
-#define BIT_SHIFT_MDIO_RDATA 16
-#define BIT_MASK_MDIO_RDATA 0xffff
-#define BIT_MDIO_RDATA(x) (((x) & BIT_MASK_MDIO_RDATA) << BIT_SHIFT_MDIO_RDATA)
-#define BIT_GET_MDIO_RDATA(x)                                                  \
-	(((x) >> BIT_SHIFT_MDIO_RDATA) & BIT_MASK_MDIO_RDATA)
-
-#define BIT_SHIFT_MDIO_WDATA 0
-#define BIT_MASK_MDIO_WDATA 0xffff
-#define BIT_MDIO_WDATA(x) (((x) & BIT_MASK_MDIO_WDATA) << BIT_SHIFT_MDIO_WDATA)
-#define BIT_GET_MDIO_WDATA(x)                                                  \
-	(((x) >> BIT_SHIFT_MDIO_WDATA) & BIT_MASK_MDIO_WDATA)
-
-/* 2 REG_PCIE_MIX_CFG			(Offset 0x03F8) */
-
-#define BIT_EN_WATCH_DOG BIT(8)
-
-/* 2 REG_PCIE_MIX_CFG			(Offset 0x03F8) */
-
-#define BIT_SHIFT_MDIO_REG_ADDR_V1 0
-#define BIT_MASK_MDIO_REG_ADDR_V1 0x1f
-#define BIT_MDIO_REG_ADDR_V1(x)                                                \
-	(((x) & BIT_MASK_MDIO_REG_ADDR_V1) << BIT_SHIFT_MDIO_REG_ADDR_V1)
-#define BIT_GET_MDIO_REG_ADDR_V1(x)                                            \
-	(((x) >> BIT_SHIFT_MDIO_REG_ADDR_V1) & BIT_MASK_MDIO_REG_ADDR_V1)
-
-/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */
-
-#define BIT_HOST_GEN2_SUPPORT BIT(20)
-
-#define BIT_SHIFT_TXDMA_ERR_FLAG 16
-#define BIT_MASK_TXDMA_ERR_FLAG 0xf
-#define BIT_TXDMA_ERR_FLAG(x)                                                  \
-	(((x) & BIT_MASK_TXDMA_ERR_FLAG) << BIT_SHIFT_TXDMA_ERR_FLAG)
-#define BIT_GET_TXDMA_ERR_FLAG(x)                                              \
-	(((x) >> BIT_SHIFT_TXDMA_ERR_FLAG) & BIT_MASK_TXDMA_ERR_FLAG)
-
-#define BIT_SHIFT_EARLY_MODE_SEL 12
-#define BIT_MASK_EARLY_MODE_SEL 0xf
-#define BIT_EARLY_MODE_SEL(x)                                                  \
-	(((x) & BIT_MASK_EARLY_MODE_SEL) << BIT_SHIFT_EARLY_MODE_SEL)
-#define BIT_GET_EARLY_MODE_SEL(x)                                              \
-	(((x) >> BIT_SHIFT_EARLY_MODE_SEL) & BIT_MASK_EARLY_MODE_SEL)
-
-#define BIT_EPHY_RX50_EN BIT(11)
-
-#define BIT_SHIFT_MSI_TIMEOUT_ID_V1 8
-#define BIT_MASK_MSI_TIMEOUT_ID_V1 0x7
-#define BIT_MSI_TIMEOUT_ID_V1(x)                                               \
-	(((x) & BIT_MASK_MSI_TIMEOUT_ID_V1) << BIT_SHIFT_MSI_TIMEOUT_ID_V1)
-#define BIT_GET_MSI_TIMEOUT_ID_V1(x)                                           \
-	(((x) >> BIT_SHIFT_MSI_TIMEOUT_ID_V1) & BIT_MASK_MSI_TIMEOUT_ID_V1)
-
-#define BIT_RADDR_RD BIT(7)
-#define BIT_EN_MUL_TAG BIT(6)
-#define BIT_EN_EARLY_MODE BIT(5)
-#define BIT_L0S_LINK_OFF BIT(4)
-#define BIT_ACT_LINK_OFF BIT(3)
-
-/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */
-
-#define BIT_EN_SLOW_MAC_TX BIT(2)
-#define BIT_EN_SLOW_MAC_RX BIT(1)
-
-/* 2 REG_Q0_INFO				(Offset 0x0400) */
-
-#define BIT_SHIFT_QUEUEMACID_Q0_V1 25
-#define BIT_MASK_QUEUEMACID_Q0_V1 0x7f
-#define BIT_QUEUEMACID_Q0_V1(x)                                                \
-	(((x) & BIT_MASK_QUEUEMACID_Q0_V1) << BIT_SHIFT_QUEUEMACID_Q0_V1)
-#define BIT_GET_QUEUEMACID_Q0_V1(x)                                            \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q0_V1) & BIT_MASK_QUEUEMACID_Q0_V1)
-
-#define BIT_SHIFT_QUEUEAC_Q0_V1 23
-#define BIT_MASK_QUEUEAC_Q0_V1 0x3
-#define BIT_QUEUEAC_Q0_V1(x)                                                   \
-	(((x) & BIT_MASK_QUEUEAC_Q0_V1) << BIT_SHIFT_QUEUEAC_Q0_V1)
-#define BIT_GET_QUEUEAC_Q0_V1(x)                                               \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q0_V1) & BIT_MASK_QUEUEAC_Q0_V1)
-
-/* 2 REG_Q0_INFO				(Offset 0x0400) */
-
-#define BIT_TIDEMPTY_Q0_V1 BIT(22)
-
-/* 2 REG_Q0_INFO				(Offset 0x0400) */
-
-#define BIT_SHIFT_TAIL_PKT_Q0_V2 11
-#define BIT_MASK_TAIL_PKT_Q0_V2 0x7ff
-#define BIT_TAIL_PKT_Q0_V2(x)                                                  \
-	(((x) & BIT_MASK_TAIL_PKT_Q0_V2) << BIT_SHIFT_TAIL_PKT_Q0_V2)
-#define BIT_GET_TAIL_PKT_Q0_V2(x)                                              \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q0_V2) & BIT_MASK_TAIL_PKT_Q0_V2)
-
-/* 2 REG_Q0_INFO				(Offset 0x0400) */
-
-#define BIT_SHIFT_HEAD_PKT_Q0_V1 0
-#define BIT_MASK_HEAD_PKT_Q0_V1 0x7ff
-#define BIT_HEAD_PKT_Q0_V1(x)                                                  \
-	(((x) & BIT_MASK_HEAD_PKT_Q0_V1) << BIT_SHIFT_HEAD_PKT_Q0_V1)
-#define BIT_GET_HEAD_PKT_Q0_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q0_V1) & BIT_MASK_HEAD_PKT_Q0_V1)
-
-/* 2 REG_Q1_INFO				(Offset 0x0404) */
-
-#define BIT_SHIFT_QUEUEMACID_Q1_V1 25
-#define BIT_MASK_QUEUEMACID_Q1_V1 0x7f
-#define BIT_QUEUEMACID_Q1_V1(x)                                                \
-	(((x) & BIT_MASK_QUEUEMACID_Q1_V1) << BIT_SHIFT_QUEUEMACID_Q1_V1)
-#define BIT_GET_QUEUEMACID_Q1_V1(x)                                            \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q1_V1) & BIT_MASK_QUEUEMACID_Q1_V1)
-
-#define BIT_SHIFT_QUEUEAC_Q1_V1 23
-#define BIT_MASK_QUEUEAC_Q1_V1 0x3
-#define BIT_QUEUEAC_Q1_V1(x)                                                   \
-	(((x) & BIT_MASK_QUEUEAC_Q1_V1) << BIT_SHIFT_QUEUEAC_Q1_V1)
-#define BIT_GET_QUEUEAC_Q1_V1(x)                                               \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q1_V1) & BIT_MASK_QUEUEAC_Q1_V1)
-
-/* 2 REG_Q1_INFO				(Offset 0x0404) */
-
-#define BIT_TIDEMPTY_Q1_V1 BIT(22)
-
-/* 2 REG_Q1_INFO				(Offset 0x0404) */
-
-#define BIT_SHIFT_TAIL_PKT_Q1_V2 11
-#define BIT_MASK_TAIL_PKT_Q1_V2 0x7ff
-#define BIT_TAIL_PKT_Q1_V2(x)                                                  \
-	(((x) & BIT_MASK_TAIL_PKT_Q1_V2) << BIT_SHIFT_TAIL_PKT_Q1_V2)
-#define BIT_GET_TAIL_PKT_Q1_V2(x)                                              \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q1_V2) & BIT_MASK_TAIL_PKT_Q1_V2)
-
-/* 2 REG_Q1_INFO				(Offset 0x0404) */
-
-#define BIT_SHIFT_HEAD_PKT_Q1_V1 0
-#define BIT_MASK_HEAD_PKT_Q1_V1 0x7ff
-#define BIT_HEAD_PKT_Q1_V1(x)                                                  \
-	(((x) & BIT_MASK_HEAD_PKT_Q1_V1) << BIT_SHIFT_HEAD_PKT_Q1_V1)
-#define BIT_GET_HEAD_PKT_Q1_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q1_V1) & BIT_MASK_HEAD_PKT_Q1_V1)
-
-/* 2 REG_Q2_INFO				(Offset 0x0408) */
-
-#define BIT_SHIFT_QUEUEMACID_Q2_V1 25
-#define BIT_MASK_QUEUEMACID_Q2_V1 0x7f
-#define BIT_QUEUEMACID_Q2_V1(x)                                                \
-	(((x) & BIT_MASK_QUEUEMACID_Q2_V1) << BIT_SHIFT_QUEUEMACID_Q2_V1)
-#define BIT_GET_QUEUEMACID_Q2_V1(x)                                            \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q2_V1) & BIT_MASK_QUEUEMACID_Q2_V1)
-
-#define BIT_SHIFT_QUEUEAC_Q2_V1 23
-#define BIT_MASK_QUEUEAC_Q2_V1 0x3
-#define BIT_QUEUEAC_Q2_V1(x)                                                   \
-	(((x) & BIT_MASK_QUEUEAC_Q2_V1) << BIT_SHIFT_QUEUEAC_Q2_V1)
-#define BIT_GET_QUEUEAC_Q2_V1(x)                                               \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q2_V1) & BIT_MASK_QUEUEAC_Q2_V1)
-
-/* 2 REG_Q2_INFO				(Offset 0x0408) */
-
-#define BIT_TIDEMPTY_Q2_V1 BIT(22)
-
-/* 2 REG_Q2_INFO				(Offset 0x0408) */
-
-#define BIT_SHIFT_TAIL_PKT_Q2_V2 11
-#define BIT_MASK_TAIL_PKT_Q2_V2 0x7ff
-#define BIT_TAIL_PKT_Q2_V2(x)                                                  \
-	(((x) & BIT_MASK_TAIL_PKT_Q2_V2) << BIT_SHIFT_TAIL_PKT_Q2_V2)
-#define BIT_GET_TAIL_PKT_Q2_V2(x)                                              \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q2_V2) & BIT_MASK_TAIL_PKT_Q2_V2)
-
-/* 2 REG_Q2_INFO				(Offset 0x0408) */
-
-#define BIT_SHIFT_HEAD_PKT_Q2_V1 0
-#define BIT_MASK_HEAD_PKT_Q2_V1 0x7ff
-#define BIT_HEAD_PKT_Q2_V1(x)                                                  \
-	(((x) & BIT_MASK_HEAD_PKT_Q2_V1) << BIT_SHIFT_HEAD_PKT_Q2_V1)
-#define BIT_GET_HEAD_PKT_Q2_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q2_V1) & BIT_MASK_HEAD_PKT_Q2_V1)
-
-/* 2 REG_Q3_INFO				(Offset 0x040C) */
-
-#define BIT_SHIFT_QUEUEMACID_Q3_V1 25
-#define BIT_MASK_QUEUEMACID_Q3_V1 0x7f
-#define BIT_QUEUEMACID_Q3_V1(x)                                                \
-	(((x) & BIT_MASK_QUEUEMACID_Q3_V1) << BIT_SHIFT_QUEUEMACID_Q3_V1)
-#define BIT_GET_QUEUEMACID_Q3_V1(x)                                            \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q3_V1) & BIT_MASK_QUEUEMACID_Q3_V1)
-
-#define BIT_SHIFT_QUEUEAC_Q3_V1 23
-#define BIT_MASK_QUEUEAC_Q3_V1 0x3
-#define BIT_QUEUEAC_Q3_V1(x)                                                   \
-	(((x) & BIT_MASK_QUEUEAC_Q3_V1) << BIT_SHIFT_QUEUEAC_Q3_V1)
-#define BIT_GET_QUEUEAC_Q3_V1(x)                                               \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q3_V1) & BIT_MASK_QUEUEAC_Q3_V1)
-
-/* 2 REG_Q3_INFO				(Offset 0x040C) */
-
-#define BIT_TIDEMPTY_Q3_V1 BIT(22)
-
-/* 2 REG_Q3_INFO				(Offset 0x040C) */
-
-#define BIT_SHIFT_TAIL_PKT_Q3_V2 11
-#define BIT_MASK_TAIL_PKT_Q3_V2 0x7ff
-#define BIT_TAIL_PKT_Q3_V2(x)                                                  \
-	(((x) & BIT_MASK_TAIL_PKT_Q3_V2) << BIT_SHIFT_TAIL_PKT_Q3_V2)
-#define BIT_GET_TAIL_PKT_Q3_V2(x)                                              \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q3_V2) & BIT_MASK_TAIL_PKT_Q3_V2)
-
-/* 2 REG_Q3_INFO				(Offset 0x040C) */
-
-#define BIT_SHIFT_HEAD_PKT_Q3_V1 0
-#define BIT_MASK_HEAD_PKT_Q3_V1 0x7ff
-#define BIT_HEAD_PKT_Q3_V1(x)                                                  \
-	(((x) & BIT_MASK_HEAD_PKT_Q3_V1) << BIT_SHIFT_HEAD_PKT_Q3_V1)
-#define BIT_GET_HEAD_PKT_Q3_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q3_V1) & BIT_MASK_HEAD_PKT_Q3_V1)
-
-/* 2 REG_MGQ_INFO				(Offset 0x0410) */
-
-#define BIT_SHIFT_QUEUEMACID_MGQ_V1 25
-#define BIT_MASK_QUEUEMACID_MGQ_V1 0x7f
-#define BIT_QUEUEMACID_MGQ_V1(x)                                               \
-	(((x) & BIT_MASK_QUEUEMACID_MGQ_V1) << BIT_SHIFT_QUEUEMACID_MGQ_V1)
-#define BIT_GET_QUEUEMACID_MGQ_V1(x)                                           \
-	(((x) >> BIT_SHIFT_QUEUEMACID_MGQ_V1) & BIT_MASK_QUEUEMACID_MGQ_V1)
-
-#define BIT_SHIFT_QUEUEAC_MGQ_V1 23
-#define BIT_MASK_QUEUEAC_MGQ_V1 0x3
-#define BIT_QUEUEAC_MGQ_V1(x)                                                  \
-	(((x) & BIT_MASK_QUEUEAC_MGQ_V1) << BIT_SHIFT_QUEUEAC_MGQ_V1)
-#define BIT_GET_QUEUEAC_MGQ_V1(x)                                              \
-	(((x) >> BIT_SHIFT_QUEUEAC_MGQ_V1) & BIT_MASK_QUEUEAC_MGQ_V1)
-
-/* 2 REG_MGQ_INFO				(Offset 0x0410) */
-
-#define BIT_TIDEMPTY_MGQ_V1 BIT(22)
-
-/* 2 REG_MGQ_INFO				(Offset 0x0410) */
-
-#define BIT_SHIFT_TAIL_PKT_MGQ_V2 11
-#define BIT_MASK_TAIL_PKT_MGQ_V2 0x7ff
-#define BIT_TAIL_PKT_MGQ_V2(x)                                                 \
-	(((x) & BIT_MASK_TAIL_PKT_MGQ_V2) << BIT_SHIFT_TAIL_PKT_MGQ_V2)
-#define BIT_GET_TAIL_PKT_MGQ_V2(x)                                             \
-	(((x) >> BIT_SHIFT_TAIL_PKT_MGQ_V2) & BIT_MASK_TAIL_PKT_MGQ_V2)
-
-/* 2 REG_MGQ_INFO				(Offset 0x0410) */
-
-#define BIT_SHIFT_HEAD_PKT_MGQ_V1 0
-#define BIT_MASK_HEAD_PKT_MGQ_V1 0x7ff
-#define BIT_HEAD_PKT_MGQ_V1(x)                                                 \
-	(((x) & BIT_MASK_HEAD_PKT_MGQ_V1) << BIT_SHIFT_HEAD_PKT_MGQ_V1)
-#define BIT_GET_HEAD_PKT_MGQ_V1(x)                                             \
-	(((x) >> BIT_SHIFT_HEAD_PKT_MGQ_V1) & BIT_MASK_HEAD_PKT_MGQ_V1)
-
-/* 2 REG_HIQ_INFO				(Offset 0x0414) */
-
-#define BIT_SHIFT_QUEUEMACID_HIQ_V1 25
-#define BIT_MASK_QUEUEMACID_HIQ_V1 0x7f
-#define BIT_QUEUEMACID_HIQ_V1(x)                                               \
-	(((x) & BIT_MASK_QUEUEMACID_HIQ_V1) << BIT_SHIFT_QUEUEMACID_HIQ_V1)
-#define BIT_GET_QUEUEMACID_HIQ_V1(x)                                           \
-	(((x) >> BIT_SHIFT_QUEUEMACID_HIQ_V1) & BIT_MASK_QUEUEMACID_HIQ_V1)
-
-#define BIT_SHIFT_QUEUEAC_HIQ_V1 23
-#define BIT_MASK_QUEUEAC_HIQ_V1 0x3
-#define BIT_QUEUEAC_HIQ_V1(x)                                                  \
-	(((x) & BIT_MASK_QUEUEAC_HIQ_V1) << BIT_SHIFT_QUEUEAC_HIQ_V1)
-#define BIT_GET_QUEUEAC_HIQ_V1(x)                                              \
-	(((x) >> BIT_SHIFT_QUEUEAC_HIQ_V1) & BIT_MASK_QUEUEAC_HIQ_V1)
-
-/* 2 REG_HIQ_INFO				(Offset 0x0414) */
-
-#define BIT_TIDEMPTY_HIQ_V1 BIT(22)
-
-/* 2 REG_HIQ_INFO				(Offset 0x0414) */
-
-#define BIT_SHIFT_TAIL_PKT_HIQ_V2 11
-#define BIT_MASK_TAIL_PKT_HIQ_V2 0x7ff
-#define BIT_TAIL_PKT_HIQ_V2(x)                                                 \
-	(((x) & BIT_MASK_TAIL_PKT_HIQ_V2) << BIT_SHIFT_TAIL_PKT_HIQ_V2)
-#define BIT_GET_TAIL_PKT_HIQ_V2(x)                                             \
-	(((x) >> BIT_SHIFT_TAIL_PKT_HIQ_V2) & BIT_MASK_TAIL_PKT_HIQ_V2)
-
-/* 2 REG_HIQ_INFO				(Offset 0x0414) */
-
-#define BIT_SHIFT_HEAD_PKT_HIQ_V1 0
-#define BIT_MASK_HEAD_PKT_HIQ_V1 0x7ff
-#define BIT_HEAD_PKT_HIQ_V1(x)                                                 \
-	(((x) & BIT_MASK_HEAD_PKT_HIQ_V1) << BIT_SHIFT_HEAD_PKT_HIQ_V1)
-#define BIT_GET_HEAD_PKT_HIQ_V1(x)                                             \
-	(((x) >> BIT_SHIFT_HEAD_PKT_HIQ_V1) & BIT_MASK_HEAD_PKT_HIQ_V1)
-
-/* 2 REG_BCNQ_INFO				(Offset 0x0418) */
-
-#define BIT_SHIFT_BCNQ_HEAD_PG_V1 0
-#define BIT_MASK_BCNQ_HEAD_PG_V1 0xfff
-#define BIT_BCNQ_HEAD_PG_V1(x)                                                 \
-	(((x) & BIT_MASK_BCNQ_HEAD_PG_V1) << BIT_SHIFT_BCNQ_HEAD_PG_V1)
-#define BIT_GET_BCNQ_HEAD_PG_V1(x)                                             \
-	(((x) >> BIT_SHIFT_BCNQ_HEAD_PG_V1) & BIT_MASK_BCNQ_HEAD_PG_V1)
-
-/* 2 REG_TXPKT_EMPTY				(Offset 0x041A) */
-
-#define BIT_BCNQ_EMPTY BIT(11)
-#define BIT_HQQ_EMPTY BIT(10)
-#define BIT_MQQ_EMPTY BIT(9)
-#define BIT_MGQ_CPU_EMPTY BIT(8)
-#define BIT_AC7Q_EMPTY BIT(7)
-#define BIT_AC6Q_EMPTY BIT(6)
-#define BIT_AC5Q_EMPTY BIT(5)
-#define BIT_AC4Q_EMPTY BIT(4)
-#define BIT_AC3Q_EMPTY BIT(3)
-#define BIT_AC2Q_EMPTY BIT(2)
-#define BIT_AC1Q_EMPTY BIT(1)
-#define BIT_AC0Q_EMPTY BIT(0)
-
-/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */
-
-#define BIT_BCN1_POLL BIT(30)
-
-/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */
-
-#define BIT_CPUMGT_POLL BIT(29)
-#define BIT_BCN_POLL BIT(28)
-
-/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */
-
-#define BIT_CPUMGQ_FW_NUM_V1 BIT(12)
-
-/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */
-
-#define BIT_SHIFT_FW_FREE_TAIL_V1 0
-#define BIT_MASK_FW_FREE_TAIL_V1 0xfff
-#define BIT_FW_FREE_TAIL_V1(x)                                                 \
-	(((x) & BIT_MASK_FW_FREE_TAIL_V1) << BIT_SHIFT_FW_FREE_TAIL_V1)
-#define BIT_GET_FW_FREE_TAIL_V1(x)                                             \
-	(((x) >> BIT_SHIFT_FW_FREE_TAIL_V1) & BIT_MASK_FW_FREE_TAIL_V1)
-
-/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */
-
-#define BIT_RTS_LIMIT_IN_OFDM BIT(23)
-#define BIT_EN_BCNQ_DL BIT(22)
-#define BIT_EN_RD_RESP_NAV_BK BIT(21)
-#define BIT_EN_WR_FREE_TAIL BIT(20)
-
-#define BIT_SHIFT_EN_QUEUE_RPT 8
-#define BIT_MASK_EN_QUEUE_RPT 0xff
-#define BIT_EN_QUEUE_RPT(x)                                                    \
-	(((x) & BIT_MASK_EN_QUEUE_RPT) << BIT_SHIFT_EN_QUEUE_RPT)
-#define BIT_GET_EN_QUEUE_RPT(x)                                                \
-	(((x) >> BIT_SHIFT_EN_QUEUE_RPT) & BIT_MASK_EN_QUEUE_RPT)
-
-#define BIT_EN_RTY_BK BIT(7)
-#define BIT_EN_USE_INI_RAT BIT(6)
-#define BIT_EN_RTS_NAV_BK BIT(5)
-#define BIT_DIS_SSN_CHECK BIT(4)
-#define BIT_MACID_MATCH_RTS BIT(3)
-
-/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */
-
-#define BIT_EN_BCN_TRXRPT_V1 BIT(2)
-
-/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */
-
-#define BIT_EN_FTMACKRPT BIT(1)
-
-/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */
-
-#define BIT_EN_FTMRPT BIT(0)
-
-/* 2 REG_DATAFB_SEL				(Offset 0x0423) */
-
-#define BIT__R_EN_RTY_BK_COD BIT(2)
-
-/* 2 REG_DATAFB_SEL				(Offset 0x0423) */
-
-#define BIT_SHIFT__R_DATA_FALLBACK_SEL 0
-#define BIT_MASK__R_DATA_FALLBACK_SEL 0x3
-#define BIT__R_DATA_FALLBACK_SEL(x)                                            \
-	(((x) & BIT_MASK__R_DATA_FALLBACK_SEL)                                 \
-	 << BIT_SHIFT__R_DATA_FALLBACK_SEL)
-#define BIT_GET__R_DATA_FALLBACK_SEL(x)                                        \
-	(((x) >> BIT_SHIFT__R_DATA_FALLBACK_SEL) &                             \
-	 BIT_MASK__R_DATA_FALLBACK_SEL)
-
-/* 2 REG_BCNQ_BDNY_V1			(Offset 0x0424) */
-
-#define BIT_SHIFT_BCNQ_PGBNDY_V1 0
-#define BIT_MASK_BCNQ_PGBNDY_V1 0xfff
-#define BIT_BCNQ_PGBNDY_V1(x)                                                  \
-	(((x) & BIT_MASK_BCNQ_PGBNDY_V1) << BIT_SHIFT_BCNQ_PGBNDY_V1)
-#define BIT_GET_BCNQ_PGBNDY_V1(x)                                              \
-	(((x) >> BIT_SHIFT_BCNQ_PGBNDY_V1) & BIT_MASK_BCNQ_PGBNDY_V1)
-
-/* 2 REG_LIFETIME_EN				(Offset 0x0426) */
-
-#define BIT_BT_INT_CPU BIT(7)
-#define BIT_BT_INT_PTA BIT(6)
-
-/* 2 REG_LIFETIME_EN				(Offset 0x0426) */
-
-#define BIT_EN_CTRL_RTYBIT BIT(4)
-
-/* 2 REG_LIFETIME_EN				(Offset 0x0426) */
-
-#define BIT_LIFETIME_BK_EN BIT(3)
-#define BIT_LIFETIME_BE_EN BIT(2)
-#define BIT_LIFETIME_VI_EN BIT(1)
-#define BIT_LIFETIME_VO_EN BIT(0)
-
-/* 2 REG_SPEC_SIFS				(Offset 0x0428) */
-
-#define BIT_SHIFT_SPEC_SIFS_OFDM_PTCL 8
-#define BIT_MASK_SPEC_SIFS_OFDM_PTCL 0xff
-#define BIT_SPEC_SIFS_OFDM_PTCL(x)                                             \
-	(((x) & BIT_MASK_SPEC_SIFS_OFDM_PTCL) << BIT_SHIFT_SPEC_SIFS_OFDM_PTCL)
-#define BIT_GET_SPEC_SIFS_OFDM_PTCL(x)                                         \
-	(((x) >> BIT_SHIFT_SPEC_SIFS_OFDM_PTCL) & BIT_MASK_SPEC_SIFS_OFDM_PTCL)
-
-#define BIT_SHIFT_SPEC_SIFS_CCK_PTCL 0
-#define BIT_MASK_SPEC_SIFS_CCK_PTCL 0xff
-#define BIT_SPEC_SIFS_CCK_PTCL(x)                                              \
-	(((x) & BIT_MASK_SPEC_SIFS_CCK_PTCL) << BIT_SHIFT_SPEC_SIFS_CCK_PTCL)
-#define BIT_GET_SPEC_SIFS_CCK_PTCL(x)                                          \
-	(((x) >> BIT_SHIFT_SPEC_SIFS_CCK_PTCL) & BIT_MASK_SPEC_SIFS_CCK_PTCL)
-
-/* 2 REG_RETRY_LIMIT				(Offset 0x042A) */
-
-#define BIT_SHIFT_SRL 8
-#define BIT_MASK_SRL 0x3f
-#define BIT_SRL(x) (((x) & BIT_MASK_SRL) << BIT_SHIFT_SRL)
-#define BIT_GET_SRL(x) (((x) >> BIT_SHIFT_SRL) & BIT_MASK_SRL)
-
-#define BIT_SHIFT_LRL 0
-#define BIT_MASK_LRL 0x3f
-#define BIT_LRL(x) (((x) & BIT_MASK_LRL) << BIT_SHIFT_LRL)
-#define BIT_GET_LRL(x) (((x) >> BIT_SHIFT_LRL) & BIT_MASK_LRL)
-
-/* 2 REG_TXBF_CTRL				(Offset 0x042C) */
-
-#define BIT_R_ENABLE_NDPA BIT(31)
-#define BIT_USE_NDPA_PARAMETER BIT(30)
-#define BIT_R_PROP_TXBF BIT(29)
-#define BIT_R_EN_NDPA_INT BIT(28)
-#define BIT_R_TXBF1_80M BIT(27)
-#define BIT_R_TXBF1_40M BIT(26)
-#define BIT_R_TXBF1_20M BIT(25)
-
-#define BIT_SHIFT_R_TXBF1_AID 16
-#define BIT_MASK_R_TXBF1_AID 0x1ff
-#define BIT_R_TXBF1_AID(x)                                                     \
-	(((x) & BIT_MASK_R_TXBF1_AID) << BIT_SHIFT_R_TXBF1_AID)
-#define BIT_GET_R_TXBF1_AID(x)                                                 \
-	(((x) >> BIT_SHIFT_R_TXBF1_AID) & BIT_MASK_R_TXBF1_AID)
-
-/* 2 REG_TXBF_CTRL				(Offset 0x042C) */
-
-#define BIT_DIS_NDP_BFEN BIT(15)
-
-/* 2 REG_TXBF_CTRL				(Offset 0x042C) */
-
-#define BIT_R_TXBCN_NOBLOCK_NDP BIT(14)
-
-/* 2 REG_TXBF_CTRL				(Offset 0x042C) */
-
-#define BIT_R_TXBF0_80M BIT(11)
-#define BIT_R_TXBF0_40M BIT(10)
-#define BIT_R_TXBF0_20M BIT(9)
-
-#define BIT_SHIFT_R_TXBF0_AID 0
-#define BIT_MASK_R_TXBF0_AID 0x1ff
-#define BIT_R_TXBF0_AID(x)                                                     \
-	(((x) & BIT_MASK_R_TXBF0_AID) << BIT_SHIFT_R_TXBF0_AID)
-#define BIT_GET_R_TXBF0_AID(x)                                                 \
-	(((x) >> BIT_SHIFT_R_TXBF0_AID) & BIT_MASK_R_TXBF0_AID)
-
-/* 2 REG_DARFRC				(Offset 0x0430) */
-
-#define BIT_SHIFT_DARF_RC8 (56 & CPU_OPT_WIDTH)
-#define BIT_MASK_DARF_RC8 0x1f
-#define BIT_DARF_RC8(x) (((x) & BIT_MASK_DARF_RC8) << BIT_SHIFT_DARF_RC8)
-#define BIT_GET_DARF_RC8(x) (((x) >> BIT_SHIFT_DARF_RC8) & BIT_MASK_DARF_RC8)
-
-#define BIT_SHIFT_DARF_RC7 (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_DARF_RC7 0x1f
-#define BIT_DARF_RC7(x) (((x) & BIT_MASK_DARF_RC7) << BIT_SHIFT_DARF_RC7)
-#define BIT_GET_DARF_RC7(x) (((x) >> BIT_SHIFT_DARF_RC7) & BIT_MASK_DARF_RC7)
-
-#define BIT_SHIFT_DARF_RC6 (40 & CPU_OPT_WIDTH)
-#define BIT_MASK_DARF_RC6 0x1f
-#define BIT_DARF_RC6(x) (((x) & BIT_MASK_DARF_RC6) << BIT_SHIFT_DARF_RC6)
-#define BIT_GET_DARF_RC6(x) (((x) >> BIT_SHIFT_DARF_RC6) & BIT_MASK_DARF_RC6)
-
-#define BIT_SHIFT_DARF_RC5 (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_DARF_RC5 0x1f
-#define BIT_DARF_RC5(x) (((x) & BIT_MASK_DARF_RC5) << BIT_SHIFT_DARF_RC5)
-#define BIT_GET_DARF_RC5(x) (((x) >> BIT_SHIFT_DARF_RC5) & BIT_MASK_DARF_RC5)
-
-#define BIT_SHIFT_DARF_RC4 24
-#define BIT_MASK_DARF_RC4 0x1f
-#define BIT_DARF_RC4(x) (((x) & BIT_MASK_DARF_RC4) << BIT_SHIFT_DARF_RC4)
-#define BIT_GET_DARF_RC4(x) (((x) >> BIT_SHIFT_DARF_RC4) & BIT_MASK_DARF_RC4)
-
-#define BIT_SHIFT_DARF_RC3 16
-#define BIT_MASK_DARF_RC3 0x1f
-#define BIT_DARF_RC3(x) (((x) & BIT_MASK_DARF_RC3) << BIT_SHIFT_DARF_RC3)
-#define BIT_GET_DARF_RC3(x) (((x) >> BIT_SHIFT_DARF_RC3) & BIT_MASK_DARF_RC3)
-
-#define BIT_SHIFT_DARF_RC2 8
-#define BIT_MASK_DARF_RC2 0x1f
-#define BIT_DARF_RC2(x) (((x) & BIT_MASK_DARF_RC2) << BIT_SHIFT_DARF_RC2)
-#define BIT_GET_DARF_RC2(x) (((x) >> BIT_SHIFT_DARF_RC2) & BIT_MASK_DARF_RC2)
-
-#define BIT_SHIFT_DARF_RC1 0
-#define BIT_MASK_DARF_RC1 0x1f
-#define BIT_DARF_RC1(x) (((x) & BIT_MASK_DARF_RC1) << BIT_SHIFT_DARF_RC1)
-#define BIT_GET_DARF_RC1(x) (((x) >> BIT_SHIFT_DARF_RC1) & BIT_MASK_DARF_RC1)
-
-/* 2 REG_RARFRC				(Offset 0x0438) */
-
-#define BIT_SHIFT_RARF_RC8 (56 & CPU_OPT_WIDTH)
-#define BIT_MASK_RARF_RC8 0x1f
-#define BIT_RARF_RC8(x) (((x) & BIT_MASK_RARF_RC8) << BIT_SHIFT_RARF_RC8)
-#define BIT_GET_RARF_RC8(x) (((x) >> BIT_SHIFT_RARF_RC8) & BIT_MASK_RARF_RC8)
-
-#define BIT_SHIFT_RARF_RC7 (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_RARF_RC7 0x1f
-#define BIT_RARF_RC7(x) (((x) & BIT_MASK_RARF_RC7) << BIT_SHIFT_RARF_RC7)
-#define BIT_GET_RARF_RC7(x) (((x) >> BIT_SHIFT_RARF_RC7) & BIT_MASK_RARF_RC7)
-
-#define BIT_SHIFT_RARF_RC6 (40 & CPU_OPT_WIDTH)
-#define BIT_MASK_RARF_RC6 0x1f
-#define BIT_RARF_RC6(x) (((x) & BIT_MASK_RARF_RC6) << BIT_SHIFT_RARF_RC6)
-#define BIT_GET_RARF_RC6(x) (((x) >> BIT_SHIFT_RARF_RC6) & BIT_MASK_RARF_RC6)
-
-#define BIT_SHIFT_RARF_RC5 (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_RARF_RC5 0x1f
-#define BIT_RARF_RC5(x) (((x) & BIT_MASK_RARF_RC5) << BIT_SHIFT_RARF_RC5)
-#define BIT_GET_RARF_RC5(x) (((x) >> BIT_SHIFT_RARF_RC5) & BIT_MASK_RARF_RC5)
-
-#define BIT_SHIFT_RARF_RC4 24
-#define BIT_MASK_RARF_RC4 0x1f
-#define BIT_RARF_RC4(x) (((x) & BIT_MASK_RARF_RC4) << BIT_SHIFT_RARF_RC4)
-#define BIT_GET_RARF_RC4(x) (((x) >> BIT_SHIFT_RARF_RC4) & BIT_MASK_RARF_RC4)
-
-#define BIT_SHIFT_RARF_RC3 16
-#define BIT_MASK_RARF_RC3 0x1f
-#define BIT_RARF_RC3(x) (((x) & BIT_MASK_RARF_RC3) << BIT_SHIFT_RARF_RC3)
-#define BIT_GET_RARF_RC3(x) (((x) >> BIT_SHIFT_RARF_RC3) & BIT_MASK_RARF_RC3)
-
-#define BIT_SHIFT_RARF_RC2 8
-#define BIT_MASK_RARF_RC2 0x1f
-#define BIT_RARF_RC2(x) (((x) & BIT_MASK_RARF_RC2) << BIT_SHIFT_RARF_RC2)
-#define BIT_GET_RARF_RC2(x) (((x) >> BIT_SHIFT_RARF_RC2) & BIT_MASK_RARF_RC2)
-
-#define BIT_SHIFT_RARF_RC1 0
-#define BIT_MASK_RARF_RC1 0x1f
-#define BIT_RARF_RC1(x) (((x) & BIT_MASK_RARF_RC1) << BIT_SHIFT_RARF_RC1)
-#define BIT_GET_RARF_RC1(x) (((x) >> BIT_SHIFT_RARF_RC1) & BIT_MASK_RARF_RC1)
-
-/* 2 REG_RRSR				(Offset 0x0440) */
-
-#define BIT_SHIFT_RRSR_RSC 21
-#define BIT_MASK_RRSR_RSC 0x3
-#define BIT_RRSR_RSC(x) (((x) & BIT_MASK_RRSR_RSC) << BIT_SHIFT_RRSR_RSC)
-#define BIT_GET_RRSR_RSC(x) (((x) >> BIT_SHIFT_RRSR_RSC) & BIT_MASK_RRSR_RSC)
-
-#define BIT_RRSR_BW BIT(20)
-
-#define BIT_SHIFT_RRSC_BITMAP 0
-#define BIT_MASK_RRSC_BITMAP 0xfffff
-#define BIT_RRSC_BITMAP(x)                                                     \
-	(((x) & BIT_MASK_RRSC_BITMAP) << BIT_SHIFT_RRSC_BITMAP)
-#define BIT_GET_RRSC_BITMAP(x)                                                 \
-	(((x) >> BIT_SHIFT_RRSC_BITMAP) & BIT_MASK_RRSC_BITMAP)
-
-/* 2 REG_ARFR0				(Offset 0x0444) */
-
-#define BIT_SHIFT_ARFR0_V1 0
-#define BIT_MASK_ARFR0_V1 0xffffffffffffffffL
-#define BIT_ARFR0_V1(x) (((x) & BIT_MASK_ARFR0_V1) << BIT_SHIFT_ARFR0_V1)
-#define BIT_GET_ARFR0_V1(x) (((x) >> BIT_SHIFT_ARFR0_V1) & BIT_MASK_ARFR0_V1)
-
-/* 2 REG_ARFR1_V1				(Offset 0x044C) */
-
-#define BIT_SHIFT_ARFR1_V1 0
-#define BIT_MASK_ARFR1_V1 0xffffffffffffffffL
-#define BIT_ARFR1_V1(x) (((x) & BIT_MASK_ARFR1_V1) << BIT_SHIFT_ARFR1_V1)
-#define BIT_GET_ARFR1_V1(x) (((x) >> BIT_SHIFT_ARFR1_V1) & BIT_MASK_ARFR1_V1)
-
-/* 2 REG_CCK_CHECK				(Offset 0x0454) */
-
-#define BIT_CHECK_CCK_EN BIT(7)
-#define BIT_EN_BCN_PKT_REL BIT(6)
-#define BIT_BCN_PORT_SEL BIT(5)
-#define BIT_MOREDATA_BYPASS BIT(4)
-#define BIT_EN_CLR_CMD_REL_BCN_PKT BIT(3)
-
-/* 2 REG_CCK_CHECK				(Offset 0x0454) */
-
-#define BIT_R_EN_SET_MOREDATA BIT(2)
-#define BIT__R_DIS_CLEAR_MACID_RELEASE BIT(1)
-#define BIT__R_MACID_RELEASE_EN BIT(0)
-
-/* 2 REG_AMPDU_MAX_TIME			(Offset 0x0456) */
-
-#define BIT_SHIFT_AMPDU_MAX_TIME 0
-#define BIT_MASK_AMPDU_MAX_TIME 0xff
-#define BIT_AMPDU_MAX_TIME(x)                                                  \
-	(((x) & BIT_MASK_AMPDU_MAX_TIME) << BIT_SHIFT_AMPDU_MAX_TIME)
-#define BIT_GET_AMPDU_MAX_TIME(x)                                              \
-	(((x) >> BIT_SHIFT_AMPDU_MAX_TIME) & BIT_MASK_AMPDU_MAX_TIME)
-
-/* 2 REG_BCNQ1_BDNY_V1			(Offset 0x0456) */
-
-#define BIT_SHIFT_BCNQ1_PGBNDY_V1 0
-#define BIT_MASK_BCNQ1_PGBNDY_V1 0xfff
-#define BIT_BCNQ1_PGBNDY_V1(x)                                                 \
-	(((x) & BIT_MASK_BCNQ1_PGBNDY_V1) << BIT_SHIFT_BCNQ1_PGBNDY_V1)
-#define BIT_GET_BCNQ1_PGBNDY_V1(x)                                             \
-	(((x) >> BIT_SHIFT_BCNQ1_PGBNDY_V1) & BIT_MASK_BCNQ1_PGBNDY_V1)
-
-/* 2 REG_AMPDU_MAX_LENGTH			(Offset 0x0458) */
-
-#define BIT_SHIFT_AMPDU_MAX_LENGTH 0
-#define BIT_MASK_AMPDU_MAX_LENGTH 0xffffffffL
-#define BIT_AMPDU_MAX_LENGTH(x)                                                \
-	(((x) & BIT_MASK_AMPDU_MAX_LENGTH) << BIT_SHIFT_AMPDU_MAX_LENGTH)
-#define BIT_GET_AMPDU_MAX_LENGTH(x)                                            \
-	(((x) >> BIT_SHIFT_AMPDU_MAX_LENGTH) & BIT_MASK_AMPDU_MAX_LENGTH)
-
-/* 2 REG_ACQ_STOP				(Offset 0x045C) */
-
-#define BIT_AC7Q_STOP BIT(7)
-#define BIT_AC6Q_STOP BIT(6)
-#define BIT_AC5Q_STOP BIT(5)
-#define BIT_AC4Q_STOP BIT(4)
-#define BIT_AC3Q_STOP BIT(3)
-#define BIT_AC2Q_STOP BIT(2)
-#define BIT_AC1Q_STOP BIT(1)
-#define BIT_AC0Q_STOP BIT(0)
-
-/* 2 REG_NDPA_RATE				(Offset 0x045D) */
-
-#define BIT_SHIFT_R_NDPA_RATE_V1 0
-#define BIT_MASK_R_NDPA_RATE_V1 0xff
-#define BIT_R_NDPA_RATE_V1(x)                                                  \
-	(((x) & BIT_MASK_R_NDPA_RATE_V1) << BIT_SHIFT_R_NDPA_RATE_V1)
-#define BIT_GET_R_NDPA_RATE_V1(x)                                              \
-	(((x) >> BIT_SHIFT_R_NDPA_RATE_V1) & BIT_MASK_R_NDPA_RATE_V1)
-
-/* 2 REG_TX_HANG_CTRL			(Offset 0x045E) */
-
-#define BIT_R_EN_GNT_BT_AWAKE BIT(3)
-
-/* 2 REG_TX_HANG_CTRL			(Offset 0x045E) */
-
-#define BIT_EN_EOF_V1 BIT(2)
-
-/* 2 REG_TX_HANG_CTRL			(Offset 0x045E) */
-
-#define BIT_DIS_OQT_BLOCK BIT(1)
-#define BIT_SEARCH_QUEUE_EN BIT(0)
-
-/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */
-
-#define BIT_R_DIS_MACID_RELEASE_RTY BIT(5)
-
-/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */
-
-#define BIT_SHIFT_BW_SIGTA 3
-#define BIT_MASK_BW_SIGTA 0x3
-#define BIT_BW_SIGTA(x) (((x) & BIT_MASK_BW_SIGTA) << BIT_SHIFT_BW_SIGTA)
-#define BIT_GET_BW_SIGTA(x) (((x) >> BIT_SHIFT_BW_SIGTA) & BIT_MASK_BW_SIGTA)
-
-/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */
-
-#define BIT_EN_BAR_SIGTA BIT(2)
-
-/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */
-
-#define BIT_SHIFT_R_NDPA_BW 0
-#define BIT_MASK_R_NDPA_BW 0x3
-#define BIT_R_NDPA_BW(x) (((x) & BIT_MASK_R_NDPA_BW) << BIT_SHIFT_R_NDPA_BW)
-#define BIT_GET_R_NDPA_BW(x) (((x) >> BIT_SHIFT_R_NDPA_BW) & BIT_MASK_R_NDPA_BW)
-
-/* 2 REG_RD_RESP_PKT_TH			(Offset 0x0463) */
-
-#define BIT_SHIFT_RD_RESP_PKT_TH_V1 0
-#define BIT_MASK_RD_RESP_PKT_TH_V1 0x3f
-#define BIT_RD_RESP_PKT_TH_V1(x)                                               \
-	(((x) & BIT_MASK_RD_RESP_PKT_TH_V1) << BIT_SHIFT_RD_RESP_PKT_TH_V1)
-#define BIT_GET_RD_RESP_PKT_TH_V1(x)                                           \
-	(((x) >> BIT_SHIFT_RD_RESP_PKT_TH_V1) & BIT_MASK_RD_RESP_PKT_TH_V1)
-
-/* 2 REG_CMDQ_INFO				(Offset 0x0464) */
-
-#define BIT_SHIFT_QUEUEMACID_CMDQ_V1 25
-#define BIT_MASK_QUEUEMACID_CMDQ_V1 0x7f
-#define BIT_QUEUEMACID_CMDQ_V1(x)                                              \
-	(((x) & BIT_MASK_QUEUEMACID_CMDQ_V1) << BIT_SHIFT_QUEUEMACID_CMDQ_V1)
-#define BIT_GET_QUEUEMACID_CMDQ_V1(x)                                          \
-	(((x) >> BIT_SHIFT_QUEUEMACID_CMDQ_V1) & BIT_MASK_QUEUEMACID_CMDQ_V1)
-
-/* 2 REG_CMDQ_INFO				(Offset 0x0464) */
-
-#define BIT_SHIFT_QUEUEAC_CMDQ_V1 23
-#define BIT_MASK_QUEUEAC_CMDQ_V1 0x3
-#define BIT_QUEUEAC_CMDQ_V1(x)                                                 \
-	(((x) & BIT_MASK_QUEUEAC_CMDQ_V1) << BIT_SHIFT_QUEUEAC_CMDQ_V1)
-#define BIT_GET_QUEUEAC_CMDQ_V1(x)                                             \
-	(((x) >> BIT_SHIFT_QUEUEAC_CMDQ_V1) & BIT_MASK_QUEUEAC_CMDQ_V1)
-
-/* 2 REG_CMDQ_INFO				(Offset 0x0464) */
-
-#define BIT_TIDEMPTY_CMDQ_V1 BIT(22)
-
-/* 2 REG_CMDQ_INFO				(Offset 0x0464) */
-
-#define BIT_SHIFT_TAIL_PKT_CMDQ_V2 11
-#define BIT_MASK_TAIL_PKT_CMDQ_V2 0x7ff
-#define BIT_TAIL_PKT_CMDQ_V2(x)                                                \
-	(((x) & BIT_MASK_TAIL_PKT_CMDQ_V2) << BIT_SHIFT_TAIL_PKT_CMDQ_V2)
-#define BIT_GET_TAIL_PKT_CMDQ_V2(x)                                            \
-	(((x) >> BIT_SHIFT_TAIL_PKT_CMDQ_V2) & BIT_MASK_TAIL_PKT_CMDQ_V2)
-
-/* 2 REG_CMDQ_INFO				(Offset 0x0464) */
-
-#define BIT_SHIFT_HEAD_PKT_CMDQ_V1 0
-#define BIT_MASK_HEAD_PKT_CMDQ_V1 0x7ff
-#define BIT_HEAD_PKT_CMDQ_V1(x)                                                \
-	(((x) & BIT_MASK_HEAD_PKT_CMDQ_V1) << BIT_SHIFT_HEAD_PKT_CMDQ_V1)
-#define BIT_GET_HEAD_PKT_CMDQ_V1(x)                                            \
-	(((x) >> BIT_SHIFT_HEAD_PKT_CMDQ_V1) & BIT_MASK_HEAD_PKT_CMDQ_V1)
-
-/* 2 REG_Q4_INFO				(Offset 0x0468) */
-
-#define BIT_SHIFT_QUEUEMACID_Q4_V1 25
-#define BIT_MASK_QUEUEMACID_Q4_V1 0x7f
-#define BIT_QUEUEMACID_Q4_V1(x)                                                \
-	(((x) & BIT_MASK_QUEUEMACID_Q4_V1) << BIT_SHIFT_QUEUEMACID_Q4_V1)
-#define BIT_GET_QUEUEMACID_Q4_V1(x)                                            \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q4_V1) & BIT_MASK_QUEUEMACID_Q4_V1)
-
-#define BIT_SHIFT_QUEUEAC_Q4_V1 23
-#define BIT_MASK_QUEUEAC_Q4_V1 0x3
-#define BIT_QUEUEAC_Q4_V1(x)                                                   \
-	(((x) & BIT_MASK_QUEUEAC_Q4_V1) << BIT_SHIFT_QUEUEAC_Q4_V1)
-#define BIT_GET_QUEUEAC_Q4_V1(x)                                               \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q4_V1) & BIT_MASK_QUEUEAC_Q4_V1)
-
-/* 2 REG_Q4_INFO				(Offset 0x0468) */
-
-#define BIT_TIDEMPTY_Q4_V1 BIT(22)
-
-/* 2 REG_Q4_INFO				(Offset 0x0468) */
-
-#define BIT_SHIFT_TAIL_PKT_Q4_V2 11
-#define BIT_MASK_TAIL_PKT_Q4_V2 0x7ff
-#define BIT_TAIL_PKT_Q4_V2(x)                                                  \
-	(((x) & BIT_MASK_TAIL_PKT_Q4_V2) << BIT_SHIFT_TAIL_PKT_Q4_V2)
-#define BIT_GET_TAIL_PKT_Q4_V2(x)                                              \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q4_V2) & BIT_MASK_TAIL_PKT_Q4_V2)
-
-/* 2 REG_Q4_INFO				(Offset 0x0468) */
-
-#define BIT_SHIFT_HEAD_PKT_Q4_V1 0
-#define BIT_MASK_HEAD_PKT_Q4_V1 0x7ff
-#define BIT_HEAD_PKT_Q4_V1(x)                                                  \
-	(((x) & BIT_MASK_HEAD_PKT_Q4_V1) << BIT_SHIFT_HEAD_PKT_Q4_V1)
-#define BIT_GET_HEAD_PKT_Q4_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q4_V1) & BIT_MASK_HEAD_PKT_Q4_V1)
-
-/* 2 REG_Q5_INFO				(Offset 0x046C) */
-
-#define BIT_SHIFT_QUEUEMACID_Q5_V1 25
-#define BIT_MASK_QUEUEMACID_Q5_V1 0x7f
-#define BIT_QUEUEMACID_Q5_V1(x)                                                \
-	(((x) & BIT_MASK_QUEUEMACID_Q5_V1) << BIT_SHIFT_QUEUEMACID_Q5_V1)
-#define BIT_GET_QUEUEMACID_Q5_V1(x)                                            \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q5_V1) & BIT_MASK_QUEUEMACID_Q5_V1)
-
-#define BIT_SHIFT_QUEUEAC_Q5_V1 23
-#define BIT_MASK_QUEUEAC_Q5_V1 0x3
-#define BIT_QUEUEAC_Q5_V1(x)                                                   \
-	(((x) & BIT_MASK_QUEUEAC_Q5_V1) << BIT_SHIFT_QUEUEAC_Q5_V1)
-#define BIT_GET_QUEUEAC_Q5_V1(x)                                               \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q5_V1) & BIT_MASK_QUEUEAC_Q5_V1)
-
-/* 2 REG_Q5_INFO				(Offset 0x046C) */
-
-#define BIT_TIDEMPTY_Q5_V1 BIT(22)
-
-/* 2 REG_Q5_INFO				(Offset 0x046C) */
-
-#define BIT_SHIFT_TAIL_PKT_Q5_V2 11
-#define BIT_MASK_TAIL_PKT_Q5_V2 0x7ff
-#define BIT_TAIL_PKT_Q5_V2(x)                                                  \
-	(((x) & BIT_MASK_TAIL_PKT_Q5_V2) << BIT_SHIFT_TAIL_PKT_Q5_V2)
-#define BIT_GET_TAIL_PKT_Q5_V2(x)                                              \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q5_V2) & BIT_MASK_TAIL_PKT_Q5_V2)
-
-/* 2 REG_Q5_INFO				(Offset 0x046C) */
-
-#define BIT_SHIFT_HEAD_PKT_Q5_V1 0
-#define BIT_MASK_HEAD_PKT_Q5_V1 0x7ff
-#define BIT_HEAD_PKT_Q5_V1(x)                                                  \
-	(((x) & BIT_MASK_HEAD_PKT_Q5_V1) << BIT_SHIFT_HEAD_PKT_Q5_V1)
-#define BIT_GET_HEAD_PKT_Q5_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q5_V1) & BIT_MASK_HEAD_PKT_Q5_V1)
-
-/* 2 REG_Q6_INFO				(Offset 0x0470) */
-
-#define BIT_SHIFT_QUEUEMACID_Q6_V1 25
-#define BIT_MASK_QUEUEMACID_Q6_V1 0x7f
-#define BIT_QUEUEMACID_Q6_V1(x)                                                \
-	(((x) & BIT_MASK_QUEUEMACID_Q6_V1) << BIT_SHIFT_QUEUEMACID_Q6_V1)
-#define BIT_GET_QUEUEMACID_Q6_V1(x)                                            \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q6_V1) & BIT_MASK_QUEUEMACID_Q6_V1)
-
-#define BIT_SHIFT_QUEUEAC_Q6_V1 23
-#define BIT_MASK_QUEUEAC_Q6_V1 0x3
-#define BIT_QUEUEAC_Q6_V1(x)                                                   \
-	(((x) & BIT_MASK_QUEUEAC_Q6_V1) << BIT_SHIFT_QUEUEAC_Q6_V1)
-#define BIT_GET_QUEUEAC_Q6_V1(x)                                               \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q6_V1) & BIT_MASK_QUEUEAC_Q6_V1)
-
-/* 2 REG_Q6_INFO				(Offset 0x0470) */
-
-#define BIT_TIDEMPTY_Q6_V1 BIT(22)
-
-/* 2 REG_Q6_INFO				(Offset 0x0470) */
-
-#define BIT_SHIFT_TAIL_PKT_Q6_V2 11
-#define BIT_MASK_TAIL_PKT_Q6_V2 0x7ff
-#define BIT_TAIL_PKT_Q6_V2(x)                                                  \
-	(((x) & BIT_MASK_TAIL_PKT_Q6_V2) << BIT_SHIFT_TAIL_PKT_Q6_V2)
-#define BIT_GET_TAIL_PKT_Q6_V2(x)                                              \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q6_V2) & BIT_MASK_TAIL_PKT_Q6_V2)
-
-/* 2 REG_Q6_INFO				(Offset 0x0470) */
-
-#define BIT_SHIFT_HEAD_PKT_Q6_V1 0
-#define BIT_MASK_HEAD_PKT_Q6_V1 0x7ff
-#define BIT_HEAD_PKT_Q6_V1(x)                                                  \
-	(((x) & BIT_MASK_HEAD_PKT_Q6_V1) << BIT_SHIFT_HEAD_PKT_Q6_V1)
-#define BIT_GET_HEAD_PKT_Q6_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q6_V1) & BIT_MASK_HEAD_PKT_Q6_V1)
-
-/* 2 REG_Q7_INFO				(Offset 0x0474) */
-
-#define BIT_SHIFT_QUEUEMACID_Q7_V1 25
-#define BIT_MASK_QUEUEMACID_Q7_V1 0x7f
-#define BIT_QUEUEMACID_Q7_V1(x)                                                \
-	(((x) & BIT_MASK_QUEUEMACID_Q7_V1) << BIT_SHIFT_QUEUEMACID_Q7_V1)
-#define BIT_GET_QUEUEMACID_Q7_V1(x)                                            \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q7_V1) & BIT_MASK_QUEUEMACID_Q7_V1)
-
-#define BIT_SHIFT_QUEUEAC_Q7_V1 23
-#define BIT_MASK_QUEUEAC_Q7_V1 0x3
-#define BIT_QUEUEAC_Q7_V1(x)                                                   \
-	(((x) & BIT_MASK_QUEUEAC_Q7_V1) << BIT_SHIFT_QUEUEAC_Q7_V1)
-#define BIT_GET_QUEUEAC_Q7_V1(x)                                               \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q7_V1) & BIT_MASK_QUEUEAC_Q7_V1)
-
-/* 2 REG_Q7_INFO				(Offset 0x0474) */
-
-#define BIT_TIDEMPTY_Q7_V1 BIT(22)
-
-/* 2 REG_Q7_INFO				(Offset 0x0474) */
-
-#define BIT_SHIFT_TAIL_PKT_Q7_V2 11
-#define BIT_MASK_TAIL_PKT_Q7_V2 0x7ff
-#define BIT_TAIL_PKT_Q7_V2(x)                                                  \
-	(((x) & BIT_MASK_TAIL_PKT_Q7_V2) << BIT_SHIFT_TAIL_PKT_Q7_V2)
-#define BIT_GET_TAIL_PKT_Q7_V2(x)                                              \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q7_V2) & BIT_MASK_TAIL_PKT_Q7_V2)
-
-/* 2 REG_Q7_INFO				(Offset 0x0474) */
-
-#define BIT_SHIFT_HEAD_PKT_Q7_V1 0
-#define BIT_MASK_HEAD_PKT_Q7_V1 0x7ff
-#define BIT_HEAD_PKT_Q7_V1(x)                                                  \
-	(((x) & BIT_MASK_HEAD_PKT_Q7_V1) << BIT_SHIFT_HEAD_PKT_Q7_V1)
-#define BIT_GET_HEAD_PKT_Q7_V1(x)                                              \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q7_V1) & BIT_MASK_HEAD_PKT_Q7_V1)
-
-/* 2 REG_WMAC_LBK_BUF_HD_V1			(Offset 0x0478) */
-
-#define BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1 0
-#define BIT_MASK_WMAC_LBK_BUF_HEAD_V1 0xfff
-#define BIT_WMAC_LBK_BUF_HEAD_V1(x)                                            \
-	(((x) & BIT_MASK_WMAC_LBK_BUF_HEAD_V1)                                 \
-	 << BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1)
-#define BIT_GET_WMAC_LBK_BUF_HEAD_V1(x)                                        \
-	(((x) >> BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1) &                             \
-	 BIT_MASK_WMAC_LBK_BUF_HEAD_V1)
-
-/* 2 REG_MGQ_BDNY_V1				(Offset 0x047A) */
-
-#define BIT_SHIFT_MGQ_PGBNDY_V1 0
-#define BIT_MASK_MGQ_PGBNDY_V1 0xfff
-#define BIT_MGQ_PGBNDY_V1(x)                                                   \
-	(((x) & BIT_MASK_MGQ_PGBNDY_V1) << BIT_SHIFT_MGQ_PGBNDY_V1)
-#define BIT_GET_MGQ_PGBNDY_V1(x)                                               \
-	(((x) >> BIT_SHIFT_MGQ_PGBNDY_V1) & BIT_MASK_MGQ_PGBNDY_V1)
-
-/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */
-
-#define BIT_SHIFT_TRXRPT_TIMER_TH 24
-#define BIT_MASK_TRXRPT_TIMER_TH 0xff
-#define BIT_TRXRPT_TIMER_TH(x)                                                 \
-	(((x) & BIT_MASK_TRXRPT_TIMER_TH) << BIT_SHIFT_TRXRPT_TIMER_TH)
-#define BIT_GET_TRXRPT_TIMER_TH(x)                                             \
-	(((x) >> BIT_SHIFT_TRXRPT_TIMER_TH) & BIT_MASK_TRXRPT_TIMER_TH)
-
-/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */
-
-#define BIT_SHIFT_TRXRPT_LEN_TH 16
-#define BIT_MASK_TRXRPT_LEN_TH 0xff
-#define BIT_TRXRPT_LEN_TH(x)                                                   \
-	(((x) & BIT_MASK_TRXRPT_LEN_TH) << BIT_SHIFT_TRXRPT_LEN_TH)
-#define BIT_GET_TRXRPT_LEN_TH(x)                                               \
-	(((x) >> BIT_SHIFT_TRXRPT_LEN_TH) & BIT_MASK_TRXRPT_LEN_TH)
-
-/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */
-
-#define BIT_SHIFT_TRXRPT_READ_PTR 8
-#define BIT_MASK_TRXRPT_READ_PTR 0xff
-#define BIT_TRXRPT_READ_PTR(x)                                                 \
-	(((x) & BIT_MASK_TRXRPT_READ_PTR) << BIT_SHIFT_TRXRPT_READ_PTR)
-#define BIT_GET_TRXRPT_READ_PTR(x)                                             \
-	(((x) >> BIT_SHIFT_TRXRPT_READ_PTR) & BIT_MASK_TRXRPT_READ_PTR)
-
-/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */
-
-#define BIT_SHIFT_TRXRPT_WRITE_PTR 0
-#define BIT_MASK_TRXRPT_WRITE_PTR 0xff
-#define BIT_TRXRPT_WRITE_PTR(x)                                                \
-	(((x) & BIT_MASK_TRXRPT_WRITE_PTR) << BIT_SHIFT_TRXRPT_WRITE_PTR)
-#define BIT_GET_TRXRPT_WRITE_PTR(x)                                            \
-	(((x) >> BIT_SHIFT_TRXRPT_WRITE_PTR) & BIT_MASK_TRXRPT_WRITE_PTR)
-
-/* 2 REG_INIRTS_RATE_SEL			(Offset 0x0480) */
-
-#define BIT_LEAG_RTS_BW_DUP BIT(5)
-
-/* 2 REG_BASIC_CFEND_RATE			(Offset 0x0481) */
-
-#define BIT_SHIFT_BASIC_CFEND_RATE 0
-#define BIT_MASK_BASIC_CFEND_RATE 0x1f
-#define BIT_BASIC_CFEND_RATE(x)                                                \
-	(((x) & BIT_MASK_BASIC_CFEND_RATE) << BIT_SHIFT_BASIC_CFEND_RATE)
-#define BIT_GET_BASIC_CFEND_RATE(x)                                            \
-	(((x) >> BIT_SHIFT_BASIC_CFEND_RATE) & BIT_MASK_BASIC_CFEND_RATE)
-
-/* 2 REG_STBC_CFEND_RATE			(Offset 0x0482) */
-
-#define BIT_SHIFT_STBC_CFEND_RATE 0
-#define BIT_MASK_STBC_CFEND_RATE 0x1f
-#define BIT_STBC_CFEND_RATE(x)                                                 \
-	(((x) & BIT_MASK_STBC_CFEND_RATE) << BIT_SHIFT_STBC_CFEND_RATE)
-#define BIT_GET_STBC_CFEND_RATE(x)                                             \
-	(((x) >> BIT_SHIFT_STBC_CFEND_RATE) & BIT_MASK_STBC_CFEND_RATE)
-
-/* 2 REG_DATA_SC				(Offset 0x0483) */
-
-#define BIT_SHIFT_TXSC_40M 4
-#define BIT_MASK_TXSC_40M 0xf
-#define BIT_TXSC_40M(x) (((x) & BIT_MASK_TXSC_40M) << BIT_SHIFT_TXSC_40M)
-#define BIT_GET_TXSC_40M(x) (((x) >> BIT_SHIFT_TXSC_40M) & BIT_MASK_TXSC_40M)
-
-#define BIT_SHIFT_TXSC_20M 0
-#define BIT_MASK_TXSC_20M 0xf
-#define BIT_TXSC_20M(x) (((x) & BIT_MASK_TXSC_20M) << BIT_SHIFT_TXSC_20M)
-#define BIT_GET_TXSC_20M(x) (((x) >> BIT_SHIFT_TXSC_20M) & BIT_MASK_TXSC_20M)
-
-/* 2 REG_MACID_SLEEP3			(Offset 0x0484) */
-
-#define BIT_SHIFT_MACID127_96_PKTSLEEP 0
-#define BIT_MASK_MACID127_96_PKTSLEEP 0xffffffffL
-#define BIT_MACID127_96_PKTSLEEP(x)                                            \
-	(((x) & BIT_MASK_MACID127_96_PKTSLEEP)                                 \
-	 << BIT_SHIFT_MACID127_96_PKTSLEEP)
-#define BIT_GET_MACID127_96_PKTSLEEP(x)                                        \
-	(((x) >> BIT_SHIFT_MACID127_96_PKTSLEEP) &                             \
-	 BIT_MASK_MACID127_96_PKTSLEEP)
-
-/* 2 REG_MACID_SLEEP1			(Offset 0x0488) */
-
-#define BIT_SHIFT_MACID63_32_PKTSLEEP 0
-#define BIT_MASK_MACID63_32_PKTSLEEP 0xffffffffL
-#define BIT_MACID63_32_PKTSLEEP(x)                                             \
-	(((x) & BIT_MASK_MACID63_32_PKTSLEEP) << BIT_SHIFT_MACID63_32_PKTSLEEP)
-#define BIT_GET_MACID63_32_PKTSLEEP(x)                                         \
-	(((x) >> BIT_SHIFT_MACID63_32_PKTSLEEP) & BIT_MASK_MACID63_32_PKTSLEEP)
-
-/* 2 REG_ARFR2_V1				(Offset 0x048C) */
-
-#define BIT_SHIFT_ARFR2_V1 0
-#define BIT_MASK_ARFR2_V1 0xffffffffffffffffL
-#define BIT_ARFR2_V1(x) (((x) & BIT_MASK_ARFR2_V1) << BIT_SHIFT_ARFR2_V1)
-#define BIT_GET_ARFR2_V1(x) (((x) >> BIT_SHIFT_ARFR2_V1) & BIT_MASK_ARFR2_V1)
-
-/* 2 REG_ARFR3_V1				(Offset 0x0494) */
-
-#define BIT_SHIFT_ARFR3_V1 0
-#define BIT_MASK_ARFR3_V1 0xffffffffffffffffL
-#define BIT_ARFR3_V1(x) (((x) & BIT_MASK_ARFR3_V1) << BIT_SHIFT_ARFR3_V1)
-#define BIT_GET_ARFR3_V1(x) (((x) >> BIT_SHIFT_ARFR3_V1) & BIT_MASK_ARFR3_V1)
-
-/* 2 REG_ARFR4				(Offset 0x049C) */
-
-#define BIT_SHIFT_ARFR4 0
-#define BIT_MASK_ARFR4 0xffffffffffffffffL
-#define BIT_ARFR4(x) (((x) & BIT_MASK_ARFR4) << BIT_SHIFT_ARFR4)
-#define BIT_GET_ARFR4(x) (((x) >> BIT_SHIFT_ARFR4) & BIT_MASK_ARFR4)
-
-/* 2 REG_ARFR5				(Offset 0x04A4) */
-
-#define BIT_SHIFT_ARFR5 0
-#define BIT_MASK_ARFR5 0xffffffffffffffffL
-#define BIT_ARFR5(x) (((x) & BIT_MASK_ARFR5) << BIT_SHIFT_ARFR5)
-#define BIT_GET_ARFR5(x) (((x) >> BIT_SHIFT_ARFR5) & BIT_MASK_ARFR5)
-
-/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */
-
-#define BIT_SHIFT_MACID_MURATE_OFFSET 24
-#define BIT_MASK_MACID_MURATE_OFFSET 0xff
-#define BIT_MACID_MURATE_OFFSET(x)                                             \
-	(((x) & BIT_MASK_MACID_MURATE_OFFSET) << BIT_SHIFT_MACID_MURATE_OFFSET)
-#define BIT_GET_MACID_MURATE_OFFSET(x)                                         \
-	(((x) >> BIT_SHIFT_MACID_MURATE_OFFSET) & BIT_MASK_MACID_MURATE_OFFSET)
-
-/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */
-
-#define BIT_RPTFIFO_SIZE_OPT BIT(16)
-
-/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */
-
-#define BIT_SHIFT_MACID_CTRL_OFFSET 8
-#define BIT_MASK_MACID_CTRL_OFFSET 0xff
-#define BIT_MACID_CTRL_OFFSET(x)                                               \
-	(((x) & BIT_MASK_MACID_CTRL_OFFSET) << BIT_SHIFT_MACID_CTRL_OFFSET)
-#define BIT_GET_MACID_CTRL_OFFSET(x)                                           \
-	(((x) >> BIT_SHIFT_MACID_CTRL_OFFSET) & BIT_MASK_MACID_CTRL_OFFSET)
-
-/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */
-
-#define BIT_SHIFT_AMPDU_TXRPT_OFFSET 0
-#define BIT_MASK_AMPDU_TXRPT_OFFSET 0xff
-#define BIT_AMPDU_TXRPT_OFFSET(x)                                              \
-	(((x) & BIT_MASK_AMPDU_TXRPT_OFFSET) << BIT_SHIFT_AMPDU_TXRPT_OFFSET)
-#define BIT_GET_AMPDU_TXRPT_OFFSET(x)                                          \
-	(((x) >> BIT_SHIFT_AMPDU_TXRPT_OFFSET) & BIT_MASK_AMPDU_TXRPT_OFFSET)
-
-/* 2 REG_POWER_STAGE1			(Offset 0x04B4) */
-
-#define BIT_PTA_WL_PRI_MASK_CPU_MGQ BIT(31)
-#define BIT_PTA_WL_PRI_MASK_BCNQ BIT(30)
-#define BIT_PTA_WL_PRI_MASK_HIQ BIT(29)
-#define BIT_PTA_WL_PRI_MASK_MGQ BIT(28)
-#define BIT_PTA_WL_PRI_MASK_BK BIT(27)
-#define BIT_PTA_WL_PRI_MASK_BE BIT(26)
-#define BIT_PTA_WL_PRI_MASK_VI BIT(25)
-#define BIT_PTA_WL_PRI_MASK_VO BIT(24)
-
-/* 2 REG_POWER_STAGE1			(Offset 0x04B4) */
-
-#define BIT_SHIFT_POWER_STAGE1 0
-#define BIT_MASK_POWER_STAGE1 0xffffff
-#define BIT_POWER_STAGE1(x)                                                    \
-	(((x) & BIT_MASK_POWER_STAGE1) << BIT_SHIFT_POWER_STAGE1)
-#define BIT_GET_POWER_STAGE1(x)                                                \
-	(((x) >> BIT_SHIFT_POWER_STAGE1) & BIT_MASK_POWER_STAGE1)
-
-/* 2 REG_POWER_STAGE2			(Offset 0x04B8) */
-
-#define BIT__R_CTRL_PKT_POW_ADJ BIT(24)
-
-/* 2 REG_POWER_STAGE2			(Offset 0x04B8) */
-
-#define BIT_SHIFT_POWER_STAGE2 0
-#define BIT_MASK_POWER_STAGE2 0xffffff
-#define BIT_POWER_STAGE2(x)                                                    \
-	(((x) & BIT_MASK_POWER_STAGE2) << BIT_SHIFT_POWER_STAGE2)
-#define BIT_GET_POWER_STAGE2(x)                                                \
-	(((x) >> BIT_SHIFT_POWER_STAGE2) & BIT_MASK_POWER_STAGE2)
-
-/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */
-
-#define BIT_SHIFT_PAD_NUM_THRES 24
-#define BIT_MASK_PAD_NUM_THRES 0x3f
-#define BIT_PAD_NUM_THRES(x)                                                   \
-	(((x) & BIT_MASK_PAD_NUM_THRES) << BIT_SHIFT_PAD_NUM_THRES)
-#define BIT_GET_PAD_NUM_THRES(x)                                               \
-	(((x) >> BIT_SHIFT_PAD_NUM_THRES) & BIT_MASK_PAD_NUM_THRES)
-
-/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */
-
-#define BIT_R_DMA_THIS_QUEUE_BK BIT(23)
-#define BIT_R_DMA_THIS_QUEUE_BE BIT(22)
-#define BIT_R_DMA_THIS_QUEUE_VI BIT(21)
-#define BIT_R_DMA_THIS_QUEUE_VO BIT(20)
-
-#define BIT_SHIFT_R_TOTAL_LEN_TH 8
-#define BIT_MASK_R_TOTAL_LEN_TH 0xfff
-#define BIT_R_TOTAL_LEN_TH(x)                                                  \
-	(((x) & BIT_MASK_R_TOTAL_LEN_TH) << BIT_SHIFT_R_TOTAL_LEN_TH)
-#define BIT_GET_R_TOTAL_LEN_TH(x)                                              \
-	(((x) >> BIT_SHIFT_R_TOTAL_LEN_TH) & BIT_MASK_R_TOTAL_LEN_TH)
-
-/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */
-
-#define BIT_EN_NEW_EARLY BIT(7)
-
-/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */
-
-#define BIT_PRE_TX_CMD BIT(6)
-
-#define BIT_SHIFT_NUM_SCL_EN 4
-#define BIT_MASK_NUM_SCL_EN 0x3
-#define BIT_NUM_SCL_EN(x) (((x) & BIT_MASK_NUM_SCL_EN) << BIT_SHIFT_NUM_SCL_EN)
-#define BIT_GET_NUM_SCL_EN(x)                                                  \
-	(((x) >> BIT_SHIFT_NUM_SCL_EN) & BIT_MASK_NUM_SCL_EN)
-
-#define BIT_BK_EN BIT(3)
-#define BIT_BE_EN BIT(2)
-#define BIT_VI_EN BIT(1)
-#define BIT_VO_EN BIT(0)
-
-/* 2 REG_PKT_LIFE_TIME			(Offset 0x04C0) */
-
-#define BIT_SHIFT_PKT_LIFTIME_BEBK 16
-#define BIT_MASK_PKT_LIFTIME_BEBK 0xffff
-#define BIT_PKT_LIFTIME_BEBK(x)                                                \
-	(((x) & BIT_MASK_PKT_LIFTIME_BEBK) << BIT_SHIFT_PKT_LIFTIME_BEBK)
-#define BIT_GET_PKT_LIFTIME_BEBK(x)                                            \
-	(((x) >> BIT_SHIFT_PKT_LIFTIME_BEBK) & BIT_MASK_PKT_LIFTIME_BEBK)
-
-#define BIT_SHIFT_PKT_LIFTIME_VOVI 0
-#define BIT_MASK_PKT_LIFTIME_VOVI 0xffff
-#define BIT_PKT_LIFTIME_VOVI(x)                                                \
-	(((x) & BIT_MASK_PKT_LIFTIME_VOVI) << BIT_SHIFT_PKT_LIFTIME_VOVI)
-#define BIT_GET_PKT_LIFTIME_VOVI(x)                                            \
-	(((x) >> BIT_SHIFT_PKT_LIFTIME_VOVI) & BIT_MASK_PKT_LIFTIME_VOVI)
-
-/* 2 REG_STBC_SETTING			(Offset 0x04C4) */
-
-#define BIT_SHIFT_CDEND_TXTIME_L 4
-#define BIT_MASK_CDEND_TXTIME_L 0xf
-#define BIT_CDEND_TXTIME_L(x)                                                  \
-	(((x) & BIT_MASK_CDEND_TXTIME_L) << BIT_SHIFT_CDEND_TXTIME_L)
-#define BIT_GET_CDEND_TXTIME_L(x)                                              \
-	(((x) >> BIT_SHIFT_CDEND_TXTIME_L) & BIT_MASK_CDEND_TXTIME_L)
-
-#define BIT_SHIFT_NESS 2
-#define BIT_MASK_NESS 0x3
-#define BIT_NESS(x) (((x) & BIT_MASK_NESS) << BIT_SHIFT_NESS)
-#define BIT_GET_NESS(x) (((x) >> BIT_SHIFT_NESS) & BIT_MASK_NESS)
-
-#define BIT_SHIFT_STBC_CFEND 0
-#define BIT_MASK_STBC_CFEND 0x3
-#define BIT_STBC_CFEND(x) (((x) & BIT_MASK_STBC_CFEND) << BIT_SHIFT_STBC_CFEND)
-#define BIT_GET_STBC_CFEND(x)                                                  \
-	(((x) >> BIT_SHIFT_STBC_CFEND) & BIT_MASK_STBC_CFEND)
-
-/* 2 REG_STBC_SETTING2			(Offset 0x04C5) */
-
-#define BIT_SHIFT_CDEND_TXTIME_H 0
-#define BIT_MASK_CDEND_TXTIME_H 0x1f
-#define BIT_CDEND_TXTIME_H(x)                                                  \
-	(((x) & BIT_MASK_CDEND_TXTIME_H) << BIT_SHIFT_CDEND_TXTIME_H)
-#define BIT_GET_CDEND_TXTIME_H(x)                                              \
-	(((x) >> BIT_SHIFT_CDEND_TXTIME_H) & BIT_MASK_CDEND_TXTIME_H)
-
-/* 2 REG_QUEUE_CTRL				(Offset 0x04C6) */
-
-#define BIT_PTA_EDCCA_EN BIT(5)
-#define BIT_PTA_WL_TX_EN BIT(4)
-
-/* 2 REG_QUEUE_CTRL				(Offset 0x04C6) */
-
-#define BIT_R_USE_DATA_BW BIT(3)
-#define BIT_TRI_PKT_INT_MODE1 BIT(2)
-#define BIT_TRI_PKT_INT_MODE0 BIT(1)
-#define BIT_ACQ_MODE_SEL BIT(0)
-
-/* 2 REG_SINGLE_AMPDU_CTRL			(Offset 0x04C7) */
-
-#define BIT_EN_SINGLE_APMDU BIT(7)
-
-/* 2 REG_PROT_MODE_CTRL			(Offset 0x04C8) */
-
-#define BIT_SHIFT_RTS_MAX_AGG_NUM 24
-#define BIT_MASK_RTS_MAX_AGG_NUM 0x3f
-#define BIT_RTS_MAX_AGG_NUM(x)                                                 \
-	(((x) & BIT_MASK_RTS_MAX_AGG_NUM) << BIT_SHIFT_RTS_MAX_AGG_NUM)
-#define BIT_GET_RTS_MAX_AGG_NUM(x)                                             \
-	(((x) >> BIT_SHIFT_RTS_MAX_AGG_NUM) & BIT_MASK_RTS_MAX_AGG_NUM)
-
-#define BIT_SHIFT_MAX_AGG_NUM 16
-#define BIT_MASK_MAX_AGG_NUM 0x3f
-#define BIT_MAX_AGG_NUM(x)                                                     \
-	(((x) & BIT_MASK_MAX_AGG_NUM) << BIT_SHIFT_MAX_AGG_NUM)
-#define BIT_GET_MAX_AGG_NUM(x)                                                 \
-	(((x) >> BIT_SHIFT_MAX_AGG_NUM) & BIT_MASK_MAX_AGG_NUM)
-
-#define BIT_SHIFT_RTS_TXTIME_TH 8
-#define BIT_MASK_RTS_TXTIME_TH 0xff
-#define BIT_RTS_TXTIME_TH(x)                                                   \
-	(((x) & BIT_MASK_RTS_TXTIME_TH) << BIT_SHIFT_RTS_TXTIME_TH)
-#define BIT_GET_RTS_TXTIME_TH(x)                                               \
-	(((x) >> BIT_SHIFT_RTS_TXTIME_TH) & BIT_MASK_RTS_TXTIME_TH)
-
-#define BIT_SHIFT_RTS_LEN_TH 0
-#define BIT_MASK_RTS_LEN_TH 0xff
-#define BIT_RTS_LEN_TH(x) (((x) & BIT_MASK_RTS_LEN_TH) << BIT_SHIFT_RTS_LEN_TH)
-#define BIT_GET_RTS_LEN_TH(x)                                                  \
-	(((x) >> BIT_SHIFT_RTS_LEN_TH) & BIT_MASK_RTS_LEN_TH)
-
-/* 2 REG_BAR_MODE_CTRL			(Offset 0x04CC) */
-
-#define BIT_SHIFT_BAR_RTY_LMT 16
-#define BIT_MASK_BAR_RTY_LMT 0x3
-#define BIT_BAR_RTY_LMT(x)                                                     \
-	(((x) & BIT_MASK_BAR_RTY_LMT) << BIT_SHIFT_BAR_RTY_LMT)
-#define BIT_GET_BAR_RTY_LMT(x)                                                 \
-	(((x) >> BIT_SHIFT_BAR_RTY_LMT) & BIT_MASK_BAR_RTY_LMT)
-
-#define BIT_SHIFT_BAR_PKT_TXTIME_TH 8
-#define BIT_MASK_BAR_PKT_TXTIME_TH 0xff
-#define BIT_BAR_PKT_TXTIME_TH(x)                                               \
-	(((x) & BIT_MASK_BAR_PKT_TXTIME_TH) << BIT_SHIFT_BAR_PKT_TXTIME_TH)
-#define BIT_GET_BAR_PKT_TXTIME_TH(x)                                           \
-	(((x) >> BIT_SHIFT_BAR_PKT_TXTIME_TH) & BIT_MASK_BAR_PKT_TXTIME_TH)
-
-#define BIT_BAR_EN_V1 BIT(6)
-
-#define BIT_SHIFT_BAR_PKTNUM_TH_V1 0
-#define BIT_MASK_BAR_PKTNUM_TH_V1 0x3f
-#define BIT_BAR_PKTNUM_TH_V1(x)                                                \
-	(((x) & BIT_MASK_BAR_PKTNUM_TH_V1) << BIT_SHIFT_BAR_PKTNUM_TH_V1)
-#define BIT_GET_BAR_PKTNUM_TH_V1(x)                                            \
-	(((x) >> BIT_SHIFT_BAR_PKTNUM_TH_V1) & BIT_MASK_BAR_PKTNUM_TH_V1)
-
-/* 2 REG_RA_TRY_RATE_AGG_LMT			(Offset 0x04CF) */
-
-#define BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1 0
-#define BIT_MASK_RA_TRY_RATE_AGG_LMT_V1 0x3f
-#define BIT_RA_TRY_RATE_AGG_LMT_V1(x)                                          \
-	(((x) & BIT_MASK_RA_TRY_RATE_AGG_LMT_V1)                               \
-	 << BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1)
-#define BIT_GET_RA_TRY_RATE_AGG_LMT_V1(x)                                      \
-	(((x) >> BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1) &                           \
-	 BIT_MASK_RA_TRY_RATE_AGG_LMT_V1)
-
-/* 2 REG_MACID_SLEEP2			(Offset 0x04D0) */
-
-#define BIT_SHIFT_MACID95_64PKTSLEEP 0
-#define BIT_MASK_MACID95_64PKTSLEEP 0xffffffffL
-#define BIT_MACID95_64PKTSLEEP(x)                                              \
-	(((x) & BIT_MASK_MACID95_64PKTSLEEP) << BIT_SHIFT_MACID95_64PKTSLEEP)
-#define BIT_GET_MACID95_64PKTSLEEP(x)                                          \
-	(((x) >> BIT_SHIFT_MACID95_64PKTSLEEP) & BIT_MASK_MACID95_64PKTSLEEP)
-
-/* 2 REG_MACID_SLEEP				(Offset 0x04D4) */
-
-#define BIT_SHIFT_MACID31_0_PKTSLEEP 0
-#define BIT_MASK_MACID31_0_PKTSLEEP 0xffffffffL
-#define BIT_MACID31_0_PKTSLEEP(x)                                              \
-	(((x) & BIT_MASK_MACID31_0_PKTSLEEP) << BIT_SHIFT_MACID31_0_PKTSLEEP)
-#define BIT_GET_MACID31_0_PKTSLEEP(x)                                          \
-	(((x) >> BIT_SHIFT_MACID31_0_PKTSLEEP) & BIT_MASK_MACID31_0_PKTSLEEP)
-
-/* 2 REG_HW_SEQ0				(Offset 0x04D8) */
-
-#define BIT_SHIFT_HW_SSN_SEQ0 0
-#define BIT_MASK_HW_SSN_SEQ0 0xfff
-#define BIT_HW_SSN_SEQ0(x)                                                     \
-	(((x) & BIT_MASK_HW_SSN_SEQ0) << BIT_SHIFT_HW_SSN_SEQ0)
-#define BIT_GET_HW_SSN_SEQ0(x)                                                 \
-	(((x) >> BIT_SHIFT_HW_SSN_SEQ0) & BIT_MASK_HW_SSN_SEQ0)
-
-/* 2 REG_HW_SEQ1				(Offset 0x04DA) */
-
-#define BIT_SHIFT_HW_SSN_SEQ1 0
-#define BIT_MASK_HW_SSN_SEQ1 0xfff
-#define BIT_HW_SSN_SEQ1(x)                                                     \
-	(((x) & BIT_MASK_HW_SSN_SEQ1) << BIT_SHIFT_HW_SSN_SEQ1)
-#define BIT_GET_HW_SSN_SEQ1(x)                                                 \
-	(((x) >> BIT_SHIFT_HW_SSN_SEQ1) & BIT_MASK_HW_SSN_SEQ1)
-
-/* 2 REG_HW_SEQ2				(Offset 0x04DC) */
-
-#define BIT_SHIFT_HW_SSN_SEQ2 0
-#define BIT_MASK_HW_SSN_SEQ2 0xfff
-#define BIT_HW_SSN_SEQ2(x)                                                     \
-	(((x) & BIT_MASK_HW_SSN_SEQ2) << BIT_SHIFT_HW_SSN_SEQ2)
-#define BIT_GET_HW_SSN_SEQ2(x)                                                 \
-	(((x) >> BIT_SHIFT_HW_SSN_SEQ2) & BIT_MASK_HW_SSN_SEQ2)
-
-/* 2 REG_HW_SEQ3				(Offset 0x04DE) */
-
-#define BIT_SHIFT_HW_SSN_SEQ3 0
-#define BIT_MASK_HW_SSN_SEQ3 0xfff
-#define BIT_HW_SSN_SEQ3(x)                                                     \
-	(((x) & BIT_MASK_HW_SSN_SEQ3) << BIT_SHIFT_HW_SSN_SEQ3)
-#define BIT_GET_HW_SSN_SEQ3(x)                                                 \
-	(((x) >> BIT_SHIFT_HW_SSN_SEQ3) & BIT_MASK_HW_SSN_SEQ3)
-
-/* 2 REG_NULL_PKT_STATUS_V1			(Offset 0x04E0) */
-
-#define BIT_SHIFT_PTCL_TOTAL_PG_V2 2
-#define BIT_MASK_PTCL_TOTAL_PG_V2 0x3fff
-#define BIT_PTCL_TOTAL_PG_V2(x)                                                \
-	(((x) & BIT_MASK_PTCL_TOTAL_PG_V2) << BIT_SHIFT_PTCL_TOTAL_PG_V2)
-#define BIT_GET_PTCL_TOTAL_PG_V2(x)                                            \
-	(((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V2) & BIT_MASK_PTCL_TOTAL_PG_V2)
-
-/* 2 REG_NULL_PKT_STATUS			(Offset 0x04E0) */
-
-#define BIT_TX_NULL_1 BIT(1)
-#define BIT_TX_NULL_0 BIT(0)
-
-/* 2 REG_PTCL_ERR_STATUS			(Offset 0x04E2) */
-
-#define BIT_PTCL_RATE_TABLE_INVALID BIT(7)
-#define BIT_FTM_T2R_ERROR BIT(6)
-
-/* 2 REG_PTCL_ERR_STATUS			(Offset 0x04E2) */
-
-#define BIT_PTCL_ERR0 BIT(5)
-#define BIT_PTCL_ERR1 BIT(4)
-#define BIT_PTCL_ERR2 BIT(3)
-#define BIT_PTCL_ERR3 BIT(2)
-#define BIT_PTCL_ERR4 BIT(1)
-#define BIT_PTCL_ERR5 BIT(0)
-
-/* 2 REG_NULL_PKT_STATUS_EXTEND		(Offset 0x04E3) */
-
-#define BIT_CLI3_TX_NULL_1 BIT(7)
-#define BIT_CLI3_TX_NULL_0 BIT(6)
-#define BIT_CLI2_TX_NULL_1 BIT(5)
-#define BIT_CLI2_TX_NULL_0 BIT(4)
-#define BIT_CLI1_TX_NULL_1 BIT(3)
-#define BIT_CLI1_TX_NULL_0 BIT(2)
-#define BIT_CLI0_TX_NULL_1 BIT(1)
-
-/* 2 REG_NULL_PKT_STATUS_EXTEND		(Offset 0x04E3) */
-
-#define BIT_CLI0_TX_NULL_0 BIT(0)
-
-/* 2 REG_VIDEO_ENHANCEMENT_FUN		(Offset 0x04E4) */
-
-#define BIT_VIDEO_JUST_DROP BIT(1)
-#define BIT_VIDEO_ENHANCEMENT_FUN_EN BIT(0)
-
-/* 2 REG_BT_POLLUTE_PKT_CNT			(Offset 0x04E8) */
-
-#define BIT_SHIFT_BT_POLLUTE_PKT_CNT 0
-#define BIT_MASK_BT_POLLUTE_PKT_CNT 0xffff
-#define BIT_BT_POLLUTE_PKT_CNT(x)                                              \
-	(((x) & BIT_MASK_BT_POLLUTE_PKT_CNT) << BIT_SHIFT_BT_POLLUTE_PKT_CNT)
-#define BIT_GET_BT_POLLUTE_PKT_CNT(x)                                          \
-	(((x) >> BIT_SHIFT_BT_POLLUTE_PKT_CNT) & BIT_MASK_BT_POLLUTE_PKT_CNT)
-
-/* 2 REG_PTCL_DBG				(Offset 0x04EC) */
-
-#define BIT_SHIFT_PTCL_DBG 0
-#define BIT_MASK_PTCL_DBG 0xffffffffL
-#define BIT_PTCL_DBG(x) (((x) & BIT_MASK_PTCL_DBG) << BIT_SHIFT_PTCL_DBG)
-#define BIT_GET_PTCL_DBG(x) (((x) >> BIT_SHIFT_PTCL_DBG) & BIT_MASK_PTCL_DBG)
-
-/* 2 REG_CPUMGQ_TIMER_CTRL2			(Offset 0x04F4) */
-
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME BIT(31)
-
-#define BIT_SHIFT_GTAB_ID 28
-#define BIT_MASK_GTAB_ID 0x7
-#define BIT_GTAB_ID(x) (((x) & BIT_MASK_GTAB_ID) << BIT_SHIFT_GTAB_ID)
-#define BIT_GET_GTAB_ID(x) (((x) >> BIT_SHIFT_GTAB_ID) & BIT_MASK_GTAB_ID)
-
-#define BIT_SHIFT_TRI_HEAD_ADDR 16
-#define BIT_MASK_TRI_HEAD_ADDR 0xfff
-#define BIT_TRI_HEAD_ADDR(x)                                                   \
-	(((x) & BIT_MASK_TRI_HEAD_ADDR) << BIT_SHIFT_TRI_HEAD_ADDR)
-#define BIT_GET_TRI_HEAD_ADDR(x)                                               \
-	(((x) >> BIT_SHIFT_TRI_HEAD_ADDR) & BIT_MASK_TRI_HEAD_ADDR)
-
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1 BIT(15)
-
-#define BIT_SHIFT_GTAB_ID_V1 12
-#define BIT_MASK_GTAB_ID_V1 0x7
-#define BIT_GTAB_ID_V1(x) (((x) & BIT_MASK_GTAB_ID_V1) << BIT_SHIFT_GTAB_ID_V1)
-#define BIT_GET_GTAB_ID_V1(x)                                                  \
-	(((x) >> BIT_SHIFT_GTAB_ID_V1) & BIT_MASK_GTAB_ID_V1)
-
-#define BIT_DROP_TH_EN BIT(8)
-
-#define BIT_SHIFT_DROP_TH 0
-#define BIT_MASK_DROP_TH 0xff
-#define BIT_DROP_TH(x) (((x) & BIT_MASK_DROP_TH) << BIT_SHIFT_DROP_TH)
-#define BIT_GET_DROP_TH(x) (((x) >> BIT_SHIFT_DROP_TH) & BIT_MASK_DROP_TH)
-
-/* 2 REG_DUMMY_PAGE4_V1			(Offset 0x04FC) */
-
-#define BIT_BCN_EN_EXTHWSEQ BIT(1)
-#define BIT_BCN_EN_HWSEQ BIT(0)
-
-/* 2 REG_MOREDATA				(Offset 0x04FE) */
-
-#define BIT_MOREDATA_CTRL2_EN_V1 BIT(3)
-#define BIT_MOREDATA_CTRL1_EN_V1 BIT(2)
-#define BIT_PKTIN_MOREDATA_REPLACE_ENABLE_V1 BIT(0)
-
-/* 2 REG_EDCA_VO_PARAM			(Offset 0x0500) */
-
-#define BIT_SHIFT_TXOPLIMIT 16
-#define BIT_MASK_TXOPLIMIT 0x7ff
-#define BIT_TXOPLIMIT(x) (((x) & BIT_MASK_TXOPLIMIT) << BIT_SHIFT_TXOPLIMIT)
-#define BIT_GET_TXOPLIMIT(x) (((x) >> BIT_SHIFT_TXOPLIMIT) & BIT_MASK_TXOPLIMIT)
-
-#define BIT_SHIFT_CW 8
-#define BIT_MASK_CW 0xff
-#define BIT_CW(x) (((x) & BIT_MASK_CW) << BIT_SHIFT_CW)
-#define BIT_GET_CW(x) (((x) >> BIT_SHIFT_CW) & BIT_MASK_CW)
-
-#define BIT_SHIFT_AIFS 0
-#define BIT_MASK_AIFS 0xff
-#define BIT_AIFS(x) (((x) & BIT_MASK_AIFS) << BIT_SHIFT_AIFS)
-#define BIT_GET_AIFS(x) (((x) >> BIT_SHIFT_AIFS) & BIT_MASK_AIFS)
-
-/* 2 REG_BCNTCFG				(Offset 0x0510) */
-
-#define BIT_SHIFT_BCNCW_MAX 12
-#define BIT_MASK_BCNCW_MAX 0xf
-#define BIT_BCNCW_MAX(x) (((x) & BIT_MASK_BCNCW_MAX) << BIT_SHIFT_BCNCW_MAX)
-#define BIT_GET_BCNCW_MAX(x) (((x) >> BIT_SHIFT_BCNCW_MAX) & BIT_MASK_BCNCW_MAX)
-
-#define BIT_SHIFT_BCNCW_MIN 8
-#define BIT_MASK_BCNCW_MIN 0xf
-#define BIT_BCNCW_MIN(x) (((x) & BIT_MASK_BCNCW_MIN) << BIT_SHIFT_BCNCW_MIN)
-#define BIT_GET_BCNCW_MIN(x) (((x) >> BIT_SHIFT_BCNCW_MIN) & BIT_MASK_BCNCW_MIN)
-
-#define BIT_SHIFT_BCNIFS 0
-#define BIT_MASK_BCNIFS 0xff
-#define BIT_BCNIFS(x) (((x) & BIT_MASK_BCNIFS) << BIT_SHIFT_BCNIFS)
-#define BIT_GET_BCNIFS(x) (((x) >> BIT_SHIFT_BCNIFS) & BIT_MASK_BCNIFS)
-
-/* 2 REG_PIFS				(Offset 0x0512) */
-
-#define BIT_SHIFT_PIFS 0
-#define BIT_MASK_PIFS 0xff
-#define BIT_PIFS(x) (((x) & BIT_MASK_PIFS) << BIT_SHIFT_PIFS)
-#define BIT_GET_PIFS(x) (((x) >> BIT_SHIFT_PIFS) & BIT_MASK_PIFS)
-
-/* 2 REG_RDG_PIFS				(Offset 0x0513) */
-
-#define BIT_SHIFT_RDG_PIFS 0
-#define BIT_MASK_RDG_PIFS 0xff
-#define BIT_RDG_PIFS(x) (((x) & BIT_MASK_RDG_PIFS) << BIT_SHIFT_RDG_PIFS)
-#define BIT_GET_RDG_PIFS(x) (((x) >> BIT_SHIFT_RDG_PIFS) & BIT_MASK_RDG_PIFS)
-
-/* 2 REG_SIFS				(Offset 0x0514) */
-
-#define BIT_SHIFT_SIFS_OFDM_TRX 24
-#define BIT_MASK_SIFS_OFDM_TRX 0xff
-#define BIT_SIFS_OFDM_TRX(x)                                                   \
-	(((x) & BIT_MASK_SIFS_OFDM_TRX) << BIT_SHIFT_SIFS_OFDM_TRX)
-#define BIT_GET_SIFS_OFDM_TRX(x)                                               \
-	(((x) >> BIT_SHIFT_SIFS_OFDM_TRX) & BIT_MASK_SIFS_OFDM_TRX)
-
-#define BIT_SHIFT_SIFS_CCK_TRX 16
-#define BIT_MASK_SIFS_CCK_TRX 0xff
-#define BIT_SIFS_CCK_TRX(x)                                                    \
-	(((x) & BIT_MASK_SIFS_CCK_TRX) << BIT_SHIFT_SIFS_CCK_TRX)
-#define BIT_GET_SIFS_CCK_TRX(x)                                                \
-	(((x) >> BIT_SHIFT_SIFS_CCK_TRX) & BIT_MASK_SIFS_CCK_TRX)
-
-#define BIT_SHIFT_SIFS_OFDM_CTX 8
-#define BIT_MASK_SIFS_OFDM_CTX 0xff
-#define BIT_SIFS_OFDM_CTX(x)                                                   \
-	(((x) & BIT_MASK_SIFS_OFDM_CTX) << BIT_SHIFT_SIFS_OFDM_CTX)
-#define BIT_GET_SIFS_OFDM_CTX(x)                                               \
-	(((x) >> BIT_SHIFT_SIFS_OFDM_CTX) & BIT_MASK_SIFS_OFDM_CTX)
-
-#define BIT_SHIFT_SIFS_CCK_CTX 0
-#define BIT_MASK_SIFS_CCK_CTX 0xff
-#define BIT_SIFS_CCK_CTX(x)                                                    \
-	(((x) & BIT_MASK_SIFS_CCK_CTX) << BIT_SHIFT_SIFS_CCK_CTX)
-#define BIT_GET_SIFS_CCK_CTX(x)                                                \
-	(((x) >> BIT_SHIFT_SIFS_CCK_CTX) & BIT_MASK_SIFS_CCK_CTX)
-
-/* 2 REG_TSFTR_SYN_OFFSET			(Offset 0x0518) */
-
-#define BIT_SHIFT_TSFTR_SNC_OFFSET 0
-#define BIT_MASK_TSFTR_SNC_OFFSET 0xffff
-#define BIT_TSFTR_SNC_OFFSET(x)                                                \
-	(((x) & BIT_MASK_TSFTR_SNC_OFFSET) << BIT_SHIFT_TSFTR_SNC_OFFSET)
-#define BIT_GET_TSFTR_SNC_OFFSET(x)                                            \
-	(((x) >> BIT_SHIFT_TSFTR_SNC_OFFSET) & BIT_MASK_TSFTR_SNC_OFFSET)
-
-/* 2 REG_AGGR_BREAK_TIME			(Offset 0x051A) */
-
-#define BIT_SHIFT_AGGR_BK_TIME 0
-#define BIT_MASK_AGGR_BK_TIME 0xff
-#define BIT_AGGR_BK_TIME(x)                                                    \
-	(((x) & BIT_MASK_AGGR_BK_TIME) << BIT_SHIFT_AGGR_BK_TIME)
-#define BIT_GET_AGGR_BK_TIME(x)                                                \
-	(((x) >> BIT_SHIFT_AGGR_BK_TIME) & BIT_MASK_AGGR_BK_TIME)
-
-/* 2 REG_SLOT				(Offset 0x051B) */
-
-#define BIT_SHIFT_SLOT 0
-#define BIT_MASK_SLOT 0xff
-#define BIT_SLOT(x) (((x) & BIT_MASK_SLOT) << BIT_SHIFT_SLOT)
-#define BIT_GET_SLOT(x) (((x) >> BIT_SHIFT_SLOT) & BIT_MASK_SLOT)
-
-/* 2 REG_TX_PTCL_CTRL			(Offset 0x0520) */
-
-#define BIT_DIS_EDCCA BIT(15)
-#define BIT_DIS_CCA BIT(14)
-#define BIT_LSIG_TXOP_TXCMD_NAV BIT(13)
-#define BIT_SIFS_BK_EN BIT(12)
-
-#define BIT_SHIFT_TXQ_NAV_MSK 8
-#define BIT_MASK_TXQ_NAV_MSK 0xf
-#define BIT_TXQ_NAV_MSK(x)                                                     \
-	(((x) & BIT_MASK_TXQ_NAV_MSK) << BIT_SHIFT_TXQ_NAV_MSK)
-#define BIT_GET_TXQ_NAV_MSK(x)                                                 \
-	(((x) >> BIT_SHIFT_TXQ_NAV_MSK) & BIT_MASK_TXQ_NAV_MSK)
-
-#define BIT_DIS_CW BIT(7)
-#define BIT_NAV_END_TXOP BIT(6)
-#define BIT_RDG_END_TXOP BIT(5)
-#define BIT_AC_INBCN_HOLD BIT(4)
-#define BIT_MGTQ_TXOP_EN BIT(3)
-#define BIT_MGTQ_RTSMF_EN BIT(2)
-#define BIT_HIQ_RTSMF_EN BIT(1)
-#define BIT_BCN_RTSMF_EN BIT(0)
-
-/* 2 REG_TXPAUSE				(Offset 0x0522) */
-
-#define BIT_STOP_BCN_HI_MGT BIT(7)
-#define BIT_MAC_STOPBCNQ BIT(6)
-#define BIT_MAC_STOPHIQ BIT(5)
-#define BIT_MAC_STOPMGQ BIT(4)
-#define BIT_MAC_STOPBK BIT(3)
-#define BIT_MAC_STOPBE BIT(2)
-#define BIT_MAC_STOPVI BIT(1)
-#define BIT_MAC_STOPVO BIT(0)
-
-/* 2 REG_DIS_TXREQ_CLR			(Offset 0x0523) */
-
-#define BIT_DIS_BT_CCA BIT(7)
-
-/* 2 REG_DIS_TXREQ_CLR			(Offset 0x0523) */
-
-#define BIT_DIS_TXREQ_CLR_HI BIT(5)
-#define BIT_DIS_TXREQ_CLR_MGQ BIT(4)
-#define BIT_DIS_TXREQ_CLR_VO BIT(3)
-#define BIT_DIS_TXREQ_CLR_VI BIT(2)
-#define BIT_DIS_TXREQ_CLR_BE BIT(1)
-#define BIT_DIS_TXREQ_CLR_BK BIT(0)
-
-/* 2 REG_RD_CTRL				(Offset 0x0524) */
-
-#define BIT_EN_CLR_TXREQ_INCCA BIT(15)
-#define BIT_DIS_TX_OVER_BCNQ BIT(14)
-
-/* 2 REG_RD_CTRL				(Offset 0x0524) */
-
-#define BIT_EN_BCNERR_INCCCA BIT(13)
-
-/* 2 REG_RD_CTRL				(Offset 0x0524) */
-
-#define BIT_EDCCA_MSK_CNTDOWN_EN BIT(11)
-#define BIT_DIS_TXOP_CFE BIT(10)
-#define BIT_DIS_LSIG_CFE BIT(9)
-#define BIT_DIS_STBC_CFE BIT(8)
-#define BIT_BKQ_RD_INIT_EN BIT(7)
-#define BIT_BEQ_RD_INIT_EN BIT(6)
-#define BIT_VIQ_RD_INIT_EN BIT(5)
-#define BIT_VOQ_RD_INIT_EN BIT(4)
-#define BIT_BKQ_RD_RESP_EN BIT(3)
-#define BIT_BEQ_RD_RESP_EN BIT(2)
-#define BIT_VIQ_RD_RESP_EN BIT(1)
-#define BIT_VOQ_RD_RESP_EN BIT(0)
-
-/* 2 REG_MBSSID_CTRL				(Offset 0x0526) */
-
-#define BIT_MBID_BCNQ7_EN BIT(7)
-#define BIT_MBID_BCNQ6_EN BIT(6)
-#define BIT_MBID_BCNQ5_EN BIT(5)
-#define BIT_MBID_BCNQ4_EN BIT(4)
-#define BIT_MBID_BCNQ3_EN BIT(3)
-#define BIT_MBID_BCNQ2_EN BIT(2)
-#define BIT_MBID_BCNQ1_EN BIT(1)
-#define BIT_MBID_BCNQ0_EN BIT(0)
-
-/* 2 REG_P2PPS_CTRL				(Offset 0x0527) */
-
-#define BIT_P2P_CTW_ALLSTASLEEP BIT(7)
-#define BIT_P2P_OFF_DISTX_EN BIT(6)
-#define BIT_PWR_MGT_EN BIT(5)
-
-/* 2 REG_P2PPS_CTRL				(Offset 0x0527) */
-
-#define BIT_P2P_NOA1_EN BIT(2)
-#define BIT_P2P_NOA0_EN BIT(1)
-
-/* 2 REG_PKT_LIFETIME_CTRL			(Offset 0x0528) */
-
-#define BIT_EN_P2P_CTWND1 BIT(23)
-
-/* 2 REG_PKT_LIFETIME_CTRL			(Offset 0x0528) */
-
-#define BIT_EN_BKF_CLR_TXREQ BIT(22)
-#define BIT_EN_TSFBIT32_RST_P2P BIT(21)
-#define BIT_EN_BCN_TX_BTCCA BIT(20)
-#define BIT_DIS_PKT_TX_ATIM BIT(19)
-#define BIT_DIS_BCN_DIS_CTN BIT(18)
-#define BIT_EN_NAVEND_RST_TXOP BIT(17)
-#define BIT_EN_FILTER_CCA BIT(16)
-
-#define BIT_SHIFT_CCA_FILTER_THRS 8
-#define BIT_MASK_CCA_FILTER_THRS 0xff
-#define BIT_CCA_FILTER_THRS(x)                                                 \
-	(((x) & BIT_MASK_CCA_FILTER_THRS) << BIT_SHIFT_CCA_FILTER_THRS)
-#define BIT_GET_CCA_FILTER_THRS(x)                                             \
-	(((x) >> BIT_SHIFT_CCA_FILTER_THRS) & BIT_MASK_CCA_FILTER_THRS)
-
-#define BIT_SHIFT_EDCCA_THRS 0
-#define BIT_MASK_EDCCA_THRS 0xff
-#define BIT_EDCCA_THRS(x) (((x) & BIT_MASK_EDCCA_THRS) << BIT_SHIFT_EDCCA_THRS)
-#define BIT_GET_EDCCA_THRS(x)                                                  \
-	(((x) >> BIT_SHIFT_EDCCA_THRS) & BIT_MASK_EDCCA_THRS)
-
-/* 2 REG_P2PPS_SPEC_STATE			(Offset 0x052B) */
-
-#define BIT_SPEC_POWER_STATE BIT(7)
-#define BIT_SPEC_CTWINDOW_ON BIT(6)
-#define BIT_SPEC_BEACON_AREA_ON BIT(5)
-#define BIT_SPEC_CTWIN_EARLY_DISTX BIT(4)
-#define BIT_SPEC_NOA1_OFF_PERIOD BIT(3)
-#define BIT_SPEC_FORCE_DOZE1 BIT(2)
-#define BIT_SPEC_NOA0_OFF_PERIOD BIT(1)
-#define BIT_SPEC_FORCE_DOZE0 BIT(0)
-
-/* 2 REG_QUEUE_INCOL_THR			(Offset 0x0538) */
-
-#define BIT_SHIFT_BK_QUEUE_THR 24
-#define BIT_MASK_BK_QUEUE_THR 0xff
-#define BIT_BK_QUEUE_THR(x)                                                    \
-	(((x) & BIT_MASK_BK_QUEUE_THR) << BIT_SHIFT_BK_QUEUE_THR)
-#define BIT_GET_BK_QUEUE_THR(x)                                                \
-	(((x) >> BIT_SHIFT_BK_QUEUE_THR) & BIT_MASK_BK_QUEUE_THR)
-
-#define BIT_SHIFT_BE_QUEUE_THR 16
-#define BIT_MASK_BE_QUEUE_THR 0xff
-#define BIT_BE_QUEUE_THR(x)                                                    \
-	(((x) & BIT_MASK_BE_QUEUE_THR) << BIT_SHIFT_BE_QUEUE_THR)
-#define BIT_GET_BE_QUEUE_THR(x)                                                \
-	(((x) >> BIT_SHIFT_BE_QUEUE_THR) & BIT_MASK_BE_QUEUE_THR)
-
-#define BIT_SHIFT_VI_QUEUE_THR 8
-#define BIT_MASK_VI_QUEUE_THR 0xff
-#define BIT_VI_QUEUE_THR(x)                                                    \
-	(((x) & BIT_MASK_VI_QUEUE_THR) << BIT_SHIFT_VI_QUEUE_THR)
-#define BIT_GET_VI_QUEUE_THR(x)                                                \
-	(((x) >> BIT_SHIFT_VI_QUEUE_THR) & BIT_MASK_VI_QUEUE_THR)
-
-#define BIT_SHIFT_VO_QUEUE_THR 0
-#define BIT_MASK_VO_QUEUE_THR 0xff
-#define BIT_VO_QUEUE_THR(x)                                                    \
-	(((x) & BIT_MASK_VO_QUEUE_THR) << BIT_SHIFT_VO_QUEUE_THR)
-#define BIT_GET_VO_QUEUE_THR(x)                                                \
-	(((x) >> BIT_SHIFT_VO_QUEUE_THR) & BIT_MASK_VO_QUEUE_THR)
-
-/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */
-
-#define BIT_QUEUE_INCOL_EN BIT(16)
-
-/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */
-
-#define BIT_SHIFT_BE_TRIGGER_NUM 12
-#define BIT_MASK_BE_TRIGGER_NUM 0xf
-#define BIT_BE_TRIGGER_NUM(x)                                                  \
-	(((x) & BIT_MASK_BE_TRIGGER_NUM) << BIT_SHIFT_BE_TRIGGER_NUM)
-#define BIT_GET_BE_TRIGGER_NUM(x)                                              \
-	(((x) >> BIT_SHIFT_BE_TRIGGER_NUM) & BIT_MASK_BE_TRIGGER_NUM)
-
-/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */
-
-#define BIT_SHIFT_BK_TRIGGER_NUM 8
-#define BIT_MASK_BK_TRIGGER_NUM 0xf
-#define BIT_BK_TRIGGER_NUM(x)                                                  \
-	(((x) & BIT_MASK_BK_TRIGGER_NUM) << BIT_SHIFT_BK_TRIGGER_NUM)
-#define BIT_GET_BK_TRIGGER_NUM(x)                                              \
-	(((x) >> BIT_SHIFT_BK_TRIGGER_NUM) & BIT_MASK_BK_TRIGGER_NUM)
-
-/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */
-
-#define BIT_SHIFT_VI_TRIGGER_NUM 4
-#define BIT_MASK_VI_TRIGGER_NUM 0xf
-#define BIT_VI_TRIGGER_NUM(x)                                                  \
-	(((x) & BIT_MASK_VI_TRIGGER_NUM) << BIT_SHIFT_VI_TRIGGER_NUM)
-#define BIT_GET_VI_TRIGGER_NUM(x)                                              \
-	(((x) >> BIT_SHIFT_VI_TRIGGER_NUM) & BIT_MASK_VI_TRIGGER_NUM)
-
-#define BIT_SHIFT_VO_TRIGGER_NUM 0
-#define BIT_MASK_VO_TRIGGER_NUM 0xf
-#define BIT_VO_TRIGGER_NUM(x)                                                  \
-	(((x) & BIT_MASK_VO_TRIGGER_NUM) << BIT_SHIFT_VO_TRIGGER_NUM)
-#define BIT_GET_VO_TRIGGER_NUM(x)                                              \
-	(((x) >> BIT_SHIFT_VO_TRIGGER_NUM) & BIT_MASK_VO_TRIGGER_NUM)
-
-/* 2 REG_TBTT_PROHIBIT			(Offset 0x0540) */
-
-#define BIT_SHIFT_TBTT_HOLD_TIME_AP 8
-#define BIT_MASK_TBTT_HOLD_TIME_AP 0xfff
-#define BIT_TBTT_HOLD_TIME_AP(x)                                               \
-	(((x) & BIT_MASK_TBTT_HOLD_TIME_AP) << BIT_SHIFT_TBTT_HOLD_TIME_AP)
-#define BIT_GET_TBTT_HOLD_TIME_AP(x)                                           \
-	(((x) >> BIT_SHIFT_TBTT_HOLD_TIME_AP) & BIT_MASK_TBTT_HOLD_TIME_AP)
-
-/* 2 REG_TBTT_PROHIBIT			(Offset 0x0540) */
-
-#define BIT_SHIFT_TBTT_PROHIBIT_SETUP 0
-#define BIT_MASK_TBTT_PROHIBIT_SETUP 0xf
-#define BIT_TBTT_PROHIBIT_SETUP(x)                                             \
-	(((x) & BIT_MASK_TBTT_PROHIBIT_SETUP) << BIT_SHIFT_TBTT_PROHIBIT_SETUP)
-#define BIT_GET_TBTT_PROHIBIT_SETUP(x)                                         \
-	(((x) >> BIT_SHIFT_TBTT_PROHIBIT_SETUP) & BIT_MASK_TBTT_PROHIBIT_SETUP)
-
-/* 2 REG_P2PPS_STATE				(Offset 0x0543) */
-
-#define BIT_POWER_STATE BIT(7)
-#define BIT_CTWINDOW_ON BIT(6)
-#define BIT_BEACON_AREA_ON BIT(5)
-#define BIT_CTWIN_EARLY_DISTX BIT(4)
-#define BIT_NOA1_OFF_PERIOD BIT(3)
-#define BIT_FORCE_DOZE1 BIT(2)
-#define BIT_NOA0_OFF_PERIOD BIT(1)
-#define BIT_FORCE_DOZE0 BIT(0)
-
-/* 2 REG_RD_NAV_NXT				(Offset 0x0544) */
-
-#define BIT_SHIFT_RD_NAV_PROT_NXT 0
-#define BIT_MASK_RD_NAV_PROT_NXT 0xffff
-#define BIT_RD_NAV_PROT_NXT(x)                                                 \
-	(((x) & BIT_MASK_RD_NAV_PROT_NXT) << BIT_SHIFT_RD_NAV_PROT_NXT)
-#define BIT_GET_RD_NAV_PROT_NXT(x)                                             \
-	(((x) >> BIT_SHIFT_RD_NAV_PROT_NXT) & BIT_MASK_RD_NAV_PROT_NXT)
-
-/* 2 REG_NAV_PROT_LEN			(Offset 0x0546) */
-
-#define BIT_SHIFT_NAV_PROT_LEN 0
-#define BIT_MASK_NAV_PROT_LEN 0xffff
-#define BIT_NAV_PROT_LEN(x)                                                    \
-	(((x) & BIT_MASK_NAV_PROT_LEN) << BIT_SHIFT_NAV_PROT_LEN)
-#define BIT_GET_NAV_PROT_LEN(x)                                                \
-	(((x) >> BIT_SHIFT_NAV_PROT_LEN) & BIT_MASK_NAV_PROT_LEN)
-
-/* 2 REG_BCN_CTRL				(Offset 0x0550) */
-
-#define BIT_DIS_RX_BSSID_FIT BIT(6)
-
-/* 2 REG_BCN_CTRL				(Offset 0x0550) */
-
-#define BIT_P0_EN_TXBCN_RPT BIT(5)
-
-/* 2 REG_BCN_CTRL				(Offset 0x0550) */
-
-#define BIT_DIS_TSF_UDT BIT(4)
-#define BIT_EN_BCN_FUNCTION BIT(3)
-
-/* 2 REG_BCN_CTRL				(Offset 0x0550) */
-
-#define BIT_P0_EN_RXBCN_RPT BIT(2)
-
-/* 2 REG_BCN_CTRL				(Offset 0x0550) */
-
-#define BIT_EN_P2P_CTWINDOW BIT(1)
-#define BIT_EN_P2P_BCNQ_AREA BIT(0)
-
-/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */
-
-#define BIT_CLI0_DIS_RX_BSSID_FIT BIT(6)
-
-/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */
-
-#define BIT_CLI0_DIS_TSF_UDT BIT(4)
-
-/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */
-
-#define BIT_CLI0_EN_BCN_FUNCTION BIT(3)
-
-/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */
-
-#define BIT_CLI0_EN_RXBCN_RPT BIT(2)
-
-/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */
-
-#define BIT_CLI0_ENP2P_CTWINDOW BIT(1)
-#define BIT_CLI0_ENP2P_BCNQ_AREA BIT(0)
-
-/* 2 REG_MBID_NUM				(Offset 0x0552) */
-
-#define BIT_EN_PRE_DL_BEACON BIT(3)
-
-#define BIT_SHIFT_MBID_BCN_NUM 0
-#define BIT_MASK_MBID_BCN_NUM 0x7
-#define BIT_MBID_BCN_NUM(x)                                                    \
-	(((x) & BIT_MASK_MBID_BCN_NUM) << BIT_SHIFT_MBID_BCN_NUM)
-#define BIT_GET_MBID_BCN_NUM(x)                                                \
-	(((x) >> BIT_SHIFT_MBID_BCN_NUM) & BIT_MASK_MBID_BCN_NUM)
-
-/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */
-
-#define BIT_FREECNT_RST BIT(5)
-
-/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */
-
-#define BIT_TSFTR_CLI3_RST BIT(4)
-
-/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */
-
-#define BIT_TSFTR_CLI2_RST BIT(3)
-
-/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */
-
-#define BIT_TSFTR_CLI1_RST BIT(2)
-
-/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */
-
-#define BIT_TSFTR_CLI0_RST BIT(1)
-
-/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */
-
-#define BIT_TSFTR_RST BIT(0)
-
-/* 2 REG_MBSSID_BCN_SPACE			(Offset 0x0554) */
-
-#define BIT_SHIFT_BCN_TIMER_SEL_FWRD 28
-#define BIT_MASK_BCN_TIMER_SEL_FWRD 0x7
-#define BIT_BCN_TIMER_SEL_FWRD(x)                                              \
-	(((x) & BIT_MASK_BCN_TIMER_SEL_FWRD) << BIT_SHIFT_BCN_TIMER_SEL_FWRD)
-#define BIT_GET_BCN_TIMER_SEL_FWRD(x)                                          \
-	(((x) >> BIT_SHIFT_BCN_TIMER_SEL_FWRD) & BIT_MASK_BCN_TIMER_SEL_FWRD)
-
-/* 2 REG_MBSSID_BCN_SPACE			(Offset 0x0554) */
-
-#define BIT_SHIFT_BCN_SPACE_CLINT0 16
-#define BIT_MASK_BCN_SPACE_CLINT0 0xfff
-#define BIT_BCN_SPACE_CLINT0(x)                                                \
-	(((x) & BIT_MASK_BCN_SPACE_CLINT0) << BIT_SHIFT_BCN_SPACE_CLINT0)
-#define BIT_GET_BCN_SPACE_CLINT0(x)                                            \
-	(((x) >> BIT_SHIFT_BCN_SPACE_CLINT0) & BIT_MASK_BCN_SPACE_CLINT0)
-
-/* 2 REG_MBSSID_BCN_SPACE			(Offset 0x0554) */
-
-#define BIT_SHIFT_BCN_SPACE0 0
-#define BIT_MASK_BCN_SPACE0 0xffff
-#define BIT_BCN_SPACE0(x) (((x) & BIT_MASK_BCN_SPACE0) << BIT_SHIFT_BCN_SPACE0)
-#define BIT_GET_BCN_SPACE0(x)                                                  \
-	(((x) >> BIT_SHIFT_BCN_SPACE0) & BIT_MASK_BCN_SPACE0)
-
-/* 2 REG_DRVERLYINT				(Offset 0x0558) */
-
-#define BIT_SHIFT_DRVERLYITV 0
-#define BIT_MASK_DRVERLYITV 0xff
-#define BIT_DRVERLYITV(x) (((x) & BIT_MASK_DRVERLYITV) << BIT_SHIFT_DRVERLYITV)
-#define BIT_GET_DRVERLYITV(x)                                                  \
-	(((x) >> BIT_SHIFT_DRVERLYITV) & BIT_MASK_DRVERLYITV)
-
-/* 2 REG_BCNDMATIM				(Offset 0x0559) */
-
-#define BIT_SHIFT_BCNDMATIM 0
-#define BIT_MASK_BCNDMATIM 0xff
-#define BIT_BCNDMATIM(x) (((x) & BIT_MASK_BCNDMATIM) << BIT_SHIFT_BCNDMATIM)
-#define BIT_GET_BCNDMATIM(x) (((x) >> BIT_SHIFT_BCNDMATIM) & BIT_MASK_BCNDMATIM)
-
-/* 2 REG_ATIMWND				(Offset 0x055A) */
-
-#define BIT_SHIFT_ATIMWND0 0
-#define BIT_MASK_ATIMWND0 0xffff
-#define BIT_ATIMWND0(x) (((x) & BIT_MASK_ATIMWND0) << BIT_SHIFT_ATIMWND0)
-#define BIT_GET_ATIMWND0(x) (((x) >> BIT_SHIFT_ATIMWND0) & BIT_MASK_ATIMWND0)
-
-/* 2 REG_USTIME_TSF				(Offset 0x055C) */
-
-#define BIT_SHIFT_USTIME_TSF_V1 0
-#define BIT_MASK_USTIME_TSF_V1 0xff
-#define BIT_USTIME_TSF_V1(x)                                                   \
-	(((x) & BIT_MASK_USTIME_TSF_V1) << BIT_SHIFT_USTIME_TSF_V1)
-#define BIT_GET_USTIME_TSF_V1(x)                                               \
-	(((x) >> BIT_SHIFT_USTIME_TSF_V1) & BIT_MASK_USTIME_TSF_V1)
-
-/* 2 REG_BCN_MAX_ERR				(Offset 0x055D) */
-
-#define BIT_SHIFT_BCN_MAX_ERR 0
-#define BIT_MASK_BCN_MAX_ERR 0xff
-#define BIT_BCN_MAX_ERR(x)                                                     \
-	(((x) & BIT_MASK_BCN_MAX_ERR) << BIT_SHIFT_BCN_MAX_ERR)
-#define BIT_GET_BCN_MAX_ERR(x)                                                 \
-	(((x) >> BIT_SHIFT_BCN_MAX_ERR) & BIT_MASK_BCN_MAX_ERR)
-
-/* 2 REG_RXTSF_OFFSET_CCK			(Offset 0x055E) */
-
-#define BIT_SHIFT_CCK_RXTSF_OFFSET 0
-#define BIT_MASK_CCK_RXTSF_OFFSET 0xff
-#define BIT_CCK_RXTSF_OFFSET(x)                                                \
-	(((x) & BIT_MASK_CCK_RXTSF_OFFSET) << BIT_SHIFT_CCK_RXTSF_OFFSET)
-#define BIT_GET_CCK_RXTSF_OFFSET(x)                                            \
-	(((x) >> BIT_SHIFT_CCK_RXTSF_OFFSET) & BIT_MASK_CCK_RXTSF_OFFSET)
-
-/* 2 REG_RXTSF_OFFSET_OFDM			(Offset 0x055F) */
-
-#define BIT_SHIFT_OFDM_RXTSF_OFFSET 0
-#define BIT_MASK_OFDM_RXTSF_OFFSET 0xff
-#define BIT_OFDM_RXTSF_OFFSET(x)                                               \
-	(((x) & BIT_MASK_OFDM_RXTSF_OFFSET) << BIT_SHIFT_OFDM_RXTSF_OFFSET)
-#define BIT_GET_OFDM_RXTSF_OFFSET(x)                                           \
-	(((x) >> BIT_SHIFT_OFDM_RXTSF_OFFSET) & BIT_MASK_OFDM_RXTSF_OFFSET)
-
-/* 2 REG_TSFTR				(Offset 0x0560) */
-
-#define BIT_SHIFT_TSF_TIMER 0
-#define BIT_MASK_TSF_TIMER 0xffffffffffffffffL
-#define BIT_TSF_TIMER(x) (((x) & BIT_MASK_TSF_TIMER) << BIT_SHIFT_TSF_TIMER)
-#define BIT_GET_TSF_TIMER(x) (((x) >> BIT_SHIFT_TSF_TIMER) & BIT_MASK_TSF_TIMER)
-
-/* 2 REG_FREERUN_CNT				(Offset 0x0568) */
-
-#define BIT_SHIFT_FREERUN_CNT 0
-#define BIT_MASK_FREERUN_CNT 0xffffffffffffffffL
-#define BIT_FREERUN_CNT(x)                                                     \
-	(((x) & BIT_MASK_FREERUN_CNT) << BIT_SHIFT_FREERUN_CNT)
-#define BIT_GET_FREERUN_CNT(x)                                                 \
-	(((x) >> BIT_SHIFT_FREERUN_CNT) & BIT_MASK_FREERUN_CNT)
-
-/* 2 REG_ATIMWND1_V1				(Offset 0x0570) */
-
-#define BIT_SHIFT_ATIMWND1_V1 0
-#define BIT_MASK_ATIMWND1_V1 0xff
-#define BIT_ATIMWND1_V1(x)                                                     \
-	(((x) & BIT_MASK_ATIMWND1_V1) << BIT_SHIFT_ATIMWND1_V1)
-#define BIT_GET_ATIMWND1_V1(x)                                                 \
-	(((x) >> BIT_SHIFT_ATIMWND1_V1) & BIT_MASK_ATIMWND1_V1)
-
-/* 2 REG_TBTT_PROHIBIT_INFRA			(Offset 0x0571) */
-
-#define BIT_SHIFT_TBTT_PROHIBIT_INFRA 0
-#define BIT_MASK_TBTT_PROHIBIT_INFRA 0xff
-#define BIT_TBTT_PROHIBIT_INFRA(x)                                             \
-	(((x) & BIT_MASK_TBTT_PROHIBIT_INFRA) << BIT_SHIFT_TBTT_PROHIBIT_INFRA)
-#define BIT_GET_TBTT_PROHIBIT_INFRA(x)                                         \
-	(((x) >> BIT_SHIFT_TBTT_PROHIBIT_INFRA) & BIT_MASK_TBTT_PROHIBIT_INFRA)
-
-/* 2 REG_CTWND				(Offset 0x0572) */
-
-#define BIT_SHIFT_CTWND 0
-#define BIT_MASK_CTWND 0xff
-#define BIT_CTWND(x) (((x) & BIT_MASK_CTWND) << BIT_SHIFT_CTWND)
-#define BIT_GET_CTWND(x) (((x) >> BIT_SHIFT_CTWND) & BIT_MASK_CTWND)
-
-/* 2 REG_BCNIVLCUNT				(Offset 0x0573) */
-
-#define BIT_SHIFT_BCNIVLCUNT 0
-#define BIT_MASK_BCNIVLCUNT 0x7f
-#define BIT_BCNIVLCUNT(x) (((x) & BIT_MASK_BCNIVLCUNT) << BIT_SHIFT_BCNIVLCUNT)
-#define BIT_GET_BCNIVLCUNT(x)                                                  \
-	(((x) >> BIT_SHIFT_BCNIVLCUNT) & BIT_MASK_BCNIVLCUNT)
-
-/* 2 REG_BCNDROPCTRL				(Offset 0x0574) */
-
-#define BIT_BEACON_DROP_EN BIT(7)
-
-#define BIT_SHIFT_BEACON_DROP_IVL 0
-#define BIT_MASK_BEACON_DROP_IVL 0x7f
-#define BIT_BEACON_DROP_IVL(x)                                                 \
-	(((x) & BIT_MASK_BEACON_DROP_IVL) << BIT_SHIFT_BEACON_DROP_IVL)
-#define BIT_GET_BEACON_DROP_IVL(x)                                             \
-	(((x) >> BIT_SHIFT_BEACON_DROP_IVL) & BIT_MASK_BEACON_DROP_IVL)
-
-/* 2 REG_HGQ_TIMEOUT_PERIOD			(Offset 0x0575) */
-
-#define BIT_SHIFT_HGQ_TIMEOUT_PERIOD 0
-#define BIT_MASK_HGQ_TIMEOUT_PERIOD 0xff
-#define BIT_HGQ_TIMEOUT_PERIOD(x)                                              \
-	(((x) & BIT_MASK_HGQ_TIMEOUT_PERIOD) << BIT_SHIFT_HGQ_TIMEOUT_PERIOD)
-#define BIT_GET_HGQ_TIMEOUT_PERIOD(x)                                          \
-	(((x) >> BIT_SHIFT_HGQ_TIMEOUT_PERIOD) & BIT_MASK_HGQ_TIMEOUT_PERIOD)
-
-/* 2 REG_TXCMD_TIMEOUT_PERIOD		(Offset 0x0576) */
-
-#define BIT_SHIFT_TXCMD_TIMEOUT_PERIOD 0
-#define BIT_MASK_TXCMD_TIMEOUT_PERIOD 0xff
-#define BIT_TXCMD_TIMEOUT_PERIOD(x)                                            \
-	(((x) & BIT_MASK_TXCMD_TIMEOUT_PERIOD)                                 \
-	 << BIT_SHIFT_TXCMD_TIMEOUT_PERIOD)
-#define BIT_GET_TXCMD_TIMEOUT_PERIOD(x)                                        \
-	(((x) >> BIT_SHIFT_TXCMD_TIMEOUT_PERIOD) &                             \
-	 BIT_MASK_TXCMD_TIMEOUT_PERIOD)
-
-/* 2 REG_MISC_CTRL				(Offset 0x0577) */
-
-#define BIT_DIS_TRX_CAL_BCN BIT(5)
-#define BIT_DIS_TX_CAL_TBTT BIT(4)
-#define BIT_EN_FREECNT BIT(3)
-#define BIT_BCN_AGGRESSION BIT(2)
-
-#define BIT_SHIFT_DIS_SECONDARY_CCA 0
-#define BIT_MASK_DIS_SECONDARY_CCA 0x3
-#define BIT_DIS_SECONDARY_CCA(x)                                               \
-	(((x) & BIT_MASK_DIS_SECONDARY_CCA) << BIT_SHIFT_DIS_SECONDARY_CCA)
-#define BIT_GET_DIS_SECONDARY_CCA(x)                                           \
-	(((x) >> BIT_SHIFT_DIS_SECONDARY_CCA) & BIT_MASK_DIS_SECONDARY_CCA)
-
-/* 2 REG_BCN_CTRL_CLINT1			(Offset 0x0578) */
-
-#define BIT_CLI1_DIS_RX_BSSID_FIT BIT(6)
-#define BIT_CLI1_DIS_TSF_UDT BIT(4)
-#define BIT_CLI1_EN_BCN_FUNCTION BIT(3)
-
-/* 2 REG_BCN_CTRL_CLINT1			(Offset 0x0578) */
-
-#define BIT_CLI1_EN_RXBCN_RPT BIT(2)
-
-/* 2 REG_BCN_CTRL_CLINT1			(Offset 0x0578) */
-
-#define BIT_CLI1_ENP2P_CTWINDOW BIT(1)
-#define BIT_CLI1_ENP2P_BCNQ_AREA BIT(0)
-
-/* 2 REG_BCN_CTRL_CLINT2			(Offset 0x0579) */
-
-#define BIT_CLI2_DIS_RX_BSSID_FIT BIT(6)
-#define BIT_CLI2_DIS_TSF_UDT BIT(4)
-#define BIT_CLI2_EN_BCN_FUNCTION BIT(3)
-
-/* 2 REG_BCN_CTRL_CLINT2			(Offset 0x0579) */
-
-#define BIT_CLI2_EN_RXBCN_RPT BIT(2)
-
-/* 2 REG_BCN_CTRL_CLINT2			(Offset 0x0579) */
-
-#define BIT_CLI2_ENP2P_CTWINDOW BIT(1)
-#define BIT_CLI2_ENP2P_BCNQ_AREA BIT(0)
-
-/* 2 REG_BCN_CTRL_CLINT3			(Offset 0x057A) */
-
-#define BIT_CLI3_DIS_RX_BSSID_FIT BIT(6)
-#define BIT_CLI3_DIS_TSF_UDT BIT(4)
-#define BIT_CLI3_EN_BCN_FUNCTION BIT(3)
-
-/* 2 REG_BCN_CTRL_CLINT3			(Offset 0x057A) */
-
-#define BIT_CLI3_EN_RXBCN_RPT BIT(2)
-
-/* 2 REG_BCN_CTRL_CLINT3			(Offset 0x057A) */
-
-#define BIT_CLI3_ENP2P_CTWINDOW BIT(1)
-#define BIT_CLI3_ENP2P_BCNQ_AREA BIT(0)
-
-/* 2 REG_EXTEND_CTRL				(Offset 0x057B) */
-
-#define BIT_EN_TSFBIT32_RST_P2P2 BIT(5)
-#define BIT_EN_TSFBIT32_RST_P2P1 BIT(4)
-
-#define BIT_SHIFT_PORT_SEL 0
-#define BIT_MASK_PORT_SEL 0x7
-#define BIT_PORT_SEL(x) (((x) & BIT_MASK_PORT_SEL) << BIT_SHIFT_PORT_SEL)
-#define BIT_GET_PORT_SEL(x) (((x) >> BIT_SHIFT_PORT_SEL) & BIT_MASK_PORT_SEL)
-
-/* 2 REG_P2PPS1_SPEC_STATE			(Offset 0x057C) */
-
-#define BIT_P2P1_SPEC_POWER_STATE BIT(7)
-#define BIT_P2P1_SPEC_CTWINDOW_ON BIT(6)
-#define BIT_P2P1_SPEC_BCN_AREA_ON BIT(5)
-#define BIT_P2P1_SPEC_CTWIN_EARLY_DISTX BIT(4)
-#define BIT_P2P1_SPEC_NOA1_OFF_PERIOD BIT(3)
-#define BIT_P2P1_SPEC_FORCE_DOZE1 BIT(2)
-#define BIT_P2P1_SPEC_NOA0_OFF_PERIOD BIT(1)
-#define BIT_P2P1_SPEC_FORCE_DOZE0 BIT(0)
-
-/* 2 REG_P2PPS1_STATE			(Offset 0x057D) */
-
-#define BIT_P2P1_POWER_STATE BIT(7)
-#define BIT_P2P1_CTWINDOW_ON BIT(6)
-#define BIT_P2P1_BEACON_AREA_ON BIT(5)
-#define BIT_P2P1_CTWIN_EARLY_DISTX BIT(4)
-#define BIT_P2P1_NOA1_OFF_PERIOD BIT(3)
-#define BIT_P2P1_FORCE_DOZE1 BIT(2)
-#define BIT_P2P1_NOA0_OFF_PERIOD BIT(1)
-#define BIT_P2P1_FORCE_DOZE0 BIT(0)
-
-/* 2 REG_P2PPS2_SPEC_STATE			(Offset 0x057E) */
-
-#define BIT_P2P2_SPEC_POWER_STATE BIT(7)
-#define BIT_P2P2_SPEC_CTWINDOW_ON BIT(6)
-#define BIT_P2P2_SPEC_BCN_AREA_ON BIT(5)
-#define BIT_P2P2_SPEC_CTWIN_EARLY_DISTX BIT(4)
-#define BIT_P2P2_SPEC_NOA1_OFF_PERIOD BIT(3)
-#define BIT_P2P2_SPEC_FORCE_DOZE1 BIT(2)
-#define BIT_P2P2_SPEC_NOA0_OFF_PERIOD BIT(1)
-#define BIT_P2P2_SPEC_FORCE_DOZE0 BIT(0)
-
-/* 2 REG_P2PPS2_STATE			(Offset 0x057F) */
-
-#define BIT_P2P2_POWER_STATE BIT(7)
-#define BIT_P2P2_CTWINDOW_ON BIT(6)
-#define BIT_P2P2_BEACON_AREA_ON BIT(5)
-#define BIT_P2P2_CTWIN_EARLY_DISTX BIT(4)
-#define BIT_P2P2_NOA1_OFF_PERIOD BIT(3)
-#define BIT_P2P2_FORCE_DOZE1 BIT(2)
-#define BIT_P2P2_NOA0_OFF_PERIOD BIT(1)
-#define BIT_P2P2_FORCE_DOZE0 BIT(0)
-
-/* 2 REG_PS_TIMER0				(Offset 0x0580) */
-
-#define BIT_SHIFT_PSTIMER0_INT 5
-#define BIT_MASK_PSTIMER0_INT 0x7ffffff
-#define BIT_PSTIMER0_INT(x)                                                    \
-	(((x) & BIT_MASK_PSTIMER0_INT) << BIT_SHIFT_PSTIMER0_INT)
-#define BIT_GET_PSTIMER0_INT(x)                                                \
-	(((x) >> BIT_SHIFT_PSTIMER0_INT) & BIT_MASK_PSTIMER0_INT)
-
-/* 2 REG_PS_TIMER1				(Offset 0x0584) */
-
-#define BIT_SHIFT_PSTIMER1_INT 5
-#define BIT_MASK_PSTIMER1_INT 0x7ffffff
-#define BIT_PSTIMER1_INT(x)                                                    \
-	(((x) & BIT_MASK_PSTIMER1_INT) << BIT_SHIFT_PSTIMER1_INT)
-#define BIT_GET_PSTIMER1_INT(x)                                                \
-	(((x) >> BIT_SHIFT_PSTIMER1_INT) & BIT_MASK_PSTIMER1_INT)
-
-/* 2 REG_PS_TIMER2				(Offset 0x0588) */
-
-#define BIT_SHIFT_PSTIMER2_INT 5
-#define BIT_MASK_PSTIMER2_INT 0x7ffffff
-#define BIT_PSTIMER2_INT(x)                                                    \
-	(((x) & BIT_MASK_PSTIMER2_INT) << BIT_SHIFT_PSTIMER2_INT)
-#define BIT_GET_PSTIMER2_INT(x)                                                \
-	(((x) >> BIT_SHIFT_PSTIMER2_INT) & BIT_MASK_PSTIMER2_INT)
-
-/* 2 REG_TBTT_CTN_AREA			(Offset 0x058C) */
-
-#define BIT_SHIFT_TBTT_CTN_AREA 0
-#define BIT_MASK_TBTT_CTN_AREA 0xff
-#define BIT_TBTT_CTN_AREA(x)                                                   \
-	(((x) & BIT_MASK_TBTT_CTN_AREA) << BIT_SHIFT_TBTT_CTN_AREA)
-#define BIT_GET_TBTT_CTN_AREA(x)                                               \
-	(((x) >> BIT_SHIFT_TBTT_CTN_AREA) & BIT_MASK_TBTT_CTN_AREA)
-
-/* 2 REG_FORCE_BCN_IFS			(Offset 0x058E) */
-
-#define BIT_SHIFT_FORCE_BCN_IFS 0
-#define BIT_MASK_FORCE_BCN_IFS 0xff
-#define BIT_FORCE_BCN_IFS(x)                                                   \
-	(((x) & BIT_MASK_FORCE_BCN_IFS) << BIT_SHIFT_FORCE_BCN_IFS)
-#define BIT_GET_FORCE_BCN_IFS(x)                                               \
-	(((x) >> BIT_SHIFT_FORCE_BCN_IFS) & BIT_MASK_FORCE_BCN_IFS)
-
-/* 2 REG_TXOP_MIN				(Offset 0x0590) */
-
-#define BIT_SHIFT_TXOP_MIN 0
-#define BIT_MASK_TXOP_MIN 0x3fff
-#define BIT_TXOP_MIN(x) (((x) & BIT_MASK_TXOP_MIN) << BIT_SHIFT_TXOP_MIN)
-#define BIT_GET_TXOP_MIN(x) (((x) >> BIT_SHIFT_TXOP_MIN) & BIT_MASK_TXOP_MIN)
-
-/* 2 REG_PRE_BKF_TIME			(Offset 0x0592) */
-
-#define BIT_SHIFT_PRE_BKF_TIME 0
-#define BIT_MASK_PRE_BKF_TIME 0xff
-#define BIT_PRE_BKF_TIME(x)                                                    \
-	(((x) & BIT_MASK_PRE_BKF_TIME) << BIT_SHIFT_PRE_BKF_TIME)
-#define BIT_GET_PRE_BKF_TIME(x)                                                \
-	(((x) >> BIT_SHIFT_PRE_BKF_TIME) & BIT_MASK_PRE_BKF_TIME)
-
-/* 2 REG_CROSS_TXOP_CTRL			(Offset 0x0593) */
-
-#define BIT_DTIM_BYPASS BIT(2)
-#define BIT_RTS_NAV_TXOP BIT(1)
-#define BIT_NOT_CROSS_TXOP BIT(0)
-
-/* 2 REG_ATIMWND2				(Offset 0x05A0) */
-
-#define BIT_SHIFT_ATIMWND2 0
-#define BIT_MASK_ATIMWND2 0xff
-#define BIT_ATIMWND2(x) (((x) & BIT_MASK_ATIMWND2) << BIT_SHIFT_ATIMWND2)
-#define BIT_GET_ATIMWND2(x) (((x) >> BIT_SHIFT_ATIMWND2) & BIT_MASK_ATIMWND2)
-
-/* 2 REG_ATIMWND3				(Offset 0x05A1) */
-
-#define BIT_SHIFT_ATIMWND3 0
-#define BIT_MASK_ATIMWND3 0xff
-#define BIT_ATIMWND3(x) (((x) & BIT_MASK_ATIMWND3) << BIT_SHIFT_ATIMWND3)
-#define BIT_GET_ATIMWND3(x) (((x) >> BIT_SHIFT_ATIMWND3) & BIT_MASK_ATIMWND3)
-
-/* 2 REG_ATIMWND4				(Offset 0x05A2) */
-
-#define BIT_SHIFT_ATIMWND4 0
-#define BIT_MASK_ATIMWND4 0xff
-#define BIT_ATIMWND4(x) (((x) & BIT_MASK_ATIMWND4) << BIT_SHIFT_ATIMWND4)
-#define BIT_GET_ATIMWND4(x) (((x) >> BIT_SHIFT_ATIMWND4) & BIT_MASK_ATIMWND4)
-
-/* 2 REG_ATIMWND5				(Offset 0x05A3) */
-
-#define BIT_SHIFT_ATIMWND5 0
-#define BIT_MASK_ATIMWND5 0xff
-#define BIT_ATIMWND5(x) (((x) & BIT_MASK_ATIMWND5) << BIT_SHIFT_ATIMWND5)
-#define BIT_GET_ATIMWND5(x) (((x) >> BIT_SHIFT_ATIMWND5) & BIT_MASK_ATIMWND5)
-
-/* 2 REG_ATIMWND6				(Offset 0x05A4) */
-
-#define BIT_SHIFT_ATIMWND6 0
-#define BIT_MASK_ATIMWND6 0xff
-#define BIT_ATIMWND6(x) (((x) & BIT_MASK_ATIMWND6) << BIT_SHIFT_ATIMWND6)
-#define BIT_GET_ATIMWND6(x) (((x) >> BIT_SHIFT_ATIMWND6) & BIT_MASK_ATIMWND6)
-
-/* 2 REG_ATIMWND7				(Offset 0x05A5) */
-
-#define BIT_SHIFT_ATIMWND7 0
-#define BIT_MASK_ATIMWND7 0xff
-#define BIT_ATIMWND7(x) (((x) & BIT_MASK_ATIMWND7) << BIT_SHIFT_ATIMWND7)
-#define BIT_GET_ATIMWND7(x) (((x) >> BIT_SHIFT_ATIMWND7) & BIT_MASK_ATIMWND7)
-
-/* 2 REG_ATIMUGT				(Offset 0x05A6) */
-
-#define BIT_SHIFT_ATIM_URGENT 0
-#define BIT_MASK_ATIM_URGENT 0xff
-#define BIT_ATIM_URGENT(x)                                                     \
-	(((x) & BIT_MASK_ATIM_URGENT) << BIT_SHIFT_ATIM_URGENT)
-#define BIT_GET_ATIM_URGENT(x)                                                 \
-	(((x) >> BIT_SHIFT_ATIM_URGENT) & BIT_MASK_ATIM_URGENT)
-
-/* 2 REG_HIQ_NO_LMT_EN			(Offset 0x05A7) */
-
-#define BIT_HIQ_NO_LMT_EN_VAP7 BIT(7)
-#define BIT_HIQ_NO_LMT_EN_VAP6 BIT(6)
-#define BIT_HIQ_NO_LMT_EN_VAP5 BIT(5)
-#define BIT_HIQ_NO_LMT_EN_VAP4 BIT(4)
-#define BIT_HIQ_NO_LMT_EN_VAP3 BIT(3)
-#define BIT_HIQ_NO_LMT_EN_VAP2 BIT(2)
-#define BIT_HIQ_NO_LMT_EN_VAP1 BIT(1)
-#define BIT_HIQ_NO_LMT_EN_ROOT BIT(0)
-
-/* 2 REG_DTIM_COUNTER_ROOT			(Offset 0x05A8) */
-
-#define BIT_SHIFT_DTIM_COUNT_ROOT 0
-#define BIT_MASK_DTIM_COUNT_ROOT 0xff
-#define BIT_DTIM_COUNT_ROOT(x)                                                 \
-	(((x) & BIT_MASK_DTIM_COUNT_ROOT) << BIT_SHIFT_DTIM_COUNT_ROOT)
-#define BIT_GET_DTIM_COUNT_ROOT(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_ROOT) & BIT_MASK_DTIM_COUNT_ROOT)
-
-/* 2 REG_DTIM_COUNTER_VAP1			(Offset 0x05A9) */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP1 0
-#define BIT_MASK_DTIM_COUNT_VAP1 0xff
-#define BIT_DTIM_COUNT_VAP1(x)                                                 \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP1) << BIT_SHIFT_DTIM_COUNT_VAP1)
-#define BIT_GET_DTIM_COUNT_VAP1(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP1) & BIT_MASK_DTIM_COUNT_VAP1)
-
-/* 2 REG_DTIM_COUNTER_VAP2			(Offset 0x05AA) */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP2 0
-#define BIT_MASK_DTIM_COUNT_VAP2 0xff
-#define BIT_DTIM_COUNT_VAP2(x)                                                 \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP2) << BIT_SHIFT_DTIM_COUNT_VAP2)
-#define BIT_GET_DTIM_COUNT_VAP2(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP2) & BIT_MASK_DTIM_COUNT_VAP2)
-
-/* 2 REG_DTIM_COUNTER_VAP3			(Offset 0x05AB) */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP3 0
-#define BIT_MASK_DTIM_COUNT_VAP3 0xff
-#define BIT_DTIM_COUNT_VAP3(x)                                                 \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP3) << BIT_SHIFT_DTIM_COUNT_VAP3)
-#define BIT_GET_DTIM_COUNT_VAP3(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP3) & BIT_MASK_DTIM_COUNT_VAP3)
-
-/* 2 REG_DTIM_COUNTER_VAP4			(Offset 0x05AC) */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP4 0
-#define BIT_MASK_DTIM_COUNT_VAP4 0xff
-#define BIT_DTIM_COUNT_VAP4(x)                                                 \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP4) << BIT_SHIFT_DTIM_COUNT_VAP4)
-#define BIT_GET_DTIM_COUNT_VAP4(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP4) & BIT_MASK_DTIM_COUNT_VAP4)
-
-/* 2 REG_DTIM_COUNTER_VAP5			(Offset 0x05AD) */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP5 0
-#define BIT_MASK_DTIM_COUNT_VAP5 0xff
-#define BIT_DTIM_COUNT_VAP5(x)                                                 \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP5) << BIT_SHIFT_DTIM_COUNT_VAP5)
-#define BIT_GET_DTIM_COUNT_VAP5(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP5) & BIT_MASK_DTIM_COUNT_VAP5)
-
-/* 2 REG_DTIM_COUNTER_VAP6			(Offset 0x05AE) */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP6 0
-#define BIT_MASK_DTIM_COUNT_VAP6 0xff
-#define BIT_DTIM_COUNT_VAP6(x)                                                 \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP6) << BIT_SHIFT_DTIM_COUNT_VAP6)
-#define BIT_GET_DTIM_COUNT_VAP6(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP6) & BIT_MASK_DTIM_COUNT_VAP6)
-
-/* 2 REG_DTIM_COUNTER_VAP7			(Offset 0x05AF) */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP7 0
-#define BIT_MASK_DTIM_COUNT_VAP7 0xff
-#define BIT_DTIM_COUNT_VAP7(x)                                                 \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP7) << BIT_SHIFT_DTIM_COUNT_VAP7)
-#define BIT_GET_DTIM_COUNT_VAP7(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP7) & BIT_MASK_DTIM_COUNT_VAP7)
-
-/* 2 REG_DIS_ATIM				(Offset 0x05B0) */
-
-#define BIT_DIS_ATIM_VAP7 BIT(7)
-#define BIT_DIS_ATIM_VAP6 BIT(6)
-#define BIT_DIS_ATIM_VAP5 BIT(5)
-#define BIT_DIS_ATIM_VAP4 BIT(4)
-#define BIT_DIS_ATIM_VAP3 BIT(3)
-#define BIT_DIS_ATIM_VAP2 BIT(2)
-#define BIT_DIS_ATIM_VAP1 BIT(1)
-#define BIT_DIS_ATIM_ROOT BIT(0)
-
-/* 2 REG_EARLY_128US				(Offset 0x05B1) */
-
-#define BIT_SHIFT_TSFT_SEL_TIMER1 3
-#define BIT_MASK_TSFT_SEL_TIMER1 0x7
-#define BIT_TSFT_SEL_TIMER1(x)                                                 \
-	(((x) & BIT_MASK_TSFT_SEL_TIMER1) << BIT_SHIFT_TSFT_SEL_TIMER1)
-#define BIT_GET_TSFT_SEL_TIMER1(x)                                             \
-	(((x) >> BIT_SHIFT_TSFT_SEL_TIMER1) & BIT_MASK_TSFT_SEL_TIMER1)
-
-#define BIT_SHIFT_EARLY_128US 0
-#define BIT_MASK_EARLY_128US 0x7
-#define BIT_EARLY_128US(x)                                                     \
-	(((x) & BIT_MASK_EARLY_128US) << BIT_SHIFT_EARLY_128US)
-#define BIT_GET_EARLY_128US(x)                                                 \
-	(((x) >> BIT_SHIFT_EARLY_128US) & BIT_MASK_EARLY_128US)
-
-/* 2 REG_P2PPS1_CTRL				(Offset 0x05B2) */
-
-#define BIT_P2P1_CTW_ALLSTASLEEP BIT(7)
-#define BIT_P2P1_OFF_DISTX_EN BIT(6)
-#define BIT_P2P1_PWR_MGT_EN BIT(5)
-#define BIT_P2P1_NOA1_EN BIT(2)
-#define BIT_P2P1_NOA0_EN BIT(1)
-
-/* 2 REG_P2PPS2_CTRL				(Offset 0x05B3) */
-
-#define BIT_P2P2_CTW_ALLSTASLEEP BIT(7)
-#define BIT_P2P2_OFF_DISTX_EN BIT(6)
-#define BIT_P2P2_PWR_MGT_EN BIT(5)
-#define BIT_P2P2_NOA1_EN BIT(2)
-#define BIT_P2P2_NOA0_EN BIT(1)
-
-/* 2 REG_TIMER0_SRC_SEL			(Offset 0x05B4) */
-
-#define BIT_SHIFT_SYNC_CLI_SEL 4
-#define BIT_MASK_SYNC_CLI_SEL 0x7
-#define BIT_SYNC_CLI_SEL(x)                                                    \
-	(((x) & BIT_MASK_SYNC_CLI_SEL) << BIT_SHIFT_SYNC_CLI_SEL)
-#define BIT_GET_SYNC_CLI_SEL(x)                                                \
-	(((x) >> BIT_SHIFT_SYNC_CLI_SEL) & BIT_MASK_SYNC_CLI_SEL)
-
-#define BIT_SHIFT_TSFT_SEL_TIMER0 0
-#define BIT_MASK_TSFT_SEL_TIMER0 0x7
-#define BIT_TSFT_SEL_TIMER0(x)                                                 \
-	(((x) & BIT_MASK_TSFT_SEL_TIMER0) << BIT_SHIFT_TSFT_SEL_TIMER0)
-#define BIT_GET_TSFT_SEL_TIMER0(x)                                             \
-	(((x) >> BIT_SHIFT_TSFT_SEL_TIMER0) & BIT_MASK_TSFT_SEL_TIMER0)
-
-/* 2 REG_NOA_UNIT_SEL			(Offset 0x05B5) */
-
-#define BIT_SHIFT_NOA_UNIT2_SEL 8
-#define BIT_MASK_NOA_UNIT2_SEL 0x7
-#define BIT_NOA_UNIT2_SEL(x)                                                   \
-	(((x) & BIT_MASK_NOA_UNIT2_SEL) << BIT_SHIFT_NOA_UNIT2_SEL)
-#define BIT_GET_NOA_UNIT2_SEL(x)                                               \
-	(((x) >> BIT_SHIFT_NOA_UNIT2_SEL) & BIT_MASK_NOA_UNIT2_SEL)
-
-#define BIT_SHIFT_NOA_UNIT1_SEL 4
-#define BIT_MASK_NOA_UNIT1_SEL 0x7
-#define BIT_NOA_UNIT1_SEL(x)                                                   \
-	(((x) & BIT_MASK_NOA_UNIT1_SEL) << BIT_SHIFT_NOA_UNIT1_SEL)
-#define BIT_GET_NOA_UNIT1_SEL(x)                                               \
-	(((x) >> BIT_SHIFT_NOA_UNIT1_SEL) & BIT_MASK_NOA_UNIT1_SEL)
-
-#define BIT_SHIFT_NOA_UNIT0_SEL 0
-#define BIT_MASK_NOA_UNIT0_SEL 0x7
-#define BIT_NOA_UNIT0_SEL(x)                                                   \
-	(((x) & BIT_MASK_NOA_UNIT0_SEL) << BIT_SHIFT_NOA_UNIT0_SEL)
-#define BIT_GET_NOA_UNIT0_SEL(x)                                               \
-	(((x) >> BIT_SHIFT_NOA_UNIT0_SEL) & BIT_MASK_NOA_UNIT0_SEL)
-
-/* 2 REG_P2POFF_DIS_TXTIME			(Offset 0x05B7) */
-
-#define BIT_SHIFT_P2POFF_DIS_TXTIME 0
-#define BIT_MASK_P2POFF_DIS_TXTIME 0xff
-#define BIT_P2POFF_DIS_TXTIME(x)                                               \
-	(((x) & BIT_MASK_P2POFF_DIS_TXTIME) << BIT_SHIFT_P2POFF_DIS_TXTIME)
-#define BIT_GET_P2POFF_DIS_TXTIME(x)                                           \
-	(((x) >> BIT_SHIFT_P2POFF_DIS_TXTIME) & BIT_MASK_P2POFF_DIS_TXTIME)
-
-/* 2 REG_MBSSID_BCN_SPACE2			(Offset 0x05B8) */
-
-#define BIT_SHIFT_BCN_SPACE_CLINT2 16
-#define BIT_MASK_BCN_SPACE_CLINT2 0xfff
-#define BIT_BCN_SPACE_CLINT2(x)                                                \
-	(((x) & BIT_MASK_BCN_SPACE_CLINT2) << BIT_SHIFT_BCN_SPACE_CLINT2)
-#define BIT_GET_BCN_SPACE_CLINT2(x)                                            \
-	(((x) >> BIT_SHIFT_BCN_SPACE_CLINT2) & BIT_MASK_BCN_SPACE_CLINT2)
-
-#define BIT_SHIFT_BCN_SPACE_CLINT1 0
-#define BIT_MASK_BCN_SPACE_CLINT1 0xfff
-#define BIT_BCN_SPACE_CLINT1(x)                                                \
-	(((x) & BIT_MASK_BCN_SPACE_CLINT1) << BIT_SHIFT_BCN_SPACE_CLINT1)
-#define BIT_GET_BCN_SPACE_CLINT1(x)                                            \
-	(((x) >> BIT_SHIFT_BCN_SPACE_CLINT1) & BIT_MASK_BCN_SPACE_CLINT1)
-
-/* 2 REG_MBSSID_BCN_SPACE3			(Offset 0x05BC) */
-
-#define BIT_SHIFT_SUB_BCN_SPACE 16
-#define BIT_MASK_SUB_BCN_SPACE 0xff
-#define BIT_SUB_BCN_SPACE(x)                                                   \
-	(((x) & BIT_MASK_SUB_BCN_SPACE) << BIT_SHIFT_SUB_BCN_SPACE)
-#define BIT_GET_SUB_BCN_SPACE(x)                                               \
-	(((x) >> BIT_SHIFT_SUB_BCN_SPACE) & BIT_MASK_SUB_BCN_SPACE)
-
-/* 2 REG_MBSSID_BCN_SPACE3			(Offset 0x05BC) */
-
-#define BIT_SHIFT_BCN_SPACE_CLINT3 0
-#define BIT_MASK_BCN_SPACE_CLINT3 0xfff
-#define BIT_BCN_SPACE_CLINT3(x)                                                \
-	(((x) & BIT_MASK_BCN_SPACE_CLINT3) << BIT_SHIFT_BCN_SPACE_CLINT3)
-#define BIT_GET_BCN_SPACE_CLINT3(x)                                            \
-	(((x) >> BIT_SHIFT_BCN_SPACE_CLINT3) & BIT_MASK_BCN_SPACE_CLINT3)
-
-/* 2 REG_ACMHWCTRL				(Offset 0x05C0) */
-
-#define BIT_BEQ_ACM_STATUS BIT(7)
-#define BIT_VIQ_ACM_STATUS BIT(6)
-#define BIT_VOQ_ACM_STATUS BIT(5)
-#define BIT_BEQ_ACM_EN BIT(3)
-#define BIT_VIQ_ACM_EN BIT(2)
-#define BIT_VOQ_ACM_EN BIT(1)
-#define BIT_ACMHWEN BIT(0)
-
-/* 2 REG_ACMRSTCTRL				(Offset 0x05C1) */
-
-#define BIT_BE_ACM_RESET_USED_TIME BIT(2)
-#define BIT_VI_ACM_RESET_USED_TIME BIT(1)
-#define BIT_VO_ACM_RESET_USED_TIME BIT(0)
-
-/* 2 REG_ACMAVG				(Offset 0x05C2) */
-
-#define BIT_SHIFT_AVGPERIOD 0
-#define BIT_MASK_AVGPERIOD 0xffff
-#define BIT_AVGPERIOD(x) (((x) & BIT_MASK_AVGPERIOD) << BIT_SHIFT_AVGPERIOD)
-#define BIT_GET_AVGPERIOD(x) (((x) >> BIT_SHIFT_AVGPERIOD) & BIT_MASK_AVGPERIOD)
-
-/* 2 REG_VO_ADMTIME				(Offset 0x05C4) */
-
-#define BIT_SHIFT_VO_ADMITTED_TIME 0
-#define BIT_MASK_VO_ADMITTED_TIME 0xffff
-#define BIT_VO_ADMITTED_TIME(x)                                                \
-	(((x) & BIT_MASK_VO_ADMITTED_TIME) << BIT_SHIFT_VO_ADMITTED_TIME)
-#define BIT_GET_VO_ADMITTED_TIME(x)                                            \
-	(((x) >> BIT_SHIFT_VO_ADMITTED_TIME) & BIT_MASK_VO_ADMITTED_TIME)
-
-/* 2 REG_VI_ADMTIME				(Offset 0x05C6) */
-
-#define BIT_SHIFT_VI_ADMITTED_TIME 0
-#define BIT_MASK_VI_ADMITTED_TIME 0xffff
-#define BIT_VI_ADMITTED_TIME(x)                                                \
-	(((x) & BIT_MASK_VI_ADMITTED_TIME) << BIT_SHIFT_VI_ADMITTED_TIME)
-#define BIT_GET_VI_ADMITTED_TIME(x)                                            \
-	(((x) >> BIT_SHIFT_VI_ADMITTED_TIME) & BIT_MASK_VI_ADMITTED_TIME)
-
-/* 2 REG_BE_ADMTIME				(Offset 0x05C8) */
-
-#define BIT_SHIFT_BE_ADMITTED_TIME 0
-#define BIT_MASK_BE_ADMITTED_TIME 0xffff
-#define BIT_BE_ADMITTED_TIME(x)                                                \
-	(((x) & BIT_MASK_BE_ADMITTED_TIME) << BIT_SHIFT_BE_ADMITTED_TIME)
-#define BIT_GET_BE_ADMITTED_TIME(x)                                            \
-	(((x) >> BIT_SHIFT_BE_ADMITTED_TIME) & BIT_MASK_BE_ADMITTED_TIME)
-
-/* 2 REG_EDCA_RANDOM_GEN			(Offset 0x05CC) */
-
-#define BIT_SHIFT_RANDOM_GEN 0
-#define BIT_MASK_RANDOM_GEN 0xffffff
-#define BIT_RANDOM_GEN(x) (((x) & BIT_MASK_RANDOM_GEN) << BIT_SHIFT_RANDOM_GEN)
-#define BIT_GET_RANDOM_GEN(x)                                                  \
-	(((x) >> BIT_SHIFT_RANDOM_GEN) & BIT_MASK_RANDOM_GEN)
-
-/* 2 REG_TXCMD_NOA_SEL			(Offset 0x05CF) */
-
-#define BIT_SHIFT_NOA_SEL 4
-#define BIT_MASK_NOA_SEL 0x7
-#define BIT_NOA_SEL(x) (((x) & BIT_MASK_NOA_SEL) << BIT_SHIFT_NOA_SEL)
-#define BIT_GET_NOA_SEL(x) (((x) >> BIT_SHIFT_NOA_SEL) & BIT_MASK_NOA_SEL)
-
-/* 2 REG_TXCMD_NOA_SEL			(Offset 0x05CF) */
-
-#define BIT_SHIFT_TXCMD_SEG_SEL 0
-#define BIT_MASK_TXCMD_SEG_SEL 0xf
-#define BIT_TXCMD_SEG_SEL(x)                                                   \
-	(((x) & BIT_MASK_TXCMD_SEG_SEL) << BIT_SHIFT_TXCMD_SEG_SEL)
-#define BIT_GET_TXCMD_SEG_SEL(x)                                               \
-	(((x) >> BIT_SHIFT_TXCMD_SEG_SEL) & BIT_MASK_TXCMD_SEG_SEL)
-
-/* 2 REG_NOA_PARAM				(Offset 0x05E0) */
-
-#define BIT_SHIFT_NOA_COUNT (96 & CPU_OPT_WIDTH)
-#define BIT_MASK_NOA_COUNT 0xff
-#define BIT_NOA_COUNT(x) (((x) & BIT_MASK_NOA_COUNT) << BIT_SHIFT_NOA_COUNT)
-#define BIT_GET_NOA_COUNT(x) (((x) >> BIT_SHIFT_NOA_COUNT) & BIT_MASK_NOA_COUNT)
-
-#define BIT_SHIFT_NOA_START_TIME (64 & CPU_OPT_WIDTH)
-#define BIT_MASK_NOA_START_TIME 0xffffffffL
-#define BIT_NOA_START_TIME(x)                                                  \
-	(((x) & BIT_MASK_NOA_START_TIME) << BIT_SHIFT_NOA_START_TIME)
-#define BIT_GET_NOA_START_TIME(x)                                              \
-	(((x) >> BIT_SHIFT_NOA_START_TIME) & BIT_MASK_NOA_START_TIME)
-
-#define BIT_SHIFT_NOA_INTERVAL (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_NOA_INTERVAL 0xffffffffL
-#define BIT_NOA_INTERVAL(x)                                                    \
-	(((x) & BIT_MASK_NOA_INTERVAL) << BIT_SHIFT_NOA_INTERVAL)
-#define BIT_GET_NOA_INTERVAL(x)                                                \
-	(((x) >> BIT_SHIFT_NOA_INTERVAL) & BIT_MASK_NOA_INTERVAL)
-
-#define BIT_SHIFT_NOA_DURATION 0
-#define BIT_MASK_NOA_DURATION 0xffffffffL
-#define BIT_NOA_DURATION(x)                                                    \
-	(((x) & BIT_MASK_NOA_DURATION) << BIT_SHIFT_NOA_DURATION)
-#define BIT_GET_NOA_DURATION(x)                                                \
-	(((x) >> BIT_SHIFT_NOA_DURATION) & BIT_MASK_NOA_DURATION)
-
-/* 2 REG_P2P_RST				(Offset 0x05F0) */
-
-#define BIT_P2P2_PWR_RST1 BIT(5)
-#define BIT_P2P2_PWR_RST0 BIT(4)
-#define BIT_P2P1_PWR_RST1 BIT(3)
-#define BIT_P2P1_PWR_RST0 BIT(2)
-#define BIT_P2P_PWR_RST1_V1 BIT(1)
-#define BIT_P2P_PWR_RST0_V1 BIT(0)
-
-/* 2 REG_SCHEDULER_RST			(Offset 0x05F1) */
-
-#define BIT_SYNC_CLI BIT(1)
-#define BIT_SCHEDULER_RST_V1 BIT(0)
-
-/* 2 REG_SCH_TXCMD				(Offset 0x05F8) */
-
-#define BIT_SHIFT_SCH_TXCMD 0
-#define BIT_MASK_SCH_TXCMD 0xffffffffL
-#define BIT_SCH_TXCMD(x) (((x) & BIT_MASK_SCH_TXCMD) << BIT_SHIFT_SCH_TXCMD)
-#define BIT_GET_SCH_TXCMD(x) (((x) >> BIT_SHIFT_SCH_TXCMD) & BIT_MASK_SCH_TXCMD)
-
-/* 2 REG_WMAC_CR				(Offset 0x0600) */
-
-#define BIT_IC_MACPHY_M BIT(0)
-
-/* 2 REG_WMAC_FWPKT_CR			(Offset 0x0601) */
-
-#define BIT_FWEN BIT(7)
-
-/* 2 REG_WMAC_FWPKT_CR			(Offset 0x0601) */
-
-#define BIT_PHYSTS_PKT_CTRL BIT(6)
-
-/* 2 REG_WMAC_FWPKT_CR			(Offset 0x0601) */
-
-#define BIT_APPHDR_MIDSRCH_FAIL BIT(4)
-#define BIT_FWPARSING_EN BIT(3)
-
-#define BIT_SHIFT_APPEND_MHDR_LEN 0
-#define BIT_MASK_APPEND_MHDR_LEN 0x7
-#define BIT_APPEND_MHDR_LEN(x)                                                 \
-	(((x) & BIT_MASK_APPEND_MHDR_LEN) << BIT_SHIFT_APPEND_MHDR_LEN)
-#define BIT_GET_APPEND_MHDR_LEN(x)                                             \
-	(((x) >> BIT_SHIFT_APPEND_MHDR_LEN) & BIT_MASK_APPEND_MHDR_LEN)
-
-/* 2 REG_TCR					(Offset 0x0604) */
-
-#define BIT_WMAC_EN_RTS_ADDR BIT(31)
-#define BIT_WMAC_DISABLE_CCK BIT(30)
-#define BIT_WMAC_RAW_LEN BIT(29)
-#define BIT_WMAC_NOTX_IN_RXNDP BIT(28)
-#define BIT_WMAC_EN_EOF BIT(27)
-#define BIT_WMAC_BF_SEL BIT(26)
-#define BIT_WMAC_ANTMODE_SEL BIT(25)
-
-/* 2 REG_TCR					(Offset 0x0604) */
-
-#define BIT_WMAC_TCRPWRMGT_HWCTL BIT(24)
-
-/* 2 REG_TCR					(Offset 0x0604) */
-
-#define BIT_WMAC_SMOOTH_VAL BIT(23)
-
-/* 2 REG_TCR					(Offset 0x0604) */
-
-#define BIT_FETCH_MPDU_AFTER_WSEC_RDY BIT(20)
-
-/* 2 REG_TCR					(Offset 0x0604) */
-
-#define BIT_WMAC_TCR_EN_20MST BIT(19)
-#define BIT_WMAC_DIS_SIGTA BIT(18)
-#define BIT_WMAC_DIS_A2B0 BIT(17)
-#define BIT_WMAC_MSK_SIGBCRC BIT(16)
-
-/* 2 REG_TCR					(Offset 0x0604) */
-
-#define BIT_WMAC_TCR_ERRSTEN_3 BIT(15)
-#define BIT_WMAC_TCR_ERRSTEN_2 BIT(14)
-#define BIT_WMAC_TCR_ERRSTEN_1 BIT(13)
-#define BIT_WMAC_TCR_ERRSTEN_0 BIT(12)
-#define BIT_WMAC_TCR_TXSK_PERPKT BIT(11)
-#define BIT_ICV BIT(10)
-#define BIT_CFEND_FORMAT BIT(9)
-#define BIT_CRC BIT(8)
-#define BIT_PWRBIT_OW_EN BIT(7)
-#define BIT_PWR_ST BIT(6)
-#define BIT_WMAC_TCR_UPD_TIMIE BIT(5)
-#define BIT_WMAC_TCR_UPD_HGQMD BIT(4)
-
-/* 2 REG_TCR					(Offset 0x0604) */
-
-#define BIT_VHTSIGA1_TXPS BIT(3)
-
-/* 2 REG_TCR					(Offset 0x0604) */
-
-#define BIT_PAD_SEL BIT(2)
-#define BIT_DIS_GCLK BIT(1)
-
-/* 2 REG_RCR					(Offset 0x0608) */
-
-#define BIT_APP_FCS BIT(31)
-#define BIT_APP_MIC BIT(30)
-#define BIT_APP_ICV BIT(29)
-#define BIT_APP_PHYSTS BIT(28)
-#define BIT_APP_BASSN BIT(27)
-
-/* 2 REG_RCR					(Offset 0x0608) */
-
-#define BIT_VHT_DACK BIT(26)
-
-/* 2 REG_RCR					(Offset 0x0608) */
-
-#define BIT_TCPOFLD_EN BIT(25)
-#define BIT_ENMBID BIT(24)
-#define BIT_LSIGEN BIT(23)
-#define BIT_MFBEN BIT(22)
-#define BIT_DISCHKPPDLLEN BIT(21)
-#define BIT_PKTCTL_DLEN BIT(20)
-#define BIT_TIM_PARSER_EN BIT(18)
-#define BIT_BC_MD_EN BIT(17)
-#define BIT_UC_MD_EN BIT(16)
-#define BIT_RXSK_PERPKT BIT(15)
-#define BIT_HTC_LOC_CTRL BIT(14)
-
-/* 2 REG_RCR					(Offset 0x0608) */
-
-#define BIT_RPFM_CAM_ENABLE BIT(12)
-
-/* 2 REG_RCR					(Offset 0x0608) */
-
-#define BIT_TA_BCN BIT(11)
-
-/* 2 REG_RCR					(Offset 0x0608) */
-
-#define BIT_DISDECMYPKT BIT(10)
-#define BIT_AICV BIT(9)
-#define BIT_ACRC32 BIT(8)
-#define BIT_CBSSID_BCN BIT(7)
-#define BIT_CBSSID_DATA BIT(6)
-#define BIT_APWRMGT BIT(5)
-#define BIT_ADD3 BIT(4)
-#define BIT_AB BIT(3)
-#define BIT_AM BIT(2)
-#define BIT_APM BIT(1)
-#define BIT_AAP BIT(0)
-
-/* 2 REG_RX_PKT_LIMIT			(Offset 0x060C) */
-
-#define BIT_SHIFT_RXPKTLMT 0
-#define BIT_MASK_RXPKTLMT 0x3f
-#define BIT_RXPKTLMT(x) (((x) & BIT_MASK_RXPKTLMT) << BIT_SHIFT_RXPKTLMT)
-#define BIT_GET_RXPKTLMT(x) (((x) >> BIT_SHIFT_RXPKTLMT) & BIT_MASK_RXPKTLMT)
-
-/* 2 REG_RX_DLK_TIME				(Offset 0x060D) */
-
-#define BIT_SHIFT_RX_DLK_TIME 0
-#define BIT_MASK_RX_DLK_TIME 0xff
-#define BIT_RX_DLK_TIME(x)                                                     \
-	(((x) & BIT_MASK_RX_DLK_TIME) << BIT_SHIFT_RX_DLK_TIME)
-#define BIT_GET_RX_DLK_TIME(x)                                                 \
-	(((x) >> BIT_SHIFT_RX_DLK_TIME) & BIT_MASK_RX_DLK_TIME)
-
-/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */
-
-#define BIT_DATA_RPFM15EN BIT(15)
-#define BIT_DATA_RPFM14EN BIT(14)
-#define BIT_DATA_RPFM13EN BIT(13)
-#define BIT_DATA_RPFM12EN BIT(12)
-#define BIT_DATA_RPFM11EN BIT(11)
-#define BIT_DATA_RPFM10EN BIT(10)
-#define BIT_DATA_RPFM9EN BIT(9)
-#define BIT_DATA_RPFM8EN BIT(8)
-
-/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */
-
-#define BIT_PHYSTS_PER_PKT_MODE BIT(7)
-#define BIT_DATA_RPFM7EN BIT(7)
-
-/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */
-
-#define BIT_DATA_RPFM6EN BIT(6)
-
-/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */
-
-#define BIT_DATA_RPFM5EN BIT(5)
-#define BIT_DATA_RPFM4EN BIT(4)
-#define BIT_DATA_RPFM3EN BIT(3)
-#define BIT_DATA_RPFM2EN BIT(2)
-#define BIT_DATA_RPFM1EN BIT(1)
-
-/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */
-
-#define BIT_SHIFT_DRVINFO_SZ_V1 0
-#define BIT_MASK_DRVINFO_SZ_V1 0xf
-#define BIT_DRVINFO_SZ_V1(x)                                                   \
-	(((x) & BIT_MASK_DRVINFO_SZ_V1) << BIT_SHIFT_DRVINFO_SZ_V1)
-#define BIT_GET_DRVINFO_SZ_V1(x)                                               \
-	(((x) >> BIT_SHIFT_DRVINFO_SZ_V1) & BIT_MASK_DRVINFO_SZ_V1)
-
-/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */
-
-#define BIT_DATA_RPFM0EN BIT(0)
-
-/* 2 REG_MACID				(Offset 0x0610) */
-
-#define BIT_SHIFT_MACID 0
-#define BIT_MASK_MACID 0xffffffffffffL
-#define BIT_MACID(x) (((x) & BIT_MASK_MACID) << BIT_SHIFT_MACID)
-#define BIT_GET_MACID(x) (((x) >> BIT_SHIFT_MACID) & BIT_MASK_MACID)
-
-/* 2 REG_BSSID				(Offset 0x0618) */
-
-#define BIT_SHIFT_BSSID 0
-#define BIT_MASK_BSSID 0xffffffffffffL
-#define BIT_BSSID(x) (((x) & BIT_MASK_BSSID) << BIT_SHIFT_BSSID)
-#define BIT_GET_BSSID(x) (((x) >> BIT_SHIFT_BSSID) & BIT_MASK_BSSID)
-
-/* 2 REG_MAR					(Offset 0x0620) */
-
-#define BIT_SHIFT_MAR 0
-#define BIT_MASK_MAR 0xffffffffffffffffL
-#define BIT_MAR(x) (((x) & BIT_MASK_MAR) << BIT_SHIFT_MAR)
-#define BIT_GET_MAR(x) (((x) >> BIT_SHIFT_MAR) & BIT_MASK_MAR)
-
-/* 2 REG_MBIDCAMCFG_1			(Offset 0x0628) */
-
-#define BIT_SHIFT_MBIDCAM_RWDATA_L 0
-#define BIT_MASK_MBIDCAM_RWDATA_L 0xffffffffL
-#define BIT_MBIDCAM_RWDATA_L(x)                                                \
-	(((x) & BIT_MASK_MBIDCAM_RWDATA_L) << BIT_SHIFT_MBIDCAM_RWDATA_L)
-#define BIT_GET_MBIDCAM_RWDATA_L(x)                                            \
-	(((x) >> BIT_SHIFT_MBIDCAM_RWDATA_L) & BIT_MASK_MBIDCAM_RWDATA_L)
-
-/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */
-
-#define BIT_MBIDCAM_POLL BIT(31)
-#define BIT_MBIDCAM_WT_EN BIT(30)
-
-#define BIT_SHIFT_MBIDCAM_ADDR 24
-#define BIT_MASK_MBIDCAM_ADDR 0x1f
-#define BIT_MBIDCAM_ADDR(x)                                                    \
-	(((x) & BIT_MASK_MBIDCAM_ADDR) << BIT_SHIFT_MBIDCAM_ADDR)
-#define BIT_GET_MBIDCAM_ADDR(x)                                                \
-	(((x) >> BIT_SHIFT_MBIDCAM_ADDR) & BIT_MASK_MBIDCAM_ADDR)
-
-#define BIT_MBIDCAM_VALID BIT(23)
-#define BIT_LSIC_TXOP_EN BIT(17)
-
-/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */
-
-#define BIT_CTS_EN BIT(16)
-
-/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */
-
-#define BIT_SHIFT_MBIDCAM_RWDATA_H 0
-#define BIT_MASK_MBIDCAM_RWDATA_H 0xffff
-#define BIT_MBIDCAM_RWDATA_H(x)                                                \
-	(((x) & BIT_MASK_MBIDCAM_RWDATA_H) << BIT_SHIFT_MBIDCAM_RWDATA_H)
-#define BIT_GET_MBIDCAM_RWDATA_H(x)                                            \
-	(((x) >> BIT_SHIFT_MBIDCAM_RWDATA_H) & BIT_MASK_MBIDCAM_RWDATA_H)
-
-/* 2 REG_WMAC_TCR_TSFT_OFS			(Offset 0x0630) */
-
-#define BIT_SHIFT_WMAC_TCR_TSFT_OFS 0
-#define BIT_MASK_WMAC_TCR_TSFT_OFS 0xffff
-#define BIT_WMAC_TCR_TSFT_OFS(x)                                               \
-	(((x) & BIT_MASK_WMAC_TCR_TSFT_OFS) << BIT_SHIFT_WMAC_TCR_TSFT_OFS)
-#define BIT_GET_WMAC_TCR_TSFT_OFS(x)                                           \
-	(((x) >> BIT_SHIFT_WMAC_TCR_TSFT_OFS) & BIT_MASK_WMAC_TCR_TSFT_OFS)
-
-/* 2 REG_UDF_THSD				(Offset 0x0632) */
-
-#define BIT_SHIFT_UDF_THSD 0
-#define BIT_MASK_UDF_THSD 0xff
-#define BIT_UDF_THSD(x) (((x) & BIT_MASK_UDF_THSD) << BIT_SHIFT_UDF_THSD)
-#define BIT_GET_UDF_THSD(x) (((x) >> BIT_SHIFT_UDF_THSD) & BIT_MASK_UDF_THSD)
-
-/* 2 REG_ZLD_NUM				(Offset 0x0633) */
-
-#define BIT_SHIFT_ZLD_NUM 0
-#define BIT_MASK_ZLD_NUM 0xff
-#define BIT_ZLD_NUM(x) (((x) & BIT_MASK_ZLD_NUM) << BIT_SHIFT_ZLD_NUM)
-#define BIT_GET_ZLD_NUM(x) (((x) >> BIT_SHIFT_ZLD_NUM) & BIT_MASK_ZLD_NUM)
-
-/* 2 REG_STMP_THSD				(Offset 0x0634) */
-
-#define BIT_SHIFT_STMP_THSD 0
-#define BIT_MASK_STMP_THSD 0xff
-#define BIT_STMP_THSD(x) (((x) & BIT_MASK_STMP_THSD) << BIT_SHIFT_STMP_THSD)
-#define BIT_GET_STMP_THSD(x) (((x) >> BIT_SHIFT_STMP_THSD) & BIT_MASK_STMP_THSD)
-
-/* 2 REG_WMAC_TXTIMEOUT			(Offset 0x0635) */
-
-#define BIT_SHIFT_WMAC_TXTIMEOUT 0
-#define BIT_MASK_WMAC_TXTIMEOUT 0xff
-#define BIT_WMAC_TXTIMEOUT(x)                                                  \
-	(((x) & BIT_MASK_WMAC_TXTIMEOUT) << BIT_SHIFT_WMAC_TXTIMEOUT)
-#define BIT_GET_WMAC_TXTIMEOUT(x)                                              \
-	(((x) >> BIT_SHIFT_WMAC_TXTIMEOUT) & BIT_MASK_WMAC_TXTIMEOUT)
-
-/* 2 REG_MCU_TEST_2_V1			(Offset 0x0636) */
-
-#define BIT_SHIFT_MCU_RSVD_2_V1 0
-#define BIT_MASK_MCU_RSVD_2_V1 0xffff
-#define BIT_MCU_RSVD_2_V1(x)                                                   \
-	(((x) & BIT_MASK_MCU_RSVD_2_V1) << BIT_SHIFT_MCU_RSVD_2_V1)
-#define BIT_GET_MCU_RSVD_2_V1(x)                                               \
-	(((x) >> BIT_SHIFT_MCU_RSVD_2_V1) & BIT_MASK_MCU_RSVD_2_V1)
-
-/* 2 REG_USTIME_EDCA				(Offset 0x0638) */
-
-#define BIT_SHIFT_USTIME_EDCA_V1 0
-#define BIT_MASK_USTIME_EDCA_V1 0x1ff
-#define BIT_USTIME_EDCA_V1(x)                                                  \
-	(((x) & BIT_MASK_USTIME_EDCA_V1) << BIT_SHIFT_USTIME_EDCA_V1)
-#define BIT_GET_USTIME_EDCA_V1(x)                                              \
-	(((x) >> BIT_SHIFT_USTIME_EDCA_V1) & BIT_MASK_USTIME_EDCA_V1)
-
-/* 2 REG_MAC_SPEC_SIFS			(Offset 0x063A) */
-
-#define BIT_SHIFT_SPEC_SIFS_OFDM 8
-#define BIT_MASK_SPEC_SIFS_OFDM 0xff
-#define BIT_SPEC_SIFS_OFDM(x)                                                  \
-	(((x) & BIT_MASK_SPEC_SIFS_OFDM) << BIT_SHIFT_SPEC_SIFS_OFDM)
-#define BIT_GET_SPEC_SIFS_OFDM(x)                                              \
-	(((x) >> BIT_SHIFT_SPEC_SIFS_OFDM) & BIT_MASK_SPEC_SIFS_OFDM)
-
-#define BIT_SHIFT_SPEC_SIFS_CCK 0
-#define BIT_MASK_SPEC_SIFS_CCK 0xff
-#define BIT_SPEC_SIFS_CCK(x)                                                   \
-	(((x) & BIT_MASK_SPEC_SIFS_CCK) << BIT_SHIFT_SPEC_SIFS_CCK)
-#define BIT_GET_SPEC_SIFS_CCK(x)                                               \
-	(((x) >> BIT_SHIFT_SPEC_SIFS_CCK) & BIT_MASK_SPEC_SIFS_CCK)
-
-/* 2 REG_RESP_SIFS_CCK			(Offset 0x063C) */
-
-#define BIT_SHIFT_SIFS_R2T_CCK 8
-#define BIT_MASK_SIFS_R2T_CCK 0xff
-#define BIT_SIFS_R2T_CCK(x)                                                    \
-	(((x) & BIT_MASK_SIFS_R2T_CCK) << BIT_SHIFT_SIFS_R2T_CCK)
-#define BIT_GET_SIFS_R2T_CCK(x)                                                \
-	(((x) >> BIT_SHIFT_SIFS_R2T_CCK) & BIT_MASK_SIFS_R2T_CCK)
-
-#define BIT_SHIFT_SIFS_T2T_CCK 0
-#define BIT_MASK_SIFS_T2T_CCK 0xff
-#define BIT_SIFS_T2T_CCK(x)                                                    \
-	(((x) & BIT_MASK_SIFS_T2T_CCK) << BIT_SHIFT_SIFS_T2T_CCK)
-#define BIT_GET_SIFS_T2T_CCK(x)                                                \
-	(((x) >> BIT_SHIFT_SIFS_T2T_CCK) & BIT_MASK_SIFS_T2T_CCK)
-
-/* 2 REG_RESP_SIFS_OFDM			(Offset 0x063E) */
-
-#define BIT_SHIFT_SIFS_R2T_OFDM 8
-#define BIT_MASK_SIFS_R2T_OFDM 0xff
-#define BIT_SIFS_R2T_OFDM(x)                                                   \
-	(((x) & BIT_MASK_SIFS_R2T_OFDM) << BIT_SHIFT_SIFS_R2T_OFDM)
-#define BIT_GET_SIFS_R2T_OFDM(x)                                               \
-	(((x) >> BIT_SHIFT_SIFS_R2T_OFDM) & BIT_MASK_SIFS_R2T_OFDM)
-
-#define BIT_SHIFT_SIFS_T2T_OFDM 0
-#define BIT_MASK_SIFS_T2T_OFDM 0xff
-#define BIT_SIFS_T2T_OFDM(x)                                                   \
-	(((x) & BIT_MASK_SIFS_T2T_OFDM) << BIT_SHIFT_SIFS_T2T_OFDM)
-#define BIT_GET_SIFS_T2T_OFDM(x)                                               \
-	(((x) >> BIT_SHIFT_SIFS_T2T_OFDM) & BIT_MASK_SIFS_T2T_OFDM)
-
-/* 2 REG_ACKTO				(Offset 0x0640) */
-
-#define BIT_SHIFT_ACKTO 0
-#define BIT_MASK_ACKTO 0xff
-#define BIT_ACKTO(x) (((x) & BIT_MASK_ACKTO) << BIT_SHIFT_ACKTO)
-#define BIT_GET_ACKTO(x) (((x) >> BIT_SHIFT_ACKTO) & BIT_MASK_ACKTO)
-
-/* 2 REG_CTS2TO				(Offset 0x0641) */
-
-#define BIT_SHIFT_CTS2TO 0
-#define BIT_MASK_CTS2TO 0xff
-#define BIT_CTS2TO(x) (((x) & BIT_MASK_CTS2TO) << BIT_SHIFT_CTS2TO)
-#define BIT_GET_CTS2TO(x) (((x) >> BIT_SHIFT_CTS2TO) & BIT_MASK_CTS2TO)
-
-/* 2 REG_EIFS				(Offset 0x0642) */
-
-#define BIT_SHIFT_EIFS 0
-#define BIT_MASK_EIFS 0xffff
-#define BIT_EIFS(x) (((x) & BIT_MASK_EIFS) << BIT_SHIFT_EIFS)
-#define BIT_GET_EIFS(x) (((x) >> BIT_SHIFT_EIFS) & BIT_MASK_EIFS)
-
-/* 2 REG_NAV_CTRL				(Offset 0x0650) */
-
-#define BIT_SHIFT_NAV_UPPER 16
-#define BIT_MASK_NAV_UPPER 0xff
-#define BIT_NAV_UPPER(x) (((x) & BIT_MASK_NAV_UPPER) << BIT_SHIFT_NAV_UPPER)
-#define BIT_GET_NAV_UPPER(x) (((x) >> BIT_SHIFT_NAV_UPPER) & BIT_MASK_NAV_UPPER)
-
-#define BIT_SHIFT_RXMYRTS_NAV 8
-#define BIT_MASK_RXMYRTS_NAV 0xf
-#define BIT_RXMYRTS_NAV(x)                                                     \
-	(((x) & BIT_MASK_RXMYRTS_NAV) << BIT_SHIFT_RXMYRTS_NAV)
-#define BIT_GET_RXMYRTS_NAV(x)                                                 \
-	(((x) >> BIT_SHIFT_RXMYRTS_NAV) & BIT_MASK_RXMYRTS_NAV)
-
-#define BIT_SHIFT_RTSRST 0
-#define BIT_MASK_RTSRST 0xff
-#define BIT_RTSRST(x) (((x) & BIT_MASK_RTSRST) << BIT_SHIFT_RTSRST)
-#define BIT_GET_RTSRST(x) (((x) >> BIT_SHIFT_RTSRST) & BIT_MASK_RTSRST)
-
-/* 2 REG_BACAMCMD				(Offset 0x0654) */
-
-#define BIT_BACAM_POLL BIT(31)
-#define BIT_BACAM_RST BIT(17)
-#define BIT_BACAM_RW BIT(16)
-
-#define BIT_SHIFT_TXSBM 14
-#define BIT_MASK_TXSBM 0x3
-#define BIT_TXSBM(x) (((x) & BIT_MASK_TXSBM) << BIT_SHIFT_TXSBM)
-#define BIT_GET_TXSBM(x) (((x) >> BIT_SHIFT_TXSBM) & BIT_MASK_TXSBM)
-
-#define BIT_SHIFT_BACAM_ADDR 0
-#define BIT_MASK_BACAM_ADDR 0x3f
-#define BIT_BACAM_ADDR(x) (((x) & BIT_MASK_BACAM_ADDR) << BIT_SHIFT_BACAM_ADDR)
-#define BIT_GET_BACAM_ADDR(x)                                                  \
-	(((x) >> BIT_SHIFT_BACAM_ADDR) & BIT_MASK_BACAM_ADDR)
-
-/* 2 REG_BACAMCONTENT			(Offset 0x0658) */
-
-#define BIT_SHIFT_BA_CONTENT_H (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_BA_CONTENT_H 0xffffffffL
-#define BIT_BA_CONTENT_H(x)                                                    \
-	(((x) & BIT_MASK_BA_CONTENT_H) << BIT_SHIFT_BA_CONTENT_H)
-#define BIT_GET_BA_CONTENT_H(x)                                                \
-	(((x) >> BIT_SHIFT_BA_CONTENT_H) & BIT_MASK_BA_CONTENT_H)
-
-#define BIT_SHIFT_BA_CONTENT_L 0
-#define BIT_MASK_BA_CONTENT_L 0xffffffffL
-#define BIT_BA_CONTENT_L(x)                                                    \
-	(((x) & BIT_MASK_BA_CONTENT_L) << BIT_SHIFT_BA_CONTENT_L)
-#define BIT_GET_BA_CONTENT_L(x)                                                \
-	(((x) >> BIT_SHIFT_BA_CONTENT_L) & BIT_MASK_BA_CONTENT_L)
-
-/* 2 REG_LBDLY				(Offset 0x0660) */
-
-#define BIT_SHIFT_LBDLY 0
-#define BIT_MASK_LBDLY 0x1f
-#define BIT_LBDLY(x) (((x) & BIT_MASK_LBDLY) << BIT_SHIFT_LBDLY)
-#define BIT_GET_LBDLY(x) (((x) >> BIT_SHIFT_LBDLY) & BIT_MASK_LBDLY)
-
-/* 2 REG_WMAC_BACAM_RPMEN			(Offset 0x0661) */
-
-#define BIT_SHIFT_BITMAP_SSNBK_COUNTER 2
-#define BIT_MASK_BITMAP_SSNBK_COUNTER 0x3f
-#define BIT_BITMAP_SSNBK_COUNTER(x)                                            \
-	(((x) & BIT_MASK_BITMAP_SSNBK_COUNTER)                                 \
-	 << BIT_SHIFT_BITMAP_SSNBK_COUNTER)
-#define BIT_GET_BITMAP_SSNBK_COUNTER(x)                                        \
-	(((x) >> BIT_SHIFT_BITMAP_SSNBK_COUNTER) &                             \
-	 BIT_MASK_BITMAP_SSNBK_COUNTER)
-
-#define BIT_BITMAP_EN BIT(1)
-
-/* 2 REG_WMAC_BACAM_RPMEN			(Offset 0x0661) */
-
-#define BIT_WMAC_BACAM_RPMEN BIT(0)
-
-/* 2 REG_TX_RX				(Offset 0x0662) */
-
-#define BIT_SHIFT_RXPKT_TYPE 2
-#define BIT_MASK_RXPKT_TYPE 0x3f
-#define BIT_RXPKT_TYPE(x) (((x) & BIT_MASK_RXPKT_TYPE) << BIT_SHIFT_RXPKT_TYPE)
-#define BIT_GET_RXPKT_TYPE(x)                                                  \
-	(((x) >> BIT_SHIFT_RXPKT_TYPE) & BIT_MASK_RXPKT_TYPE)
-
-#define BIT_TXACT_IND BIT(1)
-#define BIT_RXACT_IND BIT(0)
-
-/* 2 REG_WMAC_BITMAP_CTL			(Offset 0x0663) */
-
-#define BIT_BITMAP_VO BIT(7)
-#define BIT_BITMAP_VI BIT(6)
-#define BIT_BITMAP_BE BIT(5)
-#define BIT_BITMAP_BK BIT(4)
-
-#define BIT_SHIFT_BITMAP_CONDITION 2
-#define BIT_MASK_BITMAP_CONDITION 0x3
-#define BIT_BITMAP_CONDITION(x)                                                \
-	(((x) & BIT_MASK_BITMAP_CONDITION) << BIT_SHIFT_BITMAP_CONDITION)
-#define BIT_GET_BITMAP_CONDITION(x)                                            \
-	(((x) >> BIT_SHIFT_BITMAP_CONDITION) & BIT_MASK_BITMAP_CONDITION)
-
-#define BIT_BITMAP_SSNBK_COUNTER_CLR BIT(1)
-#define BIT_BITMAP_FORCE BIT(0)
-
-/* 2 REG_RXERR_RPT				(Offset 0x0664) */
-
-#define BIT_SHIFT_RXERR_RPT_SEL_V1_3_0 28
-#define BIT_MASK_RXERR_RPT_SEL_V1_3_0 0xf
-#define BIT_RXERR_RPT_SEL_V1_3_0(x)                                            \
-	(((x) & BIT_MASK_RXERR_RPT_SEL_V1_3_0)                                 \
-	 << BIT_SHIFT_RXERR_RPT_SEL_V1_3_0)
-#define BIT_GET_RXERR_RPT_SEL_V1_3_0(x)                                        \
-	(((x) >> BIT_SHIFT_RXERR_RPT_SEL_V1_3_0) &                             \
-	 BIT_MASK_RXERR_RPT_SEL_V1_3_0)
-
-/* 2 REG_RXERR_RPT				(Offset 0x0664) */
-
-#define BIT_RXERR_RPT_RST BIT(27)
-
-/* 2 REG_RXERR_RPT				(Offset 0x0664) */
-
-#define BIT_RXERR_RPT_SEL_V1_4 BIT(26)
-
-/* 2 REG_RXERR_RPT				(Offset 0x0664) */
-
-#define BIT_W1S BIT(23)
-
-/* 2 REG_RXERR_RPT				(Offset 0x0664) */
-
-#define BIT_UD_SELECT_BSSID BIT(22)
-
-/* 2 REG_RXERR_RPT				(Offset 0x0664) */
-
-#define BIT_SHIFT_UD_SUB_TYPE 18
-#define BIT_MASK_UD_SUB_TYPE 0xf
-#define BIT_UD_SUB_TYPE(x)                                                     \
-	(((x) & BIT_MASK_UD_SUB_TYPE) << BIT_SHIFT_UD_SUB_TYPE)
-#define BIT_GET_UD_SUB_TYPE(x)                                                 \
-	(((x) >> BIT_SHIFT_UD_SUB_TYPE) & BIT_MASK_UD_SUB_TYPE)
-
-#define BIT_SHIFT_UD_TYPE 16
-#define BIT_MASK_UD_TYPE 0x3
-#define BIT_UD_TYPE(x) (((x) & BIT_MASK_UD_TYPE) << BIT_SHIFT_UD_TYPE)
-#define BIT_GET_UD_TYPE(x) (((x) >> BIT_SHIFT_UD_TYPE) & BIT_MASK_UD_TYPE)
-
-#define BIT_SHIFT_RPT_COUNTER 0
-#define BIT_MASK_RPT_COUNTER 0xffff
-#define BIT_RPT_COUNTER(x)                                                     \
-	(((x) & BIT_MASK_RPT_COUNTER) << BIT_SHIFT_RPT_COUNTER)
-#define BIT_GET_RPT_COUNTER(x)                                                 \
-	(((x) >> BIT_SHIFT_RPT_COUNTER) & BIT_MASK_RPT_COUNTER)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_SHIFT_ACKBA_TYPSEL (60 & CPU_OPT_WIDTH)
-#define BIT_MASK_ACKBA_TYPSEL 0xf
-#define BIT_ACKBA_TYPSEL(x)                                                    \
-	(((x) & BIT_MASK_ACKBA_TYPSEL) << BIT_SHIFT_ACKBA_TYPSEL)
-#define BIT_GET_ACKBA_TYPSEL(x)                                                \
-	(((x) >> BIT_SHIFT_ACKBA_TYPSEL) & BIT_MASK_ACKBA_TYPSEL)
-
-#define BIT_SHIFT_ACKBA_ACKPCHK (56 & CPU_OPT_WIDTH)
-#define BIT_MASK_ACKBA_ACKPCHK 0xf
-#define BIT_ACKBA_ACKPCHK(x)                                                   \
-	(((x) & BIT_MASK_ACKBA_ACKPCHK) << BIT_SHIFT_ACKBA_ACKPCHK)
-#define BIT_GET_ACKBA_ACKPCHK(x)                                               \
-	(((x) >> BIT_SHIFT_ACKBA_ACKPCHK) & BIT_MASK_ACKBA_ACKPCHK)
-
-#define BIT_SHIFT_ACKBAR_TYPESEL (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_ACKBAR_TYPESEL 0xff
-#define BIT_ACKBAR_TYPESEL(x)                                                  \
-	(((x) & BIT_MASK_ACKBAR_TYPESEL) << BIT_SHIFT_ACKBAR_TYPESEL)
-#define BIT_GET_ACKBAR_TYPESEL(x)                                              \
-	(((x) >> BIT_SHIFT_ACKBAR_TYPESEL) & BIT_MASK_ACKBAR_TYPESEL)
-
-#define BIT_SHIFT_ACKBAR_ACKPCHK (44 & CPU_OPT_WIDTH)
-#define BIT_MASK_ACKBAR_ACKPCHK 0xf
-#define BIT_ACKBAR_ACKPCHK(x)                                                  \
-	(((x) & BIT_MASK_ACKBAR_ACKPCHK) << BIT_SHIFT_ACKBAR_ACKPCHK)
-#define BIT_GET_ACKBAR_ACKPCHK(x)                                              \
-	(((x) >> BIT_SHIFT_ACKBAR_ACKPCHK) & BIT_MASK_ACKBAR_ACKPCHK)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_RXBA_IGNOREA2 BIT(42)
-#define BIT_EN_SAVE_ALL_TXOPADDR BIT(41)
-#define BIT_EN_TXCTS_TO_TXOPOWNER_INRXNAV BIT(40)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_DIS_TXBA_AMPDUFCSERR BIT(39)
-#define BIT_DIS_TXBA_RXBARINFULL BIT(38)
-#define BIT_DIS_TXCFE_INFULL BIT(37)
-#define BIT_DIS_TXCTS_INFULL BIT(36)
-#define BIT_EN_TXACKBA_IN_TX_RDG BIT(35)
-#define BIT_EN_TXACKBA_IN_TXOP BIT(34)
-#define BIT_EN_TXCTS_IN_RXNAV BIT(33)
-#define BIT_EN_TXCTS_INTXOP BIT(32)
-#define BIT_BLK_EDCA_BBSLP BIT(31)
-#define BIT_BLK_EDCA_BBSBY BIT(30)
-#define BIT_ACKTO_BLOCK_SCH_EN BIT(27)
-#define BIT_EIFS_BLOCK_SCH_EN BIT(26)
-#define BIT_PLCPCHK_RST_EIFS BIT(25)
-#define BIT_CCA_RST_EIFS BIT(24)
-#define BIT_DIS_UPD_MYRXPKTNAV BIT(23)
-#define BIT_EARLY_TXBA BIT(22)
-
-#define BIT_SHIFT_RESP_CHNBUSY 20
-#define BIT_MASK_RESP_CHNBUSY 0x3
-#define BIT_RESP_CHNBUSY(x)                                                    \
-	(((x) & BIT_MASK_RESP_CHNBUSY) << BIT_SHIFT_RESP_CHNBUSY)
-#define BIT_GET_RESP_CHNBUSY(x)                                                \
-	(((x) >> BIT_SHIFT_RESP_CHNBUSY) & BIT_MASK_RESP_CHNBUSY)
-
-#define BIT_RESP_DCTS_EN BIT(19)
-#define BIT_RESP_DCFE_EN BIT(18)
-#define BIT_RESP_SPLCPEN BIT(17)
-#define BIT_RESP_SGIEN BIT(16)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_RESP_LDPC_EN BIT(15)
-#define BIT_DIS_RESP_ACKINCCA BIT(14)
-#define BIT_DIS_RESP_CTSINCCA BIT(13)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER 10
-#define BIT_MASK_R_WMAC_SECOND_CCA_TIMER 0x7
-#define BIT_R_WMAC_SECOND_CCA_TIMER(x)                                         \
-	(((x) & BIT_MASK_R_WMAC_SECOND_CCA_TIMER)                              \
-	 << BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER)
-#define BIT_GET_R_WMAC_SECOND_CCA_TIMER(x)                                     \
-	(((x) >> BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER) &                          \
-	 BIT_MASK_R_WMAC_SECOND_CCA_TIMER)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_SHIFT_RFMOD 7
-#define BIT_MASK_RFMOD 0x3
-#define BIT_RFMOD(x) (((x) & BIT_MASK_RFMOD) << BIT_SHIFT_RFMOD)
-#define BIT_GET_RFMOD(x) (((x) >> BIT_SHIFT_RFMOD) & BIT_MASK_RFMOD)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_SHIFT_RESP_CTS_DYNBW_SEL 5
-#define BIT_MASK_RESP_CTS_DYNBW_SEL 0x3
-#define BIT_RESP_CTS_DYNBW_SEL(x)                                              \
-	(((x) & BIT_MASK_RESP_CTS_DYNBW_SEL) << BIT_SHIFT_RESP_CTS_DYNBW_SEL)
-#define BIT_GET_RESP_CTS_DYNBW_SEL(x)                                          \
-	(((x) >> BIT_SHIFT_RESP_CTS_DYNBW_SEL) & BIT_MASK_RESP_CTS_DYNBW_SEL)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_DLY_TX_WAIT_RXANTSEL BIT(4)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_TXRESP_BY_RXANTSEL BIT(3)
-
-/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */
-
-#define BIT_SHIFT_ORIG_DCTS_CHK 0
-#define BIT_MASK_ORIG_DCTS_CHK 0x3
-#define BIT_ORIG_DCTS_CHK(x)                                                   \
-	(((x) & BIT_MASK_ORIG_DCTS_CHK) << BIT_SHIFT_ORIG_DCTS_CHK)
-#define BIT_GET_ORIG_DCTS_CHK(x)                                               \
-	(((x) >> BIT_SHIFT_ORIG_DCTS_CHK) & BIT_MASK_ORIG_DCTS_CHK)
-
-/* 2 REG_CAMCMD				(Offset 0x0670) */
-
-#define BIT_SECCAM_POLLING BIT(31)
-#define BIT_SECCAM_CLR BIT(30)
-#define BIT_MFBCAM_CLR BIT(29)
-
-/* 2 REG_CAMCMD				(Offset 0x0670) */
-
-#define BIT_SECCAM_WE BIT(16)
-
-/* 2 REG_CAMCMD				(Offset 0x0670) */
-
-#define BIT_SHIFT_SECCAM_ADDR_V2 0
-#define BIT_MASK_SECCAM_ADDR_V2 0x3ff
-#define BIT_SECCAM_ADDR_V2(x)                                                  \
-	(((x) & BIT_MASK_SECCAM_ADDR_V2) << BIT_SHIFT_SECCAM_ADDR_V2)
-#define BIT_GET_SECCAM_ADDR_V2(x)                                              \
-	(((x) >> BIT_SHIFT_SECCAM_ADDR_V2) & BIT_MASK_SECCAM_ADDR_V2)
-
-/* 2 REG_CAMWRITE				(Offset 0x0674) */
-
-#define BIT_SHIFT_CAMW_DATA 0
-#define BIT_MASK_CAMW_DATA 0xffffffffL
-#define BIT_CAMW_DATA(x) (((x) & BIT_MASK_CAMW_DATA) << BIT_SHIFT_CAMW_DATA)
-#define BIT_GET_CAMW_DATA(x) (((x) >> BIT_SHIFT_CAMW_DATA) & BIT_MASK_CAMW_DATA)
-
-/* 2 REG_CAMREAD				(Offset 0x0678) */
-
-#define BIT_SHIFT_CAMR_DATA 0
-#define BIT_MASK_CAMR_DATA 0xffffffffL
-#define BIT_CAMR_DATA(x) (((x) & BIT_MASK_CAMR_DATA) << BIT_SHIFT_CAMR_DATA)
-#define BIT_GET_CAMR_DATA(x) (((x) >> BIT_SHIFT_CAMR_DATA) & BIT_MASK_CAMR_DATA)
-
-/* 2 REG_CAMDBG				(Offset 0x067C) */
-
-#define BIT_SECCAM_INFO BIT(31)
-#define BIT_SEC_KEYFOUND BIT(15)
-
-#define BIT_SHIFT_CAMDBG_SEC_TYPE 12
-#define BIT_MASK_CAMDBG_SEC_TYPE 0x7
-#define BIT_CAMDBG_SEC_TYPE(x)                                                 \
-	(((x) & BIT_MASK_CAMDBG_SEC_TYPE) << BIT_SHIFT_CAMDBG_SEC_TYPE)
-#define BIT_GET_CAMDBG_SEC_TYPE(x)                                             \
-	(((x) >> BIT_SHIFT_CAMDBG_SEC_TYPE) & BIT_MASK_CAMDBG_SEC_TYPE)
-
-/* 2 REG_CAMDBG				(Offset 0x067C) */
-
-#define BIT_CAMDBG_EXT_SECTYPE BIT(11)
-
-/* 2 REG_CAMDBG				(Offset 0x067C) */
-
-#define BIT_SHIFT_CAMDBG_MIC_KEY_IDX 5
-#define BIT_MASK_CAMDBG_MIC_KEY_IDX 0x1f
-#define BIT_CAMDBG_MIC_KEY_IDX(x)                                              \
-	(((x) & BIT_MASK_CAMDBG_MIC_KEY_IDX) << BIT_SHIFT_CAMDBG_MIC_KEY_IDX)
-#define BIT_GET_CAMDBG_MIC_KEY_IDX(x)                                          \
-	(((x) >> BIT_SHIFT_CAMDBG_MIC_KEY_IDX) & BIT_MASK_CAMDBG_MIC_KEY_IDX)
-
-#define BIT_SHIFT_CAMDBG_SEC_KEY_IDX 0
-#define BIT_MASK_CAMDBG_SEC_KEY_IDX 0x1f
-#define BIT_CAMDBG_SEC_KEY_IDX(x)                                              \
-	(((x) & BIT_MASK_CAMDBG_SEC_KEY_IDX) << BIT_SHIFT_CAMDBG_SEC_KEY_IDX)
-#define BIT_GET_CAMDBG_SEC_KEY_IDX(x)                                          \
-	(((x) >> BIT_SHIFT_CAMDBG_SEC_KEY_IDX) & BIT_MASK_CAMDBG_SEC_KEY_IDX)
-
-/* 2 REG_SECCFG				(Offset 0x0680) */
-
-#define BIT_DIS_GCLK_WAPI BIT(15)
-#define BIT_DIS_GCLK_AES BIT(14)
-#define BIT_DIS_GCLK_TKIP BIT(13)
-
-/* 2 REG_SECCFG				(Offset 0x0680) */
-
-#define BIT_AES_SEL_QC_1 BIT(12)
-#define BIT_AES_SEL_QC_0 BIT(11)
-
-/* 2 REG_SECCFG				(Offset 0x0680) */
-
-#define BIT_CHK_BMC BIT(9)
-
-/* 2 REG_SECCFG				(Offset 0x0680) */
-
-#define BIT_CHK_KEYID BIT(8)
-#define BIT_RXBCUSEDK BIT(7)
-#define BIT_TXBCUSEDK BIT(6)
-#define BIT_NOSKMC BIT(5)
-#define BIT_SKBYA2 BIT(4)
-#define BIT_RXDEC BIT(3)
-#define BIT_TXENC BIT(2)
-#define BIT_RXUHUSEDK BIT(1)
-#define BIT_TXUHUSEDK BIT(0)
-
-/* 2 REG_RXFILTER_CATEGORY_1			(Offset 0x0682) */
-
-#define BIT_SHIFT_RXFILTER_CATEGORY_1 0
-#define BIT_MASK_RXFILTER_CATEGORY_1 0xff
-#define BIT_RXFILTER_CATEGORY_1(x)                                             \
-	(((x) & BIT_MASK_RXFILTER_CATEGORY_1) << BIT_SHIFT_RXFILTER_CATEGORY_1)
-#define BIT_GET_RXFILTER_CATEGORY_1(x)                                         \
-	(((x) >> BIT_SHIFT_RXFILTER_CATEGORY_1) & BIT_MASK_RXFILTER_CATEGORY_1)
-
-/* 2 REG_RXFILTER_ACTION_1			(Offset 0x0683) */
-
-#define BIT_SHIFT_RXFILTER_ACTION_1 0
-#define BIT_MASK_RXFILTER_ACTION_1 0xff
-#define BIT_RXFILTER_ACTION_1(x)                                               \
-	(((x) & BIT_MASK_RXFILTER_ACTION_1) << BIT_SHIFT_RXFILTER_ACTION_1)
-#define BIT_GET_RXFILTER_ACTION_1(x)                                           \
-	(((x) >> BIT_SHIFT_RXFILTER_ACTION_1) & BIT_MASK_RXFILTER_ACTION_1)
-
-/* 2 REG_RXFILTER_CATEGORY_2			(Offset 0x0684) */
-
-#define BIT_SHIFT_RXFILTER_CATEGORY_2 0
-#define BIT_MASK_RXFILTER_CATEGORY_2 0xff
-#define BIT_RXFILTER_CATEGORY_2(x)                                             \
-	(((x) & BIT_MASK_RXFILTER_CATEGORY_2) << BIT_SHIFT_RXFILTER_CATEGORY_2)
-#define BIT_GET_RXFILTER_CATEGORY_2(x)                                         \
-	(((x) >> BIT_SHIFT_RXFILTER_CATEGORY_2) & BIT_MASK_RXFILTER_CATEGORY_2)
-
-/* 2 REG_RXFILTER_ACTION_2			(Offset 0x0685) */
-
-#define BIT_SHIFT_RXFILTER_ACTION_2 0
-#define BIT_MASK_RXFILTER_ACTION_2 0xff
-#define BIT_RXFILTER_ACTION_2(x)                                               \
-	(((x) & BIT_MASK_RXFILTER_ACTION_2) << BIT_SHIFT_RXFILTER_ACTION_2)
-#define BIT_GET_RXFILTER_ACTION_2(x)                                           \
-	(((x) >> BIT_SHIFT_RXFILTER_ACTION_2) & BIT_MASK_RXFILTER_ACTION_2)
-
-/* 2 REG_RXFILTER_CATEGORY_3			(Offset 0x0686) */
-
-#define BIT_SHIFT_RXFILTER_CATEGORY_3 0
-#define BIT_MASK_RXFILTER_CATEGORY_3 0xff
-#define BIT_RXFILTER_CATEGORY_3(x)                                             \
-	(((x) & BIT_MASK_RXFILTER_CATEGORY_3) << BIT_SHIFT_RXFILTER_CATEGORY_3)
-#define BIT_GET_RXFILTER_CATEGORY_3(x)                                         \
-	(((x) >> BIT_SHIFT_RXFILTER_CATEGORY_3) & BIT_MASK_RXFILTER_CATEGORY_3)
-
-/* 2 REG_RXFILTER_ACTION_3			(Offset 0x0687) */
-
-#define BIT_SHIFT_RXFILTER_ACTION_3 0
-#define BIT_MASK_RXFILTER_ACTION_3 0xff
-#define BIT_RXFILTER_ACTION_3(x)                                               \
-	(((x) & BIT_MASK_RXFILTER_ACTION_3) << BIT_SHIFT_RXFILTER_ACTION_3)
-#define BIT_GET_RXFILTER_ACTION_3(x)                                           \
-	(((x) >> BIT_SHIFT_RXFILTER_ACTION_3) & BIT_MASK_RXFILTER_ACTION_3)
-
-/* 2 REG_RXFLTMAP3				(Offset 0x0688) */
-
-#define BIT_MGTFLT15EN_FW BIT(15)
-#define BIT_MGTFLT14EN_FW BIT(14)
-#define BIT_MGTFLT13EN_FW BIT(13)
-#define BIT_MGTFLT12EN_FW BIT(12)
-#define BIT_MGTFLT11EN_FW BIT(11)
-#define BIT_MGTFLT10EN_FW BIT(10)
-#define BIT_MGTFLT9EN_FW BIT(9)
-#define BIT_MGTFLT8EN_FW BIT(8)
-#define BIT_MGTFLT7EN_FW BIT(7)
-#define BIT_MGTFLT6EN_FW BIT(6)
-#define BIT_MGTFLT5EN_FW BIT(5)
-#define BIT_MGTFLT4EN_FW BIT(4)
-#define BIT_MGTFLT3EN_FW BIT(3)
-#define BIT_MGTFLT2EN_FW BIT(2)
-#define BIT_MGTFLT1EN_FW BIT(1)
-#define BIT_MGTFLT0EN_FW BIT(0)
-
-/* 2 REG_RXFLTMAP4				(Offset 0x068A) */
-
-#define BIT_CTRLFLT15EN_FW BIT(15)
-#define BIT_CTRLFLT14EN_FW BIT(14)
-#define BIT_CTRLFLT13EN_FW BIT(13)
-#define BIT_CTRLFLT12EN_FW BIT(12)
-#define BIT_CTRLFLT11EN_FW BIT(11)
-#define BIT_CTRLFLT10EN_FW BIT(10)
-#define BIT_CTRLFLT9EN_FW BIT(9)
-#define BIT_CTRLFLT8EN_FW BIT(8)
-#define BIT_CTRLFLT7EN_FW BIT(7)
-#define BIT_CTRLFLT6EN_FW BIT(6)
-#define BIT_CTRLFLT5EN_FW BIT(5)
-#define BIT_CTRLFLT4EN_FW BIT(4)
-#define BIT_CTRLFLT3EN_FW BIT(3)
-#define BIT_CTRLFLT2EN_FW BIT(2)
-#define BIT_CTRLFLT1EN_FW BIT(1)
-#define BIT_CTRLFLT0EN_FW BIT(0)
-
-/* 2 REG_RXFLTMAP5				(Offset 0x068C) */
-
-#define BIT_DATAFLT15EN_FW BIT(15)
-#define BIT_DATAFLT14EN_FW BIT(14)
-#define BIT_DATAFLT13EN_FW BIT(13)
-#define BIT_DATAFLT12EN_FW BIT(12)
-#define BIT_DATAFLT11EN_FW BIT(11)
-#define BIT_DATAFLT10EN_FW BIT(10)
-#define BIT_DATAFLT9EN_FW BIT(9)
-#define BIT_DATAFLT8EN_FW BIT(8)
-#define BIT_DATAFLT7EN_FW BIT(7)
-#define BIT_DATAFLT6EN_FW BIT(6)
-#define BIT_DATAFLT5EN_FW BIT(5)
-#define BIT_DATAFLT4EN_FW BIT(4)
-#define BIT_DATAFLT3EN_FW BIT(3)
-#define BIT_DATAFLT2EN_FW BIT(2)
-#define BIT_DATAFLT1EN_FW BIT(1)
-#define BIT_DATAFLT0EN_FW BIT(0)
-
-/* 2 REG_RXFLTMAP6				(Offset 0x068E) */
-
-#define BIT_ACTIONFLT15EN_FW BIT(15)
-#define BIT_ACTIONFLT14EN_FW BIT(14)
-#define BIT_ACTIONFLT13EN_FW BIT(13)
-#define BIT_ACTIONFLT12EN_FW BIT(12)
-#define BIT_ACTIONFLT11EN_FW BIT(11)
-#define BIT_ACTIONFLT10EN_FW BIT(10)
-#define BIT_ACTIONFLT9EN_FW BIT(9)
-#define BIT_ACTIONFLT8EN_FW BIT(8)
-#define BIT_ACTIONFLT7EN_FW BIT(7)
-#define BIT_ACTIONFLT6EN_FW BIT(6)
-#define BIT_ACTIONFLT5EN_FW BIT(5)
-#define BIT_ACTIONFLT4EN_FW BIT(4)
-#define BIT_ACTIONFLT3EN_FW BIT(3)
-#define BIT_ACTIONFLT2EN_FW BIT(2)
-#define BIT_ACTIONFLT1EN_FW BIT(1)
-#define BIT_ACTIONFLT0EN_FW BIT(0)
-
-/* 2 REG_WOW_CTRL				(Offset 0x0690) */
-
-#define BIT_SHIFT_PSF_BSSIDSEL_B2B1 6
-#define BIT_MASK_PSF_BSSIDSEL_B2B1 0x3
-#define BIT_PSF_BSSIDSEL_B2B1(x)                                               \
-	(((x) & BIT_MASK_PSF_BSSIDSEL_B2B1) << BIT_SHIFT_PSF_BSSIDSEL_B2B1)
-#define BIT_GET_PSF_BSSIDSEL_B2B1(x)                                           \
-	(((x) >> BIT_SHIFT_PSF_BSSIDSEL_B2B1) & BIT_MASK_PSF_BSSIDSEL_B2B1)
-
-/* 2 REG_WOW_CTRL				(Offset 0x0690) */
-
-#define BIT_WOWHCI BIT(5)
-
-/* 2 REG_WOW_CTRL				(Offset 0x0690) */
-
-#define BIT_PSF_BSSIDSEL_B0 BIT(4)
-
-/* 2 REG_WOW_CTRL				(Offset 0x0690) */
-
-#define BIT_UWF BIT(3)
-#define BIT_MAGIC BIT(2)
-#define BIT_WOWEN BIT(1)
-#define BIT_FORCE_WAKEUP BIT(0)
-
-/* 2 REG_NAN_RX_TSF_FILTER			(Offset 0x0691) */
-
-#define BIT_CHK_TSF_TA BIT(2)
-#define BIT_CHK_TSF_CBSSID BIT(1)
-#define BIT_CHK_TSF_EN BIT(0)
-
-/* 2 REG_PS_RX_INFO				(Offset 0x0692) */
-
-#define BIT_SHIFT_PORTSEL__PS_RX_INFO 5
-#define BIT_MASK_PORTSEL__PS_RX_INFO 0x7
-#define BIT_PORTSEL__PS_RX_INFO(x)                                             \
-	(((x) & BIT_MASK_PORTSEL__PS_RX_INFO) << BIT_SHIFT_PORTSEL__PS_RX_INFO)
-#define BIT_GET_PORTSEL__PS_RX_INFO(x)                                         \
-	(((x) >> BIT_SHIFT_PORTSEL__PS_RX_INFO) & BIT_MASK_PORTSEL__PS_RX_INFO)
-
-/* 2 REG_PS_RX_INFO				(Offset 0x0692) */
-
-#define BIT_RXCTRLIN0 BIT(4)
-#define BIT_RXMGTIN0 BIT(3)
-#define BIT_RXDATAIN2 BIT(2)
-#define BIT_RXDATAIN1 BIT(1)
-#define BIT_RXDATAIN0 BIT(0)
-
-/* 2 REG_WMMPS_UAPSD_TID			(Offset 0x0693) */
-
-#define BIT_WMMPS_UAPSD_TID7 BIT(7)
-#define BIT_WMMPS_UAPSD_TID6 BIT(6)
-#define BIT_WMMPS_UAPSD_TID5 BIT(5)
-#define BIT_WMMPS_UAPSD_TID4 BIT(4)
-#define BIT_WMMPS_UAPSD_TID3 BIT(3)
-#define BIT_WMMPS_UAPSD_TID2 BIT(2)
-#define BIT_WMMPS_UAPSD_TID1 BIT(1)
-#define BIT_WMMPS_UAPSD_TID0 BIT(0)
-
-/* 2 REG_LPNAV_CTRL				(Offset 0x0694) */
-
-#define BIT_LPNAV_EN BIT(31)
-
-#define BIT_SHIFT_LPNAV_EARLY 16
-#define BIT_MASK_LPNAV_EARLY 0x7fff
-#define BIT_LPNAV_EARLY(x)                                                     \
-	(((x) & BIT_MASK_LPNAV_EARLY) << BIT_SHIFT_LPNAV_EARLY)
-#define BIT_GET_LPNAV_EARLY(x)                                                 \
-	(((x) >> BIT_SHIFT_LPNAV_EARLY) & BIT_MASK_LPNAV_EARLY)
-
-#define BIT_SHIFT_LPNAV_TH 0
-#define BIT_MASK_LPNAV_TH 0xffff
-#define BIT_LPNAV_TH(x) (((x) & BIT_MASK_LPNAV_TH) << BIT_SHIFT_LPNAV_TH)
-#define BIT_GET_LPNAV_TH(x) (((x) >> BIT_SHIFT_LPNAV_TH) & BIT_MASK_LPNAV_TH)
-
-/* 2 REG_WKFMCAM_CMD				(Offset 0x0698) */
-
-#define BIT_WKFCAM_POLLING_V1 BIT(31)
-#define BIT_WKFCAM_CLR_V1 BIT(30)
-
-/* 2 REG_WKFMCAM_CMD				(Offset 0x0698) */
-
-#define BIT_WKFCAM_WE BIT(16)
-
-/* 2 REG_WKFMCAM_CMD				(Offset 0x0698) */
-
-#define BIT_SHIFT_WKFCAM_ADDR_V2 8
-#define BIT_MASK_WKFCAM_ADDR_V2 0xff
-#define BIT_WKFCAM_ADDR_V2(x)                                                  \
-	(((x) & BIT_MASK_WKFCAM_ADDR_V2) << BIT_SHIFT_WKFCAM_ADDR_V2)
-#define BIT_GET_WKFCAM_ADDR_V2(x)                                              \
-	(((x) >> BIT_SHIFT_WKFCAM_ADDR_V2) & BIT_MASK_WKFCAM_ADDR_V2)
-
-#define BIT_SHIFT_WKFCAM_CAM_NUM_V1 0
-#define BIT_MASK_WKFCAM_CAM_NUM_V1 0xff
-#define BIT_WKFCAM_CAM_NUM_V1(x)                                               \
-	(((x) & BIT_MASK_WKFCAM_CAM_NUM_V1) << BIT_SHIFT_WKFCAM_CAM_NUM_V1)
-#define BIT_GET_WKFCAM_CAM_NUM_V1(x)                                           \
-	(((x) >> BIT_SHIFT_WKFCAM_CAM_NUM_V1) & BIT_MASK_WKFCAM_CAM_NUM_V1)
-
-/* 2 REG_WKFMCAM_RWD				(Offset 0x069C) */
-
-#define BIT_SHIFT_WKFMCAM_RWD 0
-#define BIT_MASK_WKFMCAM_RWD 0xffffffffL
-#define BIT_WKFMCAM_RWD(x)                                                     \
-	(((x) & BIT_MASK_WKFMCAM_RWD) << BIT_SHIFT_WKFMCAM_RWD)
-#define BIT_GET_WKFMCAM_RWD(x)                                                 \
-	(((x) >> BIT_SHIFT_WKFMCAM_RWD) & BIT_MASK_WKFMCAM_RWD)
-
-/* 2 REG_RXFLTMAP0				(Offset 0x06A0) */
-
-#define BIT_MGTFLT15EN BIT(15)
-#define BIT_MGTFLT14EN BIT(14)
-
-/* 2 REG_RXFLTMAP0				(Offset 0x06A0) */
-
-#define BIT_MGTFLT13EN BIT(13)
-#define BIT_MGTFLT12EN BIT(12)
-#define BIT_MGTFLT11EN BIT(11)
-#define BIT_MGTFLT10EN BIT(10)
-#define BIT_MGTFLT9EN BIT(9)
-#define BIT_MGTFLT8EN BIT(8)
-
-/* 2 REG_RXFLTMAP0				(Offset 0x06A0) */
-
-#define BIT_MGTFLT7EN BIT(7)
-#define BIT_MGTFLT6EN BIT(6)
-
-/* 2 REG_RXFLTMAP0				(Offset 0x06A0) */
-
-#define BIT_MGTFLT5EN BIT(5)
-#define BIT_MGTFLT4EN BIT(4)
-#define BIT_MGTFLT3EN BIT(3)
-#define BIT_MGTFLT2EN BIT(2)
-#define BIT_MGTFLT1EN BIT(1)
-#define BIT_MGTFLT0EN BIT(0)
-
-/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */
-
-#define BIT_CTRLFLT15EN BIT(15)
-#define BIT_CTRLFLT14EN BIT(14)
-#define BIT_CTRLFLT13EN BIT(13)
-#define BIT_CTRLFLT12EN BIT(12)
-#define BIT_CTRLFLT11EN BIT(11)
-#define BIT_CTRLFLT10EN BIT(10)
-#define BIT_CTRLFLT9EN BIT(9)
-#define BIT_CTRLFLT8EN BIT(8)
-#define BIT_CTRLFLT7EN BIT(7)
-#define BIT_CTRLFLT6EN BIT(6)
-
-/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */
-
-#define BIT_CTRLFLT5EN BIT(5)
-#define BIT_CTRLFLT4EN BIT(4)
-#define BIT_CTRLFLT3EN BIT(3)
-#define BIT_CTRLFLT2EN BIT(2)
-#define BIT_CTRLFLT1EN BIT(1)
-#define BIT_CTRLFLT0EN BIT(0)
-
-/* 2 REG_RXFLTMAP				(Offset 0x06A4) */
-
-#define BIT_DATAFLT15EN BIT(15)
-#define BIT_DATAFLT14EN BIT(14)
-#define BIT_DATAFLT13EN BIT(13)
-#define BIT_DATAFLT12EN BIT(12)
-#define BIT_DATAFLT11EN BIT(11)
-#define BIT_DATAFLT10EN BIT(10)
-#define BIT_DATAFLT9EN BIT(9)
-#define BIT_DATAFLT8EN BIT(8)
-#define BIT_DATAFLT7EN BIT(7)
-#define BIT_DATAFLT6EN BIT(6)
-#define BIT_DATAFLT5EN BIT(5)
-#define BIT_DATAFLT4EN BIT(4)
-#define BIT_DATAFLT3EN BIT(3)
-#define BIT_DATAFLT2EN BIT(2)
-#define BIT_DATAFLT1EN BIT(1)
-#define BIT_DATAFLT0EN BIT(0)
-
-/* 2 REG_BCN_PSR_RPT				(Offset 0x06A8) */
-
-#define BIT_SHIFT_DTIM_CNT 24
-#define BIT_MASK_DTIM_CNT 0xff
-#define BIT_DTIM_CNT(x) (((x) & BIT_MASK_DTIM_CNT) << BIT_SHIFT_DTIM_CNT)
-#define BIT_GET_DTIM_CNT(x) (((x) >> BIT_SHIFT_DTIM_CNT) & BIT_MASK_DTIM_CNT)
-
-#define BIT_SHIFT_DTIM_PERIOD 16
-#define BIT_MASK_DTIM_PERIOD 0xff
-#define BIT_DTIM_PERIOD(x)                                                     \
-	(((x) & BIT_MASK_DTIM_PERIOD) << BIT_SHIFT_DTIM_PERIOD)
-#define BIT_GET_DTIM_PERIOD(x)                                                 \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD) & BIT_MASK_DTIM_PERIOD)
-
-#define BIT_DTIM BIT(15)
-#define BIT_TIM BIT(14)
-
-#define BIT_SHIFT_PS_AID_0 0
-#define BIT_MASK_PS_AID_0 0x7ff
-#define BIT_PS_AID_0(x) (((x) & BIT_MASK_PS_AID_0) << BIT_SHIFT_PS_AID_0)
-#define BIT_GET_PS_AID_0(x) (((x) >> BIT_SHIFT_PS_AID_0) & BIT_MASK_PS_AID_0)
-
-/* 2 REG_FLC_RPC				(Offset 0x06AC) */
-
-#define BIT_SHIFT_FLC_RPC 0
-#define BIT_MASK_FLC_RPC 0xff
-#define BIT_FLC_RPC(x) (((x) & BIT_MASK_FLC_RPC) << BIT_SHIFT_FLC_RPC)
-#define BIT_GET_FLC_RPC(x) (((x) >> BIT_SHIFT_FLC_RPC) & BIT_MASK_FLC_RPC)
-
-/* 2 REG_FLC_RPCT				(Offset 0x06AD) */
-
-#define BIT_SHIFT_FLC_RPCT 0
-#define BIT_MASK_FLC_RPCT 0xff
-#define BIT_FLC_RPCT(x) (((x) & BIT_MASK_FLC_RPCT) << BIT_SHIFT_FLC_RPCT)
-#define BIT_GET_FLC_RPCT(x) (((x) >> BIT_SHIFT_FLC_RPCT) & BIT_MASK_FLC_RPCT)
-
-/* 2 REG_FLC_PTS				(Offset 0x06AE) */
-
-#define BIT_CMF BIT(2)
-#define BIT_CCF BIT(1)
-#define BIT_CDF BIT(0)
-
-/* 2 REG_FLC_TRPC				(Offset 0x06AF) */
-
-#define BIT_FLC_RPCT_V1 BIT(7)
-#define BIT_MODE BIT(6)
-
-#define BIT_SHIFT_TRPCD 0
-#define BIT_MASK_TRPCD 0x3f
-#define BIT_TRPCD(x) (((x) & BIT_MASK_TRPCD) << BIT_SHIFT_TRPCD)
-#define BIT_GET_TRPCD(x) (((x) >> BIT_SHIFT_TRPCD) & BIT_MASK_TRPCD)
-
-/* 2 REG_RXPKTMON_CTRL			(Offset 0x06B0) */
-
-#define BIT_SHIFT_RXBKQPKT_SEQ 20
-#define BIT_MASK_RXBKQPKT_SEQ 0xf
-#define BIT_RXBKQPKT_SEQ(x)                                                    \
-	(((x) & BIT_MASK_RXBKQPKT_SEQ) << BIT_SHIFT_RXBKQPKT_SEQ)
-#define BIT_GET_RXBKQPKT_SEQ(x)                                                \
-	(((x) >> BIT_SHIFT_RXBKQPKT_SEQ) & BIT_MASK_RXBKQPKT_SEQ)
-
-#define BIT_SHIFT_RXBEQPKT_SEQ 16
-#define BIT_MASK_RXBEQPKT_SEQ 0xf
-#define BIT_RXBEQPKT_SEQ(x)                                                    \
-	(((x) & BIT_MASK_RXBEQPKT_SEQ) << BIT_SHIFT_RXBEQPKT_SEQ)
-#define BIT_GET_RXBEQPKT_SEQ(x)                                                \
-	(((x) >> BIT_SHIFT_RXBEQPKT_SEQ) & BIT_MASK_RXBEQPKT_SEQ)
-
-#define BIT_SHIFT_RXVIQPKT_SEQ 12
-#define BIT_MASK_RXVIQPKT_SEQ 0xf
-#define BIT_RXVIQPKT_SEQ(x)                                                    \
-	(((x) & BIT_MASK_RXVIQPKT_SEQ) << BIT_SHIFT_RXVIQPKT_SEQ)
-#define BIT_GET_RXVIQPKT_SEQ(x)                                                \
-	(((x) >> BIT_SHIFT_RXVIQPKT_SEQ) & BIT_MASK_RXVIQPKT_SEQ)
-
-#define BIT_SHIFT_RXVOQPKT_SEQ 8
-#define BIT_MASK_RXVOQPKT_SEQ 0xf
-#define BIT_RXVOQPKT_SEQ(x)                                                    \
-	(((x) & BIT_MASK_RXVOQPKT_SEQ) << BIT_SHIFT_RXVOQPKT_SEQ)
-#define BIT_GET_RXVOQPKT_SEQ(x)                                                \
-	(((x) >> BIT_SHIFT_RXVOQPKT_SEQ) & BIT_MASK_RXVOQPKT_SEQ)
-
-#define BIT_RXBKQPKT_ERR BIT(7)
-#define BIT_RXBEQPKT_ERR BIT(6)
-#define BIT_RXVIQPKT_ERR BIT(5)
-#define BIT_RXVOQPKT_ERR BIT(4)
-#define BIT_RXDMA_MON_EN BIT(2)
-#define BIT_RXPKT_MON_RST BIT(1)
-#define BIT_RXPKT_MON_EN BIT(0)
-
-/* 2 REG_STATE_MON				(Offset 0x06B4) */
-
-#define BIT_SHIFT_STATE_SEL 24
-#define BIT_MASK_STATE_SEL 0x1f
-#define BIT_STATE_SEL(x) (((x) & BIT_MASK_STATE_SEL) << BIT_SHIFT_STATE_SEL)
-#define BIT_GET_STATE_SEL(x) (((x) >> BIT_SHIFT_STATE_SEL) & BIT_MASK_STATE_SEL)
-
-#define BIT_SHIFT_STATE_INFO 8
-#define BIT_MASK_STATE_INFO 0xff
-#define BIT_STATE_INFO(x) (((x) & BIT_MASK_STATE_INFO) << BIT_SHIFT_STATE_INFO)
-#define BIT_GET_STATE_INFO(x)                                                  \
-	(((x) >> BIT_SHIFT_STATE_INFO) & BIT_MASK_STATE_INFO)
-
-#define BIT_UPD_NXT_STATE BIT(7)
-
-/* 2 REG_STATE_MON				(Offset 0x06B4) */
-
-#define BIT_SHIFT_CUR_STATE 0
-#define BIT_MASK_CUR_STATE 0x7f
-#define BIT_CUR_STATE(x) (((x) & BIT_MASK_CUR_STATE) << BIT_SHIFT_CUR_STATE)
-#define BIT_GET_CUR_STATE(x) (((x) >> BIT_SHIFT_CUR_STATE) & BIT_MASK_CUR_STATE)
-
-/* 2 REG_ERROR_MON				(Offset 0x06B8) */
-
-#define BIT_MACRX_ERR_1 BIT(17)
-#define BIT_MACRX_ERR_0 BIT(16)
-#define BIT_MACTX_ERR_3 BIT(3)
-#define BIT_MACTX_ERR_2 BIT(2)
-#define BIT_MACTX_ERR_1 BIT(1)
-#define BIT_MACTX_ERR_0 BIT(0)
-
-/* 2 REG_SEARCH_MACID			(Offset 0x06BC) */
-
-#define BIT_EN_TXRPTBUF_CLK BIT(31)
-
-#define BIT_SHIFT_INFO_INDEX_OFFSET 16
-#define BIT_MASK_INFO_INDEX_OFFSET 0x1fff
-#define BIT_INFO_INDEX_OFFSET(x)                                               \
-	(((x) & BIT_MASK_INFO_INDEX_OFFSET) << BIT_SHIFT_INFO_INDEX_OFFSET)
-#define BIT_GET_INFO_INDEX_OFFSET(x)                                           \
-	(((x) >> BIT_SHIFT_INFO_INDEX_OFFSET) & BIT_MASK_INFO_INDEX_OFFSET)
-
-/* 2 REG_SEARCH_MACID			(Offset 0x06BC) */
-
-#define BIT_WMAC_SRCH_FIFOFULL BIT(15)
-
-/* 2 REG_SEARCH_MACID			(Offset 0x06BC) */
-
-#define BIT_DIS_INFOSRCH BIT(14)
-#define BIT_DISABLE_B0 BIT(13)
-
-#define BIT_SHIFT_INFO_ADDR_OFFSET 0
-#define BIT_MASK_INFO_ADDR_OFFSET 0x1fff
-#define BIT_INFO_ADDR_OFFSET(x)                                                \
-	(((x) & BIT_MASK_INFO_ADDR_OFFSET) << BIT_SHIFT_INFO_ADDR_OFFSET)
-#define BIT_GET_INFO_ADDR_OFFSET(x)                                            \
-	(((x) >> BIT_SHIFT_INFO_ADDR_OFFSET) & BIT_MASK_INFO_ADDR_OFFSET)
-
-/* 2 REG_BT_COEX_TABLE			(Offset 0x06C0) */
-
-#define BIT_PRI_MASK_RX_RESP BIT(126)
-#define BIT_PRI_MASK_RXOFDM BIT(125)
-#define BIT_PRI_MASK_RXCCK BIT(124)
-
-#define BIT_SHIFT_PRI_MASK_TXAC (117 & CPU_OPT_WIDTH)
-#define BIT_MASK_PRI_MASK_TXAC 0x7f
-#define BIT_PRI_MASK_TXAC(x)                                                   \
-	(((x) & BIT_MASK_PRI_MASK_TXAC) << BIT_SHIFT_PRI_MASK_TXAC)
-#define BIT_GET_PRI_MASK_TXAC(x)                                               \
-	(((x) >> BIT_SHIFT_PRI_MASK_TXAC) & BIT_MASK_PRI_MASK_TXAC)
-
-#define BIT_SHIFT_PRI_MASK_NAV (109 & CPU_OPT_WIDTH)
-#define BIT_MASK_PRI_MASK_NAV 0xff
-#define BIT_PRI_MASK_NAV(x)                                                    \
-	(((x) & BIT_MASK_PRI_MASK_NAV) << BIT_SHIFT_PRI_MASK_NAV)
-#define BIT_GET_PRI_MASK_NAV(x)                                                \
-	(((x) >> BIT_SHIFT_PRI_MASK_NAV) & BIT_MASK_PRI_MASK_NAV)
-
-#define BIT_PRI_MASK_CCK BIT(108)
-#define BIT_PRI_MASK_OFDM BIT(107)
-#define BIT_PRI_MASK_RTY BIT(106)
-
-#define BIT_SHIFT_PRI_MASK_NUM (102 & CPU_OPT_WIDTH)
-#define BIT_MASK_PRI_MASK_NUM 0xf
-#define BIT_PRI_MASK_NUM(x)                                                    \
-	(((x) & BIT_MASK_PRI_MASK_NUM) << BIT_SHIFT_PRI_MASK_NUM)
-#define BIT_GET_PRI_MASK_NUM(x)                                                \
-	(((x) >> BIT_SHIFT_PRI_MASK_NUM) & BIT_MASK_PRI_MASK_NUM)
-
-#define BIT_SHIFT_PRI_MASK_TYPE (98 & CPU_OPT_WIDTH)
-#define BIT_MASK_PRI_MASK_TYPE 0xf
-#define BIT_PRI_MASK_TYPE(x)                                                   \
-	(((x) & BIT_MASK_PRI_MASK_TYPE) << BIT_SHIFT_PRI_MASK_TYPE)
-#define BIT_GET_PRI_MASK_TYPE(x)                                               \
-	(((x) >> BIT_SHIFT_PRI_MASK_TYPE) & BIT_MASK_PRI_MASK_TYPE)
-
-#define BIT_OOB BIT(97)
-#define BIT_ANT_SEL BIT(96)
-
-#define BIT_SHIFT_BREAK_TABLE_2 (80 & CPU_OPT_WIDTH)
-#define BIT_MASK_BREAK_TABLE_2 0xffff
-#define BIT_BREAK_TABLE_2(x)                                                   \
-	(((x) & BIT_MASK_BREAK_TABLE_2) << BIT_SHIFT_BREAK_TABLE_2)
-#define BIT_GET_BREAK_TABLE_2(x)                                               \
-	(((x) >> BIT_SHIFT_BREAK_TABLE_2) & BIT_MASK_BREAK_TABLE_2)
-
-#define BIT_SHIFT_BREAK_TABLE_1 (64 & CPU_OPT_WIDTH)
-#define BIT_MASK_BREAK_TABLE_1 0xffff
-#define BIT_BREAK_TABLE_1(x)                                                   \
-	(((x) & BIT_MASK_BREAK_TABLE_1) << BIT_SHIFT_BREAK_TABLE_1)
-#define BIT_GET_BREAK_TABLE_1(x)                                               \
-	(((x) >> BIT_SHIFT_BREAK_TABLE_1) & BIT_MASK_BREAK_TABLE_1)
-
-#define BIT_SHIFT_COEX_TABLE_2 (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_COEX_TABLE_2 0xffffffffL
-#define BIT_COEX_TABLE_2(x)                                                    \
-	(((x) & BIT_MASK_COEX_TABLE_2) << BIT_SHIFT_COEX_TABLE_2)
-#define BIT_GET_COEX_TABLE_2(x)                                                \
-	(((x) >> BIT_SHIFT_COEX_TABLE_2) & BIT_MASK_COEX_TABLE_2)
-
-#define BIT_SHIFT_COEX_TABLE_1 0
-#define BIT_MASK_COEX_TABLE_1 0xffffffffL
-#define BIT_COEX_TABLE_1(x)                                                    \
-	(((x) & BIT_MASK_COEX_TABLE_1) << BIT_SHIFT_COEX_TABLE_1)
-#define BIT_GET_COEX_TABLE_1(x)                                                \
-	(((x) >> BIT_SHIFT_COEX_TABLE_1) & BIT_MASK_COEX_TABLE_1)
-
-/* 2 REG_RXCMD_0				(Offset 0x06D0) */
-
-#define BIT_RXCMD_EN BIT(31)
-
-#define BIT_SHIFT_RXCMD_INFO 0
-#define BIT_MASK_RXCMD_INFO 0x7fffffffL
-#define BIT_RXCMD_INFO(x) (((x) & BIT_MASK_RXCMD_INFO) << BIT_SHIFT_RXCMD_INFO)
-#define BIT_GET_RXCMD_INFO(x)                                                  \
-	(((x) >> BIT_SHIFT_RXCMD_INFO) & BIT_MASK_RXCMD_INFO)
-
-/* 2 REG_RXCMD_1				(Offset 0x06D4) */
-
-#define BIT_SHIFT_RXCMD_PRD 0
-#define BIT_MASK_RXCMD_PRD 0xffff
-#define BIT_RXCMD_PRD(x) (((x) & BIT_MASK_RXCMD_PRD) << BIT_SHIFT_RXCMD_PRD)
-#define BIT_GET_RXCMD_PRD(x) (((x) >> BIT_SHIFT_RXCMD_PRD) & BIT_MASK_RXCMD_PRD)
-
-/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */
-
-#define BIT_SHIFT_WMAC_RESP_MFB 25
-#define BIT_MASK_WMAC_RESP_MFB 0x7f
-#define BIT_WMAC_RESP_MFB(x)                                                   \
-	(((x) & BIT_MASK_WMAC_RESP_MFB) << BIT_SHIFT_WMAC_RESP_MFB)
-#define BIT_GET_WMAC_RESP_MFB(x)                                               \
-	(((x) >> BIT_SHIFT_WMAC_RESP_MFB) & BIT_MASK_WMAC_RESP_MFB)
-
-#define BIT_SHIFT_WMAC_ANTINF_SEL 23
-#define BIT_MASK_WMAC_ANTINF_SEL 0x3
-#define BIT_WMAC_ANTINF_SEL(x)                                                 \
-	(((x) & BIT_MASK_WMAC_ANTINF_SEL) << BIT_SHIFT_WMAC_ANTINF_SEL)
-#define BIT_GET_WMAC_ANTINF_SEL(x)                                             \
-	(((x) >> BIT_SHIFT_WMAC_ANTINF_SEL) & BIT_MASK_WMAC_ANTINF_SEL)
-
-#define BIT_SHIFT_WMAC_ANTSEL_SEL 21
-#define BIT_MASK_WMAC_ANTSEL_SEL 0x3
-#define BIT_WMAC_ANTSEL_SEL(x)                                                 \
-	(((x) & BIT_MASK_WMAC_ANTSEL_SEL) << BIT_SHIFT_WMAC_ANTSEL_SEL)
-#define BIT_GET_WMAC_ANTSEL_SEL(x)                                             \
-	(((x) >> BIT_SHIFT_WMAC_ANTSEL_SEL) & BIT_MASK_WMAC_ANTSEL_SEL)
-
-/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */
-
-#define BIT_SHIFT_R_WMAC_RESP_TXPOWER 18
-#define BIT_MASK_R_WMAC_RESP_TXPOWER 0x7
-#define BIT_R_WMAC_RESP_TXPOWER(x)                                             \
-	(((x) & BIT_MASK_R_WMAC_RESP_TXPOWER) << BIT_SHIFT_R_WMAC_RESP_TXPOWER)
-#define BIT_GET_R_WMAC_RESP_TXPOWER(x)                                         \
-	(((x) >> BIT_SHIFT_R_WMAC_RESP_TXPOWER) & BIT_MASK_R_WMAC_RESP_TXPOWER)
-
-/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */
-
-#define BIT_SHIFT_WMAC_RESP_TXANT 0
-#define BIT_MASK_WMAC_RESP_TXANT 0x3ffff
-#define BIT_WMAC_RESP_TXANT(x)                                                 \
-	(((x) & BIT_MASK_WMAC_RESP_TXANT) << BIT_SHIFT_WMAC_RESP_TXANT)
-#define BIT_GET_WMAC_RESP_TXANT(x)                                             \
-	(((x) >> BIT_SHIFT_WMAC_RESP_TXANT) & BIT_MASK_WMAC_RESP_TXANT)
-
-/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */
-
-#define BIT_CTL_IDLE_CLR_CSI_RPT BIT(31)
-
-/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */
-
-#define BIT_WMAC_USE_NDPARATE BIT(30)
-
-#define BIT_SHIFT_WMAC_CSI_RATE 24
-#define BIT_MASK_WMAC_CSI_RATE 0x3f
-#define BIT_WMAC_CSI_RATE(x)                                                   \
-	(((x) & BIT_MASK_WMAC_CSI_RATE) << BIT_SHIFT_WMAC_CSI_RATE)
-#define BIT_GET_WMAC_CSI_RATE(x)                                               \
-	(((x) >> BIT_SHIFT_WMAC_CSI_RATE) & BIT_MASK_WMAC_CSI_RATE)
-
-#define BIT_SHIFT_WMAC_RESP_TXRATE 16
-#define BIT_MASK_WMAC_RESP_TXRATE 0xff
-#define BIT_WMAC_RESP_TXRATE(x)                                                \
-	(((x) & BIT_MASK_WMAC_RESP_TXRATE) << BIT_SHIFT_WMAC_RESP_TXRATE)
-#define BIT_GET_WMAC_RESP_TXRATE(x)                                            \
-	(((x) >> BIT_SHIFT_WMAC_RESP_TXRATE) & BIT_MASK_WMAC_RESP_TXRATE)
-
-/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */
-
-#define BIT_BBPSF_MPDUCHKEN BIT(5)
-
-/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */
-
-#define BIT_BBPSF_MHCHKEN BIT(4)
-#define BIT_BBPSF_ERRCHKEN BIT(3)
-
-#define BIT_SHIFT_BBPSF_ERRTHR 0
-#define BIT_MASK_BBPSF_ERRTHR 0x7
-#define BIT_BBPSF_ERRTHR(x)                                                    \
-	(((x) & BIT_MASK_BBPSF_ERRTHR) << BIT_SHIFT_BBPSF_ERRTHR)
-#define BIT_GET_BBPSF_ERRTHR(x)                                                \
-	(((x) >> BIT_SHIFT_BBPSF_ERRTHR) & BIT_MASK_BBPSF_ERRTHR)
-
-/* 2 REG_P2P_RX_BCN_NOA			(Offset 0x06E0) */
-
-#define BIT_NOA_PARSER_EN BIT(15)
-
-/* 2 REG_P2P_RX_BCN_NOA			(Offset 0x06E0) */
-
-#define BIT_BSSID_SEL BIT(14)
-
-/* 2 REG_P2P_RX_BCN_NOA			(Offset 0x06E0) */
-
-#define BIT_SHIFT_P2P_OUI_TYPE 0
-#define BIT_MASK_P2P_OUI_TYPE 0xff
-#define BIT_P2P_OUI_TYPE(x)                                                    \
-	(((x) & BIT_MASK_P2P_OUI_TYPE) << BIT_SHIFT_P2P_OUI_TYPE)
-#define BIT_GET_P2P_OUI_TYPE(x)                                                \
-	(((x) >> BIT_SHIFT_P2P_OUI_TYPE) & BIT_MASK_P2P_OUI_TYPE)
-
-/* 2 REG_ASSOCIATED_BFMER0_INFO		(Offset 0x06E4) */
-
-#define BIT_SHIFT_R_WMAC_TXCSI_AID0 (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_TXCSI_AID0 0x1ff
-#define BIT_R_WMAC_TXCSI_AID0(x)                                               \
-	(((x) & BIT_MASK_R_WMAC_TXCSI_AID0) << BIT_SHIFT_R_WMAC_TXCSI_AID0)
-#define BIT_GET_R_WMAC_TXCSI_AID0(x)                                           \
-	(((x) >> BIT_SHIFT_R_WMAC_TXCSI_AID0) & BIT_MASK_R_WMAC_TXCSI_AID0)
-
-#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0 0
-#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0 0xffffffffffffL
-#define BIT_R_WMAC_SOUNDING_RXADD_R0(x)                                        \
-	(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0)                             \
-	 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0)
-#define BIT_GET_R_WMAC_SOUNDING_RXADD_R0(x)                                    \
-	(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0) &                         \
-	 BIT_MASK_R_WMAC_SOUNDING_RXADD_R0)
-
-/* 2 REG_ASSOCIATED_BFMER1_INFO		(Offset 0x06EC) */
-
-#define BIT_SHIFT_R_WMAC_TXCSI_AID1 (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_TXCSI_AID1 0x1ff
-#define BIT_R_WMAC_TXCSI_AID1(x)                                               \
-	(((x) & BIT_MASK_R_WMAC_TXCSI_AID1) << BIT_SHIFT_R_WMAC_TXCSI_AID1)
-#define BIT_GET_R_WMAC_TXCSI_AID1(x)                                           \
-	(((x) >> BIT_SHIFT_R_WMAC_TXCSI_AID1) & BIT_MASK_R_WMAC_TXCSI_AID1)
-
-#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1 0
-#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1 0xffffffffffffL
-#define BIT_R_WMAC_SOUNDING_RXADD_R1(x)                                        \
-	(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1)                             \
-	 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1)
-#define BIT_GET_R_WMAC_SOUNDING_RXADD_R1(x)                                    \
-	(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1) &                         \
-	 BIT_MASK_R_WMAC_SOUNDING_RXADD_R1)
-
-/* 2 REG_TX_CSI_RPT_PARAM_BW20		(Offset 0x06F4) */
-
-#define BIT_SHIFT_R_WMAC_BFINFO_20M_1 16
-#define BIT_MASK_R_WMAC_BFINFO_20M_1 0xfff
-#define BIT_R_WMAC_BFINFO_20M_1(x)                                             \
-	(((x) & BIT_MASK_R_WMAC_BFINFO_20M_1) << BIT_SHIFT_R_WMAC_BFINFO_20M_1)
-#define BIT_GET_R_WMAC_BFINFO_20M_1(x)                                         \
-	(((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_1) & BIT_MASK_R_WMAC_BFINFO_20M_1)
-
-#define BIT_SHIFT_R_WMAC_BFINFO_20M_0 0
-#define BIT_MASK_R_WMAC_BFINFO_20M_0 0xfff
-#define BIT_R_WMAC_BFINFO_20M_0(x)                                             \
-	(((x) & BIT_MASK_R_WMAC_BFINFO_20M_0) << BIT_SHIFT_R_WMAC_BFINFO_20M_0)
-#define BIT_GET_R_WMAC_BFINFO_20M_0(x)                                         \
-	(((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_0) & BIT_MASK_R_WMAC_BFINFO_20M_0)
-
-/* 2 REG_TX_CSI_RPT_PARAM_BW40		(Offset 0x06F8) */
-
-#define BIT_SHIFT_WMAC_RESP_ANTCD 0
-#define BIT_MASK_WMAC_RESP_ANTCD 0xf
-#define BIT_WMAC_RESP_ANTCD(x)                                                 \
-	(((x) & BIT_MASK_WMAC_RESP_ANTCD) << BIT_SHIFT_WMAC_RESP_ANTCD)
-#define BIT_GET_WMAC_RESP_ANTCD(x)                                             \
-	(((x) >> BIT_SHIFT_WMAC_RESP_ANTCD) & BIT_MASK_WMAC_RESP_ANTCD)
-
-/* 2 REG_MACID1				(Offset 0x0700) */
-
-#define BIT_SHIFT_MACID1 0
-#define BIT_MASK_MACID1 0xffffffffffffL
-#define BIT_MACID1(x) (((x) & BIT_MASK_MACID1) << BIT_SHIFT_MACID1)
-#define BIT_GET_MACID1(x) (((x) >> BIT_SHIFT_MACID1) & BIT_MASK_MACID1)
-
-/* 2 REG_BSSID1				(Offset 0x0708) */
-
-#define BIT_SHIFT_BSSID1 0
-#define BIT_MASK_BSSID1 0xffffffffffffL
-#define BIT_BSSID1(x) (((x) & BIT_MASK_BSSID1) << BIT_SHIFT_BSSID1)
-#define BIT_GET_BSSID1(x) (((x) >> BIT_SHIFT_BSSID1) & BIT_MASK_BSSID1)
-
-/* 2 REG_BCN_PSR_RPT1			(Offset 0x0710) */
-
-#define BIT_SHIFT_DTIM_CNT1 24
-#define BIT_MASK_DTIM_CNT1 0xff
-#define BIT_DTIM_CNT1(x) (((x) & BIT_MASK_DTIM_CNT1) << BIT_SHIFT_DTIM_CNT1)
-#define BIT_GET_DTIM_CNT1(x) (((x) >> BIT_SHIFT_DTIM_CNT1) & BIT_MASK_DTIM_CNT1)
-
-#define BIT_SHIFT_DTIM_PERIOD1 16
-#define BIT_MASK_DTIM_PERIOD1 0xff
-#define BIT_DTIM_PERIOD1(x)                                                    \
-	(((x) & BIT_MASK_DTIM_PERIOD1) << BIT_SHIFT_DTIM_PERIOD1)
-#define BIT_GET_DTIM_PERIOD1(x)                                                \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD1) & BIT_MASK_DTIM_PERIOD1)
-
-#define BIT_DTIM1 BIT(15)
-#define BIT_TIM1 BIT(14)
-
-#define BIT_SHIFT_PS_AID_1 0
-#define BIT_MASK_PS_AID_1 0x7ff
-#define BIT_PS_AID_1(x) (((x) & BIT_MASK_PS_AID_1) << BIT_SHIFT_PS_AID_1)
-#define BIT_GET_PS_AID_1(x) (((x) >> BIT_SHIFT_PS_AID_1) & BIT_MASK_PS_AID_1)
-
-/* 2 REG_ASSOCIATED_BFMEE_SEL		(Offset 0x0714) */
-
-#define BIT_TXUSER_ID1 BIT(25)
-
-#define BIT_SHIFT_AID1 16
-#define BIT_MASK_AID1 0x1ff
-#define BIT_AID1(x) (((x) & BIT_MASK_AID1) << BIT_SHIFT_AID1)
-#define BIT_GET_AID1(x) (((x) >> BIT_SHIFT_AID1) & BIT_MASK_AID1)
-
-#define BIT_TXUSER_ID0 BIT(9)
-
-#define BIT_SHIFT_AID0 0
-#define BIT_MASK_AID0 0x1ff
-#define BIT_AID0(x) (((x) & BIT_MASK_AID0) << BIT_SHIFT_AID0)
-#define BIT_GET_AID0(x) (((x) >> BIT_SHIFT_AID0) & BIT_MASK_AID0)
-
-/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */
-
-#define BIT_SHIFT_NDP_RX_STANDBY_TIMER 24
-#define BIT_MASK_NDP_RX_STANDBY_TIMER 0xff
-#define BIT_NDP_RX_STANDBY_TIMER(x)                                            \
-	(((x) & BIT_MASK_NDP_RX_STANDBY_TIMER)                                 \
-	 << BIT_SHIFT_NDP_RX_STANDBY_TIMER)
-#define BIT_GET_NDP_RX_STANDBY_TIMER(x)                                        \
-	(((x) >> BIT_SHIFT_NDP_RX_STANDBY_TIMER) &                             \
-	 BIT_MASK_NDP_RX_STANDBY_TIMER)
-
-#define BIT_SHIFT_CSI_RPT_OFFSET_HT 16
-#define BIT_MASK_CSI_RPT_OFFSET_HT 0xff
-#define BIT_CSI_RPT_OFFSET_HT(x)                                               \
-	(((x) & BIT_MASK_CSI_RPT_OFFSET_HT) << BIT_SHIFT_CSI_RPT_OFFSET_HT)
-#define BIT_GET_CSI_RPT_OFFSET_HT(x)                                           \
-	(((x) >> BIT_SHIFT_CSI_RPT_OFFSET_HT) & BIT_MASK_CSI_RPT_OFFSET_HT)
-
-/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */
-
-#define BIT_SHIFT_R_WMAC_VHT_CATEGORY 8
-#define BIT_MASK_R_WMAC_VHT_CATEGORY 0xff
-#define BIT_R_WMAC_VHT_CATEGORY(x)                                             \
-	(((x) & BIT_MASK_R_WMAC_VHT_CATEGORY) << BIT_SHIFT_R_WMAC_VHT_CATEGORY)
-#define BIT_GET_R_WMAC_VHT_CATEGORY(x)                                         \
-	(((x) >> BIT_SHIFT_R_WMAC_VHT_CATEGORY) & BIT_MASK_R_WMAC_VHT_CATEGORY)
-
-/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */
-
-#define BIT_R_WMAC_USE_NSTS BIT(7)
-#define BIT_R_DISABLE_CHECK_VHTSIGB_CRC BIT(6)
-#define BIT_R_DISABLE_CHECK_VHTSIGA_CRC BIT(5)
-#define BIT_R_WMAC_BFPARAM_SEL BIT(4)
-#define BIT_R_WMAC_CSISEQ_SEL BIT(3)
-#define BIT_R_WMAC_CSI_WITHHTC_EN BIT(2)
-#define BIT_R_WMAC_HT_NDPA_EN BIT(1)
-#define BIT_R_WMAC_VHT_NDPA_EN BIT(0)
-
-/* 2 REG_NS_ARP_CTRL				(Offset 0x0720) */
-
-#define BIT_R_WMAC_NSARP_RSPEN BIT(15)
-#define BIT_R_WMAC_NSARP_RARP BIT(9)
-#define BIT_R_WMAC_NSARP_RIPV6 BIT(8)
-
-#define BIT_SHIFT_R_WMAC_NSARP_MODEN 6
-#define BIT_MASK_R_WMAC_NSARP_MODEN 0x3
-#define BIT_R_WMAC_NSARP_MODEN(x)                                              \
-	(((x) & BIT_MASK_R_WMAC_NSARP_MODEN) << BIT_SHIFT_R_WMAC_NSARP_MODEN)
-#define BIT_GET_R_WMAC_NSARP_MODEN(x)                                          \
-	(((x) >> BIT_SHIFT_R_WMAC_NSARP_MODEN) & BIT_MASK_R_WMAC_NSARP_MODEN)
-
-#define BIT_SHIFT_R_WMAC_NSARP_RSPFTP 4
-#define BIT_MASK_R_WMAC_NSARP_RSPFTP 0x3
-#define BIT_R_WMAC_NSARP_RSPFTP(x)                                             \
-	(((x) & BIT_MASK_R_WMAC_NSARP_RSPFTP) << BIT_SHIFT_R_WMAC_NSARP_RSPFTP)
-#define BIT_GET_R_WMAC_NSARP_RSPFTP(x)                                         \
-	(((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPFTP) & BIT_MASK_R_WMAC_NSARP_RSPFTP)
-
-#define BIT_SHIFT_R_WMAC_NSARP_RSPSEC 0
-#define BIT_MASK_R_WMAC_NSARP_RSPSEC 0xf
-#define BIT_R_WMAC_NSARP_RSPSEC(x)                                             \
-	(((x) & BIT_MASK_R_WMAC_NSARP_RSPSEC) << BIT_SHIFT_R_WMAC_NSARP_RSPSEC)
-#define BIT_GET_R_WMAC_NSARP_RSPSEC(x)                                         \
-	(((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPSEC) & BIT_MASK_R_WMAC_NSARP_RSPSEC)
-
-/* 2 REG_NS_ARP_INFO				(Offset 0x0724) */
-
-#define BIT_REQ_IS_MCNS BIT(23)
-#define BIT_REQ_IS_UCNS BIT(22)
-#define BIT_REQ_IS_USNS BIT(21)
-#define BIT_REQ_IS_ARP BIT(20)
-#define BIT_EXPRSP_MH_WITHQC BIT(19)
-
-#define BIT_SHIFT_EXPRSP_SECTYPE 16
-#define BIT_MASK_EXPRSP_SECTYPE 0x7
-#define BIT_EXPRSP_SECTYPE(x)                                                  \
-	(((x) & BIT_MASK_EXPRSP_SECTYPE) << BIT_SHIFT_EXPRSP_SECTYPE)
-#define BIT_GET_EXPRSP_SECTYPE(x)                                              \
-	(((x) >> BIT_SHIFT_EXPRSP_SECTYPE) & BIT_MASK_EXPRSP_SECTYPE)
-
-#define BIT_SHIFT_EXPRSP_CHKSM_7_TO_0 8
-#define BIT_MASK_EXPRSP_CHKSM_7_TO_0 0xff
-#define BIT_EXPRSP_CHKSM_7_TO_0(x)                                             \
-	(((x) & BIT_MASK_EXPRSP_CHKSM_7_TO_0) << BIT_SHIFT_EXPRSP_CHKSM_7_TO_0)
-#define BIT_GET_EXPRSP_CHKSM_7_TO_0(x)                                         \
-	(((x) >> BIT_SHIFT_EXPRSP_CHKSM_7_TO_0) & BIT_MASK_EXPRSP_CHKSM_7_TO_0)
-
-#define BIT_SHIFT_EXPRSP_CHKSM_15_TO_8 0
-#define BIT_MASK_EXPRSP_CHKSM_15_TO_8 0xff
-#define BIT_EXPRSP_CHKSM_15_TO_8(x)                                            \
-	(((x) & BIT_MASK_EXPRSP_CHKSM_15_TO_8)                                 \
-	 << BIT_SHIFT_EXPRSP_CHKSM_15_TO_8)
-#define BIT_GET_EXPRSP_CHKSM_15_TO_8(x)                                        \
-	(((x) >> BIT_SHIFT_EXPRSP_CHKSM_15_TO_8) &                             \
-	 BIT_MASK_EXPRSP_CHKSM_15_TO_8)
-
-/* 2 REG_BEAMFORMING_INFO_NSARP_V1		(Offset 0x0728) */
-
-#define BIT_SHIFT_WMAC_ARPIP 0
-#define BIT_MASK_WMAC_ARPIP 0xffffffffL
-#define BIT_WMAC_ARPIP(x) (((x) & BIT_MASK_WMAC_ARPIP) << BIT_SHIFT_WMAC_ARPIP)
-#define BIT_GET_WMAC_ARPIP(x)                                                  \
-	(((x) >> BIT_SHIFT_WMAC_ARPIP) & BIT_MASK_WMAC_ARPIP)
-
-/* 2 REG_BEAMFORMING_INFO_NSARP		(Offset 0x072C) */
-
-#define BIT_SHIFT_BEAMFORMING_INFO 0
-#define BIT_MASK_BEAMFORMING_INFO 0xffffffffL
-#define BIT_BEAMFORMING_INFO(x)                                                \
-	(((x) & BIT_MASK_BEAMFORMING_INFO) << BIT_SHIFT_BEAMFORMING_INFO)
-#define BIT_GET_BEAMFORMING_INFO(x)                                            \
-	(((x) >> BIT_SHIFT_BEAMFORMING_INFO) & BIT_MASK_BEAMFORMING_INFO)
-
-/* 2 REG_WMAC_RTX_CTX_SUBTYPE_CFG		(Offset 0x0750) */
-
-#define BIT_SHIFT_R_WMAC_CTX_SUBTYPE 4
-#define BIT_MASK_R_WMAC_CTX_SUBTYPE 0xf
-#define BIT_R_WMAC_CTX_SUBTYPE(x)                                              \
-	(((x) & BIT_MASK_R_WMAC_CTX_SUBTYPE) << BIT_SHIFT_R_WMAC_CTX_SUBTYPE)
-#define BIT_GET_R_WMAC_CTX_SUBTYPE(x)                                          \
-	(((x) >> BIT_SHIFT_R_WMAC_CTX_SUBTYPE) & BIT_MASK_R_WMAC_CTX_SUBTYPE)
-
-#define BIT_SHIFT_R_WMAC_RTX_SUBTYPE 0
-#define BIT_MASK_R_WMAC_RTX_SUBTYPE 0xf
-#define BIT_R_WMAC_RTX_SUBTYPE(x)                                              \
-	(((x) & BIT_MASK_R_WMAC_RTX_SUBTYPE) << BIT_SHIFT_R_WMAC_RTX_SUBTYPE)
-#define BIT_GET_R_WMAC_RTX_SUBTYPE(x)                                          \
-	(((x) >> BIT_SHIFT_R_WMAC_RTX_SUBTYPE) & BIT_MASK_R_WMAC_RTX_SUBTYPE)
-
-/* 2 REG_BT_COEX_V2				(Offset 0x0762) */
-
-#define BIT_GNT_BT_POLARITY BIT(12)
-#define BIT_GNT_BT_BYPASS_PRIORITY BIT(8)
-
-#define BIT_SHIFT_TIMER 0
-#define BIT_MASK_TIMER 0xff
-#define BIT_TIMER(x) (((x) & BIT_MASK_TIMER) << BIT_SHIFT_TIMER)
-#define BIT_GET_TIMER(x) (((x) >> BIT_SHIFT_TIMER) & BIT_MASK_TIMER)
-
-/* 2 REG_BT_COEX				(Offset 0x0764) */
-
-#define BIT_R_GNT_BT_RFC_SW BIT(12)
-#define BIT_R_GNT_BT_RFC_SW_EN BIT(11)
-#define BIT_R_GNT_BT_BB_SW BIT(10)
-#define BIT_R_GNT_BT_BB_SW_EN BIT(9)
-#define BIT_R_BT_CNT_THREN BIT(8)
-
-#define BIT_SHIFT_R_BT_CNT_THR 0
-#define BIT_MASK_R_BT_CNT_THR 0xff
-#define BIT_R_BT_CNT_THR(x)                                                    \
-	(((x) & BIT_MASK_R_BT_CNT_THR) << BIT_SHIFT_R_BT_CNT_THR)
-#define BIT_GET_R_BT_CNT_THR(x)                                                \
-	(((x) >> BIT_SHIFT_R_BT_CNT_THR) & BIT_MASK_R_BT_CNT_THR)
-
-/* 2 REG_WLAN_ACT_MASK_CTRL			(Offset 0x0768) */
-
-#define BIT_WLRX_TER_BY_CTL BIT(43)
-#define BIT_WLRX_TER_BY_AD BIT(42)
-#define BIT_ANT_DIVERSITY_SEL BIT(41)
-#define BIT_ANTSEL_FOR_BT_CTRL_EN BIT(40)
-#define BIT_WLACT_LOW_GNTWL_EN BIT(34)
-#define BIT_WLACT_HIGH_GNTBT_EN BIT(33)
-
-/* 2 REG_WLAN_ACT_MASK_CTRL			(Offset 0x0768) */
-
-#define BIT_NAV_UPPER_V1 BIT(32)
-
-/* 2 REG_WLAN_ACT_MASK_CTRL			(Offset 0x0768) */
-
-#define BIT_SHIFT_RXMYRTS_NAV_V1 8
-#define BIT_MASK_RXMYRTS_NAV_V1 0xff
-#define BIT_RXMYRTS_NAV_V1(x)                                                  \
-	(((x) & BIT_MASK_RXMYRTS_NAV_V1) << BIT_SHIFT_RXMYRTS_NAV_V1)
-#define BIT_GET_RXMYRTS_NAV_V1(x)                                              \
-	(((x) >> BIT_SHIFT_RXMYRTS_NAV_V1) & BIT_MASK_RXMYRTS_NAV_V1)
-
-#define BIT_SHIFT_RTSRST_V1 0
-#define BIT_MASK_RTSRST_V1 0xff
-#define BIT_RTSRST_V1(x) (((x) & BIT_MASK_RTSRST_V1) << BIT_SHIFT_RTSRST_V1)
-#define BIT_GET_RTSRST_V1(x) (((x) >> BIT_SHIFT_RTSRST_V1) & BIT_MASK_RTSRST_V1)
-
-/* 2 REG_BT_COEX_ENHANCED_INTR_CTRL		(Offset 0x076E) */
-
-#define BIT_SHIFT_BT_STAT_DELAY 12
-#define BIT_MASK_BT_STAT_DELAY 0xf
-#define BIT_BT_STAT_DELAY(x)                                                   \
-	(((x) & BIT_MASK_BT_STAT_DELAY) << BIT_SHIFT_BT_STAT_DELAY)
-#define BIT_GET_BT_STAT_DELAY(x)                                               \
-	(((x) >> BIT_SHIFT_BT_STAT_DELAY) & BIT_MASK_BT_STAT_DELAY)
-
-#define BIT_SHIFT_BT_TRX_INIT_DETECT 8
-#define BIT_MASK_BT_TRX_INIT_DETECT 0xf
-#define BIT_BT_TRX_INIT_DETECT(x)                                              \
-	(((x) & BIT_MASK_BT_TRX_INIT_DETECT) << BIT_SHIFT_BT_TRX_INIT_DETECT)
-#define BIT_GET_BT_TRX_INIT_DETECT(x)                                          \
-	(((x) >> BIT_SHIFT_BT_TRX_INIT_DETECT) & BIT_MASK_BT_TRX_INIT_DETECT)
-
-#define BIT_SHIFT_BT_PRI_DETECT_TO 4
-#define BIT_MASK_BT_PRI_DETECT_TO 0xf
-#define BIT_BT_PRI_DETECT_TO(x)                                                \
-	(((x) & BIT_MASK_BT_PRI_DETECT_TO) << BIT_SHIFT_BT_PRI_DETECT_TO)
-#define BIT_GET_BT_PRI_DETECT_TO(x)                                            \
-	(((x) >> BIT_SHIFT_BT_PRI_DETECT_TO) & BIT_MASK_BT_PRI_DETECT_TO)
-
-#define BIT_R_GRANTALL_WLMASK BIT(3)
-#define BIT_STATIS_BT_EN BIT(2)
-#define BIT_WL_ACT_MASK_ENABLE BIT(1)
-#define BIT_ENHANCED_BT BIT(0)
-
-/* 2 REG_BT_ACT_STATISTICS			(Offset 0x0770) */
-
-#define BIT_SHIFT_STATIS_BT_LO_RX (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_STATIS_BT_LO_RX 0xffff
-#define BIT_STATIS_BT_LO_RX(x)                                                 \
-	(((x) & BIT_MASK_STATIS_BT_LO_RX) << BIT_SHIFT_STATIS_BT_LO_RX)
-#define BIT_GET_STATIS_BT_LO_RX(x)                                             \
-	(((x) >> BIT_SHIFT_STATIS_BT_LO_RX) & BIT_MASK_STATIS_BT_LO_RX)
-
-#define BIT_SHIFT_STATIS_BT_LO_TX (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_STATIS_BT_LO_TX 0xffff
-#define BIT_STATIS_BT_LO_TX(x)                                                 \
-	(((x) & BIT_MASK_STATIS_BT_LO_TX) << BIT_SHIFT_STATIS_BT_LO_TX)
-#define BIT_GET_STATIS_BT_LO_TX(x)                                             \
-	(((x) >> BIT_SHIFT_STATIS_BT_LO_TX) & BIT_MASK_STATIS_BT_LO_TX)
-
-/* 2 REG_BT_ACT_STATISTICS			(Offset 0x0770) */
-
-#define BIT_SHIFT_STATIS_BT_HI_RX 16
-#define BIT_MASK_STATIS_BT_HI_RX 0xffff
-#define BIT_STATIS_BT_HI_RX(x)                                                 \
-	(((x) & BIT_MASK_STATIS_BT_HI_RX) << BIT_SHIFT_STATIS_BT_HI_RX)
-#define BIT_GET_STATIS_BT_HI_RX(x)                                             \
-	(((x) >> BIT_SHIFT_STATIS_BT_HI_RX) & BIT_MASK_STATIS_BT_HI_RX)
-
-#define BIT_SHIFT_STATIS_BT_HI_TX 0
-#define BIT_MASK_STATIS_BT_HI_TX 0xffff
-#define BIT_STATIS_BT_HI_TX(x)                                                 \
-	(((x) & BIT_MASK_STATIS_BT_HI_TX) << BIT_SHIFT_STATIS_BT_HI_TX)
-#define BIT_GET_STATIS_BT_HI_TX(x)                                             \
-	(((x) >> BIT_SHIFT_STATIS_BT_HI_TX) & BIT_MASK_STATIS_BT_HI_TX)
-
-/* 2 REG_BT_STATISTICS_CONTROL_REGISTER	(Offset 0x0778) */
-
-#define BIT_SHIFT_R_BT_CMD_RPT 16
-#define BIT_MASK_R_BT_CMD_RPT 0xffff
-#define BIT_R_BT_CMD_RPT(x)                                                    \
-	(((x) & BIT_MASK_R_BT_CMD_RPT) << BIT_SHIFT_R_BT_CMD_RPT)
-#define BIT_GET_R_BT_CMD_RPT(x)                                                \
-	(((x) >> BIT_SHIFT_R_BT_CMD_RPT) & BIT_MASK_R_BT_CMD_RPT)
-
-#define BIT_SHIFT_R_RPT_FROM_BT 8
-#define BIT_MASK_R_RPT_FROM_BT 0xff
-#define BIT_R_RPT_FROM_BT(x)                                                   \
-	(((x) & BIT_MASK_R_RPT_FROM_BT) << BIT_SHIFT_R_RPT_FROM_BT)
-#define BIT_GET_R_RPT_FROM_BT(x)                                               \
-	(((x) >> BIT_SHIFT_R_RPT_FROM_BT) & BIT_MASK_R_RPT_FROM_BT)
-
-#define BIT_SHIFT_BT_HID_ISR_SET 6
-#define BIT_MASK_BT_HID_ISR_SET 0x3
-#define BIT_BT_HID_ISR_SET(x)                                                  \
-	(((x) & BIT_MASK_BT_HID_ISR_SET) << BIT_SHIFT_BT_HID_ISR_SET)
-#define BIT_GET_BT_HID_ISR_SET(x)                                              \
-	(((x) >> BIT_SHIFT_BT_HID_ISR_SET) & BIT_MASK_BT_HID_ISR_SET)
-
-#define BIT_TDMA_BT_START_NOTIFY BIT(5)
-#define BIT_ENABLE_TDMA_FW_MODE BIT(4)
-#define BIT_ENABLE_PTA_TDMA_MODE BIT(3)
-#define BIT_ENABLE_COEXIST_TAB_IN_TDMA BIT(2)
-#define BIT_GPIO2_GPIO3_EXANGE_OR_NO_BT_CCA BIT(1)
-#define BIT_RTK_BT_ENABLE BIT(0)
-
-/* 2 REG_BT_STATUS_REPORT_REGISTER		(Offset 0x077C) */
-
-#define BIT_SHIFT_BT_PROFILE 24
-#define BIT_MASK_BT_PROFILE 0xff
-#define BIT_BT_PROFILE(x) (((x) & BIT_MASK_BT_PROFILE) << BIT_SHIFT_BT_PROFILE)
-#define BIT_GET_BT_PROFILE(x)                                                  \
-	(((x) >> BIT_SHIFT_BT_PROFILE) & BIT_MASK_BT_PROFILE)
-
-#define BIT_SHIFT_BT_POWER 16
-#define BIT_MASK_BT_POWER 0xff
-#define BIT_BT_POWER(x) (((x) & BIT_MASK_BT_POWER) << BIT_SHIFT_BT_POWER)
-#define BIT_GET_BT_POWER(x) (((x) >> BIT_SHIFT_BT_POWER) & BIT_MASK_BT_POWER)
-
-#define BIT_SHIFT_BT_PREDECT_STATUS 8
-#define BIT_MASK_BT_PREDECT_STATUS 0xff
-#define BIT_BT_PREDECT_STATUS(x)                                               \
-	(((x) & BIT_MASK_BT_PREDECT_STATUS) << BIT_SHIFT_BT_PREDECT_STATUS)
-#define BIT_GET_BT_PREDECT_STATUS(x)                                           \
-	(((x) >> BIT_SHIFT_BT_PREDECT_STATUS) & BIT_MASK_BT_PREDECT_STATUS)
-
-#define BIT_SHIFT_BT_CMD_INFO 0
-#define BIT_MASK_BT_CMD_INFO 0xff
-#define BIT_BT_CMD_INFO(x)                                                     \
-	(((x) & BIT_MASK_BT_CMD_INFO) << BIT_SHIFT_BT_CMD_INFO)
-#define BIT_GET_BT_CMD_INFO(x)                                                 \
-	(((x) >> BIT_SHIFT_BT_CMD_INFO) & BIT_MASK_BT_CMD_INFO)
-
-/* 2 REG_BT_INTERRUPT_CONTROL_REGISTER	(Offset 0x0780) */
-
-#define BIT_EN_MAC_NULL_PKT_NOTIFY BIT(31)
-#define BIT_EN_WLAN_RPT_AND_BT_QUERY BIT(30)
-#define BIT_EN_BT_STSTUS_RPT BIT(29)
-#define BIT_EN_BT_POWER BIT(28)
-#define BIT_EN_BT_CHANNEL BIT(27)
-#define BIT_EN_BT_SLOT_CHANGE BIT(26)
-#define BIT_EN_BT_PROFILE_OR_HID BIT(25)
-#define BIT_WLAN_RPT_NOTIFY BIT(24)
-
-#define BIT_SHIFT_WLAN_RPT_DATA 16
-#define BIT_MASK_WLAN_RPT_DATA 0xff
-#define BIT_WLAN_RPT_DATA(x)                                                   \
-	(((x) & BIT_MASK_WLAN_RPT_DATA) << BIT_SHIFT_WLAN_RPT_DATA)
-#define BIT_GET_WLAN_RPT_DATA(x)                                               \
-	(((x) >> BIT_SHIFT_WLAN_RPT_DATA) & BIT_MASK_WLAN_RPT_DATA)
-
-#define BIT_SHIFT_CMD_ID 8
-#define BIT_MASK_CMD_ID 0xff
-#define BIT_CMD_ID(x) (((x) & BIT_MASK_CMD_ID) << BIT_SHIFT_CMD_ID)
-#define BIT_GET_CMD_ID(x) (((x) >> BIT_SHIFT_CMD_ID) & BIT_MASK_CMD_ID)
-
-#define BIT_SHIFT_BT_DATA 0
-#define BIT_MASK_BT_DATA 0xff
-#define BIT_BT_DATA(x) (((x) & BIT_MASK_BT_DATA) << BIT_SHIFT_BT_DATA)
-#define BIT_GET_BT_DATA(x) (((x) >> BIT_SHIFT_BT_DATA) & BIT_MASK_BT_DATA)
-
-/* 2 REG_WLAN_REPORT_TIME_OUT_CONTROL_REGISTER (Offset 0x0784) */
-
-#define BIT_SHIFT_WLAN_RPT_TO 0
-#define BIT_MASK_WLAN_RPT_TO 0xff
-#define BIT_WLAN_RPT_TO(x)                                                     \
-	(((x) & BIT_MASK_WLAN_RPT_TO) << BIT_SHIFT_WLAN_RPT_TO)
-#define BIT_GET_WLAN_RPT_TO(x)                                                 \
-	(((x) >> BIT_SHIFT_WLAN_RPT_TO) & BIT_MASK_WLAN_RPT_TO)
-
-/* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER (Offset 0x0785) */
-
-#define BIT_SHIFT_ISOLATION_CHK 1
-#define BIT_MASK_ISOLATION_CHK 0x7fffffffffffffffffffL
-#define BIT_ISOLATION_CHK(x)                                                   \
-	(((x) & BIT_MASK_ISOLATION_CHK) << BIT_SHIFT_ISOLATION_CHK)
-#define BIT_GET_ISOLATION_CHK(x)                                               \
-	(((x) >> BIT_SHIFT_ISOLATION_CHK) & BIT_MASK_ISOLATION_CHK)
-
-/* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER (Offset 0x0785) */
-
-#define BIT_ISOLATION_EN BIT(0)
-
-/* 2 REG_BT_INTERRUPT_STATUS_REGISTER	(Offset 0x078F) */
-
-#define BIT_BT_HID_ISR BIT(7)
-#define BIT_BT_QUERY_ISR BIT(6)
-#define BIT_MAC_NULL_PKT_NOTIFY_ISR BIT(5)
-#define BIT_WLAN_RPT_ISR BIT(4)
-#define BIT_BT_POWER_ISR BIT(3)
-#define BIT_BT_CHANNEL_ISR BIT(2)
-#define BIT_BT_SLOT_CHANGE_ISR BIT(1)
-#define BIT_BT_PROFILE_ISR BIT(0)
-
-/* 2 REG_BT_TDMA_TIME_REGISTER		(Offset 0x0790) */
-
-#define BIT_SHIFT_BT_TIME 6
-#define BIT_MASK_BT_TIME 0x3ffffff
-#define BIT_BT_TIME(x) (((x) & BIT_MASK_BT_TIME) << BIT_SHIFT_BT_TIME)
-#define BIT_GET_BT_TIME(x) (((x) >> BIT_SHIFT_BT_TIME) & BIT_MASK_BT_TIME)
-
-#define BIT_SHIFT_BT_RPT_SAMPLE_RATE 0
-#define BIT_MASK_BT_RPT_SAMPLE_RATE 0x3f
-#define BIT_BT_RPT_SAMPLE_RATE(x)                                              \
-	(((x) & BIT_MASK_BT_RPT_SAMPLE_RATE) << BIT_SHIFT_BT_RPT_SAMPLE_RATE)
-#define BIT_GET_BT_RPT_SAMPLE_RATE(x)                                          \
-	(((x) >> BIT_SHIFT_BT_RPT_SAMPLE_RATE) & BIT_MASK_BT_RPT_SAMPLE_RATE)
-
-/* 2 REG_BT_ACT_REGISTER			(Offset 0x0794) */
-
-#define BIT_SHIFT_BT_EISR_EN 16
-#define BIT_MASK_BT_EISR_EN 0xff
-#define BIT_BT_EISR_EN(x) (((x) & BIT_MASK_BT_EISR_EN) << BIT_SHIFT_BT_EISR_EN)
-#define BIT_GET_BT_EISR_EN(x)                                                  \
-	(((x) >> BIT_SHIFT_BT_EISR_EN) & BIT_MASK_BT_EISR_EN)
-
-#define BIT_BT_ACT_FALLING_ISR BIT(10)
-#define BIT_BT_ACT_RISING_ISR BIT(9)
-#define BIT_TDMA_TO_ISR BIT(8)
-
-#define BIT_SHIFT_BT_CH 0
-#define BIT_MASK_BT_CH 0xff
-#define BIT_BT_CH(x) (((x) & BIT_MASK_BT_CH) << BIT_SHIFT_BT_CH)
-#define BIT_GET_BT_CH(x) (((x) >> BIT_SHIFT_BT_CH) & BIT_MASK_BT_CH)
-
-/* 2 REG_OBFF_CTRL_BASIC			(Offset 0x0798) */
-
-#define BIT_OBFF_EN_V1 BIT(31)
-
-#define BIT_SHIFT_OBFF_STATE_V1 28
-#define BIT_MASK_OBFF_STATE_V1 0x3
-#define BIT_OBFF_STATE_V1(x)                                                   \
-	(((x) & BIT_MASK_OBFF_STATE_V1) << BIT_SHIFT_OBFF_STATE_V1)
-#define BIT_GET_OBFF_STATE_V1(x)                                               \
-	(((x) >> BIT_SHIFT_OBFF_STATE_V1) & BIT_MASK_OBFF_STATE_V1)
-
-#define BIT_OBFF_ACT_RXDMA_EN BIT(27)
-#define BIT_OBFF_BLOCK_INT_EN BIT(26)
-#define BIT_OBFF_AUTOACT_EN BIT(25)
-#define BIT_OBFF_AUTOIDLE_EN BIT(24)
-
-#define BIT_SHIFT_WAKE_MAX_PLS 20
-#define BIT_MASK_WAKE_MAX_PLS 0x7
-#define BIT_WAKE_MAX_PLS(x)                                                    \
-	(((x) & BIT_MASK_WAKE_MAX_PLS) << BIT_SHIFT_WAKE_MAX_PLS)
-#define BIT_GET_WAKE_MAX_PLS(x)                                                \
-	(((x) >> BIT_SHIFT_WAKE_MAX_PLS) & BIT_MASK_WAKE_MAX_PLS)
-
-#define BIT_SHIFT_WAKE_MIN_PLS 16
-#define BIT_MASK_WAKE_MIN_PLS 0x7
-#define BIT_WAKE_MIN_PLS(x)                                                    \
-	(((x) & BIT_MASK_WAKE_MIN_PLS) << BIT_SHIFT_WAKE_MIN_PLS)
-#define BIT_GET_WAKE_MIN_PLS(x)                                                \
-	(((x) >> BIT_SHIFT_WAKE_MIN_PLS) & BIT_MASK_WAKE_MIN_PLS)
-
-#define BIT_SHIFT_WAKE_MAX_F2F 12
-#define BIT_MASK_WAKE_MAX_F2F 0x7
-#define BIT_WAKE_MAX_F2F(x)                                                    \
-	(((x) & BIT_MASK_WAKE_MAX_F2F) << BIT_SHIFT_WAKE_MAX_F2F)
-#define BIT_GET_WAKE_MAX_F2F(x)                                                \
-	(((x) >> BIT_SHIFT_WAKE_MAX_F2F) & BIT_MASK_WAKE_MAX_F2F)
-
-#define BIT_SHIFT_WAKE_MIN_F2F 8
-#define BIT_MASK_WAKE_MIN_F2F 0x7
-#define BIT_WAKE_MIN_F2F(x)                                                    \
-	(((x) & BIT_MASK_WAKE_MIN_F2F) << BIT_SHIFT_WAKE_MIN_F2F)
-#define BIT_GET_WAKE_MIN_F2F(x)                                                \
-	(((x) >> BIT_SHIFT_WAKE_MIN_F2F) & BIT_MASK_WAKE_MIN_F2F)
-
-#define BIT_APP_CPU_ACT_V1 BIT(3)
-#define BIT_APP_OBFF_V1 BIT(2)
-#define BIT_APP_IDLE_V1 BIT(1)
-#define BIT_APP_INIT_V1 BIT(0)
-
-/* 2 REG_OBFF_CTRL2_TIMER			(Offset 0x079C) */
-
-#define BIT_SHIFT_RX_HIGH_TIMER_IDX 24
-#define BIT_MASK_RX_HIGH_TIMER_IDX 0x7
-#define BIT_RX_HIGH_TIMER_IDX(x)                                               \
-	(((x) & BIT_MASK_RX_HIGH_TIMER_IDX) << BIT_SHIFT_RX_HIGH_TIMER_IDX)
-#define BIT_GET_RX_HIGH_TIMER_IDX(x)                                           \
-	(((x) >> BIT_SHIFT_RX_HIGH_TIMER_IDX) & BIT_MASK_RX_HIGH_TIMER_IDX)
-
-#define BIT_SHIFT_RX_MED_TIMER_IDX 16
-#define BIT_MASK_RX_MED_TIMER_IDX 0x7
-#define BIT_RX_MED_TIMER_IDX(x)                                                \
-	(((x) & BIT_MASK_RX_MED_TIMER_IDX) << BIT_SHIFT_RX_MED_TIMER_IDX)
-#define BIT_GET_RX_MED_TIMER_IDX(x)                                            \
-	(((x) >> BIT_SHIFT_RX_MED_TIMER_IDX) & BIT_MASK_RX_MED_TIMER_IDX)
-
-#define BIT_SHIFT_RX_LOW_TIMER_IDX 8
-#define BIT_MASK_RX_LOW_TIMER_IDX 0x7
-#define BIT_RX_LOW_TIMER_IDX(x)                                                \
-	(((x) & BIT_MASK_RX_LOW_TIMER_IDX) << BIT_SHIFT_RX_LOW_TIMER_IDX)
-#define BIT_GET_RX_LOW_TIMER_IDX(x)                                            \
-	(((x) >> BIT_SHIFT_RX_LOW_TIMER_IDX) & BIT_MASK_RX_LOW_TIMER_IDX)
-
-#define BIT_SHIFT_OBFF_INT_TIMER_IDX 0
-#define BIT_MASK_OBFF_INT_TIMER_IDX 0x7
-#define BIT_OBFF_INT_TIMER_IDX(x)                                              \
-	(((x) & BIT_MASK_OBFF_INT_TIMER_IDX) << BIT_SHIFT_OBFF_INT_TIMER_IDX)
-#define BIT_GET_OBFF_INT_TIMER_IDX(x)                                          \
-	(((x) >> BIT_SHIFT_OBFF_INT_TIMER_IDX) & BIT_MASK_OBFF_INT_TIMER_IDX)
-
-/* 2 REG_LTR_CTRL_BASIC			(Offset 0x07A0) */
-
-#define BIT_LTR_EN_V1 BIT(31)
-#define BIT_LTR_HW_EN_V1 BIT(30)
-#define BIT_LRT_ACT_CTS_EN BIT(29)
-#define BIT_LTR_ACT_RXPKT_EN BIT(28)
-#define BIT_LTR_ACT_RXDMA_EN BIT(27)
-#define BIT_LTR_IDLE_NO_SNOOP BIT(26)
-#define BIT_SPDUP_MGTPKT BIT(25)
-#define BIT_RX_AGG_EN BIT(24)
-#define BIT_APP_LTR_ACT BIT(23)
-#define BIT_APP_LTR_IDLE BIT(22)
-
-#define BIT_SHIFT_HIGH_RATE_TRIG_SEL 20
-#define BIT_MASK_HIGH_RATE_TRIG_SEL 0x3
-#define BIT_HIGH_RATE_TRIG_SEL(x)                                              \
-	(((x) & BIT_MASK_HIGH_RATE_TRIG_SEL) << BIT_SHIFT_HIGH_RATE_TRIG_SEL)
-#define BIT_GET_HIGH_RATE_TRIG_SEL(x)                                          \
-	(((x) >> BIT_SHIFT_HIGH_RATE_TRIG_SEL) & BIT_MASK_HIGH_RATE_TRIG_SEL)
-
-#define BIT_SHIFT_MED_RATE_TRIG_SEL 18
-#define BIT_MASK_MED_RATE_TRIG_SEL 0x3
-#define BIT_MED_RATE_TRIG_SEL(x)                                               \
-	(((x) & BIT_MASK_MED_RATE_TRIG_SEL) << BIT_SHIFT_MED_RATE_TRIG_SEL)
-#define BIT_GET_MED_RATE_TRIG_SEL(x)                                           \
-	(((x) >> BIT_SHIFT_MED_RATE_TRIG_SEL) & BIT_MASK_MED_RATE_TRIG_SEL)
-
-#define BIT_SHIFT_LOW_RATE_TRIG_SEL 16
-#define BIT_MASK_LOW_RATE_TRIG_SEL 0x3
-#define BIT_LOW_RATE_TRIG_SEL(x)                                               \
-	(((x) & BIT_MASK_LOW_RATE_TRIG_SEL) << BIT_SHIFT_LOW_RATE_TRIG_SEL)
-#define BIT_GET_LOW_RATE_TRIG_SEL(x)                                           \
-	(((x) >> BIT_SHIFT_LOW_RATE_TRIG_SEL) & BIT_MASK_LOW_RATE_TRIG_SEL)
-
-#define BIT_SHIFT_HIGH_RATE_BD_IDX 8
-#define BIT_MASK_HIGH_RATE_BD_IDX 0x7f
-#define BIT_HIGH_RATE_BD_IDX(x)                                                \
-	(((x) & BIT_MASK_HIGH_RATE_BD_IDX) << BIT_SHIFT_HIGH_RATE_BD_IDX)
-#define BIT_GET_HIGH_RATE_BD_IDX(x)                                            \
-	(((x) >> BIT_SHIFT_HIGH_RATE_BD_IDX) & BIT_MASK_HIGH_RATE_BD_IDX)
-
-#define BIT_SHIFT_LOW_RATE_BD_IDX 0
-#define BIT_MASK_LOW_RATE_BD_IDX 0x7f
-#define BIT_LOW_RATE_BD_IDX(x)                                                 \
-	(((x) & BIT_MASK_LOW_RATE_BD_IDX) << BIT_SHIFT_LOW_RATE_BD_IDX)
-#define BIT_GET_LOW_RATE_BD_IDX(x)                                             \
-	(((x) >> BIT_SHIFT_LOW_RATE_BD_IDX) & BIT_MASK_LOW_RATE_BD_IDX)
-
-/* 2 REG_LTR_CTRL2_TIMER_THRESHOLD		(Offset 0x07A4) */
-
-#define BIT_SHIFT_RX_EMPTY_TIMER_IDX 24
-#define BIT_MASK_RX_EMPTY_TIMER_IDX 0x7
-#define BIT_RX_EMPTY_TIMER_IDX(x)                                              \
-	(((x) & BIT_MASK_RX_EMPTY_TIMER_IDX) << BIT_SHIFT_RX_EMPTY_TIMER_IDX)
-#define BIT_GET_RX_EMPTY_TIMER_IDX(x)                                          \
-	(((x) >> BIT_SHIFT_RX_EMPTY_TIMER_IDX) & BIT_MASK_RX_EMPTY_TIMER_IDX)
-
-#define BIT_SHIFT_RX_AFULL_TH_IDX 20
-#define BIT_MASK_RX_AFULL_TH_IDX 0x7
-#define BIT_RX_AFULL_TH_IDX(x)                                                 \
-	(((x) & BIT_MASK_RX_AFULL_TH_IDX) << BIT_SHIFT_RX_AFULL_TH_IDX)
-#define BIT_GET_RX_AFULL_TH_IDX(x)                                             \
-	(((x) >> BIT_SHIFT_RX_AFULL_TH_IDX) & BIT_MASK_RX_AFULL_TH_IDX)
-
-#define BIT_SHIFT_RX_HIGH_TH_IDX 16
-#define BIT_MASK_RX_HIGH_TH_IDX 0x7
-#define BIT_RX_HIGH_TH_IDX(x)                                                  \
-	(((x) & BIT_MASK_RX_HIGH_TH_IDX) << BIT_SHIFT_RX_HIGH_TH_IDX)
-#define BIT_GET_RX_HIGH_TH_IDX(x)                                              \
-	(((x) >> BIT_SHIFT_RX_HIGH_TH_IDX) & BIT_MASK_RX_HIGH_TH_IDX)
-
-#define BIT_SHIFT_RX_MED_TH_IDX 12
-#define BIT_MASK_RX_MED_TH_IDX 0x7
-#define BIT_RX_MED_TH_IDX(x)                                                   \
-	(((x) & BIT_MASK_RX_MED_TH_IDX) << BIT_SHIFT_RX_MED_TH_IDX)
-#define BIT_GET_RX_MED_TH_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_RX_MED_TH_IDX) & BIT_MASK_RX_MED_TH_IDX)
-
-#define BIT_SHIFT_RX_LOW_TH_IDX 8
-#define BIT_MASK_RX_LOW_TH_IDX 0x7
-#define BIT_RX_LOW_TH_IDX(x)                                                   \
-	(((x) & BIT_MASK_RX_LOW_TH_IDX) << BIT_SHIFT_RX_LOW_TH_IDX)
-#define BIT_GET_RX_LOW_TH_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_RX_LOW_TH_IDX) & BIT_MASK_RX_LOW_TH_IDX)
-
-#define BIT_SHIFT_LTR_SPACE_IDX 4
-#define BIT_MASK_LTR_SPACE_IDX 0x3
-#define BIT_LTR_SPACE_IDX(x)                                                   \
-	(((x) & BIT_MASK_LTR_SPACE_IDX) << BIT_SHIFT_LTR_SPACE_IDX)
-#define BIT_GET_LTR_SPACE_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_LTR_SPACE_IDX) & BIT_MASK_LTR_SPACE_IDX)
-
-#define BIT_SHIFT_LTR_IDLE_TIMER_IDX 0
-#define BIT_MASK_LTR_IDLE_TIMER_IDX 0x7
-#define BIT_LTR_IDLE_TIMER_IDX(x)                                              \
-	(((x) & BIT_MASK_LTR_IDLE_TIMER_IDX) << BIT_SHIFT_LTR_IDLE_TIMER_IDX)
-#define BIT_GET_LTR_IDLE_TIMER_IDX(x)                                          \
-	(((x) >> BIT_SHIFT_LTR_IDLE_TIMER_IDX) & BIT_MASK_LTR_IDLE_TIMER_IDX)
-
-/* 2 REG_LTR_IDLE_LATENCY_V1			(Offset 0x07A8) */
-
-#define BIT_SHIFT_LTR_IDLE_L 0
-#define BIT_MASK_LTR_IDLE_L 0xffffffffL
-#define BIT_LTR_IDLE_L(x) (((x) & BIT_MASK_LTR_IDLE_L) << BIT_SHIFT_LTR_IDLE_L)
-#define BIT_GET_LTR_IDLE_L(x)                                                  \
-	(((x) >> BIT_SHIFT_LTR_IDLE_L) & BIT_MASK_LTR_IDLE_L)
-
-/* 2 REG_LTR_ACTIVE_LATENCY_V1		(Offset 0x07AC) */
-
-#define BIT_SHIFT_LTR_ACT_L 0
-#define BIT_MASK_LTR_ACT_L 0xffffffffL
-#define BIT_LTR_ACT_L(x) (((x) & BIT_MASK_LTR_ACT_L) << BIT_SHIFT_LTR_ACT_L)
-#define BIT_GET_LTR_ACT_L(x) (((x) >> BIT_SHIFT_LTR_ACT_L) & BIT_MASK_LTR_ACT_L)
-
-/* 2 REG_ANTENNA_TRAINING_CONTROL_REGISTER	(Offset 0x07B0) */
-
-#define BIT_APPEND_MACID_IN_RESP_EN BIT(50)
-#define BIT_ADDR2_MATCH_EN BIT(49)
-#define BIT_ANTTRN_EN BIT(48)
-
-#define BIT_SHIFT_TRAIN_STA_ADDR 0
-#define BIT_MASK_TRAIN_STA_ADDR 0xffffffffffffL
-#define BIT_TRAIN_STA_ADDR(x)                                                  \
-	(((x) & BIT_MASK_TRAIN_STA_ADDR) << BIT_SHIFT_TRAIN_STA_ADDR)
-#define BIT_GET_TRAIN_STA_ADDR(x)                                              \
-	(((x) >> BIT_SHIFT_TRAIN_STA_ADDR) & BIT_MASK_TRAIN_STA_ADDR)
-
-/* 2 REG_WMAC_PKTCNT_RWD			(Offset 0x07B8) */
-
-#define BIT_SHIFT_PKTCNT_BSSIDMAP 4
-#define BIT_MASK_PKTCNT_BSSIDMAP 0xf
-#define BIT_PKTCNT_BSSIDMAP(x)                                                 \
-	(((x) & BIT_MASK_PKTCNT_BSSIDMAP) << BIT_SHIFT_PKTCNT_BSSIDMAP)
-#define BIT_GET_PKTCNT_BSSIDMAP(x)                                             \
-	(((x) >> BIT_SHIFT_PKTCNT_BSSIDMAP) & BIT_MASK_PKTCNT_BSSIDMAP)
-
-#define BIT_PKTCNT_CNTRST BIT(1)
-#define BIT_PKTCNT_CNTEN BIT(0)
-
-/* 2 REG_WMAC_PKTCNT_CTRL			(Offset 0x07BC) */
-
-#define BIT_WMAC_PKTCNT_TRST BIT(9)
-#define BIT_WMAC_PKTCNT_FEN BIT(8)
-
-#define BIT_SHIFT_WMAC_PKTCNT_CFGAD 0
-#define BIT_MASK_WMAC_PKTCNT_CFGAD 0xff
-#define BIT_WMAC_PKTCNT_CFGAD(x)                                               \
-	(((x) & BIT_MASK_WMAC_PKTCNT_CFGAD) << BIT_SHIFT_WMAC_PKTCNT_CFGAD)
-#define BIT_GET_WMAC_PKTCNT_CFGAD(x)                                           \
-	(((x) >> BIT_SHIFT_WMAC_PKTCNT_CFGAD) & BIT_MASK_WMAC_PKTCNT_CFGAD)
-
-/* 2 REG_IQ_DUMP				(Offset 0x07C0) */
-
-#define BIT_SHIFT_R_WMAC_MATCH_REF_MAC (64 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_MATCH_REF_MAC 0xffffffffL
-#define BIT_R_WMAC_MATCH_REF_MAC(x)                                            \
-	(((x) & BIT_MASK_R_WMAC_MATCH_REF_MAC)                                 \
-	 << BIT_SHIFT_R_WMAC_MATCH_REF_MAC)
-#define BIT_GET_R_WMAC_MATCH_REF_MAC(x)                                        \
-	(((x) >> BIT_SHIFT_R_WMAC_MATCH_REF_MAC) &                             \
-	 BIT_MASK_R_WMAC_MATCH_REF_MAC)
-
-#define BIT_SHIFT_R_WMAC_RX_FIL_LEN (64 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_RX_FIL_LEN 0xffff
-#define BIT_R_WMAC_RX_FIL_LEN(x)                                               \
-	(((x) & BIT_MASK_R_WMAC_RX_FIL_LEN) << BIT_SHIFT_R_WMAC_RX_FIL_LEN)
-#define BIT_GET_R_WMAC_RX_FIL_LEN(x)                                           \
-	(((x) >> BIT_SHIFT_R_WMAC_RX_FIL_LEN) & BIT_MASK_R_WMAC_RX_FIL_LEN)
-
-#define BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH (56 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_RXFIFO_FULL_TH 0xff
-#define BIT_R_WMAC_RXFIFO_FULL_TH(x)                                           \
-	(((x) & BIT_MASK_R_WMAC_RXFIFO_FULL_TH)                                \
-	 << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH)
-#define BIT_GET_R_WMAC_RXFIFO_FULL_TH(x)                                       \
-	(((x) >> BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH) &                            \
-	 BIT_MASK_R_WMAC_RXFIFO_FULL_TH)
-
-#define BIT_R_WMAC_SRCH_TXRPT_TYPE BIT(51)
-#define BIT_R_WMAC_NDP_RST BIT(50)
-#define BIT_R_WMAC_POWINT_EN BIT(49)
-#define BIT_R_WMAC_SRCH_TXRPT_PERPKT BIT(48)
-#define BIT_R_WMAC_SRCH_TXRPT_MID BIT(47)
-#define BIT_R_WMAC_PFIN_TOEN BIT(46)
-#define BIT_R_WMAC_FIL_SECERR BIT(45)
-#define BIT_R_WMAC_FIL_CTLPKTLEN BIT(44)
-#define BIT_R_WMAC_FIL_FCTYPE BIT(43)
-#define BIT_R_WMAC_FIL_FCPROVER BIT(42)
-#define BIT_R_WMAC_PHYSTS_SNIF BIT(41)
-#define BIT_R_WMAC_PHYSTS_PLCP BIT(40)
-#define BIT_R_MAC_TCR_VBONF_RD BIT(39)
-#define BIT_R_WMAC_TCR_MPAR_NDP BIT(38)
-#define BIT_R_WMAC_NDP_FILTER BIT(37)
-#define BIT_R_WMAC_RXLEN_SEL BIT(36)
-#define BIT_R_WMAC_RXLEN_SEL1 BIT(35)
-#define BIT_R_OFDM_FILTER BIT(34)
-#define BIT_R_WMAC_CHK_OFDM_LEN BIT(33)
-
-#define BIT_SHIFT_R_WMAC_MASK_LA_MAC (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_MASK_LA_MAC 0xffffffffL
-#define BIT_R_WMAC_MASK_LA_MAC(x)                                              \
-	(((x) & BIT_MASK_R_WMAC_MASK_LA_MAC) << BIT_SHIFT_R_WMAC_MASK_LA_MAC)
-#define BIT_GET_R_WMAC_MASK_LA_MAC(x)                                          \
-	(((x) >> BIT_SHIFT_R_WMAC_MASK_LA_MAC) & BIT_MASK_R_WMAC_MASK_LA_MAC)
-
-#define BIT_R_WMAC_CHK_CCK_LEN BIT(32)
-
-/* 2 REG_IQ_DUMP				(Offset 0x07C0) */
-
-#define BIT_SHIFT_R_OFDM_LEN 26
-#define BIT_MASK_R_OFDM_LEN 0x3f
-#define BIT_R_OFDM_LEN(x) (((x) & BIT_MASK_R_OFDM_LEN) << BIT_SHIFT_R_OFDM_LEN)
-#define BIT_GET_R_OFDM_LEN(x)                                                  \
-	(((x) >> BIT_SHIFT_R_OFDM_LEN) & BIT_MASK_R_OFDM_LEN)
-
-#define BIT_SHIFT_DUMP_OK_ADDR 15
-#define BIT_MASK_DUMP_OK_ADDR 0x1ffff
-#define BIT_DUMP_OK_ADDR(x)                                                    \
-	(((x) & BIT_MASK_DUMP_OK_ADDR) << BIT_SHIFT_DUMP_OK_ADDR)
-#define BIT_GET_DUMP_OK_ADDR(x)                                                \
-	(((x) >> BIT_SHIFT_DUMP_OK_ADDR) & BIT_MASK_DUMP_OK_ADDR)
-
-#define BIT_SHIFT_R_TRIG_TIME_SEL 8
-#define BIT_MASK_R_TRIG_TIME_SEL 0x7f
-#define BIT_R_TRIG_TIME_SEL(x)                                                 \
-	(((x) & BIT_MASK_R_TRIG_TIME_SEL) << BIT_SHIFT_R_TRIG_TIME_SEL)
-#define BIT_GET_R_TRIG_TIME_SEL(x)                                             \
-	(((x) >> BIT_SHIFT_R_TRIG_TIME_SEL) & BIT_MASK_R_TRIG_TIME_SEL)
-
-#define BIT_SHIFT_R_MAC_TRIG_SEL 6
-#define BIT_MASK_R_MAC_TRIG_SEL 0x3
-#define BIT_R_MAC_TRIG_SEL(x)                                                  \
-	(((x) & BIT_MASK_R_MAC_TRIG_SEL) << BIT_SHIFT_R_MAC_TRIG_SEL)
-#define BIT_GET_R_MAC_TRIG_SEL(x)                                              \
-	(((x) >> BIT_SHIFT_R_MAC_TRIG_SEL) & BIT_MASK_R_MAC_TRIG_SEL)
-
-#define BIT_MAC_TRIG_REG BIT(5)
-
-#define BIT_SHIFT_R_LEVEL_PULSE_SEL 3
-#define BIT_MASK_R_LEVEL_PULSE_SEL 0x3
-#define BIT_R_LEVEL_PULSE_SEL(x)                                               \
-	(((x) & BIT_MASK_R_LEVEL_PULSE_SEL) << BIT_SHIFT_R_LEVEL_PULSE_SEL)
-#define BIT_GET_R_LEVEL_PULSE_SEL(x)                                           \
-	(((x) >> BIT_SHIFT_R_LEVEL_PULSE_SEL) & BIT_MASK_R_LEVEL_PULSE_SEL)
-
-#define BIT_EN_LA_MAC BIT(2)
-#define BIT_R_EN_IQDUMP BIT(1)
-#define BIT_R_IQDATA_DUMP BIT(0)
-
-#define BIT_SHIFT_R_CCK_LEN 0
-#define BIT_MASK_R_CCK_LEN 0xffff
-#define BIT_R_CCK_LEN(x) (((x) & BIT_MASK_R_CCK_LEN) << BIT_SHIFT_R_CCK_LEN)
-#define BIT_GET_R_CCK_LEN(x) (((x) >> BIT_SHIFT_R_CCK_LEN) & BIT_MASK_R_CCK_LEN)
-
-/* 2 REG_WMAC_FTM_CTL			(Offset 0x07CC) */
-
-#define BIT_RXFTM_TXACK_SC BIT(6)
-#define BIT_RXFTM_TXACK_BW BIT(5)
-#define BIT_RXFTM_EN BIT(3)
-#define BIT_RXFTMREQ_BYDRV BIT(2)
-#define BIT_RXFTMREQ_EN BIT(1)
-#define BIT_FTM_EN BIT(0)
-
-/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */
-
-#define BIT_R_WMAC_MHRDDY_LATCH BIT(14)
-
-/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */
-
-#define BIT_R_WMAC_MHRDDY_CLR BIT(13)
-
-/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */
-
-#define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY1 BIT(12)
-
-/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */
-
-#define BIT_WMAC_DIS_VHT_PLCP_CHK_MU BIT(11)
-
-/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */
-
-#define BIT_R_CHK_DELIMIT_LEN BIT(10)
-#define BIT_R_REAPTER_ADDR_MATCH BIT(9)
-#define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY BIT(8)
-#define BIT_R_LATCH_MACHRDY BIT(7)
-#define BIT_R_WMAC_RXFIL_REND BIT(6)
-#define BIT_R_WMAC_MPDURDY_CLR BIT(5)
-#define BIT_R_WMAC_CLRRXSEC BIT(4)
-#define BIT_R_WMAC_RXFIL_RDEL BIT(3)
-#define BIT_R_WMAC_RXFIL_FCSE BIT(2)
-#define BIT_R_WMAC_RXFIL_MESH_DEL BIT(1)
-#define BIT_R_WMAC_RXFIL_MASKM BIT(0)
-
-/* 2 REG_NDP_SIG				(Offset 0x07E0) */
-
-#define BIT_SHIFT_R_WMAC_TXNDP_SIGB 0
-#define BIT_MASK_R_WMAC_TXNDP_SIGB 0x1fffff
-#define BIT_R_WMAC_TXNDP_SIGB(x)                                               \
-	(((x) & BIT_MASK_R_WMAC_TXNDP_SIGB) << BIT_SHIFT_R_WMAC_TXNDP_SIGB)
-#define BIT_GET_R_WMAC_TXNDP_SIGB(x)                                           \
-	(((x) >> BIT_SHIFT_R_WMAC_TXNDP_SIGB) & BIT_MASK_R_WMAC_TXNDP_SIGB)
-
-/* 2 REG_TXCMD_INFO_FOR_RSP_PKT		(Offset 0x07E4) */
-
-#define BIT_SHIFT_R_MAC_DEBUG (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_MAC_DEBUG 0xffffffffL
-#define BIT_R_MAC_DEBUG(x)                                                     \
-	(((x) & BIT_MASK_R_MAC_DEBUG) << BIT_SHIFT_R_MAC_DEBUG)
-#define BIT_GET_R_MAC_DEBUG(x)                                                 \
-	(((x) >> BIT_SHIFT_R_MAC_DEBUG) & BIT_MASK_R_MAC_DEBUG)
-
-/* 2 REG_TXCMD_INFO_FOR_RSP_PKT		(Offset 0x07E4) */
-
-#define BIT_SHIFT_R_MAC_DBG_SHIFT 8
-#define BIT_MASK_R_MAC_DBG_SHIFT 0x7
-#define BIT_R_MAC_DBG_SHIFT(x)                                                 \
-	(((x) & BIT_MASK_R_MAC_DBG_SHIFT) << BIT_SHIFT_R_MAC_DBG_SHIFT)
-#define BIT_GET_R_MAC_DBG_SHIFT(x)                                             \
-	(((x) >> BIT_SHIFT_R_MAC_DBG_SHIFT) & BIT_MASK_R_MAC_DBG_SHIFT)
-
-#define BIT_SHIFT_R_MAC_DBG_SEL 0
-#define BIT_MASK_R_MAC_DBG_SEL 0x3
-#define BIT_R_MAC_DBG_SEL(x)                                                   \
-	(((x) & BIT_MASK_R_MAC_DBG_SEL) << BIT_SHIFT_R_MAC_DBG_SEL)
-#define BIT_GET_R_MAC_DBG_SEL(x)                                               \
-	(((x) >> BIT_SHIFT_R_MAC_DBG_SEL) & BIT_MASK_R_MAC_DBG_SEL)
-
-/* 2 REG_SYS_CFG3				(Offset 0x1000) */
-
-#define BIT_PWC_MA33V BIT(15)
-
-/* 2 REG_SYS_CFG3				(Offset 0x1000) */
-
-#define BIT_PWC_MA12V BIT(14)
-#define BIT_PWC_MD12V BIT(13)
-#define BIT_PWC_PD12V BIT(12)
-#define BIT_PWC_UD12V BIT(11)
-#define BIT_ISO_MA2MD BIT(1)
-
-/* 2 REG_SYS_CFG5				(Offset 0x1070) */
-
-#define BIT_LPS_STATUS BIT(3)
-#define BIT_HCI_TXDMA_BUSY BIT(2)
-#define BIT_HCI_TXDMA_ALLOW BIT(1)
-#define BIT_FW_CTRL_HCI_TXDMA_EN BIT(0)
-
-/* 2 REG_CPU_DMEM_CON			(Offset 0x1080) */
-
-#define BIT_WDT_OPT_IOWRAPPER BIT(19)
-
-/* 2 REG_CPU_DMEM_CON			(Offset 0x1080) */
-
-#define BIT_ANA_PORT_IDLE BIT(18)
-#define BIT_MAC_PORT_IDLE BIT(17)
-#define BIT_WL_PLATFORM_RST BIT(16)
-#define BIT_WL_SECURITY_CLK BIT(15)
-
-/* 2 REG_CPU_DMEM_CON			(Offset 0x1080) */
-
-#define BIT_SHIFT_CPU_DMEM_CON 0
-#define BIT_MASK_CPU_DMEM_CON 0xff
-#define BIT_CPU_DMEM_CON(x)                                                    \
-	(((x) & BIT_MASK_CPU_DMEM_CON) << BIT_SHIFT_CPU_DMEM_CON)
-#define BIT_GET_CPU_DMEM_CON(x)                                                \
-	(((x) >> BIT_SHIFT_CPU_DMEM_CON) & BIT_MASK_CPU_DMEM_CON)
-
-/* 2 REG_BOOT_REASON				(Offset 0x1088) */
-
-#define BIT_SHIFT_BOOT_REASON 0
-#define BIT_MASK_BOOT_REASON 0x7
-#define BIT_BOOT_REASON(x)                                                     \
-	(((x) & BIT_MASK_BOOT_REASON) << BIT_SHIFT_BOOT_REASON)
-#define BIT_GET_BOOT_REASON(x)                                                 \
-	(((x) >> BIT_SHIFT_BOOT_REASON) & BIT_MASK_BOOT_REASON)
-
-/* 2 REG_NFCPAD_CTRL				(Offset 0x10A8) */
-
-#define BIT_PAD_SHUTDW BIT(18)
-#define BIT_SYSON_NFC_PAD BIT(17)
-#define BIT_NFC_INT_PAD_CTRL BIT(16)
-#define BIT_NFC_RFDIS_PAD_CTRL BIT(15)
-#define BIT_NFC_CLK_PAD_CTRL BIT(14)
-#define BIT_NFC_DATA_PAD_CTRL BIT(13)
-#define BIT_NFC_PAD_PULL_CTRL BIT(12)
-
-#define BIT_SHIFT_NFCPAD_IO_SEL 8
-#define BIT_MASK_NFCPAD_IO_SEL 0xf
-#define BIT_NFCPAD_IO_SEL(x)                                                   \
-	(((x) & BIT_MASK_NFCPAD_IO_SEL) << BIT_SHIFT_NFCPAD_IO_SEL)
-#define BIT_GET_NFCPAD_IO_SEL(x)                                               \
-	(((x) >> BIT_SHIFT_NFCPAD_IO_SEL) & BIT_MASK_NFCPAD_IO_SEL)
-
-#define BIT_SHIFT_NFCPAD_OUT 4
-#define BIT_MASK_NFCPAD_OUT 0xf
-#define BIT_NFCPAD_OUT(x) (((x) & BIT_MASK_NFCPAD_OUT) << BIT_SHIFT_NFCPAD_OUT)
-#define BIT_GET_NFCPAD_OUT(x)                                                  \
-	(((x) >> BIT_SHIFT_NFCPAD_OUT) & BIT_MASK_NFCPAD_OUT)
-
-#define BIT_SHIFT_NFCPAD_IN 0
-#define BIT_MASK_NFCPAD_IN 0xf
-#define BIT_NFCPAD_IN(x) (((x) & BIT_MASK_NFCPAD_IN) << BIT_SHIFT_NFCPAD_IN)
-#define BIT_GET_NFCPAD_IN(x) (((x) >> BIT_SHIFT_NFCPAD_IN) & BIT_MASK_NFCPAD_IN)
-
-/* 2 REG_HIMR2				(Offset 0x10B0) */
-
-#define BIT_BCNDMAINT_P4_MSK BIT(31)
-#define BIT_BCNDMAINT_P3_MSK BIT(30)
-#define BIT_BCNDMAINT_P2_MSK BIT(29)
-#define BIT_BCNDMAINT_P1_MSK BIT(28)
-#define BIT_ATIMEND7_MSK BIT(22)
-#define BIT_ATIMEND6_MSK BIT(21)
-#define BIT_ATIMEND5_MSK BIT(20)
-#define BIT_ATIMEND4_MSK BIT(19)
-#define BIT_ATIMEND3_MSK BIT(18)
-#define BIT_ATIMEND2_MSK BIT(17)
-#define BIT_ATIMEND1_MSK BIT(16)
-#define BIT_TXBCN7OK_MSK BIT(14)
-#define BIT_TXBCN6OK_MSK BIT(13)
-#define BIT_TXBCN5OK_MSK BIT(12)
-#define BIT_TXBCN4OK_MSK BIT(11)
-#define BIT_TXBCN3OK_MSK BIT(10)
-#define BIT_TXBCN2OK_MSK BIT(9)
-#define BIT_TXBCN1OK_MSK_V1 BIT(8)
-#define BIT_TXBCN7ERR_MSK BIT(6)
-#define BIT_TXBCN6ERR_MSK BIT(5)
-#define BIT_TXBCN5ERR_MSK BIT(4)
-#define BIT_TXBCN4ERR_MSK BIT(3)
-#define BIT_TXBCN3ERR_MSK BIT(2)
-#define BIT_TXBCN2ERR_MSK BIT(1)
-#define BIT_TXBCN1ERR_MSK_V1 BIT(0)
-
-/* 2 REG_HISR2				(Offset 0x10B4) */
-
-#define BIT_BCNDMAINT_P4 BIT(31)
-#define BIT_BCNDMAINT_P3 BIT(30)
-#define BIT_BCNDMAINT_P2 BIT(29)
-#define BIT_BCNDMAINT_P1 BIT(28)
-#define BIT_ATIMEND7 BIT(22)
-#define BIT_ATIMEND6 BIT(21)
-#define BIT_ATIMEND5 BIT(20)
-#define BIT_ATIMEND4 BIT(19)
-#define BIT_ATIMEND3 BIT(18)
-#define BIT_ATIMEND2 BIT(17)
-#define BIT_ATIMEND1 BIT(16)
-#define BIT_TXBCN7OK BIT(14)
-#define BIT_TXBCN6OK BIT(13)
-#define BIT_TXBCN5OK BIT(12)
-#define BIT_TXBCN4OK BIT(11)
-#define BIT_TXBCN3OK BIT(10)
-#define BIT_TXBCN2OK BIT(9)
-#define BIT_TXBCN1OK BIT(8)
-#define BIT_TXBCN7ERR BIT(6)
-#define BIT_TXBCN6ERR BIT(5)
-#define BIT_TXBCN5ERR BIT(4)
-#define BIT_TXBCN4ERR BIT(3)
-#define BIT_TXBCN3ERR BIT(2)
-#define BIT_TXBCN2ERR BIT(1)
-#define BIT_TXBCN1ERR BIT(0)
-
-/* 2 REG_HIMR3				(Offset 0x10B8) */
-
-#define BIT_WDT_PLATFORM_INT_MSK BIT(18)
-#define BIT_WDT_CPU_INT_MSK BIT(17)
-
-/* 2 REG_HIMR3				(Offset 0x10B8) */
-
-#define BIT_SETH2CDOK_MASK BIT(16)
-#define BIT_H2C_CMD_FULL_MASK BIT(15)
-#define BIT_PWR_INT_127_MASK BIT(14)
-#define BIT_TXSHORTCUT_TXDESUPDATEOK_MASK BIT(13)
-#define BIT_TXSHORTCUT_BKUPDATEOK_MASK BIT(12)
-#define BIT_TXSHORTCUT_BEUPDATEOK_MASK BIT(11)
-#define BIT_TXSHORTCUT_VIUPDATEOK_MAS BIT(10)
-#define BIT_TXSHORTCUT_VOUPDATEOK_MASK BIT(9)
-#define BIT_PWR_INT_127_MASK_V1 BIT(8)
-#define BIT_PWR_INT_126TO96_MASK BIT(7)
-#define BIT_PWR_INT_95TO64_MASK BIT(6)
-#define BIT_PWR_INT_63TO32_MASK BIT(5)
-#define BIT_PWR_INT_31TO0_MASK BIT(4)
-#define BIT_DDMA0_LP_INT_MSK BIT(1)
-#define BIT_DDMA0_HP_INT_MSK BIT(0)
-
-/* 2 REG_HISR3				(Offset 0x10BC) */
-
-#define BIT_WDT_PLATFORM_INT BIT(18)
-#define BIT_WDT_CPU_INT BIT(17)
-
-/* 2 REG_HISR3				(Offset 0x10BC) */
-
-#define BIT_SETH2CDOK BIT(16)
-#define BIT_H2C_CMD_FULL BIT(15)
-#define BIT_PWR_INT_127 BIT(14)
-#define BIT_TXSHORTCUT_TXDESUPDATEOK BIT(13)
-#define BIT_TXSHORTCUT_BKUPDATEOK BIT(12)
-#define BIT_TXSHORTCUT_BEUPDATEOK BIT(11)
-#define BIT_TXSHORTCUT_VIUPDATEOK BIT(10)
-#define BIT_TXSHORTCUT_VOUPDATEOK BIT(9)
-#define BIT_PWR_INT_127_V1 BIT(8)
-#define BIT_PWR_INT_126TO96 BIT(7)
-#define BIT_PWR_INT_95TO64 BIT(6)
-#define BIT_PWR_INT_63TO32 BIT(5)
-#define BIT_PWR_INT_31TO0 BIT(4)
-#define BIT_DDMA0_LP_INT BIT(1)
-#define BIT_DDMA0_HP_INT BIT(0)
-
-/* 2 REG_SW_MDIO				(Offset 0x10C0) */
-
-#define BIT_DIS_TIMEOUT_IO BIT(24)
-
-/* 2 REG_SW_FLUSH				(Offset 0x10C4) */
-
-#define BIT_FLUSH_HOLDN_EN BIT(25)
-#define BIT_FLUSH_WR_EN BIT(24)
-#define BIT_SW_FLASH_CONTROL BIT(23)
-#define BIT_SW_FLASH_WEN_E BIT(19)
-#define BIT_SW_FLASH_HOLDN_E BIT(18)
-#define BIT_SW_FLASH_SO_E BIT(17)
-#define BIT_SW_FLASH_SI_E BIT(16)
-#define BIT_SW_FLASH_SK_O BIT(13)
-#define BIT_SW_FLASH_CEN_O BIT(12)
-#define BIT_SW_FLASH_WEN_O BIT(11)
-#define BIT_SW_FLASH_HOLDN_O BIT(10)
-#define BIT_SW_FLASH_SO_O BIT(9)
-#define BIT_SW_FLASH_SI_O BIT(8)
-#define BIT_SW_FLASH_WEN_I BIT(3)
-#define BIT_SW_FLASH_HOLDN_I BIT(2)
-#define BIT_SW_FLASH_SO_I BIT(1)
-#define BIT_SW_FLASH_SI_I BIT(0)
-
-/* 2 REG_H2C_PKT_READADDR			(Offset 0x10D0) */
-
-#define BIT_SHIFT_H2C_PKT_READADDR 0
-#define BIT_MASK_H2C_PKT_READADDR 0x3ffff
-#define BIT_H2C_PKT_READADDR(x)                                                \
-	(((x) & BIT_MASK_H2C_PKT_READADDR) << BIT_SHIFT_H2C_PKT_READADDR)
-#define BIT_GET_H2C_PKT_READADDR(x)                                            \
-	(((x) >> BIT_SHIFT_H2C_PKT_READADDR) & BIT_MASK_H2C_PKT_READADDR)
-
-/* 2 REG_H2C_PKT_WRITEADDR			(Offset 0x10D4) */
-
-#define BIT_SHIFT_H2C_PKT_WRITEADDR 0
-#define BIT_MASK_H2C_PKT_WRITEADDR 0x3ffff
-#define BIT_H2C_PKT_WRITEADDR(x)                                               \
-	(((x) & BIT_MASK_H2C_PKT_WRITEADDR) << BIT_SHIFT_H2C_PKT_WRITEADDR)
-#define BIT_GET_H2C_PKT_WRITEADDR(x)                                           \
-	(((x) >> BIT_SHIFT_H2C_PKT_WRITEADDR) & BIT_MASK_H2C_PKT_WRITEADDR)
-
-/* 2 REG_MEM_PWR_CRTL			(Offset 0x10D8) */
-
-#define BIT_MEM_BB_SD BIT(17)
-#define BIT_MEM_BB_DS BIT(16)
-#define BIT_MEM_BT_DS BIT(10)
-#define BIT_MEM_SDIO_LS BIT(9)
-#define BIT_MEM_SDIO_DS BIT(8)
-#define BIT_MEM_USB_LS BIT(7)
-#define BIT_MEM_USB_DS BIT(6)
-#define BIT_MEM_PCI_LS BIT(5)
-#define BIT_MEM_PCI_DS BIT(4)
-#define BIT_MEM_WLMAC_LS BIT(3)
-#define BIT_MEM_WLMAC_DS BIT(2)
-#define BIT_MEM_WLMCU_LS BIT(1)
-
-/* 2 REG_MEM_PWR_CRTL			(Offset 0x10D8) */
-
-#define BIT_MEM_WLMCU_DS BIT(0)
-
-/* 2 REG_FW_DBG0				(Offset 0x10E0) */
-
-#define BIT_SHIFT_FW_DBG0 0
-#define BIT_MASK_FW_DBG0 0xffffffffL
-#define BIT_FW_DBG0(x) (((x) & BIT_MASK_FW_DBG0) << BIT_SHIFT_FW_DBG0)
-#define BIT_GET_FW_DBG0(x) (((x) >> BIT_SHIFT_FW_DBG0) & BIT_MASK_FW_DBG0)
-
-/* 2 REG_FW_DBG1				(Offset 0x10E4) */
-
-#define BIT_SHIFT_FW_DBG1 0
-#define BIT_MASK_FW_DBG1 0xffffffffL
-#define BIT_FW_DBG1(x) (((x) & BIT_MASK_FW_DBG1) << BIT_SHIFT_FW_DBG1)
-#define BIT_GET_FW_DBG1(x) (((x) >> BIT_SHIFT_FW_DBG1) & BIT_MASK_FW_DBG1)
-
-/* 2 REG_FW_DBG2				(Offset 0x10E8) */
-
-#define BIT_SHIFT_FW_DBG2 0
-#define BIT_MASK_FW_DBG2 0xffffffffL
-#define BIT_FW_DBG2(x) (((x) & BIT_MASK_FW_DBG2) << BIT_SHIFT_FW_DBG2)
-#define BIT_GET_FW_DBG2(x) (((x) >> BIT_SHIFT_FW_DBG2) & BIT_MASK_FW_DBG2)
-
-/* 2 REG_FW_DBG3				(Offset 0x10EC) */
-
-#define BIT_SHIFT_FW_DBG3 0
-#define BIT_MASK_FW_DBG3 0xffffffffL
-#define BIT_FW_DBG3(x) (((x) & BIT_MASK_FW_DBG3) << BIT_SHIFT_FW_DBG3)
-#define BIT_GET_FW_DBG3(x) (((x) >> BIT_SHIFT_FW_DBG3) & BIT_MASK_FW_DBG3)
-
-/* 2 REG_FW_DBG4				(Offset 0x10F0) */
-
-#define BIT_SHIFT_FW_DBG4 0
-#define BIT_MASK_FW_DBG4 0xffffffffL
-#define BIT_FW_DBG4(x) (((x) & BIT_MASK_FW_DBG4) << BIT_SHIFT_FW_DBG4)
-#define BIT_GET_FW_DBG4(x) (((x) >> BIT_SHIFT_FW_DBG4) & BIT_MASK_FW_DBG4)
-
-/* 2 REG_FW_DBG5				(Offset 0x10F4) */
-
-#define BIT_SHIFT_FW_DBG5 0
-#define BIT_MASK_FW_DBG5 0xffffffffL
-#define BIT_FW_DBG5(x) (((x) & BIT_MASK_FW_DBG5) << BIT_SHIFT_FW_DBG5)
-#define BIT_GET_FW_DBG5(x) (((x) >> BIT_SHIFT_FW_DBG5) & BIT_MASK_FW_DBG5)
-
-/* 2 REG_FW_DBG6				(Offset 0x10F8) */
-
-#define BIT_SHIFT_FW_DBG6 0
-#define BIT_MASK_FW_DBG6 0xffffffffL
-#define BIT_FW_DBG6(x) (((x) & BIT_MASK_FW_DBG6) << BIT_SHIFT_FW_DBG6)
-#define BIT_GET_FW_DBG6(x) (((x) >> BIT_SHIFT_FW_DBG6) & BIT_MASK_FW_DBG6)
-
-/* 2 REG_FW_DBG7				(Offset 0x10FC) */
-
-#define BIT_SHIFT_FW_DBG7 0
-#define BIT_MASK_FW_DBG7 0xffffffffL
-#define BIT_FW_DBG7(x) (((x) & BIT_MASK_FW_DBG7) << BIT_SHIFT_FW_DBG7)
-#define BIT_GET_FW_DBG7(x) (((x) >> BIT_SHIFT_FW_DBG7) & BIT_MASK_FW_DBG7)
-
-/* 2 REG_CR_EXT				(Offset 0x1100) */
-
-#define BIT_SHIFT_PHY_REQ_DELAY 24
-#define BIT_MASK_PHY_REQ_DELAY 0xf
-#define BIT_PHY_REQ_DELAY(x)                                                   \
-	(((x) & BIT_MASK_PHY_REQ_DELAY) << BIT_SHIFT_PHY_REQ_DELAY)
-#define BIT_GET_PHY_REQ_DELAY(x)                                               \
-	(((x) >> BIT_SHIFT_PHY_REQ_DELAY) & BIT_MASK_PHY_REQ_DELAY)
-
-#define BIT_SPD_DOWN BIT(16)
-
-#define BIT_SHIFT_NETYPE4 4
-#define BIT_MASK_NETYPE4 0x3
-#define BIT_NETYPE4(x) (((x) & BIT_MASK_NETYPE4) << BIT_SHIFT_NETYPE4)
-#define BIT_GET_NETYPE4(x) (((x) >> BIT_SHIFT_NETYPE4) & BIT_MASK_NETYPE4)
-
-#define BIT_SHIFT_NETYPE3 2
-#define BIT_MASK_NETYPE3 0x3
-#define BIT_NETYPE3(x) (((x) & BIT_MASK_NETYPE3) << BIT_SHIFT_NETYPE3)
-#define BIT_GET_NETYPE3(x) (((x) >> BIT_SHIFT_NETYPE3) & BIT_MASK_NETYPE3)
-
-#define BIT_SHIFT_NETYPE2 0
-#define BIT_MASK_NETYPE2 0x3
-#define BIT_NETYPE2(x) (((x) & BIT_MASK_NETYPE2) << BIT_SHIFT_NETYPE2)
-#define BIT_GET_NETYPE2(x) (((x) >> BIT_SHIFT_NETYPE2) & BIT_MASK_NETYPE2)
-
-/* 2 REG_FWFF				(Offset 0x1114) */
-
-#define BIT_SHIFT_PKTNUM_TH_V1 24
-#define BIT_MASK_PKTNUM_TH_V1 0xff
-#define BIT_PKTNUM_TH_V1(x)                                                    \
-	(((x) & BIT_MASK_PKTNUM_TH_V1) << BIT_SHIFT_PKTNUM_TH_V1)
-#define BIT_GET_PKTNUM_TH_V1(x)                                                \
-	(((x) >> BIT_SHIFT_PKTNUM_TH_V1) & BIT_MASK_PKTNUM_TH_V1)
-
-/* 2 REG_FWFF				(Offset 0x1114) */
-
-#define BIT_SHIFT_TIMER_TH 16
-#define BIT_MASK_TIMER_TH 0xff
-#define BIT_TIMER_TH(x) (((x) & BIT_MASK_TIMER_TH) << BIT_SHIFT_TIMER_TH)
-#define BIT_GET_TIMER_TH(x) (((x) >> BIT_SHIFT_TIMER_TH) & BIT_MASK_TIMER_TH)
-
-/* 2 REG_FWFF				(Offset 0x1114) */
-
-#define BIT_SHIFT_RXPKT1ENADDR 0
-#define BIT_MASK_RXPKT1ENADDR 0xffff
-#define BIT_RXPKT1ENADDR(x)                                                    \
-	(((x) & BIT_MASK_RXPKT1ENADDR) << BIT_SHIFT_RXPKT1ENADDR)
-#define BIT_GET_RXPKT1ENADDR(x)                                                \
-	(((x) >> BIT_SHIFT_RXPKT1ENADDR) & BIT_MASK_RXPKT1ENADDR)
-
-/* 2 REG_FE2IMR				(Offset 0x1120) */
-
-#define BIT__FE4ISR__IND_MSK BIT(29)
-
-/* 2 REG_FE2IMR				(Offset 0x1120) */
-
-#define BIT_FS_TXSC_DESC_DONE_INT_EN BIT(28)
-#define BIT_FS_TXSC_BKDONE_INT_EN BIT(27)
-#define BIT_FS_TXSC_BEDONE_INT_EN BIT(26)
-#define BIT_FS_TXSC_VIDONE_INT_EN BIT(25)
-#define BIT_FS_TXSC_VODONE_INT_EN BIT(24)
-
-/* 2 REG_FE2IMR				(Offset 0x1120) */
-
-#define BIT_FS_ATIM_MB7_INT_EN BIT(23)
-#define BIT_FS_ATIM_MB6_INT_EN BIT(22)
-#define BIT_FS_ATIM_MB5_INT_EN BIT(21)
-#define BIT_FS_ATIM_MB4_INT_EN BIT(20)
-#define BIT_FS_ATIM_MB3_INT_EN BIT(19)
-#define BIT_FS_ATIM_MB2_INT_EN BIT(18)
-#define BIT_FS_ATIM_MB1_INT_EN BIT(17)
-#define BIT_FS_ATIM_MB0_INT_EN BIT(16)
-#define BIT_FS_TBTT4INT_EN BIT(11)
-#define BIT_FS_TBTT3INT_EN BIT(10)
-#define BIT_FS_TBTT2INT_EN BIT(9)
-#define BIT_FS_TBTT1INT_EN BIT(8)
-#define BIT_FS_TBTT0_MB7INT_EN BIT(7)
-#define BIT_FS_TBTT0_MB6INT_EN BIT(6)
-#define BIT_FS_TBTT0_MB5INT_EN BIT(5)
-#define BIT_FS_TBTT0_MB4INT_EN BIT(4)
-#define BIT_FS_TBTT0_MB3INT_EN BIT(3)
-#define BIT_FS_TBTT0_MB2INT_EN BIT(2)
-#define BIT_FS_TBTT0_MB1INT_EN BIT(1)
-#define BIT_FS_TBTT0_INT_EN BIT(0)
-
-/* 2 REG_FE2ISR				(Offset 0x1124) */
-
-#define BIT__FE4ISR__IND_INT BIT(29)
-
-/* 2 REG_FE2ISR				(Offset 0x1124) */
-
-#define BIT_FS_TXSC_DESC_DONE_INT BIT(28)
-#define BIT_FS_TXSC_BKDONE_INT BIT(27)
-#define BIT_FS_TXSC_BEDONE_INT BIT(26)
-#define BIT_FS_TXSC_VIDONE_INT BIT(25)
-#define BIT_FS_TXSC_VODONE_INT BIT(24)
-
-/* 2 REG_FE2ISR				(Offset 0x1124) */
-
-#define BIT_FS_ATIM_MB7_INT BIT(23)
-#define BIT_FS_ATIM_MB6_INT BIT(22)
-#define BIT_FS_ATIM_MB5_INT BIT(21)
-#define BIT_FS_ATIM_MB4_INT BIT(20)
-#define BIT_FS_ATIM_MB3_INT BIT(19)
-#define BIT_FS_ATIM_MB2_INT BIT(18)
-#define BIT_FS_ATIM_MB1_INT BIT(17)
-#define BIT_FS_ATIM_MB0_INT BIT(16)
-#define BIT_FS_TBTT4INT BIT(11)
-#define BIT_FS_TBTT3INT BIT(10)
-#define BIT_FS_TBTT2INT BIT(9)
-#define BIT_FS_TBTT1INT BIT(8)
-#define BIT_FS_TBTT0_MB7INT BIT(7)
-#define BIT_FS_TBTT0_MB6INT BIT(6)
-#define BIT_FS_TBTT0_MB5INT BIT(5)
-#define BIT_FS_TBTT0_MB4INT BIT(4)
-#define BIT_FS_TBTT0_MB3INT BIT(3)
-#define BIT_FS_TBTT0_MB2INT BIT(2)
-#define BIT_FS_TBTT0_MB1INT BIT(1)
-#define BIT_FS_TBTT0_INT BIT(0)
-
-/* 2 REG_FE3IMR				(Offset 0x1128) */
-
-#define BIT_FS_CLI3_MTI_BCNIVLEAR_INT__EN BIT(31)
-
-/* 2 REG_FE3IMR				(Offset 0x1128) */
-
-#define BIT_FS_CLI2_MTI_BCNIVLEAR_INT__EN BIT(30)
-
-/* 2 REG_FE3IMR				(Offset 0x1128) */
-
-#define BIT_FS_CLI1_MTI_BCNIVLEAR_INT__EN BIT(29)
-
-/* 2 REG_FE3IMR				(Offset 0x1128) */
-
-#define BIT_FS_CLI0_MTI_BCNIVLEAR_INT__EN BIT(28)
-
-/* 2 REG_FE3IMR				(Offset 0x1128) */
-
-#define BIT_FS_BCNDMA4_INT_EN BIT(27)
-#define BIT_FS_BCNDMA3_INT_EN BIT(26)
-#define BIT_FS_BCNDMA2_INT_EN BIT(25)
-#define BIT_FS_BCNDMA1_INT_EN BIT(24)
-#define BIT_FS_BCNDMA0_MB7_INT_EN BIT(23)
-#define BIT_FS_BCNDMA0_MB6_INT_EN BIT(22)
-#define BIT_FS_BCNDMA0_MB5_INT_EN BIT(21)
-#define BIT_FS_BCNDMA0_MB4_INT_EN BIT(20)
-#define BIT_FS_BCNDMA0_MB3_INT_EN BIT(19)
-#define BIT_FS_BCNDMA0_MB2_INT_EN BIT(18)
-#define BIT_FS_BCNDMA0_MB1_INT_EN BIT(17)
-#define BIT_FS_BCNDMA0_INT_EN BIT(16)
-#define BIT_FS_MTI_BCNIVLEAR_INT__EN BIT(15)
-#define BIT_FS_BCNERLY4_INT_EN BIT(11)
-#define BIT_FS_BCNERLY3_INT_EN BIT(10)
-#define BIT_FS_BCNERLY2_INT_EN BIT(9)
-#define BIT_FS_BCNERLY1_INT_EN BIT(8)
-#define BIT_FS_BCNERLY0_MB7INT_EN BIT(7)
-#define BIT_FS_BCNERLY0_MB6INT_EN BIT(6)
-#define BIT_FS_BCNERLY0_MB5INT_EN BIT(5)
-#define BIT_FS_BCNERLY0_MB4INT_EN BIT(4)
-#define BIT_FS_BCNERLY0_MB3INT_EN BIT(3)
-#define BIT_FS_BCNERLY0_MB2INT_EN BIT(2)
-#define BIT_FS_BCNERLY0_MB1INT_EN BIT(1)
-#define BIT_FS_BCNERLY0_INT_EN BIT(0)
-
-/* 2 REG_FE3ISR				(Offset 0x112C) */
-
-#define BIT_FS_CLI3_MTI_BCNIVLEAR_INT BIT(31)
-
-/* 2 REG_FE3ISR				(Offset 0x112C) */
-
-#define BIT_FS_CLI2_MTI_BCNIVLEAR_INT BIT(30)
-
-/* 2 REG_FE3ISR				(Offset 0x112C) */
-
-#define BIT_FS_CLI1_MTI_BCNIVLEAR_INT BIT(29)
-
-/* 2 REG_FE3ISR				(Offset 0x112C) */
-
-#define BIT_FS_CLI0_MTI_BCNIVLEAR_INT BIT(28)
-
-/* 2 REG_FE3ISR				(Offset 0x112C) */
-
-#define BIT_FS_BCNDMA4_INT BIT(27)
-#define BIT_FS_BCNDMA3_INT BIT(26)
-#define BIT_FS_BCNDMA2_INT BIT(25)
-#define BIT_FS_BCNDMA1_INT BIT(24)
-#define BIT_FS_BCNDMA0_MB7_INT BIT(23)
-#define BIT_FS_BCNDMA0_MB6_INT BIT(22)
-#define BIT_FS_BCNDMA0_MB5_INT BIT(21)
-#define BIT_FS_BCNDMA0_MB4_INT BIT(20)
-#define BIT_FS_BCNDMA0_MB3_INT BIT(19)
-#define BIT_FS_BCNDMA0_MB2_INT BIT(18)
-#define BIT_FS_BCNDMA0_MB1_INT BIT(17)
-#define BIT_FS_BCNDMA0_INT BIT(16)
-#define BIT_FS_MTI_BCNIVLEAR_INT BIT(15)
-#define BIT_FS_BCNERLY4_INT BIT(11)
-#define BIT_FS_BCNERLY3_INT BIT(10)
-#define BIT_FS_BCNERLY2_INT BIT(9)
-#define BIT_FS_BCNERLY1_INT BIT(8)
-#define BIT_FS_BCNERLY0_MB7INT BIT(7)
-#define BIT_FS_BCNERLY0_MB6INT BIT(6)
-#define BIT_FS_BCNERLY0_MB5INT BIT(5)
-#define BIT_FS_BCNERLY0_MB4INT BIT(4)
-#define BIT_FS_BCNERLY0_MB3INT BIT(3)
-#define BIT_FS_BCNERLY0_MB2INT BIT(2)
-#define BIT_FS_BCNERLY0_MB1INT BIT(1)
-#define BIT_FS_BCNERLY0_INT BIT(0)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI3_TXPKTIN_INT_EN BIT(19)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI2_TXPKTIN_INT_EN BIT(18)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI1_TXPKTIN_INT_EN BIT(17)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI0_TXPKTIN_INT_EN BIT(16)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI3_RX_UMD0_INT_EN BIT(15)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI3_RX_UMD1_INT_EN BIT(14)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI3_RX_BMD0_INT_EN BIT(13)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI3_RX_BMD1_INT_EN BIT(12)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI2_RX_UMD0_INT_EN BIT(11)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI2_RX_UMD1_INT_EN BIT(10)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI2_RX_BMD0_INT_EN BIT(9)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI2_RX_BMD1_INT_EN BIT(8)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI1_RX_UMD0_INT_EN BIT(7)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI1_RX_UMD1_INT_EN BIT(6)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI1_RX_BMD0_INT_EN BIT(5)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI1_RX_BMD1_INT_EN BIT(4)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI0_RX_UMD0_INT_EN BIT(3)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI0_RX_UMD1_INT_EN BIT(2)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI0_RX_BMD0_INT_EN BIT(1)
-
-/* 2 REG_FE4IMR				(Offset 0x1130) */
-
-#define BIT_FS_CLI0_RX_BMD1_INT_EN BIT(0)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI3_TXPKTIN_INT BIT(19)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI2_TXPKTIN_INT BIT(18)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI1_TXPKTIN_INT BIT(17)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI0_TXPKTIN_INT BIT(16)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI3_RX_UMD0_INT BIT(15)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI3_RX_UMD1_INT BIT(14)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI3_RX_BMD0_INT BIT(13)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI3_RX_BMD1_INT BIT(12)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI2_RX_UMD0_INT BIT(11)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI2_RX_UMD1_INT BIT(10)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI2_RX_BMD0_INT BIT(9)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI2_RX_BMD1_INT BIT(8)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI1_RX_UMD0_INT BIT(7)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI1_RX_UMD1_INT BIT(6)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI1_RX_BMD0_INT BIT(5)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI1_RX_BMD1_INT BIT(4)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI0_RX_UMD0_INT BIT(3)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI0_RX_UMD1_INT BIT(2)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI0_RX_BMD0_INT BIT(1)
-
-/* 2 REG_FE4ISR				(Offset 0x1134) */
-
-#define BIT_FS_CLI0_RX_BMD1_INT BIT(0)
-
-/* 2 REG_FT1IMR				(Offset 0x1138) */
-
-#define BIT__FT2ISR__IND_MSK BIT(30)
-#define BIT_FTM_PTT_INT_EN BIT(29)
-#define BIT_RXFTMREQ_INT_EN BIT(28)
-#define BIT_RXFTM_INT_EN BIT(27)
-#define BIT_TXFTM_INT_EN BIT(26)
-
-/* 2 REG_FT1IMR				(Offset 0x1138) */
-
-#define BIT_FS_H2C_CMD_OK_INT_EN BIT(25)
-#define BIT_FS_H2C_CMD_FULL_INT_EN BIT(24)
-
-/* 2 REG_FT1IMR				(Offset 0x1138) */
-
-#define BIT_FS_MACID_PWRCHANGE5_INT_EN BIT(23)
-#define BIT_FS_MACID_PWRCHANGE4_INT_EN BIT(22)
-#define BIT_FS_MACID_PWRCHANGE3_INT_EN BIT(21)
-#define BIT_FS_MACID_PWRCHANGE2_INT_EN BIT(20)
-#define BIT_FS_MACID_PWRCHANGE1_INT_EN BIT(19)
-#define BIT_FS_MACID_PWRCHANGE0_INT_EN BIT(18)
-#define BIT_FS_CTWEND2_INT_EN BIT(17)
-#define BIT_FS_CTWEND1_INT_EN BIT(16)
-#define BIT_FS_CTWEND0_INT_EN BIT(15)
-#define BIT_FS_TX_NULL1_INT_EN BIT(14)
-#define BIT_FS_TX_NULL0_INT_EN BIT(13)
-#define BIT_FS_TSF_BIT32_TOGGLE_EN BIT(12)
-#define BIT_FS_P2P_RFON2_INT_EN BIT(11)
-#define BIT_FS_P2P_RFOFF2_INT_EN BIT(10)
-#define BIT_FS_P2P_RFON1_INT_EN BIT(9)
-#define BIT_FS_P2P_RFOFF1_INT_EN BIT(8)
-#define BIT_FS_P2P_RFON0_INT_EN BIT(7)
-#define BIT_FS_P2P_RFOFF0_INT_EN BIT(6)
-#define BIT_FS_RX_UAPSDMD1_EN BIT(5)
-#define BIT_FS_RX_UAPSDMD0_EN BIT(4)
-#define BIT_FS_TRIGGER_PKT_EN BIT(3)
-#define BIT_FS_EOSP_INT_EN BIT(2)
-#define BIT_FS_RPWM2_INT_EN BIT(1)
-#define BIT_FS_RPWM_INT_EN BIT(0)
-
-/* 2 REG_FT1ISR				(Offset 0x113C) */
-
-#define BIT__FT2ISR__IND_INT BIT(30)
-#define BIT_FTM_PTT_INT BIT(29)
-#define BIT_RXFTMREQ_INT BIT(28)
-#define BIT_RXFTM_INT BIT(27)
-#define BIT_TXFTM_INT BIT(26)
-
-/* 2 REG_FT1ISR				(Offset 0x113C) */
-
-#define BIT_FS_H2C_CMD_OK_INT BIT(25)
-#define BIT_FS_H2C_CMD_FULL_INT BIT(24)
-
-/* 2 REG_FT1ISR				(Offset 0x113C) */
-
-#define BIT_FS_MACID_PWRCHANGE5_INT BIT(23)
-#define BIT_FS_MACID_PWRCHANGE4_INT BIT(22)
-#define BIT_FS_MACID_PWRCHANGE3_INT BIT(21)
-#define BIT_FS_MACID_PWRCHANGE2_INT BIT(20)
-#define BIT_FS_MACID_PWRCHANGE1_INT BIT(19)
-#define BIT_FS_MACID_PWRCHANGE0_INT BIT(18)
-#define BIT_FS_CTWEND2_INT BIT(17)
-#define BIT_FS_CTWEND1_INT BIT(16)
-#define BIT_FS_CTWEND0_INT BIT(15)
-#define BIT_FS_TX_NULL1_INT BIT(14)
-#define BIT_FS_TX_NULL0_INT BIT(13)
-#define BIT_FS_TSF_BIT32_TOGGLE_INT BIT(12)
-#define BIT_FS_P2P_RFON2_INT BIT(11)
-#define BIT_FS_P2P_RFOFF2_INT BIT(10)
-#define BIT_FS_P2P_RFON1_INT BIT(9)
-#define BIT_FS_P2P_RFOFF1_INT BIT(8)
-#define BIT_FS_P2P_RFON0_INT BIT(7)
-#define BIT_FS_P2P_RFOFF0_INT BIT(6)
-#define BIT_FS_RX_UAPSDMD1_INT BIT(5)
-#define BIT_FS_RX_UAPSDMD0_INT BIT(4)
-#define BIT_FS_TRIGGER_PKT_INT BIT(3)
-#define BIT_FS_EOSP_INT BIT(2)
-#define BIT_FS_RPWM2_INT BIT(1)
-#define BIT_FS_RPWM_INT BIT(0)
-
-/* 2 REG_SPWR0				(Offset 0x1140) */
-
-#define BIT_SHIFT_MID_31TO0 0
-#define BIT_MASK_MID_31TO0 0xffffffffL
-#define BIT_MID_31TO0(x) (((x) & BIT_MASK_MID_31TO0) << BIT_SHIFT_MID_31TO0)
-#define BIT_GET_MID_31TO0(x) (((x) >> BIT_SHIFT_MID_31TO0) & BIT_MASK_MID_31TO0)
-
-/* 2 REG_SPWR1				(Offset 0x1144) */
-
-#define BIT_SHIFT_MID_63TO32 0
-#define BIT_MASK_MID_63TO32 0xffffffffL
-#define BIT_MID_63TO32(x) (((x) & BIT_MASK_MID_63TO32) << BIT_SHIFT_MID_63TO32)
-#define BIT_GET_MID_63TO32(x)                                                  \
-	(((x) >> BIT_SHIFT_MID_63TO32) & BIT_MASK_MID_63TO32)
-
-/* 2 REG_SPWR2				(Offset 0x1148) */
-
-#define BIT_SHIFT_MID_95O64 0
-#define BIT_MASK_MID_95O64 0xffffffffL
-#define BIT_MID_95O64(x) (((x) & BIT_MASK_MID_95O64) << BIT_SHIFT_MID_95O64)
-#define BIT_GET_MID_95O64(x) (((x) >> BIT_SHIFT_MID_95O64) & BIT_MASK_MID_95O64)
-
-/* 2 REG_SPWR3				(Offset 0x114C) */
-
-#define BIT_SHIFT_MID_127TO96 0
-#define BIT_MASK_MID_127TO96 0xffffffffL
-#define BIT_MID_127TO96(x)                                                     \
-	(((x) & BIT_MASK_MID_127TO96) << BIT_SHIFT_MID_127TO96)
-#define BIT_GET_MID_127TO96(x)                                                 \
-	(((x) >> BIT_SHIFT_MID_127TO96) & BIT_MASK_MID_127TO96)
-
-/* 2 REG_POWSEQ				(Offset 0x1150) */
-
-#define BIT_SHIFT_SEQNUM_MID 16
-#define BIT_MASK_SEQNUM_MID 0xffff
-#define BIT_SEQNUM_MID(x) (((x) & BIT_MASK_SEQNUM_MID) << BIT_SHIFT_SEQNUM_MID)
-#define BIT_GET_SEQNUM_MID(x)                                                  \
-	(((x) >> BIT_SHIFT_SEQNUM_MID) & BIT_MASK_SEQNUM_MID)
-
-#define BIT_SHIFT_REF_MID 0
-#define BIT_MASK_REF_MID 0x7f
-#define BIT_REF_MID(x) (((x) & BIT_MASK_REF_MID) << BIT_SHIFT_REF_MID)
-#define BIT_GET_REF_MID(x) (((x) >> BIT_SHIFT_REF_MID) & BIT_MASK_REF_MID)
-
-/* 2 REG_TC7_CTRL_V1				(Offset 0x1158) */
-
-#define BIT_TC7INT_EN BIT(26)
-#define BIT_TC7MODE BIT(25)
-#define BIT_TC7EN BIT(24)
-
-#define BIT_SHIFT_TC7DATA 0
-#define BIT_MASK_TC7DATA 0xffffff
-#define BIT_TC7DATA(x) (((x) & BIT_MASK_TC7DATA) << BIT_SHIFT_TC7DATA)
-#define BIT_GET_TC7DATA(x) (((x) >> BIT_SHIFT_TC7DATA) & BIT_MASK_TC7DATA)
-
-/* 2 REG_TC8_CTRL_V1				(Offset 0x115C) */
-
-#define BIT_TC8INT_EN BIT(26)
-#define BIT_TC8MODE BIT(25)
-#define BIT_TC8EN BIT(24)
-
-#define BIT_SHIFT_TC8DATA 0
-#define BIT_MASK_TC8DATA 0xffffff
-#define BIT_TC8DATA(x) (((x) & BIT_MASK_TC8DATA) << BIT_SHIFT_TC8DATA)
-#define BIT_GET_TC8DATA(x) (((x) >> BIT_SHIFT_TC8DATA) & BIT_MASK_TC8DATA)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI3_RX_UAPSDMD1_EN BIT(31)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI3_RX_UAPSDMD0_EN BIT(30)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI3_TRIGGER_PKT_EN BIT(29)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI3_EOSP_INT_EN BIT(28)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI2_RX_UAPSDMD1_EN BIT(27)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI2_RX_UAPSDMD0_EN BIT(26)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI2_TRIGGER_PKT_EN BIT(25)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI2_EOSP_INT_EN BIT(24)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI1_RX_UAPSDMD1_EN BIT(23)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI1_RX_UAPSDMD0_EN BIT(22)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI1_TRIGGER_PKT_EN BIT(21)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI1_EOSP_INT_EN BIT(20)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI0_RX_UAPSDMD1_EN BIT(19)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI0_RX_UAPSDMD0_EN BIT(18)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI0_TRIGGER_PKT_EN BIT(17)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI0_EOSP_INT_EN BIT(16)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_TSF_BIT32_TOGGLE_P2P2_EN BIT(9)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_TSF_BIT32_TOGGLE_P2P1_EN BIT(8)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI3_TX_NULL1_INT_EN BIT(7)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI3_TX_NULL0_INT_EN BIT(6)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI2_TX_NULL1_INT_EN BIT(5)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI2_TX_NULL0_INT_EN BIT(4)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI1_TX_NULL1_INT_EN BIT(3)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI1_TX_NULL0_INT_EN BIT(2)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI0_TX_NULL1_INT_EN BIT(1)
-
-/* 2 REG_FT2IMR				(Offset 0x11E0) */
-
-#define BIT_FS_CLI0_TX_NULL0_INT_EN BIT(0)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI3_RX_UAPSDMD1_INT BIT(31)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI3_RX_UAPSDMD0_INT BIT(30)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI3_TRIGGER_PKT_INT BIT(29)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI3_EOSP_INT BIT(28)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI2_RX_UAPSDMD1_INT BIT(27)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI2_RX_UAPSDMD0_INT BIT(26)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI2_TRIGGER_PKT_INT BIT(25)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI2_EOSP_INT BIT(24)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI1_RX_UAPSDMD1_INT BIT(23)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI1_RX_UAPSDMD0_INT BIT(22)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI1_TRIGGER_PKT_INT BIT(21)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI1_EOSP_INT BIT(20)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI0_RX_UAPSDMD1_INT BIT(19)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI0_RX_UAPSDMD0_INT BIT(18)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI0_TRIGGER_PKT_INT BIT(17)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI0_EOSP_INT BIT(16)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_TSF_BIT32_TOGGLE_P2P2_INT BIT(9)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_TSF_BIT32_TOGGLE_P2P1_INT BIT(8)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI3_TX_NULL1_INT BIT(7)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI3_TX_NULL0_INT BIT(6)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI2_TX_NULL1_INT BIT(5)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI2_TX_NULL0_INT BIT(4)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI1_TX_NULL1_INT BIT(3)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI1_TX_NULL0_INT BIT(2)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI0_TX_NULL1_INT BIT(1)
-
-/* 2 REG_FT2ISR				(Offset 0x11E4) */
-
-#define BIT_FS_CLI0_TX_NULL0_INT BIT(0)
-
-/* 2 REG_MSG2				(Offset 0x11F0) */
-
-#define BIT_SHIFT_FW_MSG2 0
-#define BIT_MASK_FW_MSG2 0xffffffffL
-#define BIT_FW_MSG2(x) (((x) & BIT_MASK_FW_MSG2) << BIT_SHIFT_FW_MSG2)
-#define BIT_GET_FW_MSG2(x) (((x) >> BIT_SHIFT_FW_MSG2) & BIT_MASK_FW_MSG2)
-
-/* 2 REG_MSG3				(Offset 0x11F4) */
-
-#define BIT_SHIFT_FW_MSG3 0
-#define BIT_MASK_FW_MSG3 0xffffffffL
-#define BIT_FW_MSG3(x) (((x) & BIT_MASK_FW_MSG3) << BIT_SHIFT_FW_MSG3)
-#define BIT_GET_FW_MSG3(x) (((x) >> BIT_SHIFT_FW_MSG3) & BIT_MASK_FW_MSG3)
-
-/* 2 REG_MSG4				(Offset 0x11F8) */
-
-#define BIT_SHIFT_FW_MSG4 0
-#define BIT_MASK_FW_MSG4 0xffffffffL
-#define BIT_FW_MSG4(x) (((x) & BIT_MASK_FW_MSG4) << BIT_SHIFT_FW_MSG4)
-#define BIT_GET_FW_MSG4(x) (((x) >> BIT_SHIFT_FW_MSG4) & BIT_MASK_FW_MSG4)
-
-/* 2 REG_MSG5				(Offset 0x11FC) */
-
-#define BIT_SHIFT_FW_MSG5 0
-#define BIT_MASK_FW_MSG5 0xffffffffL
-#define BIT_FW_MSG5(x) (((x) & BIT_MASK_FW_MSG5) << BIT_SHIFT_FW_MSG5)
-#define BIT_GET_FW_MSG5(x) (((x) >> BIT_SHIFT_FW_MSG5) & BIT_MASK_FW_MSG5)
-
-/* 2 REG_DDMA_CH0SA				(Offset 0x1200) */
-
-#define BIT_SHIFT_DDMACH0_SA 0
-#define BIT_MASK_DDMACH0_SA 0xffffffffL
-#define BIT_DDMACH0_SA(x) (((x) & BIT_MASK_DDMACH0_SA) << BIT_SHIFT_DDMACH0_SA)
-#define BIT_GET_DDMACH0_SA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH0_SA) & BIT_MASK_DDMACH0_SA)
-
-/* 2 REG_DDMA_CH0DA				(Offset 0x1204) */
-
-#define BIT_SHIFT_DDMACH0_DA 0
-#define BIT_MASK_DDMACH0_DA 0xffffffffL
-#define BIT_DDMACH0_DA(x) (((x) & BIT_MASK_DDMACH0_DA) << BIT_SHIFT_DDMACH0_DA)
-#define BIT_GET_DDMACH0_DA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH0_DA) & BIT_MASK_DDMACH0_DA)
-
-/* 2 REG_DDMA_CH0CTRL			(Offset 0x1208) */
-
-#define BIT_DDMACH0_OWN BIT(31)
-#define BIT_DDMACH0_CHKSUM_EN BIT(29)
-#define BIT_DDMACH0_DA_W_DISABLE BIT(28)
-#define BIT_DDMACH0_CHKSUM_STS BIT(27)
-#define BIT_DDMACH0_DDMA_MODE BIT(26)
-#define BIT_DDMACH0_RESET_CHKSUM_STS BIT(25)
-#define BIT_DDMACH0_CHKSUM_CONT BIT(24)
-
-#define BIT_SHIFT_DDMACH0_DLEN 0
-#define BIT_MASK_DDMACH0_DLEN 0x3ffff
-#define BIT_DDMACH0_DLEN(x)                                                    \
-	(((x) & BIT_MASK_DDMACH0_DLEN) << BIT_SHIFT_DDMACH0_DLEN)
-#define BIT_GET_DDMACH0_DLEN(x)                                                \
-	(((x) >> BIT_SHIFT_DDMACH0_DLEN) & BIT_MASK_DDMACH0_DLEN)
-
-/* 2 REG_DDMA_CH1SA				(Offset 0x1210) */
-
-#define BIT_SHIFT_DDMACH1_SA 0
-#define BIT_MASK_DDMACH1_SA 0xffffffffL
-#define BIT_DDMACH1_SA(x) (((x) & BIT_MASK_DDMACH1_SA) << BIT_SHIFT_DDMACH1_SA)
-#define BIT_GET_DDMACH1_SA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH1_SA) & BIT_MASK_DDMACH1_SA)
-
-/* 2 REG_DDMA_CH1DA				(Offset 0x1214) */
-
-#define BIT_SHIFT_DDMACH1_DA 0
-#define BIT_MASK_DDMACH1_DA 0xffffffffL
-#define BIT_DDMACH1_DA(x) (((x) & BIT_MASK_DDMACH1_DA) << BIT_SHIFT_DDMACH1_DA)
-#define BIT_GET_DDMACH1_DA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH1_DA) & BIT_MASK_DDMACH1_DA)
-
-/* 2 REG_DDMA_CH1CTRL			(Offset 0x1218) */
-
-#define BIT_DDMACH1_OWN BIT(31)
-#define BIT_DDMACH1_CHKSUM_EN BIT(29)
-#define BIT_DDMACH1_DA_W_DISABLE BIT(28)
-#define BIT_DDMACH1_CHKSUM_STS BIT(27)
-#define BIT_DDMACH1_DDMA_MODE BIT(26)
-#define BIT_DDMACH1_RESET_CHKSUM_STS BIT(25)
-#define BIT_DDMACH1_CHKSUM_CONT BIT(24)
-
-#define BIT_SHIFT_DDMACH1_DLEN 0
-#define BIT_MASK_DDMACH1_DLEN 0x3ffff
-#define BIT_DDMACH1_DLEN(x)                                                    \
-	(((x) & BIT_MASK_DDMACH1_DLEN) << BIT_SHIFT_DDMACH1_DLEN)
-#define BIT_GET_DDMACH1_DLEN(x)                                                \
-	(((x) >> BIT_SHIFT_DDMACH1_DLEN) & BIT_MASK_DDMACH1_DLEN)
-
-/* 2 REG_DDMA_CH2SA				(Offset 0x1220) */
-
-#define BIT_SHIFT_DDMACH2_SA 0
-#define BIT_MASK_DDMACH2_SA 0xffffffffL
-#define BIT_DDMACH2_SA(x) (((x) & BIT_MASK_DDMACH2_SA) << BIT_SHIFT_DDMACH2_SA)
-#define BIT_GET_DDMACH2_SA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH2_SA) & BIT_MASK_DDMACH2_SA)
-
-/* 2 REG_DDMA_CH2DA				(Offset 0x1224) */
-
-#define BIT_SHIFT_DDMACH2_DA 0
-#define BIT_MASK_DDMACH2_DA 0xffffffffL
-#define BIT_DDMACH2_DA(x) (((x) & BIT_MASK_DDMACH2_DA) << BIT_SHIFT_DDMACH2_DA)
-#define BIT_GET_DDMACH2_DA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH2_DA) & BIT_MASK_DDMACH2_DA)
-
-/* 2 REG_DDMA_CH2CTRL			(Offset 0x1228) */
-
-#define BIT_DDMACH2_OWN BIT(31)
-#define BIT_DDMACH2_CHKSUM_EN BIT(29)
-#define BIT_DDMACH2_DA_W_DISABLE BIT(28)
-#define BIT_DDMACH2_CHKSUM_STS BIT(27)
-#define BIT_DDMACH2_DDMA_MODE BIT(26)
-#define BIT_DDMACH2_RESET_CHKSUM_STS BIT(25)
-#define BIT_DDMACH2_CHKSUM_CONT BIT(24)
-
-#define BIT_SHIFT_DDMACH2_DLEN 0
-#define BIT_MASK_DDMACH2_DLEN 0x3ffff
-#define BIT_DDMACH2_DLEN(x)                                                    \
-	(((x) & BIT_MASK_DDMACH2_DLEN) << BIT_SHIFT_DDMACH2_DLEN)
-#define BIT_GET_DDMACH2_DLEN(x)                                                \
-	(((x) >> BIT_SHIFT_DDMACH2_DLEN) & BIT_MASK_DDMACH2_DLEN)
-
-/* 2 REG_DDMA_CH3SA				(Offset 0x1230) */
-
-#define BIT_SHIFT_DDMACH3_SA 0
-#define BIT_MASK_DDMACH3_SA 0xffffffffL
-#define BIT_DDMACH3_SA(x) (((x) & BIT_MASK_DDMACH3_SA) << BIT_SHIFT_DDMACH3_SA)
-#define BIT_GET_DDMACH3_SA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH3_SA) & BIT_MASK_DDMACH3_SA)
-
-/* 2 REG_DDMA_CH3DA				(Offset 0x1234) */
-
-#define BIT_SHIFT_DDMACH3_DA 0
-#define BIT_MASK_DDMACH3_DA 0xffffffffL
-#define BIT_DDMACH3_DA(x) (((x) & BIT_MASK_DDMACH3_DA) << BIT_SHIFT_DDMACH3_DA)
-#define BIT_GET_DDMACH3_DA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH3_DA) & BIT_MASK_DDMACH3_DA)
-
-/* 2 REG_DDMA_CH3CTRL			(Offset 0x1238) */
-
-#define BIT_DDMACH3_OWN BIT(31)
-#define BIT_DDMACH3_CHKSUM_EN BIT(29)
-#define BIT_DDMACH3_DA_W_DISABLE BIT(28)
-#define BIT_DDMACH3_CHKSUM_STS BIT(27)
-#define BIT_DDMACH3_DDMA_MODE BIT(26)
-#define BIT_DDMACH3_RESET_CHKSUM_STS BIT(25)
-#define BIT_DDMACH3_CHKSUM_CONT BIT(24)
-
-#define BIT_SHIFT_DDMACH3_DLEN 0
-#define BIT_MASK_DDMACH3_DLEN 0x3ffff
-#define BIT_DDMACH3_DLEN(x)                                                    \
-	(((x) & BIT_MASK_DDMACH3_DLEN) << BIT_SHIFT_DDMACH3_DLEN)
-#define BIT_GET_DDMACH3_DLEN(x)                                                \
-	(((x) >> BIT_SHIFT_DDMACH3_DLEN) & BIT_MASK_DDMACH3_DLEN)
-
-/* 2 REG_DDMA_CH4SA				(Offset 0x1240) */
-
-#define BIT_SHIFT_DDMACH4_SA 0
-#define BIT_MASK_DDMACH4_SA 0xffffffffL
-#define BIT_DDMACH4_SA(x) (((x) & BIT_MASK_DDMACH4_SA) << BIT_SHIFT_DDMACH4_SA)
-#define BIT_GET_DDMACH4_SA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH4_SA) & BIT_MASK_DDMACH4_SA)
-
-/* 2 REG_DDMA_CH4DA				(Offset 0x1244) */
-
-#define BIT_SHIFT_DDMACH4_DA 0
-#define BIT_MASK_DDMACH4_DA 0xffffffffL
-#define BIT_DDMACH4_DA(x) (((x) & BIT_MASK_DDMACH4_DA) << BIT_SHIFT_DDMACH4_DA)
-#define BIT_GET_DDMACH4_DA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH4_DA) & BIT_MASK_DDMACH4_DA)
-
-/* 2 REG_DDMA_CH4CTRL			(Offset 0x1248) */
-
-#define BIT_DDMACH4_OWN BIT(31)
-#define BIT_DDMACH4_CHKSUM_EN BIT(29)
-#define BIT_DDMACH4_DA_W_DISABLE BIT(28)
-#define BIT_DDMACH4_CHKSUM_STS BIT(27)
-#define BIT_DDMACH4_DDMA_MODE BIT(26)
-#define BIT_DDMACH4_RESET_CHKSUM_STS BIT(25)
-#define BIT_DDMACH4_CHKSUM_CONT BIT(24)
-
-#define BIT_SHIFT_DDMACH4_DLEN 0
-#define BIT_MASK_DDMACH4_DLEN 0x3ffff
-#define BIT_DDMACH4_DLEN(x)                                                    \
-	(((x) & BIT_MASK_DDMACH4_DLEN) << BIT_SHIFT_DDMACH4_DLEN)
-#define BIT_GET_DDMACH4_DLEN(x)                                                \
-	(((x) >> BIT_SHIFT_DDMACH4_DLEN) & BIT_MASK_DDMACH4_DLEN)
-
-/* 2 REG_DDMA_CH5SA				(Offset 0x1250) */
-
-#define BIT_SHIFT_DDMACH5_SA 0
-#define BIT_MASK_DDMACH5_SA 0xffffffffL
-#define BIT_DDMACH5_SA(x) (((x) & BIT_MASK_DDMACH5_SA) << BIT_SHIFT_DDMACH5_SA)
-#define BIT_GET_DDMACH5_SA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH5_SA) & BIT_MASK_DDMACH5_SA)
-
-/* 2 REG_DDMA_CH5DA				(Offset 0x1254) */
-
-#define BIT_DDMACH5_OWN BIT(31)
-#define BIT_DDMACH5_CHKSUM_EN BIT(29)
-#define BIT_DDMACH5_DA_W_DISABLE BIT(28)
-#define BIT_DDMACH5_CHKSUM_STS BIT(27)
-#define BIT_DDMACH5_DDMA_MODE BIT(26)
-#define BIT_DDMACH5_RESET_CHKSUM_STS BIT(25)
-#define BIT_DDMACH5_CHKSUM_CONT BIT(24)
-
-#define BIT_SHIFT_DDMACH5_DA 0
-#define BIT_MASK_DDMACH5_DA 0xffffffffL
-#define BIT_DDMACH5_DA(x) (((x) & BIT_MASK_DDMACH5_DA) << BIT_SHIFT_DDMACH5_DA)
-#define BIT_GET_DDMACH5_DA(x)                                                  \
-	(((x) >> BIT_SHIFT_DDMACH5_DA) & BIT_MASK_DDMACH5_DA)
-
-#define BIT_SHIFT_DDMACH5_DLEN 0
-#define BIT_MASK_DDMACH5_DLEN 0x3ffff
-#define BIT_DDMACH5_DLEN(x)                                                    \
-	(((x) & BIT_MASK_DDMACH5_DLEN) << BIT_SHIFT_DDMACH5_DLEN)
-#define BIT_GET_DDMACH5_DLEN(x)                                                \
-	(((x) >> BIT_SHIFT_DDMACH5_DLEN) & BIT_MASK_DDMACH5_DLEN)
-
-/* 2 REG_DDMA_INT_MSK			(Offset 0x12E0) */
-
-#define BIT_DDMACH5_MSK BIT(5)
-#define BIT_DDMACH4_MSK BIT(4)
-#define BIT_DDMACH3_MSK BIT(3)
-#define BIT_DDMACH2_MSK BIT(2)
-#define BIT_DDMACH1_MSK BIT(1)
-#define BIT_DDMACH0_MSK BIT(0)
-
-/* 2 REG_DDMA_CHSTATUS			(Offset 0x12E8) */
-
-#define BIT_DDMACH5_BUSY BIT(5)
-#define BIT_DDMACH4_BUSY BIT(4)
-#define BIT_DDMACH3_BUSY BIT(3)
-#define BIT_DDMACH2_BUSY BIT(2)
-#define BIT_DDMACH1_BUSY BIT(1)
-#define BIT_DDMACH0_BUSY BIT(0)
-
-/* 2 REG_DDMA_CHKSUM				(Offset 0x12F0) */
-
-#define BIT_SHIFT_IDDMA0_CHKSUM 0
-#define BIT_MASK_IDDMA0_CHKSUM 0xffff
-#define BIT_IDDMA0_CHKSUM(x)                                                   \
-	(((x) & BIT_MASK_IDDMA0_CHKSUM) << BIT_SHIFT_IDDMA0_CHKSUM)
-#define BIT_GET_IDDMA0_CHKSUM(x)                                               \
-	(((x) >> BIT_SHIFT_IDDMA0_CHKSUM) & BIT_MASK_IDDMA0_CHKSUM)
-
-/* 2 REG_DDMA_MONITOR			(Offset 0x12FC) */
-
-#define BIT_IDDMA0_PERMU_UNDERFLOW BIT(14)
-#define BIT_IDDMA0_FIFO_UNDERFLOW BIT(13)
-#define BIT_IDDMA0_FIFO_OVERFLOW BIT(12)
-#define BIT_ECRC_EN_V1 BIT(7)
-#define BIT_MDIO_RFLAG_V1 BIT(6)
-#define BIT_CH5_ERR BIT(5)
-#define BIT_MDIO_WFLAG_V1 BIT(5)
-#define BIT_CH4_ERR BIT(4)
-#define BIT_CH3_ERR BIT(3)
-#define BIT_CH2_ERR BIT(2)
-#define BIT_CH1_ERR BIT(1)
-#define BIT_CH0_ERR BIT(0)
-
-/* 2 REG_STC_INT_CS				(Offset 0x1300) */
-
-#define BIT_STC_INT_EN BIT(31)
-
-#define BIT_SHIFT_STC_INT_FLAG 16
-#define BIT_MASK_STC_INT_FLAG 0xff
-#define BIT_STC_INT_FLAG(x)                                                    \
-	(((x) & BIT_MASK_STC_INT_FLAG) << BIT_SHIFT_STC_INT_FLAG)
-#define BIT_GET_STC_INT_FLAG(x)                                                \
-	(((x) >> BIT_SHIFT_STC_INT_FLAG) & BIT_MASK_STC_INT_FLAG)
-
-#define BIT_SHIFT_STC_INT_IDX 8
-#define BIT_MASK_STC_INT_IDX 0x7
-#define BIT_STC_INT_IDX(x)                                                     \
-	(((x) & BIT_MASK_STC_INT_IDX) << BIT_SHIFT_STC_INT_IDX)
-#define BIT_GET_STC_INT_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_STC_INT_IDX) & BIT_MASK_STC_INT_IDX)
-
-#define BIT_SHIFT_STC_INT_REALTIME_CS 0
-#define BIT_MASK_STC_INT_REALTIME_CS 0x3f
-#define BIT_STC_INT_REALTIME_CS(x)                                             \
-	(((x) & BIT_MASK_STC_INT_REALTIME_CS) << BIT_SHIFT_STC_INT_REALTIME_CS)
-#define BIT_GET_STC_INT_REALTIME_CS(x)                                         \
-	(((x) >> BIT_SHIFT_STC_INT_REALTIME_CS) & BIT_MASK_STC_INT_REALTIME_CS)
-
-/* 2 REG_ST_INT_CFG				(Offset 0x1304) */
-
-#define BIT_STC_INT_GRP_EN BIT(31)
-
-#define BIT_SHIFT_STC_INT_EXPECT_LS 8
-#define BIT_MASK_STC_INT_EXPECT_LS 0x3f
-#define BIT_STC_INT_EXPECT_LS(x)                                               \
-	(((x) & BIT_MASK_STC_INT_EXPECT_LS) << BIT_SHIFT_STC_INT_EXPECT_LS)
-#define BIT_GET_STC_INT_EXPECT_LS(x)                                           \
-	(((x) >> BIT_SHIFT_STC_INT_EXPECT_LS) & BIT_MASK_STC_INT_EXPECT_LS)
-
-#define BIT_SHIFT_STC_INT_EXPECT_CS 0
-#define BIT_MASK_STC_INT_EXPECT_CS 0x3f
-#define BIT_STC_INT_EXPECT_CS(x)                                               \
-	(((x) & BIT_MASK_STC_INT_EXPECT_CS) << BIT_SHIFT_STC_INT_EXPECT_CS)
-#define BIT_GET_STC_INT_EXPECT_CS(x)                                           \
-	(((x) >> BIT_SHIFT_STC_INT_EXPECT_CS) & BIT_MASK_STC_INT_EXPECT_CS)
-
-/* 2 REG_CMU_DLY_CTRL			(Offset 0x1310) */
-
-#define BIT_CMU_DLY_EN BIT(31)
-#define BIT_CMU_DLY_MODE BIT(30)
-
-#define BIT_SHIFT_CMU_DLY_PRE_DIV 0
-#define BIT_MASK_CMU_DLY_PRE_DIV 0xff
-#define BIT_CMU_DLY_PRE_DIV(x)                                                 \
-	(((x) & BIT_MASK_CMU_DLY_PRE_DIV) << BIT_SHIFT_CMU_DLY_PRE_DIV)
-#define BIT_GET_CMU_DLY_PRE_DIV(x)                                             \
-	(((x) >> BIT_SHIFT_CMU_DLY_PRE_DIV) & BIT_MASK_CMU_DLY_PRE_DIV)
-
-/* 2 REG_CMU_DLY_CFG				(Offset 0x1314) */
-
-#define BIT_SHIFT_CMU_DLY_LTR_A2I 24
-#define BIT_MASK_CMU_DLY_LTR_A2I 0xff
-#define BIT_CMU_DLY_LTR_A2I(x)                                                 \
-	(((x) & BIT_MASK_CMU_DLY_LTR_A2I) << BIT_SHIFT_CMU_DLY_LTR_A2I)
-#define BIT_GET_CMU_DLY_LTR_A2I(x)                                             \
-	(((x) >> BIT_SHIFT_CMU_DLY_LTR_A2I) & BIT_MASK_CMU_DLY_LTR_A2I)
-
-#define BIT_SHIFT_CMU_DLY_LTR_I2A 16
-#define BIT_MASK_CMU_DLY_LTR_I2A 0xff
-#define BIT_CMU_DLY_LTR_I2A(x)                                                 \
-	(((x) & BIT_MASK_CMU_DLY_LTR_I2A) << BIT_SHIFT_CMU_DLY_LTR_I2A)
-#define BIT_GET_CMU_DLY_LTR_I2A(x)                                             \
-	(((x) >> BIT_SHIFT_CMU_DLY_LTR_I2A) & BIT_MASK_CMU_DLY_LTR_I2A)
-
-#define BIT_SHIFT_CMU_DLY_LTR_IDLE 8
-#define BIT_MASK_CMU_DLY_LTR_IDLE 0xff
-#define BIT_CMU_DLY_LTR_IDLE(x)                                                \
-	(((x) & BIT_MASK_CMU_DLY_LTR_IDLE) << BIT_SHIFT_CMU_DLY_LTR_IDLE)
-#define BIT_GET_CMU_DLY_LTR_IDLE(x)                                            \
-	(((x) >> BIT_SHIFT_CMU_DLY_LTR_IDLE) & BIT_MASK_CMU_DLY_LTR_IDLE)
-
-#define BIT_SHIFT_CMU_DLY_LTR_ACT 0
-#define BIT_MASK_CMU_DLY_LTR_ACT 0xff
-#define BIT_CMU_DLY_LTR_ACT(x)                                                 \
-	(((x) & BIT_MASK_CMU_DLY_LTR_ACT) << BIT_SHIFT_CMU_DLY_LTR_ACT)
-#define BIT_GET_CMU_DLY_LTR_ACT(x)                                             \
-	(((x) >> BIT_SHIFT_CMU_DLY_LTR_ACT) & BIT_MASK_CMU_DLY_LTR_ACT)
-
-/* 2 REG_H2CQ_TXBD_DESA			(Offset 0x1320) */
-
-#define BIT_SHIFT_H2CQ_TXBD_DESA 0
-#define BIT_MASK_H2CQ_TXBD_DESA 0xffffffffffffffffL
-#define BIT_H2CQ_TXBD_DESA(x)                                                  \
-	(((x) & BIT_MASK_H2CQ_TXBD_DESA) << BIT_SHIFT_H2CQ_TXBD_DESA)
-#define BIT_GET_H2CQ_TXBD_DESA(x)                                              \
-	(((x) >> BIT_SHIFT_H2CQ_TXBD_DESA) & BIT_MASK_H2CQ_TXBD_DESA)
-
-/* 2 REG_H2CQ_TXBD_NUM			(Offset 0x1328) */
-
-#define BIT_PCIE_H2CQ_FLAG BIT(14)
-
-/* 2 REG_H2CQ_TXBD_NUM			(Offset 0x1328) */
-
-#define BIT_SHIFT_H2CQ_DESC_MODE 12
-#define BIT_MASK_H2CQ_DESC_MODE 0x3
-#define BIT_H2CQ_DESC_MODE(x)                                                  \
-	(((x) & BIT_MASK_H2CQ_DESC_MODE) << BIT_SHIFT_H2CQ_DESC_MODE)
-#define BIT_GET_H2CQ_DESC_MODE(x)                                              \
-	(((x) >> BIT_SHIFT_H2CQ_DESC_MODE) & BIT_MASK_H2CQ_DESC_MODE)
-
-#define BIT_SHIFT_H2CQ_DESC_NUM 0
-#define BIT_MASK_H2CQ_DESC_NUM 0xfff
-#define BIT_H2CQ_DESC_NUM(x)                                                   \
-	(((x) & BIT_MASK_H2CQ_DESC_NUM) << BIT_SHIFT_H2CQ_DESC_NUM)
-#define BIT_GET_H2CQ_DESC_NUM(x)                                               \
-	(((x) >> BIT_SHIFT_H2CQ_DESC_NUM) & BIT_MASK_H2CQ_DESC_NUM)
-
-/* 2 REG_H2CQ_TXBD_IDX			(Offset 0x132C) */
-
-#define BIT_SHIFT_H2CQ_HW_IDX 16
-#define BIT_MASK_H2CQ_HW_IDX 0xfff
-#define BIT_H2CQ_HW_IDX(x)                                                     \
-	(((x) & BIT_MASK_H2CQ_HW_IDX) << BIT_SHIFT_H2CQ_HW_IDX)
-#define BIT_GET_H2CQ_HW_IDX(x)                                                 \
-	(((x) >> BIT_SHIFT_H2CQ_HW_IDX) & BIT_MASK_H2CQ_HW_IDX)
-
-#define BIT_SHIFT_H2CQ_HOST_IDX 0
-#define BIT_MASK_H2CQ_HOST_IDX 0xfff
-#define BIT_H2CQ_HOST_IDX(x)                                                   \
-	(((x) & BIT_MASK_H2CQ_HOST_IDX) << BIT_SHIFT_H2CQ_HOST_IDX)
-#define BIT_GET_H2CQ_HOST_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_H2CQ_HOST_IDX) & BIT_MASK_H2CQ_HOST_IDX)
-
-/* 2 REG_H2CQ_CSR				(Offset 0x1330) */
-
-#define BIT_H2CQ_FULL BIT(31)
-#define BIT_CLR_H2CQ_HOST_IDX BIT(16)
-#define BIT_CLR_H2CQ_HW_IDX BIT(8)
-
-/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */
-
-#define BIT_CHANGE_PCIE_SPEED BIT(18)
-
-/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */
-
-#define BIT_SHIFT_GEN1_GEN2 16
-#define BIT_MASK_GEN1_GEN2 0x3
-#define BIT_GEN1_GEN2(x) (((x) & BIT_MASK_GEN1_GEN2) << BIT_SHIFT_GEN1_GEN2)
-#define BIT_GET_GEN1_GEN2(x) (((x) >> BIT_SHIFT_GEN1_GEN2) & BIT_MASK_GEN1_GEN2)
-
-/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */
-
-#define BIT_SHIFT_AUTO_HANG_RELEASE 0
-#define BIT_MASK_AUTO_HANG_RELEASE 0x7
-#define BIT_AUTO_HANG_RELEASE(x)                                               \
-	(((x) & BIT_MASK_AUTO_HANG_RELEASE) << BIT_SHIFT_AUTO_HANG_RELEASE)
-#define BIT_GET_AUTO_HANG_RELEASE(x)                                           \
-	(((x) >> BIT_SHIFT_AUTO_HANG_RELEASE) & BIT_MASK_AUTO_HANG_RELEASE)
-
-/* 2 REG_OLD_DEHANG				(Offset 0x13F4) */
-
-#define BIT_OLD_DEHANG BIT(1)
-
-/* 2 REG_Q0_Q1_INFO				(Offset 0x1400) */
-
-#define BIT_SHIFT_AC1_PKT_INFO 16
-#define BIT_MASK_AC1_PKT_INFO 0xfff
-#define BIT_AC1_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_AC1_PKT_INFO) << BIT_SHIFT_AC1_PKT_INFO)
-#define BIT_GET_AC1_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_AC1_PKT_INFO) & BIT_MASK_AC1_PKT_INFO)
-
-#define BIT_SHIFT_AC0_PKT_INFO 0
-#define BIT_MASK_AC0_PKT_INFO 0xfff
-#define BIT_AC0_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_AC0_PKT_INFO) << BIT_SHIFT_AC0_PKT_INFO)
-#define BIT_GET_AC0_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_AC0_PKT_INFO) & BIT_MASK_AC0_PKT_INFO)
-
-/* 2 REG_Q2_Q3_INFO				(Offset 0x1404) */
-
-#define BIT_SHIFT_AC3_PKT_INFO 16
-#define BIT_MASK_AC3_PKT_INFO 0xfff
-#define BIT_AC3_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_AC3_PKT_INFO) << BIT_SHIFT_AC3_PKT_INFO)
-#define BIT_GET_AC3_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_AC3_PKT_INFO) & BIT_MASK_AC3_PKT_INFO)
-
-#define BIT_SHIFT_AC2_PKT_INFO 0
-#define BIT_MASK_AC2_PKT_INFO 0xfff
-#define BIT_AC2_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_AC2_PKT_INFO) << BIT_SHIFT_AC2_PKT_INFO)
-#define BIT_GET_AC2_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_AC2_PKT_INFO) & BIT_MASK_AC2_PKT_INFO)
-
-/* 2 REG_Q4_Q5_INFO				(Offset 0x1408) */
-
-#define BIT_SHIFT_AC5_PKT_INFO 16
-#define BIT_MASK_AC5_PKT_INFO 0xfff
-#define BIT_AC5_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_AC5_PKT_INFO) << BIT_SHIFT_AC5_PKT_INFO)
-#define BIT_GET_AC5_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_AC5_PKT_INFO) & BIT_MASK_AC5_PKT_INFO)
-
-#define BIT_SHIFT_AC4_PKT_INFO 0
-#define BIT_MASK_AC4_PKT_INFO 0xfff
-#define BIT_AC4_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_AC4_PKT_INFO) << BIT_SHIFT_AC4_PKT_INFO)
-#define BIT_GET_AC4_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_AC4_PKT_INFO) & BIT_MASK_AC4_PKT_INFO)
-
-/* 2 REG_Q6_Q7_INFO				(Offset 0x140C) */
-
-#define BIT_SHIFT_AC7_PKT_INFO 16
-#define BIT_MASK_AC7_PKT_INFO 0xfff
-#define BIT_AC7_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_AC7_PKT_INFO) << BIT_SHIFT_AC7_PKT_INFO)
-#define BIT_GET_AC7_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_AC7_PKT_INFO) & BIT_MASK_AC7_PKT_INFO)
-
-#define BIT_SHIFT_AC6_PKT_INFO 0
-#define BIT_MASK_AC6_PKT_INFO 0xfff
-#define BIT_AC6_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_AC6_PKT_INFO) << BIT_SHIFT_AC6_PKT_INFO)
-#define BIT_GET_AC6_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_AC6_PKT_INFO) & BIT_MASK_AC6_PKT_INFO)
-
-/* 2 REG_MGQ_HIQ_INFO			(Offset 0x1410) */
-
-#define BIT_SHIFT_HIQ_PKT_INFO 16
-#define BIT_MASK_HIQ_PKT_INFO 0xfff
-#define BIT_HIQ_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_HIQ_PKT_INFO) << BIT_SHIFT_HIQ_PKT_INFO)
-#define BIT_GET_HIQ_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_HIQ_PKT_INFO) & BIT_MASK_HIQ_PKT_INFO)
-
-#define BIT_SHIFT_MGQ_PKT_INFO 0
-#define BIT_MASK_MGQ_PKT_INFO 0xfff
-#define BIT_MGQ_PKT_INFO(x)                                                    \
-	(((x) & BIT_MASK_MGQ_PKT_INFO) << BIT_SHIFT_MGQ_PKT_INFO)
-#define BIT_GET_MGQ_PKT_INFO(x)                                                \
-	(((x) >> BIT_SHIFT_MGQ_PKT_INFO) & BIT_MASK_MGQ_PKT_INFO)
-
-/* 2 REG_CMDQ_BCNQ_INFO			(Offset 0x1414) */
-
-#define BIT_SHIFT_CMDQ_PKT_INFO 16
-#define BIT_MASK_CMDQ_PKT_INFO 0xfff
-#define BIT_CMDQ_PKT_INFO(x)                                                   \
-	(((x) & BIT_MASK_CMDQ_PKT_INFO) << BIT_SHIFT_CMDQ_PKT_INFO)
-#define BIT_GET_CMDQ_PKT_INFO(x)                                               \
-	(((x) >> BIT_SHIFT_CMDQ_PKT_INFO) & BIT_MASK_CMDQ_PKT_INFO)
-
-/* 2 REG_CMDQ_BCNQ_INFO			(Offset 0x1414) */
-
-#define BIT_SHIFT_BCNQ_PKT_INFO 0
-#define BIT_MASK_BCNQ_PKT_INFO 0xfff
-#define BIT_BCNQ_PKT_INFO(x)                                                   \
-	(((x) & BIT_MASK_BCNQ_PKT_INFO) << BIT_SHIFT_BCNQ_PKT_INFO)
-#define BIT_GET_BCNQ_PKT_INFO(x)                                               \
-	(((x) >> BIT_SHIFT_BCNQ_PKT_INFO) & BIT_MASK_BCNQ_PKT_INFO)
-
-/* 2 REG_USEREG_SETTING			(Offset 0x1420) */
-
-#define BIT_NDPA_USEREG BIT(21)
-
-#define BIT_SHIFT_RETRY_USEREG 19
-#define BIT_MASK_RETRY_USEREG 0x3
-#define BIT_RETRY_USEREG(x)                                                    \
-	(((x) & BIT_MASK_RETRY_USEREG) << BIT_SHIFT_RETRY_USEREG)
-#define BIT_GET_RETRY_USEREG(x)                                                \
-	(((x) >> BIT_SHIFT_RETRY_USEREG) & BIT_MASK_RETRY_USEREG)
-
-#define BIT_SHIFT_TRYPKT_USEREG 17
-#define BIT_MASK_TRYPKT_USEREG 0x3
-#define BIT_TRYPKT_USEREG(x)                                                   \
-	(((x) & BIT_MASK_TRYPKT_USEREG) << BIT_SHIFT_TRYPKT_USEREG)
-#define BIT_GET_TRYPKT_USEREG(x)                                               \
-	(((x) >> BIT_SHIFT_TRYPKT_USEREG) & BIT_MASK_TRYPKT_USEREG)
-
-#define BIT_CTLPKT_USEREG BIT(16)
-
-/* 2 REG_AESIV_SETTING			(Offset 0x1424) */
-
-#define BIT_SHIFT_AESIV_OFFSET 0
-#define BIT_MASK_AESIV_OFFSET 0xfff
-#define BIT_AESIV_OFFSET(x)                                                    \
-	(((x) & BIT_MASK_AESIV_OFFSET) << BIT_SHIFT_AESIV_OFFSET)
-#define BIT_GET_AESIV_OFFSET(x)                                                \
-	(((x) >> BIT_SHIFT_AESIV_OFFSET) & BIT_MASK_AESIV_OFFSET)
-
-/* 2 REG_BF0_TIME_SETTING			(Offset 0x1428) */
-
-#define BIT_BF0_TIMER_SET BIT(31)
-#define BIT_BF0_TIMER_CLR BIT(30)
-#define BIT_BF0_UPDATE_EN BIT(29)
-#define BIT_BF0_TIMER_EN BIT(28)
-
-#define BIT_SHIFT_BF0_PRETIME_OVER 16
-#define BIT_MASK_BF0_PRETIME_OVER 0xfff
-#define BIT_BF0_PRETIME_OVER(x)                                                \
-	(((x) & BIT_MASK_BF0_PRETIME_OVER) << BIT_SHIFT_BF0_PRETIME_OVER)
-#define BIT_GET_BF0_PRETIME_OVER(x)                                            \
-	(((x) >> BIT_SHIFT_BF0_PRETIME_OVER) & BIT_MASK_BF0_PRETIME_OVER)
-
-#define BIT_SHIFT_BF0_LIFETIME 0
-#define BIT_MASK_BF0_LIFETIME 0xffff
-#define BIT_BF0_LIFETIME(x)                                                    \
-	(((x) & BIT_MASK_BF0_LIFETIME) << BIT_SHIFT_BF0_LIFETIME)
-#define BIT_GET_BF0_LIFETIME(x)                                                \
-	(((x) >> BIT_SHIFT_BF0_LIFETIME) & BIT_MASK_BF0_LIFETIME)
-
-/* 2 REG_BF1_TIME_SETTING			(Offset 0x142C) */
-
-#define BIT_BF1_TIMER_SET BIT(31)
-#define BIT_BF1_TIMER_CLR BIT(30)
-#define BIT_BF1_UPDATE_EN BIT(29)
-#define BIT_BF1_TIMER_EN BIT(28)
-
-#define BIT_SHIFT_BF1_PRETIME_OVER 16
-#define BIT_MASK_BF1_PRETIME_OVER 0xfff
-#define BIT_BF1_PRETIME_OVER(x)                                                \
-	(((x) & BIT_MASK_BF1_PRETIME_OVER) << BIT_SHIFT_BF1_PRETIME_OVER)
-#define BIT_GET_BF1_PRETIME_OVER(x)                                            \
-	(((x) >> BIT_SHIFT_BF1_PRETIME_OVER) & BIT_MASK_BF1_PRETIME_OVER)
-
-#define BIT_SHIFT_BF1_LIFETIME 0
-#define BIT_MASK_BF1_LIFETIME 0xffff
-#define BIT_BF1_LIFETIME(x)                                                    \
-	(((x) & BIT_MASK_BF1_LIFETIME) << BIT_SHIFT_BF1_LIFETIME)
-#define BIT_GET_BF1_LIFETIME(x)                                                \
-	(((x) >> BIT_SHIFT_BF1_LIFETIME) & BIT_MASK_BF1_LIFETIME)
-
-/* 2 REG_BF_TIMEOUT_EN			(Offset 0x1430) */
-
-#define BIT_EN_VHT_LDPC BIT(9)
-#define BIT_EN_HT_LDPC BIT(8)
-#define BIT_BF1_TIMEOUT_EN BIT(1)
-#define BIT_BF0_TIMEOUT_EN BIT(0)
-
-/* 2 REG_MACID_RELEASE0			(Offset 0x1434) */
-
-#define BIT_SHIFT_MACID31_0_RELEASE 0
-#define BIT_MASK_MACID31_0_RELEASE 0xffffffffL
-#define BIT_MACID31_0_RELEASE(x)                                               \
-	(((x) & BIT_MASK_MACID31_0_RELEASE) << BIT_SHIFT_MACID31_0_RELEASE)
-#define BIT_GET_MACID31_0_RELEASE(x)                                           \
-	(((x) >> BIT_SHIFT_MACID31_0_RELEASE) & BIT_MASK_MACID31_0_RELEASE)
-
-/* 2 REG_MACID_RELEASE1			(Offset 0x1438) */
-
-#define BIT_SHIFT_MACID63_32_RELEASE 0
-#define BIT_MASK_MACID63_32_RELEASE 0xffffffffL
-#define BIT_MACID63_32_RELEASE(x)                                              \
-	(((x) & BIT_MASK_MACID63_32_RELEASE) << BIT_SHIFT_MACID63_32_RELEASE)
-#define BIT_GET_MACID63_32_RELEASE(x)                                          \
-	(((x) >> BIT_SHIFT_MACID63_32_RELEASE) & BIT_MASK_MACID63_32_RELEASE)
-
-/* 2 REG_MACID_RELEASE2			(Offset 0x143C) */
-
-#define BIT_SHIFT_MACID95_64_RELEASE 0
-#define BIT_MASK_MACID95_64_RELEASE 0xffffffffL
-#define BIT_MACID95_64_RELEASE(x)                                              \
-	(((x) & BIT_MASK_MACID95_64_RELEASE) << BIT_SHIFT_MACID95_64_RELEASE)
-#define BIT_GET_MACID95_64_RELEASE(x)                                          \
-	(((x) >> BIT_SHIFT_MACID95_64_RELEASE) & BIT_MASK_MACID95_64_RELEASE)
-
-/* 2 REG_MACID_RELEASE3			(Offset 0x1440) */
-
-#define BIT_SHIFT_MACID127_96_RELEASE 0
-#define BIT_MASK_MACID127_96_RELEASE 0xffffffffL
-#define BIT_MACID127_96_RELEASE(x)                                             \
-	(((x) & BIT_MASK_MACID127_96_RELEASE) << BIT_SHIFT_MACID127_96_RELEASE)
-#define BIT_GET_MACID127_96_RELEASE(x)                                         \
-	(((x) >> BIT_SHIFT_MACID127_96_RELEASE) & BIT_MASK_MACID127_96_RELEASE)
-
-/* 2 REG_MACID_RELEASE_SETTING		(Offset 0x1444) */
-
-#define BIT_MACID_VALUE BIT(7)
-
-#define BIT_SHIFT_MACID_OFFSET 0
-#define BIT_MASK_MACID_OFFSET 0x7f
-#define BIT_MACID_OFFSET(x)                                                    \
-	(((x) & BIT_MASK_MACID_OFFSET) << BIT_SHIFT_MACID_OFFSET)
-#define BIT_GET_MACID_OFFSET(x)                                                \
-	(((x) >> BIT_SHIFT_MACID_OFFSET) & BIT_MASK_MACID_OFFSET)
-
-/* 2 REG_FAST_EDCA_VOVI_SETTING		(Offset 0x1448) */
-
-#define BIT_SHIFT_VI_FAST_EDCA_TO 24
-#define BIT_MASK_VI_FAST_EDCA_TO 0xff
-#define BIT_VI_FAST_EDCA_TO(x)                                                 \
-	(((x) & BIT_MASK_VI_FAST_EDCA_TO) << BIT_SHIFT_VI_FAST_EDCA_TO)
-#define BIT_GET_VI_FAST_EDCA_TO(x)                                             \
-	(((x) >> BIT_SHIFT_VI_FAST_EDCA_TO) & BIT_MASK_VI_FAST_EDCA_TO)
-
-#define BIT_VI_THRESHOLD_SEL BIT(23)
-
-#define BIT_SHIFT_VI_FAST_EDCA_PKT_TH 16
-#define BIT_MASK_VI_FAST_EDCA_PKT_TH 0x7f
-#define BIT_VI_FAST_EDCA_PKT_TH(x)                                             \
-	(((x) & BIT_MASK_VI_FAST_EDCA_PKT_TH) << BIT_SHIFT_VI_FAST_EDCA_PKT_TH)
-#define BIT_GET_VI_FAST_EDCA_PKT_TH(x)                                         \
-	(((x) >> BIT_SHIFT_VI_FAST_EDCA_PKT_TH) & BIT_MASK_VI_FAST_EDCA_PKT_TH)
-
-#define BIT_SHIFT_VO_FAST_EDCA_TO 8
-#define BIT_MASK_VO_FAST_EDCA_TO 0xff
-#define BIT_VO_FAST_EDCA_TO(x)                                                 \
-	(((x) & BIT_MASK_VO_FAST_EDCA_TO) << BIT_SHIFT_VO_FAST_EDCA_TO)
-#define BIT_GET_VO_FAST_EDCA_TO(x)                                             \
-	(((x) >> BIT_SHIFT_VO_FAST_EDCA_TO) & BIT_MASK_VO_FAST_EDCA_TO)
-
-#define BIT_VO_THRESHOLD_SEL BIT(7)
-
-#define BIT_SHIFT_VO_FAST_EDCA_PKT_TH 0
-#define BIT_MASK_VO_FAST_EDCA_PKT_TH 0x7f
-#define BIT_VO_FAST_EDCA_PKT_TH(x)                                             \
-	(((x) & BIT_MASK_VO_FAST_EDCA_PKT_TH) << BIT_SHIFT_VO_FAST_EDCA_PKT_TH)
-#define BIT_GET_VO_FAST_EDCA_PKT_TH(x)                                         \
-	(((x) >> BIT_SHIFT_VO_FAST_EDCA_PKT_TH) & BIT_MASK_VO_FAST_EDCA_PKT_TH)
-
-/* 2 REG_FAST_EDCA_BEBK_SETTING		(Offset 0x144C) */
-
-#define BIT_SHIFT_BK_FAST_EDCA_TO 24
-#define BIT_MASK_BK_FAST_EDCA_TO 0xff
-#define BIT_BK_FAST_EDCA_TO(x)                                                 \
-	(((x) & BIT_MASK_BK_FAST_EDCA_TO) << BIT_SHIFT_BK_FAST_EDCA_TO)
-#define BIT_GET_BK_FAST_EDCA_TO(x)                                             \
-	(((x) >> BIT_SHIFT_BK_FAST_EDCA_TO) & BIT_MASK_BK_FAST_EDCA_TO)
-
-#define BIT_BK_THRESHOLD_SEL BIT(23)
-
-#define BIT_SHIFT_BK_FAST_EDCA_PKT_TH 16
-#define BIT_MASK_BK_FAST_EDCA_PKT_TH 0x7f
-#define BIT_BK_FAST_EDCA_PKT_TH(x)                                             \
-	(((x) & BIT_MASK_BK_FAST_EDCA_PKT_TH) << BIT_SHIFT_BK_FAST_EDCA_PKT_TH)
-#define BIT_GET_BK_FAST_EDCA_PKT_TH(x)                                         \
-	(((x) >> BIT_SHIFT_BK_FAST_EDCA_PKT_TH) & BIT_MASK_BK_FAST_EDCA_PKT_TH)
-
-#define BIT_SHIFT_BE_FAST_EDCA_TO 8
-#define BIT_MASK_BE_FAST_EDCA_TO 0xff
-#define BIT_BE_FAST_EDCA_TO(x)                                                 \
-	(((x) & BIT_MASK_BE_FAST_EDCA_TO) << BIT_SHIFT_BE_FAST_EDCA_TO)
-#define BIT_GET_BE_FAST_EDCA_TO(x)                                             \
-	(((x) >> BIT_SHIFT_BE_FAST_EDCA_TO) & BIT_MASK_BE_FAST_EDCA_TO)
-
-#define BIT_BE_THRESHOLD_SEL BIT(7)
-
-#define BIT_SHIFT_BE_FAST_EDCA_PKT_TH 0
-#define BIT_MASK_BE_FAST_EDCA_PKT_TH 0x7f
-#define BIT_BE_FAST_EDCA_PKT_TH(x)                                             \
-	(((x) & BIT_MASK_BE_FAST_EDCA_PKT_TH) << BIT_SHIFT_BE_FAST_EDCA_PKT_TH)
-#define BIT_GET_BE_FAST_EDCA_PKT_TH(x)                                         \
-	(((x) >> BIT_SHIFT_BE_FAST_EDCA_PKT_TH) & BIT_MASK_BE_FAST_EDCA_PKT_TH)
-
-/* 2 REG_MACID_DROP0				(Offset 0x1450) */
-
-#define BIT_SHIFT_MACID31_0_DROP 0
-#define BIT_MASK_MACID31_0_DROP 0xffffffffL
-#define BIT_MACID31_0_DROP(x)                                                  \
-	(((x) & BIT_MASK_MACID31_0_DROP) << BIT_SHIFT_MACID31_0_DROP)
-#define BIT_GET_MACID31_0_DROP(x)                                              \
-	(((x) >> BIT_SHIFT_MACID31_0_DROP) & BIT_MASK_MACID31_0_DROP)
-
-/* 2 REG_MACID_DROP1				(Offset 0x1454) */
-
-#define BIT_SHIFT_MACID63_32_DROP 0
-#define BIT_MASK_MACID63_32_DROP 0xffffffffL
-#define BIT_MACID63_32_DROP(x)                                                 \
-	(((x) & BIT_MASK_MACID63_32_DROP) << BIT_SHIFT_MACID63_32_DROP)
-#define BIT_GET_MACID63_32_DROP(x)                                             \
-	(((x) >> BIT_SHIFT_MACID63_32_DROP) & BIT_MASK_MACID63_32_DROP)
-
-/* 2 REG_MACID_DROP2				(Offset 0x1458) */
-
-#define BIT_SHIFT_MACID95_64_DROP 0
-#define BIT_MASK_MACID95_64_DROP 0xffffffffL
-#define BIT_MACID95_64_DROP(x)                                                 \
-	(((x) & BIT_MASK_MACID95_64_DROP) << BIT_SHIFT_MACID95_64_DROP)
-#define BIT_GET_MACID95_64_DROP(x)                                             \
-	(((x) >> BIT_SHIFT_MACID95_64_DROP) & BIT_MASK_MACID95_64_DROP)
-
-/* 2 REG_MACID_DROP3				(Offset 0x145C) */
-
-#define BIT_SHIFT_MACID127_96_DROP 0
-#define BIT_MASK_MACID127_96_DROP 0xffffffffL
-#define BIT_MACID127_96_DROP(x)                                                \
-	(((x) & BIT_MASK_MACID127_96_DROP) << BIT_SHIFT_MACID127_96_DROP)
-#define BIT_GET_MACID127_96_DROP(x)                                            \
-	(((x) >> BIT_SHIFT_MACID127_96_DROP) & BIT_MASK_MACID127_96_DROP)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_0		(Offset 0x1460) */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_0 0xffffffffL
-#define BIT_R_MACID_RELEASE_SUCCESS_0(x)                                       \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_0)                            \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_0(x)                                   \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0) &                        \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_0)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_1		(Offset 0x1464) */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_1 0xffffffffL
-#define BIT_R_MACID_RELEASE_SUCCESS_1(x)                                       \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_1)                            \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_1(x)                                   \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1) &                        \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_1)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_2		(Offset 0x1468) */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_2 0xffffffffL
-#define BIT_R_MACID_RELEASE_SUCCESS_2(x)                                       \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_2)                            \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_2(x)                                   \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2) &                        \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_2)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_3		(Offset 0x146C) */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_3 0xffffffffL
-#define BIT_R_MACID_RELEASE_SUCCESS_3(x)                                       \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_3)                            \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_3(x)                                   \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3) &                        \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_3)
-
-/* 2 REG_MGG_FIFO_CRTL			(Offset 0x1470) */
-
-#define BIT_R_MGG_FIFO_EN BIT(31)
-
-#define BIT_SHIFT_R_MGG_FIFO_PG_SIZE 28
-#define BIT_MASK_R_MGG_FIFO_PG_SIZE 0x7
-#define BIT_R_MGG_FIFO_PG_SIZE(x)                                              \
-	(((x) & BIT_MASK_R_MGG_FIFO_PG_SIZE) << BIT_SHIFT_R_MGG_FIFO_PG_SIZE)
-#define BIT_GET_R_MGG_FIFO_PG_SIZE(x)                                          \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_PG_SIZE) & BIT_MASK_R_MGG_FIFO_PG_SIZE)
-
-#define BIT_SHIFT_R_MGG_FIFO_START_PG 16
-#define BIT_MASK_R_MGG_FIFO_START_PG 0xfff
-#define BIT_R_MGG_FIFO_START_PG(x)                                             \
-	(((x) & BIT_MASK_R_MGG_FIFO_START_PG) << BIT_SHIFT_R_MGG_FIFO_START_PG)
-#define BIT_GET_R_MGG_FIFO_START_PG(x)                                         \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_START_PG) & BIT_MASK_R_MGG_FIFO_START_PG)
-
-#define BIT_SHIFT_R_MGG_FIFO_SIZE 14
-#define BIT_MASK_R_MGG_FIFO_SIZE 0x3
-#define BIT_R_MGG_FIFO_SIZE(x)                                                 \
-	(((x) & BIT_MASK_R_MGG_FIFO_SIZE) << BIT_SHIFT_R_MGG_FIFO_SIZE)
-#define BIT_GET_R_MGG_FIFO_SIZE(x)                                             \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_SIZE) & BIT_MASK_R_MGG_FIFO_SIZE)
-
-#define BIT_R_MGG_FIFO_PAUSE BIT(13)
-
-#define BIT_SHIFT_R_MGG_FIFO_RPTR 8
-#define BIT_MASK_R_MGG_FIFO_RPTR 0x1f
-#define BIT_R_MGG_FIFO_RPTR(x)                                                 \
-	(((x) & BIT_MASK_R_MGG_FIFO_RPTR) << BIT_SHIFT_R_MGG_FIFO_RPTR)
-#define BIT_GET_R_MGG_FIFO_RPTR(x)                                             \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_RPTR) & BIT_MASK_R_MGG_FIFO_RPTR)
-
-#define BIT_R_MGG_FIFO_OV BIT(7)
-#define BIT_R_MGG_FIFO_WPTR_ERROR BIT(6)
-#define BIT_R_EN_CPU_LIFETIME BIT(5)
-
-#define BIT_SHIFT_R_MGG_FIFO_WPTR 0
-#define BIT_MASK_R_MGG_FIFO_WPTR 0x1f
-#define BIT_R_MGG_FIFO_WPTR(x)                                                 \
-	(((x) & BIT_MASK_R_MGG_FIFO_WPTR) << BIT_SHIFT_R_MGG_FIFO_WPTR)
-#define BIT_GET_R_MGG_FIFO_WPTR(x)                                             \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_WPTR) & BIT_MASK_R_MGG_FIFO_WPTR)
-
-/* 2 REG_MGG_FIFO_INT			(Offset 0x1474) */
-
-#define BIT_SHIFT_R_MGG_FIFO_INT_FLAG 16
-#define BIT_MASK_R_MGG_FIFO_INT_FLAG 0xffff
-#define BIT_R_MGG_FIFO_INT_FLAG(x)                                             \
-	(((x) & BIT_MASK_R_MGG_FIFO_INT_FLAG) << BIT_SHIFT_R_MGG_FIFO_INT_FLAG)
-#define BIT_GET_R_MGG_FIFO_INT_FLAG(x)                                         \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_INT_FLAG) & BIT_MASK_R_MGG_FIFO_INT_FLAG)
-
-#define BIT_SHIFT_R_MGG_FIFO_INT_MASK 0
-#define BIT_MASK_R_MGG_FIFO_INT_MASK 0xffff
-#define BIT_R_MGG_FIFO_INT_MASK(x)                                             \
-	(((x) & BIT_MASK_R_MGG_FIFO_INT_MASK) << BIT_SHIFT_R_MGG_FIFO_INT_MASK)
-#define BIT_GET_R_MGG_FIFO_INT_MASK(x)                                         \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_INT_MASK) & BIT_MASK_R_MGG_FIFO_INT_MASK)
-
-/* 2 REG_MGG_FIFO_LIFETIME			(Offset 0x1478) */
-
-#define BIT_SHIFT_R_MGG_FIFO_LIFETIME 16
-#define BIT_MASK_R_MGG_FIFO_LIFETIME 0xffff
-#define BIT_R_MGG_FIFO_LIFETIME(x)                                             \
-	(((x) & BIT_MASK_R_MGG_FIFO_LIFETIME) << BIT_SHIFT_R_MGG_FIFO_LIFETIME)
-#define BIT_GET_R_MGG_FIFO_LIFETIME(x)                                         \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_LIFETIME) & BIT_MASK_R_MGG_FIFO_LIFETIME)
-
-#define BIT_SHIFT_R_MGG_FIFO_VALID_MAP 0
-#define BIT_MASK_R_MGG_FIFO_VALID_MAP 0xffff
-#define BIT_R_MGG_FIFO_VALID_MAP(x)                                            \
-	(((x) & BIT_MASK_R_MGG_FIFO_VALID_MAP)                                 \
-	 << BIT_SHIFT_R_MGG_FIFO_VALID_MAP)
-#define BIT_GET_R_MGG_FIFO_VALID_MAP(x)                                        \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_VALID_MAP) &                             \
-	 BIT_MASK_R_MGG_FIFO_VALID_MAP)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET (Offset 0x147C) */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET 0x7f
-#define BIT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x)                            \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET)                 \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x)                        \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET) &             \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET)
-
-#define BIT_SHIFT_P2PON_DIS_TXTIME 0
-#define BIT_MASK_P2PON_DIS_TXTIME 0xff
-#define BIT_P2PON_DIS_TXTIME(x)                                                \
-	(((x) & BIT_MASK_P2PON_DIS_TXTIME) << BIT_SHIFT_P2PON_DIS_TXTIME)
-#define BIT_GET_P2PON_DIS_TXTIME(x)                                            \
-	(((x) >> BIT_SHIFT_P2PON_DIS_TXTIME) & BIT_MASK_P2PON_DIS_TXTIME)
-
-/* 2 REG_MACID_SHCUT_OFFSET			(Offset 0x1480) */
-
-#define BIT_SHIFT_MACID_SHCUT_OFFSET_V1 0
-#define BIT_MASK_MACID_SHCUT_OFFSET_V1 0xff
-#define BIT_MACID_SHCUT_OFFSET_V1(x)                                           \
-	(((x) & BIT_MASK_MACID_SHCUT_OFFSET_V1)                                \
-	 << BIT_SHIFT_MACID_SHCUT_OFFSET_V1)
-#define BIT_GET_MACID_SHCUT_OFFSET_V1(x)                                       \
-	(((x) >> BIT_SHIFT_MACID_SHCUT_OFFSET_V1) &                            \
-	 BIT_MASK_MACID_SHCUT_OFFSET_V1)
-
-/* 2 REG_MU_TX_CTL				(Offset 0x14C0) */
-
-#define BIT_R_EN_REVERS_GTAB BIT(6)
-
-#define BIT_SHIFT_R_MU_TABLE_VALID 0
-#define BIT_MASK_R_MU_TABLE_VALID 0x3f
-#define BIT_R_MU_TABLE_VALID(x)                                                \
-	(((x) & BIT_MASK_R_MU_TABLE_VALID) << BIT_SHIFT_R_MU_TABLE_VALID)
-#define BIT_GET_R_MU_TABLE_VALID(x)                                            \
-	(((x) >> BIT_SHIFT_R_MU_TABLE_VALID) & BIT_MASK_R_MU_TABLE_VALID)
-
-#define BIT_SHIFT_R_MU_STA_GTAB_VALID 0
-#define BIT_MASK_R_MU_STA_GTAB_VALID 0xffffffffL
-#define BIT_R_MU_STA_GTAB_VALID(x)                                             \
-	(((x) & BIT_MASK_R_MU_STA_GTAB_VALID) << BIT_SHIFT_R_MU_STA_GTAB_VALID)
-#define BIT_GET_R_MU_STA_GTAB_VALID(x)                                         \
-	(((x) >> BIT_SHIFT_R_MU_STA_GTAB_VALID) & BIT_MASK_R_MU_STA_GTAB_VALID)
-
-#define BIT_SHIFT_R_MU_STA_GTAB_POSITION 0
-#define BIT_MASK_R_MU_STA_GTAB_POSITION 0xffffffffffffffffL
-#define BIT_R_MU_STA_GTAB_POSITION(x)                                          \
-	(((x) & BIT_MASK_R_MU_STA_GTAB_POSITION)                               \
-	 << BIT_SHIFT_R_MU_STA_GTAB_POSITION)
-#define BIT_GET_R_MU_STA_GTAB_POSITION(x)                                      \
-	(((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION) &                           \
-	 BIT_MASK_R_MU_STA_GTAB_POSITION)
-
-/* 2 REG_MU_TRX_DBG_CNT			(Offset 0x14D0) */
-
-#define BIT_MU_DNGCNT_RST BIT(20)
-
-#define BIT_SHIFT_MU_DBGCNT_SEL 16
-#define BIT_MASK_MU_DBGCNT_SEL 0xf
-#define BIT_MU_DBGCNT_SEL(x)                                                   \
-	(((x) & BIT_MASK_MU_DBGCNT_SEL) << BIT_SHIFT_MU_DBGCNT_SEL)
-#define BIT_GET_MU_DBGCNT_SEL(x)                                               \
-	(((x) >> BIT_SHIFT_MU_DBGCNT_SEL) & BIT_MASK_MU_DBGCNT_SEL)
-
-#define BIT_SHIFT_MU_DNGCNT 0
-#define BIT_MASK_MU_DNGCNT 0xffff
-#define BIT_MU_DNGCNT(x) (((x) & BIT_MASK_MU_DNGCNT) << BIT_SHIFT_MU_DNGCNT)
-#define BIT_GET_MU_DNGCNT(x) (((x) >> BIT_SHIFT_MU_DNGCNT) & BIT_MASK_MU_DNGCNT)
-
-/* 2 REG_CPUMGQ_TX_TIMER			(Offset 0x1500) */
-
-#define BIT_SHIFT_CPUMGQ_TX_TIMER_V1 0
-#define BIT_MASK_CPUMGQ_TX_TIMER_V1 0xffffffffL
-#define BIT_CPUMGQ_TX_TIMER_V1(x)                                              \
-	(((x) & BIT_MASK_CPUMGQ_TX_TIMER_V1) << BIT_SHIFT_CPUMGQ_TX_TIMER_V1)
-#define BIT_GET_CPUMGQ_TX_TIMER_V1(x)                                          \
-	(((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_V1) & BIT_MASK_CPUMGQ_TX_TIMER_V1)
-
-/* 2 REG_PS_TIMER_A				(Offset 0x1504) */
-
-#define BIT_SHIFT_PS_TIMER_A_V1 0
-#define BIT_MASK_PS_TIMER_A_V1 0xffffffffL
-#define BIT_PS_TIMER_A_V1(x)                                                   \
-	(((x) & BIT_MASK_PS_TIMER_A_V1) << BIT_SHIFT_PS_TIMER_A_V1)
-#define BIT_GET_PS_TIMER_A_V1(x)                                               \
-	(((x) >> BIT_SHIFT_PS_TIMER_A_V1) & BIT_MASK_PS_TIMER_A_V1)
-
-/* 2 REG_PS_TIMER_B				(Offset 0x1508) */
-
-#define BIT_SHIFT_PS_TIMER_B_V1 0
-#define BIT_MASK_PS_TIMER_B_V1 0xffffffffL
-#define BIT_PS_TIMER_B_V1(x)                                                   \
-	(((x) & BIT_MASK_PS_TIMER_B_V1) << BIT_SHIFT_PS_TIMER_B_V1)
-#define BIT_GET_PS_TIMER_B_V1(x)                                               \
-	(((x) >> BIT_SHIFT_PS_TIMER_B_V1) & BIT_MASK_PS_TIMER_B_V1)
-
-/* 2 REG_PS_TIMER_C				(Offset 0x150C) */
-
-#define BIT_SHIFT_PS_TIMER_C_V1 0
-#define BIT_MASK_PS_TIMER_C_V1 0xffffffffL
-#define BIT_PS_TIMER_C_V1(x)                                                   \
-	(((x) & BIT_MASK_PS_TIMER_C_V1) << BIT_SHIFT_PS_TIMER_C_V1)
-#define BIT_GET_PS_TIMER_C_V1(x)                                               \
-	(((x) >> BIT_SHIFT_PS_TIMER_C_V1) & BIT_MASK_PS_TIMER_C_V1)
-
-/* 2 REG_PS_TIMER_ABC_CPUMGQ_TIMER_CRTL	(Offset 0x1510) */
-
-#define BIT_CPUMGQ_TIMER_EN BIT(31)
-#define BIT_CPUMGQ_TX_EN BIT(28)
-
-#define BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL 24
-#define BIT_MASK_CPUMGQ_TIMER_TSF_SEL 0x7
-#define BIT_CPUMGQ_TIMER_TSF_SEL(x)                                            \
-	(((x) & BIT_MASK_CPUMGQ_TIMER_TSF_SEL)                                 \
-	 << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL)
-#define BIT_GET_CPUMGQ_TIMER_TSF_SEL(x)                                        \
-	(((x) >> BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL) &                             \
-	 BIT_MASK_CPUMGQ_TIMER_TSF_SEL)
-
-#define BIT_PS_TIMER_C_EN BIT(23)
-
-#define BIT_SHIFT_PS_TIMER_C_TSF_SEL 16
-#define BIT_MASK_PS_TIMER_C_TSF_SEL 0x7
-#define BIT_PS_TIMER_C_TSF_SEL(x)                                              \
-	(((x) & BIT_MASK_PS_TIMER_C_TSF_SEL) << BIT_SHIFT_PS_TIMER_C_TSF_SEL)
-#define BIT_GET_PS_TIMER_C_TSF_SEL(x)                                          \
-	(((x) >> BIT_SHIFT_PS_TIMER_C_TSF_SEL) & BIT_MASK_PS_TIMER_C_TSF_SEL)
-
-#define BIT_PS_TIMER_B_EN BIT(15)
-
-#define BIT_SHIFT_PS_TIMER_B_TSF_SEL 8
-#define BIT_MASK_PS_TIMER_B_TSF_SEL 0x7
-#define BIT_PS_TIMER_B_TSF_SEL(x)                                              \
-	(((x) & BIT_MASK_PS_TIMER_B_TSF_SEL) << BIT_SHIFT_PS_TIMER_B_TSF_SEL)
-#define BIT_GET_PS_TIMER_B_TSF_SEL(x)                                          \
-	(((x) >> BIT_SHIFT_PS_TIMER_B_TSF_SEL) & BIT_MASK_PS_TIMER_B_TSF_SEL)
-
-#define BIT_PS_TIMER_A_EN BIT(7)
-
-#define BIT_SHIFT_PS_TIMER_A_TSF_SEL 0
-#define BIT_MASK_PS_TIMER_A_TSF_SEL 0x7
-#define BIT_PS_TIMER_A_TSF_SEL(x)                                              \
-	(((x) & BIT_MASK_PS_TIMER_A_TSF_SEL) << BIT_SHIFT_PS_TIMER_A_TSF_SEL)
-#define BIT_GET_PS_TIMER_A_TSF_SEL(x)                                          \
-	(((x) >> BIT_SHIFT_PS_TIMER_A_TSF_SEL) & BIT_MASK_PS_TIMER_A_TSF_SEL)
-
-/* 2 REG_CPUMGQ_TX_TIMER_EARLY		(Offset 0x1514) */
-
-#define BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY 0
-#define BIT_MASK_CPUMGQ_TX_TIMER_EARLY 0xff
-#define BIT_CPUMGQ_TX_TIMER_EARLY(x)                                           \
-	(((x) & BIT_MASK_CPUMGQ_TX_TIMER_EARLY)                                \
-	 << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY)
-#define BIT_GET_CPUMGQ_TX_TIMER_EARLY(x)                                       \
-	(((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY) &                            \
-	 BIT_MASK_CPUMGQ_TX_TIMER_EARLY)
-
-/* 2 REG_PS_TIMER_A_EARLY			(Offset 0x1515) */
-
-#define BIT_SHIFT_PS_TIMER_A_EARLY 0
-#define BIT_MASK_PS_TIMER_A_EARLY 0xff
-#define BIT_PS_TIMER_A_EARLY(x)                                                \
-	(((x) & BIT_MASK_PS_TIMER_A_EARLY) << BIT_SHIFT_PS_TIMER_A_EARLY)
-#define BIT_GET_PS_TIMER_A_EARLY(x)                                            \
-	(((x) >> BIT_SHIFT_PS_TIMER_A_EARLY) & BIT_MASK_PS_TIMER_A_EARLY)
-
-/* 2 REG_PS_TIMER_B_EARLY			(Offset 0x1516) */
-
-#define BIT_SHIFT_PS_TIMER_B_EARLY 0
-#define BIT_MASK_PS_TIMER_B_EARLY 0xff
-#define BIT_PS_TIMER_B_EARLY(x)                                                \
-	(((x) & BIT_MASK_PS_TIMER_B_EARLY) << BIT_SHIFT_PS_TIMER_B_EARLY)
-#define BIT_GET_PS_TIMER_B_EARLY(x)                                            \
-	(((x) >> BIT_SHIFT_PS_TIMER_B_EARLY) & BIT_MASK_PS_TIMER_B_EARLY)
-
-/* 2 REG_PS_TIMER_C_EARLY			(Offset 0x1517) */
-
-#define BIT_SHIFT_PS_TIMER_C_EARLY 0
-#define BIT_MASK_PS_TIMER_C_EARLY 0xff
-#define BIT_PS_TIMER_C_EARLY(x)                                                \
-	(((x) & BIT_MASK_PS_TIMER_C_EARLY) << BIT_SHIFT_PS_TIMER_C_EARLY)
-#define BIT_GET_PS_TIMER_C_EARLY(x)                                            \
-	(((x) >> BIT_SHIFT_PS_TIMER_C_EARLY) & BIT_MASK_PS_TIMER_C_EARLY)
-
-/* 2 REG_BCN_PSR_RPT2			(Offset 0x1600) */
-
-#define BIT_SHIFT_DTIM_CNT2 24
-#define BIT_MASK_DTIM_CNT2 0xff
-#define BIT_DTIM_CNT2(x) (((x) & BIT_MASK_DTIM_CNT2) << BIT_SHIFT_DTIM_CNT2)
-#define BIT_GET_DTIM_CNT2(x) (((x) >> BIT_SHIFT_DTIM_CNT2) & BIT_MASK_DTIM_CNT2)
-
-#define BIT_SHIFT_DTIM_PERIOD2 16
-#define BIT_MASK_DTIM_PERIOD2 0xff
-#define BIT_DTIM_PERIOD2(x)                                                    \
-	(((x) & BIT_MASK_DTIM_PERIOD2) << BIT_SHIFT_DTIM_PERIOD2)
-#define BIT_GET_DTIM_PERIOD2(x)                                                \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD2) & BIT_MASK_DTIM_PERIOD2)
-
-#define BIT_DTIM2 BIT(15)
-#define BIT_TIM2 BIT(14)
-
-#define BIT_SHIFT_PS_AID_2 0
-#define BIT_MASK_PS_AID_2 0x7ff
-#define BIT_PS_AID_2(x) (((x) & BIT_MASK_PS_AID_2) << BIT_SHIFT_PS_AID_2)
-#define BIT_GET_PS_AID_2(x) (((x) >> BIT_SHIFT_PS_AID_2) & BIT_MASK_PS_AID_2)
-
-/* 2 REG_BCN_PSR_RPT3			(Offset 0x1604) */
-
-#define BIT_SHIFT_DTIM_CNT3 24
-#define BIT_MASK_DTIM_CNT3 0xff
-#define BIT_DTIM_CNT3(x) (((x) & BIT_MASK_DTIM_CNT3) << BIT_SHIFT_DTIM_CNT3)
-#define BIT_GET_DTIM_CNT3(x) (((x) >> BIT_SHIFT_DTIM_CNT3) & BIT_MASK_DTIM_CNT3)
-
-#define BIT_SHIFT_DTIM_PERIOD3 16
-#define BIT_MASK_DTIM_PERIOD3 0xff
-#define BIT_DTIM_PERIOD3(x)                                                    \
-	(((x) & BIT_MASK_DTIM_PERIOD3) << BIT_SHIFT_DTIM_PERIOD3)
-#define BIT_GET_DTIM_PERIOD3(x)                                                \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD3) & BIT_MASK_DTIM_PERIOD3)
-
-#define BIT_DTIM3 BIT(15)
-#define BIT_TIM3 BIT(14)
-
-#define BIT_SHIFT_PS_AID_3 0
-#define BIT_MASK_PS_AID_3 0x7ff
-#define BIT_PS_AID_3(x) (((x) & BIT_MASK_PS_AID_3) << BIT_SHIFT_PS_AID_3)
-#define BIT_GET_PS_AID_3(x) (((x) >> BIT_SHIFT_PS_AID_3) & BIT_MASK_PS_AID_3)
-
-/* 2 REG_BCN_PSR_RPT4			(Offset 0x1608) */
-
-#define BIT_SHIFT_DTIM_CNT4 24
-#define BIT_MASK_DTIM_CNT4 0xff
-#define BIT_DTIM_CNT4(x) (((x) & BIT_MASK_DTIM_CNT4) << BIT_SHIFT_DTIM_CNT4)
-#define BIT_GET_DTIM_CNT4(x) (((x) >> BIT_SHIFT_DTIM_CNT4) & BIT_MASK_DTIM_CNT4)
-
-#define BIT_SHIFT_DTIM_PERIOD4 16
-#define BIT_MASK_DTIM_PERIOD4 0xff
-#define BIT_DTIM_PERIOD4(x)                                                    \
-	(((x) & BIT_MASK_DTIM_PERIOD4) << BIT_SHIFT_DTIM_PERIOD4)
-#define BIT_GET_DTIM_PERIOD4(x)                                                \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD4) & BIT_MASK_DTIM_PERIOD4)
-
-#define BIT_DTIM4 BIT(15)
-#define BIT_TIM4 BIT(14)
-
-#define BIT_SHIFT_PS_AID_4 0
-#define BIT_MASK_PS_AID_4 0x7ff
-#define BIT_PS_AID_4(x) (((x) & BIT_MASK_PS_AID_4) << BIT_SHIFT_PS_AID_4)
-#define BIT_GET_PS_AID_4(x) (((x) >> BIT_SHIFT_PS_AID_4) & BIT_MASK_PS_AID_4)
-
-/* 2 REG_A1_ADDR_MASK			(Offset 0x160C) */
-
-#define BIT_SHIFT_A1_ADDR_MASK 0
-#define BIT_MASK_A1_ADDR_MASK 0xffffffffL
-#define BIT_A1_ADDR_MASK(x)                                                    \
-	(((x) & BIT_MASK_A1_ADDR_MASK) << BIT_SHIFT_A1_ADDR_MASK)
-#define BIT_GET_A1_ADDR_MASK(x)                                                \
-	(((x) >> BIT_SHIFT_A1_ADDR_MASK) & BIT_MASK_A1_ADDR_MASK)
-
-/* 2 REG_MACID2				(Offset 0x1620) */
-
-#define BIT_SHIFT_MACID2 0
-#define BIT_MASK_MACID2 0xffffffffffffL
-#define BIT_MACID2(x) (((x) & BIT_MASK_MACID2) << BIT_SHIFT_MACID2)
-#define BIT_GET_MACID2(x) (((x) >> BIT_SHIFT_MACID2) & BIT_MASK_MACID2)
-
-/* 2 REG_BSSID2				(Offset 0x1628) */
-
-#define BIT_SHIFT_BSSID2 0
-#define BIT_MASK_BSSID2 0xffffffffffffL
-#define BIT_BSSID2(x) (((x) & BIT_MASK_BSSID2) << BIT_SHIFT_BSSID2)
-#define BIT_GET_BSSID2(x) (((x) >> BIT_SHIFT_BSSID2) & BIT_MASK_BSSID2)
-
-/* 2 REG_MACID3				(Offset 0x1630) */
-
-#define BIT_SHIFT_MACID3 0
-#define BIT_MASK_MACID3 0xffffffffffffL
-#define BIT_MACID3(x) (((x) & BIT_MASK_MACID3) << BIT_SHIFT_MACID3)
-#define BIT_GET_MACID3(x) (((x) >> BIT_SHIFT_MACID3) & BIT_MASK_MACID3)
-
-/* 2 REG_BSSID3				(Offset 0x1638) */
-
-#define BIT_SHIFT_BSSID3 0
-#define BIT_MASK_BSSID3 0xffffffffffffL
-#define BIT_BSSID3(x) (((x) & BIT_MASK_BSSID3) << BIT_SHIFT_BSSID3)
-#define BIT_GET_BSSID3(x) (((x) >> BIT_SHIFT_BSSID3) & BIT_MASK_BSSID3)
-
-/* 2 REG_MACID4				(Offset 0x1640) */
-
-#define BIT_SHIFT_MACID4 0
-#define BIT_MASK_MACID4 0xffffffffffffL
-#define BIT_MACID4(x) (((x) & BIT_MASK_MACID4) << BIT_SHIFT_MACID4)
-#define BIT_GET_MACID4(x) (((x) >> BIT_SHIFT_MACID4) & BIT_MASK_MACID4)
-
-/* 2 REG_BSSID4				(Offset 0x1648) */
-
-#define BIT_SHIFT_BSSID4 0
-#define BIT_MASK_BSSID4 0xffffffffffffL
-#define BIT_BSSID4(x) (((x) & BIT_MASK_BSSID4) << BIT_SHIFT_BSSID4)
-#define BIT_GET_BSSID4(x) (((x) >> BIT_SHIFT_BSSID4) & BIT_MASK_BSSID4)
-
-/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */
-
-#define BIT_CLI3_PWRBIT_OW_EN BIT(7)
-#define BIT_CLI3_PWR_ST BIT(6)
-#define BIT_CLI2_PWRBIT_OW_EN BIT(5)
-#define BIT_CLI2_PWR_ST BIT(4)
-#define BIT_CLI1_PWRBIT_OW_EN BIT(3)
-#define BIT_CLI1_PWR_ST BIT(2)
-#define BIT_CLI0_PWRBIT_OW_EN BIT(1)
-#define BIT_CLI0_PWR_ST BIT(0)
-
-/* 2 REG_WMAC_MU_BF_OPTION			(Offset 0x167C) */
-
-#define BIT_WMAC_RESP_NONSTA1_DIS BIT(7)
-
-/* 2 REG_WMAC_MU_BF_OPTION			(Offset 0x167C) */
-
-#define BIT_BIT_WMAC_TXMU_ACKPOLICY_EN BIT(6)
-
-/* 2 REG_WMAC_MU_BF_OPTION			(Offset 0x167C) */
-
-#define BIT_SHIFT_WMAC_TXMU_ACKPOLICY 4
-#define BIT_MASK_WMAC_TXMU_ACKPOLICY 0x3
-#define BIT_WMAC_TXMU_ACKPOLICY(x)                                             \
-	(((x) & BIT_MASK_WMAC_TXMU_ACKPOLICY) << BIT_SHIFT_WMAC_TXMU_ACKPOLICY)
-#define BIT_GET_WMAC_TXMU_ACKPOLICY(x)                                         \
-	(((x) >> BIT_SHIFT_WMAC_TXMU_ACKPOLICY) & BIT_MASK_WMAC_TXMU_ACKPOLICY)
-
-#define BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL 1
-#define BIT_MASK_WMAC_MU_BFEE_PORT_SEL 0x7
-#define BIT_WMAC_MU_BFEE_PORT_SEL(x)                                           \
-	(((x) & BIT_MASK_WMAC_MU_BFEE_PORT_SEL)                                \
-	 << BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL)
-#define BIT_GET_WMAC_MU_BFEE_PORT_SEL(x)                                       \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL) &                            \
-	 BIT_MASK_WMAC_MU_BFEE_PORT_SEL)
-
-#define BIT_WMAC_MU_BFEE_DIS BIT(0)
-
-/* 2 REG_WMAC_PAUSE_BB_CLR_TH		(Offset 0x167D) */
-
-#define BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH 0
-#define BIT_MASK_WMAC_PAUSE_BB_CLR_TH 0xff
-#define BIT_WMAC_PAUSE_BB_CLR_TH(x)                                            \
-	(((x) & BIT_MASK_WMAC_PAUSE_BB_CLR_TH)                                 \
-	 << BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH)
-#define BIT_GET_WMAC_PAUSE_BB_CLR_TH(x)                                        \
-	(((x) >> BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH) &                             \
-	 BIT_MASK_WMAC_PAUSE_BB_CLR_TH)
-
-/* 2 REG_WMAC_MU_ARB				(Offset 0x167E) */
-
-#define BIT_WMAC_ARB_HW_ADAPT_EN BIT(7)
-#define BIT_WMAC_ARB_SW_EN BIT(6)
-
-#define BIT_SHIFT_WMAC_ARB_SW_STATE 0
-#define BIT_MASK_WMAC_ARB_SW_STATE 0x3f
-#define BIT_WMAC_ARB_SW_STATE(x)                                               \
-	(((x) & BIT_MASK_WMAC_ARB_SW_STATE) << BIT_SHIFT_WMAC_ARB_SW_STATE)
-#define BIT_GET_WMAC_ARB_SW_STATE(x)                                           \
-	(((x) >> BIT_SHIFT_WMAC_ARB_SW_STATE) & BIT_MASK_WMAC_ARB_SW_STATE)
-
-/* 2 REG_WMAC_MU_OPTION			(Offset 0x167F) */
-
-#define BIT_SHIFT_WMAC_MU_DBGSEL 5
-#define BIT_MASK_WMAC_MU_DBGSEL 0x3
-#define BIT_WMAC_MU_DBGSEL(x)                                                  \
-	(((x) & BIT_MASK_WMAC_MU_DBGSEL) << BIT_SHIFT_WMAC_MU_DBGSEL)
-#define BIT_GET_WMAC_MU_DBGSEL(x)                                              \
-	(((x) >> BIT_SHIFT_WMAC_MU_DBGSEL) & BIT_MASK_WMAC_MU_DBGSEL)
-
-#define BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT 0
-#define BIT_MASK_WMAC_MU_CPRD_TIMEOUT 0x1f
-#define BIT_WMAC_MU_CPRD_TIMEOUT(x)                                            \
-	(((x) & BIT_MASK_WMAC_MU_CPRD_TIMEOUT)                                 \
-	 << BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT)
-#define BIT_GET_WMAC_MU_CPRD_TIMEOUT(x)                                        \
-	(((x) >> BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT) &                             \
-	 BIT_MASK_WMAC_MU_CPRD_TIMEOUT)
-
-/* 2 REG_WMAC_MU_BF_CTL			(Offset 0x1680) */
-
-#define BIT_WMAC_INVLD_BFPRT_CHK BIT(15)
-#define BIT_WMAC_RETXBFRPTSEQ_UPD BIT(14)
-
-#define BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL 12
-#define BIT_MASK_WMAC_MU_BFRPTSEG_SEL 0x3
-#define BIT_WMAC_MU_BFRPTSEG_SEL(x)                                            \
-	(((x) & BIT_MASK_WMAC_MU_BFRPTSEG_SEL)                                 \
-	 << BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL)
-#define BIT_GET_WMAC_MU_BFRPTSEG_SEL(x)                                        \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL) &                             \
-	 BIT_MASK_WMAC_MU_BFRPTSEG_SEL)
-
-#define BIT_SHIFT_WMAC_MU_BF_MYAID 0
-#define BIT_MASK_WMAC_MU_BF_MYAID 0xfff
-#define BIT_WMAC_MU_BF_MYAID(x)                                                \
-	(((x) & BIT_MASK_WMAC_MU_BF_MYAID) << BIT_SHIFT_WMAC_MU_BF_MYAID)
-#define BIT_GET_WMAC_MU_BF_MYAID(x)                                            \
-	(((x) >> BIT_SHIFT_WMAC_MU_BF_MYAID) & BIT_MASK_WMAC_MU_BF_MYAID)
-
-#define BIT_SHIFT_BFRPT_PARA 0
-#define BIT_MASK_BFRPT_PARA 0xfff
-#define BIT_BFRPT_PARA(x) (((x) & BIT_MASK_BFRPT_PARA) << BIT_SHIFT_BFRPT_PARA)
-#define BIT_GET_BFRPT_PARA(x)                                                  \
-	(((x) >> BIT_SHIFT_BFRPT_PARA) & BIT_MASK_BFRPT_PARA)
-
-/* 2 REG_WMAC_MU_BFRPT_PARA			(Offset 0x1682) */
-
-#define BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL 12
-#define BIT_MASK_BIT_BFRPT_PARA_USERID_SEL 0x7
-#define BIT_BIT_BFRPT_PARA_USERID_SEL(x)                                       \
-	(((x) & BIT_MASK_BIT_BFRPT_PARA_USERID_SEL)                            \
-	 << BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL)
-#define BIT_GET_BIT_BFRPT_PARA_USERID_SEL(x)                                   \
-	(((x) >> BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL) &                        \
-	 BIT_MASK_BIT_BFRPT_PARA_USERID_SEL)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2		(Offset 0x1684) */
-
-#define BIT_STATUS_BFEE2 BIT(10)
-#define BIT_WMAC_MU_BFEE2_EN BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE2_AID 0
-#define BIT_MASK_WMAC_MU_BFEE2_AID 0x1ff
-#define BIT_WMAC_MU_BFEE2_AID(x)                                               \
-	(((x) & BIT_MASK_WMAC_MU_BFEE2_AID) << BIT_SHIFT_WMAC_MU_BFEE2_AID)
-#define BIT_GET_WMAC_MU_BFEE2_AID(x)                                           \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE2_AID) & BIT_MASK_WMAC_MU_BFEE2_AID)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3		(Offset 0x1686) */
-
-#define BIT_STATUS_BFEE3 BIT(10)
-#define BIT_WMAC_MU_BFEE3_EN BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE3_AID 0
-#define BIT_MASK_WMAC_MU_BFEE3_AID 0x1ff
-#define BIT_WMAC_MU_BFEE3_AID(x)                                               \
-	(((x) & BIT_MASK_WMAC_MU_BFEE3_AID) << BIT_SHIFT_WMAC_MU_BFEE3_AID)
-#define BIT_GET_WMAC_MU_BFEE3_AID(x)                                           \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE3_AID) & BIT_MASK_WMAC_MU_BFEE3_AID)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE4		(Offset 0x1688) */
-
-#define BIT_STATUS_BFEE4 BIT(10)
-#define BIT_WMAC_MU_BFEE4_EN BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE4_AID 0
-#define BIT_MASK_WMAC_MU_BFEE4_AID 0x1ff
-#define BIT_WMAC_MU_BFEE4_AID(x)                                               \
-	(((x) & BIT_MASK_WMAC_MU_BFEE4_AID) << BIT_SHIFT_WMAC_MU_BFEE4_AID)
-#define BIT_GET_WMAC_MU_BFEE4_AID(x)                                           \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE4_AID) & BIT_MASK_WMAC_MU_BFEE4_AID)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5		(Offset 0x168A) */
-
-#define BIT_R_WMAC_RX_SYNCFIFO_SYNC BIT(55)
-#define BIT_R_WMAC_RXRST_DLY BIT(54)
-#define BIT_R_WMAC_SRCH_TXRPT_REF_DROP BIT(53)
-#define BIT_R_WMAC_SRCH_TXRPT_UA1 BIT(52)
-#define BIT_STATUS_BFEE5 BIT(10)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5		(Offset 0x168A) */
-
-#define BIT_WMAC_MU_BFEE5_EN BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE5_AID 0
-#define BIT_MASK_WMAC_MU_BFEE5_AID 0x1ff
-#define BIT_WMAC_MU_BFEE5_AID(x)                                               \
-	(((x) & BIT_MASK_WMAC_MU_BFEE5_AID) << BIT_SHIFT_WMAC_MU_BFEE5_AID)
-#define BIT_GET_WMAC_MU_BFEE5_AID(x)                                           \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE5_AID) & BIT_MASK_WMAC_MU_BFEE5_AID)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE6		(Offset 0x168C) */
-
-#define BIT_STATUS_BFEE6 BIT(10)
-#define BIT_WMAC_MU_BFEE6_EN BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE6_AID 0
-#define BIT_MASK_WMAC_MU_BFEE6_AID 0x1ff
-#define BIT_WMAC_MU_BFEE6_AID(x)                                               \
-	(((x) & BIT_MASK_WMAC_MU_BFEE6_AID) << BIT_SHIFT_WMAC_MU_BFEE6_AID)
-#define BIT_GET_WMAC_MU_BFEE6_AID(x)                                           \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE6_AID) & BIT_MASK_WMAC_MU_BFEE6_AID)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE7		(Offset 0x168E) */
-
-#define BIT_BIT_STATUS_BFEE4 BIT(10)
-#define BIT_WMAC_MU_BFEE7_EN BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE7_AID 0
-#define BIT_MASK_WMAC_MU_BFEE7_AID 0x1ff
-#define BIT_WMAC_MU_BFEE7_AID(x)                                               \
-	(((x) & BIT_MASK_WMAC_MU_BFEE7_AID) << BIT_SHIFT_WMAC_MU_BFEE7_AID)
-#define BIT_GET_WMAC_MU_BFEE7_AID(x)                                           \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE7_AID) & BIT_MASK_WMAC_MU_BFEE7_AID)
-
-/* 2 REG_WMAC_BB_STOP_RX_COUNTER		(Offset 0x1690) */
-
-#define BIT_RST_ALL_COUNTER BIT(31)
-
-#define BIT_SHIFT_ABORT_RX_VBON_COUNTER 16
-#define BIT_MASK_ABORT_RX_VBON_COUNTER 0xff
-#define BIT_ABORT_RX_VBON_COUNTER(x)                                           \
-	(((x) & BIT_MASK_ABORT_RX_VBON_COUNTER)                                \
-	 << BIT_SHIFT_ABORT_RX_VBON_COUNTER)
-#define BIT_GET_ABORT_RX_VBON_COUNTER(x)                                       \
-	(((x) >> BIT_SHIFT_ABORT_RX_VBON_COUNTER) &                            \
-	 BIT_MASK_ABORT_RX_VBON_COUNTER)
-
-#define BIT_SHIFT_ABORT_RX_RDRDY_COUNTER 8
-#define BIT_MASK_ABORT_RX_RDRDY_COUNTER 0xff
-#define BIT_ABORT_RX_RDRDY_COUNTER(x)                                          \
-	(((x) & BIT_MASK_ABORT_RX_RDRDY_COUNTER)                               \
-	 << BIT_SHIFT_ABORT_RX_RDRDY_COUNTER)
-#define BIT_GET_ABORT_RX_RDRDY_COUNTER(x)                                      \
-	(((x) >> BIT_SHIFT_ABORT_RX_RDRDY_COUNTER) &                           \
-	 BIT_MASK_ABORT_RX_RDRDY_COUNTER)
-
-#define BIT_SHIFT_VBON_EARLY_FALLING_COUNTER 0
-#define BIT_MASK_VBON_EARLY_FALLING_COUNTER 0xff
-#define BIT_VBON_EARLY_FALLING_COUNTER(x)                                      \
-	(((x) & BIT_MASK_VBON_EARLY_FALLING_COUNTER)                           \
-	 << BIT_SHIFT_VBON_EARLY_FALLING_COUNTER)
-#define BIT_GET_VBON_EARLY_FALLING_COUNTER(x)                                  \
-	(((x) >> BIT_SHIFT_VBON_EARLY_FALLING_COUNTER) &                       \
-	 BIT_MASK_VBON_EARLY_FALLING_COUNTER)
-
-/* 2 REG_WMAC_PLCP_MONITOR			(Offset 0x1694) */
-
-#define BIT_WMAC_PLCP_TRX_SEL BIT(31)
-
-#define BIT_SHIFT_WMAC_PLCP_RDSIG_SEL 28
-#define BIT_MASK_WMAC_PLCP_RDSIG_SEL 0x7
-#define BIT_WMAC_PLCP_RDSIG_SEL(x)                                             \
-	(((x) & BIT_MASK_WMAC_PLCP_RDSIG_SEL) << BIT_SHIFT_WMAC_PLCP_RDSIG_SEL)
-#define BIT_GET_WMAC_PLCP_RDSIG_SEL(x)                                         \
-	(((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG_SEL) & BIT_MASK_WMAC_PLCP_RDSIG_SEL)
-
-#define BIT_SHIFT_WMAC_RATE_IDX 24
-#define BIT_MASK_WMAC_RATE_IDX 0xf
-#define BIT_WMAC_RATE_IDX(x)                                                   \
-	(((x) & BIT_MASK_WMAC_RATE_IDX) << BIT_SHIFT_WMAC_RATE_IDX)
-#define BIT_GET_WMAC_RATE_IDX(x)                                               \
-	(((x) >> BIT_SHIFT_WMAC_RATE_IDX) & BIT_MASK_WMAC_RATE_IDX)
-
-#define BIT_SHIFT_WMAC_PLCP_RDSIG 0
-#define BIT_MASK_WMAC_PLCP_RDSIG 0xffffff
-#define BIT_WMAC_PLCP_RDSIG(x)                                                 \
-	(((x) & BIT_MASK_WMAC_PLCP_RDSIG) << BIT_SHIFT_WMAC_PLCP_RDSIG)
-#define BIT_GET_WMAC_PLCP_RDSIG(x)                                             \
-	(((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG) & BIT_MASK_WMAC_PLCP_RDSIG)
-
-/* 2 REG_WMAC_PLCP_MONITOR_MUTX		(Offset 0x1698) */
-
-#define BIT_WMAC_MUTX_IDX BIT(24)
-
-/* 2 REG_TRANSMIT_ADDRSS_0			(Offset 0x16A0) */
-
-#define BIT_SHIFT_TA0 0
-#define BIT_MASK_TA0 0xffffffffffffL
-#define BIT_TA0(x) (((x) & BIT_MASK_TA0) << BIT_SHIFT_TA0)
-#define BIT_GET_TA0(x) (((x) >> BIT_SHIFT_TA0) & BIT_MASK_TA0)
-
-/* 2 REG_TRANSMIT_ADDRSS_1			(Offset 0x16A8) */
-
-#define BIT_SHIFT_TA1 0
-#define BIT_MASK_TA1 0xffffffffffffL
-#define BIT_TA1(x) (((x) & BIT_MASK_TA1) << BIT_SHIFT_TA1)
-#define BIT_GET_TA1(x) (((x) >> BIT_SHIFT_TA1) & BIT_MASK_TA1)
-
-/* 2 REG_TRANSMIT_ADDRSS_2			(Offset 0x16B0) */
-
-#define BIT_SHIFT_TA2 0
-#define BIT_MASK_TA2 0xffffffffffffL
-#define BIT_TA2(x) (((x) & BIT_MASK_TA2) << BIT_SHIFT_TA2)
-#define BIT_GET_TA2(x) (((x) >> BIT_SHIFT_TA2) & BIT_MASK_TA2)
-
-/* 2 REG_TRANSMIT_ADDRSS_3			(Offset 0x16B8) */
-
-#define BIT_SHIFT_TA3 0
-#define BIT_MASK_TA3 0xffffffffffffL
-#define BIT_TA3(x) (((x) & BIT_MASK_TA3) << BIT_SHIFT_TA3)
-#define BIT_GET_TA3(x) (((x) >> BIT_SHIFT_TA3) & BIT_MASK_TA3)
-
-/* 2 REG_TRANSMIT_ADDRSS_4			(Offset 0x16C0) */
-
-#define BIT_SHIFT_TA4 0
-#define BIT_MASK_TA4 0xffffffffffffL
-#define BIT_TA4(x) (((x) & BIT_MASK_TA4) << BIT_SHIFT_TA4)
-#define BIT_GET_TA4(x) (((x) >> BIT_SHIFT_TA4) & BIT_MASK_TA4)
-
-/* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_CTRL_V1 (Offset 0x1700) */
-
-#define BIT_LTECOEX_ACCESS_START_V1 BIT(31)
-#define BIT_LTECOEX_WRITE_MODE_V1 BIT(30)
-#define BIT_LTECOEX_READY_BIT_V1 BIT(29)
-
-#define BIT_SHIFT_WRITE_BYTE_EN_V1 16
-#define BIT_MASK_WRITE_BYTE_EN_V1 0xf
-#define BIT_WRITE_BYTE_EN_V1(x)                                                \
-	(((x) & BIT_MASK_WRITE_BYTE_EN_V1) << BIT_SHIFT_WRITE_BYTE_EN_V1)
-#define BIT_GET_WRITE_BYTE_EN_V1(x)                                            \
-	(((x) >> BIT_SHIFT_WRITE_BYTE_EN_V1) & BIT_MASK_WRITE_BYTE_EN_V1)
-
-#define BIT_SHIFT_LTECOEX_REG_ADDR_V1 0
-#define BIT_MASK_LTECOEX_REG_ADDR_V1 0xffff
-#define BIT_LTECOEX_REG_ADDR_V1(x)                                             \
-	(((x) & BIT_MASK_LTECOEX_REG_ADDR_V1) << BIT_SHIFT_LTECOEX_REG_ADDR_V1)
-#define BIT_GET_LTECOEX_REG_ADDR_V1(x)                                         \
-	(((x) >> BIT_SHIFT_LTECOEX_REG_ADDR_V1) & BIT_MASK_LTECOEX_REG_ADDR_V1)
-
-/* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA_V1 (Offset 0x1704) */
-
-#define BIT_SHIFT_LTECOEX_W_DATA_V1 0
-#define BIT_MASK_LTECOEX_W_DATA_V1 0xffffffffL
-#define BIT_LTECOEX_W_DATA_V1(x)                                               \
-	(((x) & BIT_MASK_LTECOEX_W_DATA_V1) << BIT_SHIFT_LTECOEX_W_DATA_V1)
-#define BIT_GET_LTECOEX_W_DATA_V1(x)                                           \
-	(((x) >> BIT_SHIFT_LTECOEX_W_DATA_V1) & BIT_MASK_LTECOEX_W_DATA_V1)
-
-/* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA_V1 (Offset 0x1708) */
-
-#define BIT_SHIFT_LTECOEX_R_DATA_V1 0
-#define BIT_MASK_LTECOEX_R_DATA_V1 0xffffffffL
-#define BIT_LTECOEX_R_DATA_V1(x)                                               \
-	(((x) & BIT_MASK_LTECOEX_R_DATA_V1) << BIT_SHIFT_LTECOEX_R_DATA_V1)
-#define BIT_GET_LTECOEX_R_DATA_V1(x)                                           \
-	(((x) >> BIT_SHIFT_LTECOEX_R_DATA_V1) & BIT_MASK_LTECOEX_R_DATA_V1)
-
-#endif /* __RTL_WLAN_BITDEF_H__ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_bit_8822b.h b/drivers/staging/rtlwifi/halmac/halmac_bit_8822b.h
deleted file mode 100644
index 481ea6d..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_bit_8822b.h
+++ /dev/null
@@ -1,12092 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __INC_HALMAC_BIT_8822B_H
-#define __INC_HALMAC_BIT_8822B_H
-
-#define CPU_OPT_WIDTH 0x1F
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_SYS_ISO_CTRL_8822B */
-#define BIT_PWC_EV12V_8822B BIT(15)
-#define BIT_PWC_EV25V_8822B BIT(14)
-#define BIT_PA33V_EN_8822B BIT(13)
-#define BIT_PA12V_EN_8822B BIT(12)
-#define BIT_UA33V_EN_8822B BIT(11)
-#define BIT_UA12V_EN_8822B BIT(10)
-#define BIT_ISO_RFDIO_8822B BIT(9)
-#define BIT_ISO_EB2CORE_8822B BIT(8)
-#define BIT_ISO_DIOE_8822B BIT(7)
-#define BIT_ISO_WLPON2PP_8822B BIT(6)
-#define BIT_ISO_IP2MAC_WA2PP_8822B BIT(5)
-#define BIT_ISO_PD2CORE_8822B BIT(4)
-#define BIT_ISO_PA2PCIE_8822B BIT(3)
-#define BIT_ISO_UD2CORE_8822B BIT(2)
-#define BIT_ISO_UA2USB_8822B BIT(1)
-#define BIT_ISO_WD2PP_8822B BIT(0)
-
-/* 2 REG_SYS_FUNC_EN_8822B */
-#define BIT_FEN_MREGEN_8822B BIT(15)
-#define BIT_FEN_HWPDN_8822B BIT(14)
-#define BIT_EN_25_1_8822B BIT(13)
-#define BIT_FEN_ELDR_8822B BIT(12)
-#define BIT_FEN_DCORE_8822B BIT(11)
-#define BIT_FEN_CPUEN_8822B BIT(10)
-#define BIT_FEN_DIOE_8822B BIT(9)
-#define BIT_FEN_PCIED_8822B BIT(8)
-#define BIT_FEN_PPLL_8822B BIT(7)
-#define BIT_FEN_PCIEA_8822B BIT(6)
-#define BIT_FEN_DIO_PCIE_8822B BIT(5)
-#define BIT_FEN_USBD_8822B BIT(4)
-#define BIT_FEN_UPLL_8822B BIT(3)
-#define BIT_FEN_USBA_8822B BIT(2)
-#define BIT_FEN_BB_GLB_RSTN_8822B BIT(1)
-#define BIT_FEN_BBRSTB_8822B BIT(0)
-
-/* 2 REG_SYS_PW_CTRL_8822B */
-#define BIT_SOP_EABM_8822B BIT(31)
-#define BIT_SOP_ACKF_8822B BIT(30)
-#define BIT_SOP_ERCK_8822B BIT(29)
-#define BIT_SOP_ESWR_8822B BIT(28)
-#define BIT_SOP_PWMM_8822B BIT(27)
-#define BIT_SOP_EECK_8822B BIT(26)
-#define BIT_SOP_EXTL_8822B BIT(24)
-#define BIT_SYM_OP_RING_12M_8822B BIT(22)
-#define BIT_ROP_SWPR_8822B BIT(21)
-#define BIT_DIS_HW_LPLDM_8822B BIT(20)
-#define BIT_OPT_SWRST_WLMCU_8822B BIT(19)
-#define BIT_RDY_SYSPWR_8822B BIT(17)
-#define BIT_EN_WLON_8822B BIT(16)
-#define BIT_APDM_HPDN_8822B BIT(15)
-#define BIT_AFSM_PCIE_SUS_EN_8822B BIT(12)
-#define BIT_AFSM_WLSUS_EN_8822B BIT(11)
-#define BIT_APFM_SWLPS_8822B BIT(10)
-#define BIT_APFM_OFFMAC_8822B BIT(9)
-#define BIT_APFN_ONMAC_8822B BIT(8)
-#define BIT_CHIP_PDN_EN_8822B BIT(7)
-#define BIT_RDY_MACDIS_8822B BIT(6)
-#define BIT_RING_CLK_12M_EN_8822B BIT(4)
-#define BIT_PFM_WOWL_8822B BIT(3)
-#define BIT_PFM_LDKP_8822B BIT(2)
-#define BIT_WL_HCI_ALD_8822B BIT(1)
-#define BIT_PFM_LDALL_8822B BIT(0)
-
-/* 2 REG_SYS_CLK_CTRL_8822B */
-#define BIT_LDO_DUMMY_8822B BIT(15)
-#define BIT_CPU_CLK_EN_8822B BIT(14)
-#define BIT_SYMREG_CLK_EN_8822B BIT(13)
-#define BIT_HCI_CLK_EN_8822B BIT(12)
-#define BIT_MAC_CLK_EN_8822B BIT(11)
-#define BIT_SEC_CLK_EN_8822B BIT(10)
-#define BIT_PHY_SSC_RSTB_8822B BIT(9)
-#define BIT_EXT_32K_EN_8822B BIT(8)
-#define BIT_WL_CLK_TEST_8822B BIT(7)
-#define BIT_OP_SPS_PWM_EN_8822B BIT(6)
-#define BIT_LOADER_CLK_EN_8822B BIT(5)
-#define BIT_MACSLP_8822B BIT(4)
-#define BIT_WAKEPAD_EN_8822B BIT(3)
-#define BIT_ROMD16V_EN_8822B BIT(2)
-#define BIT_CKANA12M_EN_8822B BIT(1)
-#define BIT_CNTD16V_EN_8822B BIT(0)
-
-/* 2 REG_SYS_EEPROM_CTRL_8822B */
-
-#define BIT_SHIFT_VPDIDX_8822B 8
-#define BIT_MASK_VPDIDX_8822B 0xff
-#define BIT_VPDIDX_8822B(x)                                                    \
-	(((x) & BIT_MASK_VPDIDX_8822B) << BIT_SHIFT_VPDIDX_8822B)
-#define BIT_GET_VPDIDX_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_VPDIDX_8822B) & BIT_MASK_VPDIDX_8822B)
-
-#define BIT_SHIFT_EEM1_0_8822B 6
-#define BIT_MASK_EEM1_0_8822B 0x3
-#define BIT_EEM1_0_8822B(x)                                                    \
-	(((x) & BIT_MASK_EEM1_0_8822B) << BIT_SHIFT_EEM1_0_8822B)
-#define BIT_GET_EEM1_0_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_EEM1_0_8822B) & BIT_MASK_EEM1_0_8822B)
-
-#define BIT_AUTOLOAD_SUS_8822B BIT(5)
-#define BIT_EERPOMSEL_8822B BIT(4)
-#define BIT_EECS_V1_8822B BIT(3)
-#define BIT_EESK_V1_8822B BIT(2)
-#define BIT_EEDI_V1_8822B BIT(1)
-#define BIT_EEDO_V1_8822B BIT(0)
-
-/* 2 REG_EE_VPD_8822B */
-
-#define BIT_SHIFT_VPD_DATA_8822B 0
-#define BIT_MASK_VPD_DATA_8822B 0xffffffffL
-#define BIT_VPD_DATA_8822B(x)                                                  \
-	(((x) & BIT_MASK_VPD_DATA_8822B) << BIT_SHIFT_VPD_DATA_8822B)
-#define BIT_GET_VPD_DATA_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_VPD_DATA_8822B) & BIT_MASK_VPD_DATA_8822B)
-
-/* 2 REG_SYS_SWR_CTRL1_8822B */
-#define BIT_C2_L_BIT0_8822B BIT(31)
-
-#define BIT_SHIFT_C1_L_8822B 29
-#define BIT_MASK_C1_L_8822B 0x3
-#define BIT_C1_L_8822B(x) (((x) & BIT_MASK_C1_L_8822B) << BIT_SHIFT_C1_L_8822B)
-#define BIT_GET_C1_L_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_C1_L_8822B) & BIT_MASK_C1_L_8822B)
-
-#define BIT_SHIFT_REG_FREQ_L_8822B 25
-#define BIT_MASK_REG_FREQ_L_8822B 0x7
-#define BIT_REG_FREQ_L_8822B(x)                                                \
-	(((x) & BIT_MASK_REG_FREQ_L_8822B) << BIT_SHIFT_REG_FREQ_L_8822B)
-#define BIT_GET_REG_FREQ_L_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_REG_FREQ_L_8822B) & BIT_MASK_REG_FREQ_L_8822B)
-
-#define BIT_REG_EN_DUTY_8822B BIT(24)
-
-#define BIT_SHIFT_REG_MODE_8822B 22
-#define BIT_MASK_REG_MODE_8822B 0x3
-#define BIT_REG_MODE_8822B(x)                                                  \
-	(((x) & BIT_MASK_REG_MODE_8822B) << BIT_SHIFT_REG_MODE_8822B)
-#define BIT_GET_REG_MODE_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_REG_MODE_8822B) & BIT_MASK_REG_MODE_8822B)
-
-#define BIT_REG_EN_SP_8822B BIT(21)
-#define BIT_REG_AUTO_L_8822B BIT(20)
-#define BIT_SW18_SELD_BIT0_8822B BIT(19)
-#define BIT_SW18_POWOCP_8822B BIT(18)
-
-#define BIT_SHIFT_OCP_L1_8822B 15
-#define BIT_MASK_OCP_L1_8822B 0x7
-#define BIT_OCP_L1_8822B(x)                                                    \
-	(((x) & BIT_MASK_OCP_L1_8822B) << BIT_SHIFT_OCP_L1_8822B)
-#define BIT_GET_OCP_L1_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_OCP_L1_8822B) & BIT_MASK_OCP_L1_8822B)
-
-#define BIT_SHIFT_CF_L_8822B 13
-#define BIT_MASK_CF_L_8822B 0x3
-#define BIT_CF_L_8822B(x) (((x) & BIT_MASK_CF_L_8822B) << BIT_SHIFT_CF_L_8822B)
-#define BIT_GET_CF_L_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_CF_L_8822B) & BIT_MASK_CF_L_8822B)
-
-#define BIT_SW18_FPWM_8822B BIT(11)
-#define BIT_SW18_SWEN_8822B BIT(9)
-#define BIT_SW18_LDEN_8822B BIT(8)
-#define BIT_MAC_ID_EN_8822B BIT(7)
-#define BIT_AFE_BGEN_8822B BIT(0)
-
-/* 2 REG_SYS_SWR_CTRL2_8822B */
-#define BIT_POW_ZCD_L_8822B BIT(31)
-#define BIT_AUTOZCD_L_8822B BIT(30)
-
-#define BIT_SHIFT_REG_DELAY_8822B 28
-#define BIT_MASK_REG_DELAY_8822B 0x3
-#define BIT_REG_DELAY_8822B(x)                                                 \
-	(((x) & BIT_MASK_REG_DELAY_8822B) << BIT_SHIFT_REG_DELAY_8822B)
-#define BIT_GET_REG_DELAY_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_REG_DELAY_8822B) & BIT_MASK_REG_DELAY_8822B)
-
-#define BIT_SHIFT_V15ADJ_L1_V1_8822B 24
-#define BIT_MASK_V15ADJ_L1_V1_8822B 0x7
-#define BIT_V15ADJ_L1_V1_8822B(x)                                              \
-	(((x) & BIT_MASK_V15ADJ_L1_V1_8822B) << BIT_SHIFT_V15ADJ_L1_V1_8822B)
-#define BIT_GET_V15ADJ_L1_V1_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_V15ADJ_L1_V1_8822B) & BIT_MASK_V15ADJ_L1_V1_8822B)
-
-#define BIT_SHIFT_VOL_L1_V1_8822B 20
-#define BIT_MASK_VOL_L1_V1_8822B 0xf
-#define BIT_VOL_L1_V1_8822B(x)                                                 \
-	(((x) & BIT_MASK_VOL_L1_V1_8822B) << BIT_SHIFT_VOL_L1_V1_8822B)
-#define BIT_GET_VOL_L1_V1_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_VOL_L1_V1_8822B) & BIT_MASK_VOL_L1_V1_8822B)
-
-#define BIT_SHIFT_IN_L1_V1_8822B 17
-#define BIT_MASK_IN_L1_V1_8822B 0x7
-#define BIT_IN_L1_V1_8822B(x)                                                  \
-	(((x) & BIT_MASK_IN_L1_V1_8822B) << BIT_SHIFT_IN_L1_V1_8822B)
-#define BIT_GET_IN_L1_V1_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_IN_L1_V1_8822B) & BIT_MASK_IN_L1_V1_8822B)
-
-#define BIT_SHIFT_TBOX_L1_8822B 15
-#define BIT_MASK_TBOX_L1_8822B 0x3
-#define BIT_TBOX_L1_8822B(x)                                                   \
-	(((x) & BIT_MASK_TBOX_L1_8822B) << BIT_SHIFT_TBOX_L1_8822B)
-#define BIT_GET_TBOX_L1_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TBOX_L1_8822B) & BIT_MASK_TBOX_L1_8822B)
-
-#define BIT_SW18_SEL_8822B BIT(13)
-
-/* 2 REG_NOT_VALID_8822B */
-#define BIT_SW18_SD_8822B BIT(10)
-
-#define BIT_SHIFT_R3_L_8822B 7
-#define BIT_MASK_R3_L_8822B 0x3
-#define BIT_R3_L_8822B(x) (((x) & BIT_MASK_R3_L_8822B) << BIT_SHIFT_R3_L_8822B)
-#define BIT_GET_R3_L_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_R3_L_8822B) & BIT_MASK_R3_L_8822B)
-
-#define BIT_SHIFT_SW18_R2_8822B 5
-#define BIT_MASK_SW18_R2_8822B 0x3
-#define BIT_SW18_R2_8822B(x)                                                   \
-	(((x) & BIT_MASK_SW18_R2_8822B) << BIT_SHIFT_SW18_R2_8822B)
-#define BIT_GET_SW18_R2_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_SW18_R2_8822B) & BIT_MASK_SW18_R2_8822B)
-
-#define BIT_SHIFT_SW18_R1_8822B 3
-#define BIT_MASK_SW18_R1_8822B 0x3
-#define BIT_SW18_R1_8822B(x)                                                   \
-	(((x) & BIT_MASK_SW18_R1_8822B) << BIT_SHIFT_SW18_R1_8822B)
-#define BIT_GET_SW18_R1_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_SW18_R1_8822B) & BIT_MASK_SW18_R1_8822B)
-
-#define BIT_SHIFT_C3_L_C3_8822B 1
-#define BIT_MASK_C3_L_C3_8822B 0x3
-#define BIT_C3_L_C3_8822B(x)                                                   \
-	(((x) & BIT_MASK_C3_L_C3_8822B) << BIT_SHIFT_C3_L_C3_8822B)
-#define BIT_GET_C3_L_C3_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_C3_L_C3_8822B) & BIT_MASK_C3_L_C3_8822B)
-
-#define BIT_C2_L_BIT1_8822B BIT(0)
-
-/* 2 REG_SYS_SWR_CTRL3_8822B */
-#define BIT_SPS18_OCP_DIS_8822B BIT(31)
-
-#define BIT_SHIFT_SPS18_OCP_TH_8822B 16
-#define BIT_MASK_SPS18_OCP_TH_8822B 0x7fff
-#define BIT_SPS18_OCP_TH_8822B(x)                                              \
-	(((x) & BIT_MASK_SPS18_OCP_TH_8822B) << BIT_SHIFT_SPS18_OCP_TH_8822B)
-#define BIT_GET_SPS18_OCP_TH_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_SPS18_OCP_TH_8822B) & BIT_MASK_SPS18_OCP_TH_8822B)
-
-#define BIT_SHIFT_OCP_WINDOW_8822B 0
-#define BIT_MASK_OCP_WINDOW_8822B 0xffff
-#define BIT_OCP_WINDOW_8822B(x)                                                \
-	(((x) & BIT_MASK_OCP_WINDOW_8822B) << BIT_SHIFT_OCP_WINDOW_8822B)
-#define BIT_GET_OCP_WINDOW_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_OCP_WINDOW_8822B) & BIT_MASK_OCP_WINDOW_8822B)
-
-/* 2 REG_RSV_CTRL_8822B */
-#define BIT_HREG_DBG_8822B BIT(23)
-#define BIT_WLMCUIOIF_8822B BIT(8)
-#define BIT_LOCK_ALL_EN_8822B BIT(7)
-#define BIT_R_DIS_PRST_8822B BIT(6)
-#define BIT_WLOCK_1C_B6_8822B BIT(5)
-#define BIT_WLOCK_40_8822B BIT(4)
-#define BIT_WLOCK_08_8822B BIT(3)
-#define BIT_WLOCK_04_8822B BIT(2)
-#define BIT_WLOCK_00_8822B BIT(1)
-#define BIT_WLOCK_ALL_8822B BIT(0)
-
-/* 2 REG_RF_CTRL_8822B */
-#define BIT_RF_SDMRSTB_8822B BIT(2)
-#define BIT_RF_RSTB_8822B BIT(1)
-#define BIT_RF_EN_8822B BIT(0)
-
-/* 2 REG_AFE_LDO_CTRL_8822B */
-
-#define BIT_SHIFT_LPLDH12_RSV_8822B 29
-#define BIT_MASK_LPLDH12_RSV_8822B 0x7
-#define BIT_LPLDH12_RSV_8822B(x)                                               \
-	(((x) & BIT_MASK_LPLDH12_RSV_8822B) << BIT_SHIFT_LPLDH12_RSV_8822B)
-#define BIT_GET_LPLDH12_RSV_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_LPLDH12_RSV_8822B) & BIT_MASK_LPLDH12_RSV_8822B)
-
-#define BIT_LPLDH12_SLP_8822B BIT(28)
-
-#define BIT_SHIFT_LPLDH12_VADJ_8822B 24
-#define BIT_MASK_LPLDH12_VADJ_8822B 0xf
-#define BIT_LPLDH12_VADJ_8822B(x)                                              \
-	(((x) & BIT_MASK_LPLDH12_VADJ_8822B) << BIT_SHIFT_LPLDH12_VADJ_8822B)
-#define BIT_GET_LPLDH12_VADJ_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_LPLDH12_VADJ_8822B) & BIT_MASK_LPLDH12_VADJ_8822B)
-
-#define BIT_LDH12_EN_8822B BIT(16)
-#define BIT_WLBBOFF_BIG_PWC_EN_8822B BIT(14)
-#define BIT_WLBBOFF_SMALL_PWC_EN_8822B BIT(13)
-#define BIT_WLMACOFF_BIG_PWC_EN_8822B BIT(12)
-#define BIT_WLPON_PWC_EN_8822B BIT(11)
-#define BIT_POW_REGU_P1_8822B BIT(10)
-#define BIT_LDOV12W_EN_8822B BIT(8)
-#define BIT_EX_XTAL_DRV_DIGI_8822B BIT(7)
-#define BIT_EX_XTAL_DRV_USB_8822B BIT(6)
-#define BIT_EX_XTAL_DRV_AFE_8822B BIT(5)
-#define BIT_EX_XTAL_DRV_RF2_8822B BIT(4)
-#define BIT_EX_XTAL_DRV_RF1_8822B BIT(3)
-#define BIT_POW_REGU_P0_8822B BIT(2)
-
-/* 2 REG_NOT_VALID_8822B */
-#define BIT_POW_PLL_LDO_8822B BIT(0)
-
-/* 2 REG_AFE_CTRL1_8822B */
-#define BIT_AGPIO_GPE_8822B BIT(31)
-
-#define BIT_SHIFT_XTAL_CAP_XI_8822B 25
-#define BIT_MASK_XTAL_CAP_XI_8822B 0x3f
-#define BIT_XTAL_CAP_XI_8822B(x)                                               \
-	(((x) & BIT_MASK_XTAL_CAP_XI_8822B) << BIT_SHIFT_XTAL_CAP_XI_8822B)
-#define BIT_GET_XTAL_CAP_XI_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_XTAL_CAP_XI_8822B) & BIT_MASK_XTAL_CAP_XI_8822B)
-
-#define BIT_SHIFT_XTAL_DRV_DIGI_8822B 23
-#define BIT_MASK_XTAL_DRV_DIGI_8822B 0x3
-#define BIT_XTAL_DRV_DIGI_8822B(x)                                             \
-	(((x) & BIT_MASK_XTAL_DRV_DIGI_8822B) << BIT_SHIFT_XTAL_DRV_DIGI_8822B)
-#define BIT_GET_XTAL_DRV_DIGI_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_XTAL_DRV_DIGI_8822B) & BIT_MASK_XTAL_DRV_DIGI_8822B)
-
-#define BIT_XTAL_DRV_USB_BIT1_8822B BIT(22)
-
-#define BIT_SHIFT_MAC_CLK_SEL_8822B 20
-#define BIT_MASK_MAC_CLK_SEL_8822B 0x3
-#define BIT_MAC_CLK_SEL_8822B(x)                                               \
-	(((x) & BIT_MASK_MAC_CLK_SEL_8822B) << BIT_SHIFT_MAC_CLK_SEL_8822B)
-#define BIT_GET_MAC_CLK_SEL_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_MAC_CLK_SEL_8822B) & BIT_MASK_MAC_CLK_SEL_8822B)
-
-#define BIT_XTAL_DRV_USB_BIT0_8822B BIT(19)
-
-#define BIT_SHIFT_XTAL_DRV_AFE_8822B 17
-#define BIT_MASK_XTAL_DRV_AFE_8822B 0x3
-#define BIT_XTAL_DRV_AFE_8822B(x)                                              \
-	(((x) & BIT_MASK_XTAL_DRV_AFE_8822B) << BIT_SHIFT_XTAL_DRV_AFE_8822B)
-#define BIT_GET_XTAL_DRV_AFE_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_XTAL_DRV_AFE_8822B) & BIT_MASK_XTAL_DRV_AFE_8822B)
-
-#define BIT_SHIFT_XTAL_DRV_RF2_8822B 15
-#define BIT_MASK_XTAL_DRV_RF2_8822B 0x3
-#define BIT_XTAL_DRV_RF2_8822B(x)                                              \
-	(((x) & BIT_MASK_XTAL_DRV_RF2_8822B) << BIT_SHIFT_XTAL_DRV_RF2_8822B)
-#define BIT_GET_XTAL_DRV_RF2_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_XTAL_DRV_RF2_8822B) & BIT_MASK_XTAL_DRV_RF2_8822B)
-
-#define BIT_SHIFT_XTAL_DRV_RF1_8822B 13
-#define BIT_MASK_XTAL_DRV_RF1_8822B 0x3
-#define BIT_XTAL_DRV_RF1_8822B(x)                                              \
-	(((x) & BIT_MASK_XTAL_DRV_RF1_8822B) << BIT_SHIFT_XTAL_DRV_RF1_8822B)
-#define BIT_GET_XTAL_DRV_RF1_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_XTAL_DRV_RF1_8822B) & BIT_MASK_XTAL_DRV_RF1_8822B)
-
-#define BIT_XTAL_DELAY_DIGI_8822B BIT(12)
-#define BIT_XTAL_DELAY_USB_8822B BIT(11)
-#define BIT_XTAL_DELAY_AFE_8822B BIT(10)
-
-#define BIT_SHIFT_XTAL_LDO_VREF_8822B 7
-#define BIT_MASK_XTAL_LDO_VREF_8822B 0x7
-#define BIT_XTAL_LDO_VREF_8822B(x)                                             \
-	(((x) & BIT_MASK_XTAL_LDO_VREF_8822B) << BIT_SHIFT_XTAL_LDO_VREF_8822B)
-#define BIT_GET_XTAL_LDO_VREF_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_XTAL_LDO_VREF_8822B) & BIT_MASK_XTAL_LDO_VREF_8822B)
-
-#define BIT_XTAL_XQSEL_RF_8822B BIT(6)
-#define BIT_XTAL_XQSEL_8822B BIT(5)
-
-#define BIT_SHIFT_XTAL_GMN_V2_8822B 3
-#define BIT_MASK_XTAL_GMN_V2_8822B 0x3
-#define BIT_XTAL_GMN_V2_8822B(x)                                               \
-	(((x) & BIT_MASK_XTAL_GMN_V2_8822B) << BIT_SHIFT_XTAL_GMN_V2_8822B)
-#define BIT_GET_XTAL_GMN_V2_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_XTAL_GMN_V2_8822B) & BIT_MASK_XTAL_GMN_V2_8822B)
-
-#define BIT_SHIFT_XTAL_GMP_V2_8822B 1
-#define BIT_MASK_XTAL_GMP_V2_8822B 0x3
-#define BIT_XTAL_GMP_V2_8822B(x)                                               \
-	(((x) & BIT_MASK_XTAL_GMP_V2_8822B) << BIT_SHIFT_XTAL_GMP_V2_8822B)
-#define BIT_GET_XTAL_GMP_V2_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_XTAL_GMP_V2_8822B) & BIT_MASK_XTAL_GMP_V2_8822B)
-
-#define BIT_XTAL_EN_8822B BIT(0)
-
-/* 2 REG_AFE_CTRL2_8822B */
-
-#define BIT_SHIFT_REG_C3_V4_8822B 30
-#define BIT_MASK_REG_C3_V4_8822B 0x3
-#define BIT_REG_C3_V4_8822B(x)                                                 \
-	(((x) & BIT_MASK_REG_C3_V4_8822B) << BIT_SHIFT_REG_C3_V4_8822B)
-#define BIT_GET_REG_C3_V4_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_REG_C3_V4_8822B) & BIT_MASK_REG_C3_V4_8822B)
-
-#define BIT_REG_CP_BIT1_8822B BIT(29)
-
-#define BIT_SHIFT_REG_RS_V4_8822B 26
-#define BIT_MASK_REG_RS_V4_8822B 0x7
-#define BIT_REG_RS_V4_8822B(x)                                                 \
-	(((x) & BIT_MASK_REG_RS_V4_8822B) << BIT_SHIFT_REG_RS_V4_8822B)
-#define BIT_GET_REG_RS_V4_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_REG_RS_V4_8822B) & BIT_MASK_REG_RS_V4_8822B)
-
-#define BIT_SHIFT_REG__CS_8822B 24
-#define BIT_MASK_REG__CS_8822B 0x3
-#define BIT_REG__CS_8822B(x)                                                   \
-	(((x) & BIT_MASK_REG__CS_8822B) << BIT_SHIFT_REG__CS_8822B)
-#define BIT_GET_REG__CS_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_REG__CS_8822B) & BIT_MASK_REG__CS_8822B)
-
-#define BIT_SHIFT_REG_CP_OFFSET_8822B 21
-#define BIT_MASK_REG_CP_OFFSET_8822B 0x7
-#define BIT_REG_CP_OFFSET_8822B(x)                                             \
-	(((x) & BIT_MASK_REG_CP_OFFSET_8822B) << BIT_SHIFT_REG_CP_OFFSET_8822B)
-#define BIT_GET_REG_CP_OFFSET_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_REG_CP_OFFSET_8822B) & BIT_MASK_REG_CP_OFFSET_8822B)
-
-#define BIT_SHIFT_CP_BIAS_8822B 18
-#define BIT_MASK_CP_BIAS_8822B 0x7
-#define BIT_CP_BIAS_8822B(x)                                                   \
-	(((x) & BIT_MASK_CP_BIAS_8822B) << BIT_SHIFT_CP_BIAS_8822B)
-#define BIT_GET_CP_BIAS_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_CP_BIAS_8822B) & BIT_MASK_CP_BIAS_8822B)
-
-#define BIT_REG_IDOUBLE_V2_8822B BIT(17)
-#define BIT_EN_SYN_8822B BIT(16)
-
-#define BIT_SHIFT_MCCO_8822B 14
-#define BIT_MASK_MCCO_8822B 0x3
-#define BIT_MCCO_8822B(x) (((x) & BIT_MASK_MCCO_8822B) << BIT_SHIFT_MCCO_8822B)
-#define BIT_GET_MCCO_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_MCCO_8822B) & BIT_MASK_MCCO_8822B)
-
-#define BIT_SHIFT_REG_LDO_SEL_8822B 12
-#define BIT_MASK_REG_LDO_SEL_8822B 0x3
-#define BIT_REG_LDO_SEL_8822B(x)                                               \
-	(((x) & BIT_MASK_REG_LDO_SEL_8822B) << BIT_SHIFT_REG_LDO_SEL_8822B)
-#define BIT_GET_REG_LDO_SEL_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_REG_LDO_SEL_8822B) & BIT_MASK_REG_LDO_SEL_8822B)
-
-#define BIT_REG_KVCO_V2_8822B BIT(10)
-#define BIT_AGPIO_GPO_8822B BIT(9)
-
-#define BIT_SHIFT_AGPIO_DRV_8822B 7
-#define BIT_MASK_AGPIO_DRV_8822B 0x3
-#define BIT_AGPIO_DRV_8822B(x)                                                 \
-	(((x) & BIT_MASK_AGPIO_DRV_8822B) << BIT_SHIFT_AGPIO_DRV_8822B)
-#define BIT_GET_AGPIO_DRV_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_AGPIO_DRV_8822B) & BIT_MASK_AGPIO_DRV_8822B)
-
-#define BIT_SHIFT_XTAL_CAP_XO_8822B 1
-#define BIT_MASK_XTAL_CAP_XO_8822B 0x3f
-#define BIT_XTAL_CAP_XO_8822B(x)                                               \
-	(((x) & BIT_MASK_XTAL_CAP_XO_8822B) << BIT_SHIFT_XTAL_CAP_XO_8822B)
-#define BIT_GET_XTAL_CAP_XO_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_XTAL_CAP_XO_8822B) & BIT_MASK_XTAL_CAP_XO_8822B)
-
-#define BIT_POW_PLL_8822B BIT(0)
-
-/* 2 REG_AFE_CTRL3_8822B */
-
-#define BIT_SHIFT_PS_8822B 7
-#define BIT_MASK_PS_8822B 0x7
-#define BIT_PS_8822B(x) (((x) & BIT_MASK_PS_8822B) << BIT_SHIFT_PS_8822B)
-#define BIT_GET_PS_8822B(x) (((x) >> BIT_SHIFT_PS_8822B) & BIT_MASK_PS_8822B)
-
-#define BIT_PSEN_8822B BIT(6)
-#define BIT_DOGENB_8822B BIT(5)
-#define BIT_REG_MBIAS_8822B BIT(4)
-
-#define BIT_SHIFT_REG_R3_V4_8822B 1
-#define BIT_MASK_REG_R3_V4_8822B 0x7
-#define BIT_REG_R3_V4_8822B(x)                                                 \
-	(((x) & BIT_MASK_REG_R3_V4_8822B) << BIT_SHIFT_REG_R3_V4_8822B)
-#define BIT_GET_REG_R3_V4_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_REG_R3_V4_8822B) & BIT_MASK_REG_R3_V4_8822B)
-
-#define BIT_REG_CP_BIT0_8822B BIT(0)
-
-/* 2 REG_EFUSE_CTRL_8822B */
-#define BIT_EF_FLAG_8822B BIT(31)
-
-#define BIT_SHIFT_EF_PGPD_8822B 28
-#define BIT_MASK_EF_PGPD_8822B 0x7
-#define BIT_EF_PGPD_8822B(x)                                                   \
-	(((x) & BIT_MASK_EF_PGPD_8822B) << BIT_SHIFT_EF_PGPD_8822B)
-#define BIT_GET_EF_PGPD_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_EF_PGPD_8822B) & BIT_MASK_EF_PGPD_8822B)
-
-#define BIT_SHIFT_EF_RDT_8822B 24
-#define BIT_MASK_EF_RDT_8822B 0xf
-#define BIT_EF_RDT_8822B(x)                                                    \
-	(((x) & BIT_MASK_EF_RDT_8822B) << BIT_SHIFT_EF_RDT_8822B)
-#define BIT_GET_EF_RDT_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_EF_RDT_8822B) & BIT_MASK_EF_RDT_8822B)
-
-#define BIT_SHIFT_EF_PGTS_8822B 20
-#define BIT_MASK_EF_PGTS_8822B 0xf
-#define BIT_EF_PGTS_8822B(x)                                                   \
-	(((x) & BIT_MASK_EF_PGTS_8822B) << BIT_SHIFT_EF_PGTS_8822B)
-#define BIT_GET_EF_PGTS_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_EF_PGTS_8822B) & BIT_MASK_EF_PGTS_8822B)
-
-#define BIT_EF_PDWN_8822B BIT(19)
-#define BIT_EF_ALDEN_8822B BIT(18)
-
-#define BIT_SHIFT_EF_ADDR_8822B 8
-#define BIT_MASK_EF_ADDR_8822B 0x3ff
-#define BIT_EF_ADDR_8822B(x)                                                   \
-	(((x) & BIT_MASK_EF_ADDR_8822B) << BIT_SHIFT_EF_ADDR_8822B)
-#define BIT_GET_EF_ADDR_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_EF_ADDR_8822B) & BIT_MASK_EF_ADDR_8822B)
-
-#define BIT_SHIFT_EF_DATA_8822B 0
-#define BIT_MASK_EF_DATA_8822B 0xff
-#define BIT_EF_DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_EF_DATA_8822B) << BIT_SHIFT_EF_DATA_8822B)
-#define BIT_GET_EF_DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_EF_DATA_8822B) & BIT_MASK_EF_DATA_8822B)
-
-/* 2 REG_LDO_EFUSE_CTRL_8822B */
-#define BIT_LDOE25_EN_8822B BIT(31)
-
-#define BIT_SHIFT_LDOE25_V12ADJ_L_8822B 27
-#define BIT_MASK_LDOE25_V12ADJ_L_8822B 0xf
-#define BIT_LDOE25_V12ADJ_L_8822B(x)                                           \
-	(((x) & BIT_MASK_LDOE25_V12ADJ_L_8822B)                                \
-	 << BIT_SHIFT_LDOE25_V12ADJ_L_8822B)
-#define BIT_GET_LDOE25_V12ADJ_L_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_LDOE25_V12ADJ_L_8822B) &                            \
-	 BIT_MASK_LDOE25_V12ADJ_L_8822B)
-
-#define BIT_EF_CRES_SEL_8822B BIT(26)
-
-#define BIT_SHIFT_EF_SCAN_START_V1_8822B 16
-#define BIT_MASK_EF_SCAN_START_V1_8822B 0x3ff
-#define BIT_EF_SCAN_START_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_EF_SCAN_START_V1_8822B)                               \
-	 << BIT_SHIFT_EF_SCAN_START_V1_8822B)
-#define BIT_GET_EF_SCAN_START_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_EF_SCAN_START_V1_8822B) &                           \
-	 BIT_MASK_EF_SCAN_START_V1_8822B)
-
-#define BIT_SHIFT_EF_SCAN_END_8822B 12
-#define BIT_MASK_EF_SCAN_END_8822B 0xf
-#define BIT_EF_SCAN_END_8822B(x)                                               \
-	(((x) & BIT_MASK_EF_SCAN_END_8822B) << BIT_SHIFT_EF_SCAN_END_8822B)
-#define BIT_GET_EF_SCAN_END_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_EF_SCAN_END_8822B) & BIT_MASK_EF_SCAN_END_8822B)
-
-#define BIT_EF_PD_DIS_8822B BIT(11)
-
-#define BIT_SHIFT_EF_CELL_SEL_8822B 8
-#define BIT_MASK_EF_CELL_SEL_8822B 0x3
-#define BIT_EF_CELL_SEL_8822B(x)                                               \
-	(((x) & BIT_MASK_EF_CELL_SEL_8822B) << BIT_SHIFT_EF_CELL_SEL_8822B)
-#define BIT_GET_EF_CELL_SEL_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_EF_CELL_SEL_8822B) & BIT_MASK_EF_CELL_SEL_8822B)
-
-#define BIT_EF_TRPT_8822B BIT(7)
-
-#define BIT_SHIFT_EF_TTHD_8822B 0
-#define BIT_MASK_EF_TTHD_8822B 0x7f
-#define BIT_EF_TTHD_8822B(x)                                                   \
-	(((x) & BIT_MASK_EF_TTHD_8822B) << BIT_SHIFT_EF_TTHD_8822B)
-#define BIT_GET_EF_TTHD_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_EF_TTHD_8822B) & BIT_MASK_EF_TTHD_8822B)
-
-/* 2 REG_PWR_OPTION_CTRL_8822B */
-
-#define BIT_SHIFT_DBG_SEL_V1_8822B 16
-#define BIT_MASK_DBG_SEL_V1_8822B 0xff
-#define BIT_DBG_SEL_V1_8822B(x)                                                \
-	(((x) & BIT_MASK_DBG_SEL_V1_8822B) << BIT_SHIFT_DBG_SEL_V1_8822B)
-#define BIT_GET_DBG_SEL_V1_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DBG_SEL_V1_8822B) & BIT_MASK_DBG_SEL_V1_8822B)
-
-#define BIT_SHIFT_DBG_SEL_BYTE_8822B 14
-#define BIT_MASK_DBG_SEL_BYTE_8822B 0x3
-#define BIT_DBG_SEL_BYTE_8822B(x)                                              \
-	(((x) & BIT_MASK_DBG_SEL_BYTE_8822B) << BIT_SHIFT_DBG_SEL_BYTE_8822B)
-#define BIT_GET_DBG_SEL_BYTE_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DBG_SEL_BYTE_8822B) & BIT_MASK_DBG_SEL_BYTE_8822B)
-
-#define BIT_SHIFT_STD_L1_V1_8822B 12
-#define BIT_MASK_STD_L1_V1_8822B 0x3
-#define BIT_STD_L1_V1_8822B(x)                                                 \
-	(((x) & BIT_MASK_STD_L1_V1_8822B) << BIT_SHIFT_STD_L1_V1_8822B)
-#define BIT_GET_STD_L1_V1_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_STD_L1_V1_8822B) & BIT_MASK_STD_L1_V1_8822B)
-
-#define BIT_SYSON_DBG_PAD_E2_8822B BIT(11)
-#define BIT_SYSON_LED_PAD_E2_8822B BIT(10)
-#define BIT_SYSON_GPEE_PAD_E2_8822B BIT(9)
-#define BIT_SYSON_PCI_PAD_E2_8822B BIT(8)
-#define BIT_AUTO_SW_LDO_VOL_EN_8822B BIT(7)
-
-#define BIT_SHIFT_SYSON_SPS0WWV_WT_8822B 4
-#define BIT_MASK_SYSON_SPS0WWV_WT_8822B 0x3
-#define BIT_SYSON_SPS0WWV_WT_8822B(x)                                          \
-	(((x) & BIT_MASK_SYSON_SPS0WWV_WT_8822B)                               \
-	 << BIT_SHIFT_SYSON_SPS0WWV_WT_8822B)
-#define BIT_GET_SYSON_SPS0WWV_WT_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_SYSON_SPS0WWV_WT_8822B) &                           \
-	 BIT_MASK_SYSON_SPS0WWV_WT_8822B)
-
-#define BIT_SHIFT_SYSON_SPS0LDO_WT_8822B 2
-#define BIT_MASK_SYSON_SPS0LDO_WT_8822B 0x3
-#define BIT_SYSON_SPS0LDO_WT_8822B(x)                                          \
-	(((x) & BIT_MASK_SYSON_SPS0LDO_WT_8822B)                               \
-	 << BIT_SHIFT_SYSON_SPS0LDO_WT_8822B)
-#define BIT_GET_SYSON_SPS0LDO_WT_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_SYSON_SPS0LDO_WT_8822B) &                           \
-	 BIT_MASK_SYSON_SPS0LDO_WT_8822B)
-
-#define BIT_SHIFT_SYSON_RCLK_SCALE_8822B 0
-#define BIT_MASK_SYSON_RCLK_SCALE_8822B 0x3
-#define BIT_SYSON_RCLK_SCALE_8822B(x)                                          \
-	(((x) & BIT_MASK_SYSON_RCLK_SCALE_8822B)                               \
-	 << BIT_SHIFT_SYSON_RCLK_SCALE_8822B)
-#define BIT_GET_SYSON_RCLK_SCALE_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_SYSON_RCLK_SCALE_8822B) &                           \
-	 BIT_MASK_SYSON_RCLK_SCALE_8822B)
-
-/* 2 REG_CAL_TIMER_8822B */
-
-#define BIT_SHIFT_MATCH_CNT_8822B 8
-#define BIT_MASK_MATCH_CNT_8822B 0xff
-#define BIT_MATCH_CNT_8822B(x)                                                 \
-	(((x) & BIT_MASK_MATCH_CNT_8822B) << BIT_SHIFT_MATCH_CNT_8822B)
-#define BIT_GET_MATCH_CNT_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_MATCH_CNT_8822B) & BIT_MASK_MATCH_CNT_8822B)
-
-#define BIT_SHIFT_CAL_SCAL_8822B 0
-#define BIT_MASK_CAL_SCAL_8822B 0xff
-#define BIT_CAL_SCAL_8822B(x)                                                  \
-	(((x) & BIT_MASK_CAL_SCAL_8822B) << BIT_SHIFT_CAL_SCAL_8822B)
-#define BIT_GET_CAL_SCAL_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_CAL_SCAL_8822B) & BIT_MASK_CAL_SCAL_8822B)
-
-/* 2 REG_ACLK_MON_8822B */
-
-#define BIT_SHIFT_RCLK_MON_8822B 5
-#define BIT_MASK_RCLK_MON_8822B 0x7ff
-#define BIT_RCLK_MON_8822B(x)                                                  \
-	(((x) & BIT_MASK_RCLK_MON_8822B) << BIT_SHIFT_RCLK_MON_8822B)
-#define BIT_GET_RCLK_MON_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RCLK_MON_8822B) & BIT_MASK_RCLK_MON_8822B)
-
-#define BIT_CAL_EN_8822B BIT(4)
-
-#define BIT_SHIFT_DPSTU_8822B 2
-#define BIT_MASK_DPSTU_8822B 0x3
-#define BIT_DPSTU_8822B(x)                                                     \
-	(((x) & BIT_MASK_DPSTU_8822B) << BIT_SHIFT_DPSTU_8822B)
-#define BIT_GET_DPSTU_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_DPSTU_8822B) & BIT_MASK_DPSTU_8822B)
-
-#define BIT_SUS_16X_8822B BIT(1)
-
-/* 2 REG_GPIO_MUXCFG_8822B */
-#define BIT_FSPI_EN_8822B BIT(19)
-#define BIT_WL_RTS_EXT_32K_SEL_8822B BIT(18)
-#define BIT_WLGP_SPI_EN_8822B BIT(16)
-#define BIT_SIC_LBK_8822B BIT(15)
-#define BIT_ENHTP_8822B BIT(14)
-#define BIT_ENSIC_8822B BIT(12)
-#define BIT_SIC_SWRST_8822B BIT(11)
-#define BIT_PO_WIFI_PTA_PINS_8822B BIT(10)
-#define BIT_PO_BT_PTA_PINS_8822B BIT(9)
-#define BIT_ENUART_8822B BIT(8)
-
-#define BIT_SHIFT_BTMODE_8822B 6
-#define BIT_MASK_BTMODE_8822B 0x3
-#define BIT_BTMODE_8822B(x)                                                    \
-	(((x) & BIT_MASK_BTMODE_8822B) << BIT_SHIFT_BTMODE_8822B)
-#define BIT_GET_BTMODE_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_BTMODE_8822B) & BIT_MASK_BTMODE_8822B)
-
-#define BIT_ENBT_8822B BIT(5)
-#define BIT_EROM_EN_8822B BIT(4)
-#define BIT_WLRFE_6_7_EN_8822B BIT(3)
-#define BIT_WLRFE_4_5_EN_8822B BIT(2)
-
-#define BIT_SHIFT_GPIOSEL_8822B 0
-#define BIT_MASK_GPIOSEL_8822B 0x3
-#define BIT_GPIOSEL_8822B(x)                                                   \
-	(((x) & BIT_MASK_GPIOSEL_8822B) << BIT_SHIFT_GPIOSEL_8822B)
-#define BIT_GET_GPIOSEL_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_GPIOSEL_8822B) & BIT_MASK_GPIOSEL_8822B)
-
-/* 2 REG_GPIO_PIN_CTRL_8822B */
-
-#define BIT_SHIFT_GPIO_MOD_7_TO_0_8822B 24
-#define BIT_MASK_GPIO_MOD_7_TO_0_8822B 0xff
-#define BIT_GPIO_MOD_7_TO_0_8822B(x)                                           \
-	(((x) & BIT_MASK_GPIO_MOD_7_TO_0_8822B)                                \
-	 << BIT_SHIFT_GPIO_MOD_7_TO_0_8822B)
-#define BIT_GET_GPIO_MOD_7_TO_0_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_GPIO_MOD_7_TO_0_8822B) &                            \
-	 BIT_MASK_GPIO_MOD_7_TO_0_8822B)
-
-#define BIT_SHIFT_GPIO_IO_SEL_7_TO_0_8822B 16
-#define BIT_MASK_GPIO_IO_SEL_7_TO_0_8822B 0xff
-#define BIT_GPIO_IO_SEL_7_TO_0_8822B(x)                                        \
-	(((x) & BIT_MASK_GPIO_IO_SEL_7_TO_0_8822B)                             \
-	 << BIT_SHIFT_GPIO_IO_SEL_7_TO_0_8822B)
-#define BIT_GET_GPIO_IO_SEL_7_TO_0_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_GPIO_IO_SEL_7_TO_0_8822B) &                         \
-	 BIT_MASK_GPIO_IO_SEL_7_TO_0_8822B)
-
-#define BIT_SHIFT_GPIO_OUT_7_TO_0_8822B 8
-#define BIT_MASK_GPIO_OUT_7_TO_0_8822B 0xff
-#define BIT_GPIO_OUT_7_TO_0_8822B(x)                                           \
-	(((x) & BIT_MASK_GPIO_OUT_7_TO_0_8822B)                                \
-	 << BIT_SHIFT_GPIO_OUT_7_TO_0_8822B)
-#define BIT_GET_GPIO_OUT_7_TO_0_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_GPIO_OUT_7_TO_0_8822B) &                            \
-	 BIT_MASK_GPIO_OUT_7_TO_0_8822B)
-
-#define BIT_SHIFT_GPIO_IN_7_TO_0_8822B 0
-#define BIT_MASK_GPIO_IN_7_TO_0_8822B 0xff
-#define BIT_GPIO_IN_7_TO_0_8822B(x)                                            \
-	(((x) & BIT_MASK_GPIO_IN_7_TO_0_8822B)                                 \
-	 << BIT_SHIFT_GPIO_IN_7_TO_0_8822B)
-#define BIT_GET_GPIO_IN_7_TO_0_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_GPIO_IN_7_TO_0_8822B) &                             \
-	 BIT_MASK_GPIO_IN_7_TO_0_8822B)
-
-/* 2 REG_GPIO_INTM_8822B */
-
-#define BIT_SHIFT_MUXDBG_SEL_8822B 30
-#define BIT_MASK_MUXDBG_SEL_8822B 0x3
-#define BIT_MUXDBG_SEL_8822B(x)                                                \
-	(((x) & BIT_MASK_MUXDBG_SEL_8822B) << BIT_SHIFT_MUXDBG_SEL_8822B)
-#define BIT_GET_MUXDBG_SEL_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_MUXDBG_SEL_8822B) & BIT_MASK_MUXDBG_SEL_8822B)
-
-#define BIT_EXTWOL_SEL_8822B BIT(17)
-#define BIT_EXTWOL_EN_8822B BIT(16)
-#define BIT_GPIOF_INT_MD_8822B BIT(15)
-#define BIT_GPIOE_INT_MD_8822B BIT(14)
-#define BIT_GPIOD_INT_MD_8822B BIT(13)
-#define BIT_GPIOF_INT_MD_8822B BIT(15)
-#define BIT_GPIOE_INT_MD_8822B BIT(14)
-#define BIT_GPIOD_INT_MD_8822B BIT(13)
-#define BIT_GPIOC_INT_MD_8822B BIT(12)
-#define BIT_GPIOB_INT_MD_8822B BIT(11)
-#define BIT_GPIOA_INT_MD_8822B BIT(10)
-#define BIT_GPIO9_INT_MD_8822B BIT(9)
-#define BIT_GPIO8_INT_MD_8822B BIT(8)
-#define BIT_GPIO7_INT_MD_8822B BIT(7)
-#define BIT_GPIO6_INT_MD_8822B BIT(6)
-#define BIT_GPIO5_INT_MD_8822B BIT(5)
-#define BIT_GPIO4_INT_MD_8822B BIT(4)
-#define BIT_GPIO3_INT_MD_8822B BIT(3)
-#define BIT_GPIO2_INT_MD_8822B BIT(2)
-#define BIT_GPIO1_INT_MD_8822B BIT(1)
-#define BIT_GPIO0_INT_MD_8822B BIT(0)
-
-/* 2 REG_LED_CFG_8822B */
-#define BIT_GPIO3_WL_CTRL_EN_8822B BIT(27)
-#define BIT_LNAON_SEL_EN_8822B BIT(26)
-#define BIT_PAPE_SEL_EN_8822B BIT(25)
-#define BIT_DPDT_WLBT_SEL_8822B BIT(24)
-#define BIT_DPDT_SEL_EN_8822B BIT(23)
-#define BIT_GPIO13_14_WL_CTRL_EN_8822B BIT(22)
-#define BIT_GPIO13_14_WL_CTRL_EN_8822B BIT(22)
-#define BIT_LED2DIS_8822B BIT(21)
-#define BIT_LED2PL_8822B BIT(20)
-#define BIT_LED2SV_8822B BIT(19)
-
-#define BIT_SHIFT_LED2CM_8822B 16
-#define BIT_MASK_LED2CM_8822B 0x7
-#define BIT_LED2CM_8822B(x)                                                    \
-	(((x) & BIT_MASK_LED2CM_8822B) << BIT_SHIFT_LED2CM_8822B)
-#define BIT_GET_LED2CM_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_LED2CM_8822B) & BIT_MASK_LED2CM_8822B)
-
-#define BIT_LED1DIS_8822B BIT(15)
-#define BIT_LED1PL_8822B BIT(12)
-#define BIT_LED1SV_8822B BIT(11)
-
-#define BIT_SHIFT_LED1CM_8822B 8
-#define BIT_MASK_LED1CM_8822B 0x7
-#define BIT_LED1CM_8822B(x)                                                    \
-	(((x) & BIT_MASK_LED1CM_8822B) << BIT_SHIFT_LED1CM_8822B)
-#define BIT_GET_LED1CM_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_LED1CM_8822B) & BIT_MASK_LED1CM_8822B)
-
-#define BIT_LED0DIS_8822B BIT(7)
-
-#define BIT_SHIFT_AFE_LDO_SWR_CHECK_8822B 5
-#define BIT_MASK_AFE_LDO_SWR_CHECK_8822B 0x3
-#define BIT_AFE_LDO_SWR_CHECK_8822B(x)                                         \
-	(((x) & BIT_MASK_AFE_LDO_SWR_CHECK_8822B)                              \
-	 << BIT_SHIFT_AFE_LDO_SWR_CHECK_8822B)
-#define BIT_GET_AFE_LDO_SWR_CHECK_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_AFE_LDO_SWR_CHECK_8822B) &                          \
-	 BIT_MASK_AFE_LDO_SWR_CHECK_8822B)
-
-#define BIT_LED0PL_8822B BIT(4)
-#define BIT_LED0SV_8822B BIT(3)
-
-#define BIT_SHIFT_LED0CM_8822B 0
-#define BIT_MASK_LED0CM_8822B 0x7
-#define BIT_LED0CM_8822B(x)                                                    \
-	(((x) & BIT_MASK_LED0CM_8822B) << BIT_SHIFT_LED0CM_8822B)
-#define BIT_GET_LED0CM_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_LED0CM_8822B) & BIT_MASK_LED0CM_8822B)
-
-/* 2 REG_FSIMR_8822B */
-#define BIT_FS_PDNINT_EN_8822B BIT(31)
-#define BIT_NFC_INT_PAD_EN_8822B BIT(30)
-#define BIT_FS_SPS_OCP_INT_EN_8822B BIT(29)
-#define BIT_FS_PWMERR_INT_EN_8822B BIT(28)
-#define BIT_FS_GPIOF_INT_EN_8822B BIT(27)
-#define BIT_FS_GPIOE_INT_EN_8822B BIT(26)
-#define BIT_FS_GPIOD_INT_EN_8822B BIT(25)
-#define BIT_FS_GPIOC_INT_EN_8822B BIT(24)
-#define BIT_FS_GPIOB_INT_EN_8822B BIT(23)
-#define BIT_FS_GPIOA_INT_EN_8822B BIT(22)
-#define BIT_FS_GPIO9_INT_EN_8822B BIT(21)
-#define BIT_FS_GPIO8_INT_EN_8822B BIT(20)
-#define BIT_FS_GPIO7_INT_EN_8822B BIT(19)
-#define BIT_FS_GPIO6_INT_EN_8822B BIT(18)
-#define BIT_FS_GPIO5_INT_EN_8822B BIT(17)
-#define BIT_FS_GPIO4_INT_EN_8822B BIT(16)
-#define BIT_FS_GPIO3_INT_EN_8822B BIT(15)
-#define BIT_FS_GPIO2_INT_EN_8822B BIT(14)
-#define BIT_FS_GPIO1_INT_EN_8822B BIT(13)
-#define BIT_FS_GPIO0_INT_EN_8822B BIT(12)
-#define BIT_FS_HCI_SUS_EN_8822B BIT(11)
-#define BIT_FS_HCI_RES_EN_8822B BIT(10)
-#define BIT_FS_HCI_RESET_EN_8822B BIT(9)
-#define BIT_FS_BTON_STS_UPDATE_MSK_EN_8822B BIT(7)
-#define BIT_ACT2RECOVERY_INT_EN_V1_8822B BIT(6)
-#define BIT_GEN1GEN2_SWITCH_8822B BIT(5)
-#define BIT_HCI_TXDMA_REQ_HIMR_8822B BIT(4)
-#define BIT_FS_32K_LEAVE_SETTING_MAK_8822B BIT(3)
-#define BIT_FS_32K_ENTER_SETTING_MAK_8822B BIT(2)
-#define BIT_FS_USB_LPMRSM_MSK_8822B BIT(1)
-#define BIT_FS_USB_LPMINT_MSK_8822B BIT(0)
-
-/* 2 REG_FSISR_8822B */
-#define BIT_FS_PDNINT_8822B BIT(31)
-#define BIT_FS_SPS_OCP_INT_8822B BIT(29)
-#define BIT_FS_PWMERR_INT_8822B BIT(28)
-#define BIT_FS_GPIOF_INT_8822B BIT(27)
-#define BIT_FS_GPIOE_INT_8822B BIT(26)
-#define BIT_FS_GPIOD_INT_8822B BIT(25)
-#define BIT_FS_GPIOC_INT_8822B BIT(24)
-#define BIT_FS_GPIOB_INT_8822B BIT(23)
-#define BIT_FS_GPIOA_INT_8822B BIT(22)
-#define BIT_FS_GPIO9_INT_8822B BIT(21)
-#define BIT_FS_GPIO8_INT_8822B BIT(20)
-#define BIT_FS_GPIO7_INT_8822B BIT(19)
-#define BIT_FS_GPIO6_INT_8822B BIT(18)
-#define BIT_FS_GPIO5_INT_8822B BIT(17)
-#define BIT_FS_GPIO4_INT_8822B BIT(16)
-#define BIT_FS_GPIO3_INT_8822B BIT(15)
-#define BIT_FS_GPIO2_INT_8822B BIT(14)
-#define BIT_FS_GPIO1_INT_8822B BIT(13)
-#define BIT_FS_GPIO0_INT_8822B BIT(12)
-#define BIT_FS_HCI_SUS_INT_8822B BIT(11)
-#define BIT_FS_HCI_RES_INT_8822B BIT(10)
-#define BIT_FS_HCI_RESET_INT_8822B BIT(9)
-#define BIT_ACT2RECOVERY_8822B BIT(6)
-#define BIT_GEN1GEN2_SWITCH_8822B BIT(5)
-#define BIT_HCI_TXDMA_REQ_HISR_8822B BIT(4)
-#define BIT_FS_32K_LEAVE_SETTING_INT_8822B BIT(3)
-#define BIT_FS_32K_ENTER_SETTING_INT_8822B BIT(2)
-#define BIT_FS_USB_LPMRSM_INT_8822B BIT(1)
-#define BIT_FS_USB_LPMINT_INT_8822B BIT(0)
-
-/* 2 REG_HSIMR_8822B */
-#define BIT_GPIOF_INT_EN_8822B BIT(31)
-#define BIT_GPIOE_INT_EN_8822B BIT(30)
-#define BIT_GPIOD_INT_EN_8822B BIT(29)
-#define BIT_GPIOC_INT_EN_8822B BIT(28)
-#define BIT_GPIOB_INT_EN_8822B BIT(27)
-#define BIT_GPIOA_INT_EN_8822B BIT(26)
-#define BIT_GPIO9_INT_EN_8822B BIT(25)
-#define BIT_GPIO8_INT_EN_8822B BIT(24)
-#define BIT_GPIO7_INT_EN_8822B BIT(23)
-#define BIT_GPIO6_INT_EN_8822B BIT(22)
-#define BIT_GPIO5_INT_EN_8822B BIT(21)
-#define BIT_GPIO4_INT_EN_8822B BIT(20)
-#define BIT_GPIO3_INT_EN_8822B BIT(19)
-#define BIT_GPIO2_INT_EN_V1_8822B BIT(16)
-#define BIT_GPIO1_INT_EN_8822B BIT(17)
-#define BIT_GPIO0_INT_EN_8822B BIT(16)
-#define BIT_PDNINT_EN_8822B BIT(7)
-#define BIT_RON_INT_EN_8822B BIT(6)
-#define BIT_SPS_OCP_INT_EN_8822B BIT(5)
-#define BIT_GPIO15_0_INT_EN_8822B BIT(0)
-
-/* 2 REG_HSISR_8822B */
-#define BIT_GPIOF_INT_8822B BIT(31)
-#define BIT_GPIOE_INT_8822B BIT(30)
-#define BIT_GPIOD_INT_8822B BIT(29)
-#define BIT_GPIOC_INT_8822B BIT(28)
-#define BIT_GPIOB_INT_8822B BIT(27)
-#define BIT_GPIOA_INT_8822B BIT(26)
-#define BIT_GPIO9_INT_8822B BIT(25)
-#define BIT_GPIO8_INT_8822B BIT(24)
-#define BIT_GPIO7_INT_8822B BIT(23)
-#define BIT_GPIO6_INT_8822B BIT(22)
-#define BIT_GPIO5_INT_8822B BIT(21)
-#define BIT_GPIO4_INT_8822B BIT(20)
-#define BIT_GPIO3_INT_8822B BIT(19)
-#define BIT_GPIO2_INT_V1_8822B BIT(16)
-#define BIT_GPIO1_INT_8822B BIT(17)
-#define BIT_GPIO0_INT_8822B BIT(16)
-#define BIT_PDNINT_8822B BIT(7)
-#define BIT_RON_INT_8822B BIT(6)
-#define BIT_SPS_OCP_INT_8822B BIT(5)
-#define BIT_GPIO15_0_INT_8822B BIT(0)
-
-/* 2 REG_GPIO_EXT_CTRL_8822B */
-
-#define BIT_SHIFT_GPIO_MOD_15_TO_8_8822B 24
-#define BIT_MASK_GPIO_MOD_15_TO_8_8822B 0xff
-#define BIT_GPIO_MOD_15_TO_8_8822B(x)                                          \
-	(((x) & BIT_MASK_GPIO_MOD_15_TO_8_8822B)                               \
-	 << BIT_SHIFT_GPIO_MOD_15_TO_8_8822B)
-#define BIT_GET_GPIO_MOD_15_TO_8_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_GPIO_MOD_15_TO_8_8822B) &                           \
-	 BIT_MASK_GPIO_MOD_15_TO_8_8822B)
-
-#define BIT_SHIFT_GPIO_IO_SEL_15_TO_8_8822B 16
-#define BIT_MASK_GPIO_IO_SEL_15_TO_8_8822B 0xff
-#define BIT_GPIO_IO_SEL_15_TO_8_8822B(x)                                       \
-	(((x) & BIT_MASK_GPIO_IO_SEL_15_TO_8_8822B)                            \
-	 << BIT_SHIFT_GPIO_IO_SEL_15_TO_8_8822B)
-#define BIT_GET_GPIO_IO_SEL_15_TO_8_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_GPIO_IO_SEL_15_TO_8_8822B) &                        \
-	 BIT_MASK_GPIO_IO_SEL_15_TO_8_8822B)
-
-#define BIT_SHIFT_GPIO_OUT_15_TO_8_8822B 8
-#define BIT_MASK_GPIO_OUT_15_TO_8_8822B 0xff
-#define BIT_GPIO_OUT_15_TO_8_8822B(x)                                          \
-	(((x) & BIT_MASK_GPIO_OUT_15_TO_8_8822B)                               \
-	 << BIT_SHIFT_GPIO_OUT_15_TO_8_8822B)
-#define BIT_GET_GPIO_OUT_15_TO_8_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_GPIO_OUT_15_TO_8_8822B) &                           \
-	 BIT_MASK_GPIO_OUT_15_TO_8_8822B)
-
-#define BIT_SHIFT_GPIO_IN_15_TO_8_8822B 0
-#define BIT_MASK_GPIO_IN_15_TO_8_8822B 0xff
-#define BIT_GPIO_IN_15_TO_8_8822B(x)                                           \
-	(((x) & BIT_MASK_GPIO_IN_15_TO_8_8822B)                                \
-	 << BIT_SHIFT_GPIO_IN_15_TO_8_8822B)
-#define BIT_GET_GPIO_IN_15_TO_8_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_GPIO_IN_15_TO_8_8822B) &                            \
-	 BIT_MASK_GPIO_IN_15_TO_8_8822B)
-
-/* 2 REG_PAD_CTRL1_8822B */
-#define BIT_PAPE_WLBT_SEL_8822B BIT(29)
-#define BIT_LNAON_WLBT_SEL_8822B BIT(28)
-#define BIT_BTGP_GPG3_FEN_8822B BIT(26)
-#define BIT_BTGP_GPG2_FEN_8822B BIT(25)
-#define BIT_BTGP_JTAG_EN_8822B BIT(24)
-#define BIT_XTAL_CLK_EXTARNAL_EN_8822B BIT(23)
-#define BIT_BTGP_UART0_EN_8822B BIT(22)
-#define BIT_BTGP_UART1_EN_8822B BIT(21)
-#define BIT_BTGP_SPI_EN_8822B BIT(20)
-#define BIT_BTGP_GPIO_E2_8822B BIT(19)
-#define BIT_BTGP_GPIO_EN_8822B BIT(18)
-
-#define BIT_SHIFT_BTGP_GPIO_SL_8822B 16
-#define BIT_MASK_BTGP_GPIO_SL_8822B 0x3
-#define BIT_BTGP_GPIO_SL_8822B(x)                                              \
-	(((x) & BIT_MASK_BTGP_GPIO_SL_8822B) << BIT_SHIFT_BTGP_GPIO_SL_8822B)
-#define BIT_GET_BTGP_GPIO_SL_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BTGP_GPIO_SL_8822B) & BIT_MASK_BTGP_GPIO_SL_8822B)
-
-#define BIT_PAD_SDIO_SR_8822B BIT(14)
-#define BIT_GPIO14_OUTPUT_PL_8822B BIT(13)
-#define BIT_HOST_WAKE_PAD_PULL_EN_8822B BIT(12)
-#define BIT_HOST_WAKE_PAD_SL_8822B BIT(11)
-#define BIT_PAD_LNAON_SR_8822B BIT(10)
-#define BIT_PAD_LNAON_E2_8822B BIT(9)
-#define BIT_SW_LNAON_G_SEL_DATA_8822B BIT(8)
-#define BIT_SW_LNAON_A_SEL_DATA_8822B BIT(7)
-#define BIT_PAD_PAPE_SR_8822B BIT(6)
-#define BIT_PAD_PAPE_E2_8822B BIT(5)
-#define BIT_SW_PAPE_G_SEL_DATA_8822B BIT(4)
-#define BIT_SW_PAPE_A_SEL_DATA_8822B BIT(3)
-#define BIT_PAD_DPDT_SR_8822B BIT(2)
-#define BIT_PAD_DPDT_PAD_E2_8822B BIT(1)
-#define BIT_SW_DPDT_SEL_DATA_8822B BIT(0)
-
-/* 2 REG_WL_BT_PWR_CTRL_8822B */
-#define BIT_ISO_BD2PP_8822B BIT(31)
-#define BIT_LDOV12B_EN_8822B BIT(30)
-#define BIT_CKEN_BTGPS_8822B BIT(29)
-#define BIT_FEN_BTGPS_8822B BIT(28)
-#define BIT_BTCPU_BOOTSEL_8822B BIT(27)
-#define BIT_SPI_SPEEDUP_8822B BIT(26)
-#define BIT_DEVWAKE_PAD_TYPE_SEL_8822B BIT(24)
-#define BIT_CLKREQ_PAD_TYPE_SEL_8822B BIT(23)
-#define BIT_ISO_BTPON2PP_8822B BIT(22)
-#define BIT_BT_HWROF_EN_8822B BIT(19)
-#define BIT_BT_FUNC_EN_8822B BIT(18)
-#define BIT_BT_HWPDN_SL_8822B BIT(17)
-#define BIT_BT_DISN_EN_8822B BIT(16)
-#define BIT_BT_PDN_PULL_EN_8822B BIT(15)
-#define BIT_WL_PDN_PULL_EN_8822B BIT(14)
-#define BIT_EXTERNAL_REQUEST_PL_8822B BIT(13)
-#define BIT_GPIO0_2_3_PULL_LOW_EN_8822B BIT(12)
-#define BIT_ISO_BA2PP_8822B BIT(11)
-#define BIT_BT_AFE_LDO_EN_8822B BIT(10)
-#define BIT_BT_AFE_PLL_EN_8822B BIT(9)
-#define BIT_BT_DIG_CLK_EN_8822B BIT(8)
-#define BIT_WL_DRV_EXIST_IDX_8822B BIT(5)
-#define BIT_DOP_EHPAD_8822B BIT(4)
-#define BIT_WL_HWROF_EN_8822B BIT(3)
-#define BIT_WL_FUNC_EN_8822B BIT(2)
-#define BIT_WL_HWPDN_SL_8822B BIT(1)
-#define BIT_WL_HWPDN_EN_8822B BIT(0)
-
-/* 2 REG_SDM_DEBUG_8822B */
-
-#define BIT_SHIFT_WLCLK_PHASE_8822B 0
-#define BIT_MASK_WLCLK_PHASE_8822B 0x1f
-#define BIT_WLCLK_PHASE_8822B(x)                                               \
-	(((x) & BIT_MASK_WLCLK_PHASE_8822B) << BIT_SHIFT_WLCLK_PHASE_8822B)
-#define BIT_GET_WLCLK_PHASE_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_WLCLK_PHASE_8822B) & BIT_MASK_WLCLK_PHASE_8822B)
-
-/* 2 REG_SYS_SDIO_CTRL_8822B */
-#define BIT_DBG_GNT_WL_BT_8822B BIT(27)
-#define BIT_LTE_MUX_CTRL_PATH_8822B BIT(26)
-#define BIT_LTE_COEX_UART_8822B BIT(25)
-#define BIT_3W_LTE_WL_GPIO_8822B BIT(24)
-#define BIT_SDIO_INT_POLARITY_8822B BIT(19)
-#define BIT_SDIO_INT_8822B BIT(18)
-#define BIT_SDIO_OFF_EN_8822B BIT(17)
-#define BIT_SDIO_ON_EN_8822B BIT(16)
-#define BIT_PCIE_WAIT_TIMEOUT_EVENT_8822B BIT(10)
-#define BIT_PCIE_WAIT_TIME_8822B BIT(9)
-#define BIT_MPCIE_REFCLK_XTAL_SEL_8822B BIT(8)
-
-/* 2 REG_HCI_OPT_CTRL_8822B */
-
-#define BIT_SHIFT_TSFT_SEL_8822B 29
-#define BIT_MASK_TSFT_SEL_8822B 0x7
-#define BIT_TSFT_SEL_8822B(x)                                                  \
-	(((x) & BIT_MASK_TSFT_SEL_8822B) << BIT_SHIFT_TSFT_SEL_8822B)
-#define BIT_GET_TSFT_SEL_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_TSFT_SEL_8822B) & BIT_MASK_TSFT_SEL_8822B)
-
-#define BIT_USB_HOST_PWR_OFF_EN_8822B BIT(12)
-#define BIT_SYM_LPS_BLOCK_EN_8822B BIT(11)
-#define BIT_USB_LPM_ACT_EN_8822B BIT(10)
-#define BIT_USB_LPM_NY_8822B BIT(9)
-#define BIT_USB_SUS_DIS_8822B BIT(8)
-
-#define BIT_SHIFT_SDIO_PAD_E_8822B 5
-#define BIT_MASK_SDIO_PAD_E_8822B 0x7
-#define BIT_SDIO_PAD_E_8822B(x)                                                \
-	(((x) & BIT_MASK_SDIO_PAD_E_8822B) << BIT_SHIFT_SDIO_PAD_E_8822B)
-#define BIT_GET_SDIO_PAD_E_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_SDIO_PAD_E_8822B) & BIT_MASK_SDIO_PAD_E_8822B)
-
-#define BIT_USB_LPPLL_EN_8822B BIT(4)
-#define BIT_ROP_SW15_8822B BIT(2)
-#define BIT_PCI_CKRDY_OPT_8822B BIT(1)
-#define BIT_PCI_VAUX_EN_8822B BIT(0)
-
-/* 2 REG_AFE_CTRL4_8822B */
-
-/* 2 REG_LDO_SWR_CTRL_8822B */
-#define BIT_ZCD_HW_AUTO_EN_8822B BIT(27)
-#define BIT_ZCD_REGSEL_8822B BIT(26)
-
-#define BIT_SHIFT_AUTO_ZCD_IN_CODE_8822B 21
-#define BIT_MASK_AUTO_ZCD_IN_CODE_8822B 0x1f
-#define BIT_AUTO_ZCD_IN_CODE_8822B(x)                                          \
-	(((x) & BIT_MASK_AUTO_ZCD_IN_CODE_8822B)                               \
-	 << BIT_SHIFT_AUTO_ZCD_IN_CODE_8822B)
-#define BIT_GET_AUTO_ZCD_IN_CODE_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_AUTO_ZCD_IN_CODE_8822B) &                           \
-	 BIT_MASK_AUTO_ZCD_IN_CODE_8822B)
-
-#define BIT_SHIFT_ZCD_CODE_IN_L_8822B 16
-#define BIT_MASK_ZCD_CODE_IN_L_8822B 0x1f
-#define BIT_ZCD_CODE_IN_L_8822B(x)                                             \
-	(((x) & BIT_MASK_ZCD_CODE_IN_L_8822B) << BIT_SHIFT_ZCD_CODE_IN_L_8822B)
-#define BIT_GET_ZCD_CODE_IN_L_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_ZCD_CODE_IN_L_8822B) & BIT_MASK_ZCD_CODE_IN_L_8822B)
-
-#define BIT_SHIFT_LDO_HV5_DUMMY_8822B 14
-#define BIT_MASK_LDO_HV5_DUMMY_8822B 0x3
-#define BIT_LDO_HV5_DUMMY_8822B(x)                                             \
-	(((x) & BIT_MASK_LDO_HV5_DUMMY_8822B) << BIT_SHIFT_LDO_HV5_DUMMY_8822B)
-#define BIT_GET_LDO_HV5_DUMMY_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_LDO_HV5_DUMMY_8822B) & BIT_MASK_LDO_HV5_DUMMY_8822B)
-
-#define BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1_8822B 12
-#define BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1_8822B 0x3
-#define BIT_REG_VTUNE33_BIT0_TO_BIT1_8822B(x)                                  \
-	(((x) & BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1_8822B)                       \
-	 << BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1_8822B)
-#define BIT_GET_REG_VTUNE33_BIT0_TO_BIT1_8822B(x)                              \
-	(((x) >> BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1_8822B) &                   \
-	 BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1_8822B)
-
-#define BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1_8822B 10
-#define BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1_8822B 0x3
-#define BIT_REG_STANDBY33_BIT0_TO_BIT1_8822B(x)                                \
-	(((x) & BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1_8822B)                     \
-	 << BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1_8822B)
-#define BIT_GET_REG_STANDBY33_BIT0_TO_BIT1_8822B(x)                            \
-	(((x) >> BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1_8822B) &                 \
-	 BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1_8822B)
-
-#define BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1_8822B 8
-#define BIT_MASK_REG_LOAD33_BIT0_TO_BIT1_8822B 0x3
-#define BIT_REG_LOAD33_BIT0_TO_BIT1_8822B(x)                                   \
-	(((x) & BIT_MASK_REG_LOAD33_BIT0_TO_BIT1_8822B)                        \
-	 << BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1_8822B)
-#define BIT_GET_REG_LOAD33_BIT0_TO_BIT1_8822B(x)                               \
-	(((x) >> BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1_8822B) &                    \
-	 BIT_MASK_REG_LOAD33_BIT0_TO_BIT1_8822B)
-
-#define BIT_REG_BYPASS_L_8822B BIT(7)
-#define BIT_REG_LDOF_L_8822B BIT(6)
-#define BIT_REG_TYPE_L_V1_8822B BIT(5)
-#define BIT_ARENB_L_8822B BIT(3)
-
-#define BIT_SHIFT_CFC_L_8822B 1
-#define BIT_MASK_CFC_L_8822B 0x3
-#define BIT_CFC_L_8822B(x)                                                     \
-	(((x) & BIT_MASK_CFC_L_8822B) << BIT_SHIFT_CFC_L_8822B)
-#define BIT_GET_CFC_L_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_CFC_L_8822B) & BIT_MASK_CFC_L_8822B)
-
-#define BIT_REG_OCPS_L_V1_8822B BIT(0)
-
-/* 2 REG_MCUFW_CTRL_8822B */
-
-#define BIT_SHIFT_RPWM_8822B 24
-#define BIT_MASK_RPWM_8822B 0xff
-#define BIT_RPWM_8822B(x) (((x) & BIT_MASK_RPWM_8822B) << BIT_SHIFT_RPWM_8822B)
-#define BIT_GET_RPWM_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_RPWM_8822B) & BIT_MASK_RPWM_8822B)
-
-#define BIT_ANA_PORT_EN_8822B BIT(22)
-#define BIT_MAC_PORT_EN_8822B BIT(21)
-#define BIT_BOOT_FSPI_EN_8822B BIT(20)
-#define BIT_ROM_DLEN_8822B BIT(19)
-
-#define BIT_SHIFT_ROM_PGE_8822B 16
-#define BIT_MASK_ROM_PGE_8822B 0x7
-#define BIT_ROM_PGE_8822B(x)                                                   \
-	(((x) & BIT_MASK_ROM_PGE_8822B) << BIT_SHIFT_ROM_PGE_8822B)
-#define BIT_GET_ROM_PGE_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_ROM_PGE_8822B) & BIT_MASK_ROM_PGE_8822B)
-
-#define BIT_FW_INIT_RDY_8822B BIT(15)
-#define BIT_FW_DW_RDY_8822B BIT(14)
-
-#define BIT_SHIFT_CPU_CLK_SEL_8822B 12
-#define BIT_MASK_CPU_CLK_SEL_8822B 0x3
-#define BIT_CPU_CLK_SEL_8822B(x)                                               \
-	(((x) & BIT_MASK_CPU_CLK_SEL_8822B) << BIT_SHIFT_CPU_CLK_SEL_8822B)
-#define BIT_GET_CPU_CLK_SEL_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_CPU_CLK_SEL_8822B) & BIT_MASK_CPU_CLK_SEL_8822B)
-
-#define BIT_CCLK_CHG_MASK_8822B BIT(11)
-#define BIT_EMEM__TXBUF_CHKSUM_OK_8822B BIT(10)
-#define BIT_EMEM_TXBUF_DW_RDY_8822B BIT(9)
-#define BIT_EMEM_CHKSUM_OK_8822B BIT(8)
-#define BIT_EMEM_DW_OK_8822B BIT(7)
-#define BIT_DMEM_CHKSUM_OK_8822B BIT(6)
-#define BIT_DMEM_DW_OK_8822B BIT(5)
-#define BIT_IMEM_CHKSUM_OK_8822B BIT(4)
-#define BIT_IMEM_DW_OK_8822B BIT(3)
-#define BIT_IMEM_BOOT_LOAD_CHKSUM_OK_8822B BIT(2)
-#define BIT_IMEM_BOOT_LOAD_DW_OK_8822B BIT(1)
-#define BIT_MCUFWDL_EN_8822B BIT(0)
-
-/* 2 REG_MCU_TST_CFG_8822B */
-
-#define BIT_SHIFT_LBKTST_8822B 0
-#define BIT_MASK_LBKTST_8822B 0xffff
-#define BIT_LBKTST_8822B(x)                                                    \
-	(((x) & BIT_MASK_LBKTST_8822B) << BIT_SHIFT_LBKTST_8822B)
-#define BIT_GET_LBKTST_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_LBKTST_8822B) & BIT_MASK_LBKTST_8822B)
-
-/* 2 REG_HMEBOX_E0_E1_8822B */
-
-#define BIT_SHIFT_HOST_MSG_E1_8822B 16
-#define BIT_MASK_HOST_MSG_E1_8822B 0xffff
-#define BIT_HOST_MSG_E1_8822B(x)                                               \
-	(((x) & BIT_MASK_HOST_MSG_E1_8822B) << BIT_SHIFT_HOST_MSG_E1_8822B)
-#define BIT_GET_HOST_MSG_E1_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HOST_MSG_E1_8822B) & BIT_MASK_HOST_MSG_E1_8822B)
-
-#define BIT_SHIFT_HOST_MSG_E0_8822B 0
-#define BIT_MASK_HOST_MSG_E0_8822B 0xffff
-#define BIT_HOST_MSG_E0_8822B(x)                                               \
-	(((x) & BIT_MASK_HOST_MSG_E0_8822B) << BIT_SHIFT_HOST_MSG_E0_8822B)
-#define BIT_GET_HOST_MSG_E0_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HOST_MSG_E0_8822B) & BIT_MASK_HOST_MSG_E0_8822B)
-
-/* 2 REG_HMEBOX_E2_E3_8822B */
-
-#define BIT_SHIFT_HOST_MSG_E3_8822B 16
-#define BIT_MASK_HOST_MSG_E3_8822B 0xffff
-#define BIT_HOST_MSG_E3_8822B(x)                                               \
-	(((x) & BIT_MASK_HOST_MSG_E3_8822B) << BIT_SHIFT_HOST_MSG_E3_8822B)
-#define BIT_GET_HOST_MSG_E3_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HOST_MSG_E3_8822B) & BIT_MASK_HOST_MSG_E3_8822B)
-
-#define BIT_SHIFT_HOST_MSG_E2_8822B 0
-#define BIT_MASK_HOST_MSG_E2_8822B 0xffff
-#define BIT_HOST_MSG_E2_8822B(x)                                               \
-	(((x) & BIT_MASK_HOST_MSG_E2_8822B) << BIT_SHIFT_HOST_MSG_E2_8822B)
-#define BIT_GET_HOST_MSG_E2_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HOST_MSG_E2_8822B) & BIT_MASK_HOST_MSG_E2_8822B)
-
-/* 2 REG_WLLPS_CTRL_8822B */
-#define BIT_WLLPSOP_EABM_8822B BIT(31)
-#define BIT_WLLPSOP_ACKF_8822B BIT(30)
-#define BIT_WLLPSOP_DLDM_8822B BIT(29)
-#define BIT_WLLPSOP_ESWR_8822B BIT(28)
-#define BIT_WLLPSOP_PWMM_8822B BIT(27)
-#define BIT_WLLPSOP_EECK_8822B BIT(26)
-#define BIT_WLLPSOP_WLMACOFF_8822B BIT(25)
-#define BIT_WLLPSOP_EXTAL_8822B BIT(24)
-#define BIT_WL_SYNPON_VOLTSPDN_8822B BIT(23)
-#define BIT_WLLPSOP_WLBBOFF_8822B BIT(22)
-#define BIT_WLLPSOP_WLMEM_DS_8822B BIT(21)
-
-#define BIT_SHIFT_LPLDH12_VADJ_STEP_DN_8822B 12
-#define BIT_MASK_LPLDH12_VADJ_STEP_DN_8822B 0xf
-#define BIT_LPLDH12_VADJ_STEP_DN_8822B(x)                                      \
-	(((x) & BIT_MASK_LPLDH12_VADJ_STEP_DN_8822B)                           \
-	 << BIT_SHIFT_LPLDH12_VADJ_STEP_DN_8822B)
-#define BIT_GET_LPLDH12_VADJ_STEP_DN_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_LPLDH12_VADJ_STEP_DN_8822B) &                       \
-	 BIT_MASK_LPLDH12_VADJ_STEP_DN_8822B)
-
-#define BIT_SHIFT_V15ADJ_L1_STEP_DN_8822B 8
-#define BIT_MASK_V15ADJ_L1_STEP_DN_8822B 0x7
-#define BIT_V15ADJ_L1_STEP_DN_8822B(x)                                         \
-	(((x) & BIT_MASK_V15ADJ_L1_STEP_DN_8822B)                              \
-	 << BIT_SHIFT_V15ADJ_L1_STEP_DN_8822B)
-#define BIT_GET_V15ADJ_L1_STEP_DN_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_V15ADJ_L1_STEP_DN_8822B) &                          \
-	 BIT_MASK_V15ADJ_L1_STEP_DN_8822B)
-
-#define BIT_REGU_32K_CLK_EN_8822B BIT(1)
-#define BIT_WL_LPS_EN_8822B BIT(0)
-
-/* 2 REG_AFE_CTRL5_8822B */
-#define BIT_BB_DBG_SEL_AFE_SDM_BIT0_8822B BIT(31)
-#define BIT_ORDER_SDM_8822B BIT(30)
-#define BIT_RFE_SEL_SDM_8822B BIT(29)
-
-#define BIT_SHIFT_REF_SEL_8822B 25
-#define BIT_MASK_REF_SEL_8822B 0xf
-#define BIT_REF_SEL_8822B(x)                                                   \
-	(((x) & BIT_MASK_REF_SEL_8822B) << BIT_SHIFT_REF_SEL_8822B)
-#define BIT_GET_REF_SEL_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_REF_SEL_8822B) & BIT_MASK_REF_SEL_8822B)
-
-#define BIT_SHIFT_F0F_SDM_8822B 12
-#define BIT_MASK_F0F_SDM_8822B 0x1fff
-#define BIT_F0F_SDM_8822B(x)                                                   \
-	(((x) & BIT_MASK_F0F_SDM_8822B) << BIT_SHIFT_F0F_SDM_8822B)
-#define BIT_GET_F0F_SDM_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_F0F_SDM_8822B) & BIT_MASK_F0F_SDM_8822B)
-
-#define BIT_SHIFT_F0N_SDM_8822B 9
-#define BIT_MASK_F0N_SDM_8822B 0x7
-#define BIT_F0N_SDM_8822B(x)                                                   \
-	(((x) & BIT_MASK_F0N_SDM_8822B) << BIT_SHIFT_F0N_SDM_8822B)
-#define BIT_GET_F0N_SDM_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_F0N_SDM_8822B) & BIT_MASK_F0N_SDM_8822B)
-
-#define BIT_SHIFT_DIVN_SDM_8822B 3
-#define BIT_MASK_DIVN_SDM_8822B 0x3f
-#define BIT_DIVN_SDM_8822B(x)                                                  \
-	(((x) & BIT_MASK_DIVN_SDM_8822B) << BIT_SHIFT_DIVN_SDM_8822B)
-#define BIT_GET_DIVN_SDM_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DIVN_SDM_8822B) & BIT_MASK_DIVN_SDM_8822B)
-
-/* 2 REG_GPIO_DEBOUNCE_CTRL_8822B */
-#define BIT_WLGP_DBC1EN_8822B BIT(15)
-
-#define BIT_SHIFT_WLGP_DBC1_8822B 8
-#define BIT_MASK_WLGP_DBC1_8822B 0xf
-#define BIT_WLGP_DBC1_8822B(x)                                                 \
-	(((x) & BIT_MASK_WLGP_DBC1_8822B) << BIT_SHIFT_WLGP_DBC1_8822B)
-#define BIT_GET_WLGP_DBC1_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_WLGP_DBC1_8822B) & BIT_MASK_WLGP_DBC1_8822B)
-
-#define BIT_WLGP_DBC0EN_8822B BIT(7)
-
-#define BIT_SHIFT_WLGP_DBC0_8822B 0
-#define BIT_MASK_WLGP_DBC0_8822B 0xf
-#define BIT_WLGP_DBC0_8822B(x)                                                 \
-	(((x) & BIT_MASK_WLGP_DBC0_8822B) << BIT_SHIFT_WLGP_DBC0_8822B)
-#define BIT_GET_WLGP_DBC0_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_WLGP_DBC0_8822B) & BIT_MASK_WLGP_DBC0_8822B)
-
-/* 2 REG_RPWM2_8822B */
-
-#define BIT_SHIFT_RPWM2_8822B 16
-#define BIT_MASK_RPWM2_8822B 0xffff
-#define BIT_RPWM2_8822B(x)                                                     \
-	(((x) & BIT_MASK_RPWM2_8822B) << BIT_SHIFT_RPWM2_8822B)
-#define BIT_GET_RPWM2_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_RPWM2_8822B) & BIT_MASK_RPWM2_8822B)
-
-/* 2 REG_SYSON_FSM_MON_8822B */
-
-#define BIT_SHIFT_FSM_MON_SEL_8822B 24
-#define BIT_MASK_FSM_MON_SEL_8822B 0x7
-#define BIT_FSM_MON_SEL_8822B(x)                                               \
-	(((x) & BIT_MASK_FSM_MON_SEL_8822B) << BIT_SHIFT_FSM_MON_SEL_8822B)
-#define BIT_GET_FSM_MON_SEL_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_FSM_MON_SEL_8822B) & BIT_MASK_FSM_MON_SEL_8822B)
-
-#define BIT_DOP_ELDO_8822B BIT(23)
-#define BIT_FSM_MON_UPD_8822B BIT(15)
-
-#define BIT_SHIFT_FSM_PAR_8822B 0
-#define BIT_MASK_FSM_PAR_8822B 0x7fff
-#define BIT_FSM_PAR_8822B(x)                                                   \
-	(((x) & BIT_MASK_FSM_PAR_8822B) << BIT_SHIFT_FSM_PAR_8822B)
-#define BIT_GET_FSM_PAR_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FSM_PAR_8822B) & BIT_MASK_FSM_PAR_8822B)
-
-/* 2 REG_AFE_CTRL6_8822B */
-
-#define BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B 0
-#define BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B 0x7
-#define BIT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B(x)                                 \
-	(((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B)                      \
-	 << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B)
-#define BIT_GET_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B(x)                             \
-	(((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B) &                  \
-	 BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1_8822B)
-
-/* 2 REG_PMC_DBG_CTRL1_8822B */
-#define BIT_BT_INT_EN_8822B BIT(31)
-
-#define BIT_SHIFT_RD_WR_WIFI_BT_INFO_8822B 16
-#define BIT_MASK_RD_WR_WIFI_BT_INFO_8822B 0x7fff
-#define BIT_RD_WR_WIFI_BT_INFO_8822B(x)                                        \
-	(((x) & BIT_MASK_RD_WR_WIFI_BT_INFO_8822B)                             \
-	 << BIT_SHIFT_RD_WR_WIFI_BT_INFO_8822B)
-#define BIT_GET_RD_WR_WIFI_BT_INFO_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_RD_WR_WIFI_BT_INFO_8822B) &                         \
-	 BIT_MASK_RD_WR_WIFI_BT_INFO_8822B)
-
-#define BIT_PMC_WR_OVF_8822B BIT(8)
-
-#define BIT_SHIFT_WLPMC_ERRINT_8822B 0
-#define BIT_MASK_WLPMC_ERRINT_8822B 0xff
-#define BIT_WLPMC_ERRINT_8822B(x)                                              \
-	(((x) & BIT_MASK_WLPMC_ERRINT_8822B) << BIT_SHIFT_WLPMC_ERRINT_8822B)
-#define BIT_GET_WLPMC_ERRINT_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_WLPMC_ERRINT_8822B) & BIT_MASK_WLPMC_ERRINT_8822B)
-
-/* 2 REG_AFE_CTRL7_8822B */
-
-#define BIT_SHIFT_SEL_V_8822B 30
-#define BIT_MASK_SEL_V_8822B 0x3
-#define BIT_SEL_V_8822B(x)                                                     \
-	(((x) & BIT_MASK_SEL_V_8822B) << BIT_SHIFT_SEL_V_8822B)
-#define BIT_GET_SEL_V_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_SEL_V_8822B) & BIT_MASK_SEL_V_8822B)
-
-#define BIT_SEL_LDO_PC_8822B BIT(29)
-
-#define BIT_SHIFT_CK_MON_SEL_8822B 26
-#define BIT_MASK_CK_MON_SEL_8822B 0x7
-#define BIT_CK_MON_SEL_8822B(x)                                                \
-	(((x) & BIT_MASK_CK_MON_SEL_8822B) << BIT_SHIFT_CK_MON_SEL_8822B)
-#define BIT_GET_CK_MON_SEL_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_CK_MON_SEL_8822B) & BIT_MASK_CK_MON_SEL_8822B)
-
-#define BIT_CK_MON_EN_8822B BIT(25)
-#define BIT_FREF_EDGE_8822B BIT(24)
-#define BIT_CK320M_EN_8822B BIT(23)
-#define BIT_CK_5M_EN_8822B BIT(22)
-#define BIT_TESTEN_8822B BIT(21)
-
-/* 2 REG_HIMR0_8822B */
-#define BIT_TIMEOUT_INTERRUPT2_MASK_8822B BIT(31)
-#define BIT_TIMEOUT_INTERRUTP1_MASK_8822B BIT(30)
-#define BIT_PSTIMEOUT_MSK_8822B BIT(29)
-#define BIT_GTINT4_MSK_8822B BIT(28)
-#define BIT_GTINT3_MSK_8822B BIT(27)
-#define BIT_TXBCN0ERR_MSK_8822B BIT(26)
-#define BIT_TXBCN0OK_MSK_8822B BIT(25)
-#define BIT_TSF_BIT32_TOGGLE_MSK_8822B BIT(24)
-#define BIT_BCNDMAINT0_MSK_8822B BIT(20)
-#define BIT_BCNDERR0_MSK_8822B BIT(16)
-#define BIT_HSISR_IND_ON_INT_MSK_8822B BIT(15)
-#define BIT_BCNDMAINT_E_MSK_8822B BIT(14)
-#define BIT_CTWEND_MSK_8822B BIT(12)
-#define BIT_HISR1_IND_MSK_8822B BIT(11)
-#define BIT_C2HCMD_MSK_8822B BIT(10)
-#define BIT_CPWM2_MSK_8822B BIT(9)
-#define BIT_CPWM_MSK_8822B BIT(8)
-#define BIT_HIGHDOK_MSK_8822B BIT(7)
-#define BIT_MGTDOK_MSK_8822B BIT(6)
-#define BIT_BKDOK_MSK_8822B BIT(5)
-#define BIT_BEDOK_MSK_8822B BIT(4)
-#define BIT_VIDOK_MSK_8822B BIT(3)
-#define BIT_VODOK_MSK_8822B BIT(2)
-#define BIT_RDU_MSK_8822B BIT(1)
-#define BIT_RXOK_MSK_8822B BIT(0)
-
-/* 2 REG_HISR0_8822B */
-#define BIT_TIMEOUT_INTERRUPT2_8822B BIT(31)
-#define BIT_TIMEOUT_INTERRUTP1_8822B BIT(30)
-#define BIT_PSTIMEOUT_8822B BIT(29)
-#define BIT_GTINT4_8822B BIT(28)
-#define BIT_GTINT3_8822B BIT(27)
-#define BIT_TXBCN0ERR_8822B BIT(26)
-#define BIT_TXBCN0OK_8822B BIT(25)
-#define BIT_TSF_BIT32_TOGGLE_8822B BIT(24)
-#define BIT_BCNDMAINT0_8822B BIT(20)
-#define BIT_BCNDERR0_8822B BIT(16)
-#define BIT_HSISR_IND_ON_INT_8822B BIT(15)
-#define BIT_BCNDMAINT_E_8822B BIT(14)
-#define BIT_CTWEND_8822B BIT(12)
-#define BIT_HISR1_IND_INT_8822B BIT(11)
-#define BIT_C2HCMD_8822B BIT(10)
-#define BIT_CPWM2_8822B BIT(9)
-#define BIT_CPWM_8822B BIT(8)
-#define BIT_HIGHDOK_8822B BIT(7)
-#define BIT_MGTDOK_8822B BIT(6)
-#define BIT_BKDOK_8822B BIT(5)
-#define BIT_BEDOK_8822B BIT(4)
-#define BIT_VIDOK_8822B BIT(3)
-#define BIT_VODOK_8822B BIT(2)
-#define BIT_RDU_8822B BIT(1)
-#define BIT_RXOK_8822B BIT(0)
-
-/* 2 REG_HIMR1_8822B */
-#define BIT_TXFIFO_TH_INT_8822B BIT(30)
-#define BIT_BTON_STS_UPDATE_MASK_8822B BIT(29)
-#define BIT_MCU_ERR_MASK_8822B BIT(28)
-#define BIT_BCNDMAINT7__MSK_8822B BIT(27)
-#define BIT_BCNDMAINT6__MSK_8822B BIT(26)
-#define BIT_BCNDMAINT5__MSK_8822B BIT(25)
-#define BIT_BCNDMAINT4__MSK_8822B BIT(24)
-#define BIT_BCNDMAINT3_MSK_8822B BIT(23)
-#define BIT_BCNDMAINT2_MSK_8822B BIT(22)
-#define BIT_BCNDMAINT1_MSK_8822B BIT(21)
-#define BIT_BCNDERR7_MSK_8822B BIT(20)
-#define BIT_BCNDERR6_MSK_8822B BIT(19)
-#define BIT_BCNDERR5_MSK_8822B BIT(18)
-#define BIT_BCNDERR4_MSK_8822B BIT(17)
-#define BIT_BCNDERR3_MSK_8822B BIT(16)
-#define BIT_BCNDERR2_MSK_8822B BIT(15)
-#define BIT_BCNDERR1_MSK_8822B BIT(14)
-#define BIT_ATIMEND_E_MSK_8822B BIT(13)
-#define BIT_ATIMEND__MSK_8822B BIT(12)
-#define BIT_TXERR_MSK_8822B BIT(11)
-#define BIT_RXERR_MSK_8822B BIT(10)
-#define BIT_TXFOVW_MSK_8822B BIT(9)
-#define BIT_FOVW_MSK_8822B BIT(8)
-#define BIT_CPU_MGQ_TXDONE_MSK_8822B BIT(5)
-#define BIT_PS_TIMER_C_MSK_8822B BIT(4)
-#define BIT_PS_TIMER_B_MSK_8822B BIT(3)
-#define BIT_PS_TIMER_A_MSK_8822B BIT(2)
-#define BIT_CPUMGQ_TX_TIMER_MSK_8822B BIT(1)
-
-/* 2 REG_HISR1_8822B */
-#define BIT_TXFIFO_TH_INT_8822B BIT(30)
-#define BIT_BTON_STS_UPDATE_INT_8822B BIT(29)
-#define BIT_MCU_ERR_8822B BIT(28)
-#define BIT_BCNDMAINT7_8822B BIT(27)
-#define BIT_BCNDMAINT6_8822B BIT(26)
-#define BIT_BCNDMAINT5_8822B BIT(25)
-#define BIT_BCNDMAINT4_8822B BIT(24)
-#define BIT_BCNDMAINT3_8822B BIT(23)
-#define BIT_BCNDMAINT2_8822B BIT(22)
-#define BIT_BCNDMAINT1_8822B BIT(21)
-#define BIT_BCNDERR7_8822B BIT(20)
-#define BIT_BCNDERR6_8822B BIT(19)
-#define BIT_BCNDERR5_8822B BIT(18)
-#define BIT_BCNDERR4_8822B BIT(17)
-#define BIT_BCNDERR3_8822B BIT(16)
-#define BIT_BCNDERR2_8822B BIT(15)
-#define BIT_BCNDERR1_8822B BIT(14)
-#define BIT_ATIMEND_E_8822B BIT(13)
-#define BIT_ATIMEND_8822B BIT(12)
-#define BIT_TXERR_INT_8822B BIT(11)
-#define BIT_RXERR_INT_8822B BIT(10)
-#define BIT_TXFOVW_8822B BIT(9)
-#define BIT_FOVW_8822B BIT(8)
-#define BIT_CPU_MGQ_TXDONE_8822B BIT(5)
-#define BIT_PS_TIMER_C_8822B BIT(4)
-#define BIT_PS_TIMER_B_8822B BIT(3)
-#define BIT_PS_TIMER_A_8822B BIT(2)
-#define BIT_CPUMGQ_TX_TIMER_8822B BIT(1)
-
-/* 2 REG_DBG_PORT_SEL_8822B */
-
-#define BIT_SHIFT_DEBUG_ST_8822B 0
-#define BIT_MASK_DEBUG_ST_8822B 0xffffffffL
-#define BIT_DEBUG_ST_8822B(x)                                                  \
-	(((x) & BIT_MASK_DEBUG_ST_8822B) << BIT_SHIFT_DEBUG_ST_8822B)
-#define BIT_GET_DEBUG_ST_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DEBUG_ST_8822B) & BIT_MASK_DEBUG_ST_8822B)
-
-/* 2 REG_PAD_CTRL2_8822B */
-#define BIT_USB3_USB2_TRANSITION_8822B BIT(20)
-
-#define BIT_SHIFT_USB23_SW_MODE_V1_8822B 18
-#define BIT_MASK_USB23_SW_MODE_V1_8822B 0x3
-#define BIT_USB23_SW_MODE_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_USB23_SW_MODE_V1_8822B)                               \
-	 << BIT_SHIFT_USB23_SW_MODE_V1_8822B)
-#define BIT_GET_USB23_SW_MODE_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_USB23_SW_MODE_V1_8822B) &                           \
-	 BIT_MASK_USB23_SW_MODE_V1_8822B)
-
-#define BIT_NO_PDN_CHIPOFF_V1_8822B BIT(17)
-#define BIT_RSM_EN_V1_8822B BIT(16)
-
-#define BIT_SHIFT_MATCH_CNT_8822B 8
-#define BIT_MASK_MATCH_CNT_8822B 0xff
-#define BIT_MATCH_CNT_8822B(x)                                                 \
-	(((x) & BIT_MASK_MATCH_CNT_8822B) << BIT_SHIFT_MATCH_CNT_8822B)
-#define BIT_GET_MATCH_CNT_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_MATCH_CNT_8822B) & BIT_MASK_MATCH_CNT_8822B)
-
-#define BIT_LD_B12V_EN_8822B BIT(7)
-#define BIT_EECS_IOSEL_V1_8822B BIT(6)
-#define BIT_EECS_DATA_O_V1_8822B BIT(5)
-#define BIT_EECS_DATA_I_V1_8822B BIT(4)
-#define BIT_EESK_IOSEL_V1_8822B BIT(2)
-#define BIT_EESK_DATA_O_V1_8822B BIT(1)
-#define BIT_EESK_DATA_I_V1_8822B BIT(0)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_PMC_DBG_CTRL2_8822B */
-
-#define BIT_SHIFT_EFUSE_BURN_GNT_8822B 24
-#define BIT_MASK_EFUSE_BURN_GNT_8822B 0xff
-#define BIT_EFUSE_BURN_GNT_8822B(x)                                            \
-	(((x) & BIT_MASK_EFUSE_BURN_GNT_8822B)                                 \
-	 << BIT_SHIFT_EFUSE_BURN_GNT_8822B)
-#define BIT_GET_EFUSE_BURN_GNT_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_EFUSE_BURN_GNT_8822B) &                             \
-	 BIT_MASK_EFUSE_BURN_GNT_8822B)
-
-#define BIT_STOP_WL_PMC_8822B BIT(9)
-#define BIT_STOP_SYM_PMC_8822B BIT(8)
-#define BIT_REG_RST_WLPMC_8822B BIT(5)
-#define BIT_REG_RST_PD12N_8822B BIT(4)
-#define BIT_SYSON_DIS_WLREG_WRMSK_8822B BIT(3)
-#define BIT_SYSON_DIS_PMCREG_WRMSK_8822B BIT(2)
-
-#define BIT_SHIFT_SYSON_REG_ARB_8822B 0
-#define BIT_MASK_SYSON_REG_ARB_8822B 0x3
-#define BIT_SYSON_REG_ARB_8822B(x)                                             \
-	(((x) & BIT_MASK_SYSON_REG_ARB_8822B) << BIT_SHIFT_SYSON_REG_ARB_8822B)
-#define BIT_GET_SYSON_REG_ARB_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_SYSON_REG_ARB_8822B) & BIT_MASK_SYSON_REG_ARB_8822B)
-
-/* 2 REG_BIST_CTRL_8822B */
-#define BIT_BIST_USB_DIS_8822B BIT(27)
-#define BIT_BIST_PCI_DIS_8822B BIT(26)
-#define BIT_BIST_BT_DIS_8822B BIT(25)
-#define BIT_BIST_WL_DIS_8822B BIT(24)
-
-#define BIT_SHIFT_BIST_RPT_SEL_8822B 16
-#define BIT_MASK_BIST_RPT_SEL_8822B 0xf
-#define BIT_BIST_RPT_SEL_8822B(x)                                              \
-	(((x) & BIT_MASK_BIST_RPT_SEL_8822B) << BIT_SHIFT_BIST_RPT_SEL_8822B)
-#define BIT_GET_BIST_RPT_SEL_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BIST_RPT_SEL_8822B) & BIT_MASK_BIST_RPT_SEL_8822B)
-
-#define BIT_BIST_RESUME_PS_8822B BIT(4)
-#define BIT_BIST_RESUME_8822B BIT(3)
-#define BIT_BIST_NORMAL_8822B BIT(2)
-#define BIT_BIST_RSTN_8822B BIT(1)
-#define BIT_BIST_CLK_EN_8822B BIT(0)
-
-/* 2 REG_BIST_RPT_8822B */
-
-#define BIT_SHIFT_MBIST_REPORT_8822B 0
-#define BIT_MASK_MBIST_REPORT_8822B 0xffffffffL
-#define BIT_MBIST_REPORT_8822B(x)                                              \
-	(((x) & BIT_MASK_MBIST_REPORT_8822B) << BIT_SHIFT_MBIST_REPORT_8822B)
-#define BIT_GET_MBIST_REPORT_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_MBIST_REPORT_8822B) & BIT_MASK_MBIST_REPORT_8822B)
-
-/* 2 REG_MEM_CTRL_8822B */
-#define BIT_UMEM_RME_8822B BIT(31)
-
-#define BIT_SHIFT_BT_SPRAM_8822B 28
-#define BIT_MASK_BT_SPRAM_8822B 0x3
-#define BIT_BT_SPRAM_8822B(x)                                                  \
-	(((x) & BIT_MASK_BT_SPRAM_8822B) << BIT_SHIFT_BT_SPRAM_8822B)
-#define BIT_GET_BT_SPRAM_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_BT_SPRAM_8822B) & BIT_MASK_BT_SPRAM_8822B)
-
-#define BIT_SHIFT_BT_ROM_8822B 24
-#define BIT_MASK_BT_ROM_8822B 0xf
-#define BIT_BT_ROM_8822B(x)                                                    \
-	(((x) & BIT_MASK_BT_ROM_8822B) << BIT_SHIFT_BT_ROM_8822B)
-#define BIT_GET_BT_ROM_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_BT_ROM_8822B) & BIT_MASK_BT_ROM_8822B)
-
-#define BIT_SHIFT_PCI_DPRAM_8822B 10
-#define BIT_MASK_PCI_DPRAM_8822B 0x3
-#define BIT_PCI_DPRAM_8822B(x)                                                 \
-	(((x) & BIT_MASK_PCI_DPRAM_8822B) << BIT_SHIFT_PCI_DPRAM_8822B)
-#define BIT_GET_PCI_DPRAM_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_PCI_DPRAM_8822B) & BIT_MASK_PCI_DPRAM_8822B)
-
-#define BIT_SHIFT_PCI_SPRAM_8822B 8
-#define BIT_MASK_PCI_SPRAM_8822B 0x3
-#define BIT_PCI_SPRAM_8822B(x)                                                 \
-	(((x) & BIT_MASK_PCI_SPRAM_8822B) << BIT_SHIFT_PCI_SPRAM_8822B)
-#define BIT_GET_PCI_SPRAM_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_PCI_SPRAM_8822B) & BIT_MASK_PCI_SPRAM_8822B)
-
-#define BIT_SHIFT_USB_SPRAM_8822B 6
-#define BIT_MASK_USB_SPRAM_8822B 0x3
-#define BIT_USB_SPRAM_8822B(x)                                                 \
-	(((x) & BIT_MASK_USB_SPRAM_8822B) << BIT_SHIFT_USB_SPRAM_8822B)
-#define BIT_GET_USB_SPRAM_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_USB_SPRAM_8822B) & BIT_MASK_USB_SPRAM_8822B)
-
-#define BIT_SHIFT_USB_SPRF_8822B 4
-#define BIT_MASK_USB_SPRF_8822B 0x3
-#define BIT_USB_SPRF_8822B(x)                                                  \
-	(((x) & BIT_MASK_USB_SPRF_8822B) << BIT_SHIFT_USB_SPRF_8822B)
-#define BIT_GET_USB_SPRF_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_USB_SPRF_8822B) & BIT_MASK_USB_SPRF_8822B)
-
-#define BIT_SHIFT_MCU_ROM_8822B 0
-#define BIT_MASK_MCU_ROM_8822B 0xf
-#define BIT_MCU_ROM_8822B(x)                                                   \
-	(((x) & BIT_MASK_MCU_ROM_8822B) << BIT_SHIFT_MCU_ROM_8822B)
-#define BIT_GET_MCU_ROM_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_MCU_ROM_8822B) & BIT_MASK_MCU_ROM_8822B)
-
-/* 2 REG_AFE_CTRL8_8822B */
-#define BIT_SYN_AGPIO_8822B BIT(20)
-#define BIT_XTAL_LP_8822B BIT(4)
-#define BIT_XTAL_GM_SEP_8822B BIT(3)
-
-#define BIT_SHIFT_XTAL_SEL_TOK_8822B 0
-#define BIT_MASK_XTAL_SEL_TOK_8822B 0x7
-#define BIT_XTAL_SEL_TOK_8822B(x)                                              \
-	(((x) & BIT_MASK_XTAL_SEL_TOK_8822B) << BIT_SHIFT_XTAL_SEL_TOK_8822B)
-#define BIT_GET_XTAL_SEL_TOK_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_XTAL_SEL_TOK_8822B) & BIT_MASK_XTAL_SEL_TOK_8822B)
-
-/* 2 REG_USB_SIE_INTF_8822B */
-#define BIT_RD_SEL_8822B BIT(31)
-#define BIT_USB_SIE_INTF_WE_V1_8822B BIT(30)
-#define BIT_USB_SIE_INTF_BYIOREG_V1_8822B BIT(29)
-#define BIT_USB_SIE_SELECT_8822B BIT(28)
-
-#define BIT_SHIFT_USB_SIE_INTF_ADDR_V1_8822B 16
-#define BIT_MASK_USB_SIE_INTF_ADDR_V1_8822B 0x1ff
-#define BIT_USB_SIE_INTF_ADDR_V1_8822B(x)                                      \
-	(((x) & BIT_MASK_USB_SIE_INTF_ADDR_V1_8822B)                           \
-	 << BIT_SHIFT_USB_SIE_INTF_ADDR_V1_8822B)
-#define BIT_GET_USB_SIE_INTF_ADDR_V1_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_USB_SIE_INTF_ADDR_V1_8822B) &                       \
-	 BIT_MASK_USB_SIE_INTF_ADDR_V1_8822B)
-
-#define BIT_SHIFT_USB_SIE_INTF_RD_8822B 8
-#define BIT_MASK_USB_SIE_INTF_RD_8822B 0xff
-#define BIT_USB_SIE_INTF_RD_8822B(x)                                           \
-	(((x) & BIT_MASK_USB_SIE_INTF_RD_8822B)                                \
-	 << BIT_SHIFT_USB_SIE_INTF_RD_8822B)
-#define BIT_GET_USB_SIE_INTF_RD_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_USB_SIE_INTF_RD_8822B) &                            \
-	 BIT_MASK_USB_SIE_INTF_RD_8822B)
-
-#define BIT_SHIFT_USB_SIE_INTF_WD_8822B 0
-#define BIT_MASK_USB_SIE_INTF_WD_8822B 0xff
-#define BIT_USB_SIE_INTF_WD_8822B(x)                                           \
-	(((x) & BIT_MASK_USB_SIE_INTF_WD_8822B)                                \
-	 << BIT_SHIFT_USB_SIE_INTF_WD_8822B)
-#define BIT_GET_USB_SIE_INTF_WD_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_USB_SIE_INTF_WD_8822B) &                            \
-	 BIT_MASK_USB_SIE_INTF_WD_8822B)
-
-/* 2 REG_PCIE_MIO_INTF_8822B */
-#define BIT_PCIE_MIO_BYIOREG_8822B BIT(13)
-#define BIT_PCIE_MIO_RE_8822B BIT(12)
-
-#define BIT_SHIFT_PCIE_MIO_WE_8822B 8
-#define BIT_MASK_PCIE_MIO_WE_8822B 0xf
-#define BIT_PCIE_MIO_WE_8822B(x)                                               \
-	(((x) & BIT_MASK_PCIE_MIO_WE_8822B) << BIT_SHIFT_PCIE_MIO_WE_8822B)
-#define BIT_GET_PCIE_MIO_WE_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_PCIE_MIO_WE_8822B) & BIT_MASK_PCIE_MIO_WE_8822B)
-
-#define BIT_SHIFT_PCIE_MIO_ADDR_8822B 0
-#define BIT_MASK_PCIE_MIO_ADDR_8822B 0xff
-#define BIT_PCIE_MIO_ADDR_8822B(x)                                             \
-	(((x) & BIT_MASK_PCIE_MIO_ADDR_8822B) << BIT_SHIFT_PCIE_MIO_ADDR_8822B)
-#define BIT_GET_PCIE_MIO_ADDR_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PCIE_MIO_ADDR_8822B) & BIT_MASK_PCIE_MIO_ADDR_8822B)
-
-/* 2 REG_PCIE_MIO_INTD_8822B */
-
-#define BIT_SHIFT_PCIE_MIO_DATA_8822B 0
-#define BIT_MASK_PCIE_MIO_DATA_8822B 0xffffffffL
-#define BIT_PCIE_MIO_DATA_8822B(x)                                             \
-	(((x) & BIT_MASK_PCIE_MIO_DATA_8822B) << BIT_SHIFT_PCIE_MIO_DATA_8822B)
-#define BIT_GET_PCIE_MIO_DATA_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PCIE_MIO_DATA_8822B) & BIT_MASK_PCIE_MIO_DATA_8822B)
-
-/* 2 REG_WLRF1_8822B */
-
-#define BIT_SHIFT_WLRF1_CTRL_8822B 24
-#define BIT_MASK_WLRF1_CTRL_8822B 0xff
-#define BIT_WLRF1_CTRL_8822B(x)                                                \
-	(((x) & BIT_MASK_WLRF1_CTRL_8822B) << BIT_SHIFT_WLRF1_CTRL_8822B)
-#define BIT_GET_WLRF1_CTRL_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_WLRF1_CTRL_8822B) & BIT_MASK_WLRF1_CTRL_8822B)
-
-/* 2 REG_SYS_CFG1_8822B */
-
-#define BIT_SHIFT_TRP_ICFG_8822B 28
-#define BIT_MASK_TRP_ICFG_8822B 0xf
-#define BIT_TRP_ICFG_8822B(x)                                                  \
-	(((x) & BIT_MASK_TRP_ICFG_8822B) << BIT_SHIFT_TRP_ICFG_8822B)
-#define BIT_GET_TRP_ICFG_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_TRP_ICFG_8822B) & BIT_MASK_TRP_ICFG_8822B)
-
-#define BIT_RF_TYPE_ID_8822B BIT(27)
-#define BIT_BD_HCI_SEL_8822B BIT(26)
-#define BIT_BD_PKG_SEL_8822B BIT(25)
-#define BIT_SPSLDO_SEL_8822B BIT(24)
-#define BIT_RTL_ID_8822B BIT(23)
-#define BIT_PAD_HWPD_IDN_8822B BIT(22)
-#define BIT_TESTMODE_8822B BIT(20)
-
-#define BIT_SHIFT_VENDOR_ID_8822B 16
-#define BIT_MASK_VENDOR_ID_8822B 0xf
-#define BIT_VENDOR_ID_8822B(x)                                                 \
-	(((x) & BIT_MASK_VENDOR_ID_8822B) << BIT_SHIFT_VENDOR_ID_8822B)
-#define BIT_GET_VENDOR_ID_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_VENDOR_ID_8822B) & BIT_MASK_VENDOR_ID_8822B)
-
-#define BIT_SHIFT_CHIP_VER_8822B 12
-#define BIT_MASK_CHIP_VER_8822B 0xf
-#define BIT_CHIP_VER_8822B(x)                                                  \
-	(((x) & BIT_MASK_CHIP_VER_8822B) << BIT_SHIFT_CHIP_VER_8822B)
-#define BIT_GET_CHIP_VER_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_CHIP_VER_8822B) & BIT_MASK_CHIP_VER_8822B)
-
-#define BIT_BD_MAC3_8822B BIT(11)
-#define BIT_BD_MAC1_8822B BIT(10)
-#define BIT_BD_MAC2_8822B BIT(9)
-#define BIT_SIC_IDLE_8822B BIT(8)
-#define BIT_SW_OFFLOAD_EN_8822B BIT(7)
-#define BIT_OCP_SHUTDN_8822B BIT(6)
-#define BIT_V15_VLD_8822B BIT(5)
-#define BIT_PCIRSTB_8822B BIT(4)
-#define BIT_PCLK_VLD_8822B BIT(3)
-#define BIT_UCLK_VLD_8822B BIT(2)
-#define BIT_ACLK_VLD_8822B BIT(1)
-#define BIT_XCLK_VLD_8822B BIT(0)
-
-/* 2 REG_SYS_STATUS1_8822B */
-
-#define BIT_SHIFT_RF_RL_ID_8822B 28
-#define BIT_MASK_RF_RL_ID_8822B 0xf
-#define BIT_RF_RL_ID_8822B(x)                                                  \
-	(((x) & BIT_MASK_RF_RL_ID_8822B) << BIT_SHIFT_RF_RL_ID_8822B)
-#define BIT_GET_RF_RL_ID_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RF_RL_ID_8822B) & BIT_MASK_RF_RL_ID_8822B)
-
-#define BIT_HPHY_ICFG_8822B BIT(19)
-
-#define BIT_SHIFT_SEL_0XC0_8822B 16
-#define BIT_MASK_SEL_0XC0_8822B 0x3
-#define BIT_SEL_0XC0_8822B(x)                                                  \
-	(((x) & BIT_MASK_SEL_0XC0_8822B) << BIT_SHIFT_SEL_0XC0_8822B)
-#define BIT_GET_SEL_0XC0_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_SEL_0XC0_8822B) & BIT_MASK_SEL_0XC0_8822B)
-
-#define BIT_SHIFT_HCI_SEL_V3_8822B 12
-#define BIT_MASK_HCI_SEL_V3_8822B 0x7
-#define BIT_HCI_SEL_V3_8822B(x)                                                \
-	(((x) & BIT_MASK_HCI_SEL_V3_8822B) << BIT_SHIFT_HCI_SEL_V3_8822B)
-#define BIT_GET_HCI_SEL_V3_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_HCI_SEL_V3_8822B) & BIT_MASK_HCI_SEL_V3_8822B)
-
-#define BIT_USB_OPERATION_MODE_8822B BIT(10)
-#define BIT_BT_PDN_8822B BIT(9)
-#define BIT_AUTO_WLPON_8822B BIT(8)
-#define BIT_WL_MODE_8822B BIT(7)
-#define BIT_PKG_SEL_HCI_8822B BIT(6)
-
-#define BIT_SHIFT_PAD_HCI_SEL_V1_8822B 3
-#define BIT_MASK_PAD_HCI_SEL_V1_8822B 0x7
-#define BIT_PAD_HCI_SEL_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_PAD_HCI_SEL_V1_8822B)                                 \
-	 << BIT_SHIFT_PAD_HCI_SEL_V1_8822B)
-#define BIT_GET_PAD_HCI_SEL_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_PAD_HCI_SEL_V1_8822B) &                             \
-	 BIT_MASK_PAD_HCI_SEL_V1_8822B)
-
-#define BIT_SHIFT_EFS_HCI_SEL_V1_8822B 0
-#define BIT_MASK_EFS_HCI_SEL_V1_8822B 0x7
-#define BIT_EFS_HCI_SEL_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_EFS_HCI_SEL_V1_8822B)                                 \
-	 << BIT_SHIFT_EFS_HCI_SEL_V1_8822B)
-#define BIT_GET_EFS_HCI_SEL_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_EFS_HCI_SEL_V1_8822B) &                             \
-	 BIT_MASK_EFS_HCI_SEL_V1_8822B)
-
-/* 2 REG_SYS_STATUS2_8822B */
-#define BIT_SIO_ALDN_8822B BIT(19)
-#define BIT_USB_ALDN_8822B BIT(18)
-#define BIT_PCI_ALDN_8822B BIT(17)
-#define BIT_SYS_ALDN_8822B BIT(16)
-
-#define BIT_SHIFT_EPVID1_8822B 8
-#define BIT_MASK_EPVID1_8822B 0xff
-#define BIT_EPVID1_8822B(x)                                                    \
-	(((x) & BIT_MASK_EPVID1_8822B) << BIT_SHIFT_EPVID1_8822B)
-#define BIT_GET_EPVID1_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_EPVID1_8822B) & BIT_MASK_EPVID1_8822B)
-
-#define BIT_SHIFT_EPVID0_8822B 0
-#define BIT_MASK_EPVID0_8822B 0xff
-#define BIT_EPVID0_8822B(x)                                                    \
-	(((x) & BIT_MASK_EPVID0_8822B) << BIT_SHIFT_EPVID0_8822B)
-#define BIT_GET_EPVID0_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_EPVID0_8822B) & BIT_MASK_EPVID0_8822B)
-
-/* 2 REG_SYS_CFG2_8822B */
-#define BIT_HCI_SEL_EMBEDDED_8822B BIT(8)
-
-#define BIT_SHIFT_HW_ID_8822B 0
-#define BIT_MASK_HW_ID_8822B 0xff
-#define BIT_HW_ID_8822B(x)                                                     \
-	(((x) & BIT_MASK_HW_ID_8822B) << BIT_SHIFT_HW_ID_8822B)
-#define BIT_GET_HW_ID_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_HW_ID_8822B) & BIT_MASK_HW_ID_8822B)
-
-/* 2 REG_SYS_CFG3_8822B */
-#define BIT_PWC_MA33V_8822B BIT(15)
-#define BIT_PWC_MA12V_8822B BIT(14)
-#define BIT_PWC_MD12V_8822B BIT(13)
-#define BIT_PWC_PD12V_8822B BIT(12)
-#define BIT_PWC_UD12V_8822B BIT(11)
-#define BIT_ISO_MA2MD_8822B BIT(1)
-#define BIT_ISO_MD2PP_8822B BIT(0)
-
-/* 2 REG_SYS_CFG4_8822B */
-
-/* 2 REG_SYS_CFG5_8822B */
-#define BIT_LPS_STATUS_8822B BIT(3)
-#define BIT_HCI_TXDMA_BUSY_8822B BIT(2)
-#define BIT_HCI_TXDMA_ALLOW_8822B BIT(1)
-#define BIT_FW_CTRL_HCI_TXDMA_EN_8822B BIT(0)
-
-/* 2 REG_CPU_DMEM_CON_8822B */
-#define BIT_WDT_OPT_IOWRAPPER_8822B BIT(19)
-#define BIT_ANA_PORT_IDLE_8822B BIT(18)
-#define BIT_MAC_PORT_IDLE_8822B BIT(17)
-#define BIT_WL_PLATFORM_RST_8822B BIT(16)
-#define BIT_WL_SECURITY_CLK_8822B BIT(15)
-
-#define BIT_SHIFT_CPU_DMEM_CON_8822B 0
-#define BIT_MASK_CPU_DMEM_CON_8822B 0xff
-#define BIT_CPU_DMEM_CON_8822B(x)                                              \
-	(((x) & BIT_MASK_CPU_DMEM_CON_8822B) << BIT_SHIFT_CPU_DMEM_CON_8822B)
-#define BIT_GET_CPU_DMEM_CON_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_CPU_DMEM_CON_8822B) & BIT_MASK_CPU_DMEM_CON_8822B)
-
-/* 2 REG_BOOT_REASON_8822B */
-
-#define BIT_SHIFT_BOOT_REASON_8822B 0
-#define BIT_MASK_BOOT_REASON_8822B 0x7
-#define BIT_BOOT_REASON_8822B(x)                                               \
-	(((x) & BIT_MASK_BOOT_REASON_8822B) << BIT_SHIFT_BOOT_REASON_8822B)
-#define BIT_GET_BOOT_REASON_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_BOOT_REASON_8822B) & BIT_MASK_BOOT_REASON_8822B)
-
-/* 2 REG_NFCPAD_CTRL_8822B */
-#define BIT_PAD_SHUTDW_8822B BIT(18)
-#define BIT_SYSON_NFC_PAD_8822B BIT(17)
-#define BIT_NFC_INT_PAD_CTRL_8822B BIT(16)
-#define BIT_NFC_RFDIS_PAD_CTRL_8822B BIT(15)
-#define BIT_NFC_CLK_PAD_CTRL_8822B BIT(14)
-#define BIT_NFC_DATA_PAD_CTRL_8822B BIT(13)
-#define BIT_NFC_PAD_PULL_CTRL_8822B BIT(12)
-
-#define BIT_SHIFT_NFCPAD_IO_SEL_8822B 8
-#define BIT_MASK_NFCPAD_IO_SEL_8822B 0xf
-#define BIT_NFCPAD_IO_SEL_8822B(x)                                             \
-	(((x) & BIT_MASK_NFCPAD_IO_SEL_8822B) << BIT_SHIFT_NFCPAD_IO_SEL_8822B)
-#define BIT_GET_NFCPAD_IO_SEL_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_NFCPAD_IO_SEL_8822B) & BIT_MASK_NFCPAD_IO_SEL_8822B)
-
-#define BIT_SHIFT_NFCPAD_OUT_8822B 4
-#define BIT_MASK_NFCPAD_OUT_8822B 0xf
-#define BIT_NFCPAD_OUT_8822B(x)                                                \
-	(((x) & BIT_MASK_NFCPAD_OUT_8822B) << BIT_SHIFT_NFCPAD_OUT_8822B)
-#define BIT_GET_NFCPAD_OUT_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_NFCPAD_OUT_8822B) & BIT_MASK_NFCPAD_OUT_8822B)
-
-#define BIT_SHIFT_NFCPAD_IN_8822B 0
-#define BIT_MASK_NFCPAD_IN_8822B 0xf
-#define BIT_NFCPAD_IN_8822B(x)                                                 \
-	(((x) & BIT_MASK_NFCPAD_IN_8822B) << BIT_SHIFT_NFCPAD_IN_8822B)
-#define BIT_GET_NFCPAD_IN_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_NFCPAD_IN_8822B) & BIT_MASK_NFCPAD_IN_8822B)
-
-/* 2 REG_HIMR2_8822B */
-#define BIT_BCNDMAINT_P4_MSK_8822B BIT(31)
-#define BIT_BCNDMAINT_P3_MSK_8822B BIT(30)
-#define BIT_BCNDMAINT_P2_MSK_8822B BIT(29)
-#define BIT_BCNDMAINT_P1_MSK_8822B BIT(28)
-#define BIT_ATIMEND7_MSK_8822B BIT(22)
-#define BIT_ATIMEND6_MSK_8822B BIT(21)
-#define BIT_ATIMEND5_MSK_8822B BIT(20)
-#define BIT_ATIMEND4_MSK_8822B BIT(19)
-#define BIT_ATIMEND3_MSK_8822B BIT(18)
-#define BIT_ATIMEND2_MSK_8822B BIT(17)
-#define BIT_ATIMEND1_MSK_8822B BIT(16)
-#define BIT_TXBCN7OK_MSK_8822B BIT(14)
-#define BIT_TXBCN6OK_MSK_8822B BIT(13)
-#define BIT_TXBCN5OK_MSK_8822B BIT(12)
-#define BIT_TXBCN4OK_MSK_8822B BIT(11)
-#define BIT_TXBCN3OK_MSK_8822B BIT(10)
-#define BIT_TXBCN2OK_MSK_8822B BIT(9)
-#define BIT_TXBCN1OK_MSK_V1_8822B BIT(8)
-#define BIT_TXBCN7ERR_MSK_8822B BIT(6)
-#define BIT_TXBCN6ERR_MSK_8822B BIT(5)
-#define BIT_TXBCN5ERR_MSK_8822B BIT(4)
-#define BIT_TXBCN4ERR_MSK_8822B BIT(3)
-#define BIT_TXBCN3ERR_MSK_8822B BIT(2)
-#define BIT_TXBCN2ERR_MSK_8822B BIT(1)
-#define BIT_TXBCN1ERR_MSK_V1_8822B BIT(0)
-
-/* 2 REG_HISR2_8822B */
-#define BIT_BCNDMAINT_P4_8822B BIT(31)
-#define BIT_BCNDMAINT_P3_8822B BIT(30)
-#define BIT_BCNDMAINT_P2_8822B BIT(29)
-#define BIT_BCNDMAINT_P1_8822B BIT(28)
-#define BIT_ATIMEND7_8822B BIT(22)
-#define BIT_ATIMEND6_8822B BIT(21)
-#define BIT_ATIMEND5_8822B BIT(20)
-#define BIT_ATIMEND4_8822B BIT(19)
-#define BIT_ATIMEND3_8822B BIT(18)
-#define BIT_ATIMEND2_8822B BIT(17)
-#define BIT_ATIMEND1_8822B BIT(16)
-#define BIT_TXBCN7OK_8822B BIT(14)
-#define BIT_TXBCN6OK_8822B BIT(13)
-#define BIT_TXBCN5OK_8822B BIT(12)
-#define BIT_TXBCN4OK_8822B BIT(11)
-#define BIT_TXBCN3OK_8822B BIT(10)
-#define BIT_TXBCN2OK_8822B BIT(9)
-#define BIT_TXBCN1OK_8822B BIT(8)
-#define BIT_TXBCN7ERR_8822B BIT(6)
-#define BIT_TXBCN6ERR_8822B BIT(5)
-#define BIT_TXBCN5ERR_8822B BIT(4)
-#define BIT_TXBCN4ERR_8822B BIT(3)
-#define BIT_TXBCN3ERR_8822B BIT(2)
-#define BIT_TXBCN2ERR_8822B BIT(1)
-#define BIT_TXBCN1ERR_8822B BIT(0)
-
-/* 2 REG_HIMR3_8822B */
-#define BIT_WDT_PLATFORM_INT_MSK_8822B BIT(18)
-#define BIT_WDT_CPU_INT_MSK_8822B BIT(17)
-#define BIT_SETH2CDOK_MASK_8822B BIT(16)
-#define BIT_H2C_CMD_FULL_MASK_8822B BIT(15)
-#define BIT_PWR_INT_127_MASK_8822B BIT(14)
-#define BIT_TXSHORTCUT_TXDESUPDATEOK_MASK_8822B BIT(13)
-#define BIT_TXSHORTCUT_BKUPDATEOK_MASK_8822B BIT(12)
-#define BIT_TXSHORTCUT_BEUPDATEOK_MASK_8822B BIT(11)
-#define BIT_TXSHORTCUT_VIUPDATEOK_MAS_8822B BIT(10)
-#define BIT_TXSHORTCUT_VOUPDATEOK_MASK_8822B BIT(9)
-#define BIT_PWR_INT_127_MASK_V1_8822B BIT(8)
-#define BIT_PWR_INT_126TO96_MASK_8822B BIT(7)
-#define BIT_PWR_INT_95TO64_MASK_8822B BIT(6)
-#define BIT_PWR_INT_63TO32_MASK_8822B BIT(5)
-#define BIT_PWR_INT_31TO0_MASK_8822B BIT(4)
-#define BIT_DDMA0_LP_INT_MSK_8822B BIT(1)
-#define BIT_DDMA0_HP_INT_MSK_8822B BIT(0)
-
-/* 2 REG_HISR3_8822B */
-#define BIT_WDT_PLATFORM_INT_8822B BIT(18)
-#define BIT_WDT_CPU_INT_8822B BIT(17)
-#define BIT_SETH2CDOK_8822B BIT(16)
-#define BIT_H2C_CMD_FULL_8822B BIT(15)
-#define BIT_PWR_INT_127_8822B BIT(14)
-#define BIT_TXSHORTCUT_TXDESUPDATEOK_8822B BIT(13)
-#define BIT_TXSHORTCUT_BKUPDATEOK_8822B BIT(12)
-#define BIT_TXSHORTCUT_BEUPDATEOK_8822B BIT(11)
-#define BIT_TXSHORTCUT_VIUPDATEOK_8822B BIT(10)
-#define BIT_TXSHORTCUT_VOUPDATEOK_8822B BIT(9)
-#define BIT_PWR_INT_127_V1_8822B BIT(8)
-#define BIT_PWR_INT_126TO96_8822B BIT(7)
-#define BIT_PWR_INT_95TO64_8822B BIT(6)
-#define BIT_PWR_INT_63TO32_8822B BIT(5)
-#define BIT_PWR_INT_31TO0_8822B BIT(4)
-#define BIT_DDMA0_LP_INT_8822B BIT(1)
-#define BIT_DDMA0_HP_INT_8822B BIT(0)
-
-/* 2 REG_SW_MDIO_8822B */
-#define BIT_DIS_TIMEOUT_IO_8822B BIT(24)
-
-/* 2 REG_SW_FLUSH_8822B */
-#define BIT_FLUSH_HOLDN_EN_8822B BIT(25)
-#define BIT_FLUSH_WR_EN_8822B BIT(24)
-#define BIT_SW_FLASH_CONTROL_8822B BIT(23)
-#define BIT_SW_FLASH_WEN_E_8822B BIT(19)
-#define BIT_SW_FLASH_HOLDN_E_8822B BIT(18)
-#define BIT_SW_FLASH_SO_E_8822B BIT(17)
-#define BIT_SW_FLASH_SI_E_8822B BIT(16)
-#define BIT_SW_FLASH_SK_O_8822B BIT(13)
-#define BIT_SW_FLASH_CEN_O_8822B BIT(12)
-#define BIT_SW_FLASH_WEN_O_8822B BIT(11)
-#define BIT_SW_FLASH_HOLDN_O_8822B BIT(10)
-#define BIT_SW_FLASH_SO_O_8822B BIT(9)
-#define BIT_SW_FLASH_SI_O_8822B BIT(8)
-#define BIT_SW_FLASH_WEN_I_8822B BIT(3)
-#define BIT_SW_FLASH_HOLDN_I_8822B BIT(2)
-#define BIT_SW_FLASH_SO_I_8822B BIT(1)
-#define BIT_SW_FLASH_SI_I_8822B BIT(0)
-
-/* 2 REG_H2C_PKT_READADDR_8822B */
-
-#define BIT_SHIFT_H2C_PKT_READADDR_8822B 0
-#define BIT_MASK_H2C_PKT_READADDR_8822B 0x3ffff
-#define BIT_H2C_PKT_READADDR_8822B(x)                                          \
-	(((x) & BIT_MASK_H2C_PKT_READADDR_8822B)                               \
-	 << BIT_SHIFT_H2C_PKT_READADDR_8822B)
-#define BIT_GET_H2C_PKT_READADDR_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_H2C_PKT_READADDR_8822B) &                           \
-	 BIT_MASK_H2C_PKT_READADDR_8822B)
-
-/* 2 REG_H2C_PKT_WRITEADDR_8822B */
-
-#define BIT_SHIFT_H2C_PKT_WRITEADDR_8822B 0
-#define BIT_MASK_H2C_PKT_WRITEADDR_8822B 0x3ffff
-#define BIT_H2C_PKT_WRITEADDR_8822B(x)                                         \
-	(((x) & BIT_MASK_H2C_PKT_WRITEADDR_8822B)                              \
-	 << BIT_SHIFT_H2C_PKT_WRITEADDR_8822B)
-#define BIT_GET_H2C_PKT_WRITEADDR_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_H2C_PKT_WRITEADDR_8822B) &                          \
-	 BIT_MASK_H2C_PKT_WRITEADDR_8822B)
-
-/* 2 REG_MEM_PWR_CRTL_8822B */
-#define BIT_MEM_BB_SD_8822B BIT(17)
-#define BIT_MEM_BB_DS_8822B BIT(16)
-#define BIT_MEM_BT_DS_8822B BIT(10)
-#define BIT_MEM_SDIO_LS_8822B BIT(9)
-#define BIT_MEM_SDIO_DS_8822B BIT(8)
-#define BIT_MEM_USB_LS_8822B BIT(7)
-#define BIT_MEM_USB_DS_8822B BIT(6)
-#define BIT_MEM_PCI_LS_8822B BIT(5)
-#define BIT_MEM_PCI_DS_8822B BIT(4)
-#define BIT_MEM_WLMAC_LS_8822B BIT(3)
-#define BIT_MEM_WLMAC_DS_8822B BIT(2)
-#define BIT_MEM_WLMCU_LS_8822B BIT(1)
-#define BIT_MEM_WLMCU_DS_8822B BIT(0)
-
-/* 2 REG_FW_DBG0_8822B */
-
-#define BIT_SHIFT_FW_DBG0_8822B 0
-#define BIT_MASK_FW_DBG0_8822B 0xffffffffL
-#define BIT_FW_DBG0_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_DBG0_8822B) << BIT_SHIFT_FW_DBG0_8822B)
-#define BIT_GET_FW_DBG0_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_DBG0_8822B) & BIT_MASK_FW_DBG0_8822B)
-
-/* 2 REG_FW_DBG1_8822B */
-
-#define BIT_SHIFT_FW_DBG1_8822B 0
-#define BIT_MASK_FW_DBG1_8822B 0xffffffffL
-#define BIT_FW_DBG1_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_DBG1_8822B) << BIT_SHIFT_FW_DBG1_8822B)
-#define BIT_GET_FW_DBG1_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_DBG1_8822B) & BIT_MASK_FW_DBG1_8822B)
-
-/* 2 REG_FW_DBG2_8822B */
-
-#define BIT_SHIFT_FW_DBG2_8822B 0
-#define BIT_MASK_FW_DBG2_8822B 0xffffffffL
-#define BIT_FW_DBG2_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_DBG2_8822B) << BIT_SHIFT_FW_DBG2_8822B)
-#define BIT_GET_FW_DBG2_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_DBG2_8822B) & BIT_MASK_FW_DBG2_8822B)
-
-/* 2 REG_FW_DBG3_8822B */
-
-#define BIT_SHIFT_FW_DBG3_8822B 0
-#define BIT_MASK_FW_DBG3_8822B 0xffffffffL
-#define BIT_FW_DBG3_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_DBG3_8822B) << BIT_SHIFT_FW_DBG3_8822B)
-#define BIT_GET_FW_DBG3_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_DBG3_8822B) & BIT_MASK_FW_DBG3_8822B)
-
-/* 2 REG_FW_DBG4_8822B */
-
-#define BIT_SHIFT_FW_DBG4_8822B 0
-#define BIT_MASK_FW_DBG4_8822B 0xffffffffL
-#define BIT_FW_DBG4_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_DBG4_8822B) << BIT_SHIFT_FW_DBG4_8822B)
-#define BIT_GET_FW_DBG4_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_DBG4_8822B) & BIT_MASK_FW_DBG4_8822B)
-
-/* 2 REG_FW_DBG5_8822B */
-
-#define BIT_SHIFT_FW_DBG5_8822B 0
-#define BIT_MASK_FW_DBG5_8822B 0xffffffffL
-#define BIT_FW_DBG5_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_DBG5_8822B) << BIT_SHIFT_FW_DBG5_8822B)
-#define BIT_GET_FW_DBG5_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_DBG5_8822B) & BIT_MASK_FW_DBG5_8822B)
-
-/* 2 REG_FW_DBG6_8822B */
-
-#define BIT_SHIFT_FW_DBG6_8822B 0
-#define BIT_MASK_FW_DBG6_8822B 0xffffffffL
-#define BIT_FW_DBG6_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_DBG6_8822B) << BIT_SHIFT_FW_DBG6_8822B)
-#define BIT_GET_FW_DBG6_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_DBG6_8822B) & BIT_MASK_FW_DBG6_8822B)
-
-/* 2 REG_FW_DBG7_8822B */
-
-#define BIT_SHIFT_FW_DBG7_8822B 0
-#define BIT_MASK_FW_DBG7_8822B 0xffffffffL
-#define BIT_FW_DBG7_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_DBG7_8822B) << BIT_SHIFT_FW_DBG7_8822B)
-#define BIT_GET_FW_DBG7_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_DBG7_8822B) & BIT_MASK_FW_DBG7_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_CR_8822B */
-
-#define BIT_SHIFT_LBMODE_8822B 24
-#define BIT_MASK_LBMODE_8822B 0x1f
-#define BIT_LBMODE_8822B(x)                                                    \
-	(((x) & BIT_MASK_LBMODE_8822B) << BIT_SHIFT_LBMODE_8822B)
-#define BIT_GET_LBMODE_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_LBMODE_8822B) & BIT_MASK_LBMODE_8822B)
-
-#define BIT_SHIFT_NETYPE1_8822B 18
-#define BIT_MASK_NETYPE1_8822B 0x3
-#define BIT_NETYPE1_8822B(x)                                                   \
-	(((x) & BIT_MASK_NETYPE1_8822B) << BIT_SHIFT_NETYPE1_8822B)
-#define BIT_GET_NETYPE1_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_NETYPE1_8822B) & BIT_MASK_NETYPE1_8822B)
-
-#define BIT_SHIFT_NETYPE0_8822B 16
-#define BIT_MASK_NETYPE0_8822B 0x3
-#define BIT_NETYPE0_8822B(x)                                                   \
-	(((x) & BIT_MASK_NETYPE0_8822B) << BIT_SHIFT_NETYPE0_8822B)
-#define BIT_GET_NETYPE0_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_NETYPE0_8822B) & BIT_MASK_NETYPE0_8822B)
-
-#define BIT_I2C_MAILBOX_EN_8822B BIT(12)
-#define BIT_SHCUT_EN_8822B BIT(11)
-#define BIT_32K_CAL_TMR_EN_8822B BIT(10)
-#define BIT_MAC_SEC_EN_8822B BIT(9)
-#define BIT_ENSWBCN_8822B BIT(8)
-#define BIT_MACRXEN_8822B BIT(7)
-#define BIT_MACTXEN_8822B BIT(6)
-#define BIT_SCHEDULE_EN_8822B BIT(5)
-#define BIT_PROTOCOL_EN_8822B BIT(4)
-#define BIT_RXDMA_EN_8822B BIT(3)
-#define BIT_TXDMA_EN_8822B BIT(2)
-#define BIT_HCI_RXDMA_EN_8822B BIT(1)
-#define BIT_HCI_TXDMA_EN_8822B BIT(0)
-
-/* 2 REG_PKT_BUFF_ACCESS_CTRL_8822B */
-
-#define BIT_SHIFT_PKT_BUFF_ACCESS_CTRL_8822B 0
-#define BIT_MASK_PKT_BUFF_ACCESS_CTRL_8822B 0xff
-#define BIT_PKT_BUFF_ACCESS_CTRL_8822B(x)                                      \
-	(((x) & BIT_MASK_PKT_BUFF_ACCESS_CTRL_8822B)                           \
-	 << BIT_SHIFT_PKT_BUFF_ACCESS_CTRL_8822B)
-#define BIT_GET_PKT_BUFF_ACCESS_CTRL_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_PKT_BUFF_ACCESS_CTRL_8822B) &                       \
-	 BIT_MASK_PKT_BUFF_ACCESS_CTRL_8822B)
-
-/* 2 REG_TSF_CLK_STATE_8822B */
-#define BIT_TSF_CLK_STABLE_8822B BIT(15)
-
-/* 2 REG_TXDMA_PQ_MAP_8822B */
-
-#define BIT_SHIFT_TXDMA_HIQ_MAP_8822B 14
-#define BIT_MASK_TXDMA_HIQ_MAP_8822B 0x3
-#define BIT_TXDMA_HIQ_MAP_8822B(x)                                             \
-	(((x) & BIT_MASK_TXDMA_HIQ_MAP_8822B) << BIT_SHIFT_TXDMA_HIQ_MAP_8822B)
-#define BIT_GET_TXDMA_HIQ_MAP_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TXDMA_HIQ_MAP_8822B) & BIT_MASK_TXDMA_HIQ_MAP_8822B)
-
-#define BIT_SHIFT_TXDMA_MGQ_MAP_8822B 12
-#define BIT_MASK_TXDMA_MGQ_MAP_8822B 0x3
-#define BIT_TXDMA_MGQ_MAP_8822B(x)                                             \
-	(((x) & BIT_MASK_TXDMA_MGQ_MAP_8822B) << BIT_SHIFT_TXDMA_MGQ_MAP_8822B)
-#define BIT_GET_TXDMA_MGQ_MAP_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TXDMA_MGQ_MAP_8822B) & BIT_MASK_TXDMA_MGQ_MAP_8822B)
-
-#define BIT_SHIFT_TXDMA_BKQ_MAP_8822B 10
-#define BIT_MASK_TXDMA_BKQ_MAP_8822B 0x3
-#define BIT_TXDMA_BKQ_MAP_8822B(x)                                             \
-	(((x) & BIT_MASK_TXDMA_BKQ_MAP_8822B) << BIT_SHIFT_TXDMA_BKQ_MAP_8822B)
-#define BIT_GET_TXDMA_BKQ_MAP_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TXDMA_BKQ_MAP_8822B) & BIT_MASK_TXDMA_BKQ_MAP_8822B)
-
-#define BIT_SHIFT_TXDMA_BEQ_MAP_8822B 8
-#define BIT_MASK_TXDMA_BEQ_MAP_8822B 0x3
-#define BIT_TXDMA_BEQ_MAP_8822B(x)                                             \
-	(((x) & BIT_MASK_TXDMA_BEQ_MAP_8822B) << BIT_SHIFT_TXDMA_BEQ_MAP_8822B)
-#define BIT_GET_TXDMA_BEQ_MAP_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TXDMA_BEQ_MAP_8822B) & BIT_MASK_TXDMA_BEQ_MAP_8822B)
-
-#define BIT_SHIFT_TXDMA_VIQ_MAP_8822B 6
-#define BIT_MASK_TXDMA_VIQ_MAP_8822B 0x3
-#define BIT_TXDMA_VIQ_MAP_8822B(x)                                             \
-	(((x) & BIT_MASK_TXDMA_VIQ_MAP_8822B) << BIT_SHIFT_TXDMA_VIQ_MAP_8822B)
-#define BIT_GET_TXDMA_VIQ_MAP_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TXDMA_VIQ_MAP_8822B) & BIT_MASK_TXDMA_VIQ_MAP_8822B)
-
-#define BIT_SHIFT_TXDMA_VOQ_MAP_8822B 4
-#define BIT_MASK_TXDMA_VOQ_MAP_8822B 0x3
-#define BIT_TXDMA_VOQ_MAP_8822B(x)                                             \
-	(((x) & BIT_MASK_TXDMA_VOQ_MAP_8822B) << BIT_SHIFT_TXDMA_VOQ_MAP_8822B)
-#define BIT_GET_TXDMA_VOQ_MAP_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TXDMA_VOQ_MAP_8822B) & BIT_MASK_TXDMA_VOQ_MAP_8822B)
-
-#define BIT_RXDMA_AGG_EN_8822B BIT(2)
-#define BIT_RXSHFT_EN_8822B BIT(1)
-#define BIT_RXDMA_ARBBW_EN_8822B BIT(0)
-
-/* 2 REG_TRXFF_BNDY_8822B */
-
-#define BIT_SHIFT_RXFFOVFL_RSV_V2_8822B 8
-#define BIT_MASK_RXFFOVFL_RSV_V2_8822B 0xf
-#define BIT_RXFFOVFL_RSV_V2_8822B(x)                                           \
-	(((x) & BIT_MASK_RXFFOVFL_RSV_V2_8822B)                                \
-	 << BIT_SHIFT_RXFFOVFL_RSV_V2_8822B)
-#define BIT_GET_RXFFOVFL_RSV_V2_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_RXFFOVFL_RSV_V2_8822B) &                            \
-	 BIT_MASK_RXFFOVFL_RSV_V2_8822B)
-
-#define BIT_SHIFT_TXPKTBUF_PGBNDY_8822B 0
-#define BIT_MASK_TXPKTBUF_PGBNDY_8822B 0xff
-#define BIT_TXPKTBUF_PGBNDY_8822B(x)                                           \
-	(((x) & BIT_MASK_TXPKTBUF_PGBNDY_8822B)                                \
-	 << BIT_SHIFT_TXPKTBUF_PGBNDY_8822B)
-#define BIT_GET_TXPKTBUF_PGBNDY_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_TXPKTBUF_PGBNDY_8822B) &                            \
-	 BIT_MASK_TXPKTBUF_PGBNDY_8822B)
-
-/* 2 REG_PTA_I2C_MBOX_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_I2C_M_STATUS_8822B 8
-#define BIT_MASK_I2C_M_STATUS_8822B 0xf
-#define BIT_I2C_M_STATUS_8822B(x)                                              \
-	(((x) & BIT_MASK_I2C_M_STATUS_8822B) << BIT_SHIFT_I2C_M_STATUS_8822B)
-#define BIT_GET_I2C_M_STATUS_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_I2C_M_STATUS_8822B) & BIT_MASK_I2C_M_STATUS_8822B)
-
-#define BIT_SHIFT_I2C_M_BUS_GNT_FW_8822B 4
-#define BIT_MASK_I2C_M_BUS_GNT_FW_8822B 0x7
-#define BIT_I2C_M_BUS_GNT_FW_8822B(x)                                          \
-	(((x) & BIT_MASK_I2C_M_BUS_GNT_FW_8822B)                               \
-	 << BIT_SHIFT_I2C_M_BUS_GNT_FW_8822B)
-#define BIT_GET_I2C_M_BUS_GNT_FW_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_I2C_M_BUS_GNT_FW_8822B) &                           \
-	 BIT_MASK_I2C_M_BUS_GNT_FW_8822B)
-
-#define BIT_I2C_M_GNT_FW_8822B BIT(3)
-
-#define BIT_SHIFT_I2C_M_SPEED_8822B 1
-#define BIT_MASK_I2C_M_SPEED_8822B 0x3
-#define BIT_I2C_M_SPEED_8822B(x)                                               \
-	(((x) & BIT_MASK_I2C_M_SPEED_8822B) << BIT_SHIFT_I2C_M_SPEED_8822B)
-#define BIT_GET_I2C_M_SPEED_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_I2C_M_SPEED_8822B) & BIT_MASK_I2C_M_SPEED_8822B)
-
-#define BIT_I2C_M_UNLOCK_8822B BIT(0)
-
-/* 2 REG_RXFF_BNDY_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_RXFF0_BNDY_V2_8822B 0
-#define BIT_MASK_RXFF0_BNDY_V2_8822B 0x3ffff
-#define BIT_RXFF0_BNDY_V2_8822B(x)                                             \
-	(((x) & BIT_MASK_RXFF0_BNDY_V2_8822B) << BIT_SHIFT_RXFF0_BNDY_V2_8822B)
-#define BIT_GET_RXFF0_BNDY_V2_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_RXFF0_BNDY_V2_8822B) & BIT_MASK_RXFF0_BNDY_V2_8822B)
-
-/* 2 REG_FE1IMR_8822B */
-#define BIT_FS_RXDMA2_DONE_INT_EN_8822B BIT(28)
-#define BIT_FS_RXDONE3_INT_EN_8822B BIT(27)
-#define BIT_FS_RXDONE2_INT_EN_8822B BIT(26)
-#define BIT_FS_RX_BCN_P4_INT_EN_8822B BIT(25)
-#define BIT_FS_RX_BCN_P3_INT_EN_8822B BIT(24)
-#define BIT_FS_RX_BCN_P2_INT_EN_8822B BIT(23)
-#define BIT_FS_RX_BCN_P1_INT_EN_8822B BIT(22)
-#define BIT_FS_RX_BCN_P0_INT_EN_8822B BIT(21)
-#define BIT_FS_RX_UMD0_INT_EN_8822B BIT(20)
-#define BIT_FS_RX_UMD1_INT_EN_8822B BIT(19)
-#define BIT_FS_RX_BMD0_INT_EN_8822B BIT(18)
-#define BIT_FS_RX_BMD1_INT_EN_8822B BIT(17)
-#define BIT_FS_RXDONE_INT_EN_8822B BIT(16)
-#define BIT_FS_WWLAN_INT_EN_8822B BIT(15)
-#define BIT_FS_SOUND_DONE_INT_EN_8822B BIT(14)
-#define BIT_FS_LP_STBY_INT_EN_8822B BIT(13)
-#define BIT_FS_TRL_MTR_INT_EN_8822B BIT(12)
-#define BIT_FS_BF1_PRETO_INT_EN_8822B BIT(11)
-#define BIT_FS_BF0_PRETO_INT_EN_8822B BIT(10)
-#define BIT_FS_PTCL_RELEASE_MACID_INT_EN_8822B BIT(9)
-#define BIT_FS_LTE_COEX_EN_8822B BIT(6)
-#define BIT_FS_WLACTOFF_INT_EN_8822B BIT(5)
-#define BIT_FS_WLACTON_INT_EN_8822B BIT(4)
-#define BIT_FS_BTCMD_INT_EN_8822B BIT(3)
-#define BIT_FS_REG_MAILBOX_TO_I2C_INT_EN_8822B BIT(2)
-#define BIT_FS_TRPC_TO_INT_EN_V1_8822B BIT(1)
-#define BIT_FS_RPC_O_T_INT_EN_V1_8822B BIT(0)
-
-/* 2 REG_FE1ISR_8822B */
-#define BIT_FS_RXDMA2_DONE_INT_8822B BIT(28)
-#define BIT_FS_RXDONE3_INT_8822B BIT(27)
-#define BIT_FS_RXDONE2_INT_8822B BIT(26)
-#define BIT_FS_RX_BCN_P4_INT_8822B BIT(25)
-#define BIT_FS_RX_BCN_P3_INT_8822B BIT(24)
-#define BIT_FS_RX_BCN_P2_INT_8822B BIT(23)
-#define BIT_FS_RX_BCN_P1_INT_8822B BIT(22)
-#define BIT_FS_RX_BCN_P0_INT_8822B BIT(21)
-#define BIT_FS_RX_UMD0_INT_8822B BIT(20)
-#define BIT_FS_RX_UMD1_INT_8822B BIT(19)
-#define BIT_FS_RX_BMD0_INT_8822B BIT(18)
-#define BIT_FS_RX_BMD1_INT_8822B BIT(17)
-#define BIT_FS_RXDONE_INT_8822B BIT(16)
-#define BIT_FS_WWLAN_INT_8822B BIT(15)
-#define BIT_FS_SOUND_DONE_INT_8822B BIT(14)
-#define BIT_FS_LP_STBY_INT_8822B BIT(13)
-#define BIT_FS_TRL_MTR_INT_8822B BIT(12)
-#define BIT_FS_BF1_PRETO_INT_8822B BIT(11)
-#define BIT_FS_BF0_PRETO_INT_8822B BIT(10)
-#define BIT_FS_PTCL_RELEASE_MACID_INT_8822B BIT(9)
-#define BIT_FS_LTE_COEX_INT_8822B BIT(6)
-#define BIT_FS_WLACTOFF_INT_8822B BIT(5)
-#define BIT_FS_WLACTON_INT_8822B BIT(4)
-#define BIT_FS_BCN_RX_INT_INT_8822B BIT(3)
-#define BIT_FS_MAILBOX_TO_I2C_INT_8822B BIT(2)
-#define BIT_FS_TRPC_TO_INT_8822B BIT(1)
-#define BIT_FS_RPC_O_T_INT_8822B BIT(0)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_CPWM_8822B */
-#define BIT_CPWM_TOGGLING_8822B BIT(31)
-
-#define BIT_SHIFT_CPWM_MOD_8822B 24
-#define BIT_MASK_CPWM_MOD_8822B 0x7f
-#define BIT_CPWM_MOD_8822B(x)                                                  \
-	(((x) & BIT_MASK_CPWM_MOD_8822B) << BIT_SHIFT_CPWM_MOD_8822B)
-#define BIT_GET_CPWM_MOD_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_CPWM_MOD_8822B) & BIT_MASK_CPWM_MOD_8822B)
-
-/* 2 REG_FWIMR_8822B */
-#define BIT_FS_TXBCNOK_MB7_INT_EN_8822B BIT(31)
-#define BIT_FS_TXBCNOK_MB6_INT_EN_8822B BIT(30)
-#define BIT_FS_TXBCNOK_MB5_INT_EN_8822B BIT(29)
-#define BIT_FS_TXBCNOK_MB4_INT_EN_8822B BIT(28)
-#define BIT_FS_TXBCNOK_MB3_INT_EN_8822B BIT(27)
-#define BIT_FS_TXBCNOK_MB2_INT_EN_8822B BIT(26)
-#define BIT_FS_TXBCNOK_MB1_INT_EN_8822B BIT(25)
-#define BIT_FS_TXBCNOK_MB0_INT_EN_8822B BIT(24)
-#define BIT_FS_TXBCNERR_MB7_INT_EN_8822B BIT(23)
-#define BIT_FS_TXBCNERR_MB6_INT_EN_8822B BIT(22)
-#define BIT_FS_TXBCNERR_MB5_INT_EN_8822B BIT(21)
-#define BIT_FS_TXBCNERR_MB4_INT_EN_8822B BIT(20)
-#define BIT_FS_TXBCNERR_MB3_INT_EN_8822B BIT(19)
-#define BIT_FS_TXBCNERR_MB2_INT_EN_8822B BIT(18)
-#define BIT_FS_TXBCNERR_MB1_INT_EN_8822B BIT(17)
-#define BIT_FS_TXBCNERR_MB0_INT_EN_8822B BIT(16)
-#define BIT_CPU_MGQ_TXDONE_INT_EN_8822B BIT(15)
-#define BIT_SIFS_OVERSPEC_INT_EN_8822B BIT(14)
-#define BIT_FS_MGNTQ_RPTR_RELEASE_INT_EN_8822B BIT(13)
-#define BIT_FS_MGNTQFF_TO_INT_EN_8822B BIT(12)
-#define BIT_FS_DDMA1_LP_INT_EN_8822B BIT(11)
-#define BIT_FS_DDMA1_HP_INT_EN_8822B BIT(10)
-#define BIT_FS_DDMA0_LP_INT_EN_8822B BIT(9)
-#define BIT_FS_DDMA0_HP_INT_EN_8822B BIT(8)
-#define BIT_FS_TRXRPT_INT_EN_8822B BIT(7)
-#define BIT_FS_C2H_W_READY_INT_EN_8822B BIT(6)
-#define BIT_FS_HRCV_INT_EN_8822B BIT(5)
-#define BIT_FS_H2CCMD_INT_EN_8822B BIT(4)
-#define BIT_FS_TXPKTIN_INT_EN_8822B BIT(3)
-#define BIT_FS_ERRORHDL_INT_EN_8822B BIT(2)
-#define BIT_FS_TXCCX_INT_EN_8822B BIT(1)
-#define BIT_FS_TXCLOSE_INT_EN_8822B BIT(0)
-
-/* 2 REG_FWISR_8822B */
-#define BIT_FS_TXBCNOK_MB7_INT_8822B BIT(31)
-#define BIT_FS_TXBCNOK_MB6_INT_8822B BIT(30)
-#define BIT_FS_TXBCNOK_MB5_INT_8822B BIT(29)
-#define BIT_FS_TXBCNOK_MB4_INT_8822B BIT(28)
-#define BIT_FS_TXBCNOK_MB3_INT_8822B BIT(27)
-#define BIT_FS_TXBCNOK_MB2_INT_8822B BIT(26)
-#define BIT_FS_TXBCNOK_MB1_INT_8822B BIT(25)
-#define BIT_FS_TXBCNOK_MB0_INT_8822B BIT(24)
-#define BIT_FS_TXBCNERR_MB7_INT_8822B BIT(23)
-#define BIT_FS_TXBCNERR_MB6_INT_8822B BIT(22)
-#define BIT_FS_TXBCNERR_MB5_INT_8822B BIT(21)
-#define BIT_FS_TXBCNERR_MB4_INT_8822B BIT(20)
-#define BIT_FS_TXBCNERR_MB3_INT_8822B BIT(19)
-#define BIT_FS_TXBCNERR_MB2_INT_8822B BIT(18)
-#define BIT_FS_TXBCNERR_MB1_INT_8822B BIT(17)
-#define BIT_FS_TXBCNERR_MB0_INT_8822B BIT(16)
-#define BIT_CPU_MGQ_TXDONE_INT_8822B BIT(15)
-#define BIT_SIFS_OVERSPEC_INT_8822B BIT(14)
-#define BIT_FS_MGNTQ_RPTR_RELEASE_INT_8822B BIT(13)
-#define BIT_FS_MGNTQFF_TO_INT_8822B BIT(12)
-#define BIT_FS_DDMA1_LP_INT_8822B BIT(11)
-#define BIT_FS_DDMA1_HP_INT_8822B BIT(10)
-#define BIT_FS_DDMA0_LP_INT_8822B BIT(9)
-#define BIT_FS_DDMA0_HP_INT_8822B BIT(8)
-#define BIT_FS_TRXRPT_INT_8822B BIT(7)
-#define BIT_FS_C2H_W_READY_INT_8822B BIT(6)
-#define BIT_FS_HRCV_INT_8822B BIT(5)
-#define BIT_FS_H2CCMD_INT_8822B BIT(4)
-#define BIT_FS_TXPKTIN_INT_8822B BIT(3)
-#define BIT_FS_ERRORHDL_INT_8822B BIT(2)
-#define BIT_FS_TXCCX_INT_8822B BIT(1)
-#define BIT_FS_TXCLOSE_INT_8822B BIT(0)
-
-/* 2 REG_FTIMR_8822B */
-#define BIT_PS_TIMER_C_EARLY_INT_EN_8822B BIT(23)
-#define BIT_PS_TIMER_B_EARLY_INT_EN_8822B BIT(22)
-#define BIT_PS_TIMER_A_EARLY_INT_EN_8822B BIT(21)
-#define BIT_CPUMGQ_TX_TIMER_EARLY_INT_EN_8822B BIT(20)
-#define BIT_PS_TIMER_C_INT_EN_8822B BIT(19)
-#define BIT_PS_TIMER_B_INT_EN_8822B BIT(18)
-#define BIT_PS_TIMER_A_INT_EN_8822B BIT(17)
-#define BIT_CPUMGQ_TX_TIMER_INT_EN_8822B BIT(16)
-#define BIT_FS_PS_TIMEOUT2_EN_8822B BIT(15)
-#define BIT_FS_PS_TIMEOUT1_EN_8822B BIT(14)
-#define BIT_FS_PS_TIMEOUT0_EN_8822B BIT(13)
-#define BIT_FS_GTINT8_EN_8822B BIT(8)
-#define BIT_FS_GTINT7_EN_8822B BIT(7)
-#define BIT_FS_GTINT6_EN_8822B BIT(6)
-#define BIT_FS_GTINT5_EN_8822B BIT(5)
-#define BIT_FS_GTINT4_EN_8822B BIT(4)
-#define BIT_FS_GTINT3_EN_8822B BIT(3)
-#define BIT_FS_GTINT2_EN_8822B BIT(2)
-#define BIT_FS_GTINT1_EN_8822B BIT(1)
-#define BIT_FS_GTINT0_EN_8822B BIT(0)
-
-/* 2 REG_FTISR_8822B */
-#define BIT_PS_TIMER_C_EARLY__INT_8822B BIT(23)
-#define BIT_PS_TIMER_B_EARLY__INT_8822B BIT(22)
-#define BIT_PS_TIMER_A_EARLY__INT_8822B BIT(21)
-#define BIT_CPUMGQ_TX_TIMER_EARLY_INT_8822B BIT(20)
-#define BIT_PS_TIMER_C_INT_8822B BIT(19)
-#define BIT_PS_TIMER_B_INT_8822B BIT(18)
-#define BIT_PS_TIMER_A_INT_8822B BIT(17)
-#define BIT_CPUMGQ_TX_TIMER_INT_8822B BIT(16)
-#define BIT_FS_PS_TIMEOUT2_INT_8822B BIT(15)
-#define BIT_FS_PS_TIMEOUT1_INT_8822B BIT(14)
-#define BIT_FS_PS_TIMEOUT0_INT_8822B BIT(13)
-#define BIT_FS_GTINT8_INT_8822B BIT(8)
-#define BIT_FS_GTINT7_INT_8822B BIT(7)
-#define BIT_FS_GTINT6_INT_8822B BIT(6)
-#define BIT_FS_GTINT5_INT_8822B BIT(5)
-#define BIT_FS_GTINT4_INT_8822B BIT(4)
-#define BIT_FS_GTINT3_INT_8822B BIT(3)
-#define BIT_FS_GTINT2_INT_8822B BIT(2)
-#define BIT_FS_GTINT1_INT_8822B BIT(1)
-#define BIT_FS_GTINT0_INT_8822B BIT(0)
-
-/* 2 REG_PKTBUF_DBG_CTRL_8822B */
-
-#define BIT_SHIFT_PKTBUF_WRITE_EN_8822B 24
-#define BIT_MASK_PKTBUF_WRITE_EN_8822B 0xff
-#define BIT_PKTBUF_WRITE_EN_8822B(x)                                           \
-	(((x) & BIT_MASK_PKTBUF_WRITE_EN_8822B)                                \
-	 << BIT_SHIFT_PKTBUF_WRITE_EN_8822B)
-#define BIT_GET_PKTBUF_WRITE_EN_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_PKTBUF_WRITE_EN_8822B) &                            \
-	 BIT_MASK_PKTBUF_WRITE_EN_8822B)
-
-#define BIT_TXRPTBUF_DBG_8822B BIT(23)
-
-/* 2 REG_NOT_VALID_8822B */
-#define BIT_TXPKTBUF_DBG_V2_8822B BIT(20)
-#define BIT_RXPKTBUF_DBG_8822B BIT(16)
-
-#define BIT_SHIFT_PKTBUF_DBG_ADDR_8822B 0
-#define BIT_MASK_PKTBUF_DBG_ADDR_8822B 0x1fff
-#define BIT_PKTBUF_DBG_ADDR_8822B(x)                                           \
-	(((x) & BIT_MASK_PKTBUF_DBG_ADDR_8822B)                                \
-	 << BIT_SHIFT_PKTBUF_DBG_ADDR_8822B)
-#define BIT_GET_PKTBUF_DBG_ADDR_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_PKTBUF_DBG_ADDR_8822B) &                            \
-	 BIT_MASK_PKTBUF_DBG_ADDR_8822B)
-
-/* 2 REG_PKTBUF_DBG_DATA_L_8822B */
-
-#define BIT_SHIFT_PKTBUF_DBG_DATA_L_8822B 0
-#define BIT_MASK_PKTBUF_DBG_DATA_L_8822B 0xffffffffL
-#define BIT_PKTBUF_DBG_DATA_L_8822B(x)                                         \
-	(((x) & BIT_MASK_PKTBUF_DBG_DATA_L_8822B)                              \
-	 << BIT_SHIFT_PKTBUF_DBG_DATA_L_8822B)
-#define BIT_GET_PKTBUF_DBG_DATA_L_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_L_8822B) &                          \
-	 BIT_MASK_PKTBUF_DBG_DATA_L_8822B)
-
-/* 2 REG_PKTBUF_DBG_DATA_H_8822B */
-
-#define BIT_SHIFT_PKTBUF_DBG_DATA_H_8822B 0
-#define BIT_MASK_PKTBUF_DBG_DATA_H_8822B 0xffffffffL
-#define BIT_PKTBUF_DBG_DATA_H_8822B(x)                                         \
-	(((x) & BIT_MASK_PKTBUF_DBG_DATA_H_8822B)                              \
-	 << BIT_SHIFT_PKTBUF_DBG_DATA_H_8822B)
-#define BIT_GET_PKTBUF_DBG_DATA_H_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_H_8822B) &                          \
-	 BIT_MASK_PKTBUF_DBG_DATA_H_8822B)
-
-/* 2 REG_CPWM2_8822B */
-
-#define BIT_SHIFT_L0S_TO_RCVY_NUM_8822B 16
-#define BIT_MASK_L0S_TO_RCVY_NUM_8822B 0xff
-#define BIT_L0S_TO_RCVY_NUM_8822B(x)                                           \
-	(((x) & BIT_MASK_L0S_TO_RCVY_NUM_8822B)                                \
-	 << BIT_SHIFT_L0S_TO_RCVY_NUM_8822B)
-#define BIT_GET_L0S_TO_RCVY_NUM_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_L0S_TO_RCVY_NUM_8822B) &                            \
-	 BIT_MASK_L0S_TO_RCVY_NUM_8822B)
-
-#define BIT_CPWM2_TOGGLING_8822B BIT(15)
-
-#define BIT_SHIFT_CPWM2_MOD_8822B 0
-#define BIT_MASK_CPWM2_MOD_8822B 0x7fff
-#define BIT_CPWM2_MOD_8822B(x)                                                 \
-	(((x) & BIT_MASK_CPWM2_MOD_8822B) << BIT_SHIFT_CPWM2_MOD_8822B)
-#define BIT_GET_CPWM2_MOD_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_CPWM2_MOD_8822B) & BIT_MASK_CPWM2_MOD_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_TC0_CTRL_8822B */
-#define BIT_TC0INT_EN_8822B BIT(26)
-#define BIT_TC0MODE_8822B BIT(25)
-#define BIT_TC0EN_8822B BIT(24)
-
-#define BIT_SHIFT_TC0DATA_8822B 0
-#define BIT_MASK_TC0DATA_8822B 0xffffff
-#define BIT_TC0DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_TC0DATA_8822B) << BIT_SHIFT_TC0DATA_8822B)
-#define BIT_GET_TC0DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TC0DATA_8822B) & BIT_MASK_TC0DATA_8822B)
-
-/* 2 REG_TC1_CTRL_8822B */
-#define BIT_TC1INT_EN_8822B BIT(26)
-#define BIT_TC1MODE_8822B BIT(25)
-#define BIT_TC1EN_8822B BIT(24)
-
-#define BIT_SHIFT_TC1DATA_8822B 0
-#define BIT_MASK_TC1DATA_8822B 0xffffff
-#define BIT_TC1DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_TC1DATA_8822B) << BIT_SHIFT_TC1DATA_8822B)
-#define BIT_GET_TC1DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TC1DATA_8822B) & BIT_MASK_TC1DATA_8822B)
-
-/* 2 REG_TC2_CTRL_8822B */
-#define BIT_TC2INT_EN_8822B BIT(26)
-#define BIT_TC2MODE_8822B BIT(25)
-#define BIT_TC2EN_8822B BIT(24)
-
-#define BIT_SHIFT_TC2DATA_8822B 0
-#define BIT_MASK_TC2DATA_8822B 0xffffff
-#define BIT_TC2DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_TC2DATA_8822B) << BIT_SHIFT_TC2DATA_8822B)
-#define BIT_GET_TC2DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TC2DATA_8822B) & BIT_MASK_TC2DATA_8822B)
-
-/* 2 REG_TC3_CTRL_8822B */
-#define BIT_TC3INT_EN_8822B BIT(26)
-#define BIT_TC3MODE_8822B BIT(25)
-#define BIT_TC3EN_8822B BIT(24)
-
-#define BIT_SHIFT_TC3DATA_8822B 0
-#define BIT_MASK_TC3DATA_8822B 0xffffff
-#define BIT_TC3DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_TC3DATA_8822B) << BIT_SHIFT_TC3DATA_8822B)
-#define BIT_GET_TC3DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TC3DATA_8822B) & BIT_MASK_TC3DATA_8822B)
-
-/* 2 REG_TC4_CTRL_8822B */
-#define BIT_TC4INT_EN_8822B BIT(26)
-#define BIT_TC4MODE_8822B BIT(25)
-#define BIT_TC4EN_8822B BIT(24)
-
-#define BIT_SHIFT_TC4DATA_8822B 0
-#define BIT_MASK_TC4DATA_8822B 0xffffff
-#define BIT_TC4DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_TC4DATA_8822B) << BIT_SHIFT_TC4DATA_8822B)
-#define BIT_GET_TC4DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TC4DATA_8822B) & BIT_MASK_TC4DATA_8822B)
-
-/* 2 REG_TCUNIT_BASE_8822B */
-
-#define BIT_SHIFT_TCUNIT_BASE_8822B 0
-#define BIT_MASK_TCUNIT_BASE_8822B 0x3fff
-#define BIT_TCUNIT_BASE_8822B(x)                                               \
-	(((x) & BIT_MASK_TCUNIT_BASE_8822B) << BIT_SHIFT_TCUNIT_BASE_8822B)
-#define BIT_GET_TCUNIT_BASE_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_TCUNIT_BASE_8822B) & BIT_MASK_TCUNIT_BASE_8822B)
-
-/* 2 REG_TC5_CTRL_8822B */
-#define BIT_TC5INT_EN_8822B BIT(26)
-#define BIT_TC5MODE_8822B BIT(25)
-#define BIT_TC5EN_8822B BIT(24)
-
-#define BIT_SHIFT_TC5DATA_8822B 0
-#define BIT_MASK_TC5DATA_8822B 0xffffff
-#define BIT_TC5DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_TC5DATA_8822B) << BIT_SHIFT_TC5DATA_8822B)
-#define BIT_GET_TC5DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TC5DATA_8822B) & BIT_MASK_TC5DATA_8822B)
-
-/* 2 REG_TC6_CTRL_8822B */
-#define BIT_TC6INT_EN_8822B BIT(26)
-#define BIT_TC6MODE_8822B BIT(25)
-#define BIT_TC6EN_8822B BIT(24)
-
-#define BIT_SHIFT_TC6DATA_8822B 0
-#define BIT_MASK_TC6DATA_8822B 0xffffff
-#define BIT_TC6DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_TC6DATA_8822B) << BIT_SHIFT_TC6DATA_8822B)
-#define BIT_GET_TC6DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TC6DATA_8822B) & BIT_MASK_TC6DATA_8822B)
-
-/* 2 REG_MBIST_FAIL_8822B */
-
-#define BIT_SHIFT_8051_MBIST_FAIL_8822B 26
-#define BIT_MASK_8051_MBIST_FAIL_8822B 0x7
-#define BIT_8051_MBIST_FAIL_8822B(x)                                           \
-	(((x) & BIT_MASK_8051_MBIST_FAIL_8822B)                                \
-	 << BIT_SHIFT_8051_MBIST_FAIL_8822B)
-#define BIT_GET_8051_MBIST_FAIL_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_8051_MBIST_FAIL_8822B) &                            \
-	 BIT_MASK_8051_MBIST_FAIL_8822B)
-
-#define BIT_SHIFT_USB_MBIST_FAIL_8822B 24
-#define BIT_MASK_USB_MBIST_FAIL_8822B 0x3
-#define BIT_USB_MBIST_FAIL_8822B(x)                                            \
-	(((x) & BIT_MASK_USB_MBIST_FAIL_8822B)                                 \
-	 << BIT_SHIFT_USB_MBIST_FAIL_8822B)
-#define BIT_GET_USB_MBIST_FAIL_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_USB_MBIST_FAIL_8822B) &                             \
-	 BIT_MASK_USB_MBIST_FAIL_8822B)
-
-#define BIT_SHIFT_PCIE_MBIST_FAIL_8822B 16
-#define BIT_MASK_PCIE_MBIST_FAIL_8822B 0x3f
-#define BIT_PCIE_MBIST_FAIL_8822B(x)                                           \
-	(((x) & BIT_MASK_PCIE_MBIST_FAIL_8822B)                                \
-	 << BIT_SHIFT_PCIE_MBIST_FAIL_8822B)
-#define BIT_GET_PCIE_MBIST_FAIL_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_PCIE_MBIST_FAIL_8822B) &                            \
-	 BIT_MASK_PCIE_MBIST_FAIL_8822B)
-
-#define BIT_SHIFT_MAC_MBIST_FAIL_8822B 0
-#define BIT_MASK_MAC_MBIST_FAIL_8822B 0xfff
-#define BIT_MAC_MBIST_FAIL_8822B(x)                                            \
-	(((x) & BIT_MASK_MAC_MBIST_FAIL_8822B)                                 \
-	 << BIT_SHIFT_MAC_MBIST_FAIL_8822B)
-#define BIT_GET_MAC_MBIST_FAIL_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_MAC_MBIST_FAIL_8822B) &                             \
-	 BIT_MASK_MAC_MBIST_FAIL_8822B)
-
-/* 2 REG_MBIST_START_PAUSE_8822B */
-
-#define BIT_SHIFT_8051_MBIST_START_PAUSE_8822B 26
-#define BIT_MASK_8051_MBIST_START_PAUSE_8822B 0x7
-#define BIT_8051_MBIST_START_PAUSE_8822B(x)                                    \
-	(((x) & BIT_MASK_8051_MBIST_START_PAUSE_8822B)                         \
-	 << BIT_SHIFT_8051_MBIST_START_PAUSE_8822B)
-#define BIT_GET_8051_MBIST_START_PAUSE_8822B(x)                                \
-	(((x) >> BIT_SHIFT_8051_MBIST_START_PAUSE_8822B) &                     \
-	 BIT_MASK_8051_MBIST_START_PAUSE_8822B)
-
-#define BIT_SHIFT_USB_MBIST_START_PAUSE_8822B 24
-#define BIT_MASK_USB_MBIST_START_PAUSE_8822B 0x3
-#define BIT_USB_MBIST_START_PAUSE_8822B(x)                                     \
-	(((x) & BIT_MASK_USB_MBIST_START_PAUSE_8822B)                          \
-	 << BIT_SHIFT_USB_MBIST_START_PAUSE_8822B)
-#define BIT_GET_USB_MBIST_START_PAUSE_8822B(x)                                 \
-	(((x) >> BIT_SHIFT_USB_MBIST_START_PAUSE_8822B) &                      \
-	 BIT_MASK_USB_MBIST_START_PAUSE_8822B)
-
-#define BIT_SHIFT_PCIE_MBIST_START_PAUSE_8822B 16
-#define BIT_MASK_PCIE_MBIST_START_PAUSE_8822B 0x3f
-#define BIT_PCIE_MBIST_START_PAUSE_8822B(x)                                    \
-	(((x) & BIT_MASK_PCIE_MBIST_START_PAUSE_8822B)                         \
-	 << BIT_SHIFT_PCIE_MBIST_START_PAUSE_8822B)
-#define BIT_GET_PCIE_MBIST_START_PAUSE_8822B(x)                                \
-	(((x) >> BIT_SHIFT_PCIE_MBIST_START_PAUSE_8822B) &                     \
-	 BIT_MASK_PCIE_MBIST_START_PAUSE_8822B)
-
-#define BIT_SHIFT_MAC_MBIST_START_PAUSE_8822B 0
-#define BIT_MASK_MAC_MBIST_START_PAUSE_8822B 0xfff
-#define BIT_MAC_MBIST_START_PAUSE_8822B(x)                                     \
-	(((x) & BIT_MASK_MAC_MBIST_START_PAUSE_8822B)                          \
-	 << BIT_SHIFT_MAC_MBIST_START_PAUSE_8822B)
-#define BIT_GET_MAC_MBIST_START_PAUSE_8822B(x)                                 \
-	(((x) >> BIT_SHIFT_MAC_MBIST_START_PAUSE_8822B) &                      \
-	 BIT_MASK_MAC_MBIST_START_PAUSE_8822B)
-
-/* 2 REG_MBIST_DONE_8822B */
-
-#define BIT_SHIFT_8051_MBIST_DONE_8822B 26
-#define BIT_MASK_8051_MBIST_DONE_8822B 0x7
-#define BIT_8051_MBIST_DONE_8822B(x)                                           \
-	(((x) & BIT_MASK_8051_MBIST_DONE_8822B)                                \
-	 << BIT_SHIFT_8051_MBIST_DONE_8822B)
-#define BIT_GET_8051_MBIST_DONE_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_8051_MBIST_DONE_8822B) &                            \
-	 BIT_MASK_8051_MBIST_DONE_8822B)
-
-#define BIT_SHIFT_USB_MBIST_DONE_8822B 24
-#define BIT_MASK_USB_MBIST_DONE_8822B 0x3
-#define BIT_USB_MBIST_DONE_8822B(x)                                            \
-	(((x) & BIT_MASK_USB_MBIST_DONE_8822B)                                 \
-	 << BIT_SHIFT_USB_MBIST_DONE_8822B)
-#define BIT_GET_USB_MBIST_DONE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_USB_MBIST_DONE_8822B) &                             \
-	 BIT_MASK_USB_MBIST_DONE_8822B)
-
-#define BIT_SHIFT_PCIE_MBIST_DONE_8822B 16
-#define BIT_MASK_PCIE_MBIST_DONE_8822B 0x3f
-#define BIT_PCIE_MBIST_DONE_8822B(x)                                           \
-	(((x) & BIT_MASK_PCIE_MBIST_DONE_8822B)                                \
-	 << BIT_SHIFT_PCIE_MBIST_DONE_8822B)
-#define BIT_GET_PCIE_MBIST_DONE_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_PCIE_MBIST_DONE_8822B) &                            \
-	 BIT_MASK_PCIE_MBIST_DONE_8822B)
-
-#define BIT_SHIFT_MAC_MBIST_DONE_8822B 0
-#define BIT_MASK_MAC_MBIST_DONE_8822B 0xfff
-#define BIT_MAC_MBIST_DONE_8822B(x)                                            \
-	(((x) & BIT_MASK_MAC_MBIST_DONE_8822B)                                 \
-	 << BIT_SHIFT_MAC_MBIST_DONE_8822B)
-#define BIT_GET_MAC_MBIST_DONE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_MAC_MBIST_DONE_8822B) &                             \
-	 BIT_MASK_MAC_MBIST_DONE_8822B)
-
-/* 2 REG_MBIST_FAIL_NRML_8822B */
-
-#define BIT_SHIFT_MBIST_FAIL_NRML_8822B 0
-#define BIT_MASK_MBIST_FAIL_NRML_8822B 0xffffffffL
-#define BIT_MBIST_FAIL_NRML_8822B(x)                                           \
-	(((x) & BIT_MASK_MBIST_FAIL_NRML_8822B)                                \
-	 << BIT_SHIFT_MBIST_FAIL_NRML_8822B)
-#define BIT_GET_MBIST_FAIL_NRML_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_MBIST_FAIL_NRML_8822B) &                            \
-	 BIT_MASK_MBIST_FAIL_NRML_8822B)
-
-/* 2 REG_AES_DECRPT_DATA_8822B */
-
-#define BIT_SHIFT_IPS_CFG_ADDR_8822B 0
-#define BIT_MASK_IPS_CFG_ADDR_8822B 0xff
-#define BIT_IPS_CFG_ADDR_8822B(x)                                              \
-	(((x) & BIT_MASK_IPS_CFG_ADDR_8822B) << BIT_SHIFT_IPS_CFG_ADDR_8822B)
-#define BIT_GET_IPS_CFG_ADDR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_IPS_CFG_ADDR_8822B) & BIT_MASK_IPS_CFG_ADDR_8822B)
-
-/* 2 REG_AES_DECRPT_CFG_8822B */
-
-#define BIT_SHIFT_IPS_CFG_DATA_8822B 0
-#define BIT_MASK_IPS_CFG_DATA_8822B 0xffffffffL
-#define BIT_IPS_CFG_DATA_8822B(x)                                              \
-	(((x) & BIT_MASK_IPS_CFG_DATA_8822B) << BIT_SHIFT_IPS_CFG_DATA_8822B)
-#define BIT_GET_IPS_CFG_DATA_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_IPS_CFG_DATA_8822B) & BIT_MASK_IPS_CFG_DATA_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_TMETER_8822B */
-#define BIT_TEMP_VALID_8822B BIT(31)
-
-#define BIT_SHIFT_TEMP_VALUE_8822B 24
-#define BIT_MASK_TEMP_VALUE_8822B 0x3f
-#define BIT_TEMP_VALUE_8822B(x)                                                \
-	(((x) & BIT_MASK_TEMP_VALUE_8822B) << BIT_SHIFT_TEMP_VALUE_8822B)
-#define BIT_GET_TEMP_VALUE_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_TEMP_VALUE_8822B) & BIT_MASK_TEMP_VALUE_8822B)
-
-#define BIT_SHIFT_REG_TMETER_TIMER_8822B 8
-#define BIT_MASK_REG_TMETER_TIMER_8822B 0xfff
-#define BIT_REG_TMETER_TIMER_8822B(x)                                          \
-	(((x) & BIT_MASK_REG_TMETER_TIMER_8822B)                               \
-	 << BIT_SHIFT_REG_TMETER_TIMER_8822B)
-#define BIT_GET_REG_TMETER_TIMER_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_REG_TMETER_TIMER_8822B) &                           \
-	 BIT_MASK_REG_TMETER_TIMER_8822B)
-
-#define BIT_SHIFT_REG_TEMP_DELTA_8822B 2
-#define BIT_MASK_REG_TEMP_DELTA_8822B 0x3f
-#define BIT_REG_TEMP_DELTA_8822B(x)                                            \
-	(((x) & BIT_MASK_REG_TEMP_DELTA_8822B)                                 \
-	 << BIT_SHIFT_REG_TEMP_DELTA_8822B)
-#define BIT_GET_REG_TEMP_DELTA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_REG_TEMP_DELTA_8822B) &                             \
-	 BIT_MASK_REG_TEMP_DELTA_8822B)
-
-#define BIT_REG_TMETER_EN_8822B BIT(0)
-
-/* 2 REG_OSC_32K_CTRL_8822B */
-
-#define BIT_SHIFT_OSC_32K_CLKGEN_0_8822B 16
-#define BIT_MASK_OSC_32K_CLKGEN_0_8822B 0xffff
-#define BIT_OSC_32K_CLKGEN_0_8822B(x)                                          \
-	(((x) & BIT_MASK_OSC_32K_CLKGEN_0_8822B)                               \
-	 << BIT_SHIFT_OSC_32K_CLKGEN_0_8822B)
-#define BIT_GET_OSC_32K_CLKGEN_0_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_OSC_32K_CLKGEN_0_8822B) &                           \
-	 BIT_MASK_OSC_32K_CLKGEN_0_8822B)
-
-#define BIT_SHIFT_OSC_32K_RES_COMP_8822B 4
-#define BIT_MASK_OSC_32K_RES_COMP_8822B 0x3
-#define BIT_OSC_32K_RES_COMP_8822B(x)                                          \
-	(((x) & BIT_MASK_OSC_32K_RES_COMP_8822B)                               \
-	 << BIT_SHIFT_OSC_32K_RES_COMP_8822B)
-#define BIT_GET_OSC_32K_RES_COMP_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_OSC_32K_RES_COMP_8822B) &                           \
-	 BIT_MASK_OSC_32K_RES_COMP_8822B)
-
-#define BIT_OSC_32K_OUT_SEL_8822B BIT(3)
-#define BIT_ISO_WL_2_OSC_32K_8822B BIT(1)
-#define BIT_POW_CKGEN_8822B BIT(0)
-
-/* 2 REG_32K_CAL_REG1_8822B */
-#define BIT_CAL_32K_REG_WR_8822B BIT(31)
-#define BIT_CAL_32K_DBG_SEL_8822B BIT(22)
-
-#define BIT_SHIFT_CAL_32K_REG_ADDR_8822B 16
-#define BIT_MASK_CAL_32K_REG_ADDR_8822B 0x3f
-#define BIT_CAL_32K_REG_ADDR_8822B(x)                                          \
-	(((x) & BIT_MASK_CAL_32K_REG_ADDR_8822B)                               \
-	 << BIT_SHIFT_CAL_32K_REG_ADDR_8822B)
-#define BIT_GET_CAL_32K_REG_ADDR_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_CAL_32K_REG_ADDR_8822B) &                           \
-	 BIT_MASK_CAL_32K_REG_ADDR_8822B)
-
-#define BIT_SHIFT_CAL_32K_REG_DATA_8822B 0
-#define BIT_MASK_CAL_32K_REG_DATA_8822B 0xffff
-#define BIT_CAL_32K_REG_DATA_8822B(x)                                          \
-	(((x) & BIT_MASK_CAL_32K_REG_DATA_8822B)                               \
-	 << BIT_SHIFT_CAL_32K_REG_DATA_8822B)
-#define BIT_GET_CAL_32K_REG_DATA_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_CAL_32K_REG_DATA_8822B) &                           \
-	 BIT_MASK_CAL_32K_REG_DATA_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_C2HEVT_8822B */
-
-#define BIT_SHIFT_C2HEVT_MSG_8822B 0
-#define BIT_MASK_C2HEVT_MSG_8822B 0xffffffffffffffffffffffffffffffffL
-#define BIT_C2HEVT_MSG_8822B(x)                                                \
-	(((x) & BIT_MASK_C2HEVT_MSG_8822B) << BIT_SHIFT_C2HEVT_MSG_8822B)
-#define BIT_GET_C2HEVT_MSG_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_C2HEVT_MSG_8822B) & BIT_MASK_C2HEVT_MSG_8822B)
-
-/* 2 REG_SW_DEFINED_PAGE1_8822B */
-
-#define BIT_SHIFT_SW_DEFINED_PAGE1_8822B 0
-#define BIT_MASK_SW_DEFINED_PAGE1_8822B 0xffffffffffffffffL
-#define BIT_SW_DEFINED_PAGE1_8822B(x)                                          \
-	(((x) & BIT_MASK_SW_DEFINED_PAGE1_8822B)                               \
-	 << BIT_SHIFT_SW_DEFINED_PAGE1_8822B)
-#define BIT_GET_SW_DEFINED_PAGE1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_SW_DEFINED_PAGE1_8822B) &                           \
-	 BIT_MASK_SW_DEFINED_PAGE1_8822B)
-
-/* 2 REG_MCUTST_I_8822B */
-
-#define BIT_SHIFT_MCUDMSG_I_8822B 0
-#define BIT_MASK_MCUDMSG_I_8822B 0xffffffffL
-#define BIT_MCUDMSG_I_8822B(x)                                                 \
-	(((x) & BIT_MASK_MCUDMSG_I_8822B) << BIT_SHIFT_MCUDMSG_I_8822B)
-#define BIT_GET_MCUDMSG_I_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_MCUDMSG_I_8822B) & BIT_MASK_MCUDMSG_I_8822B)
-
-/* 2 REG_MCUTST_II_8822B */
-
-#define BIT_SHIFT_MCUDMSG_II_8822B 0
-#define BIT_MASK_MCUDMSG_II_8822B 0xffffffffL
-#define BIT_MCUDMSG_II_8822B(x)                                                \
-	(((x) & BIT_MASK_MCUDMSG_II_8822B) << BIT_SHIFT_MCUDMSG_II_8822B)
-#define BIT_GET_MCUDMSG_II_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_MCUDMSG_II_8822B) & BIT_MASK_MCUDMSG_II_8822B)
-
-/* 2 REG_FMETHR_8822B */
-#define BIT_FMSG_INT_8822B BIT(31)
-
-#define BIT_SHIFT_FW_MSG_8822B 0
-#define BIT_MASK_FW_MSG_8822B 0xffffffffL
-#define BIT_FW_MSG_8822B(x)                                                    \
-	(((x) & BIT_MASK_FW_MSG_8822B) << BIT_SHIFT_FW_MSG_8822B)
-#define BIT_GET_FW_MSG_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_FW_MSG_8822B) & BIT_MASK_FW_MSG_8822B)
-
-/* 2 REG_HMETFR_8822B */
-
-#define BIT_SHIFT_HRCV_MSG_8822B 24
-#define BIT_MASK_HRCV_MSG_8822B 0xff
-#define BIT_HRCV_MSG_8822B(x)                                                  \
-	(((x) & BIT_MASK_HRCV_MSG_8822B) << BIT_SHIFT_HRCV_MSG_8822B)
-#define BIT_GET_HRCV_MSG_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_HRCV_MSG_8822B) & BIT_MASK_HRCV_MSG_8822B)
-
-#define BIT_INT_BOX3_8822B BIT(3)
-#define BIT_INT_BOX2_8822B BIT(2)
-#define BIT_INT_BOX1_8822B BIT(1)
-#define BIT_INT_BOX0_8822B BIT(0)
-
-/* 2 REG_HMEBOX0_8822B */
-
-#define BIT_SHIFT_HOST_MSG_0_8822B 0
-#define BIT_MASK_HOST_MSG_0_8822B 0xffffffffL
-#define BIT_HOST_MSG_0_8822B(x)                                                \
-	(((x) & BIT_MASK_HOST_MSG_0_8822B) << BIT_SHIFT_HOST_MSG_0_8822B)
-#define BIT_GET_HOST_MSG_0_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_HOST_MSG_0_8822B) & BIT_MASK_HOST_MSG_0_8822B)
-
-/* 2 REG_HMEBOX1_8822B */
-
-#define BIT_SHIFT_HOST_MSG_1_8822B 0
-#define BIT_MASK_HOST_MSG_1_8822B 0xffffffffL
-#define BIT_HOST_MSG_1_8822B(x)                                                \
-	(((x) & BIT_MASK_HOST_MSG_1_8822B) << BIT_SHIFT_HOST_MSG_1_8822B)
-#define BIT_GET_HOST_MSG_1_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_HOST_MSG_1_8822B) & BIT_MASK_HOST_MSG_1_8822B)
-
-/* 2 REG_HMEBOX2_8822B */
-
-#define BIT_SHIFT_HOST_MSG_2_8822B 0
-#define BIT_MASK_HOST_MSG_2_8822B 0xffffffffL
-#define BIT_HOST_MSG_2_8822B(x)                                                \
-	(((x) & BIT_MASK_HOST_MSG_2_8822B) << BIT_SHIFT_HOST_MSG_2_8822B)
-#define BIT_GET_HOST_MSG_2_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_HOST_MSG_2_8822B) & BIT_MASK_HOST_MSG_2_8822B)
-
-/* 2 REG_HMEBOX3_8822B */
-
-#define BIT_SHIFT_HOST_MSG_3_8822B 0
-#define BIT_MASK_HOST_MSG_3_8822B 0xffffffffL
-#define BIT_HOST_MSG_3_8822B(x)                                                \
-	(((x) & BIT_MASK_HOST_MSG_3_8822B) << BIT_SHIFT_HOST_MSG_3_8822B)
-#define BIT_GET_HOST_MSG_3_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_HOST_MSG_3_8822B) & BIT_MASK_HOST_MSG_3_8822B)
-
-/* 2 REG_LLT_INIT_8822B */
-
-#define BIT_SHIFT_LLTE_RWM_8822B 30
-#define BIT_MASK_LLTE_RWM_8822B 0x3
-#define BIT_LLTE_RWM_8822B(x)                                                  \
-	(((x) & BIT_MASK_LLTE_RWM_8822B) << BIT_SHIFT_LLTE_RWM_8822B)
-#define BIT_GET_LLTE_RWM_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_LLTE_RWM_8822B) & BIT_MASK_LLTE_RWM_8822B)
-
-#define BIT_SHIFT_LLTINI_PDATA_V1_8822B 16
-#define BIT_MASK_LLTINI_PDATA_V1_8822B 0xfff
-#define BIT_LLTINI_PDATA_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_LLTINI_PDATA_V1_8822B)                                \
-	 << BIT_SHIFT_LLTINI_PDATA_V1_8822B)
-#define BIT_GET_LLTINI_PDATA_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_LLTINI_PDATA_V1_8822B) &                            \
-	 BIT_MASK_LLTINI_PDATA_V1_8822B)
-
-#define BIT_SHIFT_LLTINI_HDATA_V1_8822B 0
-#define BIT_MASK_LLTINI_HDATA_V1_8822B 0xfff
-#define BIT_LLTINI_HDATA_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_LLTINI_HDATA_V1_8822B)                                \
-	 << BIT_SHIFT_LLTINI_HDATA_V1_8822B)
-#define BIT_GET_LLTINI_HDATA_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_LLTINI_HDATA_V1_8822B) &                            \
-	 BIT_MASK_LLTINI_HDATA_V1_8822B)
-
-/* 2 REG_LLT_INIT_ADDR_8822B */
-
-#define BIT_SHIFT_LLTINI_ADDR_V1_8822B 0
-#define BIT_MASK_LLTINI_ADDR_V1_8822B 0xfff
-#define BIT_LLTINI_ADDR_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_LLTINI_ADDR_V1_8822B)                                 \
-	 << BIT_SHIFT_LLTINI_ADDR_V1_8822B)
-#define BIT_GET_LLTINI_ADDR_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_LLTINI_ADDR_V1_8822B) &                             \
-	 BIT_MASK_LLTINI_ADDR_V1_8822B)
-
-/* 2 REG_BB_ACCESS_CTRL_8822B */
-
-#define BIT_SHIFT_BB_WRITE_READ_8822B 30
-#define BIT_MASK_BB_WRITE_READ_8822B 0x3
-#define BIT_BB_WRITE_READ_8822B(x)                                             \
-	(((x) & BIT_MASK_BB_WRITE_READ_8822B) << BIT_SHIFT_BB_WRITE_READ_8822B)
-#define BIT_GET_BB_WRITE_READ_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BB_WRITE_READ_8822B) & BIT_MASK_BB_WRITE_READ_8822B)
-
-#define BIT_SHIFT_BB_WRITE_EN_8822B 12
-#define BIT_MASK_BB_WRITE_EN_8822B 0xf
-#define BIT_BB_WRITE_EN_8822B(x)                                               \
-	(((x) & BIT_MASK_BB_WRITE_EN_8822B) << BIT_SHIFT_BB_WRITE_EN_8822B)
-#define BIT_GET_BB_WRITE_EN_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_BB_WRITE_EN_8822B) & BIT_MASK_BB_WRITE_EN_8822B)
-
-#define BIT_SHIFT_BB_ADDR_8822B 2
-#define BIT_MASK_BB_ADDR_8822B 0x1ff
-#define BIT_BB_ADDR_8822B(x)                                                   \
-	(((x) & BIT_MASK_BB_ADDR_8822B) << BIT_SHIFT_BB_ADDR_8822B)
-#define BIT_GET_BB_ADDR_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_BB_ADDR_8822B) & BIT_MASK_BB_ADDR_8822B)
-
-#define BIT_BB_ERRACC_8822B BIT(0)
-
-/* 2 REG_BB_ACCESS_DATA_8822B */
-
-#define BIT_SHIFT_BB_DATA_8822B 0
-#define BIT_MASK_BB_DATA_8822B 0xffffffffL
-#define BIT_BB_DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_BB_DATA_8822B) << BIT_SHIFT_BB_DATA_8822B)
-#define BIT_GET_BB_DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_BB_DATA_8822B) & BIT_MASK_BB_DATA_8822B)
-
-/* 2 REG_HMEBOX_E0_8822B */
-
-#define BIT_SHIFT_HMEBOX_E0_8822B 0
-#define BIT_MASK_HMEBOX_E0_8822B 0xffffffffL
-#define BIT_HMEBOX_E0_8822B(x)                                                 \
-	(((x) & BIT_MASK_HMEBOX_E0_8822B) << BIT_SHIFT_HMEBOX_E0_8822B)
-#define BIT_GET_HMEBOX_E0_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_HMEBOX_E0_8822B) & BIT_MASK_HMEBOX_E0_8822B)
-
-/* 2 REG_HMEBOX_E1_8822B */
-
-#define BIT_SHIFT_HMEBOX_E1_8822B 0
-#define BIT_MASK_HMEBOX_E1_8822B 0xffffffffL
-#define BIT_HMEBOX_E1_8822B(x)                                                 \
-	(((x) & BIT_MASK_HMEBOX_E1_8822B) << BIT_SHIFT_HMEBOX_E1_8822B)
-#define BIT_GET_HMEBOX_E1_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_HMEBOX_E1_8822B) & BIT_MASK_HMEBOX_E1_8822B)
-
-/* 2 REG_HMEBOX_E2_8822B */
-
-#define BIT_SHIFT_HMEBOX_E2_8822B 0
-#define BIT_MASK_HMEBOX_E2_8822B 0xffffffffL
-#define BIT_HMEBOX_E2_8822B(x)                                                 \
-	(((x) & BIT_MASK_HMEBOX_E2_8822B) << BIT_SHIFT_HMEBOX_E2_8822B)
-#define BIT_GET_HMEBOX_E2_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_HMEBOX_E2_8822B) & BIT_MASK_HMEBOX_E2_8822B)
-
-/* 2 REG_HMEBOX_E3_8822B */
-
-#define BIT_SHIFT_HMEBOX_E3_8822B 0
-#define BIT_MASK_HMEBOX_E3_8822B 0xffffffffL
-#define BIT_HMEBOX_E3_8822B(x)                                                 \
-	(((x) & BIT_MASK_HMEBOX_E3_8822B) << BIT_SHIFT_HMEBOX_E3_8822B)
-#define BIT_GET_HMEBOX_E3_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_HMEBOX_E3_8822B) & BIT_MASK_HMEBOX_E3_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_CR_EXT_8822B */
-
-#define BIT_SHIFT_PHY_REQ_DELAY_8822B 24
-#define BIT_MASK_PHY_REQ_DELAY_8822B 0xf
-#define BIT_PHY_REQ_DELAY_8822B(x)                                             \
-	(((x) & BIT_MASK_PHY_REQ_DELAY_8822B) << BIT_SHIFT_PHY_REQ_DELAY_8822B)
-#define BIT_GET_PHY_REQ_DELAY_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PHY_REQ_DELAY_8822B) & BIT_MASK_PHY_REQ_DELAY_8822B)
-
-#define BIT_SPD_DOWN_8822B BIT(16)
-
-#define BIT_SHIFT_NETYPE4_8822B 4
-#define BIT_MASK_NETYPE4_8822B 0x3
-#define BIT_NETYPE4_8822B(x)                                                   \
-	(((x) & BIT_MASK_NETYPE4_8822B) << BIT_SHIFT_NETYPE4_8822B)
-#define BIT_GET_NETYPE4_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_NETYPE4_8822B) & BIT_MASK_NETYPE4_8822B)
-
-#define BIT_SHIFT_NETYPE3_8822B 2
-#define BIT_MASK_NETYPE3_8822B 0x3
-#define BIT_NETYPE3_8822B(x)                                                   \
-	(((x) & BIT_MASK_NETYPE3_8822B) << BIT_SHIFT_NETYPE3_8822B)
-#define BIT_GET_NETYPE3_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_NETYPE3_8822B) & BIT_MASK_NETYPE3_8822B)
-
-#define BIT_SHIFT_NETYPE2_8822B 0
-#define BIT_MASK_NETYPE2_8822B 0x3
-#define BIT_NETYPE2_8822B(x)                                                   \
-	(((x) & BIT_MASK_NETYPE2_8822B) << BIT_SHIFT_NETYPE2_8822B)
-#define BIT_GET_NETYPE2_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_NETYPE2_8822B) & BIT_MASK_NETYPE2_8822B)
-
-/* 2 REG_FWFF_8822B */
-
-#define BIT_SHIFT_PKTNUM_TH_V1_8822B 24
-#define BIT_MASK_PKTNUM_TH_V1_8822B 0xff
-#define BIT_PKTNUM_TH_V1_8822B(x)                                              \
-	(((x) & BIT_MASK_PKTNUM_TH_V1_8822B) << BIT_SHIFT_PKTNUM_TH_V1_8822B)
-#define BIT_GET_PKTNUM_TH_V1_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_PKTNUM_TH_V1_8822B) & BIT_MASK_PKTNUM_TH_V1_8822B)
-
-#define BIT_SHIFT_TIMER_TH_8822B 16
-#define BIT_MASK_TIMER_TH_8822B 0xff
-#define BIT_TIMER_TH_8822B(x)                                                  \
-	(((x) & BIT_MASK_TIMER_TH_8822B) << BIT_SHIFT_TIMER_TH_8822B)
-#define BIT_GET_TIMER_TH_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_TIMER_TH_8822B) & BIT_MASK_TIMER_TH_8822B)
-
-#define BIT_SHIFT_RXPKT1ENADDR_8822B 0
-#define BIT_MASK_RXPKT1ENADDR_8822B 0xffff
-#define BIT_RXPKT1ENADDR_8822B(x)                                              \
-	(((x) & BIT_MASK_RXPKT1ENADDR_8822B) << BIT_SHIFT_RXPKT1ENADDR_8822B)
-#define BIT_GET_RXPKT1ENADDR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_RXPKT1ENADDR_8822B) & BIT_MASK_RXPKT1ENADDR_8822B)
-
-/* 2 REG_RXFF_PTR_V1_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_RXFF0_RDPTR_V2_8822B 0
-#define BIT_MASK_RXFF0_RDPTR_V2_8822B 0x3ffff
-#define BIT_RXFF0_RDPTR_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_RXFF0_RDPTR_V2_8822B)                                 \
-	 << BIT_SHIFT_RXFF0_RDPTR_V2_8822B)
-#define BIT_GET_RXFF0_RDPTR_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_RXFF0_RDPTR_V2_8822B) &                             \
-	 BIT_MASK_RXFF0_RDPTR_V2_8822B)
-
-/* 2 REG_RXFF_WTR_V1_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_RXFF0_WTPTR_V2_8822B 0
-#define BIT_MASK_RXFF0_WTPTR_V2_8822B 0x3ffff
-#define BIT_RXFF0_WTPTR_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_RXFF0_WTPTR_V2_8822B)                                 \
-	 << BIT_SHIFT_RXFF0_WTPTR_V2_8822B)
-#define BIT_GET_RXFF0_WTPTR_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_RXFF0_WTPTR_V2_8822B) &                             \
-	 BIT_MASK_RXFF0_WTPTR_V2_8822B)
-
-/* 2 REG_FE2IMR_8822B */
-#define BIT__FE4ISR__IND_MSK_8822B BIT(29)
-#define BIT_FS_TXSC_DESC_DONE_INT_EN_8822B BIT(28)
-#define BIT_FS_TXSC_BKDONE_INT_EN_8822B BIT(27)
-#define BIT_FS_TXSC_BEDONE_INT_EN_8822B BIT(26)
-#define BIT_FS_TXSC_VIDONE_INT_EN_8822B BIT(25)
-#define BIT_FS_TXSC_VODONE_INT_EN_8822B BIT(24)
-#define BIT_FS_ATIM_MB7_INT_EN_8822B BIT(23)
-#define BIT_FS_ATIM_MB6_INT_EN_8822B BIT(22)
-#define BIT_FS_ATIM_MB5_INT_EN_8822B BIT(21)
-#define BIT_FS_ATIM_MB4_INT_EN_8822B BIT(20)
-#define BIT_FS_ATIM_MB3_INT_EN_8822B BIT(19)
-#define BIT_FS_ATIM_MB2_INT_EN_8822B BIT(18)
-#define BIT_FS_ATIM_MB1_INT_EN_8822B BIT(17)
-#define BIT_FS_ATIM_MB0_INT_EN_8822B BIT(16)
-#define BIT_FS_TBTT4INT_EN_8822B BIT(11)
-#define BIT_FS_TBTT3INT_EN_8822B BIT(10)
-#define BIT_FS_TBTT2INT_EN_8822B BIT(9)
-#define BIT_FS_TBTT1INT_EN_8822B BIT(8)
-#define BIT_FS_TBTT0_MB7INT_EN_8822B BIT(7)
-#define BIT_FS_TBTT0_MB6INT_EN_8822B BIT(6)
-#define BIT_FS_TBTT0_MB5INT_EN_8822B BIT(5)
-#define BIT_FS_TBTT0_MB4INT_EN_8822B BIT(4)
-#define BIT_FS_TBTT0_MB3INT_EN_8822B BIT(3)
-#define BIT_FS_TBTT0_MB2INT_EN_8822B BIT(2)
-#define BIT_FS_TBTT0_MB1INT_EN_8822B BIT(1)
-#define BIT_FS_TBTT0_INT_EN_8822B BIT(0)
-
-/* 2 REG_FE2ISR_8822B */
-#define BIT__FE4ISR__IND_INT_8822B BIT(29)
-#define BIT_FS_TXSC_DESC_DONE_INT_8822B BIT(28)
-#define BIT_FS_TXSC_BKDONE_INT_8822B BIT(27)
-#define BIT_FS_TXSC_BEDONE_INT_8822B BIT(26)
-#define BIT_FS_TXSC_VIDONE_INT_8822B BIT(25)
-#define BIT_FS_TXSC_VODONE_INT_8822B BIT(24)
-#define BIT_FS_ATIM_MB7_INT_8822B BIT(23)
-#define BIT_FS_ATIM_MB6_INT_8822B BIT(22)
-#define BIT_FS_ATIM_MB5_INT_8822B BIT(21)
-#define BIT_FS_ATIM_MB4_INT_8822B BIT(20)
-#define BIT_FS_ATIM_MB3_INT_8822B BIT(19)
-#define BIT_FS_ATIM_MB2_INT_8822B BIT(18)
-#define BIT_FS_ATIM_MB1_INT_8822B BIT(17)
-#define BIT_FS_ATIM_MB0_INT_8822B BIT(16)
-#define BIT_FS_TBTT4INT_8822B BIT(11)
-#define BIT_FS_TBTT3INT_8822B BIT(10)
-#define BIT_FS_TBTT2INT_8822B BIT(9)
-#define BIT_FS_TBTT1INT_8822B BIT(8)
-#define BIT_FS_TBTT0_MB7INT_8822B BIT(7)
-#define BIT_FS_TBTT0_MB6INT_8822B BIT(6)
-#define BIT_FS_TBTT0_MB5INT_8822B BIT(5)
-#define BIT_FS_TBTT0_MB4INT_8822B BIT(4)
-#define BIT_FS_TBTT0_MB3INT_8822B BIT(3)
-#define BIT_FS_TBTT0_MB2INT_8822B BIT(2)
-#define BIT_FS_TBTT0_MB1INT_8822B BIT(1)
-#define BIT_FS_TBTT0_INT_8822B BIT(0)
-
-/* 2 REG_FE3IMR_8822B */
-#define BIT_FS_CLI3_MTI_BCNIVLEAR_INT__EN_8822B BIT(31)
-#define BIT_FS_CLI2_MTI_BCNIVLEAR_INT__EN_8822B BIT(30)
-#define BIT_FS_CLI1_MTI_BCNIVLEAR_INT__EN_8822B BIT(29)
-#define BIT_FS_CLI0_MTI_BCNIVLEAR_INT__EN_8822B BIT(28)
-#define BIT_FS_BCNDMA4_INT_EN_8822B BIT(27)
-#define BIT_FS_BCNDMA3_INT_EN_8822B BIT(26)
-#define BIT_FS_BCNDMA2_INT_EN_8822B BIT(25)
-#define BIT_FS_BCNDMA1_INT_EN_8822B BIT(24)
-#define BIT_FS_BCNDMA0_MB7_INT_EN_8822B BIT(23)
-#define BIT_FS_BCNDMA0_MB6_INT_EN_8822B BIT(22)
-#define BIT_FS_BCNDMA0_MB5_INT_EN_8822B BIT(21)
-#define BIT_FS_BCNDMA0_MB4_INT_EN_8822B BIT(20)
-#define BIT_FS_BCNDMA0_MB3_INT_EN_8822B BIT(19)
-#define BIT_FS_BCNDMA0_MB2_INT_EN_8822B BIT(18)
-#define BIT_FS_BCNDMA0_MB1_INT_EN_8822B BIT(17)
-#define BIT_FS_BCNDMA0_INT_EN_8822B BIT(16)
-#define BIT_FS_MTI_BCNIVLEAR_INT__EN_8822B BIT(15)
-#define BIT_FS_BCNERLY4_INT_EN_8822B BIT(11)
-#define BIT_FS_BCNERLY3_INT_EN_8822B BIT(10)
-#define BIT_FS_BCNERLY2_INT_EN_8822B BIT(9)
-#define BIT_FS_BCNERLY1_INT_EN_8822B BIT(8)
-#define BIT_FS_BCNERLY0_MB7INT_EN_8822B BIT(7)
-#define BIT_FS_BCNERLY0_MB6INT_EN_8822B BIT(6)
-#define BIT_FS_BCNERLY0_MB5INT_EN_8822B BIT(5)
-#define BIT_FS_BCNERLY0_MB4INT_EN_8822B BIT(4)
-#define BIT_FS_BCNERLY0_MB3INT_EN_8822B BIT(3)
-#define BIT_FS_BCNERLY0_MB2INT_EN_8822B BIT(2)
-#define BIT_FS_BCNERLY0_MB1INT_EN_8822B BIT(1)
-#define BIT_FS_BCNERLY0_INT_EN_8822B BIT(0)
-
-/* 2 REG_FE3ISR_8822B */
-#define BIT_FS_CLI3_MTI_BCNIVLEAR_INT_8822B BIT(31)
-#define BIT_FS_CLI2_MTI_BCNIVLEAR_INT_8822B BIT(30)
-#define BIT_FS_CLI1_MTI_BCNIVLEAR_INT_8822B BIT(29)
-#define BIT_FS_CLI0_MTI_BCNIVLEAR_INT_8822B BIT(28)
-#define BIT_FS_BCNDMA4_INT_8822B BIT(27)
-#define BIT_FS_BCNDMA3_INT_8822B BIT(26)
-#define BIT_FS_BCNDMA2_INT_8822B BIT(25)
-#define BIT_FS_BCNDMA1_INT_8822B BIT(24)
-#define BIT_FS_BCNDMA0_MB7_INT_8822B BIT(23)
-#define BIT_FS_BCNDMA0_MB6_INT_8822B BIT(22)
-#define BIT_FS_BCNDMA0_MB5_INT_8822B BIT(21)
-#define BIT_FS_BCNDMA0_MB4_INT_8822B BIT(20)
-#define BIT_FS_BCNDMA0_MB3_INT_8822B BIT(19)
-#define BIT_FS_BCNDMA0_MB2_INT_8822B BIT(18)
-#define BIT_FS_BCNDMA0_MB1_INT_8822B BIT(17)
-#define BIT_FS_BCNDMA0_INT_8822B BIT(16)
-#define BIT_FS_MTI_BCNIVLEAR_INT_8822B BIT(15)
-#define BIT_FS_BCNERLY4_INT_8822B BIT(11)
-#define BIT_FS_BCNERLY3_INT_8822B BIT(10)
-#define BIT_FS_BCNERLY2_INT_8822B BIT(9)
-#define BIT_FS_BCNERLY1_INT_8822B BIT(8)
-#define BIT_FS_BCNERLY0_MB7INT_8822B BIT(7)
-#define BIT_FS_BCNERLY0_MB6INT_8822B BIT(6)
-#define BIT_FS_BCNERLY0_MB5INT_8822B BIT(5)
-#define BIT_FS_BCNERLY0_MB4INT_8822B BIT(4)
-#define BIT_FS_BCNERLY0_MB3INT_8822B BIT(3)
-#define BIT_FS_BCNERLY0_MB2INT_8822B BIT(2)
-#define BIT_FS_BCNERLY0_MB1INT_8822B BIT(1)
-#define BIT_FS_BCNERLY0_INT_8822B BIT(0)
-
-/* 2 REG_FE4IMR_8822B */
-#define BIT_FS_CLI3_TXPKTIN_INT_EN_8822B BIT(19)
-#define BIT_FS_CLI2_TXPKTIN_INT_EN_8822B BIT(18)
-#define BIT_FS_CLI1_TXPKTIN_INT_EN_8822B BIT(17)
-#define BIT_FS_CLI0_TXPKTIN_INT_EN_8822B BIT(16)
-#define BIT_FS_CLI3_RX_UMD0_INT_EN_8822B BIT(15)
-#define BIT_FS_CLI3_RX_UMD1_INT_EN_8822B BIT(14)
-#define BIT_FS_CLI3_RX_BMD0_INT_EN_8822B BIT(13)
-#define BIT_FS_CLI3_RX_BMD1_INT_EN_8822B BIT(12)
-#define BIT_FS_CLI2_RX_UMD0_INT_EN_8822B BIT(11)
-#define BIT_FS_CLI2_RX_UMD1_INT_EN_8822B BIT(10)
-#define BIT_FS_CLI2_RX_BMD0_INT_EN_8822B BIT(9)
-#define BIT_FS_CLI2_RX_BMD1_INT_EN_8822B BIT(8)
-#define BIT_FS_CLI1_RX_UMD0_INT_EN_8822B BIT(7)
-#define BIT_FS_CLI1_RX_UMD1_INT_EN_8822B BIT(6)
-#define BIT_FS_CLI1_RX_BMD0_INT_EN_8822B BIT(5)
-#define BIT_FS_CLI1_RX_BMD1_INT_EN_8822B BIT(4)
-#define BIT_FS_CLI0_RX_UMD0_INT_EN_8822B BIT(3)
-#define BIT_FS_CLI0_RX_UMD1_INT_EN_8822B BIT(2)
-#define BIT_FS_CLI0_RX_BMD0_INT_EN_8822B BIT(1)
-#define BIT_FS_CLI0_RX_BMD1_INT_EN_8822B BIT(0)
-
-/* 2 REG_FE4ISR_8822B */
-#define BIT_FS_CLI3_TXPKTIN_INT_8822B BIT(19)
-#define BIT_FS_CLI2_TXPKTIN_INT_8822B BIT(18)
-#define BIT_FS_CLI1_TXPKTIN_INT_8822B BIT(17)
-#define BIT_FS_CLI0_TXPKTIN_INT_8822B BIT(16)
-#define BIT_FS_CLI3_RX_UMD0_INT_8822B BIT(15)
-#define BIT_FS_CLI3_RX_UMD1_INT_8822B BIT(14)
-#define BIT_FS_CLI3_RX_BMD0_INT_8822B BIT(13)
-#define BIT_FS_CLI3_RX_BMD1_INT_8822B BIT(12)
-#define BIT_FS_CLI2_RX_UMD0_INT_8822B BIT(11)
-#define BIT_FS_CLI2_RX_UMD1_INT_8822B BIT(10)
-#define BIT_FS_CLI2_RX_BMD0_INT_8822B BIT(9)
-#define BIT_FS_CLI2_RX_BMD1_INT_8822B BIT(8)
-#define BIT_FS_CLI1_RX_UMD0_INT_8822B BIT(7)
-#define BIT_FS_CLI1_RX_UMD1_INT_8822B BIT(6)
-#define BIT_FS_CLI1_RX_BMD0_INT_8822B BIT(5)
-#define BIT_FS_CLI1_RX_BMD1_INT_8822B BIT(4)
-#define BIT_FS_CLI0_RX_UMD0_INT_8822B BIT(3)
-#define BIT_FS_CLI0_RX_UMD1_INT_8822B BIT(2)
-#define BIT_FS_CLI0_RX_BMD0_INT_8822B BIT(1)
-#define BIT_FS_CLI0_RX_BMD1_INT_8822B BIT(0)
-
-/* 2 REG_FT1IMR_8822B */
-#define BIT__FT2ISR__IND_MSK_8822B BIT(30)
-#define BIT_FTM_PTT_INT_EN_8822B BIT(29)
-#define BIT_RXFTMREQ_INT_EN_8822B BIT(28)
-#define BIT_RXFTM_INT_EN_8822B BIT(27)
-#define BIT_TXFTM_INT_EN_8822B BIT(26)
-#define BIT_FS_H2C_CMD_OK_INT_EN_8822B BIT(25)
-#define BIT_FS_H2C_CMD_FULL_INT_EN_8822B BIT(24)
-#define BIT_FS_MACID_PWRCHANGE5_INT_EN_8822B BIT(23)
-#define BIT_FS_MACID_PWRCHANGE4_INT_EN_8822B BIT(22)
-#define BIT_FS_MACID_PWRCHANGE3_INT_EN_8822B BIT(21)
-#define BIT_FS_MACID_PWRCHANGE2_INT_EN_8822B BIT(20)
-#define BIT_FS_MACID_PWRCHANGE1_INT_EN_8822B BIT(19)
-#define BIT_FS_MACID_PWRCHANGE0_INT_EN_8822B BIT(18)
-#define BIT_FS_CTWEND2_INT_EN_8822B BIT(17)
-#define BIT_FS_CTWEND1_INT_EN_8822B BIT(16)
-#define BIT_FS_CTWEND0_INT_EN_8822B BIT(15)
-#define BIT_FS_TX_NULL1_INT_EN_8822B BIT(14)
-#define BIT_FS_TX_NULL0_INT_EN_8822B BIT(13)
-#define BIT_FS_TSF_BIT32_TOGGLE_EN_8822B BIT(12)
-#define BIT_FS_P2P_RFON2_INT_EN_8822B BIT(11)
-#define BIT_FS_P2P_RFOFF2_INT_EN_8822B BIT(10)
-#define BIT_FS_P2P_RFON1_INT_EN_8822B BIT(9)
-#define BIT_FS_P2P_RFOFF1_INT_EN_8822B BIT(8)
-#define BIT_FS_P2P_RFON0_INT_EN_8822B BIT(7)
-#define BIT_FS_P2P_RFOFF0_INT_EN_8822B BIT(6)
-#define BIT_FS_RX_UAPSDMD1_EN_8822B BIT(5)
-#define BIT_FS_RX_UAPSDMD0_EN_8822B BIT(4)
-#define BIT_FS_TRIGGER_PKT_EN_8822B BIT(3)
-#define BIT_FS_EOSP_INT_EN_8822B BIT(2)
-#define BIT_FS_RPWM2_INT_EN_8822B BIT(1)
-#define BIT_FS_RPWM_INT_EN_8822B BIT(0)
-
-/* 2 REG_FT1ISR_8822B */
-#define BIT__FT2ISR__IND_INT_8822B BIT(30)
-#define BIT_FTM_PTT_INT_8822B BIT(29)
-#define BIT_RXFTMREQ_INT_8822B BIT(28)
-#define BIT_RXFTM_INT_8822B BIT(27)
-#define BIT_TXFTM_INT_8822B BIT(26)
-#define BIT_FS_H2C_CMD_OK_INT_8822B BIT(25)
-#define BIT_FS_H2C_CMD_FULL_INT_8822B BIT(24)
-#define BIT_FS_MACID_PWRCHANGE5_INT_8822B BIT(23)
-#define BIT_FS_MACID_PWRCHANGE4_INT_8822B BIT(22)
-#define BIT_FS_MACID_PWRCHANGE3_INT_8822B BIT(21)
-#define BIT_FS_MACID_PWRCHANGE2_INT_8822B BIT(20)
-#define BIT_FS_MACID_PWRCHANGE1_INT_8822B BIT(19)
-#define BIT_FS_MACID_PWRCHANGE0_INT_8822B BIT(18)
-#define BIT_FS_CTWEND2_INT_8822B BIT(17)
-#define BIT_FS_CTWEND1_INT_8822B BIT(16)
-#define BIT_FS_CTWEND0_INT_8822B BIT(15)
-#define BIT_FS_TX_NULL1_INT_8822B BIT(14)
-#define BIT_FS_TX_NULL0_INT_8822B BIT(13)
-#define BIT_FS_TSF_BIT32_TOGGLE_INT_8822B BIT(12)
-#define BIT_FS_P2P_RFON2_INT_8822B BIT(11)
-#define BIT_FS_P2P_RFOFF2_INT_8822B BIT(10)
-#define BIT_FS_P2P_RFON1_INT_8822B BIT(9)
-#define BIT_FS_P2P_RFOFF1_INT_8822B BIT(8)
-#define BIT_FS_P2P_RFON0_INT_8822B BIT(7)
-#define BIT_FS_P2P_RFOFF0_INT_8822B BIT(6)
-#define BIT_FS_RX_UAPSDMD1_INT_8822B BIT(5)
-#define BIT_FS_RX_UAPSDMD0_INT_8822B BIT(4)
-#define BIT_FS_TRIGGER_PKT_INT_8822B BIT(3)
-#define BIT_FS_EOSP_INT_8822B BIT(2)
-#define BIT_FS_RPWM2_INT_8822B BIT(1)
-#define BIT_FS_RPWM_INT_8822B BIT(0)
-
-/* 2 REG_SPWR0_8822B */
-
-#define BIT_SHIFT_MID_31TO0_8822B 0
-#define BIT_MASK_MID_31TO0_8822B 0xffffffffL
-#define BIT_MID_31TO0_8822B(x)                                                 \
-	(((x) & BIT_MASK_MID_31TO0_8822B) << BIT_SHIFT_MID_31TO0_8822B)
-#define BIT_GET_MID_31TO0_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_MID_31TO0_8822B) & BIT_MASK_MID_31TO0_8822B)
-
-/* 2 REG_SPWR1_8822B */
-
-#define BIT_SHIFT_MID_63TO32_8822B 0
-#define BIT_MASK_MID_63TO32_8822B 0xffffffffL
-#define BIT_MID_63TO32_8822B(x)                                                \
-	(((x) & BIT_MASK_MID_63TO32_8822B) << BIT_SHIFT_MID_63TO32_8822B)
-#define BIT_GET_MID_63TO32_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_MID_63TO32_8822B) & BIT_MASK_MID_63TO32_8822B)
-
-/* 2 REG_SPWR2_8822B */
-
-#define BIT_SHIFT_MID_95O64_8822B 0
-#define BIT_MASK_MID_95O64_8822B 0xffffffffL
-#define BIT_MID_95O64_8822B(x)                                                 \
-	(((x) & BIT_MASK_MID_95O64_8822B) << BIT_SHIFT_MID_95O64_8822B)
-#define BIT_GET_MID_95O64_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_MID_95O64_8822B) & BIT_MASK_MID_95O64_8822B)
-
-/* 2 REG_SPWR3_8822B */
-
-#define BIT_SHIFT_MID_127TO96_8822B 0
-#define BIT_MASK_MID_127TO96_8822B 0xffffffffL
-#define BIT_MID_127TO96_8822B(x)                                               \
-	(((x) & BIT_MASK_MID_127TO96_8822B) << BIT_SHIFT_MID_127TO96_8822B)
-#define BIT_GET_MID_127TO96_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_MID_127TO96_8822B) & BIT_MASK_MID_127TO96_8822B)
-
-/* 2 REG_POWSEQ_8822B */
-
-#define BIT_SHIFT_SEQNUM_MID_8822B 16
-#define BIT_MASK_SEQNUM_MID_8822B 0xffff
-#define BIT_SEQNUM_MID_8822B(x)                                                \
-	(((x) & BIT_MASK_SEQNUM_MID_8822B) << BIT_SHIFT_SEQNUM_MID_8822B)
-#define BIT_GET_SEQNUM_MID_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_SEQNUM_MID_8822B) & BIT_MASK_SEQNUM_MID_8822B)
-
-#define BIT_SHIFT_REF_MID_8822B 0
-#define BIT_MASK_REF_MID_8822B 0x7f
-#define BIT_REF_MID_8822B(x)                                                   \
-	(((x) & BIT_MASK_REF_MID_8822B) << BIT_SHIFT_REF_MID_8822B)
-#define BIT_GET_REF_MID_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_REF_MID_8822B) & BIT_MASK_REF_MID_8822B)
-
-/* 2 REG_TC7_CTRL_V1_8822B */
-#define BIT_TC7INT_EN_8822B BIT(26)
-#define BIT_TC7MODE_8822B BIT(25)
-#define BIT_TC7EN_8822B BIT(24)
-
-#define BIT_SHIFT_TC7DATA_8822B 0
-#define BIT_MASK_TC7DATA_8822B 0xffffff
-#define BIT_TC7DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_TC7DATA_8822B) << BIT_SHIFT_TC7DATA_8822B)
-#define BIT_GET_TC7DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TC7DATA_8822B) & BIT_MASK_TC7DATA_8822B)
-
-/* 2 REG_TC8_CTRL_V1_8822B */
-#define BIT_TC8INT_EN_8822B BIT(26)
-#define BIT_TC8MODE_8822B BIT(25)
-#define BIT_TC8EN_8822B BIT(24)
-
-#define BIT_SHIFT_TC8DATA_8822B 0
-#define BIT_MASK_TC8DATA_8822B 0xffffff
-#define BIT_TC8DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_TC8DATA_8822B) << BIT_SHIFT_TC8DATA_8822B)
-#define BIT_GET_TC8DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_TC8DATA_8822B) & BIT_MASK_TC8DATA_8822B)
-
-/* 2 REG_FT2IMR_8822B */
-#define BIT_FS_CLI3_RX_UAPSDMD1_EN_8822B BIT(31)
-#define BIT_FS_CLI3_RX_UAPSDMD0_EN_8822B BIT(30)
-#define BIT_FS_CLI3_TRIGGER_PKT_EN_8822B BIT(29)
-#define BIT_FS_CLI3_EOSP_INT_EN_8822B BIT(28)
-#define BIT_FS_CLI2_RX_UAPSDMD1_EN_8822B BIT(27)
-#define BIT_FS_CLI2_RX_UAPSDMD0_EN_8822B BIT(26)
-#define BIT_FS_CLI2_TRIGGER_PKT_EN_8822B BIT(25)
-#define BIT_FS_CLI2_EOSP_INT_EN_8822B BIT(24)
-#define BIT_FS_CLI1_RX_UAPSDMD1_EN_8822B BIT(23)
-#define BIT_FS_CLI1_RX_UAPSDMD0_EN_8822B BIT(22)
-#define BIT_FS_CLI1_TRIGGER_PKT_EN_8822B BIT(21)
-#define BIT_FS_CLI1_EOSP_INT_EN_8822B BIT(20)
-#define BIT_FS_CLI0_RX_UAPSDMD1_EN_8822B BIT(19)
-#define BIT_FS_CLI0_RX_UAPSDMD0_EN_8822B BIT(18)
-#define BIT_FS_CLI0_TRIGGER_PKT_EN_8822B BIT(17)
-#define BIT_FS_CLI0_EOSP_INT_EN_8822B BIT(16)
-#define BIT_FS_TSF_BIT32_TOGGLE_P2P2_EN_8822B BIT(9)
-#define BIT_FS_TSF_BIT32_TOGGLE_P2P1_EN_8822B BIT(8)
-#define BIT_FS_CLI3_TX_NULL1_INT_EN_8822B BIT(7)
-#define BIT_FS_CLI3_TX_NULL0_INT_EN_8822B BIT(6)
-#define BIT_FS_CLI2_TX_NULL1_INT_EN_8822B BIT(5)
-#define BIT_FS_CLI2_TX_NULL0_INT_EN_8822B BIT(4)
-#define BIT_FS_CLI1_TX_NULL1_INT_EN_8822B BIT(3)
-#define BIT_FS_CLI1_TX_NULL0_INT_EN_8822B BIT(2)
-#define BIT_FS_CLI0_TX_NULL1_INT_EN_8822B BIT(1)
-#define BIT_FS_CLI0_TX_NULL0_INT_EN_8822B BIT(0)
-
-/* 2 REG_FT2ISR_8822B */
-#define BIT_FS_CLI3_RX_UAPSDMD1_INT_8822B BIT(31)
-#define BIT_FS_CLI3_RX_UAPSDMD0_INT_8822B BIT(30)
-#define BIT_FS_CLI3_TRIGGER_PKT_INT_8822B BIT(29)
-#define BIT_FS_CLI3_EOSP_INT_8822B BIT(28)
-#define BIT_FS_CLI2_RX_UAPSDMD1_INT_8822B BIT(27)
-#define BIT_FS_CLI2_RX_UAPSDMD0_INT_8822B BIT(26)
-#define BIT_FS_CLI2_TRIGGER_PKT_INT_8822B BIT(25)
-#define BIT_FS_CLI2_EOSP_INT_8822B BIT(24)
-#define BIT_FS_CLI1_RX_UAPSDMD1_INT_8822B BIT(23)
-#define BIT_FS_CLI1_RX_UAPSDMD0_INT_8822B BIT(22)
-#define BIT_FS_CLI1_TRIGGER_PKT_INT_8822B BIT(21)
-#define BIT_FS_CLI1_EOSP_INT_8822B BIT(20)
-#define BIT_FS_CLI0_RX_UAPSDMD1_INT_8822B BIT(19)
-#define BIT_FS_CLI0_RX_UAPSDMD0_INT_8822B BIT(18)
-#define BIT_FS_CLI0_TRIGGER_PKT_INT_8822B BIT(17)
-#define BIT_FS_CLI0_EOSP_INT_8822B BIT(16)
-#define BIT_FS_TSF_BIT32_TOGGLE_P2P2_INT_8822B BIT(9)
-#define BIT_FS_TSF_BIT32_TOGGLE_P2P1_INT_8822B BIT(8)
-#define BIT_FS_CLI3_TX_NULL1_INT_8822B BIT(7)
-#define BIT_FS_CLI3_TX_NULL0_INT_8822B BIT(6)
-#define BIT_FS_CLI2_TX_NULL1_INT_8822B BIT(5)
-#define BIT_FS_CLI2_TX_NULL0_INT_8822B BIT(4)
-#define BIT_FS_CLI1_TX_NULL1_INT_8822B BIT(3)
-#define BIT_FS_CLI1_TX_NULL0_INT_8822B BIT(2)
-#define BIT_FS_CLI0_TX_NULL1_INT_8822B BIT(1)
-#define BIT_FS_CLI0_TX_NULL0_INT_8822B BIT(0)
-
-/* 2 REG_MSG2_8822B */
-
-#define BIT_SHIFT_FW_MSG2_8822B 0
-#define BIT_MASK_FW_MSG2_8822B 0xffffffffL
-#define BIT_FW_MSG2_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_MSG2_8822B) << BIT_SHIFT_FW_MSG2_8822B)
-#define BIT_GET_FW_MSG2_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_MSG2_8822B) & BIT_MASK_FW_MSG2_8822B)
-
-/* 2 REG_MSG3_8822B */
-
-#define BIT_SHIFT_FW_MSG3_8822B 0
-#define BIT_MASK_FW_MSG3_8822B 0xffffffffL
-#define BIT_FW_MSG3_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_MSG3_8822B) << BIT_SHIFT_FW_MSG3_8822B)
-#define BIT_GET_FW_MSG3_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_MSG3_8822B) & BIT_MASK_FW_MSG3_8822B)
-
-/* 2 REG_MSG4_8822B */
-
-#define BIT_SHIFT_FW_MSG4_8822B 0
-#define BIT_MASK_FW_MSG4_8822B 0xffffffffL
-#define BIT_FW_MSG4_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_MSG4_8822B) << BIT_SHIFT_FW_MSG4_8822B)
-#define BIT_GET_FW_MSG4_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_MSG4_8822B) & BIT_MASK_FW_MSG4_8822B)
-
-/* 2 REG_MSG5_8822B */
-
-#define BIT_SHIFT_FW_MSG5_8822B 0
-#define BIT_MASK_FW_MSG5_8822B 0xffffffffL
-#define BIT_FW_MSG5_8822B(x)                                                   \
-	(((x) & BIT_MASK_FW_MSG5_8822B) << BIT_SHIFT_FW_MSG5_8822B)
-#define BIT_GET_FW_MSG5_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FW_MSG5_8822B) & BIT_MASK_FW_MSG5_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_FIFOPAGE_CTRL_1_8822B */
-
-#define BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1_8822B 16
-#define BIT_MASK_TX_OQT_HE_FREE_SPACE_V1_8822B 0xff
-#define BIT_TX_OQT_HE_FREE_SPACE_V1_8822B(x)                                   \
-	(((x) & BIT_MASK_TX_OQT_HE_FREE_SPACE_V1_8822B)                        \
-	 << BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1_8822B)
-#define BIT_GET_TX_OQT_HE_FREE_SPACE_V1_8822B(x)                               \
-	(((x) >> BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1_8822B) &                    \
-	 BIT_MASK_TX_OQT_HE_FREE_SPACE_V1_8822B)
-
-#define BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1_8822B 0
-#define BIT_MASK_TX_OQT_NL_FREE_SPACE_V1_8822B 0xff
-#define BIT_TX_OQT_NL_FREE_SPACE_V1_8822B(x)                                   \
-	(((x) & BIT_MASK_TX_OQT_NL_FREE_SPACE_V1_8822B)                        \
-	 << BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1_8822B)
-#define BIT_GET_TX_OQT_NL_FREE_SPACE_V1_8822B(x)                               \
-	(((x) >> BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1_8822B) &                    \
-	 BIT_MASK_TX_OQT_NL_FREE_SPACE_V1_8822B)
-
-/* 2 REG_FIFOPAGE_CTRL_2_8822B */
-#define BIT_BCN_VALID_1_V1_8822B BIT(31)
-
-#define BIT_SHIFT_BCN_HEAD_1_V1_8822B 16
-#define BIT_MASK_BCN_HEAD_1_V1_8822B 0xfff
-#define BIT_BCN_HEAD_1_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_BCN_HEAD_1_V1_8822B) << BIT_SHIFT_BCN_HEAD_1_V1_8822B)
-#define BIT_GET_BCN_HEAD_1_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BCN_HEAD_1_V1_8822B) & BIT_MASK_BCN_HEAD_1_V1_8822B)
-
-#define BIT_BCN_VALID_V1_8822B BIT(15)
-
-#define BIT_SHIFT_BCN_HEAD_V1_8822B 0
-#define BIT_MASK_BCN_HEAD_V1_8822B 0xfff
-#define BIT_BCN_HEAD_V1_8822B(x)                                               \
-	(((x) & BIT_MASK_BCN_HEAD_V1_8822B) << BIT_SHIFT_BCN_HEAD_V1_8822B)
-#define BIT_GET_BCN_HEAD_V1_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_BCN_HEAD_V1_8822B) & BIT_MASK_BCN_HEAD_V1_8822B)
-
-/* 2 REG_AUTO_LLT_V1_8822B */
-
-#define BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B 24
-#define BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B 0xff
-#define BIT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B(x)                            \
-	(((x) & BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B)                 \
-	 << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B)
-#define BIT_GET_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B(x)                        \
-	(((x) >> BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B) &             \
-	 BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1_8822B)
-
-#define BIT_SHIFT_LLT_FREE_PAGE_V1_8822B 8
-#define BIT_MASK_LLT_FREE_PAGE_V1_8822B 0xffff
-#define BIT_LLT_FREE_PAGE_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_LLT_FREE_PAGE_V1_8822B)                               \
-	 << BIT_SHIFT_LLT_FREE_PAGE_V1_8822B)
-#define BIT_GET_LLT_FREE_PAGE_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_LLT_FREE_PAGE_V1_8822B) &                           \
-	 BIT_MASK_LLT_FREE_PAGE_V1_8822B)
-
-#define BIT_SHIFT_BLK_DESC_NUM_8822B 4
-#define BIT_MASK_BLK_DESC_NUM_8822B 0xf
-#define BIT_BLK_DESC_NUM_8822B(x)                                              \
-	(((x) & BIT_MASK_BLK_DESC_NUM_8822B) << BIT_SHIFT_BLK_DESC_NUM_8822B)
-#define BIT_GET_BLK_DESC_NUM_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BLK_DESC_NUM_8822B) & BIT_MASK_BLK_DESC_NUM_8822B)
-
-#define BIT_R_BCN_HEAD_SEL_8822B BIT(3)
-#define BIT_R_EN_BCN_SW_HEAD_SEL_8822B BIT(2)
-#define BIT_LLT_DBG_SEL_8822B BIT(1)
-#define BIT_AUTO_INIT_LLT_V1_8822B BIT(0)
-
-/* 2 REG_TXDMA_OFFSET_CHK_8822B */
-#define BIT_EM_CHKSUM_FIN_8822B BIT(31)
-#define BIT_EMN_PCIE_DMA_MOD_8822B BIT(30)
-#define BIT_EN_TXQUE_CLR_8822B BIT(29)
-#define BIT_EN_PCIE_FIFO_MODE_8822B BIT(28)
-
-#define BIT_SHIFT_PG_UNDER_TH_V1_8822B 16
-#define BIT_MASK_PG_UNDER_TH_V1_8822B 0xfff
-#define BIT_PG_UNDER_TH_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_PG_UNDER_TH_V1_8822B)                                 \
-	 << BIT_SHIFT_PG_UNDER_TH_V1_8822B)
-#define BIT_GET_PG_UNDER_TH_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_PG_UNDER_TH_V1_8822B) &                             \
-	 BIT_MASK_PG_UNDER_TH_V1_8822B)
-
-#define BIT_RESTORE_H2C_ADDRESS_8822B BIT(15)
-#define BIT_SDIO_TXDESC_CHKSUM_EN_8822B BIT(13)
-#define BIT_RST_RDPTR_8822B BIT(12)
-#define BIT_RST_WRPTR_8822B BIT(11)
-#define BIT_CHK_PG_TH_EN_8822B BIT(10)
-#define BIT_DROP_DATA_EN_8822B BIT(9)
-#define BIT_CHECK_OFFSET_EN_8822B BIT(8)
-
-#define BIT_SHIFT_CHECK_OFFSET_8822B 0
-#define BIT_MASK_CHECK_OFFSET_8822B 0xff
-#define BIT_CHECK_OFFSET_8822B(x)                                              \
-	(((x) & BIT_MASK_CHECK_OFFSET_8822B) << BIT_SHIFT_CHECK_OFFSET_8822B)
-#define BIT_GET_CHECK_OFFSET_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_CHECK_OFFSET_8822B) & BIT_MASK_CHECK_OFFSET_8822B)
-
-/* 2 REG_TXDMA_STATUS_8822B */
-#define BIT_HI_OQT_UDN_8822B BIT(17)
-#define BIT_HI_OQT_OVF_8822B BIT(16)
-#define BIT_PAYLOAD_CHKSUM_ERR_8822B BIT(15)
-#define BIT_PAYLOAD_UDN_8822B BIT(14)
-#define BIT_PAYLOAD_OVF_8822B BIT(13)
-#define BIT_DSC_CHKSUM_FAIL_8822B BIT(12)
-#define BIT_UNKNOWN_QSEL_8822B BIT(11)
-#define BIT_EP_QSEL_DIFF_8822B BIT(10)
-#define BIT_TX_OFFS_UNMATCH_8822B BIT(9)
-#define BIT_TXOQT_UDN_8822B BIT(8)
-#define BIT_TXOQT_OVF_8822B BIT(7)
-#define BIT_TXDMA_SFF_UDN_8822B BIT(6)
-#define BIT_TXDMA_SFF_OVF_8822B BIT(5)
-#define BIT_LLT_NULL_PG_8822B BIT(4)
-#define BIT_PAGE_UDN_8822B BIT(3)
-#define BIT_PAGE_OVF_8822B BIT(2)
-#define BIT_TXFF_PG_UDN_8822B BIT(1)
-#define BIT_TXFF_PG_OVF_8822B BIT(0)
-
-/* 2 REG_TX_DMA_DBG_8822B */
-
-/* 2 REG_TQPNT1_8822B */
-
-#define BIT_SHIFT_HPQ_HIGH_TH_V1_8822B 16
-#define BIT_MASK_HPQ_HIGH_TH_V1_8822B 0xfff
-#define BIT_HPQ_HIGH_TH_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HPQ_HIGH_TH_V1_8822B)                                 \
-	 << BIT_SHIFT_HPQ_HIGH_TH_V1_8822B)
-#define BIT_GET_HPQ_HIGH_TH_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HPQ_HIGH_TH_V1_8822B) &                             \
-	 BIT_MASK_HPQ_HIGH_TH_V1_8822B)
-
-#define BIT_SHIFT_HPQ_LOW_TH_V1_8822B 0
-#define BIT_MASK_HPQ_LOW_TH_V1_8822B 0xfff
-#define BIT_HPQ_LOW_TH_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_HPQ_LOW_TH_V1_8822B) << BIT_SHIFT_HPQ_LOW_TH_V1_8822B)
-#define BIT_GET_HPQ_LOW_TH_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HPQ_LOW_TH_V1_8822B) & BIT_MASK_HPQ_LOW_TH_V1_8822B)
-
-/* 2 REG_TQPNT2_8822B */
-
-#define BIT_SHIFT_NPQ_HIGH_TH_V1_8822B 16
-#define BIT_MASK_NPQ_HIGH_TH_V1_8822B 0xfff
-#define BIT_NPQ_HIGH_TH_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_NPQ_HIGH_TH_V1_8822B)                                 \
-	 << BIT_SHIFT_NPQ_HIGH_TH_V1_8822B)
-#define BIT_GET_NPQ_HIGH_TH_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_NPQ_HIGH_TH_V1_8822B) &                             \
-	 BIT_MASK_NPQ_HIGH_TH_V1_8822B)
-
-#define BIT_SHIFT_NPQ_LOW_TH_V1_8822B 0
-#define BIT_MASK_NPQ_LOW_TH_V1_8822B 0xfff
-#define BIT_NPQ_LOW_TH_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_NPQ_LOW_TH_V1_8822B) << BIT_SHIFT_NPQ_LOW_TH_V1_8822B)
-#define BIT_GET_NPQ_LOW_TH_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_NPQ_LOW_TH_V1_8822B) & BIT_MASK_NPQ_LOW_TH_V1_8822B)
-
-/* 2 REG_TQPNT3_8822B */
-
-#define BIT_SHIFT_LPQ_HIGH_TH_V1_8822B 16
-#define BIT_MASK_LPQ_HIGH_TH_V1_8822B 0xfff
-#define BIT_LPQ_HIGH_TH_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_LPQ_HIGH_TH_V1_8822B)                                 \
-	 << BIT_SHIFT_LPQ_HIGH_TH_V1_8822B)
-#define BIT_GET_LPQ_HIGH_TH_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_LPQ_HIGH_TH_V1_8822B) &                             \
-	 BIT_MASK_LPQ_HIGH_TH_V1_8822B)
-
-#define BIT_SHIFT_LPQ_LOW_TH_V1_8822B 0
-#define BIT_MASK_LPQ_LOW_TH_V1_8822B 0xfff
-#define BIT_LPQ_LOW_TH_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_LPQ_LOW_TH_V1_8822B) << BIT_SHIFT_LPQ_LOW_TH_V1_8822B)
-#define BIT_GET_LPQ_LOW_TH_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_LPQ_LOW_TH_V1_8822B) & BIT_MASK_LPQ_LOW_TH_V1_8822B)
-
-/* 2 REG_TQPNT4_8822B */
-
-#define BIT_SHIFT_EXQ_HIGH_TH_V1_8822B 16
-#define BIT_MASK_EXQ_HIGH_TH_V1_8822B 0xfff
-#define BIT_EXQ_HIGH_TH_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_EXQ_HIGH_TH_V1_8822B)                                 \
-	 << BIT_SHIFT_EXQ_HIGH_TH_V1_8822B)
-#define BIT_GET_EXQ_HIGH_TH_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_EXQ_HIGH_TH_V1_8822B) &                             \
-	 BIT_MASK_EXQ_HIGH_TH_V1_8822B)
-
-#define BIT_SHIFT_EXQ_LOW_TH_V1_8822B 0
-#define BIT_MASK_EXQ_LOW_TH_V1_8822B 0xfff
-#define BIT_EXQ_LOW_TH_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_EXQ_LOW_TH_V1_8822B) << BIT_SHIFT_EXQ_LOW_TH_V1_8822B)
-#define BIT_GET_EXQ_LOW_TH_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_EXQ_LOW_TH_V1_8822B) & BIT_MASK_EXQ_LOW_TH_V1_8822B)
-
-/* 2 REG_RQPN_CTRL_1_8822B */
-
-#define BIT_SHIFT_TXPKTNUM_H_8822B 16
-#define BIT_MASK_TXPKTNUM_H_8822B 0xffff
-#define BIT_TXPKTNUM_H_8822B(x)                                                \
-	(((x) & BIT_MASK_TXPKTNUM_H_8822B) << BIT_SHIFT_TXPKTNUM_H_8822B)
-#define BIT_GET_TXPKTNUM_H_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_TXPKTNUM_H_8822B) & BIT_MASK_TXPKTNUM_H_8822B)
-
-#define BIT_SHIFT_TXPKTNUM_V2_8822B 0
-#define BIT_MASK_TXPKTNUM_V2_8822B 0xffff
-#define BIT_TXPKTNUM_V2_8822B(x)                                               \
-	(((x) & BIT_MASK_TXPKTNUM_V2_8822B) << BIT_SHIFT_TXPKTNUM_V2_8822B)
-#define BIT_GET_TXPKTNUM_V2_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_TXPKTNUM_V2_8822B) & BIT_MASK_TXPKTNUM_V2_8822B)
-
-/* 2 REG_RQPN_CTRL_2_8822B */
-#define BIT_LD_RQPN_8822B BIT(31)
-#define BIT_EXQ_PUBLIC_DIS_V1_8822B BIT(19)
-#define BIT_NPQ_PUBLIC_DIS_V1_8822B BIT(18)
-#define BIT_LPQ_PUBLIC_DIS_V1_8822B BIT(17)
-#define BIT_HPQ_PUBLIC_DIS_V1_8822B BIT(16)
-
-/* 2 REG_FIFOPAGE_INFO_1_8822B */
-
-#define BIT_SHIFT_HPQ_AVAL_PG_V1_8822B 16
-#define BIT_MASK_HPQ_AVAL_PG_V1_8822B 0xfff
-#define BIT_HPQ_AVAL_PG_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HPQ_AVAL_PG_V1_8822B)                                 \
-	 << BIT_SHIFT_HPQ_AVAL_PG_V1_8822B)
-#define BIT_GET_HPQ_AVAL_PG_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HPQ_AVAL_PG_V1_8822B) &                             \
-	 BIT_MASK_HPQ_AVAL_PG_V1_8822B)
-
-#define BIT_SHIFT_HPQ_V1_8822B 0
-#define BIT_MASK_HPQ_V1_8822B 0xfff
-#define BIT_HPQ_V1_8822B(x)                                                    \
-	(((x) & BIT_MASK_HPQ_V1_8822B) << BIT_SHIFT_HPQ_V1_8822B)
-#define BIT_GET_HPQ_V1_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_HPQ_V1_8822B) & BIT_MASK_HPQ_V1_8822B)
-
-/* 2 REG_FIFOPAGE_INFO_2_8822B */
-
-#define BIT_SHIFT_LPQ_AVAL_PG_V1_8822B 16
-#define BIT_MASK_LPQ_AVAL_PG_V1_8822B 0xfff
-#define BIT_LPQ_AVAL_PG_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_LPQ_AVAL_PG_V1_8822B)                                 \
-	 << BIT_SHIFT_LPQ_AVAL_PG_V1_8822B)
-#define BIT_GET_LPQ_AVAL_PG_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_LPQ_AVAL_PG_V1_8822B) &                             \
-	 BIT_MASK_LPQ_AVAL_PG_V1_8822B)
-
-#define BIT_SHIFT_LPQ_V1_8822B 0
-#define BIT_MASK_LPQ_V1_8822B 0xfff
-#define BIT_LPQ_V1_8822B(x)                                                    \
-	(((x) & BIT_MASK_LPQ_V1_8822B) << BIT_SHIFT_LPQ_V1_8822B)
-#define BIT_GET_LPQ_V1_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_LPQ_V1_8822B) & BIT_MASK_LPQ_V1_8822B)
-
-/* 2 REG_FIFOPAGE_INFO_3_8822B */
-
-#define BIT_SHIFT_NPQ_AVAL_PG_V1_8822B 16
-#define BIT_MASK_NPQ_AVAL_PG_V1_8822B 0xfff
-#define BIT_NPQ_AVAL_PG_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_NPQ_AVAL_PG_V1_8822B)                                 \
-	 << BIT_SHIFT_NPQ_AVAL_PG_V1_8822B)
-#define BIT_GET_NPQ_AVAL_PG_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_NPQ_AVAL_PG_V1_8822B) &                             \
-	 BIT_MASK_NPQ_AVAL_PG_V1_8822B)
-
-#define BIT_SHIFT_NPQ_V1_8822B 0
-#define BIT_MASK_NPQ_V1_8822B 0xfff
-#define BIT_NPQ_V1_8822B(x)                                                    \
-	(((x) & BIT_MASK_NPQ_V1_8822B) << BIT_SHIFT_NPQ_V1_8822B)
-#define BIT_GET_NPQ_V1_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_NPQ_V1_8822B) & BIT_MASK_NPQ_V1_8822B)
-
-/* 2 REG_FIFOPAGE_INFO_4_8822B */
-
-#define BIT_SHIFT_EXQ_AVAL_PG_V1_8822B 16
-#define BIT_MASK_EXQ_AVAL_PG_V1_8822B 0xfff
-#define BIT_EXQ_AVAL_PG_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_EXQ_AVAL_PG_V1_8822B)                                 \
-	 << BIT_SHIFT_EXQ_AVAL_PG_V1_8822B)
-#define BIT_GET_EXQ_AVAL_PG_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_EXQ_AVAL_PG_V1_8822B) &                             \
-	 BIT_MASK_EXQ_AVAL_PG_V1_8822B)
-
-#define BIT_SHIFT_EXQ_V1_8822B 0
-#define BIT_MASK_EXQ_V1_8822B 0xfff
-#define BIT_EXQ_V1_8822B(x)                                                    \
-	(((x) & BIT_MASK_EXQ_V1_8822B) << BIT_SHIFT_EXQ_V1_8822B)
-#define BIT_GET_EXQ_V1_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_EXQ_V1_8822B) & BIT_MASK_EXQ_V1_8822B)
-
-/* 2 REG_FIFOPAGE_INFO_5_8822B */
-
-#define BIT_SHIFT_PUBQ_AVAL_PG_V1_8822B 16
-#define BIT_MASK_PUBQ_AVAL_PG_V1_8822B 0xfff
-#define BIT_PUBQ_AVAL_PG_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_PUBQ_AVAL_PG_V1_8822B)                                \
-	 << BIT_SHIFT_PUBQ_AVAL_PG_V1_8822B)
-#define BIT_GET_PUBQ_AVAL_PG_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_PUBQ_AVAL_PG_V1_8822B) &                            \
-	 BIT_MASK_PUBQ_AVAL_PG_V1_8822B)
-
-#define BIT_SHIFT_PUBQ_V1_8822B 0
-#define BIT_MASK_PUBQ_V1_8822B 0xfff
-#define BIT_PUBQ_V1_8822B(x)                                                   \
-	(((x) & BIT_MASK_PUBQ_V1_8822B) << BIT_SHIFT_PUBQ_V1_8822B)
-#define BIT_GET_PUBQ_V1_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_PUBQ_V1_8822B) & BIT_MASK_PUBQ_V1_8822B)
-
-/* 2 REG_H2C_HEAD_8822B */
-
-#define BIT_SHIFT_H2C_HEAD_8822B 0
-#define BIT_MASK_H2C_HEAD_8822B 0x3ffff
-#define BIT_H2C_HEAD_8822B(x)                                                  \
-	(((x) & BIT_MASK_H2C_HEAD_8822B) << BIT_SHIFT_H2C_HEAD_8822B)
-#define BIT_GET_H2C_HEAD_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_H2C_HEAD_8822B) & BIT_MASK_H2C_HEAD_8822B)
-
-/* 2 REG_H2C_TAIL_8822B */
-
-#define BIT_SHIFT_H2C_TAIL_8822B 0
-#define BIT_MASK_H2C_TAIL_8822B 0x3ffff
-#define BIT_H2C_TAIL_8822B(x)                                                  \
-	(((x) & BIT_MASK_H2C_TAIL_8822B) << BIT_SHIFT_H2C_TAIL_8822B)
-#define BIT_GET_H2C_TAIL_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_H2C_TAIL_8822B) & BIT_MASK_H2C_TAIL_8822B)
-
-/* 2 REG_H2C_READ_ADDR_8822B */
-
-#define BIT_SHIFT_H2C_READ_ADDR_8822B 0
-#define BIT_MASK_H2C_READ_ADDR_8822B 0x3ffff
-#define BIT_H2C_READ_ADDR_8822B(x)                                             \
-	(((x) & BIT_MASK_H2C_READ_ADDR_8822B) << BIT_SHIFT_H2C_READ_ADDR_8822B)
-#define BIT_GET_H2C_READ_ADDR_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_H2C_READ_ADDR_8822B) & BIT_MASK_H2C_READ_ADDR_8822B)
-
-/* 2 REG_H2C_WR_ADDR_8822B */
-
-#define BIT_SHIFT_H2C_WR_ADDR_8822B 0
-#define BIT_MASK_H2C_WR_ADDR_8822B 0x3ffff
-#define BIT_H2C_WR_ADDR_8822B(x)                                               \
-	(((x) & BIT_MASK_H2C_WR_ADDR_8822B) << BIT_SHIFT_H2C_WR_ADDR_8822B)
-#define BIT_GET_H2C_WR_ADDR_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_H2C_WR_ADDR_8822B) & BIT_MASK_H2C_WR_ADDR_8822B)
-
-/* 2 REG_H2C_INFO_8822B */
-#define BIT_H2C_SPACE_VLD_8822B BIT(3)
-#define BIT_H2C_WR_ADDR_RST_8822B BIT(2)
-
-#define BIT_SHIFT_H2C_LEN_SEL_8822B 0
-#define BIT_MASK_H2C_LEN_SEL_8822B 0x3
-#define BIT_H2C_LEN_SEL_8822B(x)                                               \
-	(((x) & BIT_MASK_H2C_LEN_SEL_8822B) << BIT_SHIFT_H2C_LEN_SEL_8822B)
-#define BIT_GET_H2C_LEN_SEL_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_H2C_LEN_SEL_8822B) & BIT_MASK_H2C_LEN_SEL_8822B)
-
-/* 2 REG_RXDMA_AGG_PG_TH_8822B */
-
-#define BIT_SHIFT_RXDMA_AGG_OLD_MOD_8822B 24
-#define BIT_MASK_RXDMA_AGG_OLD_MOD_8822B 0xff
-#define BIT_RXDMA_AGG_OLD_MOD_8822B(x)                                         \
-	(((x) & BIT_MASK_RXDMA_AGG_OLD_MOD_8822B)                              \
-	 << BIT_SHIFT_RXDMA_AGG_OLD_MOD_8822B)
-#define BIT_GET_RXDMA_AGG_OLD_MOD_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_RXDMA_AGG_OLD_MOD_8822B) &                          \
-	 BIT_MASK_RXDMA_AGG_OLD_MOD_8822B)
-
-#define BIT_SHIFT_PKT_NUM_WOL_8822B 16
-#define BIT_MASK_PKT_NUM_WOL_8822B 0xff
-#define BIT_PKT_NUM_WOL_8822B(x)                                               \
-	(((x) & BIT_MASK_PKT_NUM_WOL_8822B) << BIT_SHIFT_PKT_NUM_WOL_8822B)
-#define BIT_GET_PKT_NUM_WOL_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_PKT_NUM_WOL_8822B) & BIT_MASK_PKT_NUM_WOL_8822B)
-
-#define BIT_SHIFT_DMA_AGG_TO_8822B 8
-#define BIT_MASK_DMA_AGG_TO_8822B 0xf
-#define BIT_DMA_AGG_TO_8822B(x)                                                \
-	(((x) & BIT_MASK_DMA_AGG_TO_8822B) << BIT_SHIFT_DMA_AGG_TO_8822B)
-#define BIT_GET_DMA_AGG_TO_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DMA_AGG_TO_8822B) & BIT_MASK_DMA_AGG_TO_8822B)
-
-#define BIT_SHIFT_RXDMA_AGG_PG_TH_V1_8822B 0
-#define BIT_MASK_RXDMA_AGG_PG_TH_V1_8822B 0xf
-#define BIT_RXDMA_AGG_PG_TH_V1_8822B(x)                                        \
-	(((x) & BIT_MASK_RXDMA_AGG_PG_TH_V1_8822B)                             \
-	 << BIT_SHIFT_RXDMA_AGG_PG_TH_V1_8822B)
-#define BIT_GET_RXDMA_AGG_PG_TH_V1_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_RXDMA_AGG_PG_TH_V1_8822B) &                         \
-	 BIT_MASK_RXDMA_AGG_PG_TH_V1_8822B)
-
-/* 2 REG_RXPKT_NUM_8822B */
-
-#define BIT_SHIFT_RXPKT_NUM_8822B 24
-#define BIT_MASK_RXPKT_NUM_8822B 0xff
-#define BIT_RXPKT_NUM_8822B(x)                                                 \
-	(((x) & BIT_MASK_RXPKT_NUM_8822B) << BIT_SHIFT_RXPKT_NUM_8822B)
-#define BIT_GET_RXPKT_NUM_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_RXPKT_NUM_8822B) & BIT_MASK_RXPKT_NUM_8822B)
-
-#define BIT_SHIFT_FW_UPD_RDPTR19_TO_16_8822B 20
-#define BIT_MASK_FW_UPD_RDPTR19_TO_16_8822B 0xf
-#define BIT_FW_UPD_RDPTR19_TO_16_8822B(x)                                      \
-	(((x) & BIT_MASK_FW_UPD_RDPTR19_TO_16_8822B)                           \
-	 << BIT_SHIFT_FW_UPD_RDPTR19_TO_16_8822B)
-#define BIT_GET_FW_UPD_RDPTR19_TO_16_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_FW_UPD_RDPTR19_TO_16_8822B) &                       \
-	 BIT_MASK_FW_UPD_RDPTR19_TO_16_8822B)
-
-#define BIT_RXDMA_REQ_8822B BIT(19)
-#define BIT_RW_RELEASE_EN_8822B BIT(18)
-#define BIT_RXDMA_IDLE_8822B BIT(17)
-#define BIT_RXPKT_RELEASE_POLL_8822B BIT(16)
-
-#define BIT_SHIFT_FW_UPD_RDPTR_8822B 0
-#define BIT_MASK_FW_UPD_RDPTR_8822B 0xffff
-#define BIT_FW_UPD_RDPTR_8822B(x)                                              \
-	(((x) & BIT_MASK_FW_UPD_RDPTR_8822B) << BIT_SHIFT_FW_UPD_RDPTR_8822B)
-#define BIT_GET_FW_UPD_RDPTR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_FW_UPD_RDPTR_8822B) & BIT_MASK_FW_UPD_RDPTR_8822B)
-
-/* 2 REG_RXDMA_STATUS_8822B */
-#define BIT_C2H_PKT_OVF_8822B BIT(7)
-#define BIT_AGG_CONFGI_ISSUE_8822B BIT(6)
-#define BIT_FW_POLL_ISSUE_8822B BIT(5)
-#define BIT_RX_DATA_UDN_8822B BIT(4)
-#define BIT_RX_SFF_UDN_8822B BIT(3)
-#define BIT_RX_SFF_OVF_8822B BIT(2)
-#define BIT_RXPKT_OVF_8822B BIT(0)
-
-/* 2 REG_RXDMA_DPR_8822B */
-
-#define BIT_SHIFT_RDE_DEBUG_8822B 0
-#define BIT_MASK_RDE_DEBUG_8822B 0xffffffffL
-#define BIT_RDE_DEBUG_8822B(x)                                                 \
-	(((x) & BIT_MASK_RDE_DEBUG_8822B) << BIT_SHIFT_RDE_DEBUG_8822B)
-#define BIT_GET_RDE_DEBUG_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_RDE_DEBUG_8822B) & BIT_MASK_RDE_DEBUG_8822B)
-
-/* 2 REG_RXDMA_MODE_8822B */
-
-#define BIT_SHIFT_PKTNUM_TH_V2_8822B 24
-#define BIT_MASK_PKTNUM_TH_V2_8822B 0x1f
-#define BIT_PKTNUM_TH_V2_8822B(x)                                              \
-	(((x) & BIT_MASK_PKTNUM_TH_V2_8822B) << BIT_SHIFT_PKTNUM_TH_V2_8822B)
-#define BIT_GET_PKTNUM_TH_V2_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_PKTNUM_TH_V2_8822B) & BIT_MASK_PKTNUM_TH_V2_8822B)
-
-#define BIT_TXBA_BREAK_USBAGG_8822B BIT(23)
-
-#define BIT_SHIFT_PKTLEN_PARA_8822B 16
-#define BIT_MASK_PKTLEN_PARA_8822B 0x7
-#define BIT_PKTLEN_PARA_8822B(x)                                               \
-	(((x) & BIT_MASK_PKTLEN_PARA_8822B) << BIT_SHIFT_PKTLEN_PARA_8822B)
-#define BIT_GET_PKTLEN_PARA_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_PKTLEN_PARA_8822B) & BIT_MASK_PKTLEN_PARA_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_BURST_SIZE_8822B 4
-#define BIT_MASK_BURST_SIZE_8822B 0x3
-#define BIT_BURST_SIZE_8822B(x)                                                \
-	(((x) & BIT_MASK_BURST_SIZE_8822B) << BIT_SHIFT_BURST_SIZE_8822B)
-#define BIT_GET_BURST_SIZE_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_BURST_SIZE_8822B) & BIT_MASK_BURST_SIZE_8822B)
-
-#define BIT_SHIFT_BURST_CNT_8822B 2
-#define BIT_MASK_BURST_CNT_8822B 0x3
-#define BIT_BURST_CNT_8822B(x)                                                 \
-	(((x) & BIT_MASK_BURST_CNT_8822B) << BIT_SHIFT_BURST_CNT_8822B)
-#define BIT_GET_BURST_CNT_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_BURST_CNT_8822B) & BIT_MASK_BURST_CNT_8822B)
-
-#define BIT_DMA_MODE_8822B BIT(1)
-
-/* 2 REG_C2H_PKT_8822B */
-
-#define BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19_8822B 24
-#define BIT_MASK_R_C2H_STR_ADDR_16_TO_19_8822B 0xf
-#define BIT_R_C2H_STR_ADDR_16_TO_19_8822B(x)                                   \
-	(((x) & BIT_MASK_R_C2H_STR_ADDR_16_TO_19_8822B)                        \
-	 << BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19_8822B)
-#define BIT_GET_R_C2H_STR_ADDR_16_TO_19_8822B(x)                               \
-	(((x) >> BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19_8822B) &                    \
-	 BIT_MASK_R_C2H_STR_ADDR_16_TO_19_8822B)
-
-#define BIT_R_C2H_PKT_REQ_8822B BIT(16)
-
-#define BIT_SHIFT_R_C2H_STR_ADDR_8822B 0
-#define BIT_MASK_R_C2H_STR_ADDR_8822B 0xffff
-#define BIT_R_C2H_STR_ADDR_8822B(x)                                            \
-	(((x) & BIT_MASK_R_C2H_STR_ADDR_8822B)                                 \
-	 << BIT_SHIFT_R_C2H_STR_ADDR_8822B)
-#define BIT_GET_R_C2H_STR_ADDR_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_R_C2H_STR_ADDR_8822B) &                             \
-	 BIT_MASK_R_C2H_STR_ADDR_8822B)
-
-/* 2 REG_FWFF_C2H_8822B */
-
-#define BIT_SHIFT_C2H_DMA_ADDR_8822B 0
-#define BIT_MASK_C2H_DMA_ADDR_8822B 0x3ffff
-#define BIT_C2H_DMA_ADDR_8822B(x)                                              \
-	(((x) & BIT_MASK_C2H_DMA_ADDR_8822B) << BIT_SHIFT_C2H_DMA_ADDR_8822B)
-#define BIT_GET_C2H_DMA_ADDR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_C2H_DMA_ADDR_8822B) & BIT_MASK_C2H_DMA_ADDR_8822B)
-
-/* 2 REG_FWFF_CTRL_8822B */
-#define BIT_FWFF_DMAPKT_REQ_8822B BIT(31)
-
-#define BIT_SHIFT_FWFF_DMA_PKT_NUM_8822B 16
-#define BIT_MASK_FWFF_DMA_PKT_NUM_8822B 0xff
-#define BIT_FWFF_DMA_PKT_NUM_8822B(x)                                          \
-	(((x) & BIT_MASK_FWFF_DMA_PKT_NUM_8822B)                               \
-	 << BIT_SHIFT_FWFF_DMA_PKT_NUM_8822B)
-#define BIT_GET_FWFF_DMA_PKT_NUM_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_FWFF_DMA_PKT_NUM_8822B) &                           \
-	 BIT_MASK_FWFF_DMA_PKT_NUM_8822B)
-
-#define BIT_SHIFT_FWFF_STR_ADDR_8822B 0
-#define BIT_MASK_FWFF_STR_ADDR_8822B 0xffff
-#define BIT_FWFF_STR_ADDR_8822B(x)                                             \
-	(((x) & BIT_MASK_FWFF_STR_ADDR_8822B) << BIT_SHIFT_FWFF_STR_ADDR_8822B)
-#define BIT_GET_FWFF_STR_ADDR_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_FWFF_STR_ADDR_8822B) & BIT_MASK_FWFF_STR_ADDR_8822B)
-
-/* 2 REG_FWFF_PKT_INFO_8822B */
-
-#define BIT_SHIFT_FWFF_PKT_QUEUED_8822B 16
-#define BIT_MASK_FWFF_PKT_QUEUED_8822B 0xff
-#define BIT_FWFF_PKT_QUEUED_8822B(x)                                           \
-	(((x) & BIT_MASK_FWFF_PKT_QUEUED_8822B)                                \
-	 << BIT_SHIFT_FWFF_PKT_QUEUED_8822B)
-#define BIT_GET_FWFF_PKT_QUEUED_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_FWFF_PKT_QUEUED_8822B) &                            \
-	 BIT_MASK_FWFF_PKT_QUEUED_8822B)
-
-#define BIT_SHIFT_FWFF_PKT_STR_ADDR_8822B 0
-#define BIT_MASK_FWFF_PKT_STR_ADDR_8822B 0xffff
-#define BIT_FWFF_PKT_STR_ADDR_8822B(x)                                         \
-	(((x) & BIT_MASK_FWFF_PKT_STR_ADDR_8822B)                              \
-	 << BIT_SHIFT_FWFF_PKT_STR_ADDR_8822B)
-#define BIT_GET_FWFF_PKT_STR_ADDR_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_FWFF_PKT_STR_ADDR_8822B) &                          \
-	 BIT_MASK_FWFF_PKT_STR_ADDR_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_DDMA_CH0SA_8822B */
-
-#define BIT_SHIFT_DDMACH0_SA_8822B 0
-#define BIT_MASK_DDMACH0_SA_8822B 0xffffffffL
-#define BIT_DDMACH0_SA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH0_SA_8822B) << BIT_SHIFT_DDMACH0_SA_8822B)
-#define BIT_GET_DDMACH0_SA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH0_SA_8822B) & BIT_MASK_DDMACH0_SA_8822B)
-
-/* 2 REG_DDMA_CH0DA_8822B */
-
-#define BIT_SHIFT_DDMACH0_DA_8822B 0
-#define BIT_MASK_DDMACH0_DA_8822B 0xffffffffL
-#define BIT_DDMACH0_DA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH0_DA_8822B) << BIT_SHIFT_DDMACH0_DA_8822B)
-#define BIT_GET_DDMACH0_DA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH0_DA_8822B) & BIT_MASK_DDMACH0_DA_8822B)
-
-/* 2 REG_DDMA_CH0CTRL_8822B */
-#define BIT_DDMACH0_OWN_8822B BIT(31)
-#define BIT_DDMACH0_CHKSUM_EN_8822B BIT(29)
-#define BIT_DDMACH0_DA_W_DISABLE_8822B BIT(28)
-#define BIT_DDMACH0_CHKSUM_STS_8822B BIT(27)
-#define BIT_DDMACH0_DDMA_MODE_8822B BIT(26)
-#define BIT_DDMACH0_RESET_CHKSUM_STS_8822B BIT(25)
-#define BIT_DDMACH0_CHKSUM_CONT_8822B BIT(24)
-
-#define BIT_SHIFT_DDMACH0_DLEN_8822B 0
-#define BIT_MASK_DDMACH0_DLEN_8822B 0x3ffff
-#define BIT_DDMACH0_DLEN_8822B(x)                                              \
-	(((x) & BIT_MASK_DDMACH0_DLEN_8822B) << BIT_SHIFT_DDMACH0_DLEN_8822B)
-#define BIT_GET_DDMACH0_DLEN_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DDMACH0_DLEN_8822B) & BIT_MASK_DDMACH0_DLEN_8822B)
-
-/* 2 REG_DDMA_CH1SA_8822B */
-
-#define BIT_SHIFT_DDMACH1_SA_8822B 0
-#define BIT_MASK_DDMACH1_SA_8822B 0xffffffffL
-#define BIT_DDMACH1_SA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH1_SA_8822B) << BIT_SHIFT_DDMACH1_SA_8822B)
-#define BIT_GET_DDMACH1_SA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH1_SA_8822B) & BIT_MASK_DDMACH1_SA_8822B)
-
-/* 2 REG_DDMA_CH1DA_8822B */
-
-#define BIT_SHIFT_DDMACH1_DA_8822B 0
-#define BIT_MASK_DDMACH1_DA_8822B 0xffffffffL
-#define BIT_DDMACH1_DA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH1_DA_8822B) << BIT_SHIFT_DDMACH1_DA_8822B)
-#define BIT_GET_DDMACH1_DA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH1_DA_8822B) & BIT_MASK_DDMACH1_DA_8822B)
-
-/* 2 REG_DDMA_CH1CTRL_8822B */
-#define BIT_DDMACH1_OWN_8822B BIT(31)
-#define BIT_DDMACH1_CHKSUM_EN_8822B BIT(29)
-#define BIT_DDMACH1_DA_W_DISABLE_8822B BIT(28)
-#define BIT_DDMACH1_CHKSUM_STS_8822B BIT(27)
-#define BIT_DDMACH1_DDMA_MODE_8822B BIT(26)
-#define BIT_DDMACH1_RESET_CHKSUM_STS_8822B BIT(25)
-#define BIT_DDMACH1_CHKSUM_CONT_8822B BIT(24)
-
-#define BIT_SHIFT_DDMACH1_DLEN_8822B 0
-#define BIT_MASK_DDMACH1_DLEN_8822B 0x3ffff
-#define BIT_DDMACH1_DLEN_8822B(x)                                              \
-	(((x) & BIT_MASK_DDMACH1_DLEN_8822B) << BIT_SHIFT_DDMACH1_DLEN_8822B)
-#define BIT_GET_DDMACH1_DLEN_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DDMACH1_DLEN_8822B) & BIT_MASK_DDMACH1_DLEN_8822B)
-
-/* 2 REG_DDMA_CH2SA_8822B */
-
-#define BIT_SHIFT_DDMACH2_SA_8822B 0
-#define BIT_MASK_DDMACH2_SA_8822B 0xffffffffL
-#define BIT_DDMACH2_SA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH2_SA_8822B) << BIT_SHIFT_DDMACH2_SA_8822B)
-#define BIT_GET_DDMACH2_SA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH2_SA_8822B) & BIT_MASK_DDMACH2_SA_8822B)
-
-/* 2 REG_DDMA_CH2DA_8822B */
-
-#define BIT_SHIFT_DDMACH2_DA_8822B 0
-#define BIT_MASK_DDMACH2_DA_8822B 0xffffffffL
-#define BIT_DDMACH2_DA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH2_DA_8822B) << BIT_SHIFT_DDMACH2_DA_8822B)
-#define BIT_GET_DDMACH2_DA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH2_DA_8822B) & BIT_MASK_DDMACH2_DA_8822B)
-
-/* 2 REG_DDMA_CH2CTRL_8822B */
-#define BIT_DDMACH2_OWN_8822B BIT(31)
-#define BIT_DDMACH2_CHKSUM_EN_8822B BIT(29)
-#define BIT_DDMACH2_DA_W_DISABLE_8822B BIT(28)
-#define BIT_DDMACH2_CHKSUM_STS_8822B BIT(27)
-#define BIT_DDMACH2_DDMA_MODE_8822B BIT(26)
-#define BIT_DDMACH2_RESET_CHKSUM_STS_8822B BIT(25)
-#define BIT_DDMACH2_CHKSUM_CONT_8822B BIT(24)
-
-#define BIT_SHIFT_DDMACH2_DLEN_8822B 0
-#define BIT_MASK_DDMACH2_DLEN_8822B 0x3ffff
-#define BIT_DDMACH2_DLEN_8822B(x)                                              \
-	(((x) & BIT_MASK_DDMACH2_DLEN_8822B) << BIT_SHIFT_DDMACH2_DLEN_8822B)
-#define BIT_GET_DDMACH2_DLEN_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DDMACH2_DLEN_8822B) & BIT_MASK_DDMACH2_DLEN_8822B)
-
-/* 2 REG_DDMA_CH3SA_8822B */
-
-#define BIT_SHIFT_DDMACH3_SA_8822B 0
-#define BIT_MASK_DDMACH3_SA_8822B 0xffffffffL
-#define BIT_DDMACH3_SA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH3_SA_8822B) << BIT_SHIFT_DDMACH3_SA_8822B)
-#define BIT_GET_DDMACH3_SA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH3_SA_8822B) & BIT_MASK_DDMACH3_SA_8822B)
-
-/* 2 REG_DDMA_CH3DA_8822B */
-
-#define BIT_SHIFT_DDMACH3_DA_8822B 0
-#define BIT_MASK_DDMACH3_DA_8822B 0xffffffffL
-#define BIT_DDMACH3_DA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH3_DA_8822B) << BIT_SHIFT_DDMACH3_DA_8822B)
-#define BIT_GET_DDMACH3_DA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH3_DA_8822B) & BIT_MASK_DDMACH3_DA_8822B)
-
-/* 2 REG_DDMA_CH3CTRL_8822B */
-#define BIT_DDMACH3_OWN_8822B BIT(31)
-#define BIT_DDMACH3_CHKSUM_EN_8822B BIT(29)
-#define BIT_DDMACH3_DA_W_DISABLE_8822B BIT(28)
-#define BIT_DDMACH3_CHKSUM_STS_8822B BIT(27)
-#define BIT_DDMACH3_DDMA_MODE_8822B BIT(26)
-#define BIT_DDMACH3_RESET_CHKSUM_STS_8822B BIT(25)
-#define BIT_DDMACH3_CHKSUM_CONT_8822B BIT(24)
-
-#define BIT_SHIFT_DDMACH3_DLEN_8822B 0
-#define BIT_MASK_DDMACH3_DLEN_8822B 0x3ffff
-#define BIT_DDMACH3_DLEN_8822B(x)                                              \
-	(((x) & BIT_MASK_DDMACH3_DLEN_8822B) << BIT_SHIFT_DDMACH3_DLEN_8822B)
-#define BIT_GET_DDMACH3_DLEN_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DDMACH3_DLEN_8822B) & BIT_MASK_DDMACH3_DLEN_8822B)
-
-/* 2 REG_DDMA_CH4SA_8822B */
-
-#define BIT_SHIFT_DDMACH4_SA_8822B 0
-#define BIT_MASK_DDMACH4_SA_8822B 0xffffffffL
-#define BIT_DDMACH4_SA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH4_SA_8822B) << BIT_SHIFT_DDMACH4_SA_8822B)
-#define BIT_GET_DDMACH4_SA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH4_SA_8822B) & BIT_MASK_DDMACH4_SA_8822B)
-
-/* 2 REG_DDMA_CH4DA_8822B */
-
-#define BIT_SHIFT_DDMACH4_DA_8822B 0
-#define BIT_MASK_DDMACH4_DA_8822B 0xffffffffL
-#define BIT_DDMACH4_DA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH4_DA_8822B) << BIT_SHIFT_DDMACH4_DA_8822B)
-#define BIT_GET_DDMACH4_DA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH4_DA_8822B) & BIT_MASK_DDMACH4_DA_8822B)
-
-/* 2 REG_DDMA_CH4CTRL_8822B */
-#define BIT_DDMACH4_OWN_8822B BIT(31)
-#define BIT_DDMACH4_CHKSUM_EN_8822B BIT(29)
-#define BIT_DDMACH4_DA_W_DISABLE_8822B BIT(28)
-#define BIT_DDMACH4_CHKSUM_STS_8822B BIT(27)
-#define BIT_DDMACH4_DDMA_MODE_8822B BIT(26)
-#define BIT_DDMACH4_RESET_CHKSUM_STS_8822B BIT(25)
-#define BIT_DDMACH4_CHKSUM_CONT_8822B BIT(24)
-
-#define BIT_SHIFT_DDMACH4_DLEN_8822B 0
-#define BIT_MASK_DDMACH4_DLEN_8822B 0x3ffff
-#define BIT_DDMACH4_DLEN_8822B(x)                                              \
-	(((x) & BIT_MASK_DDMACH4_DLEN_8822B) << BIT_SHIFT_DDMACH4_DLEN_8822B)
-#define BIT_GET_DDMACH4_DLEN_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DDMACH4_DLEN_8822B) & BIT_MASK_DDMACH4_DLEN_8822B)
-
-/* 2 REG_DDMA_CH5SA_8822B */
-
-#define BIT_SHIFT_DDMACH5_SA_8822B 0
-#define BIT_MASK_DDMACH5_SA_8822B 0xffffffffL
-#define BIT_DDMACH5_SA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH5_SA_8822B) << BIT_SHIFT_DDMACH5_SA_8822B)
-#define BIT_GET_DDMACH5_SA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH5_SA_8822B) & BIT_MASK_DDMACH5_SA_8822B)
-
-/* 2 REG_DDMA_CH5DA_8822B */
-
-#define BIT_SHIFT_DDMACH5_DA_8822B 0
-#define BIT_MASK_DDMACH5_DA_8822B 0xffffffffL
-#define BIT_DDMACH5_DA_8822B(x)                                                \
-	(((x) & BIT_MASK_DDMACH5_DA_8822B) << BIT_SHIFT_DDMACH5_DA_8822B)
-#define BIT_GET_DDMACH5_DA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DDMACH5_DA_8822B) & BIT_MASK_DDMACH5_DA_8822B)
-
-/* 2 REG_REG_DDMA_CH5CTRL_8822B */
-#define BIT_DDMACH5_OWN_8822B BIT(31)
-#define BIT_DDMACH5_CHKSUM_EN_8822B BIT(29)
-#define BIT_DDMACH5_DA_W_DISABLE_8822B BIT(28)
-#define BIT_DDMACH5_CHKSUM_STS_8822B BIT(27)
-#define BIT_DDMACH5_DDMA_MODE_8822B BIT(26)
-#define BIT_DDMACH5_RESET_CHKSUM_STS_8822B BIT(25)
-#define BIT_DDMACH5_CHKSUM_CONT_8822B BIT(24)
-
-#define BIT_SHIFT_DDMACH5_DLEN_8822B 0
-#define BIT_MASK_DDMACH5_DLEN_8822B 0x3ffff
-#define BIT_DDMACH5_DLEN_8822B(x)                                              \
-	(((x) & BIT_MASK_DDMACH5_DLEN_8822B) << BIT_SHIFT_DDMACH5_DLEN_8822B)
-#define BIT_GET_DDMACH5_DLEN_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DDMACH5_DLEN_8822B) & BIT_MASK_DDMACH5_DLEN_8822B)
-
-/* 2 REG_DDMA_INT_MSK_8822B */
-#define BIT_DDMACH5_MSK_8822B BIT(5)
-#define BIT_DDMACH4_MSK_8822B BIT(4)
-#define BIT_DDMACH3_MSK_8822B BIT(3)
-#define BIT_DDMACH2_MSK_8822B BIT(2)
-#define BIT_DDMACH1_MSK_8822B BIT(1)
-#define BIT_DDMACH0_MSK_8822B BIT(0)
-
-/* 2 REG_DDMA_CHSTATUS_8822B */
-#define BIT_DDMACH5_BUSY_8822B BIT(5)
-#define BIT_DDMACH4_BUSY_8822B BIT(4)
-#define BIT_DDMACH3_BUSY_8822B BIT(3)
-#define BIT_DDMACH2_BUSY_8822B BIT(2)
-#define BIT_DDMACH1_BUSY_8822B BIT(1)
-#define BIT_DDMACH0_BUSY_8822B BIT(0)
-
-/* 2 REG_DDMA_CHKSUM_8822B */
-
-#define BIT_SHIFT_IDDMA0_CHKSUM_8822B 0
-#define BIT_MASK_IDDMA0_CHKSUM_8822B 0xffff
-#define BIT_IDDMA0_CHKSUM_8822B(x)                                             \
-	(((x) & BIT_MASK_IDDMA0_CHKSUM_8822B) << BIT_SHIFT_IDDMA0_CHKSUM_8822B)
-#define BIT_GET_IDDMA0_CHKSUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_IDDMA0_CHKSUM_8822B) & BIT_MASK_IDDMA0_CHKSUM_8822B)
-
-/* 2 REG_DDMA_MONITOR_8822B */
-#define BIT_IDDMA0_PERMU_UNDERFLOW_8822B BIT(14)
-#define BIT_IDDMA0_FIFO_UNDERFLOW_8822B BIT(13)
-#define BIT_IDDMA0_FIFO_OVERFLOW_8822B BIT(12)
-#define BIT_CH5_ERR_8822B BIT(5)
-#define BIT_CH4_ERR_8822B BIT(4)
-#define BIT_CH3_ERR_8822B BIT(3)
-#define BIT_CH2_ERR_8822B BIT(2)
-#define BIT_CH1_ERR_8822B BIT(1)
-#define BIT_CH0_ERR_8822B BIT(0)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_PCIE_CTRL_8822B */
-#define BIT_PCIEIO_PERSTB_SEL_8822B BIT(31)
-
-#define BIT_SHIFT_PCIE_MAX_RXDMA_8822B 28
-#define BIT_MASK_PCIE_MAX_RXDMA_8822B 0x7
-#define BIT_PCIE_MAX_RXDMA_8822B(x)                                            \
-	(((x) & BIT_MASK_PCIE_MAX_RXDMA_8822B)                                 \
-	 << BIT_SHIFT_PCIE_MAX_RXDMA_8822B)
-#define BIT_GET_PCIE_MAX_RXDMA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_PCIE_MAX_RXDMA_8822B) &                             \
-	 BIT_MASK_PCIE_MAX_RXDMA_8822B)
-
-#define BIT_MULRW_8822B BIT(27)
-
-#define BIT_SHIFT_PCIE_MAX_TXDMA_8822B 24
-#define BIT_MASK_PCIE_MAX_TXDMA_8822B 0x7
-#define BIT_PCIE_MAX_TXDMA_8822B(x)                                            \
-	(((x) & BIT_MASK_PCIE_MAX_TXDMA_8822B)                                 \
-	 << BIT_SHIFT_PCIE_MAX_TXDMA_8822B)
-#define BIT_GET_PCIE_MAX_TXDMA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_PCIE_MAX_TXDMA_8822B) &                             \
-	 BIT_MASK_PCIE_MAX_TXDMA_8822B)
-
-#define BIT_EN_CPL_TIMEOUT_PS_8822B BIT(22)
-#define BIT_REG_TXDMA_FAIL_PS_8822B BIT(21)
-#define BIT_PCIE_RST_TRXDMA_INTF_8822B BIT(20)
-#define BIT_EN_HWENTR_L1_8822B BIT(19)
-#define BIT_EN_ADV_CLKGATE_8822B BIT(18)
-#define BIT_PCIE_EN_SWENT_L23_8822B BIT(17)
-#define BIT_PCIE_EN_HWEXT_L1_8822B BIT(16)
-#define BIT_RX_CLOSE_EN_8822B BIT(15)
-#define BIT_STOP_BCNQ_8822B BIT(14)
-#define BIT_STOP_MGQ_8822B BIT(13)
-#define BIT_STOP_VOQ_8822B BIT(12)
-#define BIT_STOP_VIQ_8822B BIT(11)
-#define BIT_STOP_BEQ_8822B BIT(10)
-#define BIT_STOP_BKQ_8822B BIT(9)
-#define BIT_STOP_RXQ_8822B BIT(8)
-#define BIT_STOP_HI7Q_8822B BIT(7)
-#define BIT_STOP_HI6Q_8822B BIT(6)
-#define BIT_STOP_HI5Q_8822B BIT(5)
-#define BIT_STOP_HI4Q_8822B BIT(4)
-#define BIT_STOP_HI3Q_8822B BIT(3)
-#define BIT_STOP_HI2Q_8822B BIT(2)
-#define BIT_STOP_HI1Q_8822B BIT(1)
-#define BIT_STOP_HI0Q_8822B BIT(0)
-
-/* 2 REG_INT_MIG_8822B */
-
-#define BIT_SHIFT_TXTTIMER_MATCH_NUM_8822B 28
-#define BIT_MASK_TXTTIMER_MATCH_NUM_8822B 0xf
-#define BIT_TXTTIMER_MATCH_NUM_8822B(x)                                        \
-	(((x) & BIT_MASK_TXTTIMER_MATCH_NUM_8822B)                             \
-	 << BIT_SHIFT_TXTTIMER_MATCH_NUM_8822B)
-#define BIT_GET_TXTTIMER_MATCH_NUM_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_TXTTIMER_MATCH_NUM_8822B) &                         \
-	 BIT_MASK_TXTTIMER_MATCH_NUM_8822B)
-
-#define BIT_SHIFT_TXPKT_NUM_MATCH_8822B 24
-#define BIT_MASK_TXPKT_NUM_MATCH_8822B 0xf
-#define BIT_TXPKT_NUM_MATCH_8822B(x)                                           \
-	(((x) & BIT_MASK_TXPKT_NUM_MATCH_8822B)                                \
-	 << BIT_SHIFT_TXPKT_NUM_MATCH_8822B)
-#define BIT_GET_TXPKT_NUM_MATCH_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_TXPKT_NUM_MATCH_8822B) &                            \
-	 BIT_MASK_TXPKT_NUM_MATCH_8822B)
-
-#define BIT_SHIFT_RXTTIMER_MATCH_NUM_8822B 20
-#define BIT_MASK_RXTTIMER_MATCH_NUM_8822B 0xf
-#define BIT_RXTTIMER_MATCH_NUM_8822B(x)                                        \
-	(((x) & BIT_MASK_RXTTIMER_MATCH_NUM_8822B)                             \
-	 << BIT_SHIFT_RXTTIMER_MATCH_NUM_8822B)
-#define BIT_GET_RXTTIMER_MATCH_NUM_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_RXTTIMER_MATCH_NUM_8822B) &                         \
-	 BIT_MASK_RXTTIMER_MATCH_NUM_8822B)
-
-#define BIT_SHIFT_RXPKT_NUM_MATCH_8822B 16
-#define BIT_MASK_RXPKT_NUM_MATCH_8822B 0xf
-#define BIT_RXPKT_NUM_MATCH_8822B(x)                                           \
-	(((x) & BIT_MASK_RXPKT_NUM_MATCH_8822B)                                \
-	 << BIT_SHIFT_RXPKT_NUM_MATCH_8822B)
-#define BIT_GET_RXPKT_NUM_MATCH_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_RXPKT_NUM_MATCH_8822B) &                            \
-	 BIT_MASK_RXPKT_NUM_MATCH_8822B)
-
-#define BIT_SHIFT_MIGRATE_TIMER_8822B 0
-#define BIT_MASK_MIGRATE_TIMER_8822B 0xffff
-#define BIT_MIGRATE_TIMER_8822B(x)                                             \
-	(((x) & BIT_MASK_MIGRATE_TIMER_8822B) << BIT_SHIFT_MIGRATE_TIMER_8822B)
-#define BIT_GET_MIGRATE_TIMER_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_MIGRATE_TIMER_8822B) & BIT_MASK_MIGRATE_TIMER_8822B)
-
-/* 2 REG_BCNQ_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_BCNQ_TXBD_DESA_8822B 0
-#define BIT_MASK_BCNQ_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_BCNQ_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_BCNQ_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_BCNQ_TXBD_DESA_8822B)
-#define BIT_GET_BCNQ_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_BCNQ_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_BCNQ_TXBD_DESA_8822B)
-
-/* 2 REG_MGQ_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_MGQ_TXBD_DESA_8822B 0
-#define BIT_MASK_MGQ_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_MGQ_TXBD_DESA_8822B(x)                                             \
-	(((x) & BIT_MASK_MGQ_TXBD_DESA_8822B) << BIT_SHIFT_MGQ_TXBD_DESA_8822B)
-#define BIT_GET_MGQ_TXBD_DESA_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_MGQ_TXBD_DESA_8822B) & BIT_MASK_MGQ_TXBD_DESA_8822B)
-
-/* 2 REG_VOQ_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_VOQ_TXBD_DESA_8822B 0
-#define BIT_MASK_VOQ_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_VOQ_TXBD_DESA_8822B(x)                                             \
-	(((x) & BIT_MASK_VOQ_TXBD_DESA_8822B) << BIT_SHIFT_VOQ_TXBD_DESA_8822B)
-#define BIT_GET_VOQ_TXBD_DESA_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_VOQ_TXBD_DESA_8822B) & BIT_MASK_VOQ_TXBD_DESA_8822B)
-
-/* 2 REG_VIQ_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_VIQ_TXBD_DESA_8822B 0
-#define BIT_MASK_VIQ_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_VIQ_TXBD_DESA_8822B(x)                                             \
-	(((x) & BIT_MASK_VIQ_TXBD_DESA_8822B) << BIT_SHIFT_VIQ_TXBD_DESA_8822B)
-#define BIT_GET_VIQ_TXBD_DESA_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_VIQ_TXBD_DESA_8822B) & BIT_MASK_VIQ_TXBD_DESA_8822B)
-
-/* 2 REG_BEQ_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_BEQ_TXBD_DESA_8822B 0
-#define BIT_MASK_BEQ_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_BEQ_TXBD_DESA_8822B(x)                                             \
-	(((x) & BIT_MASK_BEQ_TXBD_DESA_8822B) << BIT_SHIFT_BEQ_TXBD_DESA_8822B)
-#define BIT_GET_BEQ_TXBD_DESA_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BEQ_TXBD_DESA_8822B) & BIT_MASK_BEQ_TXBD_DESA_8822B)
-
-/* 2 REG_BKQ_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_BKQ_TXBD_DESA_8822B 0
-#define BIT_MASK_BKQ_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_BKQ_TXBD_DESA_8822B(x)                                             \
-	(((x) & BIT_MASK_BKQ_TXBD_DESA_8822B) << BIT_SHIFT_BKQ_TXBD_DESA_8822B)
-#define BIT_GET_BKQ_TXBD_DESA_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BKQ_TXBD_DESA_8822B) & BIT_MASK_BKQ_TXBD_DESA_8822B)
-
-/* 2 REG_RXQ_RXBD_DESA_8822B */
-
-#define BIT_SHIFT_RXQ_RXBD_DESA_8822B 0
-#define BIT_MASK_RXQ_RXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_RXQ_RXBD_DESA_8822B(x)                                             \
-	(((x) & BIT_MASK_RXQ_RXBD_DESA_8822B) << BIT_SHIFT_RXQ_RXBD_DESA_8822B)
-#define BIT_GET_RXQ_RXBD_DESA_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_RXQ_RXBD_DESA_8822B) & BIT_MASK_RXQ_RXBD_DESA_8822B)
-
-/* 2 REG_HI0Q_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_HI0Q_TXBD_DESA_8822B 0
-#define BIT_MASK_HI0Q_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_HI0Q_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_HI0Q_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_HI0Q_TXBD_DESA_8822B)
-#define BIT_GET_HI0Q_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI0Q_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_HI0Q_TXBD_DESA_8822B)
-
-/* 2 REG_HI1Q_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_HI1Q_TXBD_DESA_8822B 0
-#define BIT_MASK_HI1Q_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_HI1Q_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_HI1Q_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_HI1Q_TXBD_DESA_8822B)
-#define BIT_GET_HI1Q_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI1Q_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_HI1Q_TXBD_DESA_8822B)
-
-/* 2 REG_HI2Q_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_HI2Q_TXBD_DESA_8822B 0
-#define BIT_MASK_HI2Q_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_HI2Q_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_HI2Q_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_HI2Q_TXBD_DESA_8822B)
-#define BIT_GET_HI2Q_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI2Q_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_HI2Q_TXBD_DESA_8822B)
-
-/* 2 REG_HI3Q_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_HI3Q_TXBD_DESA_8822B 0
-#define BIT_MASK_HI3Q_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_HI3Q_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_HI3Q_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_HI3Q_TXBD_DESA_8822B)
-#define BIT_GET_HI3Q_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI3Q_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_HI3Q_TXBD_DESA_8822B)
-
-/* 2 REG_HI4Q_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_HI4Q_TXBD_DESA_8822B 0
-#define BIT_MASK_HI4Q_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_HI4Q_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_HI4Q_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_HI4Q_TXBD_DESA_8822B)
-#define BIT_GET_HI4Q_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI4Q_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_HI4Q_TXBD_DESA_8822B)
-
-/* 2 REG_HI5Q_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_HI5Q_TXBD_DESA_8822B 0
-#define BIT_MASK_HI5Q_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_HI5Q_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_HI5Q_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_HI5Q_TXBD_DESA_8822B)
-#define BIT_GET_HI5Q_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI5Q_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_HI5Q_TXBD_DESA_8822B)
-
-/* 2 REG_HI6Q_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_HI6Q_TXBD_DESA_8822B 0
-#define BIT_MASK_HI6Q_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_HI6Q_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_HI6Q_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_HI6Q_TXBD_DESA_8822B)
-#define BIT_GET_HI6Q_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI6Q_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_HI6Q_TXBD_DESA_8822B)
-
-/* 2 REG_HI7Q_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_HI7Q_TXBD_DESA_8822B 0
-#define BIT_MASK_HI7Q_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_HI7Q_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_HI7Q_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_HI7Q_TXBD_DESA_8822B)
-#define BIT_GET_HI7Q_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI7Q_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_HI7Q_TXBD_DESA_8822B)
-
-/* 2 REG_MGQ_TXBD_NUM_8822B */
-#define BIT_PCIE_MGQ_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_MGQ_DESC_MODE_8822B 12
-#define BIT_MASK_MGQ_DESC_MODE_8822B 0x3
-#define BIT_MGQ_DESC_MODE_8822B(x)                                             \
-	(((x) & BIT_MASK_MGQ_DESC_MODE_8822B) << BIT_SHIFT_MGQ_DESC_MODE_8822B)
-#define BIT_GET_MGQ_DESC_MODE_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_MGQ_DESC_MODE_8822B) & BIT_MASK_MGQ_DESC_MODE_8822B)
-
-#define BIT_SHIFT_MGQ_DESC_NUM_8822B 0
-#define BIT_MASK_MGQ_DESC_NUM_8822B 0xfff
-#define BIT_MGQ_DESC_NUM_8822B(x)                                              \
-	(((x) & BIT_MASK_MGQ_DESC_NUM_8822B) << BIT_SHIFT_MGQ_DESC_NUM_8822B)
-#define BIT_GET_MGQ_DESC_NUM_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_MGQ_DESC_NUM_8822B) & BIT_MASK_MGQ_DESC_NUM_8822B)
-
-/* 2 REG_RX_RXBD_NUM_8822B */
-#define BIT_SYS_32_64_8822B BIT(15)
-
-#define BIT_SHIFT_BCNQ_DESC_MODE_8822B 13
-#define BIT_MASK_BCNQ_DESC_MODE_8822B 0x3
-#define BIT_BCNQ_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_BCNQ_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_BCNQ_DESC_MODE_8822B)
-#define BIT_GET_BCNQ_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_BCNQ_DESC_MODE_8822B) &                             \
-	 BIT_MASK_BCNQ_DESC_MODE_8822B)
-
-#define BIT_PCIE_BCNQ_FLAG_8822B BIT(12)
-
-#define BIT_SHIFT_RXQ_DESC_NUM_8822B 0
-#define BIT_MASK_RXQ_DESC_NUM_8822B 0xfff
-#define BIT_RXQ_DESC_NUM_8822B(x)                                              \
-	(((x) & BIT_MASK_RXQ_DESC_NUM_8822B) << BIT_SHIFT_RXQ_DESC_NUM_8822B)
-#define BIT_GET_RXQ_DESC_NUM_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_RXQ_DESC_NUM_8822B) & BIT_MASK_RXQ_DESC_NUM_8822B)
-
-/* 2 REG_VOQ_TXBD_NUM_8822B */
-#define BIT_PCIE_VOQ_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_VOQ_DESC_MODE_8822B 12
-#define BIT_MASK_VOQ_DESC_MODE_8822B 0x3
-#define BIT_VOQ_DESC_MODE_8822B(x)                                             \
-	(((x) & BIT_MASK_VOQ_DESC_MODE_8822B) << BIT_SHIFT_VOQ_DESC_MODE_8822B)
-#define BIT_GET_VOQ_DESC_MODE_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_VOQ_DESC_MODE_8822B) & BIT_MASK_VOQ_DESC_MODE_8822B)
-
-#define BIT_SHIFT_VOQ_DESC_NUM_8822B 0
-#define BIT_MASK_VOQ_DESC_NUM_8822B 0xfff
-#define BIT_VOQ_DESC_NUM_8822B(x)                                              \
-	(((x) & BIT_MASK_VOQ_DESC_NUM_8822B) << BIT_SHIFT_VOQ_DESC_NUM_8822B)
-#define BIT_GET_VOQ_DESC_NUM_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_VOQ_DESC_NUM_8822B) & BIT_MASK_VOQ_DESC_NUM_8822B)
-
-/* 2 REG_VIQ_TXBD_NUM_8822B */
-#define BIT_PCIE_VIQ_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_VIQ_DESC_MODE_8822B 12
-#define BIT_MASK_VIQ_DESC_MODE_8822B 0x3
-#define BIT_VIQ_DESC_MODE_8822B(x)                                             \
-	(((x) & BIT_MASK_VIQ_DESC_MODE_8822B) << BIT_SHIFT_VIQ_DESC_MODE_8822B)
-#define BIT_GET_VIQ_DESC_MODE_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_VIQ_DESC_MODE_8822B) & BIT_MASK_VIQ_DESC_MODE_8822B)
-
-#define BIT_SHIFT_VIQ_DESC_NUM_8822B 0
-#define BIT_MASK_VIQ_DESC_NUM_8822B 0xfff
-#define BIT_VIQ_DESC_NUM_8822B(x)                                              \
-	(((x) & BIT_MASK_VIQ_DESC_NUM_8822B) << BIT_SHIFT_VIQ_DESC_NUM_8822B)
-#define BIT_GET_VIQ_DESC_NUM_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_VIQ_DESC_NUM_8822B) & BIT_MASK_VIQ_DESC_NUM_8822B)
-
-/* 2 REG_BEQ_TXBD_NUM_8822B */
-#define BIT_PCIE_BEQ_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_BEQ_DESC_MODE_8822B 12
-#define BIT_MASK_BEQ_DESC_MODE_8822B 0x3
-#define BIT_BEQ_DESC_MODE_8822B(x)                                             \
-	(((x) & BIT_MASK_BEQ_DESC_MODE_8822B) << BIT_SHIFT_BEQ_DESC_MODE_8822B)
-#define BIT_GET_BEQ_DESC_MODE_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BEQ_DESC_MODE_8822B) & BIT_MASK_BEQ_DESC_MODE_8822B)
-
-#define BIT_SHIFT_BEQ_DESC_NUM_8822B 0
-#define BIT_MASK_BEQ_DESC_NUM_8822B 0xfff
-#define BIT_BEQ_DESC_NUM_8822B(x)                                              \
-	(((x) & BIT_MASK_BEQ_DESC_NUM_8822B) << BIT_SHIFT_BEQ_DESC_NUM_8822B)
-#define BIT_GET_BEQ_DESC_NUM_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BEQ_DESC_NUM_8822B) & BIT_MASK_BEQ_DESC_NUM_8822B)
-
-/* 2 REG_BKQ_TXBD_NUM_8822B */
-#define BIT_PCIE_BKQ_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_BKQ_DESC_MODE_8822B 12
-#define BIT_MASK_BKQ_DESC_MODE_8822B 0x3
-#define BIT_BKQ_DESC_MODE_8822B(x)                                             \
-	(((x) & BIT_MASK_BKQ_DESC_MODE_8822B) << BIT_SHIFT_BKQ_DESC_MODE_8822B)
-#define BIT_GET_BKQ_DESC_MODE_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BKQ_DESC_MODE_8822B) & BIT_MASK_BKQ_DESC_MODE_8822B)
-
-#define BIT_SHIFT_BKQ_DESC_NUM_8822B 0
-#define BIT_MASK_BKQ_DESC_NUM_8822B 0xfff
-#define BIT_BKQ_DESC_NUM_8822B(x)                                              \
-	(((x) & BIT_MASK_BKQ_DESC_NUM_8822B) << BIT_SHIFT_BKQ_DESC_NUM_8822B)
-#define BIT_GET_BKQ_DESC_NUM_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BKQ_DESC_NUM_8822B) & BIT_MASK_BKQ_DESC_NUM_8822B)
-
-/* 2 REG_HI0Q_TXBD_NUM_8822B */
-#define BIT_HI0Q_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_HI0Q_DESC_MODE_8822B 12
-#define BIT_MASK_HI0Q_DESC_MODE_8822B 0x3
-#define BIT_HI0Q_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_HI0Q_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_HI0Q_DESC_MODE_8822B)
-#define BIT_GET_HI0Q_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI0Q_DESC_MODE_8822B) &                             \
-	 BIT_MASK_HI0Q_DESC_MODE_8822B)
-
-#define BIT_SHIFT_HI0Q_DESC_NUM_8822B 0
-#define BIT_MASK_HI0Q_DESC_NUM_8822B 0xfff
-#define BIT_HI0Q_DESC_NUM_8822B(x)                                             \
-	(((x) & BIT_MASK_HI0Q_DESC_NUM_8822B) << BIT_SHIFT_HI0Q_DESC_NUM_8822B)
-#define BIT_GET_HI0Q_DESC_NUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI0Q_DESC_NUM_8822B) & BIT_MASK_HI0Q_DESC_NUM_8822B)
-
-/* 2 REG_HI1Q_TXBD_NUM_8822B */
-#define BIT_HI1Q_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_HI1Q_DESC_MODE_8822B 12
-#define BIT_MASK_HI1Q_DESC_MODE_8822B 0x3
-#define BIT_HI1Q_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_HI1Q_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_HI1Q_DESC_MODE_8822B)
-#define BIT_GET_HI1Q_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI1Q_DESC_MODE_8822B) &                             \
-	 BIT_MASK_HI1Q_DESC_MODE_8822B)
-
-#define BIT_SHIFT_HI1Q_DESC_NUM_8822B 0
-#define BIT_MASK_HI1Q_DESC_NUM_8822B 0xfff
-#define BIT_HI1Q_DESC_NUM_8822B(x)                                             \
-	(((x) & BIT_MASK_HI1Q_DESC_NUM_8822B) << BIT_SHIFT_HI1Q_DESC_NUM_8822B)
-#define BIT_GET_HI1Q_DESC_NUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI1Q_DESC_NUM_8822B) & BIT_MASK_HI1Q_DESC_NUM_8822B)
-
-/* 2 REG_HI2Q_TXBD_NUM_8822B */
-#define BIT_HI2Q_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_HI2Q_DESC_MODE_8822B 12
-#define BIT_MASK_HI2Q_DESC_MODE_8822B 0x3
-#define BIT_HI2Q_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_HI2Q_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_HI2Q_DESC_MODE_8822B)
-#define BIT_GET_HI2Q_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI2Q_DESC_MODE_8822B) &                             \
-	 BIT_MASK_HI2Q_DESC_MODE_8822B)
-
-#define BIT_SHIFT_HI2Q_DESC_NUM_8822B 0
-#define BIT_MASK_HI2Q_DESC_NUM_8822B 0xfff
-#define BIT_HI2Q_DESC_NUM_8822B(x)                                             \
-	(((x) & BIT_MASK_HI2Q_DESC_NUM_8822B) << BIT_SHIFT_HI2Q_DESC_NUM_8822B)
-#define BIT_GET_HI2Q_DESC_NUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI2Q_DESC_NUM_8822B) & BIT_MASK_HI2Q_DESC_NUM_8822B)
-
-/* 2 REG_HI3Q_TXBD_NUM_8822B */
-#define BIT_HI3Q_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_HI3Q_DESC_MODE_8822B 12
-#define BIT_MASK_HI3Q_DESC_MODE_8822B 0x3
-#define BIT_HI3Q_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_HI3Q_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_HI3Q_DESC_MODE_8822B)
-#define BIT_GET_HI3Q_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI3Q_DESC_MODE_8822B) &                             \
-	 BIT_MASK_HI3Q_DESC_MODE_8822B)
-
-#define BIT_SHIFT_HI3Q_DESC_NUM_8822B 0
-#define BIT_MASK_HI3Q_DESC_NUM_8822B 0xfff
-#define BIT_HI3Q_DESC_NUM_8822B(x)                                             \
-	(((x) & BIT_MASK_HI3Q_DESC_NUM_8822B) << BIT_SHIFT_HI3Q_DESC_NUM_8822B)
-#define BIT_GET_HI3Q_DESC_NUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI3Q_DESC_NUM_8822B) & BIT_MASK_HI3Q_DESC_NUM_8822B)
-
-/* 2 REG_HI4Q_TXBD_NUM_8822B */
-#define BIT_HI4Q_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_HI4Q_DESC_MODE_8822B 12
-#define BIT_MASK_HI4Q_DESC_MODE_8822B 0x3
-#define BIT_HI4Q_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_HI4Q_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_HI4Q_DESC_MODE_8822B)
-#define BIT_GET_HI4Q_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI4Q_DESC_MODE_8822B) &                             \
-	 BIT_MASK_HI4Q_DESC_MODE_8822B)
-
-#define BIT_SHIFT_HI4Q_DESC_NUM_8822B 0
-#define BIT_MASK_HI4Q_DESC_NUM_8822B 0xfff
-#define BIT_HI4Q_DESC_NUM_8822B(x)                                             \
-	(((x) & BIT_MASK_HI4Q_DESC_NUM_8822B) << BIT_SHIFT_HI4Q_DESC_NUM_8822B)
-#define BIT_GET_HI4Q_DESC_NUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI4Q_DESC_NUM_8822B) & BIT_MASK_HI4Q_DESC_NUM_8822B)
-
-/* 2 REG_HI5Q_TXBD_NUM_8822B */
-#define BIT_HI5Q_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_HI5Q_DESC_MODE_8822B 12
-#define BIT_MASK_HI5Q_DESC_MODE_8822B 0x3
-#define BIT_HI5Q_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_HI5Q_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_HI5Q_DESC_MODE_8822B)
-#define BIT_GET_HI5Q_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI5Q_DESC_MODE_8822B) &                             \
-	 BIT_MASK_HI5Q_DESC_MODE_8822B)
-
-#define BIT_SHIFT_HI5Q_DESC_NUM_8822B 0
-#define BIT_MASK_HI5Q_DESC_NUM_8822B 0xfff
-#define BIT_HI5Q_DESC_NUM_8822B(x)                                             \
-	(((x) & BIT_MASK_HI5Q_DESC_NUM_8822B) << BIT_SHIFT_HI5Q_DESC_NUM_8822B)
-#define BIT_GET_HI5Q_DESC_NUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI5Q_DESC_NUM_8822B) & BIT_MASK_HI5Q_DESC_NUM_8822B)
-
-/* 2 REG_HI6Q_TXBD_NUM_8822B */
-#define BIT_HI6Q_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_HI6Q_DESC_MODE_8822B 12
-#define BIT_MASK_HI6Q_DESC_MODE_8822B 0x3
-#define BIT_HI6Q_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_HI6Q_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_HI6Q_DESC_MODE_8822B)
-#define BIT_GET_HI6Q_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI6Q_DESC_MODE_8822B) &                             \
-	 BIT_MASK_HI6Q_DESC_MODE_8822B)
-
-#define BIT_SHIFT_HI6Q_DESC_NUM_8822B 0
-#define BIT_MASK_HI6Q_DESC_NUM_8822B 0xfff
-#define BIT_HI6Q_DESC_NUM_8822B(x)                                             \
-	(((x) & BIT_MASK_HI6Q_DESC_NUM_8822B) << BIT_SHIFT_HI6Q_DESC_NUM_8822B)
-#define BIT_GET_HI6Q_DESC_NUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI6Q_DESC_NUM_8822B) & BIT_MASK_HI6Q_DESC_NUM_8822B)
-
-/* 2 REG_HI7Q_TXBD_NUM_8822B */
-#define BIT_HI7Q_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_HI7Q_DESC_MODE_8822B 12
-#define BIT_MASK_HI7Q_DESC_MODE_8822B 0x3
-#define BIT_HI7Q_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_HI7Q_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_HI7Q_DESC_MODE_8822B)
-#define BIT_GET_HI7Q_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HI7Q_DESC_MODE_8822B) &                             \
-	 BIT_MASK_HI7Q_DESC_MODE_8822B)
-
-#define BIT_SHIFT_HI7Q_DESC_NUM_8822B 0
-#define BIT_MASK_HI7Q_DESC_NUM_8822B 0xfff
-#define BIT_HI7Q_DESC_NUM_8822B(x)                                             \
-	(((x) & BIT_MASK_HI7Q_DESC_NUM_8822B) << BIT_SHIFT_HI7Q_DESC_NUM_8822B)
-#define BIT_GET_HI7Q_DESC_NUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI7Q_DESC_NUM_8822B) & BIT_MASK_HI7Q_DESC_NUM_8822B)
-
-/* 2 REG_TSFTIMER_HCI_8822B */
-
-#define BIT_SHIFT_TSFT2_HCI_8822B 16
-#define BIT_MASK_TSFT2_HCI_8822B 0xffff
-#define BIT_TSFT2_HCI_8822B(x)                                                 \
-	(((x) & BIT_MASK_TSFT2_HCI_8822B) << BIT_SHIFT_TSFT2_HCI_8822B)
-#define BIT_GET_TSFT2_HCI_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_TSFT2_HCI_8822B) & BIT_MASK_TSFT2_HCI_8822B)
-
-#define BIT_SHIFT_TSFT1_HCI_8822B 0
-#define BIT_MASK_TSFT1_HCI_8822B 0xffff
-#define BIT_TSFT1_HCI_8822B(x)                                                 \
-	(((x) & BIT_MASK_TSFT1_HCI_8822B) << BIT_SHIFT_TSFT1_HCI_8822B)
-#define BIT_GET_TSFT1_HCI_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_TSFT1_HCI_8822B) & BIT_MASK_TSFT1_HCI_8822B)
-
-/* 2 REG_BD_RWPTR_CLR_8822B */
-#define BIT_CLR_HI7Q_HW_IDX_8822B BIT(29)
-#define BIT_CLR_HI6Q_HW_IDX_8822B BIT(28)
-#define BIT_CLR_HI5Q_HW_IDX_8822B BIT(27)
-#define BIT_CLR_HI4Q_HW_IDX_8822B BIT(26)
-#define BIT_CLR_HI3Q_HW_IDX_8822B BIT(25)
-#define BIT_CLR_HI2Q_HW_IDX_8822B BIT(24)
-#define BIT_CLR_HI1Q_HW_IDX_8822B BIT(23)
-#define BIT_CLR_HI0Q_HW_IDX_8822B BIT(22)
-#define BIT_CLR_BKQ_HW_IDX_8822B BIT(21)
-#define BIT_CLR_BEQ_HW_IDX_8822B BIT(20)
-#define BIT_CLR_VIQ_HW_IDX_8822B BIT(19)
-#define BIT_CLR_VOQ_HW_IDX_8822B BIT(18)
-#define BIT_CLR_MGQ_HW_IDX_8822B BIT(17)
-#define BIT_CLR_RXQ_HW_IDX_8822B BIT(16)
-#define BIT_CLR_HI7Q_HOST_IDX_8822B BIT(13)
-#define BIT_CLR_HI6Q_HOST_IDX_8822B BIT(12)
-#define BIT_CLR_HI5Q_HOST_IDX_8822B BIT(11)
-#define BIT_CLR_HI4Q_HOST_IDX_8822B BIT(10)
-#define BIT_CLR_HI3Q_HOST_IDX_8822B BIT(9)
-#define BIT_CLR_HI2Q_HOST_IDX_8822B BIT(8)
-#define BIT_CLR_HI1Q_HOST_IDX_8822B BIT(7)
-#define BIT_CLR_HI0Q_HOST_IDX_8822B BIT(6)
-#define BIT_CLR_BKQ_HOST_IDX_8822B BIT(5)
-#define BIT_CLR_BEQ_HOST_IDX_8822B BIT(4)
-#define BIT_CLR_VIQ_HOST_IDX_8822B BIT(3)
-#define BIT_CLR_VOQ_HOST_IDX_8822B BIT(2)
-#define BIT_CLR_MGQ_HOST_IDX_8822B BIT(1)
-#define BIT_CLR_RXQ_HOST_IDX_8822B BIT(0)
-
-/* 2 REG_VOQ_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_VOQ_HW_IDX_8822B 16
-#define BIT_MASK_VOQ_HW_IDX_8822B 0xfff
-#define BIT_VOQ_HW_IDX_8822B(x)                                                \
-	(((x) & BIT_MASK_VOQ_HW_IDX_8822B) << BIT_SHIFT_VOQ_HW_IDX_8822B)
-#define BIT_GET_VOQ_HW_IDX_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_VOQ_HW_IDX_8822B) & BIT_MASK_VOQ_HW_IDX_8822B)
-
-#define BIT_SHIFT_VOQ_HOST_IDX_8822B 0
-#define BIT_MASK_VOQ_HOST_IDX_8822B 0xfff
-#define BIT_VOQ_HOST_IDX_8822B(x)                                              \
-	(((x) & BIT_MASK_VOQ_HOST_IDX_8822B) << BIT_SHIFT_VOQ_HOST_IDX_8822B)
-#define BIT_GET_VOQ_HOST_IDX_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_VOQ_HOST_IDX_8822B) & BIT_MASK_VOQ_HOST_IDX_8822B)
-
-/* 2 REG_VIQ_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_VIQ_HW_IDX_8822B 16
-#define BIT_MASK_VIQ_HW_IDX_8822B 0xfff
-#define BIT_VIQ_HW_IDX_8822B(x)                                                \
-	(((x) & BIT_MASK_VIQ_HW_IDX_8822B) << BIT_SHIFT_VIQ_HW_IDX_8822B)
-#define BIT_GET_VIQ_HW_IDX_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_VIQ_HW_IDX_8822B) & BIT_MASK_VIQ_HW_IDX_8822B)
-
-#define BIT_SHIFT_VIQ_HOST_IDX_8822B 0
-#define BIT_MASK_VIQ_HOST_IDX_8822B 0xfff
-#define BIT_VIQ_HOST_IDX_8822B(x)                                              \
-	(((x) & BIT_MASK_VIQ_HOST_IDX_8822B) << BIT_SHIFT_VIQ_HOST_IDX_8822B)
-#define BIT_GET_VIQ_HOST_IDX_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_VIQ_HOST_IDX_8822B) & BIT_MASK_VIQ_HOST_IDX_8822B)
-
-/* 2 REG_BEQ_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_BEQ_HW_IDX_8822B 16
-#define BIT_MASK_BEQ_HW_IDX_8822B 0xfff
-#define BIT_BEQ_HW_IDX_8822B(x)                                                \
-	(((x) & BIT_MASK_BEQ_HW_IDX_8822B) << BIT_SHIFT_BEQ_HW_IDX_8822B)
-#define BIT_GET_BEQ_HW_IDX_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_BEQ_HW_IDX_8822B) & BIT_MASK_BEQ_HW_IDX_8822B)
-
-#define BIT_SHIFT_BEQ_HOST_IDX_8822B 0
-#define BIT_MASK_BEQ_HOST_IDX_8822B 0xfff
-#define BIT_BEQ_HOST_IDX_8822B(x)                                              \
-	(((x) & BIT_MASK_BEQ_HOST_IDX_8822B) << BIT_SHIFT_BEQ_HOST_IDX_8822B)
-#define BIT_GET_BEQ_HOST_IDX_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BEQ_HOST_IDX_8822B) & BIT_MASK_BEQ_HOST_IDX_8822B)
-
-/* 2 REG_BKQ_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_BKQ_HW_IDX_8822B 16
-#define BIT_MASK_BKQ_HW_IDX_8822B 0xfff
-#define BIT_BKQ_HW_IDX_8822B(x)                                                \
-	(((x) & BIT_MASK_BKQ_HW_IDX_8822B) << BIT_SHIFT_BKQ_HW_IDX_8822B)
-#define BIT_GET_BKQ_HW_IDX_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_BKQ_HW_IDX_8822B) & BIT_MASK_BKQ_HW_IDX_8822B)
-
-#define BIT_SHIFT_BKQ_HOST_IDX_8822B 0
-#define BIT_MASK_BKQ_HOST_IDX_8822B 0xfff
-#define BIT_BKQ_HOST_IDX_8822B(x)                                              \
-	(((x) & BIT_MASK_BKQ_HOST_IDX_8822B) << BIT_SHIFT_BKQ_HOST_IDX_8822B)
-#define BIT_GET_BKQ_HOST_IDX_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BKQ_HOST_IDX_8822B) & BIT_MASK_BKQ_HOST_IDX_8822B)
-
-/* 2 REG_MGQ_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_MGQ_HW_IDX_8822B 16
-#define BIT_MASK_MGQ_HW_IDX_8822B 0xfff
-#define BIT_MGQ_HW_IDX_8822B(x)                                                \
-	(((x) & BIT_MASK_MGQ_HW_IDX_8822B) << BIT_SHIFT_MGQ_HW_IDX_8822B)
-#define BIT_GET_MGQ_HW_IDX_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_MGQ_HW_IDX_8822B) & BIT_MASK_MGQ_HW_IDX_8822B)
-
-#define BIT_SHIFT_MGQ_HOST_IDX_8822B 0
-#define BIT_MASK_MGQ_HOST_IDX_8822B 0xfff
-#define BIT_MGQ_HOST_IDX_8822B(x)                                              \
-	(((x) & BIT_MASK_MGQ_HOST_IDX_8822B) << BIT_SHIFT_MGQ_HOST_IDX_8822B)
-#define BIT_GET_MGQ_HOST_IDX_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_MGQ_HOST_IDX_8822B) & BIT_MASK_MGQ_HOST_IDX_8822B)
-
-/* 2 REG_RXQ_RXBD_IDX_8822B */
-
-#define BIT_SHIFT_RXQ_HW_IDX_8822B 16
-#define BIT_MASK_RXQ_HW_IDX_8822B 0xfff
-#define BIT_RXQ_HW_IDX_8822B(x)                                                \
-	(((x) & BIT_MASK_RXQ_HW_IDX_8822B) << BIT_SHIFT_RXQ_HW_IDX_8822B)
-#define BIT_GET_RXQ_HW_IDX_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_RXQ_HW_IDX_8822B) & BIT_MASK_RXQ_HW_IDX_8822B)
-
-#define BIT_SHIFT_RXQ_HOST_IDX_8822B 0
-#define BIT_MASK_RXQ_HOST_IDX_8822B 0xfff
-#define BIT_RXQ_HOST_IDX_8822B(x)                                              \
-	(((x) & BIT_MASK_RXQ_HOST_IDX_8822B) << BIT_SHIFT_RXQ_HOST_IDX_8822B)
-#define BIT_GET_RXQ_HOST_IDX_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_RXQ_HOST_IDX_8822B) & BIT_MASK_RXQ_HOST_IDX_8822B)
-
-/* 2 REG_HI0Q_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_HI0Q_HW_IDX_8822B 16
-#define BIT_MASK_HI0Q_HW_IDX_8822B 0xfff
-#define BIT_HI0Q_HW_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_HI0Q_HW_IDX_8822B) << BIT_SHIFT_HI0Q_HW_IDX_8822B)
-#define BIT_GET_HI0Q_HW_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HI0Q_HW_IDX_8822B) & BIT_MASK_HI0Q_HW_IDX_8822B)
-
-#define BIT_SHIFT_HI0Q_HOST_IDX_8822B 0
-#define BIT_MASK_HI0Q_HOST_IDX_8822B 0xfff
-#define BIT_HI0Q_HOST_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_HI0Q_HOST_IDX_8822B) << BIT_SHIFT_HI0Q_HOST_IDX_8822B)
-#define BIT_GET_HI0Q_HOST_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI0Q_HOST_IDX_8822B) & BIT_MASK_HI0Q_HOST_IDX_8822B)
-
-/* 2 REG_HI1Q_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_HI1Q_HW_IDX_8822B 16
-#define BIT_MASK_HI1Q_HW_IDX_8822B 0xfff
-#define BIT_HI1Q_HW_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_HI1Q_HW_IDX_8822B) << BIT_SHIFT_HI1Q_HW_IDX_8822B)
-#define BIT_GET_HI1Q_HW_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HI1Q_HW_IDX_8822B) & BIT_MASK_HI1Q_HW_IDX_8822B)
-
-#define BIT_SHIFT_HI1Q_HOST_IDX_8822B 0
-#define BIT_MASK_HI1Q_HOST_IDX_8822B 0xfff
-#define BIT_HI1Q_HOST_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_HI1Q_HOST_IDX_8822B) << BIT_SHIFT_HI1Q_HOST_IDX_8822B)
-#define BIT_GET_HI1Q_HOST_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI1Q_HOST_IDX_8822B) & BIT_MASK_HI1Q_HOST_IDX_8822B)
-
-/* 2 REG_HI2Q_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_HI2Q_HW_IDX_8822B 16
-#define BIT_MASK_HI2Q_HW_IDX_8822B 0xfff
-#define BIT_HI2Q_HW_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_HI2Q_HW_IDX_8822B) << BIT_SHIFT_HI2Q_HW_IDX_8822B)
-#define BIT_GET_HI2Q_HW_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HI2Q_HW_IDX_8822B) & BIT_MASK_HI2Q_HW_IDX_8822B)
-
-#define BIT_SHIFT_HI2Q_HOST_IDX_8822B 0
-#define BIT_MASK_HI2Q_HOST_IDX_8822B 0xfff
-#define BIT_HI2Q_HOST_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_HI2Q_HOST_IDX_8822B) << BIT_SHIFT_HI2Q_HOST_IDX_8822B)
-#define BIT_GET_HI2Q_HOST_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI2Q_HOST_IDX_8822B) & BIT_MASK_HI2Q_HOST_IDX_8822B)
-
-/* 2 REG_HI3Q_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_HI3Q_HW_IDX_8822B 16
-#define BIT_MASK_HI3Q_HW_IDX_8822B 0xfff
-#define BIT_HI3Q_HW_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_HI3Q_HW_IDX_8822B) << BIT_SHIFT_HI3Q_HW_IDX_8822B)
-#define BIT_GET_HI3Q_HW_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HI3Q_HW_IDX_8822B) & BIT_MASK_HI3Q_HW_IDX_8822B)
-
-#define BIT_SHIFT_HI3Q_HOST_IDX_8822B 0
-#define BIT_MASK_HI3Q_HOST_IDX_8822B 0xfff
-#define BIT_HI3Q_HOST_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_HI3Q_HOST_IDX_8822B) << BIT_SHIFT_HI3Q_HOST_IDX_8822B)
-#define BIT_GET_HI3Q_HOST_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI3Q_HOST_IDX_8822B) & BIT_MASK_HI3Q_HOST_IDX_8822B)
-
-/* 2 REG_HI4Q_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_HI4Q_HW_IDX_8822B 16
-#define BIT_MASK_HI4Q_HW_IDX_8822B 0xfff
-#define BIT_HI4Q_HW_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_HI4Q_HW_IDX_8822B) << BIT_SHIFT_HI4Q_HW_IDX_8822B)
-#define BIT_GET_HI4Q_HW_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HI4Q_HW_IDX_8822B) & BIT_MASK_HI4Q_HW_IDX_8822B)
-
-#define BIT_SHIFT_HI4Q_HOST_IDX_8822B 0
-#define BIT_MASK_HI4Q_HOST_IDX_8822B 0xfff
-#define BIT_HI4Q_HOST_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_HI4Q_HOST_IDX_8822B) << BIT_SHIFT_HI4Q_HOST_IDX_8822B)
-#define BIT_GET_HI4Q_HOST_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI4Q_HOST_IDX_8822B) & BIT_MASK_HI4Q_HOST_IDX_8822B)
-
-/* 2 REG_HI5Q_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_HI5Q_HW_IDX_8822B 16
-#define BIT_MASK_HI5Q_HW_IDX_8822B 0xfff
-#define BIT_HI5Q_HW_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_HI5Q_HW_IDX_8822B) << BIT_SHIFT_HI5Q_HW_IDX_8822B)
-#define BIT_GET_HI5Q_HW_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HI5Q_HW_IDX_8822B) & BIT_MASK_HI5Q_HW_IDX_8822B)
-
-#define BIT_SHIFT_HI5Q_HOST_IDX_8822B 0
-#define BIT_MASK_HI5Q_HOST_IDX_8822B 0xfff
-#define BIT_HI5Q_HOST_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_HI5Q_HOST_IDX_8822B) << BIT_SHIFT_HI5Q_HOST_IDX_8822B)
-#define BIT_GET_HI5Q_HOST_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI5Q_HOST_IDX_8822B) & BIT_MASK_HI5Q_HOST_IDX_8822B)
-
-/* 2 REG_HI6Q_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_HI6Q_HW_IDX_8822B 16
-#define BIT_MASK_HI6Q_HW_IDX_8822B 0xfff
-#define BIT_HI6Q_HW_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_HI6Q_HW_IDX_8822B) << BIT_SHIFT_HI6Q_HW_IDX_8822B)
-#define BIT_GET_HI6Q_HW_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HI6Q_HW_IDX_8822B) & BIT_MASK_HI6Q_HW_IDX_8822B)
-
-#define BIT_SHIFT_HI6Q_HOST_IDX_8822B 0
-#define BIT_MASK_HI6Q_HOST_IDX_8822B 0xfff
-#define BIT_HI6Q_HOST_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_HI6Q_HOST_IDX_8822B) << BIT_SHIFT_HI6Q_HOST_IDX_8822B)
-#define BIT_GET_HI6Q_HOST_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI6Q_HOST_IDX_8822B) & BIT_MASK_HI6Q_HOST_IDX_8822B)
-
-/* 2 REG_HI7Q_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_HI7Q_HW_IDX_8822B 16
-#define BIT_MASK_HI7Q_HW_IDX_8822B 0xfff
-#define BIT_HI7Q_HW_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_HI7Q_HW_IDX_8822B) << BIT_SHIFT_HI7Q_HW_IDX_8822B)
-#define BIT_GET_HI7Q_HW_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HI7Q_HW_IDX_8822B) & BIT_MASK_HI7Q_HW_IDX_8822B)
-
-#define BIT_SHIFT_HI7Q_HOST_IDX_8822B 0
-#define BIT_MASK_HI7Q_HOST_IDX_8822B 0xfff
-#define BIT_HI7Q_HOST_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_HI7Q_HOST_IDX_8822B) << BIT_SHIFT_HI7Q_HOST_IDX_8822B)
-#define BIT_GET_HI7Q_HOST_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HI7Q_HOST_IDX_8822B) & BIT_MASK_HI7Q_HOST_IDX_8822B)
-
-/* 2 REG_DBG_SEL_V1_8822B */
-
-#define BIT_SHIFT_DBG_SEL_8822B 0
-#define BIT_MASK_DBG_SEL_8822B 0xff
-#define BIT_DBG_SEL_8822B(x)                                                   \
-	(((x) & BIT_MASK_DBG_SEL_8822B) << BIT_SHIFT_DBG_SEL_8822B)
-#define BIT_GET_DBG_SEL_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_DBG_SEL_8822B) & BIT_MASK_DBG_SEL_8822B)
-
-/* 2 REG_PCIE_HRPWM1_V1_8822B */
-
-#define BIT_SHIFT_PCIE_HRPWM_8822B 0
-#define BIT_MASK_PCIE_HRPWM_8822B 0xff
-#define BIT_PCIE_HRPWM_8822B(x)                                                \
-	(((x) & BIT_MASK_PCIE_HRPWM_8822B) << BIT_SHIFT_PCIE_HRPWM_8822B)
-#define BIT_GET_PCIE_HRPWM_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_PCIE_HRPWM_8822B) & BIT_MASK_PCIE_HRPWM_8822B)
-
-/* 2 REG_PCIE_HCPWM1_V1_8822B */
-
-#define BIT_SHIFT_PCIE_HCPWM_8822B 0
-#define BIT_MASK_PCIE_HCPWM_8822B 0xff
-#define BIT_PCIE_HCPWM_8822B(x)                                                \
-	(((x) & BIT_MASK_PCIE_HCPWM_8822B) << BIT_SHIFT_PCIE_HCPWM_8822B)
-#define BIT_GET_PCIE_HCPWM_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_PCIE_HCPWM_8822B) & BIT_MASK_PCIE_HCPWM_8822B)
-
-/* 2 REG_PCIE_CTRL2_8822B */
-#define BIT_DIS_TXDMA_PRE_8822B BIT(7)
-#define BIT_DIS_RXDMA_PRE_8822B BIT(6)
-
-#define BIT_SHIFT_HPS_CLKR_PCIE_8822B 4
-#define BIT_MASK_HPS_CLKR_PCIE_8822B 0x3
-#define BIT_HPS_CLKR_PCIE_8822B(x)                                             \
-	(((x) & BIT_MASK_HPS_CLKR_PCIE_8822B) << BIT_SHIFT_HPS_CLKR_PCIE_8822B)
-#define BIT_GET_HPS_CLKR_PCIE_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HPS_CLKR_PCIE_8822B) & BIT_MASK_HPS_CLKR_PCIE_8822B)
-
-#define BIT_PCIE_INT_8822B BIT(3)
-#define BIT_TXFLAG_EXIT_L1_EN_8822B BIT(2)
-#define BIT_EN_RXDMA_ALIGN_8822B BIT(1)
-#define BIT_EN_TXDMA_ALIGN_8822B BIT(0)
-
-/* 2 REG_PCIE_HRPWM2_V1_8822B */
-
-#define BIT_SHIFT_PCIE_HRPWM2_8822B 0
-#define BIT_MASK_PCIE_HRPWM2_8822B 0xffff
-#define BIT_PCIE_HRPWM2_8822B(x)                                               \
-	(((x) & BIT_MASK_PCIE_HRPWM2_8822B) << BIT_SHIFT_PCIE_HRPWM2_8822B)
-#define BIT_GET_PCIE_HRPWM2_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_PCIE_HRPWM2_8822B) & BIT_MASK_PCIE_HRPWM2_8822B)
-
-/* 2 REG_PCIE_HCPWM2_V1_8822B */
-
-#define BIT_SHIFT_PCIE_HCPWM2_8822B 0
-#define BIT_MASK_PCIE_HCPWM2_8822B 0xffff
-#define BIT_PCIE_HCPWM2_8822B(x)                                               \
-	(((x) & BIT_MASK_PCIE_HCPWM2_8822B) << BIT_SHIFT_PCIE_HCPWM2_8822B)
-#define BIT_GET_PCIE_HCPWM2_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_PCIE_HCPWM2_8822B) & BIT_MASK_PCIE_HCPWM2_8822B)
-
-/* 2 REG_PCIE_H2C_MSG_V1_8822B */
-
-#define BIT_SHIFT_DRV2FW_INFO_8822B 0
-#define BIT_MASK_DRV2FW_INFO_8822B 0xffffffffL
-#define BIT_DRV2FW_INFO_8822B(x)                                               \
-	(((x) & BIT_MASK_DRV2FW_INFO_8822B) << BIT_SHIFT_DRV2FW_INFO_8822B)
-#define BIT_GET_DRV2FW_INFO_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_DRV2FW_INFO_8822B) & BIT_MASK_DRV2FW_INFO_8822B)
-
-/* 2 REG_PCIE_C2H_MSG_V1_8822B */
-
-#define BIT_SHIFT_HCI_PCIE_C2H_MSG_8822B 0
-#define BIT_MASK_HCI_PCIE_C2H_MSG_8822B 0xffffffffL
-#define BIT_HCI_PCIE_C2H_MSG_8822B(x)                                          \
-	(((x) & BIT_MASK_HCI_PCIE_C2H_MSG_8822B)                               \
-	 << BIT_SHIFT_HCI_PCIE_C2H_MSG_8822B)
-#define BIT_GET_HCI_PCIE_C2H_MSG_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_HCI_PCIE_C2H_MSG_8822B) &                           \
-	 BIT_MASK_HCI_PCIE_C2H_MSG_8822B)
-
-/* 2 REG_DBI_WDATA_V1_8822B */
-
-#define BIT_SHIFT_DBI_WDATA_8822B 0
-#define BIT_MASK_DBI_WDATA_8822B 0xffffffffL
-#define BIT_DBI_WDATA_8822B(x)                                                 \
-	(((x) & BIT_MASK_DBI_WDATA_8822B) << BIT_SHIFT_DBI_WDATA_8822B)
-#define BIT_GET_DBI_WDATA_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_DBI_WDATA_8822B) & BIT_MASK_DBI_WDATA_8822B)
-
-/* 2 REG_DBI_RDATA_V1_8822B */
-
-#define BIT_SHIFT_DBI_RDATA_8822B 0
-#define BIT_MASK_DBI_RDATA_8822B 0xffffffffL
-#define BIT_DBI_RDATA_8822B(x)                                                 \
-	(((x) & BIT_MASK_DBI_RDATA_8822B) << BIT_SHIFT_DBI_RDATA_8822B)
-#define BIT_GET_DBI_RDATA_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_DBI_RDATA_8822B) & BIT_MASK_DBI_RDATA_8822B)
-
-/* 2 REG_DBI_FLAG_V1_8822B */
-#define BIT_EN_STUCK_DBG_8822B BIT(26)
-#define BIT_RX_STUCK_8822B BIT(25)
-#define BIT_TX_STUCK_8822B BIT(24)
-#define BIT_DBI_RFLAG_8822B BIT(17)
-#define BIT_DBI_WFLAG_8822B BIT(16)
-
-#define BIT_SHIFT_DBI_WREN_8822B 12
-#define BIT_MASK_DBI_WREN_8822B 0xf
-#define BIT_DBI_WREN_8822B(x)                                                  \
-	(((x) & BIT_MASK_DBI_WREN_8822B) << BIT_SHIFT_DBI_WREN_8822B)
-#define BIT_GET_DBI_WREN_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DBI_WREN_8822B) & BIT_MASK_DBI_WREN_8822B)
-
-#define BIT_SHIFT_DBI_ADDR_8822B 0
-#define BIT_MASK_DBI_ADDR_8822B 0xfff
-#define BIT_DBI_ADDR_8822B(x)                                                  \
-	(((x) & BIT_MASK_DBI_ADDR_8822B) << BIT_SHIFT_DBI_ADDR_8822B)
-#define BIT_GET_DBI_ADDR_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DBI_ADDR_8822B) & BIT_MASK_DBI_ADDR_8822B)
-
-/* 2 REG_MDIO_V1_8822B */
-
-#define BIT_SHIFT_MDIO_RDATA_8822B 16
-#define BIT_MASK_MDIO_RDATA_8822B 0xffff
-#define BIT_MDIO_RDATA_8822B(x)                                                \
-	(((x) & BIT_MASK_MDIO_RDATA_8822B) << BIT_SHIFT_MDIO_RDATA_8822B)
-#define BIT_GET_MDIO_RDATA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_MDIO_RDATA_8822B) & BIT_MASK_MDIO_RDATA_8822B)
-
-#define BIT_SHIFT_MDIO_WDATA_8822B 0
-#define BIT_MASK_MDIO_WDATA_8822B 0xffff
-#define BIT_MDIO_WDATA_8822B(x)                                                \
-	(((x) & BIT_MASK_MDIO_WDATA_8822B) << BIT_SHIFT_MDIO_WDATA_8822B)
-#define BIT_GET_MDIO_WDATA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_MDIO_WDATA_8822B) & BIT_MASK_MDIO_WDATA_8822B)
-
-/* 2 REG_PCIE_MIX_CFG_8822B */
-
-#define BIT_SHIFT_MDIO_PHY_ADDR_8822B 24
-#define BIT_MASK_MDIO_PHY_ADDR_8822B 0x1f
-#define BIT_MDIO_PHY_ADDR_8822B(x)                                             \
-	(((x) & BIT_MASK_MDIO_PHY_ADDR_8822B) << BIT_SHIFT_MDIO_PHY_ADDR_8822B)
-#define BIT_GET_MDIO_PHY_ADDR_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_MDIO_PHY_ADDR_8822B) & BIT_MASK_MDIO_PHY_ADDR_8822B)
-
-#define BIT_SHIFT_WATCH_DOG_RECORD_V1_8822B 10
-#define BIT_MASK_WATCH_DOG_RECORD_V1_8822B 0x3fff
-#define BIT_WATCH_DOG_RECORD_V1_8822B(x)                                       \
-	(((x) & BIT_MASK_WATCH_DOG_RECORD_V1_8822B)                            \
-	 << BIT_SHIFT_WATCH_DOG_RECORD_V1_8822B)
-#define BIT_GET_WATCH_DOG_RECORD_V1_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_WATCH_DOG_RECORD_V1_8822B) &                        \
-	 BIT_MASK_WATCH_DOG_RECORD_V1_8822B)
-
-#define BIT_R_IO_TIMEOUT_FLAG_V1_8822B BIT(9)
-#define BIT_EN_WATCH_DOG_8822B BIT(8)
-#define BIT_ECRC_EN_V1_8822B BIT(7)
-#define BIT_MDIO_RFLAG_V1_8822B BIT(6)
-#define BIT_MDIO_WFLAG_V1_8822B BIT(5)
-
-#define BIT_SHIFT_MDIO_REG_ADDR_V1_8822B 0
-#define BIT_MASK_MDIO_REG_ADDR_V1_8822B 0x1f
-#define BIT_MDIO_REG_ADDR_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_MDIO_REG_ADDR_V1_8822B)                               \
-	 << BIT_SHIFT_MDIO_REG_ADDR_V1_8822B)
-#define BIT_GET_MDIO_REG_ADDR_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_MDIO_REG_ADDR_V1_8822B) &                           \
-	 BIT_MASK_MDIO_REG_ADDR_V1_8822B)
-
-/* 2 REG_HCI_MIX_CFG_8822B */
-#define BIT_HOST_GEN2_SUPPORT_8822B BIT(20)
-
-#define BIT_SHIFT_TXDMA_ERR_FLAG_8822B 16
-#define BIT_MASK_TXDMA_ERR_FLAG_8822B 0xf
-#define BIT_TXDMA_ERR_FLAG_8822B(x)                                            \
-	(((x) & BIT_MASK_TXDMA_ERR_FLAG_8822B)                                 \
-	 << BIT_SHIFT_TXDMA_ERR_FLAG_8822B)
-#define BIT_GET_TXDMA_ERR_FLAG_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TXDMA_ERR_FLAG_8822B) &                             \
-	 BIT_MASK_TXDMA_ERR_FLAG_8822B)
-
-#define BIT_SHIFT_EARLY_MODE_SEL_8822B 12
-#define BIT_MASK_EARLY_MODE_SEL_8822B 0xf
-#define BIT_EARLY_MODE_SEL_8822B(x)                                            \
-	(((x) & BIT_MASK_EARLY_MODE_SEL_8822B)                                 \
-	 << BIT_SHIFT_EARLY_MODE_SEL_8822B)
-#define BIT_GET_EARLY_MODE_SEL_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_EARLY_MODE_SEL_8822B) &                             \
-	 BIT_MASK_EARLY_MODE_SEL_8822B)
-
-#define BIT_EPHY_RX50_EN_8822B BIT(11)
-
-#define BIT_SHIFT_MSI_TIMEOUT_ID_V1_8822B 8
-#define BIT_MASK_MSI_TIMEOUT_ID_V1_8822B 0x7
-#define BIT_MSI_TIMEOUT_ID_V1_8822B(x)                                         \
-	(((x) & BIT_MASK_MSI_TIMEOUT_ID_V1_8822B)                              \
-	 << BIT_SHIFT_MSI_TIMEOUT_ID_V1_8822B)
-#define BIT_GET_MSI_TIMEOUT_ID_V1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_MSI_TIMEOUT_ID_V1_8822B) &                          \
-	 BIT_MASK_MSI_TIMEOUT_ID_V1_8822B)
-
-#define BIT_RADDR_RD_8822B BIT(7)
-#define BIT_EN_MUL_TAG_8822B BIT(6)
-#define BIT_EN_EARLY_MODE_8822B BIT(5)
-#define BIT_L0S_LINK_OFF_8822B BIT(4)
-#define BIT_ACT_LINK_OFF_8822B BIT(3)
-#define BIT_EN_SLOW_MAC_TX_8822B BIT(2)
-#define BIT_EN_SLOW_MAC_RX_8822B BIT(1)
-
-/* 2 REG_STC_INT_CS_8822B(PCIE STATE CHANGE INTERRUPT CONTROL AND STATUS) */
-#define BIT_STC_INT_EN_8822B BIT(31)
-
-#define BIT_SHIFT_STC_INT_FLAG_8822B 16
-#define BIT_MASK_STC_INT_FLAG_8822B 0xff
-#define BIT_STC_INT_FLAG_8822B(x)                                              \
-	(((x) & BIT_MASK_STC_INT_FLAG_8822B) << BIT_SHIFT_STC_INT_FLAG_8822B)
-#define BIT_GET_STC_INT_FLAG_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_STC_INT_FLAG_8822B) & BIT_MASK_STC_INT_FLAG_8822B)
-
-#define BIT_SHIFT_STC_INT_IDX_8822B 8
-#define BIT_MASK_STC_INT_IDX_8822B 0x7
-#define BIT_STC_INT_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_STC_INT_IDX_8822B) << BIT_SHIFT_STC_INT_IDX_8822B)
-#define BIT_GET_STC_INT_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_STC_INT_IDX_8822B) & BIT_MASK_STC_INT_IDX_8822B)
-
-#define BIT_SHIFT_STC_INT_REALTIME_CS_8822B 0
-#define BIT_MASK_STC_INT_REALTIME_CS_8822B 0x3f
-#define BIT_STC_INT_REALTIME_CS_8822B(x)                                       \
-	(((x) & BIT_MASK_STC_INT_REALTIME_CS_8822B)                            \
-	 << BIT_SHIFT_STC_INT_REALTIME_CS_8822B)
-#define BIT_GET_STC_INT_REALTIME_CS_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_STC_INT_REALTIME_CS_8822B) &                        \
-	 BIT_MASK_STC_INT_REALTIME_CS_8822B)
-
-/* 2 REG_ST_INT_CFG_8822B(PCIE STATE CHANGE INTERRUPT CONFIGURATION) */
-#define BIT_STC_INT_GRP_EN_8822B BIT(31)
-
-#define BIT_SHIFT_STC_INT_EXPECT_LS_8822B 8
-#define BIT_MASK_STC_INT_EXPECT_LS_8822B 0x3f
-#define BIT_STC_INT_EXPECT_LS_8822B(x)                                         \
-	(((x) & BIT_MASK_STC_INT_EXPECT_LS_8822B)                              \
-	 << BIT_SHIFT_STC_INT_EXPECT_LS_8822B)
-#define BIT_GET_STC_INT_EXPECT_LS_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_STC_INT_EXPECT_LS_8822B) &                          \
-	 BIT_MASK_STC_INT_EXPECT_LS_8822B)
-
-#define BIT_SHIFT_STC_INT_EXPECT_CS_8822B 0
-#define BIT_MASK_STC_INT_EXPECT_CS_8822B 0x3f
-#define BIT_STC_INT_EXPECT_CS_8822B(x)                                         \
-	(((x) & BIT_MASK_STC_INT_EXPECT_CS_8822B)                              \
-	 << BIT_SHIFT_STC_INT_EXPECT_CS_8822B)
-#define BIT_GET_STC_INT_EXPECT_CS_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_STC_INT_EXPECT_CS_8822B) &                          \
-	 BIT_MASK_STC_INT_EXPECT_CS_8822B)
-
-/* 2 REG_CMU_DLY_CTRL_8822B(PCIE PHY CLOCK MGT UNIT DELAY CONTROL ) */
-#define BIT_CMU_DLY_EN_8822B BIT(31)
-#define BIT_CMU_DLY_MODE_8822B BIT(30)
-
-#define BIT_SHIFT_CMU_DLY_PRE_DIV_8822B 0
-#define BIT_MASK_CMU_DLY_PRE_DIV_8822B 0xff
-#define BIT_CMU_DLY_PRE_DIV_8822B(x)                                           \
-	(((x) & BIT_MASK_CMU_DLY_PRE_DIV_8822B)                                \
-	 << BIT_SHIFT_CMU_DLY_PRE_DIV_8822B)
-#define BIT_GET_CMU_DLY_PRE_DIV_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_CMU_DLY_PRE_DIV_8822B) &                            \
-	 BIT_MASK_CMU_DLY_PRE_DIV_8822B)
-
-/* 2 REG_CMU_DLY_CFG_8822B(PCIE PHY CLOCK MGT UNIT DELAY CONFIGURATION ) */
-
-#define BIT_SHIFT_CMU_DLY_LTR_A2I_8822B 24
-#define BIT_MASK_CMU_DLY_LTR_A2I_8822B 0xff
-#define BIT_CMU_DLY_LTR_A2I_8822B(x)                                           \
-	(((x) & BIT_MASK_CMU_DLY_LTR_A2I_8822B)                                \
-	 << BIT_SHIFT_CMU_DLY_LTR_A2I_8822B)
-#define BIT_GET_CMU_DLY_LTR_A2I_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_CMU_DLY_LTR_A2I_8822B) &                            \
-	 BIT_MASK_CMU_DLY_LTR_A2I_8822B)
-
-#define BIT_SHIFT_CMU_DLY_LTR_I2A_8822B 16
-#define BIT_MASK_CMU_DLY_LTR_I2A_8822B 0xff
-#define BIT_CMU_DLY_LTR_I2A_8822B(x)                                           \
-	(((x) & BIT_MASK_CMU_DLY_LTR_I2A_8822B)                                \
-	 << BIT_SHIFT_CMU_DLY_LTR_I2A_8822B)
-#define BIT_GET_CMU_DLY_LTR_I2A_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_CMU_DLY_LTR_I2A_8822B) &                            \
-	 BIT_MASK_CMU_DLY_LTR_I2A_8822B)
-
-#define BIT_SHIFT_CMU_DLY_LTR_IDLE_8822B 8
-#define BIT_MASK_CMU_DLY_LTR_IDLE_8822B 0xff
-#define BIT_CMU_DLY_LTR_IDLE_8822B(x)                                          \
-	(((x) & BIT_MASK_CMU_DLY_LTR_IDLE_8822B)                               \
-	 << BIT_SHIFT_CMU_DLY_LTR_IDLE_8822B)
-#define BIT_GET_CMU_DLY_LTR_IDLE_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_CMU_DLY_LTR_IDLE_8822B) &                           \
-	 BIT_MASK_CMU_DLY_LTR_IDLE_8822B)
-
-#define BIT_SHIFT_CMU_DLY_LTR_ACT_8822B 0
-#define BIT_MASK_CMU_DLY_LTR_ACT_8822B 0xff
-#define BIT_CMU_DLY_LTR_ACT_8822B(x)                                           \
-	(((x) & BIT_MASK_CMU_DLY_LTR_ACT_8822B)                                \
-	 << BIT_SHIFT_CMU_DLY_LTR_ACT_8822B)
-#define BIT_GET_CMU_DLY_LTR_ACT_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_CMU_DLY_LTR_ACT_8822B) &                            \
-	 BIT_MASK_CMU_DLY_LTR_ACT_8822B)
-
-/* 2 REG_H2CQ_TXBD_DESA_8822B */
-
-#define BIT_SHIFT_H2CQ_TXBD_DESA_8822B 0
-#define BIT_MASK_H2CQ_TXBD_DESA_8822B 0xffffffffffffffffL
-#define BIT_H2CQ_TXBD_DESA_8822B(x)                                            \
-	(((x) & BIT_MASK_H2CQ_TXBD_DESA_8822B)                                 \
-	 << BIT_SHIFT_H2CQ_TXBD_DESA_8822B)
-#define BIT_GET_H2CQ_TXBD_DESA_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_H2CQ_TXBD_DESA_8822B) &                             \
-	 BIT_MASK_H2CQ_TXBD_DESA_8822B)
-
-/* 2 REG_H2CQ_TXBD_NUM_8822B */
-#define BIT_PCIE_H2CQ_FLAG_8822B BIT(14)
-
-#define BIT_SHIFT_H2CQ_DESC_MODE_8822B 12
-#define BIT_MASK_H2CQ_DESC_MODE_8822B 0x3
-#define BIT_H2CQ_DESC_MODE_8822B(x)                                            \
-	(((x) & BIT_MASK_H2CQ_DESC_MODE_8822B)                                 \
-	 << BIT_SHIFT_H2CQ_DESC_MODE_8822B)
-#define BIT_GET_H2CQ_DESC_MODE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_H2CQ_DESC_MODE_8822B) &                             \
-	 BIT_MASK_H2CQ_DESC_MODE_8822B)
-
-#define BIT_SHIFT_H2CQ_DESC_NUM_8822B 0
-#define BIT_MASK_H2CQ_DESC_NUM_8822B 0xfff
-#define BIT_H2CQ_DESC_NUM_8822B(x)                                             \
-	(((x) & BIT_MASK_H2CQ_DESC_NUM_8822B) << BIT_SHIFT_H2CQ_DESC_NUM_8822B)
-#define BIT_GET_H2CQ_DESC_NUM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_H2CQ_DESC_NUM_8822B) & BIT_MASK_H2CQ_DESC_NUM_8822B)
-
-/* 2 REG_H2CQ_TXBD_IDX_8822B */
-
-#define BIT_SHIFT_H2CQ_HW_IDX_8822B 16
-#define BIT_MASK_H2CQ_HW_IDX_8822B 0xfff
-#define BIT_H2CQ_HW_IDX_8822B(x)                                               \
-	(((x) & BIT_MASK_H2CQ_HW_IDX_8822B) << BIT_SHIFT_H2CQ_HW_IDX_8822B)
-#define BIT_GET_H2CQ_HW_IDX_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_H2CQ_HW_IDX_8822B) & BIT_MASK_H2CQ_HW_IDX_8822B)
-
-#define BIT_SHIFT_H2CQ_HOST_IDX_8822B 0
-#define BIT_MASK_H2CQ_HOST_IDX_8822B 0xfff
-#define BIT_H2CQ_HOST_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_H2CQ_HOST_IDX_8822B) << BIT_SHIFT_H2CQ_HOST_IDX_8822B)
-#define BIT_GET_H2CQ_HOST_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_H2CQ_HOST_IDX_8822B) & BIT_MASK_H2CQ_HOST_IDX_8822B)
-
-/* 2 REG_H2CQ_CSR_8822B[31:0] (H2CQ CONTROL AND STATUS) */
-#define BIT_H2CQ_FULL_8822B BIT(31)
-#define BIT_CLR_H2CQ_HOST_IDX_8822B BIT(16)
-#define BIT_CLR_H2CQ_HW_IDX_8822B BIT(8)
-
-/* 2 REG_CHANGE_PCIE_SPEED_8822B */
-#define BIT_CHANGE_PCIE_SPEED_8822B BIT(18)
-
-#define BIT_SHIFT_GEN1_GEN2_8822B 16
-#define BIT_MASK_GEN1_GEN2_8822B 0x3
-#define BIT_GEN1_GEN2_8822B(x)                                                 \
-	(((x) & BIT_MASK_GEN1_GEN2_8822B) << BIT_SHIFT_GEN1_GEN2_8822B)
-#define BIT_GET_GEN1_GEN2_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_GEN1_GEN2_8822B) & BIT_MASK_GEN1_GEN2_8822B)
-
-#define BIT_SHIFT_AUTO_HANG_RELEASE_8822B 0
-#define BIT_MASK_AUTO_HANG_RELEASE_8822B 0x7
-#define BIT_AUTO_HANG_RELEASE_8822B(x)                                         \
-	(((x) & BIT_MASK_AUTO_HANG_RELEASE_8822B)                              \
-	 << BIT_SHIFT_AUTO_HANG_RELEASE_8822B)
-#define BIT_GET_AUTO_HANG_RELEASE_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_AUTO_HANG_RELEASE_8822B) &                          \
-	 BIT_MASK_AUTO_HANG_RELEASE_8822B)
-
-/* 2 REG_OLD_DEHANG_8822B */
-#define BIT_OLD_DEHANG_8822B BIT(1)
-
-/* 2 REG_Q0_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_Q0_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_Q0_V1_8822B 0x7f
-#define BIT_QUEUEMACID_Q0_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_QUEUEMACID_Q0_V1_8822B)                               \
-	 << BIT_SHIFT_QUEUEMACID_Q0_V1_8822B)
-#define BIT_GET_QUEUEMACID_Q0_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q0_V1_8822B) &                           \
-	 BIT_MASK_QUEUEMACID_Q0_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_Q0_V1_8822B 23
-#define BIT_MASK_QUEUEAC_Q0_V1_8822B 0x3
-#define BIT_QUEUEAC_Q0_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_QUEUEAC_Q0_V1_8822B) << BIT_SHIFT_QUEUEAC_Q0_V1_8822B)
-#define BIT_GET_QUEUEAC_Q0_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q0_V1_8822B) & BIT_MASK_QUEUEAC_Q0_V1_8822B)
-
-#define BIT_TIDEMPTY_Q0_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_Q0_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_Q0_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_Q0_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_TAIL_PKT_Q0_V2_8822B)                                 \
-	 << BIT_SHIFT_TAIL_PKT_Q0_V2_8822B)
-#define BIT_GET_TAIL_PKT_Q0_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q0_V2_8822B) &                             \
-	 BIT_MASK_TAIL_PKT_Q0_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_Q0_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_Q0_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_Q0_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HEAD_PKT_Q0_V1_8822B)                                 \
-	 << BIT_SHIFT_HEAD_PKT_Q0_V1_8822B)
-#define BIT_GET_HEAD_PKT_Q0_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q0_V1_8822B) &                             \
-	 BIT_MASK_HEAD_PKT_Q0_V1_8822B)
-
-/* 2 REG_Q1_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_Q1_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_Q1_V1_8822B 0x7f
-#define BIT_QUEUEMACID_Q1_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_QUEUEMACID_Q1_V1_8822B)                               \
-	 << BIT_SHIFT_QUEUEMACID_Q1_V1_8822B)
-#define BIT_GET_QUEUEMACID_Q1_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q1_V1_8822B) &                           \
-	 BIT_MASK_QUEUEMACID_Q1_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_Q1_V1_8822B 23
-#define BIT_MASK_QUEUEAC_Q1_V1_8822B 0x3
-#define BIT_QUEUEAC_Q1_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_QUEUEAC_Q1_V1_8822B) << BIT_SHIFT_QUEUEAC_Q1_V1_8822B)
-#define BIT_GET_QUEUEAC_Q1_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q1_V1_8822B) & BIT_MASK_QUEUEAC_Q1_V1_8822B)
-
-#define BIT_TIDEMPTY_Q1_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_Q1_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_Q1_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_Q1_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_TAIL_PKT_Q1_V2_8822B)                                 \
-	 << BIT_SHIFT_TAIL_PKT_Q1_V2_8822B)
-#define BIT_GET_TAIL_PKT_Q1_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q1_V2_8822B) &                             \
-	 BIT_MASK_TAIL_PKT_Q1_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_Q1_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_Q1_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_Q1_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HEAD_PKT_Q1_V1_8822B)                                 \
-	 << BIT_SHIFT_HEAD_PKT_Q1_V1_8822B)
-#define BIT_GET_HEAD_PKT_Q1_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q1_V1_8822B) &                             \
-	 BIT_MASK_HEAD_PKT_Q1_V1_8822B)
-
-/* 2 REG_Q2_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_Q2_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_Q2_V1_8822B 0x7f
-#define BIT_QUEUEMACID_Q2_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_QUEUEMACID_Q2_V1_8822B)                               \
-	 << BIT_SHIFT_QUEUEMACID_Q2_V1_8822B)
-#define BIT_GET_QUEUEMACID_Q2_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q2_V1_8822B) &                           \
-	 BIT_MASK_QUEUEMACID_Q2_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_Q2_V1_8822B 23
-#define BIT_MASK_QUEUEAC_Q2_V1_8822B 0x3
-#define BIT_QUEUEAC_Q2_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_QUEUEAC_Q2_V1_8822B) << BIT_SHIFT_QUEUEAC_Q2_V1_8822B)
-#define BIT_GET_QUEUEAC_Q2_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q2_V1_8822B) & BIT_MASK_QUEUEAC_Q2_V1_8822B)
-
-#define BIT_TIDEMPTY_Q2_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_Q2_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_Q2_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_Q2_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_TAIL_PKT_Q2_V2_8822B)                                 \
-	 << BIT_SHIFT_TAIL_PKT_Q2_V2_8822B)
-#define BIT_GET_TAIL_PKT_Q2_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q2_V2_8822B) &                             \
-	 BIT_MASK_TAIL_PKT_Q2_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_Q2_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_Q2_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_Q2_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HEAD_PKT_Q2_V1_8822B)                                 \
-	 << BIT_SHIFT_HEAD_PKT_Q2_V1_8822B)
-#define BIT_GET_HEAD_PKT_Q2_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q2_V1_8822B) &                             \
-	 BIT_MASK_HEAD_PKT_Q2_V1_8822B)
-
-/* 2 REG_Q3_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_Q3_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_Q3_V1_8822B 0x7f
-#define BIT_QUEUEMACID_Q3_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_QUEUEMACID_Q3_V1_8822B)                               \
-	 << BIT_SHIFT_QUEUEMACID_Q3_V1_8822B)
-#define BIT_GET_QUEUEMACID_Q3_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q3_V1_8822B) &                           \
-	 BIT_MASK_QUEUEMACID_Q3_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_Q3_V1_8822B 23
-#define BIT_MASK_QUEUEAC_Q3_V1_8822B 0x3
-#define BIT_QUEUEAC_Q3_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_QUEUEAC_Q3_V1_8822B) << BIT_SHIFT_QUEUEAC_Q3_V1_8822B)
-#define BIT_GET_QUEUEAC_Q3_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q3_V1_8822B) & BIT_MASK_QUEUEAC_Q3_V1_8822B)
-
-#define BIT_TIDEMPTY_Q3_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_Q3_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_Q3_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_Q3_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_TAIL_PKT_Q3_V2_8822B)                                 \
-	 << BIT_SHIFT_TAIL_PKT_Q3_V2_8822B)
-#define BIT_GET_TAIL_PKT_Q3_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q3_V2_8822B) &                             \
-	 BIT_MASK_TAIL_PKT_Q3_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_Q3_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_Q3_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_Q3_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HEAD_PKT_Q3_V1_8822B)                                 \
-	 << BIT_SHIFT_HEAD_PKT_Q3_V1_8822B)
-#define BIT_GET_HEAD_PKT_Q3_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q3_V1_8822B) &                             \
-	 BIT_MASK_HEAD_PKT_Q3_V1_8822B)
-
-/* 2 REG_MGQ_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_MGQ_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_MGQ_V1_8822B 0x7f
-#define BIT_QUEUEMACID_MGQ_V1_8822B(x)                                         \
-	(((x) & BIT_MASK_QUEUEMACID_MGQ_V1_8822B)                              \
-	 << BIT_SHIFT_QUEUEMACID_MGQ_V1_8822B)
-#define BIT_GET_QUEUEMACID_MGQ_V1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_QUEUEMACID_MGQ_V1_8822B) &                          \
-	 BIT_MASK_QUEUEMACID_MGQ_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_MGQ_V1_8822B 23
-#define BIT_MASK_QUEUEAC_MGQ_V1_8822B 0x3
-#define BIT_QUEUEAC_MGQ_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_QUEUEAC_MGQ_V1_8822B)                                 \
-	 << BIT_SHIFT_QUEUEAC_MGQ_V1_8822B)
-#define BIT_GET_QUEUEAC_MGQ_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_QUEUEAC_MGQ_V1_8822B) &                             \
-	 BIT_MASK_QUEUEAC_MGQ_V1_8822B)
-
-#define BIT_TIDEMPTY_MGQ_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_MGQ_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_MGQ_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_MGQ_V2_8822B(x)                                           \
-	(((x) & BIT_MASK_TAIL_PKT_MGQ_V2_8822B)                                \
-	 << BIT_SHIFT_TAIL_PKT_MGQ_V2_8822B)
-#define BIT_GET_TAIL_PKT_MGQ_V2_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_TAIL_PKT_MGQ_V2_8822B) &                            \
-	 BIT_MASK_TAIL_PKT_MGQ_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_MGQ_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_MGQ_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_MGQ_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_HEAD_PKT_MGQ_V1_8822B)                                \
-	 << BIT_SHIFT_HEAD_PKT_MGQ_V1_8822B)
-#define BIT_GET_HEAD_PKT_MGQ_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_HEAD_PKT_MGQ_V1_8822B) &                            \
-	 BIT_MASK_HEAD_PKT_MGQ_V1_8822B)
-
-/* 2 REG_HIQ_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_HIQ_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_HIQ_V1_8822B 0x7f
-#define BIT_QUEUEMACID_HIQ_V1_8822B(x)                                         \
-	(((x) & BIT_MASK_QUEUEMACID_HIQ_V1_8822B)                              \
-	 << BIT_SHIFT_QUEUEMACID_HIQ_V1_8822B)
-#define BIT_GET_QUEUEMACID_HIQ_V1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_QUEUEMACID_HIQ_V1_8822B) &                          \
-	 BIT_MASK_QUEUEMACID_HIQ_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_HIQ_V1_8822B 23
-#define BIT_MASK_QUEUEAC_HIQ_V1_8822B 0x3
-#define BIT_QUEUEAC_HIQ_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_QUEUEAC_HIQ_V1_8822B)                                 \
-	 << BIT_SHIFT_QUEUEAC_HIQ_V1_8822B)
-#define BIT_GET_QUEUEAC_HIQ_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_QUEUEAC_HIQ_V1_8822B) &                             \
-	 BIT_MASK_QUEUEAC_HIQ_V1_8822B)
-
-#define BIT_TIDEMPTY_HIQ_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_HIQ_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_HIQ_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_HIQ_V2_8822B(x)                                           \
-	(((x) & BIT_MASK_TAIL_PKT_HIQ_V2_8822B)                                \
-	 << BIT_SHIFT_TAIL_PKT_HIQ_V2_8822B)
-#define BIT_GET_TAIL_PKT_HIQ_V2_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_TAIL_PKT_HIQ_V2_8822B) &                            \
-	 BIT_MASK_TAIL_PKT_HIQ_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_HIQ_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_HIQ_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_HIQ_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_HEAD_PKT_HIQ_V1_8822B)                                \
-	 << BIT_SHIFT_HEAD_PKT_HIQ_V1_8822B)
-#define BIT_GET_HEAD_PKT_HIQ_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_HEAD_PKT_HIQ_V1_8822B) &                            \
-	 BIT_MASK_HEAD_PKT_HIQ_V1_8822B)
-
-/* 2 REG_BCNQ_INFO_8822B */
-
-#define BIT_SHIFT_BCNQ_HEAD_PG_V1_8822B 0
-#define BIT_MASK_BCNQ_HEAD_PG_V1_8822B 0xfff
-#define BIT_BCNQ_HEAD_PG_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_BCNQ_HEAD_PG_V1_8822B)                                \
-	 << BIT_SHIFT_BCNQ_HEAD_PG_V1_8822B)
-#define BIT_GET_BCNQ_HEAD_PG_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_BCNQ_HEAD_PG_V1_8822B) &                            \
-	 BIT_MASK_BCNQ_HEAD_PG_V1_8822B)
-
-/* 2 REG_TXPKT_EMPTY_8822B */
-#define BIT_BCNQ_EMPTY_8822B BIT(11)
-#define BIT_HQQ_EMPTY_8822B BIT(10)
-#define BIT_MQQ_EMPTY_8822B BIT(9)
-#define BIT_MGQ_CPU_EMPTY_8822B BIT(8)
-#define BIT_AC7Q_EMPTY_8822B BIT(7)
-#define BIT_AC6Q_EMPTY_8822B BIT(6)
-#define BIT_AC5Q_EMPTY_8822B BIT(5)
-#define BIT_AC4Q_EMPTY_8822B BIT(4)
-#define BIT_AC3Q_EMPTY_8822B BIT(3)
-#define BIT_AC2Q_EMPTY_8822B BIT(2)
-#define BIT_AC1Q_EMPTY_8822B BIT(1)
-#define BIT_AC0Q_EMPTY_8822B BIT(0)
-
-/* 2 REG_CPU_MGQ_INFO_8822B */
-#define BIT_BCN1_POLL_8822B BIT(30)
-#define BIT_CPUMGT_POLL_8822B BIT(29)
-#define BIT_BCN_POLL_8822B BIT(28)
-#define BIT_CPUMGQ_FW_NUM_V1_8822B BIT(12)
-
-#define BIT_SHIFT_FW_FREE_TAIL_V1_8822B 0
-#define BIT_MASK_FW_FREE_TAIL_V1_8822B 0xfff
-#define BIT_FW_FREE_TAIL_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_FW_FREE_TAIL_V1_8822B)                                \
-	 << BIT_SHIFT_FW_FREE_TAIL_V1_8822B)
-#define BIT_GET_FW_FREE_TAIL_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_FW_FREE_TAIL_V1_8822B) &                            \
-	 BIT_MASK_FW_FREE_TAIL_V1_8822B)
-
-/* 2 REG_FWHW_TXQ_CTRL_8822B */
-#define BIT_RTS_LIMIT_IN_OFDM_8822B BIT(23)
-#define BIT_EN_BCNQ_DL_8822B BIT(22)
-#define BIT_EN_RD_RESP_NAV_BK_8822B BIT(21)
-#define BIT_EN_WR_FREE_TAIL_8822B BIT(20)
-
-#define BIT_SHIFT_EN_QUEUE_RPT_8822B 8
-#define BIT_MASK_EN_QUEUE_RPT_8822B 0xff
-#define BIT_EN_QUEUE_RPT_8822B(x)                                              \
-	(((x) & BIT_MASK_EN_QUEUE_RPT_8822B) << BIT_SHIFT_EN_QUEUE_RPT_8822B)
-#define BIT_GET_EN_QUEUE_RPT_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_EN_QUEUE_RPT_8822B) & BIT_MASK_EN_QUEUE_RPT_8822B)
-
-#define BIT_EN_RTY_BK_8822B BIT(7)
-#define BIT_EN_USE_INI_RAT_8822B BIT(6)
-#define BIT_EN_RTS_NAV_BK_8822B BIT(5)
-#define BIT_DIS_SSN_CHECK_8822B BIT(4)
-#define BIT_MACID_MATCH_RTS_8822B BIT(3)
-#define BIT_EN_BCN_TRXRPT_V1_8822B BIT(2)
-#define BIT_EN_FTMACKRPT_8822B BIT(1)
-#define BIT_EN_FTMRPT_8822B BIT(0)
-
-/* 2 REG_DATAFB_SEL_8822B */
-#define BIT__R_EN_RTY_BK_COD_8822B BIT(2)
-
-#define BIT_SHIFT__R_DATA_FALLBACK_SEL_8822B 0
-#define BIT_MASK__R_DATA_FALLBACK_SEL_8822B 0x3
-#define BIT__R_DATA_FALLBACK_SEL_8822B(x)                                      \
-	(((x) & BIT_MASK__R_DATA_FALLBACK_SEL_8822B)                           \
-	 << BIT_SHIFT__R_DATA_FALLBACK_SEL_8822B)
-#define BIT_GET__R_DATA_FALLBACK_SEL_8822B(x)                                  \
-	(((x) >> BIT_SHIFT__R_DATA_FALLBACK_SEL_8822B) &                       \
-	 BIT_MASK__R_DATA_FALLBACK_SEL_8822B)
-
-/* 2 REG_BCNQ_BDNY_V1_8822B */
-
-#define BIT_SHIFT_BCNQ_PGBNDY_V1_8822B 0
-#define BIT_MASK_BCNQ_PGBNDY_V1_8822B 0xfff
-#define BIT_BCNQ_PGBNDY_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_BCNQ_PGBNDY_V1_8822B)                                 \
-	 << BIT_SHIFT_BCNQ_PGBNDY_V1_8822B)
-#define BIT_GET_BCNQ_PGBNDY_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_BCNQ_PGBNDY_V1_8822B) &                             \
-	 BIT_MASK_BCNQ_PGBNDY_V1_8822B)
-
-/* 2 REG_LIFETIME_EN_8822B */
-#define BIT_BT_INT_CPU_8822B BIT(7)
-#define BIT_BT_INT_PTA_8822B BIT(6)
-#define BIT_EN_CTRL_RTYBIT_8822B BIT(4)
-#define BIT_LIFETIME_BK_EN_8822B BIT(3)
-#define BIT_LIFETIME_BE_EN_8822B BIT(2)
-#define BIT_LIFETIME_VI_EN_8822B BIT(1)
-#define BIT_LIFETIME_VO_EN_8822B BIT(0)
-
-/* 2 REG_SPEC_SIFS_8822B */
-
-#define BIT_SHIFT_SPEC_SIFS_OFDM_PTCL_8822B 8
-#define BIT_MASK_SPEC_SIFS_OFDM_PTCL_8822B 0xff
-#define BIT_SPEC_SIFS_OFDM_PTCL_8822B(x)                                       \
-	(((x) & BIT_MASK_SPEC_SIFS_OFDM_PTCL_8822B)                            \
-	 << BIT_SHIFT_SPEC_SIFS_OFDM_PTCL_8822B)
-#define BIT_GET_SPEC_SIFS_OFDM_PTCL_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_SPEC_SIFS_OFDM_PTCL_8822B) &                        \
-	 BIT_MASK_SPEC_SIFS_OFDM_PTCL_8822B)
-
-#define BIT_SHIFT_SPEC_SIFS_CCK_PTCL_8822B 0
-#define BIT_MASK_SPEC_SIFS_CCK_PTCL_8822B 0xff
-#define BIT_SPEC_SIFS_CCK_PTCL_8822B(x)                                        \
-	(((x) & BIT_MASK_SPEC_SIFS_CCK_PTCL_8822B)                             \
-	 << BIT_SHIFT_SPEC_SIFS_CCK_PTCL_8822B)
-#define BIT_GET_SPEC_SIFS_CCK_PTCL_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_SPEC_SIFS_CCK_PTCL_8822B) &                         \
-	 BIT_MASK_SPEC_SIFS_CCK_PTCL_8822B)
-
-/* 2 REG_RETRY_LIMIT_8822B */
-
-#define BIT_SHIFT_SRL_8822B 8
-#define BIT_MASK_SRL_8822B 0x3f
-#define BIT_SRL_8822B(x) (((x) & BIT_MASK_SRL_8822B) << BIT_SHIFT_SRL_8822B)
-#define BIT_GET_SRL_8822B(x) (((x) >> BIT_SHIFT_SRL_8822B) & BIT_MASK_SRL_8822B)
-
-#define BIT_SHIFT_LRL_8822B 0
-#define BIT_MASK_LRL_8822B 0x3f
-#define BIT_LRL_8822B(x) (((x) & BIT_MASK_LRL_8822B) << BIT_SHIFT_LRL_8822B)
-#define BIT_GET_LRL_8822B(x) (((x) >> BIT_SHIFT_LRL_8822B) & BIT_MASK_LRL_8822B)
-
-/* 2 REG_TXBF_CTRL_8822B */
-#define BIT_R_ENABLE_NDPA_8822B BIT(31)
-#define BIT_USE_NDPA_PARAMETER_8822B BIT(30)
-#define BIT_R_PROP_TXBF_8822B BIT(29)
-#define BIT_R_EN_NDPA_INT_8822B BIT(28)
-#define BIT_R_TXBF1_80M_8822B BIT(27)
-#define BIT_R_TXBF1_40M_8822B BIT(26)
-#define BIT_R_TXBF1_20M_8822B BIT(25)
-
-#define BIT_SHIFT_R_TXBF1_AID_8822B 16
-#define BIT_MASK_R_TXBF1_AID_8822B 0x1ff
-#define BIT_R_TXBF1_AID_8822B(x)                                               \
-	(((x) & BIT_MASK_R_TXBF1_AID_8822B) << BIT_SHIFT_R_TXBF1_AID_8822B)
-#define BIT_GET_R_TXBF1_AID_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_R_TXBF1_AID_8822B) & BIT_MASK_R_TXBF1_AID_8822B)
-
-#define BIT_DIS_NDP_BFEN_8822B BIT(15)
-#define BIT_R_TXBCN_NOBLOCK_NDP_8822B BIT(14)
-#define BIT_R_TXBF0_80M_8822B BIT(11)
-#define BIT_R_TXBF0_40M_8822B BIT(10)
-#define BIT_R_TXBF0_20M_8822B BIT(9)
-
-#define BIT_SHIFT_R_TXBF0_AID_8822B 0
-#define BIT_MASK_R_TXBF0_AID_8822B 0x1ff
-#define BIT_R_TXBF0_AID_8822B(x)                                               \
-	(((x) & BIT_MASK_R_TXBF0_AID_8822B) << BIT_SHIFT_R_TXBF0_AID_8822B)
-#define BIT_GET_R_TXBF0_AID_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_R_TXBF0_AID_8822B) & BIT_MASK_R_TXBF0_AID_8822B)
-
-/* 2 REG_DARFRC_8822B */
-
-#define BIT_SHIFT_DARF_RC8_8822B (56 & CPU_OPT_WIDTH)
-#define BIT_MASK_DARF_RC8_8822B 0x1f
-#define BIT_DARF_RC8_8822B(x)                                                  \
-	(((x) & BIT_MASK_DARF_RC8_8822B) << BIT_SHIFT_DARF_RC8_8822B)
-#define BIT_GET_DARF_RC8_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DARF_RC8_8822B) & BIT_MASK_DARF_RC8_8822B)
-
-#define BIT_SHIFT_DARF_RC7_8822B (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_DARF_RC7_8822B 0x1f
-#define BIT_DARF_RC7_8822B(x)                                                  \
-	(((x) & BIT_MASK_DARF_RC7_8822B) << BIT_SHIFT_DARF_RC7_8822B)
-#define BIT_GET_DARF_RC7_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DARF_RC7_8822B) & BIT_MASK_DARF_RC7_8822B)
-
-#define BIT_SHIFT_DARF_RC6_8822B (40 & CPU_OPT_WIDTH)
-#define BIT_MASK_DARF_RC6_8822B 0x1f
-#define BIT_DARF_RC6_8822B(x)                                                  \
-	(((x) & BIT_MASK_DARF_RC6_8822B) << BIT_SHIFT_DARF_RC6_8822B)
-#define BIT_GET_DARF_RC6_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DARF_RC6_8822B) & BIT_MASK_DARF_RC6_8822B)
-
-#define BIT_SHIFT_DARF_RC5_8822B (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_DARF_RC5_8822B 0x1f
-#define BIT_DARF_RC5_8822B(x)                                                  \
-	(((x) & BIT_MASK_DARF_RC5_8822B) << BIT_SHIFT_DARF_RC5_8822B)
-#define BIT_GET_DARF_RC5_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DARF_RC5_8822B) & BIT_MASK_DARF_RC5_8822B)
-
-#define BIT_SHIFT_DARF_RC4_8822B 24
-#define BIT_MASK_DARF_RC4_8822B 0x1f
-#define BIT_DARF_RC4_8822B(x)                                                  \
-	(((x) & BIT_MASK_DARF_RC4_8822B) << BIT_SHIFT_DARF_RC4_8822B)
-#define BIT_GET_DARF_RC4_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DARF_RC4_8822B) & BIT_MASK_DARF_RC4_8822B)
-
-#define BIT_SHIFT_DARF_RC3_8822B 16
-#define BIT_MASK_DARF_RC3_8822B 0x1f
-#define BIT_DARF_RC3_8822B(x)                                                  \
-	(((x) & BIT_MASK_DARF_RC3_8822B) << BIT_SHIFT_DARF_RC3_8822B)
-#define BIT_GET_DARF_RC3_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DARF_RC3_8822B) & BIT_MASK_DARF_RC3_8822B)
-
-#define BIT_SHIFT_DARF_RC2_8822B 8
-#define BIT_MASK_DARF_RC2_8822B 0x1f
-#define BIT_DARF_RC2_8822B(x)                                                  \
-	(((x) & BIT_MASK_DARF_RC2_8822B) << BIT_SHIFT_DARF_RC2_8822B)
-#define BIT_GET_DARF_RC2_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DARF_RC2_8822B) & BIT_MASK_DARF_RC2_8822B)
-
-#define BIT_SHIFT_DARF_RC1_8822B 0
-#define BIT_MASK_DARF_RC1_8822B 0x1f
-#define BIT_DARF_RC1_8822B(x)                                                  \
-	(((x) & BIT_MASK_DARF_RC1_8822B) << BIT_SHIFT_DARF_RC1_8822B)
-#define BIT_GET_DARF_RC1_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DARF_RC1_8822B) & BIT_MASK_DARF_RC1_8822B)
-
-/* 2 REG_RARFRC_8822B */
-
-#define BIT_SHIFT_RARF_RC8_8822B (56 & CPU_OPT_WIDTH)
-#define BIT_MASK_RARF_RC8_8822B 0x1f
-#define BIT_RARF_RC8_8822B(x)                                                  \
-	(((x) & BIT_MASK_RARF_RC8_8822B) << BIT_SHIFT_RARF_RC8_8822B)
-#define BIT_GET_RARF_RC8_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RARF_RC8_8822B) & BIT_MASK_RARF_RC8_8822B)
-
-#define BIT_SHIFT_RARF_RC7_8822B (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_RARF_RC7_8822B 0x1f
-#define BIT_RARF_RC7_8822B(x)                                                  \
-	(((x) & BIT_MASK_RARF_RC7_8822B) << BIT_SHIFT_RARF_RC7_8822B)
-#define BIT_GET_RARF_RC7_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RARF_RC7_8822B) & BIT_MASK_RARF_RC7_8822B)
-
-#define BIT_SHIFT_RARF_RC6_8822B (40 & CPU_OPT_WIDTH)
-#define BIT_MASK_RARF_RC6_8822B 0x1f
-#define BIT_RARF_RC6_8822B(x)                                                  \
-	(((x) & BIT_MASK_RARF_RC6_8822B) << BIT_SHIFT_RARF_RC6_8822B)
-#define BIT_GET_RARF_RC6_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RARF_RC6_8822B) & BIT_MASK_RARF_RC6_8822B)
-
-#define BIT_SHIFT_RARF_RC5_8822B (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_RARF_RC5_8822B 0x1f
-#define BIT_RARF_RC5_8822B(x)                                                  \
-	(((x) & BIT_MASK_RARF_RC5_8822B) << BIT_SHIFT_RARF_RC5_8822B)
-#define BIT_GET_RARF_RC5_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RARF_RC5_8822B) & BIT_MASK_RARF_RC5_8822B)
-
-#define BIT_SHIFT_RARF_RC4_8822B 24
-#define BIT_MASK_RARF_RC4_8822B 0x1f
-#define BIT_RARF_RC4_8822B(x)                                                  \
-	(((x) & BIT_MASK_RARF_RC4_8822B) << BIT_SHIFT_RARF_RC4_8822B)
-#define BIT_GET_RARF_RC4_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RARF_RC4_8822B) & BIT_MASK_RARF_RC4_8822B)
-
-#define BIT_SHIFT_RARF_RC3_8822B 16
-#define BIT_MASK_RARF_RC3_8822B 0x1f
-#define BIT_RARF_RC3_8822B(x)                                                  \
-	(((x) & BIT_MASK_RARF_RC3_8822B) << BIT_SHIFT_RARF_RC3_8822B)
-#define BIT_GET_RARF_RC3_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RARF_RC3_8822B) & BIT_MASK_RARF_RC3_8822B)
-
-#define BIT_SHIFT_RARF_RC2_8822B 8
-#define BIT_MASK_RARF_RC2_8822B 0x1f
-#define BIT_RARF_RC2_8822B(x)                                                  \
-	(((x) & BIT_MASK_RARF_RC2_8822B) << BIT_SHIFT_RARF_RC2_8822B)
-#define BIT_GET_RARF_RC2_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RARF_RC2_8822B) & BIT_MASK_RARF_RC2_8822B)
-
-#define BIT_SHIFT_RARF_RC1_8822B 0
-#define BIT_MASK_RARF_RC1_8822B 0x1f
-#define BIT_RARF_RC1_8822B(x)                                                  \
-	(((x) & BIT_MASK_RARF_RC1_8822B) << BIT_SHIFT_RARF_RC1_8822B)
-#define BIT_GET_RARF_RC1_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RARF_RC1_8822B) & BIT_MASK_RARF_RC1_8822B)
-
-/* 2 REG_RRSR_8822B */
-
-#define BIT_SHIFT_RRSR_RSC_8822B 21
-#define BIT_MASK_RRSR_RSC_8822B 0x3
-#define BIT_RRSR_RSC_8822B(x)                                                  \
-	(((x) & BIT_MASK_RRSR_RSC_8822B) << BIT_SHIFT_RRSR_RSC_8822B)
-#define BIT_GET_RRSR_RSC_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RRSR_RSC_8822B) & BIT_MASK_RRSR_RSC_8822B)
-
-#define BIT_RRSR_BW_8822B BIT(20)
-
-#define BIT_SHIFT_RRSC_BITMAP_8822B 0
-#define BIT_MASK_RRSC_BITMAP_8822B 0xfffff
-#define BIT_RRSC_BITMAP_8822B(x)                                               \
-	(((x) & BIT_MASK_RRSC_BITMAP_8822B) << BIT_SHIFT_RRSC_BITMAP_8822B)
-#define BIT_GET_RRSC_BITMAP_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_RRSC_BITMAP_8822B) & BIT_MASK_RRSC_BITMAP_8822B)
-
-/* 2 REG_ARFR0_8822B */
-
-#define BIT_SHIFT_ARFR0_V1_8822B 0
-#define BIT_MASK_ARFR0_V1_8822B 0xffffffffffffffffL
-#define BIT_ARFR0_V1_8822B(x)                                                  \
-	(((x) & BIT_MASK_ARFR0_V1_8822B) << BIT_SHIFT_ARFR0_V1_8822B)
-#define BIT_GET_ARFR0_V1_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ARFR0_V1_8822B) & BIT_MASK_ARFR0_V1_8822B)
-
-/* 2 REG_ARFR1_V1_8822B */
-
-#define BIT_SHIFT_ARFR1_V1_8822B 0
-#define BIT_MASK_ARFR1_V1_8822B 0xffffffffffffffffL
-#define BIT_ARFR1_V1_8822B(x)                                                  \
-	(((x) & BIT_MASK_ARFR1_V1_8822B) << BIT_SHIFT_ARFR1_V1_8822B)
-#define BIT_GET_ARFR1_V1_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ARFR1_V1_8822B) & BIT_MASK_ARFR1_V1_8822B)
-
-/* 2 REG_CCK_CHECK_8822B */
-#define BIT_CHECK_CCK_EN_8822B BIT(7)
-#define BIT_EN_BCN_PKT_REL_8822B BIT(6)
-#define BIT_BCN_PORT_SEL_8822B BIT(5)
-#define BIT_MOREDATA_BYPASS_8822B BIT(4)
-#define BIT_EN_CLR_CMD_REL_BCN_PKT_8822B BIT(3)
-#define BIT_R_EN_SET_MOREDATA_8822B BIT(2)
-#define BIT__R_DIS_CLEAR_MACID_RELEASE_8822B BIT(1)
-#define BIT__R_MACID_RELEASE_EN_8822B BIT(0)
-
-/* 2 REG_AMPDU_MAX_TIME_V1_8822B */
-
-#define BIT_SHIFT_AMPDU_MAX_TIME_8822B 0
-#define BIT_MASK_AMPDU_MAX_TIME_8822B 0xff
-#define BIT_AMPDU_MAX_TIME_8822B(x)                                            \
-	(((x) & BIT_MASK_AMPDU_MAX_TIME_8822B)                                 \
-	 << BIT_SHIFT_AMPDU_MAX_TIME_8822B)
-#define BIT_GET_AMPDU_MAX_TIME_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_AMPDU_MAX_TIME_8822B) &                             \
-	 BIT_MASK_AMPDU_MAX_TIME_8822B)
-
-/* 2 REG_BCNQ1_BDNY_V1_8822B */
-
-#define BIT_SHIFT_BCNQ1_PGBNDY_V1_8822B 0
-#define BIT_MASK_BCNQ1_PGBNDY_V1_8822B 0xfff
-#define BIT_BCNQ1_PGBNDY_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_BCNQ1_PGBNDY_V1_8822B)                                \
-	 << BIT_SHIFT_BCNQ1_PGBNDY_V1_8822B)
-#define BIT_GET_BCNQ1_PGBNDY_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_BCNQ1_PGBNDY_V1_8822B) &                            \
-	 BIT_MASK_BCNQ1_PGBNDY_V1_8822B)
-
-/* 2 REG_AMPDU_MAX_LENGTH_8822B */
-
-#define BIT_SHIFT_AMPDU_MAX_LENGTH_8822B 0
-#define BIT_MASK_AMPDU_MAX_LENGTH_8822B 0xffffffffL
-#define BIT_AMPDU_MAX_LENGTH_8822B(x)                                          \
-	(((x) & BIT_MASK_AMPDU_MAX_LENGTH_8822B)                               \
-	 << BIT_SHIFT_AMPDU_MAX_LENGTH_8822B)
-#define BIT_GET_AMPDU_MAX_LENGTH_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_AMPDU_MAX_LENGTH_8822B) &                           \
-	 BIT_MASK_AMPDU_MAX_LENGTH_8822B)
-
-/* 2 REG_ACQ_STOP_8822B */
-#define BIT_AC7Q_STOP_8822B BIT(7)
-#define BIT_AC6Q_STOP_8822B BIT(6)
-#define BIT_AC5Q_STOP_8822B BIT(5)
-#define BIT_AC4Q_STOP_8822B BIT(4)
-#define BIT_AC3Q_STOP_8822B BIT(3)
-#define BIT_AC2Q_STOP_8822B BIT(2)
-#define BIT_AC1Q_STOP_8822B BIT(1)
-#define BIT_AC0Q_STOP_8822B BIT(0)
-
-/* 2 REG_NDPA_RATE_8822B */
-
-#define BIT_SHIFT_R_NDPA_RATE_V1_8822B 0
-#define BIT_MASK_R_NDPA_RATE_V1_8822B 0xff
-#define BIT_R_NDPA_RATE_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_R_NDPA_RATE_V1_8822B)                                 \
-	 << BIT_SHIFT_R_NDPA_RATE_V1_8822B)
-#define BIT_GET_R_NDPA_RATE_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_R_NDPA_RATE_V1_8822B) &                             \
-	 BIT_MASK_R_NDPA_RATE_V1_8822B)
-
-/* 2 REG_TX_HANG_CTRL_8822B */
-#define BIT_R_EN_GNT_BT_AWAKE_8822B BIT(3)
-#define BIT_EN_EOF_V1_8822B BIT(2)
-#define BIT_DIS_OQT_BLOCK_8822B BIT(1)
-#define BIT_SEARCH_QUEUE_EN_8822B BIT(0)
-
-/* 2 REG_NDPA_OPT_CTRL_8822B */
-#define BIT_R_DIS_MACID_RELEASE_RTY_8822B BIT(5)
-
-#define BIT_SHIFT_BW_SIGTA_8822B 3
-#define BIT_MASK_BW_SIGTA_8822B 0x3
-#define BIT_BW_SIGTA_8822B(x)                                                  \
-	(((x) & BIT_MASK_BW_SIGTA_8822B) << BIT_SHIFT_BW_SIGTA_8822B)
-#define BIT_GET_BW_SIGTA_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_BW_SIGTA_8822B) & BIT_MASK_BW_SIGTA_8822B)
-
-#define BIT_EN_BAR_SIGTA_8822B BIT(2)
-
-#define BIT_SHIFT_R_NDPA_BW_8822B 0
-#define BIT_MASK_R_NDPA_BW_8822B 0x3
-#define BIT_R_NDPA_BW_8822B(x)                                                 \
-	(((x) & BIT_MASK_R_NDPA_BW_8822B) << BIT_SHIFT_R_NDPA_BW_8822B)
-#define BIT_GET_R_NDPA_BW_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_R_NDPA_BW_8822B) & BIT_MASK_R_NDPA_BW_8822B)
-
-/* 2 REG_RD_RESP_PKT_TH_8822B */
-
-#define BIT_SHIFT_RD_RESP_PKT_TH_V1_8822B 0
-#define BIT_MASK_RD_RESP_PKT_TH_V1_8822B 0x3f
-#define BIT_RD_RESP_PKT_TH_V1_8822B(x)                                         \
-	(((x) & BIT_MASK_RD_RESP_PKT_TH_V1_8822B)                              \
-	 << BIT_SHIFT_RD_RESP_PKT_TH_V1_8822B)
-#define BIT_GET_RD_RESP_PKT_TH_V1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_RD_RESP_PKT_TH_V1_8822B) &                          \
-	 BIT_MASK_RD_RESP_PKT_TH_V1_8822B)
-
-/* 2 REG_CMDQ_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_CMDQ_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_CMDQ_V1_8822B 0x7f
-#define BIT_QUEUEMACID_CMDQ_V1_8822B(x)                                        \
-	(((x) & BIT_MASK_QUEUEMACID_CMDQ_V1_8822B)                             \
-	 << BIT_SHIFT_QUEUEMACID_CMDQ_V1_8822B)
-#define BIT_GET_QUEUEMACID_CMDQ_V1_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_QUEUEMACID_CMDQ_V1_8822B) &                         \
-	 BIT_MASK_QUEUEMACID_CMDQ_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_CMDQ_V1_8822B 23
-#define BIT_MASK_QUEUEAC_CMDQ_V1_8822B 0x3
-#define BIT_QUEUEAC_CMDQ_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_QUEUEAC_CMDQ_V1_8822B)                                \
-	 << BIT_SHIFT_QUEUEAC_CMDQ_V1_8822B)
-#define BIT_GET_QUEUEAC_CMDQ_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_QUEUEAC_CMDQ_V1_8822B) &                            \
-	 BIT_MASK_QUEUEAC_CMDQ_V1_8822B)
-
-#define BIT_TIDEMPTY_CMDQ_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_CMDQ_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_CMDQ_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_CMDQ_V2_8822B(x)                                          \
-	(((x) & BIT_MASK_TAIL_PKT_CMDQ_V2_8822B)                               \
-	 << BIT_SHIFT_TAIL_PKT_CMDQ_V2_8822B)
-#define BIT_GET_TAIL_PKT_CMDQ_V2_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_TAIL_PKT_CMDQ_V2_8822B) &                           \
-	 BIT_MASK_TAIL_PKT_CMDQ_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_CMDQ_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_CMDQ_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_CMDQ_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_HEAD_PKT_CMDQ_V1_8822B)                               \
-	 << BIT_SHIFT_HEAD_PKT_CMDQ_V1_8822B)
-#define BIT_GET_HEAD_PKT_CMDQ_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_HEAD_PKT_CMDQ_V1_8822B) &                           \
-	 BIT_MASK_HEAD_PKT_CMDQ_V1_8822B)
-
-/* 2 REG_Q4_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_Q4_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_Q4_V1_8822B 0x7f
-#define BIT_QUEUEMACID_Q4_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_QUEUEMACID_Q4_V1_8822B)                               \
-	 << BIT_SHIFT_QUEUEMACID_Q4_V1_8822B)
-#define BIT_GET_QUEUEMACID_Q4_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q4_V1_8822B) &                           \
-	 BIT_MASK_QUEUEMACID_Q4_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_Q4_V1_8822B 23
-#define BIT_MASK_QUEUEAC_Q4_V1_8822B 0x3
-#define BIT_QUEUEAC_Q4_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_QUEUEAC_Q4_V1_8822B) << BIT_SHIFT_QUEUEAC_Q4_V1_8822B)
-#define BIT_GET_QUEUEAC_Q4_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q4_V1_8822B) & BIT_MASK_QUEUEAC_Q4_V1_8822B)
-
-#define BIT_TIDEMPTY_Q4_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_Q4_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_Q4_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_Q4_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_TAIL_PKT_Q4_V2_8822B)                                 \
-	 << BIT_SHIFT_TAIL_PKT_Q4_V2_8822B)
-#define BIT_GET_TAIL_PKT_Q4_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q4_V2_8822B) &                             \
-	 BIT_MASK_TAIL_PKT_Q4_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_Q4_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_Q4_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_Q4_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HEAD_PKT_Q4_V1_8822B)                                 \
-	 << BIT_SHIFT_HEAD_PKT_Q4_V1_8822B)
-#define BIT_GET_HEAD_PKT_Q4_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q4_V1_8822B) &                             \
-	 BIT_MASK_HEAD_PKT_Q4_V1_8822B)
-
-/* 2 REG_Q5_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_Q5_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_Q5_V1_8822B 0x7f
-#define BIT_QUEUEMACID_Q5_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_QUEUEMACID_Q5_V1_8822B)                               \
-	 << BIT_SHIFT_QUEUEMACID_Q5_V1_8822B)
-#define BIT_GET_QUEUEMACID_Q5_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q5_V1_8822B) &                           \
-	 BIT_MASK_QUEUEMACID_Q5_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_Q5_V1_8822B 23
-#define BIT_MASK_QUEUEAC_Q5_V1_8822B 0x3
-#define BIT_QUEUEAC_Q5_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_QUEUEAC_Q5_V1_8822B) << BIT_SHIFT_QUEUEAC_Q5_V1_8822B)
-#define BIT_GET_QUEUEAC_Q5_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q5_V1_8822B) & BIT_MASK_QUEUEAC_Q5_V1_8822B)
-
-#define BIT_TIDEMPTY_Q5_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_Q5_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_Q5_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_Q5_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_TAIL_PKT_Q5_V2_8822B)                                 \
-	 << BIT_SHIFT_TAIL_PKT_Q5_V2_8822B)
-#define BIT_GET_TAIL_PKT_Q5_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q5_V2_8822B) &                             \
-	 BIT_MASK_TAIL_PKT_Q5_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_Q5_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_Q5_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_Q5_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HEAD_PKT_Q5_V1_8822B)                                 \
-	 << BIT_SHIFT_HEAD_PKT_Q5_V1_8822B)
-#define BIT_GET_HEAD_PKT_Q5_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q5_V1_8822B) &                             \
-	 BIT_MASK_HEAD_PKT_Q5_V1_8822B)
-
-/* 2 REG_Q6_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_Q6_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_Q6_V1_8822B 0x7f
-#define BIT_QUEUEMACID_Q6_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_QUEUEMACID_Q6_V1_8822B)                               \
-	 << BIT_SHIFT_QUEUEMACID_Q6_V1_8822B)
-#define BIT_GET_QUEUEMACID_Q6_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q6_V1_8822B) &                           \
-	 BIT_MASK_QUEUEMACID_Q6_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_Q6_V1_8822B 23
-#define BIT_MASK_QUEUEAC_Q6_V1_8822B 0x3
-#define BIT_QUEUEAC_Q6_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_QUEUEAC_Q6_V1_8822B) << BIT_SHIFT_QUEUEAC_Q6_V1_8822B)
-#define BIT_GET_QUEUEAC_Q6_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q6_V1_8822B) & BIT_MASK_QUEUEAC_Q6_V1_8822B)
-
-#define BIT_TIDEMPTY_Q6_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_Q6_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_Q6_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_Q6_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_TAIL_PKT_Q6_V2_8822B)                                 \
-	 << BIT_SHIFT_TAIL_PKT_Q6_V2_8822B)
-#define BIT_GET_TAIL_PKT_Q6_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q6_V2_8822B) &                             \
-	 BIT_MASK_TAIL_PKT_Q6_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_Q6_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_Q6_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_Q6_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HEAD_PKT_Q6_V1_8822B)                                 \
-	 << BIT_SHIFT_HEAD_PKT_Q6_V1_8822B)
-#define BIT_GET_HEAD_PKT_Q6_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q6_V1_8822B) &                             \
-	 BIT_MASK_HEAD_PKT_Q6_V1_8822B)
-
-/* 2 REG_Q7_INFO_8822B */
-
-#define BIT_SHIFT_QUEUEMACID_Q7_V1_8822B 25
-#define BIT_MASK_QUEUEMACID_Q7_V1_8822B 0x7f
-#define BIT_QUEUEMACID_Q7_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_QUEUEMACID_Q7_V1_8822B)                               \
-	 << BIT_SHIFT_QUEUEMACID_Q7_V1_8822B)
-#define BIT_GET_QUEUEMACID_Q7_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_QUEUEMACID_Q7_V1_8822B) &                           \
-	 BIT_MASK_QUEUEMACID_Q7_V1_8822B)
-
-#define BIT_SHIFT_QUEUEAC_Q7_V1_8822B 23
-#define BIT_MASK_QUEUEAC_Q7_V1_8822B 0x3
-#define BIT_QUEUEAC_Q7_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_QUEUEAC_Q7_V1_8822B) << BIT_SHIFT_QUEUEAC_Q7_V1_8822B)
-#define BIT_GET_QUEUEAC_Q7_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_QUEUEAC_Q7_V1_8822B) & BIT_MASK_QUEUEAC_Q7_V1_8822B)
-
-#define BIT_TIDEMPTY_Q7_V1_8822B BIT(22)
-
-#define BIT_SHIFT_TAIL_PKT_Q7_V2_8822B 11
-#define BIT_MASK_TAIL_PKT_Q7_V2_8822B 0x7ff
-#define BIT_TAIL_PKT_Q7_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_TAIL_PKT_Q7_V2_8822B)                                 \
-	 << BIT_SHIFT_TAIL_PKT_Q7_V2_8822B)
-#define BIT_GET_TAIL_PKT_Q7_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TAIL_PKT_Q7_V2_8822B) &                             \
-	 BIT_MASK_TAIL_PKT_Q7_V2_8822B)
-
-#define BIT_SHIFT_HEAD_PKT_Q7_V1_8822B 0
-#define BIT_MASK_HEAD_PKT_Q7_V1_8822B 0x7ff
-#define BIT_HEAD_PKT_Q7_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_HEAD_PKT_Q7_V1_8822B)                                 \
-	 << BIT_SHIFT_HEAD_PKT_Q7_V1_8822B)
-#define BIT_GET_HEAD_PKT_Q7_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_HEAD_PKT_Q7_V1_8822B) &                             \
-	 BIT_MASK_HEAD_PKT_Q7_V1_8822B)
-
-/* 2 REG_WMAC_LBK_BUF_HD_V1_8822B */
-
-#define BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1_8822B 0
-#define BIT_MASK_WMAC_LBK_BUF_HEAD_V1_8822B 0xfff
-#define BIT_WMAC_LBK_BUF_HEAD_V1_8822B(x)                                      \
-	(((x) & BIT_MASK_WMAC_LBK_BUF_HEAD_V1_8822B)                           \
-	 << BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1_8822B)
-#define BIT_GET_WMAC_LBK_BUF_HEAD_V1_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1_8822B) &                       \
-	 BIT_MASK_WMAC_LBK_BUF_HEAD_V1_8822B)
-
-/* 2 REG_MGQ_BDNY_V1_8822B */
-
-#define BIT_SHIFT_MGQ_PGBNDY_V1_8822B 0
-#define BIT_MASK_MGQ_PGBNDY_V1_8822B 0xfff
-#define BIT_MGQ_PGBNDY_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_MGQ_PGBNDY_V1_8822B) << BIT_SHIFT_MGQ_PGBNDY_V1_8822B)
-#define BIT_GET_MGQ_PGBNDY_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_MGQ_PGBNDY_V1_8822B) & BIT_MASK_MGQ_PGBNDY_V1_8822B)
-
-/* 2 REG_TXRPT_CTRL_8822B */
-
-#define BIT_SHIFT_TRXRPT_TIMER_TH_8822B 24
-#define BIT_MASK_TRXRPT_TIMER_TH_8822B 0xff
-#define BIT_TRXRPT_TIMER_TH_8822B(x)                                           \
-	(((x) & BIT_MASK_TRXRPT_TIMER_TH_8822B)                                \
-	 << BIT_SHIFT_TRXRPT_TIMER_TH_8822B)
-#define BIT_GET_TRXRPT_TIMER_TH_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_TRXRPT_TIMER_TH_8822B) &                            \
-	 BIT_MASK_TRXRPT_TIMER_TH_8822B)
-
-#define BIT_SHIFT_TRXRPT_LEN_TH_8822B 16
-#define BIT_MASK_TRXRPT_LEN_TH_8822B 0xff
-#define BIT_TRXRPT_LEN_TH_8822B(x)                                             \
-	(((x) & BIT_MASK_TRXRPT_LEN_TH_8822B) << BIT_SHIFT_TRXRPT_LEN_TH_8822B)
-#define BIT_GET_TRXRPT_LEN_TH_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TRXRPT_LEN_TH_8822B) & BIT_MASK_TRXRPT_LEN_TH_8822B)
-
-#define BIT_SHIFT_TRXRPT_READ_PTR_8822B 8
-#define BIT_MASK_TRXRPT_READ_PTR_8822B 0xff
-#define BIT_TRXRPT_READ_PTR_8822B(x)                                           \
-	(((x) & BIT_MASK_TRXRPT_READ_PTR_8822B)                                \
-	 << BIT_SHIFT_TRXRPT_READ_PTR_8822B)
-#define BIT_GET_TRXRPT_READ_PTR_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_TRXRPT_READ_PTR_8822B) &                            \
-	 BIT_MASK_TRXRPT_READ_PTR_8822B)
-
-#define BIT_SHIFT_TRXRPT_WRITE_PTR_8822B 0
-#define BIT_MASK_TRXRPT_WRITE_PTR_8822B 0xff
-#define BIT_TRXRPT_WRITE_PTR_8822B(x)                                          \
-	(((x) & BIT_MASK_TRXRPT_WRITE_PTR_8822B)                               \
-	 << BIT_SHIFT_TRXRPT_WRITE_PTR_8822B)
-#define BIT_GET_TRXRPT_WRITE_PTR_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_TRXRPT_WRITE_PTR_8822B) &                           \
-	 BIT_MASK_TRXRPT_WRITE_PTR_8822B)
-
-/* 2 REG_INIRTS_RATE_SEL_8822B */
-#define BIT_LEAG_RTS_BW_DUP_8822B BIT(5)
-
-/* 2 REG_BASIC_CFEND_RATE_8822B */
-
-#define BIT_SHIFT_BASIC_CFEND_RATE_8822B 0
-#define BIT_MASK_BASIC_CFEND_RATE_8822B 0x1f
-#define BIT_BASIC_CFEND_RATE_8822B(x)                                          \
-	(((x) & BIT_MASK_BASIC_CFEND_RATE_8822B)                               \
-	 << BIT_SHIFT_BASIC_CFEND_RATE_8822B)
-#define BIT_GET_BASIC_CFEND_RATE_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BASIC_CFEND_RATE_8822B) &                           \
-	 BIT_MASK_BASIC_CFEND_RATE_8822B)
-
-/* 2 REG_STBC_CFEND_RATE_8822B */
-
-#define BIT_SHIFT_STBC_CFEND_RATE_8822B 0
-#define BIT_MASK_STBC_CFEND_RATE_8822B 0x1f
-#define BIT_STBC_CFEND_RATE_8822B(x)                                           \
-	(((x) & BIT_MASK_STBC_CFEND_RATE_8822B)                                \
-	 << BIT_SHIFT_STBC_CFEND_RATE_8822B)
-#define BIT_GET_STBC_CFEND_RATE_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_STBC_CFEND_RATE_8822B) &                            \
-	 BIT_MASK_STBC_CFEND_RATE_8822B)
-
-/* 2 REG_DATA_SC_8822B */
-
-#define BIT_SHIFT_TXSC_40M_8822B 4
-#define BIT_MASK_TXSC_40M_8822B 0xf
-#define BIT_TXSC_40M_8822B(x)                                                  \
-	(((x) & BIT_MASK_TXSC_40M_8822B) << BIT_SHIFT_TXSC_40M_8822B)
-#define BIT_GET_TXSC_40M_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_TXSC_40M_8822B) & BIT_MASK_TXSC_40M_8822B)
-
-#define BIT_SHIFT_TXSC_20M_8822B 0
-#define BIT_MASK_TXSC_20M_8822B 0xf
-#define BIT_TXSC_20M_8822B(x)                                                  \
-	(((x) & BIT_MASK_TXSC_20M_8822B) << BIT_SHIFT_TXSC_20M_8822B)
-#define BIT_GET_TXSC_20M_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_TXSC_20M_8822B) & BIT_MASK_TXSC_20M_8822B)
-
-/* 2 REG_MACID_SLEEP3_8822B */
-
-#define BIT_SHIFT_MACID127_96_PKTSLEEP_8822B 0
-#define BIT_MASK_MACID127_96_PKTSLEEP_8822B 0xffffffffL
-#define BIT_MACID127_96_PKTSLEEP_8822B(x)                                      \
-	(((x) & BIT_MASK_MACID127_96_PKTSLEEP_8822B)                           \
-	 << BIT_SHIFT_MACID127_96_PKTSLEEP_8822B)
-#define BIT_GET_MACID127_96_PKTSLEEP_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_MACID127_96_PKTSLEEP_8822B) &                       \
-	 BIT_MASK_MACID127_96_PKTSLEEP_8822B)
-
-/* 2 REG_MACID_SLEEP1_8822B */
-
-#define BIT_SHIFT_MACID63_32_PKTSLEEP_8822B 0
-#define BIT_MASK_MACID63_32_PKTSLEEP_8822B 0xffffffffL
-#define BIT_MACID63_32_PKTSLEEP_8822B(x)                                       \
-	(((x) & BIT_MASK_MACID63_32_PKTSLEEP_8822B)                            \
-	 << BIT_SHIFT_MACID63_32_PKTSLEEP_8822B)
-#define BIT_GET_MACID63_32_PKTSLEEP_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_MACID63_32_PKTSLEEP_8822B) &                        \
-	 BIT_MASK_MACID63_32_PKTSLEEP_8822B)
-
-/* 2 REG_ARFR2_V1_8822B */
-
-#define BIT_SHIFT_ARFR2_V1_8822B 0
-#define BIT_MASK_ARFR2_V1_8822B 0xffffffffffffffffL
-#define BIT_ARFR2_V1_8822B(x)                                                  \
-	(((x) & BIT_MASK_ARFR2_V1_8822B) << BIT_SHIFT_ARFR2_V1_8822B)
-#define BIT_GET_ARFR2_V1_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ARFR2_V1_8822B) & BIT_MASK_ARFR2_V1_8822B)
-
-/* 2 REG_ARFR3_V1_8822B */
-
-#define BIT_SHIFT_ARFR3_V1_8822B 0
-#define BIT_MASK_ARFR3_V1_8822B 0xffffffffffffffffL
-#define BIT_ARFR3_V1_8822B(x)                                                  \
-	(((x) & BIT_MASK_ARFR3_V1_8822B) << BIT_SHIFT_ARFR3_V1_8822B)
-#define BIT_GET_ARFR3_V1_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ARFR3_V1_8822B) & BIT_MASK_ARFR3_V1_8822B)
-
-/* 2 REG_ARFR4_8822B */
-
-#define BIT_SHIFT_ARFR4_8822B 0
-#define BIT_MASK_ARFR4_8822B 0xffffffffffffffffL
-#define BIT_ARFR4_8822B(x)                                                     \
-	(((x) & BIT_MASK_ARFR4_8822B) << BIT_SHIFT_ARFR4_8822B)
-#define BIT_GET_ARFR4_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_ARFR4_8822B) & BIT_MASK_ARFR4_8822B)
-
-/* 2 REG_ARFR5_8822B */
-
-#define BIT_SHIFT_ARFR5_8822B 0
-#define BIT_MASK_ARFR5_8822B 0xffffffffffffffffL
-#define BIT_ARFR5_8822B(x)                                                     \
-	(((x) & BIT_MASK_ARFR5_8822B) << BIT_SHIFT_ARFR5_8822B)
-#define BIT_GET_ARFR5_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_ARFR5_8822B) & BIT_MASK_ARFR5_8822B)
-
-/* 2 REG_TXRPT_START_OFFSET_8822B */
-
-#define BIT_SHIFT_MACID_MURATE_OFFSET_8822B 24
-#define BIT_MASK_MACID_MURATE_OFFSET_8822B 0xff
-#define BIT_MACID_MURATE_OFFSET_8822B(x)                                       \
-	(((x) & BIT_MASK_MACID_MURATE_OFFSET_8822B)                            \
-	 << BIT_SHIFT_MACID_MURATE_OFFSET_8822B)
-#define BIT_GET_MACID_MURATE_OFFSET_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_MACID_MURATE_OFFSET_8822B) &                        \
-	 BIT_MASK_MACID_MURATE_OFFSET_8822B)
-
-#define BIT_RPTFIFO_SIZE_OPT_8822B BIT(16)
-
-#define BIT_SHIFT_MACID_CTRL_OFFSET_8822B 8
-#define BIT_MASK_MACID_CTRL_OFFSET_8822B 0xff
-#define BIT_MACID_CTRL_OFFSET_8822B(x)                                         \
-	(((x) & BIT_MASK_MACID_CTRL_OFFSET_8822B)                              \
-	 << BIT_SHIFT_MACID_CTRL_OFFSET_8822B)
-#define BIT_GET_MACID_CTRL_OFFSET_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_MACID_CTRL_OFFSET_8822B) &                          \
-	 BIT_MASK_MACID_CTRL_OFFSET_8822B)
-
-#define BIT_SHIFT_AMPDU_TXRPT_OFFSET_8822B 0
-#define BIT_MASK_AMPDU_TXRPT_OFFSET_8822B 0xff
-#define BIT_AMPDU_TXRPT_OFFSET_8822B(x)                                        \
-	(((x) & BIT_MASK_AMPDU_TXRPT_OFFSET_8822B)                             \
-	 << BIT_SHIFT_AMPDU_TXRPT_OFFSET_8822B)
-#define BIT_GET_AMPDU_TXRPT_OFFSET_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_AMPDU_TXRPT_OFFSET_8822B) &                         \
-	 BIT_MASK_AMPDU_TXRPT_OFFSET_8822B)
-
-/* 2 REG_POWER_STAGE1_8822B */
-#define BIT_PTA_WL_PRI_MASK_CPU_MGQ_8822B BIT(31)
-#define BIT_PTA_WL_PRI_MASK_BCNQ_8822B BIT(30)
-#define BIT_PTA_WL_PRI_MASK_HIQ_8822B BIT(29)
-#define BIT_PTA_WL_PRI_MASK_MGQ_8822B BIT(28)
-#define BIT_PTA_WL_PRI_MASK_BK_8822B BIT(27)
-#define BIT_PTA_WL_PRI_MASK_BE_8822B BIT(26)
-#define BIT_PTA_WL_PRI_MASK_VI_8822B BIT(25)
-#define BIT_PTA_WL_PRI_MASK_VO_8822B BIT(24)
-
-#define BIT_SHIFT_POWER_STAGE1_8822B 0
-#define BIT_MASK_POWER_STAGE1_8822B 0xffffff
-#define BIT_POWER_STAGE1_8822B(x)                                              \
-	(((x) & BIT_MASK_POWER_STAGE1_8822B) << BIT_SHIFT_POWER_STAGE1_8822B)
-#define BIT_GET_POWER_STAGE1_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_POWER_STAGE1_8822B) & BIT_MASK_POWER_STAGE1_8822B)
-
-/* 2 REG_POWER_STAGE2_8822B */
-#define BIT__R_CTRL_PKT_POW_ADJ_8822B BIT(24)
-
-#define BIT_SHIFT_POWER_STAGE2_8822B 0
-#define BIT_MASK_POWER_STAGE2_8822B 0xffffff
-#define BIT_POWER_STAGE2_8822B(x)                                              \
-	(((x) & BIT_MASK_POWER_STAGE2_8822B) << BIT_SHIFT_POWER_STAGE2_8822B)
-#define BIT_GET_POWER_STAGE2_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_POWER_STAGE2_8822B) & BIT_MASK_POWER_STAGE2_8822B)
-
-/* 2 REG_SW_AMPDU_BURST_MODE_CTRL_8822B */
-
-#define BIT_SHIFT_PAD_NUM_THRES_8822B 24
-#define BIT_MASK_PAD_NUM_THRES_8822B 0x3f
-#define BIT_PAD_NUM_THRES_8822B(x)                                             \
-	(((x) & BIT_MASK_PAD_NUM_THRES_8822B) << BIT_SHIFT_PAD_NUM_THRES_8822B)
-#define BIT_GET_PAD_NUM_THRES_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PAD_NUM_THRES_8822B) & BIT_MASK_PAD_NUM_THRES_8822B)
-
-#define BIT_R_DMA_THIS_QUEUE_BK_8822B BIT(23)
-#define BIT_R_DMA_THIS_QUEUE_BE_8822B BIT(22)
-#define BIT_R_DMA_THIS_QUEUE_VI_8822B BIT(21)
-#define BIT_R_DMA_THIS_QUEUE_VO_8822B BIT(20)
-
-#define BIT_SHIFT_R_TOTAL_LEN_TH_8822B 8
-#define BIT_MASK_R_TOTAL_LEN_TH_8822B 0xfff
-#define BIT_R_TOTAL_LEN_TH_8822B(x)                                            \
-	(((x) & BIT_MASK_R_TOTAL_LEN_TH_8822B)                                 \
-	 << BIT_SHIFT_R_TOTAL_LEN_TH_8822B)
-#define BIT_GET_R_TOTAL_LEN_TH_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_R_TOTAL_LEN_TH_8822B) &                             \
-	 BIT_MASK_R_TOTAL_LEN_TH_8822B)
-
-#define BIT_EN_NEW_EARLY_8822B BIT(7)
-#define BIT_PRE_TX_CMD_8822B BIT(6)
-
-#define BIT_SHIFT_NUM_SCL_EN_8822B 4
-#define BIT_MASK_NUM_SCL_EN_8822B 0x3
-#define BIT_NUM_SCL_EN_8822B(x)                                                \
-	(((x) & BIT_MASK_NUM_SCL_EN_8822B) << BIT_SHIFT_NUM_SCL_EN_8822B)
-#define BIT_GET_NUM_SCL_EN_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_NUM_SCL_EN_8822B) & BIT_MASK_NUM_SCL_EN_8822B)
-
-#define BIT_BK_EN_8822B BIT(3)
-#define BIT_BE_EN_8822B BIT(2)
-#define BIT_VI_EN_8822B BIT(1)
-#define BIT_VO_EN_8822B BIT(0)
-
-/* 2 REG_PKT_LIFE_TIME_8822B */
-
-#define BIT_SHIFT_PKT_LIFTIME_BEBK_8822B 16
-#define BIT_MASK_PKT_LIFTIME_BEBK_8822B 0xffff
-#define BIT_PKT_LIFTIME_BEBK_8822B(x)                                          \
-	(((x) & BIT_MASK_PKT_LIFTIME_BEBK_8822B)                               \
-	 << BIT_SHIFT_PKT_LIFTIME_BEBK_8822B)
-#define BIT_GET_PKT_LIFTIME_BEBK_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_PKT_LIFTIME_BEBK_8822B) &                           \
-	 BIT_MASK_PKT_LIFTIME_BEBK_8822B)
-
-#define BIT_SHIFT_PKT_LIFTIME_VOVI_8822B 0
-#define BIT_MASK_PKT_LIFTIME_VOVI_8822B 0xffff
-#define BIT_PKT_LIFTIME_VOVI_8822B(x)                                          \
-	(((x) & BIT_MASK_PKT_LIFTIME_VOVI_8822B)                               \
-	 << BIT_SHIFT_PKT_LIFTIME_VOVI_8822B)
-#define BIT_GET_PKT_LIFTIME_VOVI_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_PKT_LIFTIME_VOVI_8822B) &                           \
-	 BIT_MASK_PKT_LIFTIME_VOVI_8822B)
-
-/* 2 REG_STBC_SETTING_8822B */
-
-#define BIT_SHIFT_CDEND_TXTIME_L_8822B 4
-#define BIT_MASK_CDEND_TXTIME_L_8822B 0xf
-#define BIT_CDEND_TXTIME_L_8822B(x)                                            \
-	(((x) & BIT_MASK_CDEND_TXTIME_L_8822B)                                 \
-	 << BIT_SHIFT_CDEND_TXTIME_L_8822B)
-#define BIT_GET_CDEND_TXTIME_L_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_CDEND_TXTIME_L_8822B) &                             \
-	 BIT_MASK_CDEND_TXTIME_L_8822B)
-
-#define BIT_SHIFT_NESS_8822B 2
-#define BIT_MASK_NESS_8822B 0x3
-#define BIT_NESS_8822B(x) (((x) & BIT_MASK_NESS_8822B) << BIT_SHIFT_NESS_8822B)
-#define BIT_GET_NESS_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_NESS_8822B) & BIT_MASK_NESS_8822B)
-
-#define BIT_SHIFT_STBC_CFEND_8822B 0
-#define BIT_MASK_STBC_CFEND_8822B 0x3
-#define BIT_STBC_CFEND_8822B(x)                                                \
-	(((x) & BIT_MASK_STBC_CFEND_8822B) << BIT_SHIFT_STBC_CFEND_8822B)
-#define BIT_GET_STBC_CFEND_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_STBC_CFEND_8822B) & BIT_MASK_STBC_CFEND_8822B)
-
-/* 2 REG_STBC_SETTING2_8822B */
-
-#define BIT_SHIFT_CDEND_TXTIME_H_8822B 0
-#define BIT_MASK_CDEND_TXTIME_H_8822B 0x1f
-#define BIT_CDEND_TXTIME_H_8822B(x)                                            \
-	(((x) & BIT_MASK_CDEND_TXTIME_H_8822B)                                 \
-	 << BIT_SHIFT_CDEND_TXTIME_H_8822B)
-#define BIT_GET_CDEND_TXTIME_H_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_CDEND_TXTIME_H_8822B) &                             \
-	 BIT_MASK_CDEND_TXTIME_H_8822B)
-
-/* 2 REG_QUEUE_CTRL_8822B */
-#define BIT_PTA_EDCCA_EN_8822B BIT(5)
-#define BIT_PTA_WL_TX_EN_8822B BIT(4)
-#define BIT_R_USE_DATA_BW_8822B BIT(3)
-#define BIT_TRI_PKT_INT_MODE1_8822B BIT(2)
-#define BIT_TRI_PKT_INT_MODE0_8822B BIT(1)
-#define BIT_ACQ_MODE_SEL_8822B BIT(0)
-
-/* 2 REG_SINGLE_AMPDU_CTRL_8822B */
-#define BIT_EN_SINGLE_APMDU_8822B BIT(7)
-
-/* 2 REG_PROT_MODE_CTRL_8822B */
-
-#define BIT_SHIFT_RTS_MAX_AGG_NUM_8822B 24
-#define BIT_MASK_RTS_MAX_AGG_NUM_8822B 0x3f
-#define BIT_RTS_MAX_AGG_NUM_8822B(x)                                           \
-	(((x) & BIT_MASK_RTS_MAX_AGG_NUM_8822B)                                \
-	 << BIT_SHIFT_RTS_MAX_AGG_NUM_8822B)
-#define BIT_GET_RTS_MAX_AGG_NUM_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_RTS_MAX_AGG_NUM_8822B) &                            \
-	 BIT_MASK_RTS_MAX_AGG_NUM_8822B)
-
-#define BIT_SHIFT_MAX_AGG_NUM_8822B 16
-#define BIT_MASK_MAX_AGG_NUM_8822B 0x3f
-#define BIT_MAX_AGG_NUM_8822B(x)                                               \
-	(((x) & BIT_MASK_MAX_AGG_NUM_8822B) << BIT_SHIFT_MAX_AGG_NUM_8822B)
-#define BIT_GET_MAX_AGG_NUM_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_MAX_AGG_NUM_8822B) & BIT_MASK_MAX_AGG_NUM_8822B)
-
-#define BIT_SHIFT_RTS_TXTIME_TH_8822B 8
-#define BIT_MASK_RTS_TXTIME_TH_8822B 0xff
-#define BIT_RTS_TXTIME_TH_8822B(x)                                             \
-	(((x) & BIT_MASK_RTS_TXTIME_TH_8822B) << BIT_SHIFT_RTS_TXTIME_TH_8822B)
-#define BIT_GET_RTS_TXTIME_TH_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_RTS_TXTIME_TH_8822B) & BIT_MASK_RTS_TXTIME_TH_8822B)
-
-#define BIT_SHIFT_RTS_LEN_TH_8822B 0
-#define BIT_MASK_RTS_LEN_TH_8822B 0xff
-#define BIT_RTS_LEN_TH_8822B(x)                                                \
-	(((x) & BIT_MASK_RTS_LEN_TH_8822B) << BIT_SHIFT_RTS_LEN_TH_8822B)
-#define BIT_GET_RTS_LEN_TH_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_RTS_LEN_TH_8822B) & BIT_MASK_RTS_LEN_TH_8822B)
-
-/* 2 REG_BAR_MODE_CTRL_8822B */
-
-#define BIT_SHIFT_BAR_RTY_LMT_8822B 16
-#define BIT_MASK_BAR_RTY_LMT_8822B 0x3
-#define BIT_BAR_RTY_LMT_8822B(x)                                               \
-	(((x) & BIT_MASK_BAR_RTY_LMT_8822B) << BIT_SHIFT_BAR_RTY_LMT_8822B)
-#define BIT_GET_BAR_RTY_LMT_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_BAR_RTY_LMT_8822B) & BIT_MASK_BAR_RTY_LMT_8822B)
-
-#define BIT_SHIFT_BAR_PKT_TXTIME_TH_8822B 8
-#define BIT_MASK_BAR_PKT_TXTIME_TH_8822B 0xff
-#define BIT_BAR_PKT_TXTIME_TH_8822B(x)                                         \
-	(((x) & BIT_MASK_BAR_PKT_TXTIME_TH_8822B)                              \
-	 << BIT_SHIFT_BAR_PKT_TXTIME_TH_8822B)
-#define BIT_GET_BAR_PKT_TXTIME_TH_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_BAR_PKT_TXTIME_TH_8822B) &                          \
-	 BIT_MASK_BAR_PKT_TXTIME_TH_8822B)
-
-#define BIT_BAR_EN_V1_8822B BIT(6)
-
-#define BIT_SHIFT_BAR_PKTNUM_TH_V1_8822B 0
-#define BIT_MASK_BAR_PKTNUM_TH_V1_8822B 0x3f
-#define BIT_BAR_PKTNUM_TH_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_BAR_PKTNUM_TH_V1_8822B)                               \
-	 << BIT_SHIFT_BAR_PKTNUM_TH_V1_8822B)
-#define BIT_GET_BAR_PKTNUM_TH_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BAR_PKTNUM_TH_V1_8822B) &                           \
-	 BIT_MASK_BAR_PKTNUM_TH_V1_8822B)
-
-/* 2 REG_RA_TRY_RATE_AGG_LMT_8822B */
-
-#define BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1_8822B 0
-#define BIT_MASK_RA_TRY_RATE_AGG_LMT_V1_8822B 0x3f
-#define BIT_RA_TRY_RATE_AGG_LMT_V1_8822B(x)                                    \
-	(((x) & BIT_MASK_RA_TRY_RATE_AGG_LMT_V1_8822B)                         \
-	 << BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1_8822B)
-#define BIT_GET_RA_TRY_RATE_AGG_LMT_V1_8822B(x)                                \
-	(((x) >> BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1_8822B) &                     \
-	 BIT_MASK_RA_TRY_RATE_AGG_LMT_V1_8822B)
-
-/* 2 REG_MACID_SLEEP2_8822B */
-
-#define BIT_SHIFT_MACID95_64PKTSLEEP_8822B 0
-#define BIT_MASK_MACID95_64PKTSLEEP_8822B 0xffffffffL
-#define BIT_MACID95_64PKTSLEEP_8822B(x)                                        \
-	(((x) & BIT_MASK_MACID95_64PKTSLEEP_8822B)                             \
-	 << BIT_SHIFT_MACID95_64PKTSLEEP_8822B)
-#define BIT_GET_MACID95_64PKTSLEEP_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_MACID95_64PKTSLEEP_8822B) &                         \
-	 BIT_MASK_MACID95_64PKTSLEEP_8822B)
-
-/* 2 REG_MACID_SLEEP_8822B */
-
-#define BIT_SHIFT_MACID31_0_PKTSLEEP_8822B 0
-#define BIT_MASK_MACID31_0_PKTSLEEP_8822B 0xffffffffL
-#define BIT_MACID31_0_PKTSLEEP_8822B(x)                                        \
-	(((x) & BIT_MASK_MACID31_0_PKTSLEEP_8822B)                             \
-	 << BIT_SHIFT_MACID31_0_PKTSLEEP_8822B)
-#define BIT_GET_MACID31_0_PKTSLEEP_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_MACID31_0_PKTSLEEP_8822B) &                         \
-	 BIT_MASK_MACID31_0_PKTSLEEP_8822B)
-
-/* 2 REG_HW_SEQ0_8822B */
-
-#define BIT_SHIFT_HW_SSN_SEQ0_8822B 0
-#define BIT_MASK_HW_SSN_SEQ0_8822B 0xfff
-#define BIT_HW_SSN_SEQ0_8822B(x)                                               \
-	(((x) & BIT_MASK_HW_SSN_SEQ0_8822B) << BIT_SHIFT_HW_SSN_SEQ0_8822B)
-#define BIT_GET_HW_SSN_SEQ0_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HW_SSN_SEQ0_8822B) & BIT_MASK_HW_SSN_SEQ0_8822B)
-
-/* 2 REG_HW_SEQ1_8822B */
-
-#define BIT_SHIFT_HW_SSN_SEQ1_8822B 0
-#define BIT_MASK_HW_SSN_SEQ1_8822B 0xfff
-#define BIT_HW_SSN_SEQ1_8822B(x)                                               \
-	(((x) & BIT_MASK_HW_SSN_SEQ1_8822B) << BIT_SHIFT_HW_SSN_SEQ1_8822B)
-#define BIT_GET_HW_SSN_SEQ1_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HW_SSN_SEQ1_8822B) & BIT_MASK_HW_SSN_SEQ1_8822B)
-
-/* 2 REG_HW_SEQ2_8822B */
-
-#define BIT_SHIFT_HW_SSN_SEQ2_8822B 0
-#define BIT_MASK_HW_SSN_SEQ2_8822B 0xfff
-#define BIT_HW_SSN_SEQ2_8822B(x)                                               \
-	(((x) & BIT_MASK_HW_SSN_SEQ2_8822B) << BIT_SHIFT_HW_SSN_SEQ2_8822B)
-#define BIT_GET_HW_SSN_SEQ2_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HW_SSN_SEQ2_8822B) & BIT_MASK_HW_SSN_SEQ2_8822B)
-
-/* 2 REG_HW_SEQ3_8822B */
-
-#define BIT_SHIFT_HW_SSN_SEQ3_8822B 0
-#define BIT_MASK_HW_SSN_SEQ3_8822B 0xfff
-#define BIT_HW_SSN_SEQ3_8822B(x)                                               \
-	(((x) & BIT_MASK_HW_SSN_SEQ3_8822B) << BIT_SHIFT_HW_SSN_SEQ3_8822B)
-#define BIT_GET_HW_SSN_SEQ3_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_HW_SSN_SEQ3_8822B) & BIT_MASK_HW_SSN_SEQ3_8822B)
-
-/* 2 REG_NULL_PKT_STATUS_V1_8822B */
-
-#define BIT_SHIFT_PTCL_TOTAL_PG_V2_8822B 2
-#define BIT_MASK_PTCL_TOTAL_PG_V2_8822B 0x3fff
-#define BIT_PTCL_TOTAL_PG_V2_8822B(x)                                          \
-	(((x) & BIT_MASK_PTCL_TOTAL_PG_V2_8822B)                               \
-	 << BIT_SHIFT_PTCL_TOTAL_PG_V2_8822B)
-#define BIT_GET_PTCL_TOTAL_PG_V2_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V2_8822B) &                           \
-	 BIT_MASK_PTCL_TOTAL_PG_V2_8822B)
-
-#define BIT_TX_NULL_1_8822B BIT(1)
-#define BIT_TX_NULL_0_8822B BIT(0)
-
-/* 2 REG_PTCL_ERR_STATUS_8822B */
-#define BIT_PTCL_RATE_TABLE_INVALID_8822B BIT(7)
-#define BIT_FTM_T2R_ERROR_8822B BIT(6)
-#define BIT_PTCL_ERR0_8822B BIT(5)
-#define BIT_PTCL_ERR1_8822B BIT(4)
-#define BIT_PTCL_ERR2_8822B BIT(3)
-#define BIT_PTCL_ERR3_8822B BIT(2)
-#define BIT_PTCL_ERR4_8822B BIT(1)
-#define BIT_PTCL_ERR5_8822B BIT(0)
-
-/* 2 REG_NULL_PKT_STATUS_EXTEND_8822B */
-#define BIT_CLI3_TX_NULL_1_8822B BIT(7)
-#define BIT_CLI3_TX_NULL_0_8822B BIT(6)
-#define BIT_CLI2_TX_NULL_1_8822B BIT(5)
-#define BIT_CLI2_TX_NULL_0_8822B BIT(4)
-#define BIT_CLI1_TX_NULL_1_8822B BIT(3)
-#define BIT_CLI1_TX_NULL_0_8822B BIT(2)
-#define BIT_CLI0_TX_NULL_1_8822B BIT(1)
-#define BIT_CLI0_TX_NULL_0_8822B BIT(0)
-
-/* 2 REG_VIDEO_ENHANCEMENT_FUN_8822B */
-#define BIT_VIDEO_JUST_DROP_8822B BIT(1)
-#define BIT_VIDEO_ENHANCEMENT_FUN_EN_8822B BIT(0)
-
-/* 2 REG_BT_POLLUTE_PKT_CNT_8822B */
-
-#define BIT_SHIFT_BT_POLLUTE_PKT_CNT_8822B 0
-#define BIT_MASK_BT_POLLUTE_PKT_CNT_8822B 0xffff
-#define BIT_BT_POLLUTE_PKT_CNT_8822B(x)                                        \
-	(((x) & BIT_MASK_BT_POLLUTE_PKT_CNT_8822B)                             \
-	 << BIT_SHIFT_BT_POLLUTE_PKT_CNT_8822B)
-#define BIT_GET_BT_POLLUTE_PKT_CNT_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_BT_POLLUTE_PKT_CNT_8822B) &                         \
-	 BIT_MASK_BT_POLLUTE_PKT_CNT_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_PTCL_DBG_8822B */
-
-#define BIT_SHIFT_PTCL_DBG_8822B 0
-#define BIT_MASK_PTCL_DBG_8822B 0xffffffffL
-#define BIT_PTCL_DBG_8822B(x)                                                  \
-	(((x) & BIT_MASK_PTCL_DBG_8822B) << BIT_SHIFT_PTCL_DBG_8822B)
-#define BIT_GET_PTCL_DBG_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_PTCL_DBG_8822B) & BIT_MASK_PTCL_DBG_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_CPUMGQ_TIMER_CTRL2_8822B */
-
-#define BIT_SHIFT_TRI_HEAD_ADDR_8822B 16
-#define BIT_MASK_TRI_HEAD_ADDR_8822B 0xfff
-#define BIT_TRI_HEAD_ADDR_8822B(x)                                             \
-	(((x) & BIT_MASK_TRI_HEAD_ADDR_8822B) << BIT_SHIFT_TRI_HEAD_ADDR_8822B)
-#define BIT_GET_TRI_HEAD_ADDR_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TRI_HEAD_ADDR_8822B) & BIT_MASK_TRI_HEAD_ADDR_8822B)
-
-#define BIT_DROP_TH_EN_8822B BIT(8)
-
-#define BIT_SHIFT_DROP_TH_8822B 0
-#define BIT_MASK_DROP_TH_8822B 0xff
-#define BIT_DROP_TH_8822B(x)                                                   \
-	(((x) & BIT_MASK_DROP_TH_8822B) << BIT_SHIFT_DROP_TH_8822B)
-#define BIT_GET_DROP_TH_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_DROP_TH_8822B) & BIT_MASK_DROP_TH_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_DUMMY_PAGE4_V1_8822B */
-#define BIT_BCN_EN_EXTHWSEQ_8822B BIT(1)
-#define BIT_BCN_EN_HWSEQ_8822B BIT(0)
-
-/* 2 REG_MOREDATA_8822B */
-#define BIT_MOREDATA_CTRL2_EN_V1_8822B BIT(3)
-#define BIT_MOREDATA_CTRL1_EN_V1_8822B BIT(2)
-#define BIT_PKTIN_MOREDATA_REPLACE_ENABLE_V1_8822B BIT(0)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_Q0_Q1_INFO_8822B */
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_8822B BIT(31)
-
-#define BIT_SHIFT_GTAB_ID_8822B 28
-#define BIT_MASK_GTAB_ID_8822B 0x7
-#define BIT_GTAB_ID_8822B(x)                                                   \
-	(((x) & BIT_MASK_GTAB_ID_8822B) << BIT_SHIFT_GTAB_ID_8822B)
-#define BIT_GET_GTAB_ID_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_GTAB_ID_8822B) & BIT_MASK_GTAB_ID_8822B)
-
-#define BIT_SHIFT_AC1_PKT_INFO_8822B 16
-#define BIT_MASK_AC1_PKT_INFO_8822B 0xfff
-#define BIT_AC1_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_AC1_PKT_INFO_8822B) << BIT_SHIFT_AC1_PKT_INFO_8822B)
-#define BIT_GET_AC1_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AC1_PKT_INFO_8822B) & BIT_MASK_AC1_PKT_INFO_8822B)
-
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1_8822B BIT(15)
-
-#define BIT_SHIFT_GTAB_ID_V1_8822B 12
-#define BIT_MASK_GTAB_ID_V1_8822B 0x7
-#define BIT_GTAB_ID_V1_8822B(x)                                                \
-	(((x) & BIT_MASK_GTAB_ID_V1_8822B) << BIT_SHIFT_GTAB_ID_V1_8822B)
-#define BIT_GET_GTAB_ID_V1_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_GTAB_ID_V1_8822B) & BIT_MASK_GTAB_ID_V1_8822B)
-
-#define BIT_SHIFT_AC0_PKT_INFO_8822B 0
-#define BIT_MASK_AC0_PKT_INFO_8822B 0xfff
-#define BIT_AC0_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_AC0_PKT_INFO_8822B) << BIT_SHIFT_AC0_PKT_INFO_8822B)
-#define BIT_GET_AC0_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AC0_PKT_INFO_8822B) & BIT_MASK_AC0_PKT_INFO_8822B)
-
-/* 2 REG_Q2_Q3_INFO_8822B */
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_8822B BIT(31)
-
-#define BIT_SHIFT_GTAB_ID_8822B 28
-#define BIT_MASK_GTAB_ID_8822B 0x7
-#define BIT_GTAB_ID_8822B(x)                                                   \
-	(((x) & BIT_MASK_GTAB_ID_8822B) << BIT_SHIFT_GTAB_ID_8822B)
-#define BIT_GET_GTAB_ID_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_GTAB_ID_8822B) & BIT_MASK_GTAB_ID_8822B)
-
-#define BIT_SHIFT_AC3_PKT_INFO_8822B 16
-#define BIT_MASK_AC3_PKT_INFO_8822B 0xfff
-#define BIT_AC3_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_AC3_PKT_INFO_8822B) << BIT_SHIFT_AC3_PKT_INFO_8822B)
-#define BIT_GET_AC3_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AC3_PKT_INFO_8822B) & BIT_MASK_AC3_PKT_INFO_8822B)
-
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1_8822B BIT(15)
-
-#define BIT_SHIFT_GTAB_ID_V1_8822B 12
-#define BIT_MASK_GTAB_ID_V1_8822B 0x7
-#define BIT_GTAB_ID_V1_8822B(x)                                                \
-	(((x) & BIT_MASK_GTAB_ID_V1_8822B) << BIT_SHIFT_GTAB_ID_V1_8822B)
-#define BIT_GET_GTAB_ID_V1_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_GTAB_ID_V1_8822B) & BIT_MASK_GTAB_ID_V1_8822B)
-
-#define BIT_SHIFT_AC2_PKT_INFO_8822B 0
-#define BIT_MASK_AC2_PKT_INFO_8822B 0xfff
-#define BIT_AC2_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_AC2_PKT_INFO_8822B) << BIT_SHIFT_AC2_PKT_INFO_8822B)
-#define BIT_GET_AC2_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AC2_PKT_INFO_8822B) & BIT_MASK_AC2_PKT_INFO_8822B)
-
-/* 2 REG_Q4_Q5_INFO_8822B */
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_8822B BIT(31)
-
-#define BIT_SHIFT_GTAB_ID_8822B 28
-#define BIT_MASK_GTAB_ID_8822B 0x7
-#define BIT_GTAB_ID_8822B(x)                                                   \
-	(((x) & BIT_MASK_GTAB_ID_8822B) << BIT_SHIFT_GTAB_ID_8822B)
-#define BIT_GET_GTAB_ID_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_GTAB_ID_8822B) & BIT_MASK_GTAB_ID_8822B)
-
-#define BIT_SHIFT_AC5_PKT_INFO_8822B 16
-#define BIT_MASK_AC5_PKT_INFO_8822B 0xfff
-#define BIT_AC5_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_AC5_PKT_INFO_8822B) << BIT_SHIFT_AC5_PKT_INFO_8822B)
-#define BIT_GET_AC5_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AC5_PKT_INFO_8822B) & BIT_MASK_AC5_PKT_INFO_8822B)
-
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1_8822B BIT(15)
-
-#define BIT_SHIFT_GTAB_ID_V1_8822B 12
-#define BIT_MASK_GTAB_ID_V1_8822B 0x7
-#define BIT_GTAB_ID_V1_8822B(x)                                                \
-	(((x) & BIT_MASK_GTAB_ID_V1_8822B) << BIT_SHIFT_GTAB_ID_V1_8822B)
-#define BIT_GET_GTAB_ID_V1_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_GTAB_ID_V1_8822B) & BIT_MASK_GTAB_ID_V1_8822B)
-
-#define BIT_SHIFT_AC4_PKT_INFO_8822B 0
-#define BIT_MASK_AC4_PKT_INFO_8822B 0xfff
-#define BIT_AC4_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_AC4_PKT_INFO_8822B) << BIT_SHIFT_AC4_PKT_INFO_8822B)
-#define BIT_GET_AC4_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AC4_PKT_INFO_8822B) & BIT_MASK_AC4_PKT_INFO_8822B)
-
-/* 2 REG_Q6_Q7_INFO_8822B */
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_8822B BIT(31)
-
-#define BIT_SHIFT_GTAB_ID_8822B 28
-#define BIT_MASK_GTAB_ID_8822B 0x7
-#define BIT_GTAB_ID_8822B(x)                                                   \
-	(((x) & BIT_MASK_GTAB_ID_8822B) << BIT_SHIFT_GTAB_ID_8822B)
-#define BIT_GET_GTAB_ID_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_GTAB_ID_8822B) & BIT_MASK_GTAB_ID_8822B)
-
-#define BIT_SHIFT_AC7_PKT_INFO_8822B 16
-#define BIT_MASK_AC7_PKT_INFO_8822B 0xfff
-#define BIT_AC7_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_AC7_PKT_INFO_8822B) << BIT_SHIFT_AC7_PKT_INFO_8822B)
-#define BIT_GET_AC7_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AC7_PKT_INFO_8822B) & BIT_MASK_AC7_PKT_INFO_8822B)
-
-#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1_8822B BIT(15)
-
-#define BIT_SHIFT_GTAB_ID_V1_8822B 12
-#define BIT_MASK_GTAB_ID_V1_8822B 0x7
-#define BIT_GTAB_ID_V1_8822B(x)                                                \
-	(((x) & BIT_MASK_GTAB_ID_V1_8822B) << BIT_SHIFT_GTAB_ID_V1_8822B)
-#define BIT_GET_GTAB_ID_V1_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_GTAB_ID_V1_8822B) & BIT_MASK_GTAB_ID_V1_8822B)
-
-#define BIT_SHIFT_AC6_PKT_INFO_8822B 0
-#define BIT_MASK_AC6_PKT_INFO_8822B 0xfff
-#define BIT_AC6_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_AC6_PKT_INFO_8822B) << BIT_SHIFT_AC6_PKT_INFO_8822B)
-#define BIT_GET_AC6_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AC6_PKT_INFO_8822B) & BIT_MASK_AC6_PKT_INFO_8822B)
-
-/* 2 REG_MGQ_HIQ_INFO_8822B */
-
-#define BIT_SHIFT_HIQ_PKT_INFO_8822B 16
-#define BIT_MASK_HIQ_PKT_INFO_8822B 0xfff
-#define BIT_HIQ_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_HIQ_PKT_INFO_8822B) << BIT_SHIFT_HIQ_PKT_INFO_8822B)
-#define BIT_GET_HIQ_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_HIQ_PKT_INFO_8822B) & BIT_MASK_HIQ_PKT_INFO_8822B)
-
-#define BIT_SHIFT_MGQ_PKT_INFO_8822B 0
-#define BIT_MASK_MGQ_PKT_INFO_8822B 0xfff
-#define BIT_MGQ_PKT_INFO_8822B(x)                                              \
-	(((x) & BIT_MASK_MGQ_PKT_INFO_8822B) << BIT_SHIFT_MGQ_PKT_INFO_8822B)
-#define BIT_GET_MGQ_PKT_INFO_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_MGQ_PKT_INFO_8822B) & BIT_MASK_MGQ_PKT_INFO_8822B)
-
-/* 2 REG_CMDQ_BCNQ_INFO_8822B */
-
-#define BIT_SHIFT_CMDQ_PKT_INFO_8822B 16
-#define BIT_MASK_CMDQ_PKT_INFO_8822B 0xfff
-#define BIT_CMDQ_PKT_INFO_8822B(x)                                             \
-	(((x) & BIT_MASK_CMDQ_PKT_INFO_8822B) << BIT_SHIFT_CMDQ_PKT_INFO_8822B)
-#define BIT_GET_CMDQ_PKT_INFO_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_CMDQ_PKT_INFO_8822B) & BIT_MASK_CMDQ_PKT_INFO_8822B)
-
-#define BIT_SHIFT_BCNQ_PKT_INFO_8822B 0
-#define BIT_MASK_BCNQ_PKT_INFO_8822B 0xfff
-#define BIT_BCNQ_PKT_INFO_8822B(x)                                             \
-	(((x) & BIT_MASK_BCNQ_PKT_INFO_8822B) << BIT_SHIFT_BCNQ_PKT_INFO_8822B)
-#define BIT_GET_BCNQ_PKT_INFO_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BCNQ_PKT_INFO_8822B) & BIT_MASK_BCNQ_PKT_INFO_8822B)
-
-/* 2 REG_USEREG_SETTING_8822B */
-#define BIT_NDPA_USEREG_8822B BIT(21)
-
-#define BIT_SHIFT_RETRY_USEREG_8822B 19
-#define BIT_MASK_RETRY_USEREG_8822B 0x3
-#define BIT_RETRY_USEREG_8822B(x)                                              \
-	(((x) & BIT_MASK_RETRY_USEREG_8822B) << BIT_SHIFT_RETRY_USEREG_8822B)
-#define BIT_GET_RETRY_USEREG_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_RETRY_USEREG_8822B) & BIT_MASK_RETRY_USEREG_8822B)
-
-#define BIT_SHIFT_TRYPKT_USEREG_8822B 17
-#define BIT_MASK_TRYPKT_USEREG_8822B 0x3
-#define BIT_TRYPKT_USEREG_8822B(x)                                             \
-	(((x) & BIT_MASK_TRYPKT_USEREG_8822B) << BIT_SHIFT_TRYPKT_USEREG_8822B)
-#define BIT_GET_TRYPKT_USEREG_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TRYPKT_USEREG_8822B) & BIT_MASK_TRYPKT_USEREG_8822B)
-
-#define BIT_CTLPKT_USEREG_8822B BIT(16)
-
-/* 2 REG_AESIV_SETTING_8822B */
-
-#define BIT_SHIFT_AESIV_OFFSET_8822B 0
-#define BIT_MASK_AESIV_OFFSET_8822B 0xfff
-#define BIT_AESIV_OFFSET_8822B(x)                                              \
-	(((x) & BIT_MASK_AESIV_OFFSET_8822B) << BIT_SHIFT_AESIV_OFFSET_8822B)
-#define BIT_GET_AESIV_OFFSET_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AESIV_OFFSET_8822B) & BIT_MASK_AESIV_OFFSET_8822B)
-
-/* 2 REG_BF0_TIME_SETTING_8822B */
-#define BIT_BF0_TIMER_SET_8822B BIT(31)
-#define BIT_BF0_TIMER_CLR_8822B BIT(30)
-#define BIT_BF0_UPDATE_EN_8822B BIT(29)
-#define BIT_BF0_TIMER_EN_8822B BIT(28)
-
-#define BIT_SHIFT_BF0_PRETIME_OVER_8822B 16
-#define BIT_MASK_BF0_PRETIME_OVER_8822B 0xfff
-#define BIT_BF0_PRETIME_OVER_8822B(x)                                          \
-	(((x) & BIT_MASK_BF0_PRETIME_OVER_8822B)                               \
-	 << BIT_SHIFT_BF0_PRETIME_OVER_8822B)
-#define BIT_GET_BF0_PRETIME_OVER_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BF0_PRETIME_OVER_8822B) &                           \
-	 BIT_MASK_BF0_PRETIME_OVER_8822B)
-
-#define BIT_SHIFT_BF0_LIFETIME_8822B 0
-#define BIT_MASK_BF0_LIFETIME_8822B 0xffff
-#define BIT_BF0_LIFETIME_8822B(x)                                              \
-	(((x) & BIT_MASK_BF0_LIFETIME_8822B) << BIT_SHIFT_BF0_LIFETIME_8822B)
-#define BIT_GET_BF0_LIFETIME_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BF0_LIFETIME_8822B) & BIT_MASK_BF0_LIFETIME_8822B)
-
-/* 2 REG_BF1_TIME_SETTING_8822B */
-#define BIT_BF1_TIMER_SET_8822B BIT(31)
-#define BIT_BF1_TIMER_CLR_8822B BIT(30)
-#define BIT_BF1_UPDATE_EN_8822B BIT(29)
-#define BIT_BF1_TIMER_EN_8822B BIT(28)
-
-#define BIT_SHIFT_BF1_PRETIME_OVER_8822B 16
-#define BIT_MASK_BF1_PRETIME_OVER_8822B 0xfff
-#define BIT_BF1_PRETIME_OVER_8822B(x)                                          \
-	(((x) & BIT_MASK_BF1_PRETIME_OVER_8822B)                               \
-	 << BIT_SHIFT_BF1_PRETIME_OVER_8822B)
-#define BIT_GET_BF1_PRETIME_OVER_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BF1_PRETIME_OVER_8822B) &                           \
-	 BIT_MASK_BF1_PRETIME_OVER_8822B)
-
-#define BIT_SHIFT_BF1_LIFETIME_8822B 0
-#define BIT_MASK_BF1_LIFETIME_8822B 0xffff
-#define BIT_BF1_LIFETIME_8822B(x)                                              \
-	(((x) & BIT_MASK_BF1_LIFETIME_8822B) << BIT_SHIFT_BF1_LIFETIME_8822B)
-#define BIT_GET_BF1_LIFETIME_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BF1_LIFETIME_8822B) & BIT_MASK_BF1_LIFETIME_8822B)
-
-/* 2 REG_BF_TIMEOUT_EN_8822B */
-#define BIT_EN_VHT_LDPC_8822B BIT(9)
-#define BIT_EN_HT_LDPC_8822B BIT(8)
-#define BIT_BF1_TIMEOUT_EN_8822B BIT(1)
-#define BIT_BF0_TIMEOUT_EN_8822B BIT(0)
-
-/* 2 REG_MACID_RELEASE0_8822B */
-
-#define BIT_SHIFT_MACID31_0_RELEASE_8822B 0
-#define BIT_MASK_MACID31_0_RELEASE_8822B 0xffffffffL
-#define BIT_MACID31_0_RELEASE_8822B(x)                                         \
-	(((x) & BIT_MASK_MACID31_0_RELEASE_8822B)                              \
-	 << BIT_SHIFT_MACID31_0_RELEASE_8822B)
-#define BIT_GET_MACID31_0_RELEASE_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_MACID31_0_RELEASE_8822B) &                          \
-	 BIT_MASK_MACID31_0_RELEASE_8822B)
-
-/* 2 REG_MACID_RELEASE1_8822B */
-
-#define BIT_SHIFT_MACID63_32_RELEASE_8822B 0
-#define BIT_MASK_MACID63_32_RELEASE_8822B 0xffffffffL
-#define BIT_MACID63_32_RELEASE_8822B(x)                                        \
-	(((x) & BIT_MASK_MACID63_32_RELEASE_8822B)                             \
-	 << BIT_SHIFT_MACID63_32_RELEASE_8822B)
-#define BIT_GET_MACID63_32_RELEASE_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_MACID63_32_RELEASE_8822B) &                         \
-	 BIT_MASK_MACID63_32_RELEASE_8822B)
-
-/* 2 REG_MACID_RELEASE2_8822B */
-
-#define BIT_SHIFT_MACID95_64_RELEASE_8822B 0
-#define BIT_MASK_MACID95_64_RELEASE_8822B 0xffffffffL
-#define BIT_MACID95_64_RELEASE_8822B(x)                                        \
-	(((x) & BIT_MASK_MACID95_64_RELEASE_8822B)                             \
-	 << BIT_SHIFT_MACID95_64_RELEASE_8822B)
-#define BIT_GET_MACID95_64_RELEASE_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_MACID95_64_RELEASE_8822B) &                         \
-	 BIT_MASK_MACID95_64_RELEASE_8822B)
-
-/* 2 REG_MACID_RELEASE3_8822B */
-
-#define BIT_SHIFT_MACID127_96_RELEASE_8822B 0
-#define BIT_MASK_MACID127_96_RELEASE_8822B 0xffffffffL
-#define BIT_MACID127_96_RELEASE_8822B(x)                                       \
-	(((x) & BIT_MASK_MACID127_96_RELEASE_8822B)                            \
-	 << BIT_SHIFT_MACID127_96_RELEASE_8822B)
-#define BIT_GET_MACID127_96_RELEASE_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_MACID127_96_RELEASE_8822B) &                        \
-	 BIT_MASK_MACID127_96_RELEASE_8822B)
-
-/* 2 REG_MACID_RELEASE_SETTING_8822B */
-#define BIT_MACID_VALUE_8822B BIT(7)
-
-#define BIT_SHIFT_MACID_OFFSET_8822B 0
-#define BIT_MASK_MACID_OFFSET_8822B 0x7f
-#define BIT_MACID_OFFSET_8822B(x)                                              \
-	(((x) & BIT_MASK_MACID_OFFSET_8822B) << BIT_SHIFT_MACID_OFFSET_8822B)
-#define BIT_GET_MACID_OFFSET_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_MACID_OFFSET_8822B) & BIT_MASK_MACID_OFFSET_8822B)
-
-/* 2 REG_FAST_EDCA_VOVI_SETTING_8822B */
-
-#define BIT_SHIFT_VI_FAST_EDCA_TO_8822B 24
-#define BIT_MASK_VI_FAST_EDCA_TO_8822B 0xff
-#define BIT_VI_FAST_EDCA_TO_8822B(x)                                           \
-	(((x) & BIT_MASK_VI_FAST_EDCA_TO_8822B)                                \
-	 << BIT_SHIFT_VI_FAST_EDCA_TO_8822B)
-#define BIT_GET_VI_FAST_EDCA_TO_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_VI_FAST_EDCA_TO_8822B) &                            \
-	 BIT_MASK_VI_FAST_EDCA_TO_8822B)
-
-#define BIT_VI_THRESHOLD_SEL_8822B BIT(23)
-
-#define BIT_SHIFT_VI_FAST_EDCA_PKT_TH_8822B 16
-#define BIT_MASK_VI_FAST_EDCA_PKT_TH_8822B 0x7f
-#define BIT_VI_FAST_EDCA_PKT_TH_8822B(x)                                       \
-	(((x) & BIT_MASK_VI_FAST_EDCA_PKT_TH_8822B)                            \
-	 << BIT_SHIFT_VI_FAST_EDCA_PKT_TH_8822B)
-#define BIT_GET_VI_FAST_EDCA_PKT_TH_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_VI_FAST_EDCA_PKT_TH_8822B) &                        \
-	 BIT_MASK_VI_FAST_EDCA_PKT_TH_8822B)
-
-#define BIT_SHIFT_VO_FAST_EDCA_TO_8822B 8
-#define BIT_MASK_VO_FAST_EDCA_TO_8822B 0xff
-#define BIT_VO_FAST_EDCA_TO_8822B(x)                                           \
-	(((x) & BIT_MASK_VO_FAST_EDCA_TO_8822B)                                \
-	 << BIT_SHIFT_VO_FAST_EDCA_TO_8822B)
-#define BIT_GET_VO_FAST_EDCA_TO_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_VO_FAST_EDCA_TO_8822B) &                            \
-	 BIT_MASK_VO_FAST_EDCA_TO_8822B)
-
-#define BIT_VO_THRESHOLD_SEL_8822B BIT(7)
-
-#define BIT_SHIFT_VO_FAST_EDCA_PKT_TH_8822B 0
-#define BIT_MASK_VO_FAST_EDCA_PKT_TH_8822B 0x7f
-#define BIT_VO_FAST_EDCA_PKT_TH_8822B(x)                                       \
-	(((x) & BIT_MASK_VO_FAST_EDCA_PKT_TH_8822B)                            \
-	 << BIT_SHIFT_VO_FAST_EDCA_PKT_TH_8822B)
-#define BIT_GET_VO_FAST_EDCA_PKT_TH_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_VO_FAST_EDCA_PKT_TH_8822B) &                        \
-	 BIT_MASK_VO_FAST_EDCA_PKT_TH_8822B)
-
-/* 2 REG_FAST_EDCA_BEBK_SETTING_8822B */
-
-#define BIT_SHIFT_BK_FAST_EDCA_TO_8822B 24
-#define BIT_MASK_BK_FAST_EDCA_TO_8822B 0xff
-#define BIT_BK_FAST_EDCA_TO_8822B(x)                                           \
-	(((x) & BIT_MASK_BK_FAST_EDCA_TO_8822B)                                \
-	 << BIT_SHIFT_BK_FAST_EDCA_TO_8822B)
-#define BIT_GET_BK_FAST_EDCA_TO_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_BK_FAST_EDCA_TO_8822B) &                            \
-	 BIT_MASK_BK_FAST_EDCA_TO_8822B)
-
-#define BIT_BK_THRESHOLD_SEL_8822B BIT(23)
-
-#define BIT_SHIFT_BK_FAST_EDCA_PKT_TH_8822B 16
-#define BIT_MASK_BK_FAST_EDCA_PKT_TH_8822B 0x7f
-#define BIT_BK_FAST_EDCA_PKT_TH_8822B(x)                                       \
-	(((x) & BIT_MASK_BK_FAST_EDCA_PKT_TH_8822B)                            \
-	 << BIT_SHIFT_BK_FAST_EDCA_PKT_TH_8822B)
-#define BIT_GET_BK_FAST_EDCA_PKT_TH_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_BK_FAST_EDCA_PKT_TH_8822B) &                        \
-	 BIT_MASK_BK_FAST_EDCA_PKT_TH_8822B)
-
-#define BIT_SHIFT_BE_FAST_EDCA_TO_8822B 8
-#define BIT_MASK_BE_FAST_EDCA_TO_8822B 0xff
-#define BIT_BE_FAST_EDCA_TO_8822B(x)                                           \
-	(((x) & BIT_MASK_BE_FAST_EDCA_TO_8822B)                                \
-	 << BIT_SHIFT_BE_FAST_EDCA_TO_8822B)
-#define BIT_GET_BE_FAST_EDCA_TO_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_BE_FAST_EDCA_TO_8822B) &                            \
-	 BIT_MASK_BE_FAST_EDCA_TO_8822B)
-
-#define BIT_BE_THRESHOLD_SEL_8822B BIT(7)
-
-#define BIT_SHIFT_BE_FAST_EDCA_PKT_TH_8822B 0
-#define BIT_MASK_BE_FAST_EDCA_PKT_TH_8822B 0x7f
-#define BIT_BE_FAST_EDCA_PKT_TH_8822B(x)                                       \
-	(((x) & BIT_MASK_BE_FAST_EDCA_PKT_TH_8822B)                            \
-	 << BIT_SHIFT_BE_FAST_EDCA_PKT_TH_8822B)
-#define BIT_GET_BE_FAST_EDCA_PKT_TH_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_BE_FAST_EDCA_PKT_TH_8822B) &                        \
-	 BIT_MASK_BE_FAST_EDCA_PKT_TH_8822B)
-
-/* 2 REG_MACID_DROP0_8822B */
-
-#define BIT_SHIFT_MACID31_0_DROP_8822B 0
-#define BIT_MASK_MACID31_0_DROP_8822B 0xffffffffL
-#define BIT_MACID31_0_DROP_8822B(x)                                            \
-	(((x) & BIT_MASK_MACID31_0_DROP_8822B)                                 \
-	 << BIT_SHIFT_MACID31_0_DROP_8822B)
-#define BIT_GET_MACID31_0_DROP_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_MACID31_0_DROP_8822B) &                             \
-	 BIT_MASK_MACID31_0_DROP_8822B)
-
-/* 2 REG_MACID_DROP1_8822B */
-
-#define BIT_SHIFT_MACID63_32_DROP_8822B 0
-#define BIT_MASK_MACID63_32_DROP_8822B 0xffffffffL
-#define BIT_MACID63_32_DROP_8822B(x)                                           \
-	(((x) & BIT_MASK_MACID63_32_DROP_8822B)                                \
-	 << BIT_SHIFT_MACID63_32_DROP_8822B)
-#define BIT_GET_MACID63_32_DROP_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_MACID63_32_DROP_8822B) &                            \
-	 BIT_MASK_MACID63_32_DROP_8822B)
-
-/* 2 REG_MACID_DROP2_8822B */
-
-#define BIT_SHIFT_MACID95_64_DROP_8822B 0
-#define BIT_MASK_MACID95_64_DROP_8822B 0xffffffffL
-#define BIT_MACID95_64_DROP_8822B(x)                                           \
-	(((x) & BIT_MASK_MACID95_64_DROP_8822B)                                \
-	 << BIT_SHIFT_MACID95_64_DROP_8822B)
-#define BIT_GET_MACID95_64_DROP_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_MACID95_64_DROP_8822B) &                            \
-	 BIT_MASK_MACID95_64_DROP_8822B)
-
-/* 2 REG_MACID_DROP3_8822B */
-
-#define BIT_SHIFT_MACID127_96_DROP_8822B 0
-#define BIT_MASK_MACID127_96_DROP_8822B 0xffffffffL
-#define BIT_MACID127_96_DROP_8822B(x)                                          \
-	(((x) & BIT_MASK_MACID127_96_DROP_8822B)                               \
-	 << BIT_SHIFT_MACID127_96_DROP_8822B)
-#define BIT_GET_MACID127_96_DROP_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_MACID127_96_DROP_8822B) &                           \
-	 BIT_MASK_MACID127_96_DROP_8822B)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_0_8822B */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0_8822B 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_0_8822B 0xffffffffL
-#define BIT_R_MACID_RELEASE_SUCCESS_0_8822B(x)                                 \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_0_8822B)                      \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0_8822B)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_0_8822B(x)                             \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0_8822B) &                  \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_0_8822B)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_1_8822B */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1_8822B 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_1_8822B 0xffffffffL
-#define BIT_R_MACID_RELEASE_SUCCESS_1_8822B(x)                                 \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_1_8822B)                      \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1_8822B)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_1_8822B(x)                             \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1_8822B) &                  \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_1_8822B)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_2_8822B */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2_8822B 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_2_8822B 0xffffffffL
-#define BIT_R_MACID_RELEASE_SUCCESS_2_8822B(x)                                 \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_2_8822B)                      \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2_8822B)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_2_8822B(x)                             \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2_8822B) &                  \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_2_8822B)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_3_8822B */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3_8822B 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_3_8822B 0xffffffffL
-#define BIT_R_MACID_RELEASE_SUCCESS_3_8822B(x)                                 \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_3_8822B)                      \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3_8822B)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_3_8822B(x)                             \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3_8822B) &                  \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_3_8822B)
-
-/* 2 REG_MGG_FIFO_CRTL_8822B */
-#define BIT_R_MGG_FIFO_EN_8822B BIT(31)
-
-#define BIT_SHIFT_R_MGG_FIFO_PG_SIZE_8822B 28
-#define BIT_MASK_R_MGG_FIFO_PG_SIZE_8822B 0x7
-#define BIT_R_MGG_FIFO_PG_SIZE_8822B(x)                                        \
-	(((x) & BIT_MASK_R_MGG_FIFO_PG_SIZE_8822B)                             \
-	 << BIT_SHIFT_R_MGG_FIFO_PG_SIZE_8822B)
-#define BIT_GET_R_MGG_FIFO_PG_SIZE_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_PG_SIZE_8822B) &                         \
-	 BIT_MASK_R_MGG_FIFO_PG_SIZE_8822B)
-
-#define BIT_SHIFT_R_MGG_FIFO_START_PG_8822B 16
-#define BIT_MASK_R_MGG_FIFO_START_PG_8822B 0xfff
-#define BIT_R_MGG_FIFO_START_PG_8822B(x)                                       \
-	(((x) & BIT_MASK_R_MGG_FIFO_START_PG_8822B)                            \
-	 << BIT_SHIFT_R_MGG_FIFO_START_PG_8822B)
-#define BIT_GET_R_MGG_FIFO_START_PG_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_START_PG_8822B) &                        \
-	 BIT_MASK_R_MGG_FIFO_START_PG_8822B)
-
-#define BIT_SHIFT_R_MGG_FIFO_SIZE_8822B 14
-#define BIT_MASK_R_MGG_FIFO_SIZE_8822B 0x3
-#define BIT_R_MGG_FIFO_SIZE_8822B(x)                                           \
-	(((x) & BIT_MASK_R_MGG_FIFO_SIZE_8822B)                                \
-	 << BIT_SHIFT_R_MGG_FIFO_SIZE_8822B)
-#define BIT_GET_R_MGG_FIFO_SIZE_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_SIZE_8822B) &                            \
-	 BIT_MASK_R_MGG_FIFO_SIZE_8822B)
-
-#define BIT_R_MGG_FIFO_PAUSE_8822B BIT(13)
-
-#define BIT_SHIFT_R_MGG_FIFO_RPTR_8822B 8
-#define BIT_MASK_R_MGG_FIFO_RPTR_8822B 0x1f
-#define BIT_R_MGG_FIFO_RPTR_8822B(x)                                           \
-	(((x) & BIT_MASK_R_MGG_FIFO_RPTR_8822B)                                \
-	 << BIT_SHIFT_R_MGG_FIFO_RPTR_8822B)
-#define BIT_GET_R_MGG_FIFO_RPTR_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_RPTR_8822B) &                            \
-	 BIT_MASK_R_MGG_FIFO_RPTR_8822B)
-
-#define BIT_R_MGG_FIFO_OV_8822B BIT(7)
-#define BIT_R_MGG_FIFO_WPTR_ERROR_8822B BIT(6)
-#define BIT_R_EN_CPU_LIFETIME_8822B BIT(5)
-
-#define BIT_SHIFT_R_MGG_FIFO_WPTR_8822B 0
-#define BIT_MASK_R_MGG_FIFO_WPTR_8822B 0x1f
-#define BIT_R_MGG_FIFO_WPTR_8822B(x)                                           \
-	(((x) & BIT_MASK_R_MGG_FIFO_WPTR_8822B)                                \
-	 << BIT_SHIFT_R_MGG_FIFO_WPTR_8822B)
-#define BIT_GET_R_MGG_FIFO_WPTR_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_WPTR_8822B) &                            \
-	 BIT_MASK_R_MGG_FIFO_WPTR_8822B)
-
-/* 2 REG_MGG_FIFO_INT_8822B */
-
-#define BIT_SHIFT_R_MGG_FIFO_INT_FLAG_8822B 16
-#define BIT_MASK_R_MGG_FIFO_INT_FLAG_8822B 0xffff
-#define BIT_R_MGG_FIFO_INT_FLAG_8822B(x)                                       \
-	(((x) & BIT_MASK_R_MGG_FIFO_INT_FLAG_8822B)                            \
-	 << BIT_SHIFT_R_MGG_FIFO_INT_FLAG_8822B)
-#define BIT_GET_R_MGG_FIFO_INT_FLAG_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_INT_FLAG_8822B) &                        \
-	 BIT_MASK_R_MGG_FIFO_INT_FLAG_8822B)
-
-#define BIT_SHIFT_R_MGG_FIFO_INT_MASK_8822B 0
-#define BIT_MASK_R_MGG_FIFO_INT_MASK_8822B 0xffff
-#define BIT_R_MGG_FIFO_INT_MASK_8822B(x)                                       \
-	(((x) & BIT_MASK_R_MGG_FIFO_INT_MASK_8822B)                            \
-	 << BIT_SHIFT_R_MGG_FIFO_INT_MASK_8822B)
-#define BIT_GET_R_MGG_FIFO_INT_MASK_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_INT_MASK_8822B) &                        \
-	 BIT_MASK_R_MGG_FIFO_INT_MASK_8822B)
-
-/* 2 REG_MGG_FIFO_LIFETIME_8822B */
-
-#define BIT_SHIFT_R_MGG_FIFO_LIFETIME_8822B 16
-#define BIT_MASK_R_MGG_FIFO_LIFETIME_8822B 0xffff
-#define BIT_R_MGG_FIFO_LIFETIME_8822B(x)                                       \
-	(((x) & BIT_MASK_R_MGG_FIFO_LIFETIME_8822B)                            \
-	 << BIT_SHIFT_R_MGG_FIFO_LIFETIME_8822B)
-#define BIT_GET_R_MGG_FIFO_LIFETIME_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_LIFETIME_8822B) &                        \
-	 BIT_MASK_R_MGG_FIFO_LIFETIME_8822B)
-
-#define BIT_SHIFT_R_MGG_FIFO_VALID_MAP_8822B 0
-#define BIT_MASK_R_MGG_FIFO_VALID_MAP_8822B 0xffff
-#define BIT_R_MGG_FIFO_VALID_MAP_8822B(x)                                      \
-	(((x) & BIT_MASK_R_MGG_FIFO_VALID_MAP_8822B)                           \
-	 << BIT_SHIFT_R_MGG_FIFO_VALID_MAP_8822B)
-#define BIT_GET_R_MGG_FIFO_VALID_MAP_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_R_MGG_FIFO_VALID_MAP_8822B) &                       \
-	 BIT_MASK_R_MGG_FIFO_VALID_MAP_8822B)
-
-/* 2 REG_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B */
-
-#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B 0
-#define BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B 0x7f
-#define BIT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B(x)                      \
-	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B)           \
-	 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B)
-#define BIT_GET_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B(x)                  \
-	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B) &       \
-	 BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B)
-
-/* 2 REG_MACID_SHCUT_OFFSET_8822B */
-
-#define BIT_SHIFT_MACID_SHCUT_OFFSET_V1_8822B 0
-#define BIT_MASK_MACID_SHCUT_OFFSET_V1_8822B 0xff
-#define BIT_MACID_SHCUT_OFFSET_V1_8822B(x)                                     \
-	(((x) & BIT_MASK_MACID_SHCUT_OFFSET_V1_8822B)                          \
-	 << BIT_SHIFT_MACID_SHCUT_OFFSET_V1_8822B)
-#define BIT_GET_MACID_SHCUT_OFFSET_V1_8822B(x)                                 \
-	(((x) >> BIT_SHIFT_MACID_SHCUT_OFFSET_V1_8822B) &                      \
-	 BIT_MASK_MACID_SHCUT_OFFSET_V1_8822B)
-
-/* 2 REG_MU_TX_CTL_8822B */
-#define BIT_R_EN_REVERS_GTAB_8822B BIT(6)
-
-#define BIT_SHIFT_R_MU_TABLE_VALID_8822B 0
-#define BIT_MASK_R_MU_TABLE_VALID_8822B 0x3f
-#define BIT_R_MU_TABLE_VALID_8822B(x)                                          \
-	(((x) & BIT_MASK_R_MU_TABLE_VALID_8822B)                               \
-	 << BIT_SHIFT_R_MU_TABLE_VALID_8822B)
-#define BIT_GET_R_MU_TABLE_VALID_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_R_MU_TABLE_VALID_8822B) &                           \
-	 BIT_MASK_R_MU_TABLE_VALID_8822B)
-
-/* 2 REG_MU_STA_GID_VLD_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B 0
-#define BIT_MASK_R_MU_STA_GTAB_VALID_8822B 0xffffffffL
-#define BIT_R_MU_STA_GTAB_VALID_8822B(x)                                       \
-	(((x) & BIT_MASK_R_MU_STA_GTAB_VALID_8822B)                            \
-	 << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
-#define BIT_GET_R_MU_STA_GTAB_VALID_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B) &                        \
-	 BIT_MASK_R_MU_STA_GTAB_VALID_8822B)
-
-#define BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B 0
-#define BIT_MASK_R_MU_STA_GTAB_VALID_8822B 0xffffffffL
-#define BIT_R_MU_STA_GTAB_VALID_8822B(x)                                       \
-	(((x) & BIT_MASK_R_MU_STA_GTAB_VALID_8822B)                            \
-	 << BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B)
-#define BIT_GET_R_MU_STA_GTAB_VALID_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_MU_STA_GTAB_VALID_8822B) &                        \
-	 BIT_MASK_R_MU_STA_GTAB_VALID_8822B)
-
-/* 2 REG_MU_STA_USER_POS_INFO_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B 0
-#define BIT_MASK_R_MU_STA_GTAB_POSITION_8822B 0xffffffffffffffffL
-#define BIT_R_MU_STA_GTAB_POSITION_8822B(x)                                    \
-	(((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_8822B)                         \
-	 << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
-#define BIT_GET_R_MU_STA_GTAB_POSITION_8822B(x)                                \
-	(((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B) &                     \
-	 BIT_MASK_R_MU_STA_GTAB_POSITION_8822B)
-
-#define BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B 0
-#define BIT_MASK_R_MU_STA_GTAB_POSITION_8822B 0xffffffffffffffffL
-#define BIT_R_MU_STA_GTAB_POSITION_8822B(x)                                    \
-	(((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_8822B)                         \
-	 << BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B)
-#define BIT_GET_R_MU_STA_GTAB_POSITION_8822B(x)                                \
-	(((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_8822B) &                     \
-	 BIT_MASK_R_MU_STA_GTAB_POSITION_8822B)
-
-/* 2 REG_MU_TRX_DBG_CNT_8822B */
-#define BIT_MU_DNGCNT_RST_8822B BIT(20)
-
-#define BIT_SHIFT_MU_DBGCNT_SEL_8822B 16
-#define BIT_MASK_MU_DBGCNT_SEL_8822B 0xf
-#define BIT_MU_DBGCNT_SEL_8822B(x)                                             \
-	(((x) & BIT_MASK_MU_DBGCNT_SEL_8822B) << BIT_SHIFT_MU_DBGCNT_SEL_8822B)
-#define BIT_GET_MU_DBGCNT_SEL_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_MU_DBGCNT_SEL_8822B) & BIT_MASK_MU_DBGCNT_SEL_8822B)
-
-#define BIT_SHIFT_MU_DNGCNT_8822B 0
-#define BIT_MASK_MU_DNGCNT_8822B 0xffff
-#define BIT_MU_DNGCNT_8822B(x)                                                 \
-	(((x) & BIT_MASK_MU_DNGCNT_8822B) << BIT_SHIFT_MU_DNGCNT_8822B)
-#define BIT_GET_MU_DNGCNT_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_MU_DNGCNT_8822B) & BIT_MASK_MU_DNGCNT_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_EDCA_VO_PARAM_8822B */
-
-#define BIT_SHIFT_TXOPLIMIT_8822B 16
-#define BIT_MASK_TXOPLIMIT_8822B 0x7ff
-#define BIT_TXOPLIMIT_8822B(x)                                                 \
-	(((x) & BIT_MASK_TXOPLIMIT_8822B) << BIT_SHIFT_TXOPLIMIT_8822B)
-#define BIT_GET_TXOPLIMIT_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_TXOPLIMIT_8822B) & BIT_MASK_TXOPLIMIT_8822B)
-
-#define BIT_SHIFT_CW_8822B 8
-#define BIT_MASK_CW_8822B 0xff
-#define BIT_CW_8822B(x) (((x) & BIT_MASK_CW_8822B) << BIT_SHIFT_CW_8822B)
-#define BIT_GET_CW_8822B(x) (((x) >> BIT_SHIFT_CW_8822B) & BIT_MASK_CW_8822B)
-
-#define BIT_SHIFT_AIFS_8822B 0
-#define BIT_MASK_AIFS_8822B 0xff
-#define BIT_AIFS_8822B(x) (((x) & BIT_MASK_AIFS_8822B) << BIT_SHIFT_AIFS_8822B)
-#define BIT_GET_AIFS_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_AIFS_8822B) & BIT_MASK_AIFS_8822B)
-
-/* 2 REG_EDCA_VI_PARAM_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_TXOPLIMIT_8822B 16
-#define BIT_MASK_TXOPLIMIT_8822B 0x7ff
-#define BIT_TXOPLIMIT_8822B(x)                                                 \
-	(((x) & BIT_MASK_TXOPLIMIT_8822B) << BIT_SHIFT_TXOPLIMIT_8822B)
-#define BIT_GET_TXOPLIMIT_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_TXOPLIMIT_8822B) & BIT_MASK_TXOPLIMIT_8822B)
-
-#define BIT_SHIFT_CW_8822B 8
-#define BIT_MASK_CW_8822B 0xff
-#define BIT_CW_8822B(x) (((x) & BIT_MASK_CW_8822B) << BIT_SHIFT_CW_8822B)
-#define BIT_GET_CW_8822B(x) (((x) >> BIT_SHIFT_CW_8822B) & BIT_MASK_CW_8822B)
-
-#define BIT_SHIFT_AIFS_8822B 0
-#define BIT_MASK_AIFS_8822B 0xff
-#define BIT_AIFS_8822B(x) (((x) & BIT_MASK_AIFS_8822B) << BIT_SHIFT_AIFS_8822B)
-#define BIT_GET_AIFS_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_AIFS_8822B) & BIT_MASK_AIFS_8822B)
-
-/* 2 REG_EDCA_BE_PARAM_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_TXOPLIMIT_8822B 16
-#define BIT_MASK_TXOPLIMIT_8822B 0x7ff
-#define BIT_TXOPLIMIT_8822B(x)                                                 \
-	(((x) & BIT_MASK_TXOPLIMIT_8822B) << BIT_SHIFT_TXOPLIMIT_8822B)
-#define BIT_GET_TXOPLIMIT_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_TXOPLIMIT_8822B) & BIT_MASK_TXOPLIMIT_8822B)
-
-#define BIT_SHIFT_CW_8822B 8
-#define BIT_MASK_CW_8822B 0xff
-#define BIT_CW_8822B(x) (((x) & BIT_MASK_CW_8822B) << BIT_SHIFT_CW_8822B)
-#define BIT_GET_CW_8822B(x) (((x) >> BIT_SHIFT_CW_8822B) & BIT_MASK_CW_8822B)
-
-#define BIT_SHIFT_AIFS_8822B 0
-#define BIT_MASK_AIFS_8822B 0xff
-#define BIT_AIFS_8822B(x) (((x) & BIT_MASK_AIFS_8822B) << BIT_SHIFT_AIFS_8822B)
-#define BIT_GET_AIFS_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_AIFS_8822B) & BIT_MASK_AIFS_8822B)
-
-/* 2 REG_EDCA_BK_PARAM_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_TXOPLIMIT_8822B 16
-#define BIT_MASK_TXOPLIMIT_8822B 0x7ff
-#define BIT_TXOPLIMIT_8822B(x)                                                 \
-	(((x) & BIT_MASK_TXOPLIMIT_8822B) << BIT_SHIFT_TXOPLIMIT_8822B)
-#define BIT_GET_TXOPLIMIT_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_TXOPLIMIT_8822B) & BIT_MASK_TXOPLIMIT_8822B)
-
-#define BIT_SHIFT_CW_8822B 8
-#define BIT_MASK_CW_8822B 0xff
-#define BIT_CW_8822B(x) (((x) & BIT_MASK_CW_8822B) << BIT_SHIFT_CW_8822B)
-#define BIT_GET_CW_8822B(x) (((x) >> BIT_SHIFT_CW_8822B) & BIT_MASK_CW_8822B)
-
-#define BIT_SHIFT_AIFS_8822B 0
-#define BIT_MASK_AIFS_8822B 0xff
-#define BIT_AIFS_8822B(x) (((x) & BIT_MASK_AIFS_8822B) << BIT_SHIFT_AIFS_8822B)
-#define BIT_GET_AIFS_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_AIFS_8822B) & BIT_MASK_AIFS_8822B)
-
-/* 2 REG_BCNTCFG_8822B */
-
-#define BIT_SHIFT_BCNCW_MAX_8822B 12
-#define BIT_MASK_BCNCW_MAX_8822B 0xf
-#define BIT_BCNCW_MAX_8822B(x)                                                 \
-	(((x) & BIT_MASK_BCNCW_MAX_8822B) << BIT_SHIFT_BCNCW_MAX_8822B)
-#define BIT_GET_BCNCW_MAX_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_BCNCW_MAX_8822B) & BIT_MASK_BCNCW_MAX_8822B)
-
-#define BIT_SHIFT_BCNCW_MIN_8822B 8
-#define BIT_MASK_BCNCW_MIN_8822B 0xf
-#define BIT_BCNCW_MIN_8822B(x)                                                 \
-	(((x) & BIT_MASK_BCNCW_MIN_8822B) << BIT_SHIFT_BCNCW_MIN_8822B)
-#define BIT_GET_BCNCW_MIN_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_BCNCW_MIN_8822B) & BIT_MASK_BCNCW_MIN_8822B)
-
-#define BIT_SHIFT_BCNIFS_8822B 0
-#define BIT_MASK_BCNIFS_8822B 0xff
-#define BIT_BCNIFS_8822B(x)                                                    \
-	(((x) & BIT_MASK_BCNIFS_8822B) << BIT_SHIFT_BCNIFS_8822B)
-#define BIT_GET_BCNIFS_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_BCNIFS_8822B) & BIT_MASK_BCNIFS_8822B)
-
-/* 2 REG_PIFS_8822B */
-
-#define BIT_SHIFT_PIFS_8822B 0
-#define BIT_MASK_PIFS_8822B 0xff
-#define BIT_PIFS_8822B(x) (((x) & BIT_MASK_PIFS_8822B) << BIT_SHIFT_PIFS_8822B)
-#define BIT_GET_PIFS_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_PIFS_8822B) & BIT_MASK_PIFS_8822B)
-
-/* 2 REG_RDG_PIFS_8822B */
-
-#define BIT_SHIFT_RDG_PIFS_8822B 0
-#define BIT_MASK_RDG_PIFS_8822B 0xff
-#define BIT_RDG_PIFS_8822B(x)                                                  \
-	(((x) & BIT_MASK_RDG_PIFS_8822B) << BIT_SHIFT_RDG_PIFS_8822B)
-#define BIT_GET_RDG_PIFS_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RDG_PIFS_8822B) & BIT_MASK_RDG_PIFS_8822B)
-
-/* 2 REG_SIFS_8822B */
-
-#define BIT_SHIFT_SIFS_OFDM_TRX_8822B 24
-#define BIT_MASK_SIFS_OFDM_TRX_8822B 0xff
-#define BIT_SIFS_OFDM_TRX_8822B(x)                                             \
-	(((x) & BIT_MASK_SIFS_OFDM_TRX_8822B) << BIT_SHIFT_SIFS_OFDM_TRX_8822B)
-#define BIT_GET_SIFS_OFDM_TRX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_SIFS_OFDM_TRX_8822B) & BIT_MASK_SIFS_OFDM_TRX_8822B)
-
-#define BIT_SHIFT_SIFS_CCK_TRX_8822B 16
-#define BIT_MASK_SIFS_CCK_TRX_8822B 0xff
-#define BIT_SIFS_CCK_TRX_8822B(x)                                              \
-	(((x) & BIT_MASK_SIFS_CCK_TRX_8822B) << BIT_SHIFT_SIFS_CCK_TRX_8822B)
-#define BIT_GET_SIFS_CCK_TRX_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_SIFS_CCK_TRX_8822B) & BIT_MASK_SIFS_CCK_TRX_8822B)
-
-#define BIT_SHIFT_SIFS_OFDM_CTX_8822B 8
-#define BIT_MASK_SIFS_OFDM_CTX_8822B 0xff
-#define BIT_SIFS_OFDM_CTX_8822B(x)                                             \
-	(((x) & BIT_MASK_SIFS_OFDM_CTX_8822B) << BIT_SHIFT_SIFS_OFDM_CTX_8822B)
-#define BIT_GET_SIFS_OFDM_CTX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_SIFS_OFDM_CTX_8822B) & BIT_MASK_SIFS_OFDM_CTX_8822B)
-
-#define BIT_SHIFT_SIFS_CCK_CTX_8822B 0
-#define BIT_MASK_SIFS_CCK_CTX_8822B 0xff
-#define BIT_SIFS_CCK_CTX_8822B(x)                                              \
-	(((x) & BIT_MASK_SIFS_CCK_CTX_8822B) << BIT_SHIFT_SIFS_CCK_CTX_8822B)
-#define BIT_GET_SIFS_CCK_CTX_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_SIFS_CCK_CTX_8822B) & BIT_MASK_SIFS_CCK_CTX_8822B)
-
-/* 2 REG_TSFTR_SYN_OFFSET_8822B */
-
-#define BIT_SHIFT_TSFTR_SNC_OFFSET_8822B 0
-#define BIT_MASK_TSFTR_SNC_OFFSET_8822B 0xffff
-#define BIT_TSFTR_SNC_OFFSET_8822B(x)                                          \
-	(((x) & BIT_MASK_TSFTR_SNC_OFFSET_8822B)                               \
-	 << BIT_SHIFT_TSFTR_SNC_OFFSET_8822B)
-#define BIT_GET_TSFTR_SNC_OFFSET_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_TSFTR_SNC_OFFSET_8822B) &                           \
-	 BIT_MASK_TSFTR_SNC_OFFSET_8822B)
-
-/* 2 REG_AGGR_BREAK_TIME_8822B */
-
-#define BIT_SHIFT_AGGR_BK_TIME_8822B 0
-#define BIT_MASK_AGGR_BK_TIME_8822B 0xff
-#define BIT_AGGR_BK_TIME_8822B(x)                                              \
-	(((x) & BIT_MASK_AGGR_BK_TIME_8822B) << BIT_SHIFT_AGGR_BK_TIME_8822B)
-#define BIT_GET_AGGR_BK_TIME_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_AGGR_BK_TIME_8822B) & BIT_MASK_AGGR_BK_TIME_8822B)
-
-/* 2 REG_SLOT_8822B */
-
-#define BIT_SHIFT_SLOT_8822B 0
-#define BIT_MASK_SLOT_8822B 0xff
-#define BIT_SLOT_8822B(x) (((x) & BIT_MASK_SLOT_8822B) << BIT_SHIFT_SLOT_8822B)
-#define BIT_GET_SLOT_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_SLOT_8822B) & BIT_MASK_SLOT_8822B)
-
-/* 2 REG_TX_PTCL_CTRL_8822B */
-#define BIT_DIS_EDCCA_8822B BIT(15)
-#define BIT_DIS_CCA_8822B BIT(14)
-#define BIT_LSIG_TXOP_TXCMD_NAV_8822B BIT(13)
-#define BIT_SIFS_BK_EN_8822B BIT(12)
-
-#define BIT_SHIFT_TXQ_NAV_MSK_8822B 8
-#define BIT_MASK_TXQ_NAV_MSK_8822B 0xf
-#define BIT_TXQ_NAV_MSK_8822B(x)                                               \
-	(((x) & BIT_MASK_TXQ_NAV_MSK_8822B) << BIT_SHIFT_TXQ_NAV_MSK_8822B)
-#define BIT_GET_TXQ_NAV_MSK_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_TXQ_NAV_MSK_8822B) & BIT_MASK_TXQ_NAV_MSK_8822B)
-
-#define BIT_DIS_CW_8822B BIT(7)
-#define BIT_NAV_END_TXOP_8822B BIT(6)
-#define BIT_RDG_END_TXOP_8822B BIT(5)
-#define BIT_AC_INBCN_HOLD_8822B BIT(4)
-#define BIT_MGTQ_TXOP_EN_8822B BIT(3)
-#define BIT_MGTQ_RTSMF_EN_8822B BIT(2)
-#define BIT_HIQ_RTSMF_EN_8822B BIT(1)
-#define BIT_BCN_RTSMF_EN_8822B BIT(0)
-
-/* 2 REG_TXPAUSE_8822B */
-#define BIT_STOP_BCN_HI_MGT_8822B BIT(7)
-#define BIT_MAC_STOPBCNQ_8822B BIT(6)
-#define BIT_MAC_STOPHIQ_8822B BIT(5)
-#define BIT_MAC_STOPMGQ_8822B BIT(4)
-#define BIT_MAC_STOPBK_8822B BIT(3)
-#define BIT_MAC_STOPBE_8822B BIT(2)
-#define BIT_MAC_STOPVI_8822B BIT(1)
-#define BIT_MAC_STOPVO_8822B BIT(0)
-
-/* 2 REG_DIS_TXREQ_CLR_8822B */
-#define BIT_DIS_BT_CCA_8822B BIT(7)
-#define BIT_DIS_TXREQ_CLR_HI_8822B BIT(5)
-#define BIT_DIS_TXREQ_CLR_MGQ_8822B BIT(4)
-#define BIT_DIS_TXREQ_CLR_VO_8822B BIT(3)
-#define BIT_DIS_TXREQ_CLR_VI_8822B BIT(2)
-#define BIT_DIS_TXREQ_CLR_BE_8822B BIT(1)
-#define BIT_DIS_TXREQ_CLR_BK_8822B BIT(0)
-
-/* 2 REG_RD_CTRL_8822B */
-#define BIT_EN_CLR_TXREQ_INCCA_8822B BIT(15)
-#define BIT_DIS_TX_OVER_BCNQ_8822B BIT(14)
-#define BIT_EN_BCNERR_INCCCA_8822B BIT(13)
-#define BIT_EDCCA_MSK_CNTDOWN_EN_8822B BIT(11)
-#define BIT_DIS_TXOP_CFE_8822B BIT(10)
-#define BIT_DIS_LSIG_CFE_8822B BIT(9)
-#define BIT_DIS_STBC_CFE_8822B BIT(8)
-#define BIT_BKQ_RD_INIT_EN_8822B BIT(7)
-#define BIT_BEQ_RD_INIT_EN_8822B BIT(6)
-#define BIT_VIQ_RD_INIT_EN_8822B BIT(5)
-#define BIT_VOQ_RD_INIT_EN_8822B BIT(4)
-#define BIT_BKQ_RD_RESP_EN_8822B BIT(3)
-#define BIT_BEQ_RD_RESP_EN_8822B BIT(2)
-#define BIT_VIQ_RD_RESP_EN_8822B BIT(1)
-#define BIT_VOQ_RD_RESP_EN_8822B BIT(0)
-
-/* 2 REG_MBSSID_CTRL_8822B */
-#define BIT_MBID_BCNQ7_EN_8822B BIT(7)
-#define BIT_MBID_BCNQ6_EN_8822B BIT(6)
-#define BIT_MBID_BCNQ5_EN_8822B BIT(5)
-#define BIT_MBID_BCNQ4_EN_8822B BIT(4)
-#define BIT_MBID_BCNQ3_EN_8822B BIT(3)
-#define BIT_MBID_BCNQ2_EN_8822B BIT(2)
-#define BIT_MBID_BCNQ1_EN_8822B BIT(1)
-#define BIT_MBID_BCNQ0_EN_8822B BIT(0)
-
-/* 2 REG_P2PPS_CTRL_8822B */
-#define BIT_P2P_CTW_ALLSTASLEEP_8822B BIT(7)
-#define BIT_P2P_OFF_DISTX_EN_8822B BIT(6)
-#define BIT_PWR_MGT_EN_8822B BIT(5)
-#define BIT_P2P_NOA1_EN_8822B BIT(2)
-#define BIT_P2P_NOA0_EN_8822B BIT(1)
-
-/* 2 REG_PKT_LIFETIME_CTRL_8822B */
-#define BIT_EN_P2P_CTWND1_8822B BIT(23)
-#define BIT_EN_BKF_CLR_TXREQ_8822B BIT(22)
-#define BIT_EN_TSFBIT32_RST_P2P_8822B BIT(21)
-#define BIT_EN_BCN_TX_BTCCA_8822B BIT(20)
-#define BIT_DIS_PKT_TX_ATIM_8822B BIT(19)
-#define BIT_DIS_BCN_DIS_CTN_8822B BIT(18)
-#define BIT_EN_NAVEND_RST_TXOP_8822B BIT(17)
-#define BIT_EN_FILTER_CCA_8822B BIT(16)
-
-#define BIT_SHIFT_CCA_FILTER_THRS_8822B 8
-#define BIT_MASK_CCA_FILTER_THRS_8822B 0xff
-#define BIT_CCA_FILTER_THRS_8822B(x)                                           \
-	(((x) & BIT_MASK_CCA_FILTER_THRS_8822B)                                \
-	 << BIT_SHIFT_CCA_FILTER_THRS_8822B)
-#define BIT_GET_CCA_FILTER_THRS_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_CCA_FILTER_THRS_8822B) &                            \
-	 BIT_MASK_CCA_FILTER_THRS_8822B)
-
-#define BIT_SHIFT_EDCCA_THRS_8822B 0
-#define BIT_MASK_EDCCA_THRS_8822B 0xff
-#define BIT_EDCCA_THRS_8822B(x)                                                \
-	(((x) & BIT_MASK_EDCCA_THRS_8822B) << BIT_SHIFT_EDCCA_THRS_8822B)
-#define BIT_GET_EDCCA_THRS_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_EDCCA_THRS_8822B) & BIT_MASK_EDCCA_THRS_8822B)
-
-/* 2 REG_P2PPS_SPEC_STATE_8822B */
-#define BIT_SPEC_POWER_STATE_8822B BIT(7)
-#define BIT_SPEC_CTWINDOW_ON_8822B BIT(6)
-#define BIT_SPEC_BEACON_AREA_ON_8822B BIT(5)
-#define BIT_SPEC_CTWIN_EARLY_DISTX_8822B BIT(4)
-#define BIT_SPEC_NOA1_OFF_PERIOD_8822B BIT(3)
-#define BIT_SPEC_FORCE_DOZE1_8822B BIT(2)
-#define BIT_SPEC_NOA0_OFF_PERIOD_8822B BIT(1)
-#define BIT_SPEC_FORCE_DOZE0_8822B BIT(0)
-
-/* 2 REG_BAR_TX_CTRL_8822B */
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_P2PON_DIS_TXTIME_8822B 0
-#define BIT_MASK_P2PON_DIS_TXTIME_8822B 0xff
-#define BIT_P2PON_DIS_TXTIME_8822B(x)                                          \
-	(((x) & BIT_MASK_P2PON_DIS_TXTIME_8822B)                               \
-	 << BIT_SHIFT_P2PON_DIS_TXTIME_8822B)
-#define BIT_GET_P2PON_DIS_TXTIME_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_P2PON_DIS_TXTIME_8822B) &                           \
-	 BIT_MASK_P2PON_DIS_TXTIME_8822B)
-
-/* 2 REG_QUEUE_INCOL_THR_8822B */
-
-#define BIT_SHIFT_BK_QUEUE_THR_8822B 24
-#define BIT_MASK_BK_QUEUE_THR_8822B 0xff
-#define BIT_BK_QUEUE_THR_8822B(x)                                              \
-	(((x) & BIT_MASK_BK_QUEUE_THR_8822B) << BIT_SHIFT_BK_QUEUE_THR_8822B)
-#define BIT_GET_BK_QUEUE_THR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BK_QUEUE_THR_8822B) & BIT_MASK_BK_QUEUE_THR_8822B)
-
-#define BIT_SHIFT_BE_QUEUE_THR_8822B 16
-#define BIT_MASK_BE_QUEUE_THR_8822B 0xff
-#define BIT_BE_QUEUE_THR_8822B(x)                                              \
-	(((x) & BIT_MASK_BE_QUEUE_THR_8822B) << BIT_SHIFT_BE_QUEUE_THR_8822B)
-#define BIT_GET_BE_QUEUE_THR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BE_QUEUE_THR_8822B) & BIT_MASK_BE_QUEUE_THR_8822B)
-
-#define BIT_SHIFT_VI_QUEUE_THR_8822B 8
-#define BIT_MASK_VI_QUEUE_THR_8822B 0xff
-#define BIT_VI_QUEUE_THR_8822B(x)                                              \
-	(((x) & BIT_MASK_VI_QUEUE_THR_8822B) << BIT_SHIFT_VI_QUEUE_THR_8822B)
-#define BIT_GET_VI_QUEUE_THR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_VI_QUEUE_THR_8822B) & BIT_MASK_VI_QUEUE_THR_8822B)
-
-#define BIT_SHIFT_VO_QUEUE_THR_8822B 0
-#define BIT_MASK_VO_QUEUE_THR_8822B 0xff
-#define BIT_VO_QUEUE_THR_8822B(x)                                              \
-	(((x) & BIT_MASK_VO_QUEUE_THR_8822B) << BIT_SHIFT_VO_QUEUE_THR_8822B)
-#define BIT_GET_VO_QUEUE_THR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_VO_QUEUE_THR_8822B) & BIT_MASK_VO_QUEUE_THR_8822B)
-
-/* 2 REG_QUEUE_INCOL_EN_8822B */
-#define BIT_QUEUE_INCOL_EN_8822B BIT(16)
-
-#define BIT_SHIFT_BE_TRIGGER_NUM_8822B 12
-#define BIT_MASK_BE_TRIGGER_NUM_8822B 0xf
-#define BIT_BE_TRIGGER_NUM_8822B(x)                                            \
-	(((x) & BIT_MASK_BE_TRIGGER_NUM_8822B)                                 \
-	 << BIT_SHIFT_BE_TRIGGER_NUM_8822B)
-#define BIT_GET_BE_TRIGGER_NUM_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_BE_TRIGGER_NUM_8822B) &                             \
-	 BIT_MASK_BE_TRIGGER_NUM_8822B)
-
-#define BIT_SHIFT_BK_TRIGGER_NUM_8822B 8
-#define BIT_MASK_BK_TRIGGER_NUM_8822B 0xf
-#define BIT_BK_TRIGGER_NUM_8822B(x)                                            \
-	(((x) & BIT_MASK_BK_TRIGGER_NUM_8822B)                                 \
-	 << BIT_SHIFT_BK_TRIGGER_NUM_8822B)
-#define BIT_GET_BK_TRIGGER_NUM_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_BK_TRIGGER_NUM_8822B) &                             \
-	 BIT_MASK_BK_TRIGGER_NUM_8822B)
-
-#define BIT_SHIFT_VI_TRIGGER_NUM_8822B 4
-#define BIT_MASK_VI_TRIGGER_NUM_8822B 0xf
-#define BIT_VI_TRIGGER_NUM_8822B(x)                                            \
-	(((x) & BIT_MASK_VI_TRIGGER_NUM_8822B)                                 \
-	 << BIT_SHIFT_VI_TRIGGER_NUM_8822B)
-#define BIT_GET_VI_TRIGGER_NUM_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_VI_TRIGGER_NUM_8822B) &                             \
-	 BIT_MASK_VI_TRIGGER_NUM_8822B)
-
-#define BIT_SHIFT_VO_TRIGGER_NUM_8822B 0
-#define BIT_MASK_VO_TRIGGER_NUM_8822B 0xf
-#define BIT_VO_TRIGGER_NUM_8822B(x)                                            \
-	(((x) & BIT_MASK_VO_TRIGGER_NUM_8822B)                                 \
-	 << BIT_SHIFT_VO_TRIGGER_NUM_8822B)
-#define BIT_GET_VO_TRIGGER_NUM_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_VO_TRIGGER_NUM_8822B) &                             \
-	 BIT_MASK_VO_TRIGGER_NUM_8822B)
-
-/* 2 REG_TBTT_PROHIBIT_8822B */
-
-#define BIT_SHIFT_TBTT_HOLD_TIME_AP_8822B 8
-#define BIT_MASK_TBTT_HOLD_TIME_AP_8822B 0xfff
-#define BIT_TBTT_HOLD_TIME_AP_8822B(x)                                         \
-	(((x) & BIT_MASK_TBTT_HOLD_TIME_AP_8822B)                              \
-	 << BIT_SHIFT_TBTT_HOLD_TIME_AP_8822B)
-#define BIT_GET_TBTT_HOLD_TIME_AP_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_TBTT_HOLD_TIME_AP_8822B) &                          \
-	 BIT_MASK_TBTT_HOLD_TIME_AP_8822B)
-
-#define BIT_SHIFT_TBTT_PROHIBIT_SETUP_8822B 0
-#define BIT_MASK_TBTT_PROHIBIT_SETUP_8822B 0xf
-#define BIT_TBTT_PROHIBIT_SETUP_8822B(x)                                       \
-	(((x) & BIT_MASK_TBTT_PROHIBIT_SETUP_8822B)                            \
-	 << BIT_SHIFT_TBTT_PROHIBIT_SETUP_8822B)
-#define BIT_GET_TBTT_PROHIBIT_SETUP_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_TBTT_PROHIBIT_SETUP_8822B) &                        \
-	 BIT_MASK_TBTT_PROHIBIT_SETUP_8822B)
-
-/* 2 REG_P2PPS_STATE_8822B */
-#define BIT_POWER_STATE_8822B BIT(7)
-#define BIT_CTWINDOW_ON_8822B BIT(6)
-#define BIT_BEACON_AREA_ON_8822B BIT(5)
-#define BIT_CTWIN_EARLY_DISTX_8822B BIT(4)
-#define BIT_NOA1_OFF_PERIOD_8822B BIT(3)
-#define BIT_FORCE_DOZE1_8822B BIT(2)
-#define BIT_NOA0_OFF_PERIOD_8822B BIT(1)
-#define BIT_FORCE_DOZE0_8822B BIT(0)
-
-/* 2 REG_RD_NAV_NXT_8822B */
-
-#define BIT_SHIFT_RD_NAV_PROT_NXT_8822B 0
-#define BIT_MASK_RD_NAV_PROT_NXT_8822B 0xffff
-#define BIT_RD_NAV_PROT_NXT_8822B(x)                                           \
-	(((x) & BIT_MASK_RD_NAV_PROT_NXT_8822B)                                \
-	 << BIT_SHIFT_RD_NAV_PROT_NXT_8822B)
-#define BIT_GET_RD_NAV_PROT_NXT_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_RD_NAV_PROT_NXT_8822B) &                            \
-	 BIT_MASK_RD_NAV_PROT_NXT_8822B)
-
-/* 2 REG_NAV_PROT_LEN_8822B */
-
-#define BIT_SHIFT_NAV_PROT_LEN_8822B 0
-#define BIT_MASK_NAV_PROT_LEN_8822B 0xffff
-#define BIT_NAV_PROT_LEN_8822B(x)                                              \
-	(((x) & BIT_MASK_NAV_PROT_LEN_8822B) << BIT_SHIFT_NAV_PROT_LEN_8822B)
-#define BIT_GET_NAV_PROT_LEN_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_NAV_PROT_LEN_8822B) & BIT_MASK_NAV_PROT_LEN_8822B)
-
-/* 2 REG_BCN_CTRL_8822B */
-#define BIT_DIS_RX_BSSID_FIT_8822B BIT(6)
-#define BIT_P0_EN_TXBCN_RPT_8822B BIT(5)
-#define BIT_DIS_TSF_UDT_8822B BIT(4)
-#define BIT_EN_BCN_FUNCTION_8822B BIT(3)
-#define BIT_P0_EN_RXBCN_RPT_8822B BIT(2)
-#define BIT_EN_P2P_CTWINDOW_8822B BIT(1)
-#define BIT_EN_P2P_BCNQ_AREA_8822B BIT(0)
-
-/* 2 REG_BCN_CTRL_CLINT0_8822B */
-#define BIT_CLI0_DIS_RX_BSSID_FIT_8822B BIT(6)
-#define BIT_CLI0_DIS_TSF_UDT_8822B BIT(4)
-#define BIT_CLI0_EN_BCN_FUNCTION_8822B BIT(3)
-#define BIT_CLI0_EN_RXBCN_RPT_8822B BIT(2)
-#define BIT_CLI0_ENP2P_CTWINDOW_8822B BIT(1)
-#define BIT_CLI0_ENP2P_BCNQ_AREA_8822B BIT(0)
-
-/* 2 REG_MBID_NUM_8822B */
-#define BIT_EN_PRE_DL_BEACON_8822B BIT(3)
-
-#define BIT_SHIFT_MBID_BCN_NUM_8822B 0
-#define BIT_MASK_MBID_BCN_NUM_8822B 0x7
-#define BIT_MBID_BCN_NUM_8822B(x)                                              \
-	(((x) & BIT_MASK_MBID_BCN_NUM_8822B) << BIT_SHIFT_MBID_BCN_NUM_8822B)
-#define BIT_GET_MBID_BCN_NUM_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_MBID_BCN_NUM_8822B) & BIT_MASK_MBID_BCN_NUM_8822B)
-
-/* 2 REG_DUAL_TSF_RST_8822B */
-#define BIT_FREECNT_RST_8822B BIT(5)
-#define BIT_TSFTR_CLI3_RST_8822B BIT(4)
-#define BIT_TSFTR_CLI2_RST_8822B BIT(3)
-#define BIT_TSFTR_CLI1_RST_8822B BIT(2)
-#define BIT_TSFTR_CLI0_RST_8822B BIT(1)
-#define BIT_TSFTR_RST_8822B BIT(0)
-
-/* 2 REG_MBSSID_BCN_SPACE_8822B */
-
-#define BIT_SHIFT_BCN_TIMER_SEL_FWRD_8822B 28
-#define BIT_MASK_BCN_TIMER_SEL_FWRD_8822B 0x7
-#define BIT_BCN_TIMER_SEL_FWRD_8822B(x)                                        \
-	(((x) & BIT_MASK_BCN_TIMER_SEL_FWRD_8822B)                             \
-	 << BIT_SHIFT_BCN_TIMER_SEL_FWRD_8822B)
-#define BIT_GET_BCN_TIMER_SEL_FWRD_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_BCN_TIMER_SEL_FWRD_8822B) &                         \
-	 BIT_MASK_BCN_TIMER_SEL_FWRD_8822B)
-
-#define BIT_SHIFT_BCN_SPACE_CLINT0_8822B 16
-#define BIT_MASK_BCN_SPACE_CLINT0_8822B 0xfff
-#define BIT_BCN_SPACE_CLINT0_8822B(x)                                          \
-	(((x) & BIT_MASK_BCN_SPACE_CLINT0_8822B)                               \
-	 << BIT_SHIFT_BCN_SPACE_CLINT0_8822B)
-#define BIT_GET_BCN_SPACE_CLINT0_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BCN_SPACE_CLINT0_8822B) &                           \
-	 BIT_MASK_BCN_SPACE_CLINT0_8822B)
-
-#define BIT_SHIFT_BCN_SPACE0_8822B 0
-#define BIT_MASK_BCN_SPACE0_8822B 0xffff
-#define BIT_BCN_SPACE0_8822B(x)                                                \
-	(((x) & BIT_MASK_BCN_SPACE0_8822B) << BIT_SHIFT_BCN_SPACE0_8822B)
-#define BIT_GET_BCN_SPACE0_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_BCN_SPACE0_8822B) & BIT_MASK_BCN_SPACE0_8822B)
-
-/* 2 REG_DRVERLYINT_8822B */
-
-#define BIT_SHIFT_DRVERLYITV_8822B 0
-#define BIT_MASK_DRVERLYITV_8822B 0xff
-#define BIT_DRVERLYITV_8822B(x)                                                \
-	(((x) & BIT_MASK_DRVERLYITV_8822B) << BIT_SHIFT_DRVERLYITV_8822B)
-#define BIT_GET_DRVERLYITV_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_DRVERLYITV_8822B) & BIT_MASK_DRVERLYITV_8822B)
-
-/* 2 REG_BCNDMATIM_8822B */
-
-#define BIT_SHIFT_BCNDMATIM_8822B 0
-#define BIT_MASK_BCNDMATIM_8822B 0xff
-#define BIT_BCNDMATIM_8822B(x)                                                 \
-	(((x) & BIT_MASK_BCNDMATIM_8822B) << BIT_SHIFT_BCNDMATIM_8822B)
-#define BIT_GET_BCNDMATIM_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_BCNDMATIM_8822B) & BIT_MASK_BCNDMATIM_8822B)
-
-/* 2 REG_ATIMWND_8822B */
-
-#define BIT_SHIFT_ATIMWND0_8822B 0
-#define BIT_MASK_ATIMWND0_8822B 0xffff
-#define BIT_ATIMWND0_8822B(x)                                                  \
-	(((x) & BIT_MASK_ATIMWND0_8822B) << BIT_SHIFT_ATIMWND0_8822B)
-#define BIT_GET_ATIMWND0_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ATIMWND0_8822B) & BIT_MASK_ATIMWND0_8822B)
-
-/* 2 REG_USTIME_TSF_8822B */
-
-#define BIT_SHIFT_USTIME_TSF_V1_8822B 0
-#define BIT_MASK_USTIME_TSF_V1_8822B 0xff
-#define BIT_USTIME_TSF_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_USTIME_TSF_V1_8822B) << BIT_SHIFT_USTIME_TSF_V1_8822B)
-#define BIT_GET_USTIME_TSF_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_USTIME_TSF_V1_8822B) & BIT_MASK_USTIME_TSF_V1_8822B)
-
-/* 2 REG_BCN_MAX_ERR_8822B */
-
-#define BIT_SHIFT_BCN_MAX_ERR_8822B 0
-#define BIT_MASK_BCN_MAX_ERR_8822B 0xff
-#define BIT_BCN_MAX_ERR_8822B(x)                                               \
-	(((x) & BIT_MASK_BCN_MAX_ERR_8822B) << BIT_SHIFT_BCN_MAX_ERR_8822B)
-#define BIT_GET_BCN_MAX_ERR_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_BCN_MAX_ERR_8822B) & BIT_MASK_BCN_MAX_ERR_8822B)
-
-/* 2 REG_RXTSF_OFFSET_CCK_8822B */
-
-#define BIT_SHIFT_CCK_RXTSF_OFFSET_8822B 0
-#define BIT_MASK_CCK_RXTSF_OFFSET_8822B 0xff
-#define BIT_CCK_RXTSF_OFFSET_8822B(x)                                          \
-	(((x) & BIT_MASK_CCK_RXTSF_OFFSET_8822B)                               \
-	 << BIT_SHIFT_CCK_RXTSF_OFFSET_8822B)
-#define BIT_GET_CCK_RXTSF_OFFSET_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_CCK_RXTSF_OFFSET_8822B) &                           \
-	 BIT_MASK_CCK_RXTSF_OFFSET_8822B)
-
-/* 2 REG_RXTSF_OFFSET_OFDM_8822B */
-
-#define BIT_SHIFT_OFDM_RXTSF_OFFSET_8822B 0
-#define BIT_MASK_OFDM_RXTSF_OFFSET_8822B 0xff
-#define BIT_OFDM_RXTSF_OFFSET_8822B(x)                                         \
-	(((x) & BIT_MASK_OFDM_RXTSF_OFFSET_8822B)                              \
-	 << BIT_SHIFT_OFDM_RXTSF_OFFSET_8822B)
-#define BIT_GET_OFDM_RXTSF_OFFSET_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_OFDM_RXTSF_OFFSET_8822B) &                          \
-	 BIT_MASK_OFDM_RXTSF_OFFSET_8822B)
-
-/* 2 REG_TSFTR_8822B */
-
-#define BIT_SHIFT_TSF_TIMER_8822B 0
-#define BIT_MASK_TSF_TIMER_8822B 0xffffffffffffffffL
-#define BIT_TSF_TIMER_8822B(x)                                                 \
-	(((x) & BIT_MASK_TSF_TIMER_8822B) << BIT_SHIFT_TSF_TIMER_8822B)
-#define BIT_GET_TSF_TIMER_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_TSF_TIMER_8822B) & BIT_MASK_TSF_TIMER_8822B)
-
-/* 2 REG_FREERUN_CNT_8822B */
-
-#define BIT_SHIFT_FREERUN_CNT_8822B 0
-#define BIT_MASK_FREERUN_CNT_8822B 0xffffffffffffffffL
-#define BIT_FREERUN_CNT_8822B(x)                                               \
-	(((x) & BIT_MASK_FREERUN_CNT_8822B) << BIT_SHIFT_FREERUN_CNT_8822B)
-#define BIT_GET_FREERUN_CNT_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_FREERUN_CNT_8822B) & BIT_MASK_FREERUN_CNT_8822B)
-
-/* 2 REG_ATIMWND1_V1_8822B */
-
-#define BIT_SHIFT_ATIMWND1_V1_8822B 0
-#define BIT_MASK_ATIMWND1_V1_8822B 0xff
-#define BIT_ATIMWND1_V1_8822B(x)                                               \
-	(((x) & BIT_MASK_ATIMWND1_V1_8822B) << BIT_SHIFT_ATIMWND1_V1_8822B)
-#define BIT_GET_ATIMWND1_V1_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_ATIMWND1_V1_8822B) & BIT_MASK_ATIMWND1_V1_8822B)
-
-/* 2 REG_TBTT_PROHIBIT_INFRA_8822B */
-
-#define BIT_SHIFT_TBTT_PROHIBIT_INFRA_8822B 0
-#define BIT_MASK_TBTT_PROHIBIT_INFRA_8822B 0xff
-#define BIT_TBTT_PROHIBIT_INFRA_8822B(x)                                       \
-	(((x) & BIT_MASK_TBTT_PROHIBIT_INFRA_8822B)                            \
-	 << BIT_SHIFT_TBTT_PROHIBIT_INFRA_8822B)
-#define BIT_GET_TBTT_PROHIBIT_INFRA_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_TBTT_PROHIBIT_INFRA_8822B) &                        \
-	 BIT_MASK_TBTT_PROHIBIT_INFRA_8822B)
-
-/* 2 REG_CTWND_8822B */
-
-#define BIT_SHIFT_CTWND_8822B 0
-#define BIT_MASK_CTWND_8822B 0xff
-#define BIT_CTWND_8822B(x)                                                     \
-	(((x) & BIT_MASK_CTWND_8822B) << BIT_SHIFT_CTWND_8822B)
-#define BIT_GET_CTWND_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_CTWND_8822B) & BIT_MASK_CTWND_8822B)
-
-/* 2 REG_BCNIVLCUNT_8822B */
-
-#define BIT_SHIFT_BCNIVLCUNT_8822B 0
-#define BIT_MASK_BCNIVLCUNT_8822B 0x7f
-#define BIT_BCNIVLCUNT_8822B(x)                                                \
-	(((x) & BIT_MASK_BCNIVLCUNT_8822B) << BIT_SHIFT_BCNIVLCUNT_8822B)
-#define BIT_GET_BCNIVLCUNT_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_BCNIVLCUNT_8822B) & BIT_MASK_BCNIVLCUNT_8822B)
-
-/* 2 REG_BCNDROPCTRL_8822B */
-#define BIT_BEACON_DROP_EN_8822B BIT(7)
-
-#define BIT_SHIFT_BEACON_DROP_IVL_8822B 0
-#define BIT_MASK_BEACON_DROP_IVL_8822B 0x7f
-#define BIT_BEACON_DROP_IVL_8822B(x)                                           \
-	(((x) & BIT_MASK_BEACON_DROP_IVL_8822B)                                \
-	 << BIT_SHIFT_BEACON_DROP_IVL_8822B)
-#define BIT_GET_BEACON_DROP_IVL_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_BEACON_DROP_IVL_8822B) &                            \
-	 BIT_MASK_BEACON_DROP_IVL_8822B)
-
-/* 2 REG_HGQ_TIMEOUT_PERIOD_8822B */
-
-#define BIT_SHIFT_HGQ_TIMEOUT_PERIOD_8822B 0
-#define BIT_MASK_HGQ_TIMEOUT_PERIOD_8822B 0xff
-#define BIT_HGQ_TIMEOUT_PERIOD_8822B(x)                                        \
-	(((x) & BIT_MASK_HGQ_TIMEOUT_PERIOD_8822B)                             \
-	 << BIT_SHIFT_HGQ_TIMEOUT_PERIOD_8822B)
-#define BIT_GET_HGQ_TIMEOUT_PERIOD_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_HGQ_TIMEOUT_PERIOD_8822B) &                         \
-	 BIT_MASK_HGQ_TIMEOUT_PERIOD_8822B)
-
-/* 2 REG_TXCMD_TIMEOUT_PERIOD_8822B */
-
-#define BIT_SHIFT_TXCMD_TIMEOUT_PERIOD_8822B 0
-#define BIT_MASK_TXCMD_TIMEOUT_PERIOD_8822B 0xff
-#define BIT_TXCMD_TIMEOUT_PERIOD_8822B(x)                                      \
-	(((x) & BIT_MASK_TXCMD_TIMEOUT_PERIOD_8822B)                           \
-	 << BIT_SHIFT_TXCMD_TIMEOUT_PERIOD_8822B)
-#define BIT_GET_TXCMD_TIMEOUT_PERIOD_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_TXCMD_TIMEOUT_PERIOD_8822B) &                       \
-	 BIT_MASK_TXCMD_TIMEOUT_PERIOD_8822B)
-
-/* 2 REG_MISC_CTRL_8822B */
-#define BIT_DIS_TRX_CAL_BCN_8822B BIT(5)
-#define BIT_DIS_TX_CAL_TBTT_8822B BIT(4)
-#define BIT_EN_FREECNT_8822B BIT(3)
-#define BIT_BCN_AGGRESSION_8822B BIT(2)
-
-#define BIT_SHIFT_DIS_SECONDARY_CCA_8822B 0
-#define BIT_MASK_DIS_SECONDARY_CCA_8822B 0x3
-#define BIT_DIS_SECONDARY_CCA_8822B(x)                                         \
-	(((x) & BIT_MASK_DIS_SECONDARY_CCA_8822B)                              \
-	 << BIT_SHIFT_DIS_SECONDARY_CCA_8822B)
-#define BIT_GET_DIS_SECONDARY_CCA_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_DIS_SECONDARY_CCA_8822B) &                          \
-	 BIT_MASK_DIS_SECONDARY_CCA_8822B)
-
-/* 2 REG_BCN_CTRL_CLINT1_8822B */
-#define BIT_CLI1_DIS_RX_BSSID_FIT_8822B BIT(6)
-#define BIT_CLI1_DIS_TSF_UDT_8822B BIT(4)
-#define BIT_CLI1_EN_BCN_FUNCTION_8822B BIT(3)
-#define BIT_CLI1_EN_RXBCN_RPT_8822B BIT(2)
-#define BIT_CLI1_ENP2P_CTWINDOW_8822B BIT(1)
-#define BIT_CLI1_ENP2P_BCNQ_AREA_8822B BIT(0)
-
-/* 2 REG_BCN_CTRL_CLINT2_8822B */
-#define BIT_CLI2_DIS_RX_BSSID_FIT_8822B BIT(6)
-#define BIT_CLI2_DIS_TSF_UDT_8822B BIT(4)
-#define BIT_CLI2_EN_BCN_FUNCTION_8822B BIT(3)
-#define BIT_CLI2_EN_RXBCN_RPT_8822B BIT(2)
-#define BIT_CLI2_ENP2P_CTWINDOW_8822B BIT(1)
-#define BIT_CLI2_ENP2P_BCNQ_AREA_8822B BIT(0)
-
-/* 2 REG_BCN_CTRL_CLINT3_8822B */
-#define BIT_CLI3_DIS_RX_BSSID_FIT_8822B BIT(6)
-#define BIT_CLI3_DIS_TSF_UDT_8822B BIT(4)
-#define BIT_CLI3_EN_BCN_FUNCTION_8822B BIT(3)
-#define BIT_CLI3_EN_RXBCN_RPT_8822B BIT(2)
-#define BIT_CLI3_ENP2P_CTWINDOW_8822B BIT(1)
-#define BIT_CLI3_ENP2P_BCNQ_AREA_8822B BIT(0)
-
-/* 2 REG_EXTEND_CTRL_8822B */
-#define BIT_EN_TSFBIT32_RST_P2P2_8822B BIT(5)
-#define BIT_EN_TSFBIT32_RST_P2P1_8822B BIT(4)
-
-#define BIT_SHIFT_PORT_SEL_8822B 0
-#define BIT_MASK_PORT_SEL_8822B 0x7
-#define BIT_PORT_SEL_8822B(x)                                                  \
-	(((x) & BIT_MASK_PORT_SEL_8822B) << BIT_SHIFT_PORT_SEL_8822B)
-#define BIT_GET_PORT_SEL_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_PORT_SEL_8822B) & BIT_MASK_PORT_SEL_8822B)
-
-/* 2 REG_P2PPS1_SPEC_STATE_8822B */
-#define BIT_P2P1_SPEC_POWER_STATE_8822B BIT(7)
-#define BIT_P2P1_SPEC_CTWINDOW_ON_8822B BIT(6)
-#define BIT_P2P1_SPEC_BCN_AREA_ON_8822B BIT(5)
-#define BIT_P2P1_SPEC_CTWIN_EARLY_DISTX_8822B BIT(4)
-#define BIT_P2P1_SPEC_NOA1_OFF_PERIOD_8822B BIT(3)
-#define BIT_P2P1_SPEC_FORCE_DOZE1_8822B BIT(2)
-#define BIT_P2P1_SPEC_NOA0_OFF_PERIOD_8822B BIT(1)
-#define BIT_P2P1_SPEC_FORCE_DOZE0_8822B BIT(0)
-
-/* 2 REG_P2PPS1_STATE_8822B */
-#define BIT_P2P1_POWER_STATE_8822B BIT(7)
-#define BIT_P2P1_CTWINDOW_ON_8822B BIT(6)
-#define BIT_P2P1_BEACON_AREA_ON_8822B BIT(5)
-#define BIT_P2P1_CTWIN_EARLY_DISTX_8822B BIT(4)
-#define BIT_P2P1_NOA1_OFF_PERIOD_8822B BIT(3)
-#define BIT_P2P1_FORCE_DOZE1_8822B BIT(2)
-#define BIT_P2P1_NOA0_OFF_PERIOD_8822B BIT(1)
-#define BIT_P2P1_FORCE_DOZE0_8822B BIT(0)
-
-/* 2 REG_P2PPS2_SPEC_STATE_8822B */
-#define BIT_P2P2_SPEC_POWER_STATE_8822B BIT(7)
-#define BIT_P2P2_SPEC_CTWINDOW_ON_8822B BIT(6)
-#define BIT_P2P2_SPEC_BCN_AREA_ON_8822B BIT(5)
-#define BIT_P2P2_SPEC_CTWIN_EARLY_DISTX_8822B BIT(4)
-#define BIT_P2P2_SPEC_NOA1_OFF_PERIOD_8822B BIT(3)
-#define BIT_P2P2_SPEC_FORCE_DOZE1_8822B BIT(2)
-#define BIT_P2P2_SPEC_NOA0_OFF_PERIOD_8822B BIT(1)
-#define BIT_P2P2_SPEC_FORCE_DOZE0_8822B BIT(0)
-
-/* 2 REG_P2PPS2_STATE_8822B */
-#define BIT_P2P2_POWER_STATE_8822B BIT(7)
-#define BIT_P2P2_CTWINDOW_ON_8822B BIT(6)
-#define BIT_P2P2_BEACON_AREA_ON_8822B BIT(5)
-#define BIT_P2P2_CTWIN_EARLY_DISTX_8822B BIT(4)
-#define BIT_P2P2_NOA1_OFF_PERIOD_8822B BIT(3)
-#define BIT_P2P2_FORCE_DOZE1_8822B BIT(2)
-#define BIT_P2P2_NOA0_OFF_PERIOD_8822B BIT(1)
-#define BIT_P2P2_FORCE_DOZE0_8822B BIT(0)
-
-/* 2 REG_PS_TIMER0_8822B */
-
-#define BIT_SHIFT_PSTIMER0_INT_8822B 5
-#define BIT_MASK_PSTIMER0_INT_8822B 0x7ffffff
-#define BIT_PSTIMER0_INT_8822B(x)                                              \
-	(((x) & BIT_MASK_PSTIMER0_INT_8822B) << BIT_SHIFT_PSTIMER0_INT_8822B)
-#define BIT_GET_PSTIMER0_INT_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_PSTIMER0_INT_8822B) & BIT_MASK_PSTIMER0_INT_8822B)
-
-/* 2 REG_PS_TIMER1_8822B */
-
-#define BIT_SHIFT_PSTIMER1_INT_8822B 5
-#define BIT_MASK_PSTIMER1_INT_8822B 0x7ffffff
-#define BIT_PSTIMER1_INT_8822B(x)                                              \
-	(((x) & BIT_MASK_PSTIMER1_INT_8822B) << BIT_SHIFT_PSTIMER1_INT_8822B)
-#define BIT_GET_PSTIMER1_INT_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_PSTIMER1_INT_8822B) & BIT_MASK_PSTIMER1_INT_8822B)
-
-/* 2 REG_PS_TIMER2_8822B */
-
-#define BIT_SHIFT_PSTIMER2_INT_8822B 5
-#define BIT_MASK_PSTIMER2_INT_8822B 0x7ffffff
-#define BIT_PSTIMER2_INT_8822B(x)                                              \
-	(((x) & BIT_MASK_PSTIMER2_INT_8822B) << BIT_SHIFT_PSTIMER2_INT_8822B)
-#define BIT_GET_PSTIMER2_INT_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_PSTIMER2_INT_8822B) & BIT_MASK_PSTIMER2_INT_8822B)
-
-/* 2 REG_TBTT_CTN_AREA_8822B */
-
-#define BIT_SHIFT_TBTT_CTN_AREA_8822B 0
-#define BIT_MASK_TBTT_CTN_AREA_8822B 0xff
-#define BIT_TBTT_CTN_AREA_8822B(x)                                             \
-	(((x) & BIT_MASK_TBTT_CTN_AREA_8822B) << BIT_SHIFT_TBTT_CTN_AREA_8822B)
-#define BIT_GET_TBTT_CTN_AREA_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TBTT_CTN_AREA_8822B) & BIT_MASK_TBTT_CTN_AREA_8822B)
-
-/* 2 REG_FORCE_BCN_IFS_8822B */
-
-#define BIT_SHIFT_FORCE_BCN_IFS_8822B 0
-#define BIT_MASK_FORCE_BCN_IFS_8822B 0xff
-#define BIT_FORCE_BCN_IFS_8822B(x)                                             \
-	(((x) & BIT_MASK_FORCE_BCN_IFS_8822B) << BIT_SHIFT_FORCE_BCN_IFS_8822B)
-#define BIT_GET_FORCE_BCN_IFS_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_FORCE_BCN_IFS_8822B) & BIT_MASK_FORCE_BCN_IFS_8822B)
-
-/* 2 REG_TXOP_MIN_8822B */
-
-#define BIT_SHIFT_TXOP_MIN_8822B 0
-#define BIT_MASK_TXOP_MIN_8822B 0x3fff
-#define BIT_TXOP_MIN_8822B(x)                                                  \
-	(((x) & BIT_MASK_TXOP_MIN_8822B) << BIT_SHIFT_TXOP_MIN_8822B)
-#define BIT_GET_TXOP_MIN_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_TXOP_MIN_8822B) & BIT_MASK_TXOP_MIN_8822B)
-
-/* 2 REG_PRE_BKF_TIME_8822B */
-
-#define BIT_SHIFT_PRE_BKF_TIME_8822B 0
-#define BIT_MASK_PRE_BKF_TIME_8822B 0xff
-#define BIT_PRE_BKF_TIME_8822B(x)                                              \
-	(((x) & BIT_MASK_PRE_BKF_TIME_8822B) << BIT_SHIFT_PRE_BKF_TIME_8822B)
-#define BIT_GET_PRE_BKF_TIME_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_PRE_BKF_TIME_8822B) & BIT_MASK_PRE_BKF_TIME_8822B)
-
-/* 2 REG_CROSS_TXOP_CTRL_8822B */
-#define BIT_DTIM_BYPASS_8822B BIT(2)
-#define BIT_RTS_NAV_TXOP_8822B BIT(1)
-#define BIT_NOT_CROSS_TXOP_8822B BIT(0)
-
-/* 2 REG_ATIMWND2_8822B */
-
-#define BIT_SHIFT_ATIMWND2_8822B 0
-#define BIT_MASK_ATIMWND2_8822B 0xff
-#define BIT_ATIMWND2_8822B(x)                                                  \
-	(((x) & BIT_MASK_ATIMWND2_8822B) << BIT_SHIFT_ATIMWND2_8822B)
-#define BIT_GET_ATIMWND2_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ATIMWND2_8822B) & BIT_MASK_ATIMWND2_8822B)
-
-/* 2 REG_ATIMWND3_8822B */
-
-#define BIT_SHIFT_ATIMWND3_8822B 0
-#define BIT_MASK_ATIMWND3_8822B 0xff
-#define BIT_ATIMWND3_8822B(x)                                                  \
-	(((x) & BIT_MASK_ATIMWND3_8822B) << BIT_SHIFT_ATIMWND3_8822B)
-#define BIT_GET_ATIMWND3_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ATIMWND3_8822B) & BIT_MASK_ATIMWND3_8822B)
-
-/* 2 REG_ATIMWND4_8822B */
-
-#define BIT_SHIFT_ATIMWND4_8822B 0
-#define BIT_MASK_ATIMWND4_8822B 0xff
-#define BIT_ATIMWND4_8822B(x)                                                  \
-	(((x) & BIT_MASK_ATIMWND4_8822B) << BIT_SHIFT_ATIMWND4_8822B)
-#define BIT_GET_ATIMWND4_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ATIMWND4_8822B) & BIT_MASK_ATIMWND4_8822B)
-
-/* 2 REG_ATIMWND5_8822B */
-
-#define BIT_SHIFT_ATIMWND5_8822B 0
-#define BIT_MASK_ATIMWND5_8822B 0xff
-#define BIT_ATIMWND5_8822B(x)                                                  \
-	(((x) & BIT_MASK_ATIMWND5_8822B) << BIT_SHIFT_ATIMWND5_8822B)
-#define BIT_GET_ATIMWND5_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ATIMWND5_8822B) & BIT_MASK_ATIMWND5_8822B)
-
-/* 2 REG_ATIMWND6_8822B */
-
-#define BIT_SHIFT_ATIMWND6_8822B 0
-#define BIT_MASK_ATIMWND6_8822B 0xff
-#define BIT_ATIMWND6_8822B(x)                                                  \
-	(((x) & BIT_MASK_ATIMWND6_8822B) << BIT_SHIFT_ATIMWND6_8822B)
-#define BIT_GET_ATIMWND6_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ATIMWND6_8822B) & BIT_MASK_ATIMWND6_8822B)
-
-/* 2 REG_ATIMWND7_8822B */
-
-#define BIT_SHIFT_ATIMWND7_8822B 0
-#define BIT_MASK_ATIMWND7_8822B 0xff
-#define BIT_ATIMWND7_8822B(x)                                                  \
-	(((x) & BIT_MASK_ATIMWND7_8822B) << BIT_SHIFT_ATIMWND7_8822B)
-#define BIT_GET_ATIMWND7_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_ATIMWND7_8822B) & BIT_MASK_ATIMWND7_8822B)
-
-/* 2 REG_ATIMUGT_8822B */
-
-#define BIT_SHIFT_ATIM_URGENT_8822B 0
-#define BIT_MASK_ATIM_URGENT_8822B 0xff
-#define BIT_ATIM_URGENT_8822B(x)                                               \
-	(((x) & BIT_MASK_ATIM_URGENT_8822B) << BIT_SHIFT_ATIM_URGENT_8822B)
-#define BIT_GET_ATIM_URGENT_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_ATIM_URGENT_8822B) & BIT_MASK_ATIM_URGENT_8822B)
-
-/* 2 REG_HIQ_NO_LMT_EN_8822B */
-#define BIT_HIQ_NO_LMT_EN_VAP7_8822B BIT(7)
-#define BIT_HIQ_NO_LMT_EN_VAP6_8822B BIT(6)
-#define BIT_HIQ_NO_LMT_EN_VAP5_8822B BIT(5)
-#define BIT_HIQ_NO_LMT_EN_VAP4_8822B BIT(4)
-#define BIT_HIQ_NO_LMT_EN_VAP3_8822B BIT(3)
-#define BIT_HIQ_NO_LMT_EN_VAP2_8822B BIT(2)
-#define BIT_HIQ_NO_LMT_EN_VAP1_8822B BIT(1)
-#define BIT_HIQ_NO_LMT_EN_ROOT_8822B BIT(0)
-
-/* 2 REG_DTIM_COUNTER_ROOT_8822B */
-
-#define BIT_SHIFT_DTIM_COUNT_ROOT_8822B 0
-#define BIT_MASK_DTIM_COUNT_ROOT_8822B 0xff
-#define BIT_DTIM_COUNT_ROOT_8822B(x)                                           \
-	(((x) & BIT_MASK_DTIM_COUNT_ROOT_8822B)                                \
-	 << BIT_SHIFT_DTIM_COUNT_ROOT_8822B)
-#define BIT_GET_DTIM_COUNT_ROOT_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_ROOT_8822B) &                            \
-	 BIT_MASK_DTIM_COUNT_ROOT_8822B)
-
-/* 2 REG_DTIM_COUNTER_VAP1_8822B */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP1_8822B 0
-#define BIT_MASK_DTIM_COUNT_VAP1_8822B 0xff
-#define BIT_DTIM_COUNT_VAP1_8822B(x)                                           \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP1_8822B)                                \
-	 << BIT_SHIFT_DTIM_COUNT_VAP1_8822B)
-#define BIT_GET_DTIM_COUNT_VAP1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP1_8822B) &                            \
-	 BIT_MASK_DTIM_COUNT_VAP1_8822B)
-
-/* 2 REG_DTIM_COUNTER_VAP2_8822B */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP2_8822B 0
-#define BIT_MASK_DTIM_COUNT_VAP2_8822B 0xff
-#define BIT_DTIM_COUNT_VAP2_8822B(x)                                           \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP2_8822B)                                \
-	 << BIT_SHIFT_DTIM_COUNT_VAP2_8822B)
-#define BIT_GET_DTIM_COUNT_VAP2_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP2_8822B) &                            \
-	 BIT_MASK_DTIM_COUNT_VAP2_8822B)
-
-/* 2 REG_DTIM_COUNTER_VAP3_8822B */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP3_8822B 0
-#define BIT_MASK_DTIM_COUNT_VAP3_8822B 0xff
-#define BIT_DTIM_COUNT_VAP3_8822B(x)                                           \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP3_8822B)                                \
-	 << BIT_SHIFT_DTIM_COUNT_VAP3_8822B)
-#define BIT_GET_DTIM_COUNT_VAP3_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP3_8822B) &                            \
-	 BIT_MASK_DTIM_COUNT_VAP3_8822B)
-
-/* 2 REG_DTIM_COUNTER_VAP4_8822B */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP4_8822B 0
-#define BIT_MASK_DTIM_COUNT_VAP4_8822B 0xff
-#define BIT_DTIM_COUNT_VAP4_8822B(x)                                           \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP4_8822B)                                \
-	 << BIT_SHIFT_DTIM_COUNT_VAP4_8822B)
-#define BIT_GET_DTIM_COUNT_VAP4_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP4_8822B) &                            \
-	 BIT_MASK_DTIM_COUNT_VAP4_8822B)
-
-/* 2 REG_DTIM_COUNTER_VAP5_8822B */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP5_8822B 0
-#define BIT_MASK_DTIM_COUNT_VAP5_8822B 0xff
-#define BIT_DTIM_COUNT_VAP5_8822B(x)                                           \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP5_8822B)                                \
-	 << BIT_SHIFT_DTIM_COUNT_VAP5_8822B)
-#define BIT_GET_DTIM_COUNT_VAP5_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP5_8822B) &                            \
-	 BIT_MASK_DTIM_COUNT_VAP5_8822B)
-
-/* 2 REG_DTIM_COUNTER_VAP6_8822B */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP6_8822B 0
-#define BIT_MASK_DTIM_COUNT_VAP6_8822B 0xff
-#define BIT_DTIM_COUNT_VAP6_8822B(x)                                           \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP6_8822B)                                \
-	 << BIT_SHIFT_DTIM_COUNT_VAP6_8822B)
-#define BIT_GET_DTIM_COUNT_VAP6_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP6_8822B) &                            \
-	 BIT_MASK_DTIM_COUNT_VAP6_8822B)
-
-/* 2 REG_DTIM_COUNTER_VAP7_8822B */
-
-#define BIT_SHIFT_DTIM_COUNT_VAP7_8822B 0
-#define BIT_MASK_DTIM_COUNT_VAP7_8822B 0xff
-#define BIT_DTIM_COUNT_VAP7_8822B(x)                                           \
-	(((x) & BIT_MASK_DTIM_COUNT_VAP7_8822B)                                \
-	 << BIT_SHIFT_DTIM_COUNT_VAP7_8822B)
-#define BIT_GET_DTIM_COUNT_VAP7_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_DTIM_COUNT_VAP7_8822B) &                            \
-	 BIT_MASK_DTIM_COUNT_VAP7_8822B)
-
-/* 2 REG_DIS_ATIM_8822B */
-#define BIT_DIS_ATIM_VAP7_8822B BIT(7)
-#define BIT_DIS_ATIM_VAP6_8822B BIT(6)
-#define BIT_DIS_ATIM_VAP5_8822B BIT(5)
-#define BIT_DIS_ATIM_VAP4_8822B BIT(4)
-#define BIT_DIS_ATIM_VAP3_8822B BIT(3)
-#define BIT_DIS_ATIM_VAP2_8822B BIT(2)
-#define BIT_DIS_ATIM_VAP1_8822B BIT(1)
-#define BIT_DIS_ATIM_ROOT_8822B BIT(0)
-
-/* 2 REG_EARLY_128US_8822B */
-
-#define BIT_SHIFT_TSFT_SEL_TIMER1_8822B 3
-#define BIT_MASK_TSFT_SEL_TIMER1_8822B 0x7
-#define BIT_TSFT_SEL_TIMER1_8822B(x)                                           \
-	(((x) & BIT_MASK_TSFT_SEL_TIMER1_8822B)                                \
-	 << BIT_SHIFT_TSFT_SEL_TIMER1_8822B)
-#define BIT_GET_TSFT_SEL_TIMER1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_TSFT_SEL_TIMER1_8822B) &                            \
-	 BIT_MASK_TSFT_SEL_TIMER1_8822B)
-
-#define BIT_SHIFT_EARLY_128US_8822B 0
-#define BIT_MASK_EARLY_128US_8822B 0x7
-#define BIT_EARLY_128US_8822B(x)                                               \
-	(((x) & BIT_MASK_EARLY_128US_8822B) << BIT_SHIFT_EARLY_128US_8822B)
-#define BIT_GET_EARLY_128US_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_EARLY_128US_8822B) & BIT_MASK_EARLY_128US_8822B)
-
-/* 2 REG_P2PPS1_CTRL_8822B */
-#define BIT_P2P1_CTW_ALLSTASLEEP_8822B BIT(7)
-#define BIT_P2P1_OFF_DISTX_EN_8822B BIT(6)
-#define BIT_P2P1_PWR_MGT_EN_8822B BIT(5)
-#define BIT_P2P1_NOA1_EN_8822B BIT(2)
-#define BIT_P2P1_NOA0_EN_8822B BIT(1)
-
-/* 2 REG_P2PPS2_CTRL_8822B */
-#define BIT_P2P2_CTW_ALLSTASLEEP_8822B BIT(7)
-#define BIT_P2P2_OFF_DISTX_EN_8822B BIT(6)
-#define BIT_P2P2_PWR_MGT_EN_8822B BIT(5)
-#define BIT_P2P2_NOA1_EN_8822B BIT(2)
-#define BIT_P2P2_NOA0_EN_8822B BIT(1)
-
-/* 2 REG_TIMER0_SRC_SEL_8822B */
-
-#define BIT_SHIFT_SYNC_CLI_SEL_8822B 4
-#define BIT_MASK_SYNC_CLI_SEL_8822B 0x7
-#define BIT_SYNC_CLI_SEL_8822B(x)                                              \
-	(((x) & BIT_MASK_SYNC_CLI_SEL_8822B) << BIT_SHIFT_SYNC_CLI_SEL_8822B)
-#define BIT_GET_SYNC_CLI_SEL_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_SYNC_CLI_SEL_8822B) & BIT_MASK_SYNC_CLI_SEL_8822B)
-
-#define BIT_SHIFT_TSFT_SEL_TIMER0_8822B 0
-#define BIT_MASK_TSFT_SEL_TIMER0_8822B 0x7
-#define BIT_TSFT_SEL_TIMER0_8822B(x)                                           \
-	(((x) & BIT_MASK_TSFT_SEL_TIMER0_8822B)                                \
-	 << BIT_SHIFT_TSFT_SEL_TIMER0_8822B)
-#define BIT_GET_TSFT_SEL_TIMER0_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_TSFT_SEL_TIMER0_8822B) &                            \
-	 BIT_MASK_TSFT_SEL_TIMER0_8822B)
-
-/* 2 REG_NOA_UNIT_SEL_8822B */
-
-#define BIT_SHIFT_NOA_UNIT2_SEL_8822B 8
-#define BIT_MASK_NOA_UNIT2_SEL_8822B 0x7
-#define BIT_NOA_UNIT2_SEL_8822B(x)                                             \
-	(((x) & BIT_MASK_NOA_UNIT2_SEL_8822B) << BIT_SHIFT_NOA_UNIT2_SEL_8822B)
-#define BIT_GET_NOA_UNIT2_SEL_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_NOA_UNIT2_SEL_8822B) & BIT_MASK_NOA_UNIT2_SEL_8822B)
-
-#define BIT_SHIFT_NOA_UNIT1_SEL_8822B 4
-#define BIT_MASK_NOA_UNIT1_SEL_8822B 0x7
-#define BIT_NOA_UNIT1_SEL_8822B(x)                                             \
-	(((x) & BIT_MASK_NOA_UNIT1_SEL_8822B) << BIT_SHIFT_NOA_UNIT1_SEL_8822B)
-#define BIT_GET_NOA_UNIT1_SEL_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_NOA_UNIT1_SEL_8822B) & BIT_MASK_NOA_UNIT1_SEL_8822B)
-
-#define BIT_SHIFT_NOA_UNIT0_SEL_8822B 0
-#define BIT_MASK_NOA_UNIT0_SEL_8822B 0x7
-#define BIT_NOA_UNIT0_SEL_8822B(x)                                             \
-	(((x) & BIT_MASK_NOA_UNIT0_SEL_8822B) << BIT_SHIFT_NOA_UNIT0_SEL_8822B)
-#define BIT_GET_NOA_UNIT0_SEL_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_NOA_UNIT0_SEL_8822B) & BIT_MASK_NOA_UNIT0_SEL_8822B)
-
-/* 2 REG_P2POFF_DIS_TXTIME_8822B */
-
-#define BIT_SHIFT_P2POFF_DIS_TXTIME_8822B 0
-#define BIT_MASK_P2POFF_DIS_TXTIME_8822B 0xff
-#define BIT_P2POFF_DIS_TXTIME_8822B(x)                                         \
-	(((x) & BIT_MASK_P2POFF_DIS_TXTIME_8822B)                              \
-	 << BIT_SHIFT_P2POFF_DIS_TXTIME_8822B)
-#define BIT_GET_P2POFF_DIS_TXTIME_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_P2POFF_DIS_TXTIME_8822B) &                          \
-	 BIT_MASK_P2POFF_DIS_TXTIME_8822B)
-
-/* 2 REG_MBSSID_BCN_SPACE2_8822B */
-
-#define BIT_SHIFT_BCN_SPACE_CLINT2_8822B 16
-#define BIT_MASK_BCN_SPACE_CLINT2_8822B 0xfff
-#define BIT_BCN_SPACE_CLINT2_8822B(x)                                          \
-	(((x) & BIT_MASK_BCN_SPACE_CLINT2_8822B)                               \
-	 << BIT_SHIFT_BCN_SPACE_CLINT2_8822B)
-#define BIT_GET_BCN_SPACE_CLINT2_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BCN_SPACE_CLINT2_8822B) &                           \
-	 BIT_MASK_BCN_SPACE_CLINT2_8822B)
-
-#define BIT_SHIFT_BCN_SPACE_CLINT1_8822B 0
-#define BIT_MASK_BCN_SPACE_CLINT1_8822B 0xfff
-#define BIT_BCN_SPACE_CLINT1_8822B(x)                                          \
-	(((x) & BIT_MASK_BCN_SPACE_CLINT1_8822B)                               \
-	 << BIT_SHIFT_BCN_SPACE_CLINT1_8822B)
-#define BIT_GET_BCN_SPACE_CLINT1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BCN_SPACE_CLINT1_8822B) &                           \
-	 BIT_MASK_BCN_SPACE_CLINT1_8822B)
-
-/* 2 REG_MBSSID_BCN_SPACE3_8822B */
-
-#define BIT_SHIFT_SUB_BCN_SPACE_8822B 16
-#define BIT_MASK_SUB_BCN_SPACE_8822B 0xff
-#define BIT_SUB_BCN_SPACE_8822B(x)                                             \
-	(((x) & BIT_MASK_SUB_BCN_SPACE_8822B) << BIT_SHIFT_SUB_BCN_SPACE_8822B)
-#define BIT_GET_SUB_BCN_SPACE_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_SUB_BCN_SPACE_8822B) & BIT_MASK_SUB_BCN_SPACE_8822B)
-
-#define BIT_SHIFT_BCN_SPACE_CLINT3_8822B 0
-#define BIT_MASK_BCN_SPACE_CLINT3_8822B 0xfff
-#define BIT_BCN_SPACE_CLINT3_8822B(x)                                          \
-	(((x) & BIT_MASK_BCN_SPACE_CLINT3_8822B)                               \
-	 << BIT_SHIFT_BCN_SPACE_CLINT3_8822B)
-#define BIT_GET_BCN_SPACE_CLINT3_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BCN_SPACE_CLINT3_8822B) &                           \
-	 BIT_MASK_BCN_SPACE_CLINT3_8822B)
-
-/* 2 REG_ACMHWCTRL_8822B */
-#define BIT_BEQ_ACM_STATUS_8822B BIT(7)
-#define BIT_VIQ_ACM_STATUS_8822B BIT(6)
-#define BIT_VOQ_ACM_STATUS_8822B BIT(5)
-#define BIT_BEQ_ACM_EN_8822B BIT(3)
-#define BIT_VIQ_ACM_EN_8822B BIT(2)
-#define BIT_VOQ_ACM_EN_8822B BIT(1)
-#define BIT_ACMHWEN_8822B BIT(0)
-
-/* 2 REG_ACMRSTCTRL_8822B */
-#define BIT_BE_ACM_RESET_USED_TIME_8822B BIT(2)
-#define BIT_VI_ACM_RESET_USED_TIME_8822B BIT(1)
-#define BIT_VO_ACM_RESET_USED_TIME_8822B BIT(0)
-
-/* 2 REG_ACMAVG_8822B */
-
-#define BIT_SHIFT_AVGPERIOD_8822B 0
-#define BIT_MASK_AVGPERIOD_8822B 0xffff
-#define BIT_AVGPERIOD_8822B(x)                                                 \
-	(((x) & BIT_MASK_AVGPERIOD_8822B) << BIT_SHIFT_AVGPERIOD_8822B)
-#define BIT_GET_AVGPERIOD_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_AVGPERIOD_8822B) & BIT_MASK_AVGPERIOD_8822B)
-
-/* 2 REG_VO_ADMTIME_8822B */
-
-#define BIT_SHIFT_VO_ADMITTED_TIME_8822B 0
-#define BIT_MASK_VO_ADMITTED_TIME_8822B 0xffff
-#define BIT_VO_ADMITTED_TIME_8822B(x)                                          \
-	(((x) & BIT_MASK_VO_ADMITTED_TIME_8822B)                               \
-	 << BIT_SHIFT_VO_ADMITTED_TIME_8822B)
-#define BIT_GET_VO_ADMITTED_TIME_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_VO_ADMITTED_TIME_8822B) &                           \
-	 BIT_MASK_VO_ADMITTED_TIME_8822B)
-
-/* 2 REG_VI_ADMTIME_8822B */
-
-#define BIT_SHIFT_VI_ADMITTED_TIME_8822B 0
-#define BIT_MASK_VI_ADMITTED_TIME_8822B 0xffff
-#define BIT_VI_ADMITTED_TIME_8822B(x)                                          \
-	(((x) & BIT_MASK_VI_ADMITTED_TIME_8822B)                               \
-	 << BIT_SHIFT_VI_ADMITTED_TIME_8822B)
-#define BIT_GET_VI_ADMITTED_TIME_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_VI_ADMITTED_TIME_8822B) &                           \
-	 BIT_MASK_VI_ADMITTED_TIME_8822B)
-
-/* 2 REG_BE_ADMTIME_8822B */
-
-#define BIT_SHIFT_BE_ADMITTED_TIME_8822B 0
-#define BIT_MASK_BE_ADMITTED_TIME_8822B 0xffff
-#define BIT_BE_ADMITTED_TIME_8822B(x)                                          \
-	(((x) & BIT_MASK_BE_ADMITTED_TIME_8822B)                               \
-	 << BIT_SHIFT_BE_ADMITTED_TIME_8822B)
-#define BIT_GET_BE_ADMITTED_TIME_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BE_ADMITTED_TIME_8822B) &                           \
-	 BIT_MASK_BE_ADMITTED_TIME_8822B)
-
-/* 2 REG_EDCA_RANDOM_GEN_8822B */
-
-#define BIT_SHIFT_RANDOM_GEN_8822B 0
-#define BIT_MASK_RANDOM_GEN_8822B 0xffffff
-#define BIT_RANDOM_GEN_8822B(x)                                                \
-	(((x) & BIT_MASK_RANDOM_GEN_8822B) << BIT_SHIFT_RANDOM_GEN_8822B)
-#define BIT_GET_RANDOM_GEN_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_RANDOM_GEN_8822B) & BIT_MASK_RANDOM_GEN_8822B)
-
-/* 2 REG_TXCMD_NOA_SEL_8822B */
-
-#define BIT_SHIFT_NOA_SEL_8822B 4
-#define BIT_MASK_NOA_SEL_8822B 0x7
-#define BIT_NOA_SEL_8822B(x)                                                   \
-	(((x) & BIT_MASK_NOA_SEL_8822B) << BIT_SHIFT_NOA_SEL_8822B)
-#define BIT_GET_NOA_SEL_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_NOA_SEL_8822B) & BIT_MASK_NOA_SEL_8822B)
-
-#define BIT_SHIFT_TXCMD_SEG_SEL_8822B 0
-#define BIT_MASK_TXCMD_SEG_SEL_8822B 0xf
-#define BIT_TXCMD_SEG_SEL_8822B(x)                                             \
-	(((x) & BIT_MASK_TXCMD_SEG_SEL_8822B) << BIT_SHIFT_TXCMD_SEG_SEL_8822B)
-#define BIT_GET_TXCMD_SEG_SEL_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_TXCMD_SEG_SEL_8822B) & BIT_MASK_TXCMD_SEG_SEL_8822B)
-
-/* 2 REG_NOA_PARAM_8822B */
-
-#define BIT_SHIFT_NOA_COUNT_8822B (96 & CPU_OPT_WIDTH)
-#define BIT_MASK_NOA_COUNT_8822B 0xff
-#define BIT_NOA_COUNT_8822B(x)                                                 \
-	(((x) & BIT_MASK_NOA_COUNT_8822B) << BIT_SHIFT_NOA_COUNT_8822B)
-#define BIT_GET_NOA_COUNT_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_NOA_COUNT_8822B) & BIT_MASK_NOA_COUNT_8822B)
-
-#define BIT_SHIFT_NOA_START_TIME_8822B (64 & CPU_OPT_WIDTH)
-#define BIT_MASK_NOA_START_TIME_8822B 0xffffffffL
-#define BIT_NOA_START_TIME_8822B(x)                                            \
-	(((x) & BIT_MASK_NOA_START_TIME_8822B)                                 \
-	 << BIT_SHIFT_NOA_START_TIME_8822B)
-#define BIT_GET_NOA_START_TIME_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_NOA_START_TIME_8822B) &                             \
-	 BIT_MASK_NOA_START_TIME_8822B)
-
-#define BIT_SHIFT_NOA_INTERVAL_8822B (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_NOA_INTERVAL_8822B 0xffffffffL
-#define BIT_NOA_INTERVAL_8822B(x)                                              \
-	(((x) & BIT_MASK_NOA_INTERVAL_8822B) << BIT_SHIFT_NOA_INTERVAL_8822B)
-#define BIT_GET_NOA_INTERVAL_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_NOA_INTERVAL_8822B) & BIT_MASK_NOA_INTERVAL_8822B)
-
-#define BIT_SHIFT_NOA_DURATION_8822B 0
-#define BIT_MASK_NOA_DURATION_8822B 0xffffffffL
-#define BIT_NOA_DURATION_8822B(x)                                              \
-	(((x) & BIT_MASK_NOA_DURATION_8822B) << BIT_SHIFT_NOA_DURATION_8822B)
-#define BIT_GET_NOA_DURATION_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_NOA_DURATION_8822B) & BIT_MASK_NOA_DURATION_8822B)
-
-/* 2 REG_P2P_RST_8822B */
-#define BIT_P2P2_PWR_RST1_8822B BIT(5)
-#define BIT_P2P2_PWR_RST0_8822B BIT(4)
-#define BIT_P2P1_PWR_RST1_8822B BIT(3)
-#define BIT_P2P1_PWR_RST0_8822B BIT(2)
-#define BIT_P2P_PWR_RST1_V1_8822B BIT(1)
-#define BIT_P2P_PWR_RST0_V1_8822B BIT(0)
-
-/* 2 REG_SCHEDULER_RST_8822B */
-#define BIT_SYNC_CLI_8822B BIT(1)
-#define BIT_SCHEDULER_RST_V1_8822B BIT(0)
-
-/* 2 REG_SCH_TXCMD_8822B */
-
-#define BIT_SHIFT_SCH_TXCMD_8822B 0
-#define BIT_MASK_SCH_TXCMD_8822B 0xffffffffL
-#define BIT_SCH_TXCMD_8822B(x)                                                 \
-	(((x) & BIT_MASK_SCH_TXCMD_8822B) << BIT_SHIFT_SCH_TXCMD_8822B)
-#define BIT_GET_SCH_TXCMD_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_SCH_TXCMD_8822B) & BIT_MASK_SCH_TXCMD_8822B)
-
-/* 2 REG_PAGE5_DUMMY_8822B */
-
-/* 2 REG_CPUMGQ_TX_TIMER_8822B */
-
-#define BIT_SHIFT_CPUMGQ_TX_TIMER_V1_8822B 0
-#define BIT_MASK_CPUMGQ_TX_TIMER_V1_8822B 0xffffffffL
-#define BIT_CPUMGQ_TX_TIMER_V1_8822B(x)                                        \
-	(((x) & BIT_MASK_CPUMGQ_TX_TIMER_V1_8822B)                             \
-	 << BIT_SHIFT_CPUMGQ_TX_TIMER_V1_8822B)
-#define BIT_GET_CPUMGQ_TX_TIMER_V1_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_V1_8822B) &                         \
-	 BIT_MASK_CPUMGQ_TX_TIMER_V1_8822B)
-
-/* 2 REG_PS_TIMER_A_8822B */
-
-#define BIT_SHIFT_PS_TIMER_A_V1_8822B 0
-#define BIT_MASK_PS_TIMER_A_V1_8822B 0xffffffffL
-#define BIT_PS_TIMER_A_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_PS_TIMER_A_V1_8822B) << BIT_SHIFT_PS_TIMER_A_V1_8822B)
-#define BIT_GET_PS_TIMER_A_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PS_TIMER_A_V1_8822B) & BIT_MASK_PS_TIMER_A_V1_8822B)
-
-/* 2 REG_PS_TIMER_B_8822B */
-
-#define BIT_SHIFT_PS_TIMER_B_V1_8822B 0
-#define BIT_MASK_PS_TIMER_B_V1_8822B 0xffffffffL
-#define BIT_PS_TIMER_B_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_PS_TIMER_B_V1_8822B) << BIT_SHIFT_PS_TIMER_B_V1_8822B)
-#define BIT_GET_PS_TIMER_B_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PS_TIMER_B_V1_8822B) & BIT_MASK_PS_TIMER_B_V1_8822B)
-
-/* 2 REG_PS_TIMER_C_8822B */
-
-#define BIT_SHIFT_PS_TIMER_C_V1_8822B 0
-#define BIT_MASK_PS_TIMER_C_V1_8822B 0xffffffffL
-#define BIT_PS_TIMER_C_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_PS_TIMER_C_V1_8822B) << BIT_SHIFT_PS_TIMER_C_V1_8822B)
-#define BIT_GET_PS_TIMER_C_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PS_TIMER_C_V1_8822B) & BIT_MASK_PS_TIMER_C_V1_8822B)
-
-/* 2 REG_PS_TIMER_ABC_CPUMGQ_TIMER_CRTL_8822B */
-#define BIT_CPUMGQ_TIMER_EN_8822B BIT(31)
-#define BIT_CPUMGQ_TX_EN_8822B BIT(28)
-
-#define BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_8822B 24
-#define BIT_MASK_CPUMGQ_TIMER_TSF_SEL_8822B 0x7
-#define BIT_CPUMGQ_TIMER_TSF_SEL_8822B(x)                                      \
-	(((x) & BIT_MASK_CPUMGQ_TIMER_TSF_SEL_8822B)                           \
-	 << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_8822B)
-#define BIT_GET_CPUMGQ_TIMER_TSF_SEL_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_8822B) &                       \
-	 BIT_MASK_CPUMGQ_TIMER_TSF_SEL_8822B)
-
-#define BIT_PS_TIMER_C_EN_8822B BIT(23)
-
-#define BIT_SHIFT_PS_TIMER_C_TSF_SEL_8822B 16
-#define BIT_MASK_PS_TIMER_C_TSF_SEL_8822B 0x7
-#define BIT_PS_TIMER_C_TSF_SEL_8822B(x)                                        \
-	(((x) & BIT_MASK_PS_TIMER_C_TSF_SEL_8822B)                             \
-	 << BIT_SHIFT_PS_TIMER_C_TSF_SEL_8822B)
-#define BIT_GET_PS_TIMER_C_TSF_SEL_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_PS_TIMER_C_TSF_SEL_8822B) &                         \
-	 BIT_MASK_PS_TIMER_C_TSF_SEL_8822B)
-
-#define BIT_PS_TIMER_B_EN_8822B BIT(15)
-
-#define BIT_SHIFT_PS_TIMER_B_TSF_SEL_8822B 8
-#define BIT_MASK_PS_TIMER_B_TSF_SEL_8822B 0x7
-#define BIT_PS_TIMER_B_TSF_SEL_8822B(x)                                        \
-	(((x) & BIT_MASK_PS_TIMER_B_TSF_SEL_8822B)                             \
-	 << BIT_SHIFT_PS_TIMER_B_TSF_SEL_8822B)
-#define BIT_GET_PS_TIMER_B_TSF_SEL_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_PS_TIMER_B_TSF_SEL_8822B) &                         \
-	 BIT_MASK_PS_TIMER_B_TSF_SEL_8822B)
-
-#define BIT_PS_TIMER_A_EN_8822B BIT(7)
-
-#define BIT_SHIFT_PS_TIMER_A_TSF_SEL_8822B 0
-#define BIT_MASK_PS_TIMER_A_TSF_SEL_8822B 0x7
-#define BIT_PS_TIMER_A_TSF_SEL_8822B(x)                                        \
-	(((x) & BIT_MASK_PS_TIMER_A_TSF_SEL_8822B)                             \
-	 << BIT_SHIFT_PS_TIMER_A_TSF_SEL_8822B)
-#define BIT_GET_PS_TIMER_A_TSF_SEL_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_PS_TIMER_A_TSF_SEL_8822B) &                         \
-	 BIT_MASK_PS_TIMER_A_TSF_SEL_8822B)
-
-/* 2 REG_CPUMGQ_TX_TIMER_EARLY_8822B */
-
-#define BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_8822B 0
-#define BIT_MASK_CPUMGQ_TX_TIMER_EARLY_8822B 0xff
-#define BIT_CPUMGQ_TX_TIMER_EARLY_8822B(x)                                     \
-	(((x) & BIT_MASK_CPUMGQ_TX_TIMER_EARLY_8822B)                          \
-	 << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_8822B)
-#define BIT_GET_CPUMGQ_TX_TIMER_EARLY_8822B(x)                                 \
-	(((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_8822B) &                      \
-	 BIT_MASK_CPUMGQ_TX_TIMER_EARLY_8822B)
-
-/* 2 REG_PS_TIMER_A_EARLY_8822B */
-
-#define BIT_SHIFT_PS_TIMER_A_EARLY_8822B 0
-#define BIT_MASK_PS_TIMER_A_EARLY_8822B 0xff
-#define BIT_PS_TIMER_A_EARLY_8822B(x)                                          \
-	(((x) & BIT_MASK_PS_TIMER_A_EARLY_8822B)                               \
-	 << BIT_SHIFT_PS_TIMER_A_EARLY_8822B)
-#define BIT_GET_PS_TIMER_A_EARLY_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_PS_TIMER_A_EARLY_8822B) &                           \
-	 BIT_MASK_PS_TIMER_A_EARLY_8822B)
-
-/* 2 REG_PS_TIMER_B_EARLY_8822B */
-
-#define BIT_SHIFT_PS_TIMER_B_EARLY_8822B 0
-#define BIT_MASK_PS_TIMER_B_EARLY_8822B 0xff
-#define BIT_PS_TIMER_B_EARLY_8822B(x)                                          \
-	(((x) & BIT_MASK_PS_TIMER_B_EARLY_8822B)                               \
-	 << BIT_SHIFT_PS_TIMER_B_EARLY_8822B)
-#define BIT_GET_PS_TIMER_B_EARLY_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_PS_TIMER_B_EARLY_8822B) &                           \
-	 BIT_MASK_PS_TIMER_B_EARLY_8822B)
-
-/* 2 REG_PS_TIMER_C_EARLY_8822B */
-
-#define BIT_SHIFT_PS_TIMER_C_EARLY_8822B 0
-#define BIT_MASK_PS_TIMER_C_EARLY_8822B 0xff
-#define BIT_PS_TIMER_C_EARLY_8822B(x)                                          \
-	(((x) & BIT_MASK_PS_TIMER_C_EARLY_8822B)                               \
-	 << BIT_SHIFT_PS_TIMER_C_EARLY_8822B)
-#define BIT_GET_PS_TIMER_C_EARLY_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_PS_TIMER_C_EARLY_8822B) &                           \
-	 BIT_MASK_PS_TIMER_C_EARLY_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_BWOPMODE_8822B (BW OPERATION MODE REGISTER) */
-
-/* 2 REG_WMAC_FWPKT_CR_8822B */
-#define BIT_FWEN_8822B BIT(7)
-#define BIT_PHYSTS_PKT_CTRL_8822B BIT(6)
-#define BIT_APPHDR_MIDSRCH_FAIL_8822B BIT(4)
-#define BIT_FWPARSING_EN_8822B BIT(3)
-
-#define BIT_SHIFT_APPEND_MHDR_LEN_8822B 0
-#define BIT_MASK_APPEND_MHDR_LEN_8822B 0x7
-#define BIT_APPEND_MHDR_LEN_8822B(x)                                           \
-	(((x) & BIT_MASK_APPEND_MHDR_LEN_8822B)                                \
-	 << BIT_SHIFT_APPEND_MHDR_LEN_8822B)
-#define BIT_GET_APPEND_MHDR_LEN_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_APPEND_MHDR_LEN_8822B) &                            \
-	 BIT_MASK_APPEND_MHDR_LEN_8822B)
-
-/* 2 REG_WMAC_CR_8822B (WMAC CR AND APSD CONTROL REGISTER) */
-#define BIT_IC_MACPHY_M_8822B BIT(0)
-
-/* 2 REG_TCR_8822B (TRANSMISSION CONFIGURATION REGISTER) */
-#define BIT_WMAC_EN_RTS_ADDR_8822B BIT(31)
-#define BIT_WMAC_DISABLE_CCK_8822B BIT(30)
-#define BIT_WMAC_RAW_LEN_8822B BIT(29)
-#define BIT_WMAC_NOTX_IN_RXNDP_8822B BIT(28)
-#define BIT_WMAC_EN_EOF_8822B BIT(27)
-#define BIT_WMAC_BF_SEL_8822B BIT(26)
-#define BIT_WMAC_ANTMODE_SEL_8822B BIT(25)
-#define BIT_WMAC_TCRPWRMGT_HWCTL_8822B BIT(24)
-#define BIT_WMAC_SMOOTH_VAL_8822B BIT(23)
-#define BIT_FETCH_MPDU_AFTER_WSEC_RDY_8822B BIT(20)
-#define BIT_WMAC_TCR_EN_20MST_8822B BIT(19)
-#define BIT_WMAC_DIS_SIGTA_8822B BIT(18)
-#define BIT_WMAC_DIS_A2B0_8822B BIT(17)
-#define BIT_WMAC_MSK_SIGBCRC_8822B BIT(16)
-#define BIT_WMAC_TCR_ERRSTEN_3_8822B BIT(15)
-#define BIT_WMAC_TCR_ERRSTEN_2_8822B BIT(14)
-#define BIT_WMAC_TCR_ERRSTEN_1_8822B BIT(13)
-#define BIT_WMAC_TCR_ERRSTEN_0_8822B BIT(12)
-#define BIT_WMAC_TCR_TXSK_PERPKT_8822B BIT(11)
-#define BIT_ICV_8822B BIT(10)
-#define BIT_CFEND_FORMAT_8822B BIT(9)
-#define BIT_CRC_8822B BIT(8)
-#define BIT_PWRBIT_OW_EN_8822B BIT(7)
-#define BIT_PWR_ST_8822B BIT(6)
-#define BIT_WMAC_TCR_UPD_TIMIE_8822B BIT(5)
-#define BIT_WMAC_TCR_UPD_HGQMD_8822B BIT(4)
-#define BIT_VHTSIGA1_TXPS_8822B BIT(3)
-#define BIT_PAD_SEL_8822B BIT(2)
-#define BIT_DIS_GCLK_8822B BIT(1)
-
-/* 2 REG_RCR_8822B (RECEIVE CONFIGURATION REGISTER) */
-#define BIT_APP_FCS_8822B BIT(31)
-#define BIT_APP_MIC_8822B BIT(30)
-#define BIT_APP_ICV_8822B BIT(29)
-#define BIT_APP_PHYSTS_8822B BIT(28)
-#define BIT_APP_BASSN_8822B BIT(27)
-#define BIT_VHT_DACK_8822B BIT(26)
-#define BIT_TCPOFLD_EN_8822B BIT(25)
-#define BIT_ENMBID_8822B BIT(24)
-#define BIT_LSIGEN_8822B BIT(23)
-#define BIT_MFBEN_8822B BIT(22)
-#define BIT_DISCHKPPDLLEN_8822B BIT(21)
-#define BIT_PKTCTL_DLEN_8822B BIT(20)
-#define BIT_TIM_PARSER_EN_8822B BIT(18)
-#define BIT_BC_MD_EN_8822B BIT(17)
-#define BIT_UC_MD_EN_8822B BIT(16)
-#define BIT_RXSK_PERPKT_8822B BIT(15)
-#define BIT_HTC_LOC_CTRL_8822B BIT(14)
-#define BIT_RPFM_CAM_ENABLE_8822B BIT(12)
-#define BIT_TA_BCN_8822B BIT(11)
-#define BIT_DISDECMYPKT_8822B BIT(10)
-#define BIT_AICV_8822B BIT(9)
-#define BIT_ACRC32_8822B BIT(8)
-#define BIT_CBSSID_BCN_8822B BIT(7)
-#define BIT_CBSSID_DATA_8822B BIT(6)
-#define BIT_APWRMGT_8822B BIT(5)
-#define BIT_ADD3_8822B BIT(4)
-#define BIT_AB_8822B BIT(3)
-#define BIT_AM_8822B BIT(2)
-#define BIT_APM_8822B BIT(1)
-#define BIT_AAP_8822B BIT(0)
-
-/* 2 REG_RX_DRVINFO_SZ_8822B (RX DRIVER INFO SIZE REGISTER) */
-#define BIT_PHYSTS_PER_PKT_MODE_8822B BIT(7)
-
-#define BIT_SHIFT_DRVINFO_SZ_V1_8822B 0
-#define BIT_MASK_DRVINFO_SZ_V1_8822B 0xf
-#define BIT_DRVINFO_SZ_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_DRVINFO_SZ_V1_8822B) << BIT_SHIFT_DRVINFO_SZ_V1_8822B)
-#define BIT_GET_DRVINFO_SZ_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_DRVINFO_SZ_V1_8822B) & BIT_MASK_DRVINFO_SZ_V1_8822B)
-
-/* 2 REG_RX_DLK_TIME_8822B (RX DEADLOCK TIME REGISTER) */
-
-#define BIT_SHIFT_RX_DLK_TIME_8822B 0
-#define BIT_MASK_RX_DLK_TIME_8822B 0xff
-#define BIT_RX_DLK_TIME_8822B(x)                                               \
-	(((x) & BIT_MASK_RX_DLK_TIME_8822B) << BIT_SHIFT_RX_DLK_TIME_8822B)
-#define BIT_GET_RX_DLK_TIME_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_RX_DLK_TIME_8822B) & BIT_MASK_RX_DLK_TIME_8822B)
-
-/* 2 REG_RX_PKT_LIMIT_8822B (RX PACKET LENGTH LIMIT REGISTER) */
-
-#define BIT_SHIFT_RXPKTLMT_8822B 0
-#define BIT_MASK_RXPKTLMT_8822B 0x3f
-#define BIT_RXPKTLMT_8822B(x)                                                  \
-	(((x) & BIT_MASK_RXPKTLMT_8822B) << BIT_SHIFT_RXPKTLMT_8822B)
-#define BIT_GET_RXPKTLMT_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_RXPKTLMT_8822B) & BIT_MASK_RXPKTLMT_8822B)
-
-/* 2 REG_MACID_8822B (MAC ID REGISTER) */
-
-#define BIT_SHIFT_MACID_8822B 0
-#define BIT_MASK_MACID_8822B 0xffffffffffffL
-#define BIT_MACID_8822B(x)                                                     \
-	(((x) & BIT_MASK_MACID_8822B) << BIT_SHIFT_MACID_8822B)
-#define BIT_GET_MACID_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_MACID_8822B) & BIT_MASK_MACID_8822B)
-
-/* 2 REG_BSSID_8822B (BSSID REGISTER) */
-
-#define BIT_SHIFT_BSSID_8822B 0
-#define BIT_MASK_BSSID_8822B 0xffffffffffffL
-#define BIT_BSSID_8822B(x)                                                     \
-	(((x) & BIT_MASK_BSSID_8822B) << BIT_SHIFT_BSSID_8822B)
-#define BIT_GET_BSSID_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_BSSID_8822B) & BIT_MASK_BSSID_8822B)
-
-/* 2 REG_MAR_8822B (MULTICAST ADDRESS REGISTER) */
-
-#define BIT_SHIFT_MAR_8822B 0
-#define BIT_MASK_MAR_8822B 0xffffffffffffffffL
-#define BIT_MAR_8822B(x) (((x) & BIT_MASK_MAR_8822B) << BIT_SHIFT_MAR_8822B)
-#define BIT_GET_MAR_8822B(x) (((x) >> BIT_SHIFT_MAR_8822B) & BIT_MASK_MAR_8822B)
-
-/* 2 REG_MBIDCAMCFG_1_8822B (MBSSID CAM CONFIGURATION REGISTER) */
-
-#define BIT_SHIFT_MBIDCAM_RWDATA_L_8822B 0
-#define BIT_MASK_MBIDCAM_RWDATA_L_8822B 0xffffffffL
-#define BIT_MBIDCAM_RWDATA_L_8822B(x)                                          \
-	(((x) & BIT_MASK_MBIDCAM_RWDATA_L_8822B)                               \
-	 << BIT_SHIFT_MBIDCAM_RWDATA_L_8822B)
-#define BIT_GET_MBIDCAM_RWDATA_L_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_MBIDCAM_RWDATA_L_8822B) &                           \
-	 BIT_MASK_MBIDCAM_RWDATA_L_8822B)
-
-/* 2 REG_MBIDCAMCFG_2_8822B (MBSSID CAM CONFIGURATION REGISTER) */
-#define BIT_MBIDCAM_POLL_8822B BIT(31)
-#define BIT_MBIDCAM_WT_EN_8822B BIT(30)
-
-#define BIT_SHIFT_MBIDCAM_ADDR_8822B 24
-#define BIT_MASK_MBIDCAM_ADDR_8822B 0x1f
-#define BIT_MBIDCAM_ADDR_8822B(x)                                              \
-	(((x) & BIT_MASK_MBIDCAM_ADDR_8822B) << BIT_SHIFT_MBIDCAM_ADDR_8822B)
-#define BIT_GET_MBIDCAM_ADDR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_MBIDCAM_ADDR_8822B) & BIT_MASK_MBIDCAM_ADDR_8822B)
-
-#define BIT_MBIDCAM_VALID_8822B BIT(23)
-#define BIT_LSIC_TXOP_EN_8822B BIT(17)
-#define BIT_CTS_EN_8822B BIT(16)
-
-#define BIT_SHIFT_MBIDCAM_RWDATA_H_8822B 0
-#define BIT_MASK_MBIDCAM_RWDATA_H_8822B 0xffff
-#define BIT_MBIDCAM_RWDATA_H_8822B(x)                                          \
-	(((x) & BIT_MASK_MBIDCAM_RWDATA_H_8822B)                               \
-	 << BIT_SHIFT_MBIDCAM_RWDATA_H_8822B)
-#define BIT_GET_MBIDCAM_RWDATA_H_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_MBIDCAM_RWDATA_H_8822B) &                           \
-	 BIT_MASK_MBIDCAM_RWDATA_H_8822B)
-
-/* 2 REG_ZLD_NUM_8822B */
-
-#define BIT_SHIFT_ZLD_NUM_8822B 0
-#define BIT_MASK_ZLD_NUM_8822B 0xff
-#define BIT_ZLD_NUM_8822B(x)                                                   \
-	(((x) & BIT_MASK_ZLD_NUM_8822B) << BIT_SHIFT_ZLD_NUM_8822B)
-#define BIT_GET_ZLD_NUM_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_ZLD_NUM_8822B) & BIT_MASK_ZLD_NUM_8822B)
-
-/* 2 REG_UDF_THSD_8822B */
-
-#define BIT_SHIFT_UDF_THSD_8822B 0
-#define BIT_MASK_UDF_THSD_8822B 0xff
-#define BIT_UDF_THSD_8822B(x)                                                  \
-	(((x) & BIT_MASK_UDF_THSD_8822B) << BIT_SHIFT_UDF_THSD_8822B)
-#define BIT_GET_UDF_THSD_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_UDF_THSD_8822B) & BIT_MASK_UDF_THSD_8822B)
-
-/* 2 REG_WMAC_TCR_TSFT_OFS_8822B */
-
-#define BIT_SHIFT_WMAC_TCR_TSFT_OFS_8822B 0
-#define BIT_MASK_WMAC_TCR_TSFT_OFS_8822B 0xffff
-#define BIT_WMAC_TCR_TSFT_OFS_8822B(x)                                         \
-	(((x) & BIT_MASK_WMAC_TCR_TSFT_OFS_8822B)                              \
-	 << BIT_SHIFT_WMAC_TCR_TSFT_OFS_8822B)
-#define BIT_GET_WMAC_TCR_TSFT_OFS_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WMAC_TCR_TSFT_OFS_8822B) &                          \
-	 BIT_MASK_WMAC_TCR_TSFT_OFS_8822B)
-
-/* 2 REG_MCU_TEST_2_V1_8822B */
-
-#define BIT_SHIFT_MCU_RSVD_2_V1_8822B 0
-#define BIT_MASK_MCU_RSVD_2_V1_8822B 0xffff
-#define BIT_MCU_RSVD_2_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_MCU_RSVD_2_V1_8822B) << BIT_SHIFT_MCU_RSVD_2_V1_8822B)
-#define BIT_GET_MCU_RSVD_2_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_MCU_RSVD_2_V1_8822B) & BIT_MASK_MCU_RSVD_2_V1_8822B)
-
-/* 2 REG_WMAC_TXTIMEOUT_8822B */
-
-#define BIT_SHIFT_WMAC_TXTIMEOUT_8822B 0
-#define BIT_MASK_WMAC_TXTIMEOUT_8822B 0xff
-#define BIT_WMAC_TXTIMEOUT_8822B(x)                                            \
-	(((x) & BIT_MASK_WMAC_TXTIMEOUT_8822B)                                 \
-	 << BIT_SHIFT_WMAC_TXTIMEOUT_8822B)
-#define BIT_GET_WMAC_TXTIMEOUT_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_WMAC_TXTIMEOUT_8822B) &                             \
-	 BIT_MASK_WMAC_TXTIMEOUT_8822B)
-
-/* 2 REG_STMP_THSD_8822B */
-
-#define BIT_SHIFT_STMP_THSD_8822B 0
-#define BIT_MASK_STMP_THSD_8822B 0xff
-#define BIT_STMP_THSD_8822B(x)                                                 \
-	(((x) & BIT_MASK_STMP_THSD_8822B) << BIT_SHIFT_STMP_THSD_8822B)
-#define BIT_GET_STMP_THSD_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_STMP_THSD_8822B) & BIT_MASK_STMP_THSD_8822B)
-
-/* 2 REG_MAC_SPEC_SIFS_8822B (SPECIFICATION SIFS REGISTER) */
-
-#define BIT_SHIFT_SPEC_SIFS_OFDM_8822B 8
-#define BIT_MASK_SPEC_SIFS_OFDM_8822B 0xff
-#define BIT_SPEC_SIFS_OFDM_8822B(x)                                            \
-	(((x) & BIT_MASK_SPEC_SIFS_OFDM_8822B)                                 \
-	 << BIT_SHIFT_SPEC_SIFS_OFDM_8822B)
-#define BIT_GET_SPEC_SIFS_OFDM_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_SPEC_SIFS_OFDM_8822B) &                             \
-	 BIT_MASK_SPEC_SIFS_OFDM_8822B)
-
-#define BIT_SHIFT_SPEC_SIFS_CCK_8822B 0
-#define BIT_MASK_SPEC_SIFS_CCK_8822B 0xff
-#define BIT_SPEC_SIFS_CCK_8822B(x)                                             \
-	(((x) & BIT_MASK_SPEC_SIFS_CCK_8822B) << BIT_SHIFT_SPEC_SIFS_CCK_8822B)
-#define BIT_GET_SPEC_SIFS_CCK_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_SPEC_SIFS_CCK_8822B) & BIT_MASK_SPEC_SIFS_CCK_8822B)
-
-/* 2 REG_USTIME_EDCA_8822B (US TIME TUNING FOR EDCA REGISTER) */
-
-#define BIT_SHIFT_USTIME_EDCA_V1_8822B 0
-#define BIT_MASK_USTIME_EDCA_V1_8822B 0x1ff
-#define BIT_USTIME_EDCA_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_USTIME_EDCA_V1_8822B)                                 \
-	 << BIT_SHIFT_USTIME_EDCA_V1_8822B)
-#define BIT_GET_USTIME_EDCA_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_USTIME_EDCA_V1_8822B) &                             \
-	 BIT_MASK_USTIME_EDCA_V1_8822B)
-
-/* 2 REG_RESP_SIFS_OFDM_8822B (RESPONSE SIFS FOR OFDM REGISTER) */
-
-#define BIT_SHIFT_SIFS_R2T_OFDM_8822B 8
-#define BIT_MASK_SIFS_R2T_OFDM_8822B 0xff
-#define BIT_SIFS_R2T_OFDM_8822B(x)                                             \
-	(((x) & BIT_MASK_SIFS_R2T_OFDM_8822B) << BIT_SHIFT_SIFS_R2T_OFDM_8822B)
-#define BIT_GET_SIFS_R2T_OFDM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_SIFS_R2T_OFDM_8822B) & BIT_MASK_SIFS_R2T_OFDM_8822B)
-
-#define BIT_SHIFT_SIFS_T2T_OFDM_8822B 0
-#define BIT_MASK_SIFS_T2T_OFDM_8822B 0xff
-#define BIT_SIFS_T2T_OFDM_8822B(x)                                             \
-	(((x) & BIT_MASK_SIFS_T2T_OFDM_8822B) << BIT_SHIFT_SIFS_T2T_OFDM_8822B)
-#define BIT_GET_SIFS_T2T_OFDM_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_SIFS_T2T_OFDM_8822B) & BIT_MASK_SIFS_T2T_OFDM_8822B)
-
-/* 2 REG_RESP_SIFS_CCK_8822B (RESPONSE SIFS FOR CCK REGISTER) */
-
-#define BIT_SHIFT_SIFS_R2T_CCK_8822B 8
-#define BIT_MASK_SIFS_R2T_CCK_8822B 0xff
-#define BIT_SIFS_R2T_CCK_8822B(x)                                              \
-	(((x) & BIT_MASK_SIFS_R2T_CCK_8822B) << BIT_SHIFT_SIFS_R2T_CCK_8822B)
-#define BIT_GET_SIFS_R2T_CCK_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_SIFS_R2T_CCK_8822B) & BIT_MASK_SIFS_R2T_CCK_8822B)
-
-#define BIT_SHIFT_SIFS_T2T_CCK_8822B 0
-#define BIT_MASK_SIFS_T2T_CCK_8822B 0xff
-#define BIT_SIFS_T2T_CCK_8822B(x)                                              \
-	(((x) & BIT_MASK_SIFS_T2T_CCK_8822B) << BIT_SHIFT_SIFS_T2T_CCK_8822B)
-#define BIT_GET_SIFS_T2T_CCK_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_SIFS_T2T_CCK_8822B) & BIT_MASK_SIFS_T2T_CCK_8822B)
-
-/* 2 REG_EIFS_8822B (EIFS REGISTER) */
-
-#define BIT_SHIFT_EIFS_8822B 0
-#define BIT_MASK_EIFS_8822B 0xffff
-#define BIT_EIFS_8822B(x) (((x) & BIT_MASK_EIFS_8822B) << BIT_SHIFT_EIFS_8822B)
-#define BIT_GET_EIFS_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_EIFS_8822B) & BIT_MASK_EIFS_8822B)
-
-/* 2 REG_CTS2TO_8822B (CTS2 TIMEOUT REGISTER) */
-
-#define BIT_SHIFT_CTS2TO_8822B 0
-#define BIT_MASK_CTS2TO_8822B 0xff
-#define BIT_CTS2TO_8822B(x)                                                    \
-	(((x) & BIT_MASK_CTS2TO_8822B) << BIT_SHIFT_CTS2TO_8822B)
-#define BIT_GET_CTS2TO_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_CTS2TO_8822B) & BIT_MASK_CTS2TO_8822B)
-
-/* 2 REG_ACKTO_8822B (ACK TIMEOUT REGISTER) */
-
-#define BIT_SHIFT_ACKTO_8822B 0
-#define BIT_MASK_ACKTO_8822B 0xff
-#define BIT_ACKTO_8822B(x)                                                     \
-	(((x) & BIT_MASK_ACKTO_8822B) << BIT_SHIFT_ACKTO_8822B)
-#define BIT_GET_ACKTO_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_ACKTO_8822B) & BIT_MASK_ACKTO_8822B)
-
-/* 2 REG_NAV_CTRL_8822B (NAV CONTROL REGISTER) */
-
-#define BIT_SHIFT_NAV_UPPER_8822B 16
-#define BIT_MASK_NAV_UPPER_8822B 0xff
-#define BIT_NAV_UPPER_8822B(x)                                                 \
-	(((x) & BIT_MASK_NAV_UPPER_8822B) << BIT_SHIFT_NAV_UPPER_8822B)
-#define BIT_GET_NAV_UPPER_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_NAV_UPPER_8822B) & BIT_MASK_NAV_UPPER_8822B)
-
-#define BIT_SHIFT_RXMYRTS_NAV_8822B 8
-#define BIT_MASK_RXMYRTS_NAV_8822B 0xf
-#define BIT_RXMYRTS_NAV_8822B(x)                                               \
-	(((x) & BIT_MASK_RXMYRTS_NAV_8822B) << BIT_SHIFT_RXMYRTS_NAV_8822B)
-#define BIT_GET_RXMYRTS_NAV_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_RXMYRTS_NAV_8822B) & BIT_MASK_RXMYRTS_NAV_8822B)
-
-#define BIT_SHIFT_RTSRST_8822B 0
-#define BIT_MASK_RTSRST_8822B 0xff
-#define BIT_RTSRST_8822B(x)                                                    \
-	(((x) & BIT_MASK_RTSRST_8822B) << BIT_SHIFT_RTSRST_8822B)
-#define BIT_GET_RTSRST_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_RTSRST_8822B) & BIT_MASK_RTSRST_8822B)
-
-/* 2 REG_BACAMCMD_8822B (BLOCK ACK CAM COMMAND REGISTER) */
-#define BIT_BACAM_POLL_8822B BIT(31)
-#define BIT_BACAM_RST_8822B BIT(17)
-#define BIT_BACAM_RW_8822B BIT(16)
-
-#define BIT_SHIFT_TXSBM_8822B 14
-#define BIT_MASK_TXSBM_8822B 0x3
-#define BIT_TXSBM_8822B(x)                                                     \
-	(((x) & BIT_MASK_TXSBM_8822B) << BIT_SHIFT_TXSBM_8822B)
-#define BIT_GET_TXSBM_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_TXSBM_8822B) & BIT_MASK_TXSBM_8822B)
-
-#define BIT_SHIFT_BACAM_ADDR_8822B 0
-#define BIT_MASK_BACAM_ADDR_8822B 0x3f
-#define BIT_BACAM_ADDR_8822B(x)                                                \
-	(((x) & BIT_MASK_BACAM_ADDR_8822B) << BIT_SHIFT_BACAM_ADDR_8822B)
-#define BIT_GET_BACAM_ADDR_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_BACAM_ADDR_8822B) & BIT_MASK_BACAM_ADDR_8822B)
-
-/* 2 REG_BACAMCONTENT_8822B (BLOCK ACK CAM CONTENT REGISTER) */
-
-#define BIT_SHIFT_BA_CONTENT_H_8822B (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_BA_CONTENT_H_8822B 0xffffffffL
-#define BIT_BA_CONTENT_H_8822B(x)                                              \
-	(((x) & BIT_MASK_BA_CONTENT_H_8822B) << BIT_SHIFT_BA_CONTENT_H_8822B)
-#define BIT_GET_BA_CONTENT_H_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BA_CONTENT_H_8822B) & BIT_MASK_BA_CONTENT_H_8822B)
-
-#define BIT_SHIFT_BA_CONTENT_L_8822B 0
-#define BIT_MASK_BA_CONTENT_L_8822B 0xffffffffL
-#define BIT_BA_CONTENT_L_8822B(x)                                              \
-	(((x) & BIT_MASK_BA_CONTENT_L_8822B) << BIT_SHIFT_BA_CONTENT_L_8822B)
-#define BIT_GET_BA_CONTENT_L_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BA_CONTENT_L_8822B) & BIT_MASK_BA_CONTENT_L_8822B)
-
-/* 2 REG_WMAC_BITMAP_CTL_8822B */
-#define BIT_BITMAP_VO_8822B BIT(7)
-#define BIT_BITMAP_VI_8822B BIT(6)
-#define BIT_BITMAP_BE_8822B BIT(5)
-#define BIT_BITMAP_BK_8822B BIT(4)
-
-#define BIT_SHIFT_BITMAP_CONDITION_8822B 2
-#define BIT_MASK_BITMAP_CONDITION_8822B 0x3
-#define BIT_BITMAP_CONDITION_8822B(x)                                          \
-	(((x) & BIT_MASK_BITMAP_CONDITION_8822B)                               \
-	 << BIT_SHIFT_BITMAP_CONDITION_8822B)
-#define BIT_GET_BITMAP_CONDITION_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BITMAP_CONDITION_8822B) &                           \
-	 BIT_MASK_BITMAP_CONDITION_8822B)
-
-#define BIT_BITMAP_SSNBK_COUNTER_CLR_8822B BIT(1)
-#define BIT_BITMAP_FORCE_8822B BIT(0)
-
-/* 2 REG_TX_RX_8822B STATUS */
-
-#define BIT_SHIFT_RXPKT_TYPE_8822B 2
-#define BIT_MASK_RXPKT_TYPE_8822B 0x3f
-#define BIT_RXPKT_TYPE_8822B(x)                                                \
-	(((x) & BIT_MASK_RXPKT_TYPE_8822B) << BIT_SHIFT_RXPKT_TYPE_8822B)
-#define BIT_GET_RXPKT_TYPE_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_RXPKT_TYPE_8822B) & BIT_MASK_RXPKT_TYPE_8822B)
-
-#define BIT_TXACT_IND_8822B BIT(1)
-#define BIT_RXACT_IND_8822B BIT(0)
-
-/* 2 REG_WMAC_BACAM_RPMEN_8822B */
-
-#define BIT_SHIFT_BITMAP_SSNBK_COUNTER_8822B 2
-#define BIT_MASK_BITMAP_SSNBK_COUNTER_8822B 0x3f
-#define BIT_BITMAP_SSNBK_COUNTER_8822B(x)                                      \
-	(((x) & BIT_MASK_BITMAP_SSNBK_COUNTER_8822B)                           \
-	 << BIT_SHIFT_BITMAP_SSNBK_COUNTER_8822B)
-#define BIT_GET_BITMAP_SSNBK_COUNTER_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_BITMAP_SSNBK_COUNTER_8822B) &                       \
-	 BIT_MASK_BITMAP_SSNBK_COUNTER_8822B)
-
-#define BIT_BITMAP_EN_8822B BIT(1)
-#define BIT_WMAC_BACAM_RPMEN_8822B BIT(0)
-
-/* 2 REG_LBDLY_8822B (LOOPBACK DELAY REGISTER) */
-
-#define BIT_SHIFT_LBDLY_8822B 0
-#define BIT_MASK_LBDLY_8822B 0x1f
-#define BIT_LBDLY_8822B(x)                                                     \
-	(((x) & BIT_MASK_LBDLY_8822B) << BIT_SHIFT_LBDLY_8822B)
-#define BIT_GET_LBDLY_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_LBDLY_8822B) & BIT_MASK_LBDLY_8822B)
-
-/* 2 REG_RXERR_RPT_8822B (RX ERROR REPORT REGISTER) */
-
-#define BIT_SHIFT_RXERR_RPT_SEL_V1_3_0_8822B 28
-#define BIT_MASK_RXERR_RPT_SEL_V1_3_0_8822B 0xf
-#define BIT_RXERR_RPT_SEL_V1_3_0_8822B(x)                                      \
-	(((x) & BIT_MASK_RXERR_RPT_SEL_V1_3_0_8822B)                           \
-	 << BIT_SHIFT_RXERR_RPT_SEL_V1_3_0_8822B)
-#define BIT_GET_RXERR_RPT_SEL_V1_3_0_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_RXERR_RPT_SEL_V1_3_0_8822B) &                       \
-	 BIT_MASK_RXERR_RPT_SEL_V1_3_0_8822B)
-
-#define BIT_RXERR_RPT_RST_8822B BIT(27)
-#define BIT_RXERR_RPT_SEL_V1_4_8822B BIT(26)
-#define BIT_W1S_8822B BIT(23)
-#define BIT_UD_SELECT_BSSID_8822B BIT(22)
-
-#define BIT_SHIFT_UD_SUB_TYPE_8822B 18
-#define BIT_MASK_UD_SUB_TYPE_8822B 0xf
-#define BIT_UD_SUB_TYPE_8822B(x)                                               \
-	(((x) & BIT_MASK_UD_SUB_TYPE_8822B) << BIT_SHIFT_UD_SUB_TYPE_8822B)
-#define BIT_GET_UD_SUB_TYPE_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_UD_SUB_TYPE_8822B) & BIT_MASK_UD_SUB_TYPE_8822B)
-
-#define BIT_SHIFT_UD_TYPE_8822B 16
-#define BIT_MASK_UD_TYPE_8822B 0x3
-#define BIT_UD_TYPE_8822B(x)                                                   \
-	(((x) & BIT_MASK_UD_TYPE_8822B) << BIT_SHIFT_UD_TYPE_8822B)
-#define BIT_GET_UD_TYPE_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_UD_TYPE_8822B) & BIT_MASK_UD_TYPE_8822B)
-
-#define BIT_SHIFT_RPT_COUNTER_8822B 0
-#define BIT_MASK_RPT_COUNTER_8822B 0xffff
-#define BIT_RPT_COUNTER_8822B(x)                                               \
-	(((x) & BIT_MASK_RPT_COUNTER_8822B) << BIT_SHIFT_RPT_COUNTER_8822B)
-#define BIT_GET_RPT_COUNTER_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_RPT_COUNTER_8822B) & BIT_MASK_RPT_COUNTER_8822B)
-
-/* 2 REG_WMAC_TRXPTCL_CTL_8822B (WMAC TX/RX PROTOCOL CONTROL REGISTER) */
-
-#define BIT_SHIFT_ACKBA_TYPSEL_8822B (60 & CPU_OPT_WIDTH)
-#define BIT_MASK_ACKBA_TYPSEL_8822B 0xf
-#define BIT_ACKBA_TYPSEL_8822B(x)                                              \
-	(((x) & BIT_MASK_ACKBA_TYPSEL_8822B) << BIT_SHIFT_ACKBA_TYPSEL_8822B)
-#define BIT_GET_ACKBA_TYPSEL_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_ACKBA_TYPSEL_8822B) & BIT_MASK_ACKBA_TYPSEL_8822B)
-
-#define BIT_SHIFT_ACKBA_ACKPCHK_8822B (56 & CPU_OPT_WIDTH)
-#define BIT_MASK_ACKBA_ACKPCHK_8822B 0xf
-#define BIT_ACKBA_ACKPCHK_8822B(x)                                             \
-	(((x) & BIT_MASK_ACKBA_ACKPCHK_8822B) << BIT_SHIFT_ACKBA_ACKPCHK_8822B)
-#define BIT_GET_ACKBA_ACKPCHK_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_ACKBA_ACKPCHK_8822B) & BIT_MASK_ACKBA_ACKPCHK_8822B)
-
-#define BIT_SHIFT_ACKBAR_TYPESEL_8822B (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_ACKBAR_TYPESEL_8822B 0xff
-#define BIT_ACKBAR_TYPESEL_8822B(x)                                            \
-	(((x) & BIT_MASK_ACKBAR_TYPESEL_8822B)                                 \
-	 << BIT_SHIFT_ACKBAR_TYPESEL_8822B)
-#define BIT_GET_ACKBAR_TYPESEL_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_ACKBAR_TYPESEL_8822B) &                             \
-	 BIT_MASK_ACKBAR_TYPESEL_8822B)
-
-#define BIT_SHIFT_ACKBAR_ACKPCHK_8822B (44 & CPU_OPT_WIDTH)
-#define BIT_MASK_ACKBAR_ACKPCHK_8822B 0xf
-#define BIT_ACKBAR_ACKPCHK_8822B(x)                                            \
-	(((x) & BIT_MASK_ACKBAR_ACKPCHK_8822B)                                 \
-	 << BIT_SHIFT_ACKBAR_ACKPCHK_8822B)
-#define BIT_GET_ACKBAR_ACKPCHK_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_ACKBAR_ACKPCHK_8822B) &                             \
-	 BIT_MASK_ACKBAR_ACKPCHK_8822B)
-
-#define BIT_RXBA_IGNOREA2_8822B BIT(42)
-#define BIT_EN_SAVE_ALL_TXOPADDR_8822B BIT(41)
-#define BIT_EN_TXCTS_TO_TXOPOWNER_INRXNAV_8822B BIT(40)
-#define BIT_DIS_TXBA_AMPDUFCSERR_8822B BIT(39)
-#define BIT_DIS_TXBA_RXBARINFULL_8822B BIT(38)
-#define BIT_DIS_TXCFE_INFULL_8822B BIT(37)
-#define BIT_DIS_TXCTS_INFULL_8822B BIT(36)
-#define BIT_EN_TXACKBA_IN_TX_RDG_8822B BIT(35)
-#define BIT_EN_TXACKBA_IN_TXOP_8822B BIT(34)
-#define BIT_EN_TXCTS_IN_RXNAV_8822B BIT(33)
-#define BIT_EN_TXCTS_INTXOP_8822B BIT(32)
-#define BIT_BLK_EDCA_BBSLP_8822B BIT(31)
-#define BIT_BLK_EDCA_BBSBY_8822B BIT(30)
-#define BIT_ACKTO_BLOCK_SCH_EN_8822B BIT(27)
-#define BIT_EIFS_BLOCK_SCH_EN_8822B BIT(26)
-#define BIT_PLCPCHK_RST_EIFS_8822B BIT(25)
-#define BIT_CCA_RST_EIFS_8822B BIT(24)
-#define BIT_DIS_UPD_MYRXPKTNAV_8822B BIT(23)
-#define BIT_EARLY_TXBA_8822B BIT(22)
-
-#define BIT_SHIFT_RESP_CHNBUSY_8822B 20
-#define BIT_MASK_RESP_CHNBUSY_8822B 0x3
-#define BIT_RESP_CHNBUSY_8822B(x)                                              \
-	(((x) & BIT_MASK_RESP_CHNBUSY_8822B) << BIT_SHIFT_RESP_CHNBUSY_8822B)
-#define BIT_GET_RESP_CHNBUSY_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_RESP_CHNBUSY_8822B) & BIT_MASK_RESP_CHNBUSY_8822B)
-
-#define BIT_RESP_DCTS_EN_8822B BIT(19)
-#define BIT_RESP_DCFE_EN_8822B BIT(18)
-#define BIT_RESP_SPLCPEN_8822B BIT(17)
-#define BIT_RESP_SGIEN_8822B BIT(16)
-#define BIT_RESP_LDPC_EN_8822B BIT(15)
-#define BIT_DIS_RESP_ACKINCCA_8822B BIT(14)
-#define BIT_DIS_RESP_CTSINCCA_8822B BIT(13)
-
-#define BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER_8822B 10
-#define BIT_MASK_R_WMAC_SECOND_CCA_TIMER_8822B 0x7
-#define BIT_R_WMAC_SECOND_CCA_TIMER_8822B(x)                                   \
-	(((x) & BIT_MASK_R_WMAC_SECOND_CCA_TIMER_8822B)                        \
-	 << BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER_8822B)
-#define BIT_GET_R_WMAC_SECOND_CCA_TIMER_8822B(x)                               \
-	(((x) >> BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER_8822B) &                    \
-	 BIT_MASK_R_WMAC_SECOND_CCA_TIMER_8822B)
-
-#define BIT_SHIFT_RFMOD_8822B 7
-#define BIT_MASK_RFMOD_8822B 0x3
-#define BIT_RFMOD_8822B(x)                                                     \
-	(((x) & BIT_MASK_RFMOD_8822B) << BIT_SHIFT_RFMOD_8822B)
-#define BIT_GET_RFMOD_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_RFMOD_8822B) & BIT_MASK_RFMOD_8822B)
-
-#define BIT_SHIFT_RESP_CTS_DYNBW_SEL_8822B 5
-#define BIT_MASK_RESP_CTS_DYNBW_SEL_8822B 0x3
-#define BIT_RESP_CTS_DYNBW_SEL_8822B(x)                                        \
-	(((x) & BIT_MASK_RESP_CTS_DYNBW_SEL_8822B)                             \
-	 << BIT_SHIFT_RESP_CTS_DYNBW_SEL_8822B)
-#define BIT_GET_RESP_CTS_DYNBW_SEL_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_RESP_CTS_DYNBW_SEL_8822B) &                         \
-	 BIT_MASK_RESP_CTS_DYNBW_SEL_8822B)
-
-#define BIT_DLY_TX_WAIT_RXANTSEL_8822B BIT(4)
-#define BIT_TXRESP_BY_RXANTSEL_8822B BIT(3)
-
-#define BIT_SHIFT_ORIG_DCTS_CHK_8822B 0
-#define BIT_MASK_ORIG_DCTS_CHK_8822B 0x3
-#define BIT_ORIG_DCTS_CHK_8822B(x)                                             \
-	(((x) & BIT_MASK_ORIG_DCTS_CHK_8822B) << BIT_SHIFT_ORIG_DCTS_CHK_8822B)
-#define BIT_GET_ORIG_DCTS_CHK_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_ORIG_DCTS_CHK_8822B) & BIT_MASK_ORIG_DCTS_CHK_8822B)
-
-/* 2 REG_CAMCMD_8822B (CAM COMMAND REGISTER) */
-#define BIT_SECCAM_POLLING_8822B BIT(31)
-#define BIT_SECCAM_CLR_8822B BIT(30)
-#define BIT_MFBCAM_CLR_8822B BIT(29)
-#define BIT_SECCAM_WE_8822B BIT(16)
-
-#define BIT_SHIFT_SECCAM_ADDR_V2_8822B 0
-#define BIT_MASK_SECCAM_ADDR_V2_8822B 0x3ff
-#define BIT_SECCAM_ADDR_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_SECCAM_ADDR_V2_8822B)                                 \
-	 << BIT_SHIFT_SECCAM_ADDR_V2_8822B)
-#define BIT_GET_SECCAM_ADDR_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_SECCAM_ADDR_V2_8822B) &                             \
-	 BIT_MASK_SECCAM_ADDR_V2_8822B)
-
-/* 2 REG_CAMWRITE_8822B (CAM WRITE REGISTER) */
-
-#define BIT_SHIFT_CAMW_DATA_8822B 0
-#define BIT_MASK_CAMW_DATA_8822B 0xffffffffL
-#define BIT_CAMW_DATA_8822B(x)                                                 \
-	(((x) & BIT_MASK_CAMW_DATA_8822B) << BIT_SHIFT_CAMW_DATA_8822B)
-#define BIT_GET_CAMW_DATA_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_CAMW_DATA_8822B) & BIT_MASK_CAMW_DATA_8822B)
-
-/* 2 REG_CAMREAD_8822B (CAM READ REGISTER) */
-
-#define BIT_SHIFT_CAMR_DATA_8822B 0
-#define BIT_MASK_CAMR_DATA_8822B 0xffffffffL
-#define BIT_CAMR_DATA_8822B(x)                                                 \
-	(((x) & BIT_MASK_CAMR_DATA_8822B) << BIT_SHIFT_CAMR_DATA_8822B)
-#define BIT_GET_CAMR_DATA_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_CAMR_DATA_8822B) & BIT_MASK_CAMR_DATA_8822B)
-
-/* 2 REG_CAMDBG_8822B (CAM DEBUG REGISTER) */
-#define BIT_SECCAM_INFO_8822B BIT(31)
-#define BIT_SEC_KEYFOUND_8822B BIT(15)
-
-#define BIT_SHIFT_CAMDBG_SEC_TYPE_8822B 12
-#define BIT_MASK_CAMDBG_SEC_TYPE_8822B 0x7
-#define BIT_CAMDBG_SEC_TYPE_8822B(x)                                           \
-	(((x) & BIT_MASK_CAMDBG_SEC_TYPE_8822B)                                \
-	 << BIT_SHIFT_CAMDBG_SEC_TYPE_8822B)
-#define BIT_GET_CAMDBG_SEC_TYPE_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_CAMDBG_SEC_TYPE_8822B) &                            \
-	 BIT_MASK_CAMDBG_SEC_TYPE_8822B)
-
-#define BIT_CAMDBG_EXT_SECTYPE_8822B BIT(11)
-
-#define BIT_SHIFT_CAMDBG_MIC_KEY_IDX_8822B 5
-#define BIT_MASK_CAMDBG_MIC_KEY_IDX_8822B 0x1f
-#define BIT_CAMDBG_MIC_KEY_IDX_8822B(x)                                        \
-	(((x) & BIT_MASK_CAMDBG_MIC_KEY_IDX_8822B)                             \
-	 << BIT_SHIFT_CAMDBG_MIC_KEY_IDX_8822B)
-#define BIT_GET_CAMDBG_MIC_KEY_IDX_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_CAMDBG_MIC_KEY_IDX_8822B) &                         \
-	 BIT_MASK_CAMDBG_MIC_KEY_IDX_8822B)
-
-#define BIT_SHIFT_CAMDBG_SEC_KEY_IDX_8822B 0
-#define BIT_MASK_CAMDBG_SEC_KEY_IDX_8822B 0x1f
-#define BIT_CAMDBG_SEC_KEY_IDX_8822B(x)                                        \
-	(((x) & BIT_MASK_CAMDBG_SEC_KEY_IDX_8822B)                             \
-	 << BIT_SHIFT_CAMDBG_SEC_KEY_IDX_8822B)
-#define BIT_GET_CAMDBG_SEC_KEY_IDX_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_CAMDBG_SEC_KEY_IDX_8822B) &                         \
-	 BIT_MASK_CAMDBG_SEC_KEY_IDX_8822B)
-
-/* 2 REG_RXFILTER_ACTION_1_8822B */
-
-#define BIT_SHIFT_RXFILTER_ACTION_1_8822B 0
-#define BIT_MASK_RXFILTER_ACTION_1_8822B 0xff
-#define BIT_RXFILTER_ACTION_1_8822B(x)                                         \
-	(((x) & BIT_MASK_RXFILTER_ACTION_1_8822B)                              \
-	 << BIT_SHIFT_RXFILTER_ACTION_1_8822B)
-#define BIT_GET_RXFILTER_ACTION_1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_RXFILTER_ACTION_1_8822B) &                          \
-	 BIT_MASK_RXFILTER_ACTION_1_8822B)
-
-/* 2 REG_RXFILTER_CATEGORY_1_8822B */
-
-#define BIT_SHIFT_RXFILTER_CATEGORY_1_8822B 0
-#define BIT_MASK_RXFILTER_CATEGORY_1_8822B 0xff
-#define BIT_RXFILTER_CATEGORY_1_8822B(x)                                       \
-	(((x) & BIT_MASK_RXFILTER_CATEGORY_1_8822B)                            \
-	 << BIT_SHIFT_RXFILTER_CATEGORY_1_8822B)
-#define BIT_GET_RXFILTER_CATEGORY_1_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_RXFILTER_CATEGORY_1_8822B) &                        \
-	 BIT_MASK_RXFILTER_CATEGORY_1_8822B)
-
-/* 2 REG_SECCFG_8822B (SECURITY CONFIGURATION REGISTER) */
-#define BIT_DIS_GCLK_WAPI_8822B BIT(15)
-#define BIT_DIS_GCLK_AES_8822B BIT(14)
-#define BIT_DIS_GCLK_TKIP_8822B BIT(13)
-#define BIT_AES_SEL_QC_1_8822B BIT(12)
-#define BIT_AES_SEL_QC_0_8822B BIT(11)
-#define BIT_CHK_BMC_8822B BIT(9)
-#define BIT_CHK_KEYID_8822B BIT(8)
-#define BIT_RXBCUSEDK_8822B BIT(7)
-#define BIT_TXBCUSEDK_8822B BIT(6)
-#define BIT_NOSKMC_8822B BIT(5)
-#define BIT_SKBYA2_8822B BIT(4)
-#define BIT_RXDEC_8822B BIT(3)
-#define BIT_TXENC_8822B BIT(2)
-#define BIT_RXUHUSEDK_8822B BIT(1)
-#define BIT_TXUHUSEDK_8822B BIT(0)
-
-/* 2 REG_RXFILTER_ACTION_3_8822B */
-
-#define BIT_SHIFT_RXFILTER_ACTION_3_8822B 0
-#define BIT_MASK_RXFILTER_ACTION_3_8822B 0xff
-#define BIT_RXFILTER_ACTION_3_8822B(x)                                         \
-	(((x) & BIT_MASK_RXFILTER_ACTION_3_8822B)                              \
-	 << BIT_SHIFT_RXFILTER_ACTION_3_8822B)
-#define BIT_GET_RXFILTER_ACTION_3_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_RXFILTER_ACTION_3_8822B) &                          \
-	 BIT_MASK_RXFILTER_ACTION_3_8822B)
-
-/* 2 REG_RXFILTER_CATEGORY_3_8822B */
-
-#define BIT_SHIFT_RXFILTER_CATEGORY_3_8822B 0
-#define BIT_MASK_RXFILTER_CATEGORY_3_8822B 0xff
-#define BIT_RXFILTER_CATEGORY_3_8822B(x)                                       \
-	(((x) & BIT_MASK_RXFILTER_CATEGORY_3_8822B)                            \
-	 << BIT_SHIFT_RXFILTER_CATEGORY_3_8822B)
-#define BIT_GET_RXFILTER_CATEGORY_3_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_RXFILTER_CATEGORY_3_8822B) &                        \
-	 BIT_MASK_RXFILTER_CATEGORY_3_8822B)
-
-/* 2 REG_RXFILTER_ACTION_2_8822B */
-
-#define BIT_SHIFT_RXFILTER_ACTION_2_8822B 0
-#define BIT_MASK_RXFILTER_ACTION_2_8822B 0xff
-#define BIT_RXFILTER_ACTION_2_8822B(x)                                         \
-	(((x) & BIT_MASK_RXFILTER_ACTION_2_8822B)                              \
-	 << BIT_SHIFT_RXFILTER_ACTION_2_8822B)
-#define BIT_GET_RXFILTER_ACTION_2_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_RXFILTER_ACTION_2_8822B) &                          \
-	 BIT_MASK_RXFILTER_ACTION_2_8822B)
-
-/* 2 REG_RXFILTER_CATEGORY_2_8822B */
-
-#define BIT_SHIFT_RXFILTER_CATEGORY_2_8822B 0
-#define BIT_MASK_RXFILTER_CATEGORY_2_8822B 0xff
-#define BIT_RXFILTER_CATEGORY_2_8822B(x)                                       \
-	(((x) & BIT_MASK_RXFILTER_CATEGORY_2_8822B)                            \
-	 << BIT_SHIFT_RXFILTER_CATEGORY_2_8822B)
-#define BIT_GET_RXFILTER_CATEGORY_2_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_RXFILTER_CATEGORY_2_8822B) &                        \
-	 BIT_MASK_RXFILTER_CATEGORY_2_8822B)
-
-/* 2 REG_RXFLTMAP4_8822B (RX FILTER MAP GROUP 4) */
-#define BIT_CTRLFLT15EN_FW_8822B BIT(15)
-#define BIT_CTRLFLT14EN_FW_8822B BIT(14)
-#define BIT_CTRLFLT13EN_FW_8822B BIT(13)
-#define BIT_CTRLFLT12EN_FW_8822B BIT(12)
-#define BIT_CTRLFLT11EN_FW_8822B BIT(11)
-#define BIT_CTRLFLT10EN_FW_8822B BIT(10)
-#define BIT_CTRLFLT9EN_FW_8822B BIT(9)
-#define BIT_CTRLFLT8EN_FW_8822B BIT(8)
-#define BIT_CTRLFLT7EN_FW_8822B BIT(7)
-#define BIT_CTRLFLT6EN_FW_8822B BIT(6)
-#define BIT_CTRLFLT5EN_FW_8822B BIT(5)
-#define BIT_CTRLFLT4EN_FW_8822B BIT(4)
-#define BIT_CTRLFLT3EN_FW_8822B BIT(3)
-#define BIT_CTRLFLT2EN_FW_8822B BIT(2)
-#define BIT_CTRLFLT1EN_FW_8822B BIT(1)
-#define BIT_CTRLFLT0EN_FW_8822B BIT(0)
-
-/* 2 REG_RXFLTMAP3_8822B (RX FILTER MAP GROUP 3) */
-#define BIT_MGTFLT15EN_FW_8822B BIT(15)
-#define BIT_MGTFLT14EN_FW_8822B BIT(14)
-#define BIT_MGTFLT13EN_FW_8822B BIT(13)
-#define BIT_MGTFLT12EN_FW_8822B BIT(12)
-#define BIT_MGTFLT11EN_FW_8822B BIT(11)
-#define BIT_MGTFLT10EN_FW_8822B BIT(10)
-#define BIT_MGTFLT9EN_FW_8822B BIT(9)
-#define BIT_MGTFLT8EN_FW_8822B BIT(8)
-#define BIT_MGTFLT7EN_FW_8822B BIT(7)
-#define BIT_MGTFLT6EN_FW_8822B BIT(6)
-#define BIT_MGTFLT5EN_FW_8822B BIT(5)
-#define BIT_MGTFLT4EN_FW_8822B BIT(4)
-#define BIT_MGTFLT3EN_FW_8822B BIT(3)
-#define BIT_MGTFLT2EN_FW_8822B BIT(2)
-#define BIT_MGTFLT1EN_FW_8822B BIT(1)
-#define BIT_MGTFLT0EN_FW_8822B BIT(0)
-
-/* 2 REG_RXFLTMAP6_8822B (RX FILTER MAP GROUP 3) */
-#define BIT_ACTIONFLT15EN_FW_8822B BIT(15)
-#define BIT_ACTIONFLT14EN_FW_8822B BIT(14)
-#define BIT_ACTIONFLT13EN_FW_8822B BIT(13)
-#define BIT_ACTIONFLT12EN_FW_8822B BIT(12)
-#define BIT_ACTIONFLT11EN_FW_8822B BIT(11)
-#define BIT_ACTIONFLT10EN_FW_8822B BIT(10)
-#define BIT_ACTIONFLT9EN_FW_8822B BIT(9)
-#define BIT_ACTIONFLT8EN_FW_8822B BIT(8)
-#define BIT_ACTIONFLT7EN_FW_8822B BIT(7)
-#define BIT_ACTIONFLT6EN_FW_8822B BIT(6)
-#define BIT_ACTIONFLT5EN_FW_8822B BIT(5)
-#define BIT_ACTIONFLT4EN_FW_8822B BIT(4)
-#define BIT_ACTIONFLT3EN_FW_8822B BIT(3)
-#define BIT_ACTIONFLT2EN_FW_8822B BIT(2)
-#define BIT_ACTIONFLT1EN_FW_8822B BIT(1)
-#define BIT_ACTIONFLT0EN_FW_8822B BIT(0)
-
-/* 2 REG_RXFLTMAP5_8822B (RX FILTER MAP GROUP 3) */
-#define BIT_DATAFLT15EN_FW_8822B BIT(15)
-#define BIT_DATAFLT14EN_FW_8822B BIT(14)
-#define BIT_DATAFLT13EN_FW_8822B BIT(13)
-#define BIT_DATAFLT12EN_FW_8822B BIT(12)
-#define BIT_DATAFLT11EN_FW_8822B BIT(11)
-#define BIT_DATAFLT10EN_FW_8822B BIT(10)
-#define BIT_DATAFLT9EN_FW_8822B BIT(9)
-#define BIT_DATAFLT8EN_FW_8822B BIT(8)
-#define BIT_DATAFLT7EN_FW_8822B BIT(7)
-#define BIT_DATAFLT6EN_FW_8822B BIT(6)
-#define BIT_DATAFLT5EN_FW_8822B BIT(5)
-#define BIT_DATAFLT4EN_FW_8822B BIT(4)
-#define BIT_DATAFLT3EN_FW_8822B BIT(3)
-#define BIT_DATAFLT2EN_FW_8822B BIT(2)
-#define BIT_DATAFLT1EN_FW_8822B BIT(1)
-#define BIT_DATAFLT0EN_FW_8822B BIT(0)
-
-/* 2 REG_WMMPS_UAPSD_TID_8822B (WMM POWER SAVE UAPSD TID REGISTER) */
-#define BIT_WMMPS_UAPSD_TID7_8822B BIT(7)
-#define BIT_WMMPS_UAPSD_TID6_8822B BIT(6)
-#define BIT_WMMPS_UAPSD_TID5_8822B BIT(5)
-#define BIT_WMMPS_UAPSD_TID4_8822B BIT(4)
-#define BIT_WMMPS_UAPSD_TID3_8822B BIT(3)
-#define BIT_WMMPS_UAPSD_TID2_8822B BIT(2)
-#define BIT_WMMPS_UAPSD_TID1_8822B BIT(1)
-#define BIT_WMMPS_UAPSD_TID0_8822B BIT(0)
-
-/* 2 REG_PS_RX_INFO_8822B (POWER SAVE RX INFORMATION REGISTER) */
-
-#define BIT_SHIFT_PORTSEL__PS_RX_INFO_8822B 5
-#define BIT_MASK_PORTSEL__PS_RX_INFO_8822B 0x7
-#define BIT_PORTSEL__PS_RX_INFO_8822B(x)                                       \
-	(((x) & BIT_MASK_PORTSEL__PS_RX_INFO_8822B)                            \
-	 << BIT_SHIFT_PORTSEL__PS_RX_INFO_8822B)
-#define BIT_GET_PORTSEL__PS_RX_INFO_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_PORTSEL__PS_RX_INFO_8822B) &                        \
-	 BIT_MASK_PORTSEL__PS_RX_INFO_8822B)
-
-#define BIT_RXCTRLIN0_8822B BIT(4)
-#define BIT_RXMGTIN0_8822B BIT(3)
-#define BIT_RXDATAIN2_8822B BIT(2)
-#define BIT_RXDATAIN1_8822B BIT(1)
-#define BIT_RXDATAIN0_8822B BIT(0)
-
-/* 2 REG_NAN_RX_TSF_FILTER_8822B(NAN_RX_TSF_ADDRESS_FILTER) */
-#define BIT_CHK_TSF_TA_8822B BIT(2)
-#define BIT_CHK_TSF_CBSSID_8822B BIT(1)
-#define BIT_CHK_TSF_EN_8822B BIT(0)
-
-/* 2 REG_WOW_CTRL_8822B (WAKE ON WLAN CONTROL REGISTER) */
-
-#define BIT_SHIFT_PSF_BSSIDSEL_B2B1_8822B 6
-#define BIT_MASK_PSF_BSSIDSEL_B2B1_8822B 0x3
-#define BIT_PSF_BSSIDSEL_B2B1_8822B(x)                                         \
-	(((x) & BIT_MASK_PSF_BSSIDSEL_B2B1_8822B)                              \
-	 << BIT_SHIFT_PSF_BSSIDSEL_B2B1_8822B)
-#define BIT_GET_PSF_BSSIDSEL_B2B1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_PSF_BSSIDSEL_B2B1_8822B) &                          \
-	 BIT_MASK_PSF_BSSIDSEL_B2B1_8822B)
-
-#define BIT_WOWHCI_8822B BIT(5)
-#define BIT_PSF_BSSIDSEL_B0_8822B BIT(4)
-#define BIT_UWF_8822B BIT(3)
-#define BIT_MAGIC_8822B BIT(2)
-#define BIT_WOWEN_8822B BIT(1)
-#define BIT_FORCE_WAKEUP_8822B BIT(0)
-
-/* 2 REG_LPNAV_CTRL_8822B (LOW POWER NAV CONTROL REGISTER) */
-#define BIT_LPNAV_EN_8822B BIT(31)
-
-#define BIT_SHIFT_LPNAV_EARLY_8822B 16
-#define BIT_MASK_LPNAV_EARLY_8822B 0x7fff
-#define BIT_LPNAV_EARLY_8822B(x)                                               \
-	(((x) & BIT_MASK_LPNAV_EARLY_8822B) << BIT_SHIFT_LPNAV_EARLY_8822B)
-#define BIT_GET_LPNAV_EARLY_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_LPNAV_EARLY_8822B) & BIT_MASK_LPNAV_EARLY_8822B)
-
-#define BIT_SHIFT_LPNAV_TH_8822B 0
-#define BIT_MASK_LPNAV_TH_8822B 0xffff
-#define BIT_LPNAV_TH_8822B(x)                                                  \
-	(((x) & BIT_MASK_LPNAV_TH_8822B) << BIT_SHIFT_LPNAV_TH_8822B)
-#define BIT_GET_LPNAV_TH_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_LPNAV_TH_8822B) & BIT_MASK_LPNAV_TH_8822B)
-
-/* 2 REG_WKFMCAM_CMD_8822B (WAKEUP FRAME CAM COMMAND REGISTER) */
-#define BIT_WKFCAM_POLLING_V1_8822B BIT(31)
-#define BIT_WKFCAM_CLR_V1_8822B BIT(30)
-#define BIT_WKFCAM_WE_8822B BIT(16)
-
-#define BIT_SHIFT_WKFCAM_ADDR_V2_8822B 8
-#define BIT_MASK_WKFCAM_ADDR_V2_8822B 0xff
-#define BIT_WKFCAM_ADDR_V2_8822B(x)                                            \
-	(((x) & BIT_MASK_WKFCAM_ADDR_V2_8822B)                                 \
-	 << BIT_SHIFT_WKFCAM_ADDR_V2_8822B)
-#define BIT_GET_WKFCAM_ADDR_V2_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_WKFCAM_ADDR_V2_8822B) &                             \
-	 BIT_MASK_WKFCAM_ADDR_V2_8822B)
-
-#define BIT_SHIFT_WKFCAM_CAM_NUM_V1_8822B 0
-#define BIT_MASK_WKFCAM_CAM_NUM_V1_8822B 0xff
-#define BIT_WKFCAM_CAM_NUM_V1_8822B(x)                                         \
-	(((x) & BIT_MASK_WKFCAM_CAM_NUM_V1_8822B)                              \
-	 << BIT_SHIFT_WKFCAM_CAM_NUM_V1_8822B)
-#define BIT_GET_WKFCAM_CAM_NUM_V1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WKFCAM_CAM_NUM_V1_8822B) &                          \
-	 BIT_MASK_WKFCAM_CAM_NUM_V1_8822B)
-
-/* 2 REG_WKFMCAM_RWD_8822B (WAKEUP FRAME READ/WRITE DATA) */
-
-#define BIT_SHIFT_WKFMCAM_RWD_8822B 0
-#define BIT_MASK_WKFMCAM_RWD_8822B 0xffffffffL
-#define BIT_WKFMCAM_RWD_8822B(x)                                               \
-	(((x) & BIT_MASK_WKFMCAM_RWD_8822B) << BIT_SHIFT_WKFMCAM_RWD_8822B)
-#define BIT_GET_WKFMCAM_RWD_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_WKFMCAM_RWD_8822B) & BIT_MASK_WKFMCAM_RWD_8822B)
-
-/* 2 REG_RXFLTMAP1_8822B (RX FILTER MAP GROUP 1) */
-#define BIT_CTRLFLT15EN_8822B BIT(15)
-#define BIT_CTRLFLT14EN_8822B BIT(14)
-#define BIT_CTRLFLT13EN_8822B BIT(13)
-#define BIT_CTRLFLT12EN_8822B BIT(12)
-#define BIT_CTRLFLT11EN_8822B BIT(11)
-#define BIT_CTRLFLT10EN_8822B BIT(10)
-#define BIT_CTRLFLT9EN_8822B BIT(9)
-#define BIT_CTRLFLT8EN_8822B BIT(8)
-#define BIT_CTRLFLT7EN_8822B BIT(7)
-#define BIT_CTRLFLT6EN_8822B BIT(6)
-#define BIT_CTRLFLT5EN_8822B BIT(5)
-#define BIT_CTRLFLT4EN_8822B BIT(4)
-#define BIT_CTRLFLT3EN_8822B BIT(3)
-#define BIT_CTRLFLT2EN_8822B BIT(2)
-#define BIT_CTRLFLT1EN_8822B BIT(1)
-#define BIT_CTRLFLT0EN_8822B BIT(0)
-
-/* 2 REG_RXFLTMAP0_8822B (RX FILTER MAP GROUP 0) */
-#define BIT_MGTFLT15EN_8822B BIT(15)
-#define BIT_MGTFLT14EN_8822B BIT(14)
-#define BIT_MGTFLT13EN_8822B BIT(13)
-#define BIT_MGTFLT12EN_8822B BIT(12)
-#define BIT_MGTFLT11EN_8822B BIT(11)
-#define BIT_MGTFLT10EN_8822B BIT(10)
-#define BIT_MGTFLT9EN_8822B BIT(9)
-#define BIT_MGTFLT8EN_8822B BIT(8)
-#define BIT_MGTFLT7EN_8822B BIT(7)
-#define BIT_MGTFLT6EN_8822B BIT(6)
-#define BIT_MGTFLT5EN_8822B BIT(5)
-#define BIT_MGTFLT4EN_8822B BIT(4)
-#define BIT_MGTFLT3EN_8822B BIT(3)
-#define BIT_MGTFLT2EN_8822B BIT(2)
-#define BIT_MGTFLT1EN_8822B BIT(1)
-#define BIT_MGTFLT0EN_8822B BIT(0)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_RXFLTMAP_8822B (RX FILTER MAP GROUP 2) */
-#define BIT_DATAFLT15EN_8822B BIT(15)
-#define BIT_DATAFLT14EN_8822B BIT(14)
-#define BIT_DATAFLT13EN_8822B BIT(13)
-#define BIT_DATAFLT12EN_8822B BIT(12)
-#define BIT_DATAFLT11EN_8822B BIT(11)
-#define BIT_DATAFLT10EN_8822B BIT(10)
-#define BIT_DATAFLT9EN_8822B BIT(9)
-#define BIT_DATAFLT8EN_8822B BIT(8)
-#define BIT_DATAFLT7EN_8822B BIT(7)
-#define BIT_DATAFLT6EN_8822B BIT(6)
-#define BIT_DATAFLT5EN_8822B BIT(5)
-#define BIT_DATAFLT4EN_8822B BIT(4)
-#define BIT_DATAFLT3EN_8822B BIT(3)
-#define BIT_DATAFLT2EN_8822B BIT(2)
-#define BIT_DATAFLT1EN_8822B BIT(1)
-#define BIT_DATAFLT0EN_8822B BIT(0)
-
-/* 2 REG_BCN_PSR_RPT_8822B (BEACON PARSER REPORT REGISTER) */
-
-#define BIT_SHIFT_DTIM_CNT_8822B 24
-#define BIT_MASK_DTIM_CNT_8822B 0xff
-#define BIT_DTIM_CNT_8822B(x)                                                  \
-	(((x) & BIT_MASK_DTIM_CNT_8822B) << BIT_SHIFT_DTIM_CNT_8822B)
-#define BIT_GET_DTIM_CNT_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_DTIM_CNT_8822B) & BIT_MASK_DTIM_CNT_8822B)
-
-#define BIT_SHIFT_DTIM_PERIOD_8822B 16
-#define BIT_MASK_DTIM_PERIOD_8822B 0xff
-#define BIT_DTIM_PERIOD_8822B(x)                                               \
-	(((x) & BIT_MASK_DTIM_PERIOD_8822B) << BIT_SHIFT_DTIM_PERIOD_8822B)
-#define BIT_GET_DTIM_PERIOD_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD_8822B) & BIT_MASK_DTIM_PERIOD_8822B)
-
-#define BIT_DTIM_8822B BIT(15)
-#define BIT_TIM_8822B BIT(14)
-
-#define BIT_SHIFT_PS_AID_0_8822B 0
-#define BIT_MASK_PS_AID_0_8822B 0x7ff
-#define BIT_PS_AID_0_8822B(x)                                                  \
-	(((x) & BIT_MASK_PS_AID_0_8822B) << BIT_SHIFT_PS_AID_0_8822B)
-#define BIT_GET_PS_AID_0_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_PS_AID_0_8822B) & BIT_MASK_PS_AID_0_8822B)
-
-/* 2 REG_FLC_TRPC_8822B (TIMER OF FLC_RPC) */
-#define BIT_FLC_RPCT_V1_8822B BIT(7)
-#define BIT_MODE_8822B BIT(6)
-
-#define BIT_SHIFT_TRPCD_8822B 0
-#define BIT_MASK_TRPCD_8822B 0x3f
-#define BIT_TRPCD_8822B(x)                                                     \
-	(((x) & BIT_MASK_TRPCD_8822B) << BIT_SHIFT_TRPCD_8822B)
-#define BIT_GET_TRPCD_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_TRPCD_8822B) & BIT_MASK_TRPCD_8822B)
-
-/* 2 REG_FLC_PTS_8822B (PKT TYPE SELECTION OF FLC_RPC T) */
-#define BIT_CMF_8822B BIT(2)
-#define BIT_CCF_8822B BIT(1)
-#define BIT_CDF_8822B BIT(0)
-
-/* 2 REG_FLC_RPCT_8822B (FLC_RPC THRESHOLD) */
-
-#define BIT_SHIFT_FLC_RPCT_8822B 0
-#define BIT_MASK_FLC_RPCT_8822B 0xff
-#define BIT_FLC_RPCT_8822B(x)                                                  \
-	(((x) & BIT_MASK_FLC_RPCT_8822B) << BIT_SHIFT_FLC_RPCT_8822B)
-#define BIT_GET_FLC_RPCT_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_FLC_RPCT_8822B) & BIT_MASK_FLC_RPCT_8822B)
-
-/* 2 REG_FLC_RPC_8822B (FW LPS CONDITION -- RX PKT COUNTER) */
-
-#define BIT_SHIFT_FLC_RPC_8822B 0
-#define BIT_MASK_FLC_RPC_8822B 0xff
-#define BIT_FLC_RPC_8822B(x)                                                   \
-	(((x) & BIT_MASK_FLC_RPC_8822B) << BIT_SHIFT_FLC_RPC_8822B)
-#define BIT_GET_FLC_RPC_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_FLC_RPC_8822B) & BIT_MASK_FLC_RPC_8822B)
-
-/* 2 REG_RXPKTMON_CTRL_8822B */
-
-#define BIT_SHIFT_RXBKQPKT_SEQ_8822B 20
-#define BIT_MASK_RXBKQPKT_SEQ_8822B 0xf
-#define BIT_RXBKQPKT_SEQ_8822B(x)                                              \
-	(((x) & BIT_MASK_RXBKQPKT_SEQ_8822B) << BIT_SHIFT_RXBKQPKT_SEQ_8822B)
-#define BIT_GET_RXBKQPKT_SEQ_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_RXBKQPKT_SEQ_8822B) & BIT_MASK_RXBKQPKT_SEQ_8822B)
-
-#define BIT_SHIFT_RXBEQPKT_SEQ_8822B 16
-#define BIT_MASK_RXBEQPKT_SEQ_8822B 0xf
-#define BIT_RXBEQPKT_SEQ_8822B(x)                                              \
-	(((x) & BIT_MASK_RXBEQPKT_SEQ_8822B) << BIT_SHIFT_RXBEQPKT_SEQ_8822B)
-#define BIT_GET_RXBEQPKT_SEQ_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_RXBEQPKT_SEQ_8822B) & BIT_MASK_RXBEQPKT_SEQ_8822B)
-
-#define BIT_SHIFT_RXVIQPKT_SEQ_8822B 12
-#define BIT_MASK_RXVIQPKT_SEQ_8822B 0xf
-#define BIT_RXVIQPKT_SEQ_8822B(x)                                              \
-	(((x) & BIT_MASK_RXVIQPKT_SEQ_8822B) << BIT_SHIFT_RXVIQPKT_SEQ_8822B)
-#define BIT_GET_RXVIQPKT_SEQ_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_RXVIQPKT_SEQ_8822B) & BIT_MASK_RXVIQPKT_SEQ_8822B)
-
-#define BIT_SHIFT_RXVOQPKT_SEQ_8822B 8
-#define BIT_MASK_RXVOQPKT_SEQ_8822B 0xf
-#define BIT_RXVOQPKT_SEQ_8822B(x)                                              \
-	(((x) & BIT_MASK_RXVOQPKT_SEQ_8822B) << BIT_SHIFT_RXVOQPKT_SEQ_8822B)
-#define BIT_GET_RXVOQPKT_SEQ_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_RXVOQPKT_SEQ_8822B) & BIT_MASK_RXVOQPKT_SEQ_8822B)
-
-#define BIT_RXBKQPKT_ERR_8822B BIT(7)
-#define BIT_RXBEQPKT_ERR_8822B BIT(6)
-#define BIT_RXVIQPKT_ERR_8822B BIT(5)
-#define BIT_RXVOQPKT_ERR_8822B BIT(4)
-#define BIT_RXDMA_MON_EN_8822B BIT(2)
-#define BIT_RXPKT_MON_RST_8822B BIT(1)
-#define BIT_RXPKT_MON_EN_8822B BIT(0)
-
-/* 2 REG_STATE_MON_8822B */
-
-#define BIT_SHIFT_STATE_SEL_8822B 24
-#define BIT_MASK_STATE_SEL_8822B 0x1f
-#define BIT_STATE_SEL_8822B(x)                                                 \
-	(((x) & BIT_MASK_STATE_SEL_8822B) << BIT_SHIFT_STATE_SEL_8822B)
-#define BIT_GET_STATE_SEL_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_STATE_SEL_8822B) & BIT_MASK_STATE_SEL_8822B)
-
-#define BIT_SHIFT_STATE_INFO_8822B 8
-#define BIT_MASK_STATE_INFO_8822B 0xff
-#define BIT_STATE_INFO_8822B(x)                                                \
-	(((x) & BIT_MASK_STATE_INFO_8822B) << BIT_SHIFT_STATE_INFO_8822B)
-#define BIT_GET_STATE_INFO_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_STATE_INFO_8822B) & BIT_MASK_STATE_INFO_8822B)
-
-#define BIT_UPD_NXT_STATE_8822B BIT(7)
-
-#define BIT_SHIFT_CUR_STATE_8822B 0
-#define BIT_MASK_CUR_STATE_8822B 0x7f
-#define BIT_CUR_STATE_8822B(x)                                                 \
-	(((x) & BIT_MASK_CUR_STATE_8822B) << BIT_SHIFT_CUR_STATE_8822B)
-#define BIT_GET_CUR_STATE_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_CUR_STATE_8822B) & BIT_MASK_CUR_STATE_8822B)
-
-/* 2 REG_ERROR_MON_8822B */
-#define BIT_MACRX_ERR_1_8822B BIT(17)
-#define BIT_MACRX_ERR_0_8822B BIT(16)
-#define BIT_MACTX_ERR_3_8822B BIT(3)
-#define BIT_MACTX_ERR_2_8822B BIT(2)
-#define BIT_MACTX_ERR_1_8822B BIT(1)
-#define BIT_MACTX_ERR_0_8822B BIT(0)
-
-/* 2 REG_SEARCH_MACID_8822B */
-#define BIT_EN_TXRPTBUF_CLK_8822B BIT(31)
-
-#define BIT_SHIFT_INFO_INDEX_OFFSET_8822B 16
-#define BIT_MASK_INFO_INDEX_OFFSET_8822B 0x1fff
-#define BIT_INFO_INDEX_OFFSET_8822B(x)                                         \
-	(((x) & BIT_MASK_INFO_INDEX_OFFSET_8822B)                              \
-	 << BIT_SHIFT_INFO_INDEX_OFFSET_8822B)
-#define BIT_GET_INFO_INDEX_OFFSET_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_INFO_INDEX_OFFSET_8822B) &                          \
-	 BIT_MASK_INFO_INDEX_OFFSET_8822B)
-
-#define BIT_WMAC_SRCH_FIFOFULL_8822B BIT(15)
-#define BIT_DIS_INFOSRCH_8822B BIT(14)
-#define BIT_DISABLE_B0_8822B BIT(13)
-
-#define BIT_SHIFT_INFO_ADDR_OFFSET_8822B 0
-#define BIT_MASK_INFO_ADDR_OFFSET_8822B 0x1fff
-#define BIT_INFO_ADDR_OFFSET_8822B(x)                                          \
-	(((x) & BIT_MASK_INFO_ADDR_OFFSET_8822B)                               \
-	 << BIT_SHIFT_INFO_ADDR_OFFSET_8822B)
-#define BIT_GET_INFO_ADDR_OFFSET_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_INFO_ADDR_OFFSET_8822B) &                           \
-	 BIT_MASK_INFO_ADDR_OFFSET_8822B)
-
-/* 2 REG_BT_COEX_TABLE_8822B (BT-COEXISTENCE CONTROL REGISTER) */
-#define BIT_PRI_MASK_RX_RESP_8822B BIT(126)
-#define BIT_PRI_MASK_RXOFDM_8822B BIT(125)
-#define BIT_PRI_MASK_RXCCK_8822B BIT(124)
-
-#define BIT_SHIFT_PRI_MASK_TXAC_8822B (117 & CPU_OPT_WIDTH)
-#define BIT_MASK_PRI_MASK_TXAC_8822B 0x7f
-#define BIT_PRI_MASK_TXAC_8822B(x)                                             \
-	(((x) & BIT_MASK_PRI_MASK_TXAC_8822B) << BIT_SHIFT_PRI_MASK_TXAC_8822B)
-#define BIT_GET_PRI_MASK_TXAC_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PRI_MASK_TXAC_8822B) & BIT_MASK_PRI_MASK_TXAC_8822B)
-
-#define BIT_SHIFT_PRI_MASK_NAV_8822B (109 & CPU_OPT_WIDTH)
-#define BIT_MASK_PRI_MASK_NAV_8822B 0xff
-#define BIT_PRI_MASK_NAV_8822B(x)                                              \
-	(((x) & BIT_MASK_PRI_MASK_NAV_8822B) << BIT_SHIFT_PRI_MASK_NAV_8822B)
-#define BIT_GET_PRI_MASK_NAV_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_PRI_MASK_NAV_8822B) & BIT_MASK_PRI_MASK_NAV_8822B)
-
-#define BIT_PRI_MASK_CCK_8822B BIT(108)
-#define BIT_PRI_MASK_OFDM_8822B BIT(107)
-#define BIT_PRI_MASK_RTY_8822B BIT(106)
-
-#define BIT_SHIFT_PRI_MASK_NUM_8822B (102 & CPU_OPT_WIDTH)
-#define BIT_MASK_PRI_MASK_NUM_8822B 0xf
-#define BIT_PRI_MASK_NUM_8822B(x)                                              \
-	(((x) & BIT_MASK_PRI_MASK_NUM_8822B) << BIT_SHIFT_PRI_MASK_NUM_8822B)
-#define BIT_GET_PRI_MASK_NUM_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_PRI_MASK_NUM_8822B) & BIT_MASK_PRI_MASK_NUM_8822B)
-
-#define BIT_SHIFT_PRI_MASK_TYPE_8822B (98 & CPU_OPT_WIDTH)
-#define BIT_MASK_PRI_MASK_TYPE_8822B 0xf
-#define BIT_PRI_MASK_TYPE_8822B(x)                                             \
-	(((x) & BIT_MASK_PRI_MASK_TYPE_8822B) << BIT_SHIFT_PRI_MASK_TYPE_8822B)
-#define BIT_GET_PRI_MASK_TYPE_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PRI_MASK_TYPE_8822B) & BIT_MASK_PRI_MASK_TYPE_8822B)
-
-#define BIT_OOB_8822B BIT(97)
-#define BIT_ANT_SEL_8822B BIT(96)
-
-#define BIT_SHIFT_BREAK_TABLE_2_8822B (80 & CPU_OPT_WIDTH)
-#define BIT_MASK_BREAK_TABLE_2_8822B 0xffff
-#define BIT_BREAK_TABLE_2_8822B(x)                                             \
-	(((x) & BIT_MASK_BREAK_TABLE_2_8822B) << BIT_SHIFT_BREAK_TABLE_2_8822B)
-#define BIT_GET_BREAK_TABLE_2_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BREAK_TABLE_2_8822B) & BIT_MASK_BREAK_TABLE_2_8822B)
-
-#define BIT_SHIFT_BREAK_TABLE_1_8822B (64 & CPU_OPT_WIDTH)
-#define BIT_MASK_BREAK_TABLE_1_8822B 0xffff
-#define BIT_BREAK_TABLE_1_8822B(x)                                             \
-	(((x) & BIT_MASK_BREAK_TABLE_1_8822B) << BIT_SHIFT_BREAK_TABLE_1_8822B)
-#define BIT_GET_BREAK_TABLE_1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BREAK_TABLE_1_8822B) & BIT_MASK_BREAK_TABLE_1_8822B)
-
-#define BIT_SHIFT_COEX_TABLE_2_8822B (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_COEX_TABLE_2_8822B 0xffffffffL
-#define BIT_COEX_TABLE_2_8822B(x)                                              \
-	(((x) & BIT_MASK_COEX_TABLE_2_8822B) << BIT_SHIFT_COEX_TABLE_2_8822B)
-#define BIT_GET_COEX_TABLE_2_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_COEX_TABLE_2_8822B) & BIT_MASK_COEX_TABLE_2_8822B)
-
-#define BIT_SHIFT_COEX_TABLE_1_8822B 0
-#define BIT_MASK_COEX_TABLE_1_8822B 0xffffffffL
-#define BIT_COEX_TABLE_1_8822B(x)                                              \
-	(((x) & BIT_MASK_COEX_TABLE_1_8822B) << BIT_SHIFT_COEX_TABLE_1_8822B)
-#define BIT_GET_COEX_TABLE_1_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_COEX_TABLE_1_8822B) & BIT_MASK_COEX_TABLE_1_8822B)
-
-/* 2 REG_RXCMD_0_8822B */
-#define BIT_RXCMD_EN_8822B BIT(31)
-
-#define BIT_SHIFT_RXCMD_INFO_8822B 0
-#define BIT_MASK_RXCMD_INFO_8822B 0x7fffffffL
-#define BIT_RXCMD_INFO_8822B(x)                                                \
-	(((x) & BIT_MASK_RXCMD_INFO_8822B) << BIT_SHIFT_RXCMD_INFO_8822B)
-#define BIT_GET_RXCMD_INFO_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_RXCMD_INFO_8822B) & BIT_MASK_RXCMD_INFO_8822B)
-
-/* 2 REG_RXCMD_1_8822B */
-
-#define BIT_SHIFT_RXCMD_PRD_8822B 0
-#define BIT_MASK_RXCMD_PRD_8822B 0xffff
-#define BIT_RXCMD_PRD_8822B(x)                                                 \
-	(((x) & BIT_MASK_RXCMD_PRD_8822B) << BIT_SHIFT_RXCMD_PRD_8822B)
-#define BIT_GET_RXCMD_PRD_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_RXCMD_PRD_8822B) & BIT_MASK_RXCMD_PRD_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_WMAC_RESP_TXINFO_8822B (RESPONSE TXINFO REGISTER) */
-
-#define BIT_SHIFT_WMAC_RESP_MFB_8822B 25
-#define BIT_MASK_WMAC_RESP_MFB_8822B 0x7f
-#define BIT_WMAC_RESP_MFB_8822B(x)                                             \
-	(((x) & BIT_MASK_WMAC_RESP_MFB_8822B) << BIT_SHIFT_WMAC_RESP_MFB_8822B)
-#define BIT_GET_WMAC_RESP_MFB_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_WMAC_RESP_MFB_8822B) & BIT_MASK_WMAC_RESP_MFB_8822B)
-
-#define BIT_SHIFT_WMAC_ANTINF_SEL_8822B 23
-#define BIT_MASK_WMAC_ANTINF_SEL_8822B 0x3
-#define BIT_WMAC_ANTINF_SEL_8822B(x)                                           \
-	(((x) & BIT_MASK_WMAC_ANTINF_SEL_8822B)                                \
-	 << BIT_SHIFT_WMAC_ANTINF_SEL_8822B)
-#define BIT_GET_WMAC_ANTINF_SEL_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_WMAC_ANTINF_SEL_8822B) &                            \
-	 BIT_MASK_WMAC_ANTINF_SEL_8822B)
-
-#define BIT_SHIFT_WMAC_ANTSEL_SEL_8822B 21
-#define BIT_MASK_WMAC_ANTSEL_SEL_8822B 0x3
-#define BIT_WMAC_ANTSEL_SEL_8822B(x)                                           \
-	(((x) & BIT_MASK_WMAC_ANTSEL_SEL_8822B)                                \
-	 << BIT_SHIFT_WMAC_ANTSEL_SEL_8822B)
-#define BIT_GET_WMAC_ANTSEL_SEL_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_WMAC_ANTSEL_SEL_8822B) &                            \
-	 BIT_MASK_WMAC_ANTSEL_SEL_8822B)
-
-#define BIT_SHIFT_R_WMAC_RESP_TXPOWER_8822B 18
-#define BIT_MASK_R_WMAC_RESP_TXPOWER_8822B 0x7
-#define BIT_R_WMAC_RESP_TXPOWER_8822B(x)                                       \
-	(((x) & BIT_MASK_R_WMAC_RESP_TXPOWER_8822B)                            \
-	 << BIT_SHIFT_R_WMAC_RESP_TXPOWER_8822B)
-#define BIT_GET_R_WMAC_RESP_TXPOWER_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_WMAC_RESP_TXPOWER_8822B) &                        \
-	 BIT_MASK_R_WMAC_RESP_TXPOWER_8822B)
-
-#define BIT_SHIFT_WMAC_RESP_TXANT_8822B 0
-#define BIT_MASK_WMAC_RESP_TXANT_8822B 0x3ffff
-#define BIT_WMAC_RESP_TXANT_8822B(x)                                           \
-	(((x) & BIT_MASK_WMAC_RESP_TXANT_8822B)                                \
-	 << BIT_SHIFT_WMAC_RESP_TXANT_8822B)
-#define BIT_GET_WMAC_RESP_TXANT_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_WMAC_RESP_TXANT_8822B) &                            \
-	 BIT_MASK_WMAC_RESP_TXANT_8822B)
-
-/* 2 REG_BBPSF_CTRL_8822B */
-#define BIT_CTL_IDLE_CLR_CSI_RPT_8822B BIT(31)
-#define BIT_WMAC_USE_NDPARATE_8822B BIT(30)
-
-#define BIT_SHIFT_WMAC_CSI_RATE_8822B 24
-#define BIT_MASK_WMAC_CSI_RATE_8822B 0x3f
-#define BIT_WMAC_CSI_RATE_8822B(x)                                             \
-	(((x) & BIT_MASK_WMAC_CSI_RATE_8822B) << BIT_SHIFT_WMAC_CSI_RATE_8822B)
-#define BIT_GET_WMAC_CSI_RATE_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_WMAC_CSI_RATE_8822B) & BIT_MASK_WMAC_CSI_RATE_8822B)
-
-#define BIT_SHIFT_WMAC_RESP_TXRATE_8822B 16
-#define BIT_MASK_WMAC_RESP_TXRATE_8822B 0xff
-#define BIT_WMAC_RESP_TXRATE_8822B(x)                                          \
-	(((x) & BIT_MASK_WMAC_RESP_TXRATE_8822B)                               \
-	 << BIT_SHIFT_WMAC_RESP_TXRATE_8822B)
-#define BIT_GET_WMAC_RESP_TXRATE_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_WMAC_RESP_TXRATE_8822B) &                           \
-	 BIT_MASK_WMAC_RESP_TXRATE_8822B)
-
-#define BIT_BBPSF_MPDUCHKEN_8822B BIT(5)
-#define BIT_BBPSF_MHCHKEN_8822B BIT(4)
-#define BIT_BBPSF_ERRCHKEN_8822B BIT(3)
-
-#define BIT_SHIFT_BBPSF_ERRTHR_8822B 0
-#define BIT_MASK_BBPSF_ERRTHR_8822B 0x7
-#define BIT_BBPSF_ERRTHR_8822B(x)                                              \
-	(((x) & BIT_MASK_BBPSF_ERRTHR_8822B) << BIT_SHIFT_BBPSF_ERRTHR_8822B)
-#define BIT_GET_BBPSF_ERRTHR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_BBPSF_ERRTHR_8822B) & BIT_MASK_BBPSF_ERRTHR_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_P2P_RX_BCN_NOA_8822B (P2P RX BEACON NOA REGISTER) */
-#define BIT_NOA_PARSER_EN_8822B BIT(15)
-#define BIT_BSSID_SEL_8822B BIT(14)
-
-#define BIT_SHIFT_P2P_OUI_TYPE_8822B 0
-#define BIT_MASK_P2P_OUI_TYPE_8822B 0xff
-#define BIT_P2P_OUI_TYPE_8822B(x)                                              \
-	(((x) & BIT_MASK_P2P_OUI_TYPE_8822B) << BIT_SHIFT_P2P_OUI_TYPE_8822B)
-#define BIT_GET_P2P_OUI_TYPE_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_P2P_OUI_TYPE_8822B) & BIT_MASK_P2P_OUI_TYPE_8822B)
-
-/* 2 REG_ASSOCIATED_BFMER0_INFO_8822B (ASSOCIATED BEAMFORMER0 INFO REGISTER) */
-
-#define BIT_SHIFT_R_WMAC_TXCSI_AID0_8822B (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_TXCSI_AID0_8822B 0x1ff
-#define BIT_R_WMAC_TXCSI_AID0_8822B(x)                                         \
-	(((x) & BIT_MASK_R_WMAC_TXCSI_AID0_8822B)                              \
-	 << BIT_SHIFT_R_WMAC_TXCSI_AID0_8822B)
-#define BIT_GET_R_WMAC_TXCSI_AID0_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_R_WMAC_TXCSI_AID0_8822B) &                          \
-	 BIT_MASK_R_WMAC_TXCSI_AID0_8822B)
-
-#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_8822B 0
-#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_8822B 0xffffffffffffL
-#define BIT_R_WMAC_SOUNDING_RXADD_R0_8822B(x)                                  \
-	(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_8822B)                       \
-	 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_8822B)
-#define BIT_GET_R_WMAC_SOUNDING_RXADD_R0_8822B(x)                              \
-	(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_8822B) &                   \
-	 BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_8822B)
-
-/* 2 REG_ASSOCIATED_BFMER1_INFO_8822B (ASSOCIATED BEAMFORMER1 INFO REGISTER) */
-
-#define BIT_SHIFT_R_WMAC_TXCSI_AID1_8822B (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_TXCSI_AID1_8822B 0x1ff
-#define BIT_R_WMAC_TXCSI_AID1_8822B(x)                                         \
-	(((x) & BIT_MASK_R_WMAC_TXCSI_AID1_8822B)                              \
-	 << BIT_SHIFT_R_WMAC_TXCSI_AID1_8822B)
-#define BIT_GET_R_WMAC_TXCSI_AID1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_R_WMAC_TXCSI_AID1_8822B) &                          \
-	 BIT_MASK_R_WMAC_TXCSI_AID1_8822B)
-
-#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_8822B 0
-#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_8822B 0xffffffffffffL
-#define BIT_R_WMAC_SOUNDING_RXADD_R1_8822B(x)                                  \
-	(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_8822B)                       \
-	 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_8822B)
-#define BIT_GET_R_WMAC_SOUNDING_RXADD_R1_8822B(x)                              \
-	(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_8822B) &                   \
-	 BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_8822B)
-
-/* 2 REG_TX_CSI_RPT_PARAM_BW20_8822B (TX CSI REPORT PARAMETER REGISTER) */
-
-#define BIT_SHIFT_R_WMAC_BFINFO_20M_1_8822B 16
-#define BIT_MASK_R_WMAC_BFINFO_20M_1_8822B 0xfff
-#define BIT_R_WMAC_BFINFO_20M_1_8822B(x)                                       \
-	(((x) & BIT_MASK_R_WMAC_BFINFO_20M_1_8822B)                            \
-	 << BIT_SHIFT_R_WMAC_BFINFO_20M_1_8822B)
-#define BIT_GET_R_WMAC_BFINFO_20M_1_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_1_8822B) &                        \
-	 BIT_MASK_R_WMAC_BFINFO_20M_1_8822B)
-
-#define BIT_SHIFT_R_WMAC_BFINFO_20M_0_8822B 0
-#define BIT_MASK_R_WMAC_BFINFO_20M_0_8822B 0xfff
-#define BIT_R_WMAC_BFINFO_20M_0_8822B(x)                                       \
-	(((x) & BIT_MASK_R_WMAC_BFINFO_20M_0_8822B)                            \
-	 << BIT_SHIFT_R_WMAC_BFINFO_20M_0_8822B)
-#define BIT_GET_R_WMAC_BFINFO_20M_0_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_0_8822B) &                        \
-	 BIT_MASK_R_WMAC_BFINFO_20M_0_8822B)
-
-/* 2 REG_TX_CSI_RPT_PARAM_BW40_8822B (TX CSI REPORT PARAMETER_BW40 REGISTER) */
-
-#define BIT_SHIFT_WMAC_RESP_ANTCD_8822B 0
-#define BIT_MASK_WMAC_RESP_ANTCD_8822B 0xf
-#define BIT_WMAC_RESP_ANTCD_8822B(x)                                           \
-	(((x) & BIT_MASK_WMAC_RESP_ANTCD_8822B)                                \
-	 << BIT_SHIFT_WMAC_RESP_ANTCD_8822B)
-#define BIT_GET_WMAC_RESP_ANTCD_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_WMAC_RESP_ANTCD_8822B) &                            \
-	 BIT_MASK_WMAC_RESP_ANTCD_8822B)
-
-/* 2 REG_TX_CSI_RPT_PARAM_BW80_8822B (TX CSI REPORT PARAMETER_BW80 REGISTER) */
-
-/* 2 REG_BCN_PSR_RPT2_8822B (BEACON PARSER REPORT REGISTER2) */
-
-#define BIT_SHIFT_DTIM_CNT2_8822B 24
-#define BIT_MASK_DTIM_CNT2_8822B 0xff
-#define BIT_DTIM_CNT2_8822B(x)                                                 \
-	(((x) & BIT_MASK_DTIM_CNT2_8822B) << BIT_SHIFT_DTIM_CNT2_8822B)
-#define BIT_GET_DTIM_CNT2_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_CNT2_8822B) & BIT_MASK_DTIM_CNT2_8822B)
-
-#define BIT_SHIFT_DTIM_PERIOD2_8822B 16
-#define BIT_MASK_DTIM_PERIOD2_8822B 0xff
-#define BIT_DTIM_PERIOD2_8822B(x)                                              \
-	(((x) & BIT_MASK_DTIM_PERIOD2_8822B) << BIT_SHIFT_DTIM_PERIOD2_8822B)
-#define BIT_GET_DTIM_PERIOD2_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD2_8822B) & BIT_MASK_DTIM_PERIOD2_8822B)
-
-#define BIT_DTIM2_8822B BIT(15)
-#define BIT_TIM2_8822B BIT(14)
-
-#define BIT_SHIFT_PS_AID_2_8822B 0
-#define BIT_MASK_PS_AID_2_8822B 0x7ff
-#define BIT_PS_AID_2_8822B(x)                                                  \
-	(((x) & BIT_MASK_PS_AID_2_8822B) << BIT_SHIFT_PS_AID_2_8822B)
-#define BIT_GET_PS_AID_2_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_PS_AID_2_8822B) & BIT_MASK_PS_AID_2_8822B)
-
-/* 2 REG_BCN_PSR_RPT3_8822B (BEACON PARSER REPORT REGISTER3) */
-
-#define BIT_SHIFT_DTIM_CNT3_8822B 24
-#define BIT_MASK_DTIM_CNT3_8822B 0xff
-#define BIT_DTIM_CNT3_8822B(x)                                                 \
-	(((x) & BIT_MASK_DTIM_CNT3_8822B) << BIT_SHIFT_DTIM_CNT3_8822B)
-#define BIT_GET_DTIM_CNT3_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_CNT3_8822B) & BIT_MASK_DTIM_CNT3_8822B)
-
-#define BIT_SHIFT_DTIM_PERIOD3_8822B 16
-#define BIT_MASK_DTIM_PERIOD3_8822B 0xff
-#define BIT_DTIM_PERIOD3_8822B(x)                                              \
-	(((x) & BIT_MASK_DTIM_PERIOD3_8822B) << BIT_SHIFT_DTIM_PERIOD3_8822B)
-#define BIT_GET_DTIM_PERIOD3_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD3_8822B) & BIT_MASK_DTIM_PERIOD3_8822B)
-
-#define BIT_DTIM3_8822B BIT(15)
-#define BIT_TIM3_8822B BIT(14)
-
-#define BIT_SHIFT_PS_AID_3_8822B 0
-#define BIT_MASK_PS_AID_3_8822B 0x7ff
-#define BIT_PS_AID_3_8822B(x)                                                  \
-	(((x) & BIT_MASK_PS_AID_3_8822B) << BIT_SHIFT_PS_AID_3_8822B)
-#define BIT_GET_PS_AID_3_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_PS_AID_3_8822B) & BIT_MASK_PS_AID_3_8822B)
-
-/* 2 REG_BCN_PSR_RPT4_8822B (BEACON PARSER REPORT REGISTER4) */
-
-#define BIT_SHIFT_DTIM_CNT4_8822B 24
-#define BIT_MASK_DTIM_CNT4_8822B 0xff
-#define BIT_DTIM_CNT4_8822B(x)                                                 \
-	(((x) & BIT_MASK_DTIM_CNT4_8822B) << BIT_SHIFT_DTIM_CNT4_8822B)
-#define BIT_GET_DTIM_CNT4_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_CNT4_8822B) & BIT_MASK_DTIM_CNT4_8822B)
-
-#define BIT_SHIFT_DTIM_PERIOD4_8822B 16
-#define BIT_MASK_DTIM_PERIOD4_8822B 0xff
-#define BIT_DTIM_PERIOD4_8822B(x)                                              \
-	(((x) & BIT_MASK_DTIM_PERIOD4_8822B) << BIT_SHIFT_DTIM_PERIOD4_8822B)
-#define BIT_GET_DTIM_PERIOD4_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD4_8822B) & BIT_MASK_DTIM_PERIOD4_8822B)
-
-#define BIT_DTIM4_8822B BIT(15)
-#define BIT_TIM4_8822B BIT(14)
-
-#define BIT_SHIFT_PS_AID_4_8822B 0
-#define BIT_MASK_PS_AID_4_8822B 0x7ff
-#define BIT_PS_AID_4_8822B(x)                                                  \
-	(((x) & BIT_MASK_PS_AID_4_8822B) << BIT_SHIFT_PS_AID_4_8822B)
-#define BIT_GET_PS_AID_4_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_PS_AID_4_8822B) & BIT_MASK_PS_AID_4_8822B)
-
-/* 2 REG_A1_ADDR_MASK_8822B (A1 ADDR MASK REGISTER) */
-
-#define BIT_SHIFT_A1_ADDR_MASK_8822B 0
-#define BIT_MASK_A1_ADDR_MASK_8822B 0xffffffffL
-#define BIT_A1_ADDR_MASK_8822B(x)                                              \
-	(((x) & BIT_MASK_A1_ADDR_MASK_8822B) << BIT_SHIFT_A1_ADDR_MASK_8822B)
-#define BIT_GET_A1_ADDR_MASK_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_A1_ADDR_MASK_8822B) & BIT_MASK_A1_ADDR_MASK_8822B)
-
-/* 2 REG_MACID2_8822B (MAC ID2 REGISTER) */
-
-#define BIT_SHIFT_MACID2_8822B 0
-#define BIT_MASK_MACID2_8822B 0xffffffffffffL
-#define BIT_MACID2_8822B(x)                                                    \
-	(((x) & BIT_MASK_MACID2_8822B) << BIT_SHIFT_MACID2_8822B)
-#define BIT_GET_MACID2_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_MACID2_8822B) & BIT_MASK_MACID2_8822B)
-
-/* 2 REG_BSSID2_8822B (BSSID2 REGISTER) */
-
-#define BIT_SHIFT_BSSID2_8822B 0
-#define BIT_MASK_BSSID2_8822B 0xffffffffffffL
-#define BIT_BSSID2_8822B(x)                                                    \
-	(((x) & BIT_MASK_BSSID2_8822B) << BIT_SHIFT_BSSID2_8822B)
-#define BIT_GET_BSSID2_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_BSSID2_8822B) & BIT_MASK_BSSID2_8822B)
-
-/* 2 REG_MACID3_8822B (MAC ID3 REGISTER) */
-
-#define BIT_SHIFT_MACID3_8822B 0
-#define BIT_MASK_MACID3_8822B 0xffffffffffffL
-#define BIT_MACID3_8822B(x)                                                    \
-	(((x) & BIT_MASK_MACID3_8822B) << BIT_SHIFT_MACID3_8822B)
-#define BIT_GET_MACID3_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_MACID3_8822B) & BIT_MASK_MACID3_8822B)
-
-/* 2 REG_BSSID3_8822B (BSSID3 REGISTER) */
-
-#define BIT_SHIFT_BSSID3_8822B 0
-#define BIT_MASK_BSSID3_8822B 0xffffffffffffL
-#define BIT_BSSID3_8822B(x)                                                    \
-	(((x) & BIT_MASK_BSSID3_8822B) << BIT_SHIFT_BSSID3_8822B)
-#define BIT_GET_BSSID3_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_BSSID3_8822B) & BIT_MASK_BSSID3_8822B)
-
-/* 2 REG_MACID4_8822B (MAC ID4 REGISTER) */
-
-#define BIT_SHIFT_MACID4_8822B 0
-#define BIT_MASK_MACID4_8822B 0xffffffffffffL
-#define BIT_MACID4_8822B(x)                                                    \
-	(((x) & BIT_MASK_MACID4_8822B) << BIT_SHIFT_MACID4_8822B)
-#define BIT_GET_MACID4_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_MACID4_8822B) & BIT_MASK_MACID4_8822B)
-
-/* 2 REG_BSSID4_8822B (BSSID4 REGISTER) */
-
-#define BIT_SHIFT_BSSID4_8822B 0
-#define BIT_MASK_BSSID4_8822B 0xffffffffffffL
-#define BIT_BSSID4_8822B(x)                                                    \
-	(((x) & BIT_MASK_BSSID4_8822B) << BIT_SHIFT_BSSID4_8822B)
-#define BIT_GET_BSSID4_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_BSSID4_8822B) & BIT_MASK_BSSID4_8822B)
-
-/* 2 REG_NOA_REPORT_8822B */
-
-/* 2 REG_PWRBIT_SETTING_8822B */
-#define BIT_CLI3_PWRBIT_OW_EN_8822B BIT(7)
-#define BIT_CLI3_PWR_ST_8822B BIT(6)
-#define BIT_CLI2_PWRBIT_OW_EN_8822B BIT(5)
-#define BIT_CLI2_PWR_ST_8822B BIT(4)
-#define BIT_CLI1_PWRBIT_OW_EN_8822B BIT(3)
-#define BIT_CLI1_PWR_ST_8822B BIT(2)
-#define BIT_CLI0_PWRBIT_OW_EN_8822B BIT(1)
-#define BIT_CLI0_PWR_ST_8822B BIT(0)
-
-/* 2 REG_WMAC_MU_BF_OPTION_8822B */
-#define BIT_WMAC_RESP_NONSTA1_DIS_8822B BIT(7)
-#define BIT_BIT_WMAC_TXMU_ACKPOLICY_EN_8822B BIT(6)
-
-#define BIT_SHIFT_WMAC_TXMU_ACKPOLICY_8822B 4
-#define BIT_MASK_WMAC_TXMU_ACKPOLICY_8822B 0x3
-#define BIT_WMAC_TXMU_ACKPOLICY_8822B(x)                                       \
-	(((x) & BIT_MASK_WMAC_TXMU_ACKPOLICY_8822B)                            \
-	 << BIT_SHIFT_WMAC_TXMU_ACKPOLICY_8822B)
-#define BIT_GET_WMAC_TXMU_ACKPOLICY_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_WMAC_TXMU_ACKPOLICY_8822B) &                        \
-	 BIT_MASK_WMAC_TXMU_ACKPOLICY_8822B)
-
-#define BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL_8822B 1
-#define BIT_MASK_WMAC_MU_BFEE_PORT_SEL_8822B 0x7
-#define BIT_WMAC_MU_BFEE_PORT_SEL_8822B(x)                                     \
-	(((x) & BIT_MASK_WMAC_MU_BFEE_PORT_SEL_8822B)                          \
-	 << BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL_8822B)
-#define BIT_GET_WMAC_MU_BFEE_PORT_SEL_8822B(x)                                 \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL_8822B) &                      \
-	 BIT_MASK_WMAC_MU_BFEE_PORT_SEL_8822B)
-
-#define BIT_WMAC_MU_BFEE_DIS_8822B BIT(0)
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH_8822B 0
-#define BIT_MASK_WMAC_PAUSE_BB_CLR_TH_8822B 0xff
-#define BIT_WMAC_PAUSE_BB_CLR_TH_8822B(x)                                      \
-	(((x) & BIT_MASK_WMAC_PAUSE_BB_CLR_TH_8822B)                           \
-	 << BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH_8822B)
-#define BIT_GET_WMAC_PAUSE_BB_CLR_TH_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH_8822B) &                       \
-	 BIT_MASK_WMAC_PAUSE_BB_CLR_TH_8822B)
-
-/* 2 REG_WMAC_MU_ARB_8822B */
-#define BIT_WMAC_ARB_HW_ADAPT_EN_8822B BIT(7)
-#define BIT_WMAC_ARB_SW_EN_8822B BIT(6)
-
-#define BIT_SHIFT_WMAC_ARB_SW_STATE_8822B 0
-#define BIT_MASK_WMAC_ARB_SW_STATE_8822B 0x3f
-#define BIT_WMAC_ARB_SW_STATE_8822B(x)                                         \
-	(((x) & BIT_MASK_WMAC_ARB_SW_STATE_8822B)                              \
-	 << BIT_SHIFT_WMAC_ARB_SW_STATE_8822B)
-#define BIT_GET_WMAC_ARB_SW_STATE_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WMAC_ARB_SW_STATE_8822B) &                          \
-	 BIT_MASK_WMAC_ARB_SW_STATE_8822B)
-
-/* 2 REG_WMAC_MU_OPTION_8822B */
-
-#define BIT_SHIFT_WMAC_MU_DBGSEL_8822B 5
-#define BIT_MASK_WMAC_MU_DBGSEL_8822B 0x3
-#define BIT_WMAC_MU_DBGSEL_8822B(x)                                            \
-	(((x) & BIT_MASK_WMAC_MU_DBGSEL_8822B)                                 \
-	 << BIT_SHIFT_WMAC_MU_DBGSEL_8822B)
-#define BIT_GET_WMAC_MU_DBGSEL_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_WMAC_MU_DBGSEL_8822B) &                             \
-	 BIT_MASK_WMAC_MU_DBGSEL_8822B)
-
-#define BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT_8822B 0
-#define BIT_MASK_WMAC_MU_CPRD_TIMEOUT_8822B 0x1f
-#define BIT_WMAC_MU_CPRD_TIMEOUT_8822B(x)                                      \
-	(((x) & BIT_MASK_WMAC_MU_CPRD_TIMEOUT_8822B)                           \
-	 << BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT_8822B)
-#define BIT_GET_WMAC_MU_CPRD_TIMEOUT_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT_8822B) &                       \
-	 BIT_MASK_WMAC_MU_CPRD_TIMEOUT_8822B)
-
-/* 2 REG_WMAC_MU_BF_CTL_8822B */
-#define BIT_WMAC_INVLD_BFPRT_CHK_8822B BIT(15)
-#define BIT_WMAC_RETXBFRPTSEQ_UPD_8822B BIT(14)
-
-#define BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL_8822B 12
-#define BIT_MASK_WMAC_MU_BFRPTSEG_SEL_8822B 0x3
-#define BIT_WMAC_MU_BFRPTSEG_SEL_8822B(x)                                      \
-	(((x) & BIT_MASK_WMAC_MU_BFRPTSEG_SEL_8822B)                           \
-	 << BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL_8822B)
-#define BIT_GET_WMAC_MU_BFRPTSEG_SEL_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL_8822B) &                       \
-	 BIT_MASK_WMAC_MU_BFRPTSEG_SEL_8822B)
-
-#define BIT_SHIFT_WMAC_MU_BF_MYAID_8822B 0
-#define BIT_MASK_WMAC_MU_BF_MYAID_8822B 0xfff
-#define BIT_WMAC_MU_BF_MYAID_8822B(x)                                          \
-	(((x) & BIT_MASK_WMAC_MU_BF_MYAID_8822B)                               \
-	 << BIT_SHIFT_WMAC_MU_BF_MYAID_8822B)
-#define BIT_GET_WMAC_MU_BF_MYAID_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_WMAC_MU_BF_MYAID_8822B) &                           \
-	 BIT_MASK_WMAC_MU_BF_MYAID_8822B)
-
-/* 2 REG_WMAC_MU_BFRPT_PARA_8822B */
-
-#define BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL_8822B 12
-#define BIT_MASK_BIT_BFRPT_PARA_USERID_SEL_8822B 0x7
-#define BIT_BIT_BFRPT_PARA_USERID_SEL_8822B(x)                                 \
-	(((x) & BIT_MASK_BIT_BFRPT_PARA_USERID_SEL_8822B)                      \
-	 << BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL_8822B)
-#define BIT_GET_BIT_BFRPT_PARA_USERID_SEL_8822B(x)                             \
-	(((x) >> BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL_8822B) &                  \
-	 BIT_MASK_BIT_BFRPT_PARA_USERID_SEL_8822B)
-
-#define BIT_SHIFT_BFRPT_PARA_8822B 0
-#define BIT_MASK_BFRPT_PARA_8822B 0xfff
-#define BIT_BFRPT_PARA_8822B(x)                                                \
-	(((x) & BIT_MASK_BFRPT_PARA_8822B) << BIT_SHIFT_BFRPT_PARA_8822B)
-#define BIT_GET_BFRPT_PARA_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_BFRPT_PARA_8822B) & BIT_MASK_BFRPT_PARA_8822B)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2_8822B */
-#define BIT_STATUS_BFEE2_8822B BIT(10)
-#define BIT_WMAC_MU_BFEE2_EN_8822B BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE2_AID_8822B 0
-#define BIT_MASK_WMAC_MU_BFEE2_AID_8822B 0x1ff
-#define BIT_WMAC_MU_BFEE2_AID_8822B(x)                                         \
-	(((x) & BIT_MASK_WMAC_MU_BFEE2_AID_8822B)                              \
-	 << BIT_SHIFT_WMAC_MU_BFEE2_AID_8822B)
-#define BIT_GET_WMAC_MU_BFEE2_AID_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE2_AID_8822B) &                          \
-	 BIT_MASK_WMAC_MU_BFEE2_AID_8822B)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3_8822B */
-#define BIT_STATUS_BFEE3_8822B BIT(10)
-#define BIT_WMAC_MU_BFEE3_EN_8822B BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE3_AID_8822B 0
-#define BIT_MASK_WMAC_MU_BFEE3_AID_8822B 0x1ff
-#define BIT_WMAC_MU_BFEE3_AID_8822B(x)                                         \
-	(((x) & BIT_MASK_WMAC_MU_BFEE3_AID_8822B)                              \
-	 << BIT_SHIFT_WMAC_MU_BFEE3_AID_8822B)
-#define BIT_GET_WMAC_MU_BFEE3_AID_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE3_AID_8822B) &                          \
-	 BIT_MASK_WMAC_MU_BFEE3_AID_8822B)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE4_8822B */
-#define BIT_STATUS_BFEE4_8822B BIT(10)
-#define BIT_WMAC_MU_BFEE4_EN_8822B BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE4_AID_8822B 0
-#define BIT_MASK_WMAC_MU_BFEE4_AID_8822B 0x1ff
-#define BIT_WMAC_MU_BFEE4_AID_8822B(x)                                         \
-	(((x) & BIT_MASK_WMAC_MU_BFEE4_AID_8822B)                              \
-	 << BIT_SHIFT_WMAC_MU_BFEE4_AID_8822B)
-#define BIT_GET_WMAC_MU_BFEE4_AID_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE4_AID_8822B) &                          \
-	 BIT_MASK_WMAC_MU_BFEE4_AID_8822B)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5_8822B */
-#define BIT_STATUS_BFEE5_8822B BIT(10)
-#define BIT_WMAC_MU_BFEE5_EN_8822B BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE5_AID_8822B 0
-#define BIT_MASK_WMAC_MU_BFEE5_AID_8822B 0x1ff
-#define BIT_WMAC_MU_BFEE5_AID_8822B(x)                                         \
-	(((x) & BIT_MASK_WMAC_MU_BFEE5_AID_8822B)                              \
-	 << BIT_SHIFT_WMAC_MU_BFEE5_AID_8822B)
-#define BIT_GET_WMAC_MU_BFEE5_AID_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE5_AID_8822B) &                          \
-	 BIT_MASK_WMAC_MU_BFEE5_AID_8822B)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE6_8822B */
-#define BIT_STATUS_BFEE6_8822B BIT(10)
-#define BIT_WMAC_MU_BFEE6_EN_8822B BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE6_AID_8822B 0
-#define BIT_MASK_WMAC_MU_BFEE6_AID_8822B 0x1ff
-#define BIT_WMAC_MU_BFEE6_AID_8822B(x)                                         \
-	(((x) & BIT_MASK_WMAC_MU_BFEE6_AID_8822B)                              \
-	 << BIT_SHIFT_WMAC_MU_BFEE6_AID_8822B)
-#define BIT_GET_WMAC_MU_BFEE6_AID_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE6_AID_8822B) &                          \
-	 BIT_MASK_WMAC_MU_BFEE6_AID_8822B)
-
-/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE7_8822B */
-#define BIT_BIT_STATUS_BFEE4_8822B BIT(10)
-#define BIT_WMAC_MU_BFEE7_EN_8822B BIT(9)
-
-#define BIT_SHIFT_WMAC_MU_BFEE7_AID_8822B 0
-#define BIT_MASK_WMAC_MU_BFEE7_AID_8822B 0x1ff
-#define BIT_WMAC_MU_BFEE7_AID_8822B(x)                                         \
-	(((x) & BIT_MASK_WMAC_MU_BFEE7_AID_8822B)                              \
-	 << BIT_SHIFT_WMAC_MU_BFEE7_AID_8822B)
-#define BIT_GET_WMAC_MU_BFEE7_AID_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WMAC_MU_BFEE7_AID_8822B) &                          \
-	 BIT_MASK_WMAC_MU_BFEE7_AID_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-#define BIT_RST_ALL_COUNTER_8822B BIT(31)
-
-#define BIT_SHIFT_ABORT_RX_VBON_COUNTER_8822B 16
-#define BIT_MASK_ABORT_RX_VBON_COUNTER_8822B 0xff
-#define BIT_ABORT_RX_VBON_COUNTER_8822B(x)                                     \
-	(((x) & BIT_MASK_ABORT_RX_VBON_COUNTER_8822B)                          \
-	 << BIT_SHIFT_ABORT_RX_VBON_COUNTER_8822B)
-#define BIT_GET_ABORT_RX_VBON_COUNTER_8822B(x)                                 \
-	(((x) >> BIT_SHIFT_ABORT_RX_VBON_COUNTER_8822B) &                      \
-	 BIT_MASK_ABORT_RX_VBON_COUNTER_8822B)
-
-#define BIT_SHIFT_ABORT_RX_RDRDY_COUNTER_8822B 8
-#define BIT_MASK_ABORT_RX_RDRDY_COUNTER_8822B 0xff
-#define BIT_ABORT_RX_RDRDY_COUNTER_8822B(x)                                    \
-	(((x) & BIT_MASK_ABORT_RX_RDRDY_COUNTER_8822B)                         \
-	 << BIT_SHIFT_ABORT_RX_RDRDY_COUNTER_8822B)
-#define BIT_GET_ABORT_RX_RDRDY_COUNTER_8822B(x)                                \
-	(((x) >> BIT_SHIFT_ABORT_RX_RDRDY_COUNTER_8822B) &                     \
-	 BIT_MASK_ABORT_RX_RDRDY_COUNTER_8822B)
-
-#define BIT_SHIFT_VBON_EARLY_FALLING_COUNTER_8822B 0
-#define BIT_MASK_VBON_EARLY_FALLING_COUNTER_8822B 0xff
-#define BIT_VBON_EARLY_FALLING_COUNTER_8822B(x)                                \
-	(((x) & BIT_MASK_VBON_EARLY_FALLING_COUNTER_8822B)                     \
-	 << BIT_SHIFT_VBON_EARLY_FALLING_COUNTER_8822B)
-#define BIT_GET_VBON_EARLY_FALLING_COUNTER_8822B(x)                            \
-	(((x) >> BIT_SHIFT_VBON_EARLY_FALLING_COUNTER_8822B) &                 \
-	 BIT_MASK_VBON_EARLY_FALLING_COUNTER_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-#define BIT_WMAC_PLCP_TRX_SEL_8822B BIT(31)
-
-#define BIT_SHIFT_WMAC_PLCP_RDSIG_SEL_8822B 28
-#define BIT_MASK_WMAC_PLCP_RDSIG_SEL_8822B 0x7
-#define BIT_WMAC_PLCP_RDSIG_SEL_8822B(x)                                       \
-	(((x) & BIT_MASK_WMAC_PLCP_RDSIG_SEL_8822B)                            \
-	 << BIT_SHIFT_WMAC_PLCP_RDSIG_SEL_8822B)
-#define BIT_GET_WMAC_PLCP_RDSIG_SEL_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG_SEL_8822B) &                        \
-	 BIT_MASK_WMAC_PLCP_RDSIG_SEL_8822B)
-
-#define BIT_SHIFT_WMAC_RATE_IDX_8822B 24
-#define BIT_MASK_WMAC_RATE_IDX_8822B 0xf
-#define BIT_WMAC_RATE_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_WMAC_RATE_IDX_8822B) << BIT_SHIFT_WMAC_RATE_IDX_8822B)
-#define BIT_GET_WMAC_RATE_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_WMAC_RATE_IDX_8822B) & BIT_MASK_WMAC_RATE_IDX_8822B)
-
-#define BIT_SHIFT_WMAC_PLCP_RDSIG_8822B 0
-#define BIT_MASK_WMAC_PLCP_RDSIG_8822B 0xffffff
-#define BIT_WMAC_PLCP_RDSIG_8822B(x)                                           \
-	(((x) & BIT_MASK_WMAC_PLCP_RDSIG_8822B)                                \
-	 << BIT_SHIFT_WMAC_PLCP_RDSIG_8822B)
-#define BIT_GET_WMAC_PLCP_RDSIG_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG_8822B) &                            \
-	 BIT_MASK_WMAC_PLCP_RDSIG_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-#define BIT_WMAC_MUTX_IDX_8822B BIT(24)
-
-#define BIT_SHIFT_WMAC_PLCP_RDSIG_8822B 0
-#define BIT_MASK_WMAC_PLCP_RDSIG_8822B 0xffffff
-#define BIT_WMAC_PLCP_RDSIG_8822B(x)                                           \
-	(((x) & BIT_MASK_WMAC_PLCP_RDSIG_8822B)                                \
-	 << BIT_SHIFT_WMAC_PLCP_RDSIG_8822B)
-#define BIT_GET_WMAC_PLCP_RDSIG_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG_8822B) &                            \
-	 BIT_MASK_WMAC_PLCP_RDSIG_8822B)
-
-/* 2 REG_TRANSMIT_ADDRSS_0_8822B (TA0 REGISTER) */
-
-#define BIT_SHIFT_TA0_8822B 0
-#define BIT_MASK_TA0_8822B 0xffffffffffffL
-#define BIT_TA0_8822B(x) (((x) & BIT_MASK_TA0_8822B) << BIT_SHIFT_TA0_8822B)
-#define BIT_GET_TA0_8822B(x) (((x) >> BIT_SHIFT_TA0_8822B) & BIT_MASK_TA0_8822B)
-
-/* 2 REG_TRANSMIT_ADDRSS_1_8822B (TA1 REGISTER) */
-
-#define BIT_SHIFT_TA1_8822B 0
-#define BIT_MASK_TA1_8822B 0xffffffffffffL
-#define BIT_TA1_8822B(x) (((x) & BIT_MASK_TA1_8822B) << BIT_SHIFT_TA1_8822B)
-#define BIT_GET_TA1_8822B(x) (((x) >> BIT_SHIFT_TA1_8822B) & BIT_MASK_TA1_8822B)
-
-/* 2 REG_TRANSMIT_ADDRSS_2_8822B (TA2 REGISTER) */
-
-#define BIT_SHIFT_TA2_8822B 0
-#define BIT_MASK_TA2_8822B 0xffffffffffffL
-#define BIT_TA2_8822B(x) (((x) & BIT_MASK_TA2_8822B) << BIT_SHIFT_TA2_8822B)
-#define BIT_GET_TA2_8822B(x) (((x) >> BIT_SHIFT_TA2_8822B) & BIT_MASK_TA2_8822B)
-
-/* 2 REG_TRANSMIT_ADDRSS_3_8822B (TA3 REGISTER) */
-
-#define BIT_SHIFT_TA3_8822B 0
-#define BIT_MASK_TA3_8822B 0xffffffffffffL
-#define BIT_TA3_8822B(x) (((x) & BIT_MASK_TA3_8822B) << BIT_SHIFT_TA3_8822B)
-#define BIT_GET_TA3_8822B(x) (((x) >> BIT_SHIFT_TA3_8822B) & BIT_MASK_TA3_8822B)
-
-/* 2 REG_TRANSMIT_ADDRSS_4_8822B (TA4 REGISTER) */
-
-#define BIT_SHIFT_TA4_8822B 0
-#define BIT_MASK_TA4_8822B 0xffffffffffffL
-#define BIT_TA4_8822B(x) (((x) & BIT_MASK_TA4_8822B) << BIT_SHIFT_TA4_8822B)
-#define BIT_GET_TA4_8822B(x) (((x) >> BIT_SHIFT_TA4_8822B) & BIT_MASK_TA4_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_MACID1_8822B */
-
-#define BIT_SHIFT_MACID1_8822B 0
-#define BIT_MASK_MACID1_8822B 0xffffffffffffL
-#define BIT_MACID1_8822B(x)                                                    \
-	(((x) & BIT_MASK_MACID1_8822B) << BIT_SHIFT_MACID1_8822B)
-#define BIT_GET_MACID1_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_MACID1_8822B) & BIT_MASK_MACID1_8822B)
-
-/* 2 REG_BSSID1_8822B */
-
-#define BIT_SHIFT_BSSID1_8822B 0
-#define BIT_MASK_BSSID1_8822B 0xffffffffffffL
-#define BIT_BSSID1_8822B(x)                                                    \
-	(((x) & BIT_MASK_BSSID1_8822B) << BIT_SHIFT_BSSID1_8822B)
-#define BIT_GET_BSSID1_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_BSSID1_8822B) & BIT_MASK_BSSID1_8822B)
-
-/* 2 REG_BCN_PSR_RPT1_8822B */
-
-#define BIT_SHIFT_DTIM_CNT1_8822B 24
-#define BIT_MASK_DTIM_CNT1_8822B 0xff
-#define BIT_DTIM_CNT1_8822B(x)                                                 \
-	(((x) & BIT_MASK_DTIM_CNT1_8822B) << BIT_SHIFT_DTIM_CNT1_8822B)
-#define BIT_GET_DTIM_CNT1_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_DTIM_CNT1_8822B) & BIT_MASK_DTIM_CNT1_8822B)
-
-#define BIT_SHIFT_DTIM_PERIOD1_8822B 16
-#define BIT_MASK_DTIM_PERIOD1_8822B 0xff
-#define BIT_DTIM_PERIOD1_8822B(x)                                              \
-	(((x) & BIT_MASK_DTIM_PERIOD1_8822B) << BIT_SHIFT_DTIM_PERIOD1_8822B)
-#define BIT_GET_DTIM_PERIOD1_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DTIM_PERIOD1_8822B) & BIT_MASK_DTIM_PERIOD1_8822B)
-
-#define BIT_DTIM1_8822B BIT(15)
-#define BIT_TIM1_8822B BIT(14)
-
-#define BIT_SHIFT_PS_AID_1_8822B 0
-#define BIT_MASK_PS_AID_1_8822B 0x7ff
-#define BIT_PS_AID_1_8822B(x)                                                  \
-	(((x) & BIT_MASK_PS_AID_1_8822B) << BIT_SHIFT_PS_AID_1_8822B)
-#define BIT_GET_PS_AID_1_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_PS_AID_1_8822B) & BIT_MASK_PS_AID_1_8822B)
-
-/* 2 REG_ASSOCIATED_BFMEE_SEL_8822B */
-#define BIT_TXUSER_ID1_8822B BIT(25)
-
-#define BIT_SHIFT_AID1_8822B 16
-#define BIT_MASK_AID1_8822B 0x1ff
-#define BIT_AID1_8822B(x) (((x) & BIT_MASK_AID1_8822B) << BIT_SHIFT_AID1_8822B)
-#define BIT_GET_AID1_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_AID1_8822B) & BIT_MASK_AID1_8822B)
-
-#define BIT_TXUSER_ID0_8822B BIT(9)
-
-#define BIT_SHIFT_AID0_8822B 0
-#define BIT_MASK_AID0_8822B 0x1ff
-#define BIT_AID0_8822B(x) (((x) & BIT_MASK_AID0_8822B) << BIT_SHIFT_AID0_8822B)
-#define BIT_GET_AID0_8822B(x)                                                  \
-	(((x) >> BIT_SHIFT_AID0_8822B) & BIT_MASK_AID0_8822B)
-
-/* 2 REG_SND_PTCL_CTRL_8822B */
-
-#define BIT_SHIFT_NDP_RX_STANDBY_TIMER_8822B 24
-#define BIT_MASK_NDP_RX_STANDBY_TIMER_8822B 0xff
-#define BIT_NDP_RX_STANDBY_TIMER_8822B(x)                                      \
-	(((x) & BIT_MASK_NDP_RX_STANDBY_TIMER_8822B)                           \
-	 << BIT_SHIFT_NDP_RX_STANDBY_TIMER_8822B)
-#define BIT_GET_NDP_RX_STANDBY_TIMER_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_NDP_RX_STANDBY_TIMER_8822B) &                       \
-	 BIT_MASK_NDP_RX_STANDBY_TIMER_8822B)
-
-#define BIT_SHIFT_CSI_RPT_OFFSET_HT_8822B 16
-#define BIT_MASK_CSI_RPT_OFFSET_HT_8822B 0xff
-#define BIT_CSI_RPT_OFFSET_HT_8822B(x)                                         \
-	(((x) & BIT_MASK_CSI_RPT_OFFSET_HT_8822B)                              \
-	 << BIT_SHIFT_CSI_RPT_OFFSET_HT_8822B)
-#define BIT_GET_CSI_RPT_OFFSET_HT_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_CSI_RPT_OFFSET_HT_8822B) &                          \
-	 BIT_MASK_CSI_RPT_OFFSET_HT_8822B)
-
-#define BIT_SHIFT_R_WMAC_VHT_CATEGORY_8822B 8
-#define BIT_MASK_R_WMAC_VHT_CATEGORY_8822B 0xff
-#define BIT_R_WMAC_VHT_CATEGORY_8822B(x)                                       \
-	(((x) & BIT_MASK_R_WMAC_VHT_CATEGORY_8822B)                            \
-	 << BIT_SHIFT_R_WMAC_VHT_CATEGORY_8822B)
-#define BIT_GET_R_WMAC_VHT_CATEGORY_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_WMAC_VHT_CATEGORY_8822B) &                        \
-	 BIT_MASK_R_WMAC_VHT_CATEGORY_8822B)
-
-#define BIT_R_WMAC_USE_NSTS_8822B BIT(7)
-#define BIT_R_DISABLE_CHECK_VHTSIGB_CRC_8822B BIT(6)
-#define BIT_R_DISABLE_CHECK_VHTSIGA_CRC_8822B BIT(5)
-#define BIT_R_WMAC_BFPARAM_SEL_8822B BIT(4)
-#define BIT_R_WMAC_CSISEQ_SEL_8822B BIT(3)
-#define BIT_R_WMAC_CSI_WITHHTC_EN_8822B BIT(2)
-#define BIT_R_WMAC_HT_NDPA_EN_8822B BIT(1)
-#define BIT_R_WMAC_VHT_NDPA_EN_8822B BIT(0)
-
-/* 2 REG_RX_CSI_RPT_INFO_8822B */
-
-/* 2 REG_NS_ARP_CTRL_8822B */
-#define BIT_R_WMAC_NSARP_RSPEN_8822B BIT(15)
-#define BIT_R_WMAC_NSARP_RARP_8822B BIT(9)
-#define BIT_R_WMAC_NSARP_RIPV6_8822B BIT(8)
-
-#define BIT_SHIFT_R_WMAC_NSARP_MODEN_8822B 6
-#define BIT_MASK_R_WMAC_NSARP_MODEN_8822B 0x3
-#define BIT_R_WMAC_NSARP_MODEN_8822B(x)                                        \
-	(((x) & BIT_MASK_R_WMAC_NSARP_MODEN_8822B)                             \
-	 << BIT_SHIFT_R_WMAC_NSARP_MODEN_8822B)
-#define BIT_GET_R_WMAC_NSARP_MODEN_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_R_WMAC_NSARP_MODEN_8822B) &                         \
-	 BIT_MASK_R_WMAC_NSARP_MODEN_8822B)
-
-#define BIT_SHIFT_R_WMAC_NSARP_RSPFTP_8822B 4
-#define BIT_MASK_R_WMAC_NSARP_RSPFTP_8822B 0x3
-#define BIT_R_WMAC_NSARP_RSPFTP_8822B(x)                                       \
-	(((x) & BIT_MASK_R_WMAC_NSARP_RSPFTP_8822B)                            \
-	 << BIT_SHIFT_R_WMAC_NSARP_RSPFTP_8822B)
-#define BIT_GET_R_WMAC_NSARP_RSPFTP_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPFTP_8822B) &                        \
-	 BIT_MASK_R_WMAC_NSARP_RSPFTP_8822B)
-
-#define BIT_SHIFT_R_WMAC_NSARP_RSPSEC_8822B 0
-#define BIT_MASK_R_WMAC_NSARP_RSPSEC_8822B 0xf
-#define BIT_R_WMAC_NSARP_RSPSEC_8822B(x)                                       \
-	(((x) & BIT_MASK_R_WMAC_NSARP_RSPSEC_8822B)                            \
-	 << BIT_SHIFT_R_WMAC_NSARP_RSPSEC_8822B)
-#define BIT_GET_R_WMAC_NSARP_RSPSEC_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPSEC_8822B) &                        \
-	 BIT_MASK_R_WMAC_NSARP_RSPSEC_8822B)
-
-/* 2 REG_NS_ARP_INFO_8822B */
-#define BIT_REQ_IS_MCNS_8822B BIT(23)
-#define BIT_REQ_IS_UCNS_8822B BIT(22)
-#define BIT_REQ_IS_USNS_8822B BIT(21)
-#define BIT_REQ_IS_ARP_8822B BIT(20)
-#define BIT_EXPRSP_MH_WITHQC_8822B BIT(19)
-
-#define BIT_SHIFT_EXPRSP_SECTYPE_8822B 16
-#define BIT_MASK_EXPRSP_SECTYPE_8822B 0x7
-#define BIT_EXPRSP_SECTYPE_8822B(x)                                            \
-	(((x) & BIT_MASK_EXPRSP_SECTYPE_8822B)                                 \
-	 << BIT_SHIFT_EXPRSP_SECTYPE_8822B)
-#define BIT_GET_EXPRSP_SECTYPE_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_EXPRSP_SECTYPE_8822B) &                             \
-	 BIT_MASK_EXPRSP_SECTYPE_8822B)
-
-#define BIT_SHIFT_EXPRSP_CHKSM_7_TO_0_8822B 8
-#define BIT_MASK_EXPRSP_CHKSM_7_TO_0_8822B 0xff
-#define BIT_EXPRSP_CHKSM_7_TO_0_8822B(x)                                       \
-	(((x) & BIT_MASK_EXPRSP_CHKSM_7_TO_0_8822B)                            \
-	 << BIT_SHIFT_EXPRSP_CHKSM_7_TO_0_8822B)
-#define BIT_GET_EXPRSP_CHKSM_7_TO_0_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_EXPRSP_CHKSM_7_TO_0_8822B) &                        \
-	 BIT_MASK_EXPRSP_CHKSM_7_TO_0_8822B)
-
-#define BIT_SHIFT_EXPRSP_CHKSM_15_TO_8_8822B 0
-#define BIT_MASK_EXPRSP_CHKSM_15_TO_8_8822B 0xff
-#define BIT_EXPRSP_CHKSM_15_TO_8_8822B(x)                                      \
-	(((x) & BIT_MASK_EXPRSP_CHKSM_15_TO_8_8822B)                           \
-	 << BIT_SHIFT_EXPRSP_CHKSM_15_TO_8_8822B)
-#define BIT_GET_EXPRSP_CHKSM_15_TO_8_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_EXPRSP_CHKSM_15_TO_8_8822B) &                       \
-	 BIT_MASK_EXPRSP_CHKSM_15_TO_8_8822B)
-
-/* 2 REG_BEAMFORMING_INFO_NSARP_V1_8822B */
-
-#define BIT_SHIFT_WMAC_ARPIP_8822B 0
-#define BIT_MASK_WMAC_ARPIP_8822B 0xffffffffL
-#define BIT_WMAC_ARPIP_8822B(x)                                                \
-	(((x) & BIT_MASK_WMAC_ARPIP_8822B) << BIT_SHIFT_WMAC_ARPIP_8822B)
-#define BIT_GET_WMAC_ARPIP_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_WMAC_ARPIP_8822B) & BIT_MASK_WMAC_ARPIP_8822B)
-
-/* 2 REG_BEAMFORMING_INFO_NSARP_8822B */
-
-#define BIT_SHIFT_BEAMFORMING_INFO_8822B 0
-#define BIT_MASK_BEAMFORMING_INFO_8822B 0xffffffffL
-#define BIT_BEAMFORMING_INFO_8822B(x)                                          \
-	(((x) & BIT_MASK_BEAMFORMING_INFO_8822B)                               \
-	 << BIT_SHIFT_BEAMFORMING_INFO_8822B)
-#define BIT_GET_BEAMFORMING_INFO_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BEAMFORMING_INFO_8822B) &                           \
-	 BIT_MASK_BEAMFORMING_INFO_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-#define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_8822B 0
-#define BIT_MASK_R_WMAC_IPV6_MYIPAD_8822B 0xffffffffffffffffffffffffffffffffL
-#define BIT_R_WMAC_IPV6_MYIPAD_8822B(x)                                        \
-	(((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_8822B)                             \
-	 << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_8822B)
-#define BIT_GET_R_WMAC_IPV6_MYIPAD_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_8822B) &                         \
-	 BIT_MASK_R_WMAC_IPV6_MYIPAD_8822B)
-
-/* 2 REG_RSVD_0X740_8822B */
-
-/* 2 REG_WMAC_RTX_CTX_SUBTYPE_CFG_8822B */
-
-#define BIT_SHIFT_R_WMAC_CTX_SUBTYPE_8822B 4
-#define BIT_MASK_R_WMAC_CTX_SUBTYPE_8822B 0xf
-#define BIT_R_WMAC_CTX_SUBTYPE_8822B(x)                                        \
-	(((x) & BIT_MASK_R_WMAC_CTX_SUBTYPE_8822B)                             \
-	 << BIT_SHIFT_R_WMAC_CTX_SUBTYPE_8822B)
-#define BIT_GET_R_WMAC_CTX_SUBTYPE_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_R_WMAC_CTX_SUBTYPE_8822B) &                         \
-	 BIT_MASK_R_WMAC_CTX_SUBTYPE_8822B)
-
-#define BIT_SHIFT_R_WMAC_RTX_SUBTYPE_8822B 0
-#define BIT_MASK_R_WMAC_RTX_SUBTYPE_8822B 0xf
-#define BIT_R_WMAC_RTX_SUBTYPE_8822B(x)                                        \
-	(((x) & BIT_MASK_R_WMAC_RTX_SUBTYPE_8822B)                             \
-	 << BIT_SHIFT_R_WMAC_RTX_SUBTYPE_8822B)
-#define BIT_GET_R_WMAC_RTX_SUBTYPE_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_R_WMAC_RTX_SUBTYPE_8822B) &                         \
-	 BIT_MASK_R_WMAC_RTX_SUBTYPE_8822B)
-
-/* 2 REG_WMAC_SWAES_CFG_8822B */
-
-/* 2 REG_BT_COEX_V2_8822B */
-#define BIT_GNT_BT_POLARITY_8822B BIT(12)
-#define BIT_GNT_BT_BYPASS_PRIORITY_8822B BIT(8)
-
-#define BIT_SHIFT_TIMER_8822B 0
-#define BIT_MASK_TIMER_8822B 0xff
-#define BIT_TIMER_8822B(x)                                                     \
-	(((x) & BIT_MASK_TIMER_8822B) << BIT_SHIFT_TIMER_8822B)
-#define BIT_GET_TIMER_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_TIMER_8822B) & BIT_MASK_TIMER_8822B)
-
-/* 2 REG_BT_COEX_8822B */
-#define BIT_R_GNT_BT_RFC_SW_8822B BIT(12)
-#define BIT_R_GNT_BT_RFC_SW_EN_8822B BIT(11)
-#define BIT_R_GNT_BT_BB_SW_8822B BIT(10)
-#define BIT_R_GNT_BT_BB_SW_EN_8822B BIT(9)
-#define BIT_R_BT_CNT_THREN_8822B BIT(8)
-
-#define BIT_SHIFT_R_BT_CNT_THR_8822B 0
-#define BIT_MASK_R_BT_CNT_THR_8822B 0xff
-#define BIT_R_BT_CNT_THR_8822B(x)                                              \
-	(((x) & BIT_MASK_R_BT_CNT_THR_8822B) << BIT_SHIFT_R_BT_CNT_THR_8822B)
-#define BIT_GET_R_BT_CNT_THR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_R_BT_CNT_THR_8822B) & BIT_MASK_R_BT_CNT_THR_8822B)
-
-/* 2 REG_WLAN_ACT_MASK_CTRL_8822B */
-#define BIT_WLRX_TER_BY_CTL_8822B BIT(43)
-#define BIT_WLRX_TER_BY_AD_8822B BIT(42)
-#define BIT_ANT_DIVERSITY_SEL_8822B BIT(41)
-#define BIT_ANTSEL_FOR_BT_CTRL_EN_8822B BIT(40)
-#define BIT_WLACT_LOW_GNTWL_EN_8822B BIT(34)
-#define BIT_WLACT_HIGH_GNTBT_EN_8822B BIT(33)
-#define BIT_NAV_UPPER_V1_8822B BIT(32)
-
-#define BIT_SHIFT_RXMYRTS_NAV_V1_8822B 8
-#define BIT_MASK_RXMYRTS_NAV_V1_8822B 0xff
-#define BIT_RXMYRTS_NAV_V1_8822B(x)                                            \
-	(((x) & BIT_MASK_RXMYRTS_NAV_V1_8822B)                                 \
-	 << BIT_SHIFT_RXMYRTS_NAV_V1_8822B)
-#define BIT_GET_RXMYRTS_NAV_V1_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_RXMYRTS_NAV_V1_8822B) &                             \
-	 BIT_MASK_RXMYRTS_NAV_V1_8822B)
-
-#define BIT_SHIFT_RTSRST_V1_8822B 0
-#define BIT_MASK_RTSRST_V1_8822B 0xff
-#define BIT_RTSRST_V1_8822B(x)                                                 \
-	(((x) & BIT_MASK_RTSRST_V1_8822B) << BIT_SHIFT_RTSRST_V1_8822B)
-#define BIT_GET_RTSRST_V1_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_RTSRST_V1_8822B) & BIT_MASK_RTSRST_V1_8822B)
-
-/* 2 REG_BT_COEX_ENHANCED_INTR_CTRL_8822B */
-
-#define BIT_SHIFT_BT_STAT_DELAY_8822B 12
-#define BIT_MASK_BT_STAT_DELAY_8822B 0xf
-#define BIT_BT_STAT_DELAY_8822B(x)                                             \
-	(((x) & BIT_MASK_BT_STAT_DELAY_8822B) << BIT_SHIFT_BT_STAT_DELAY_8822B)
-#define BIT_GET_BT_STAT_DELAY_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_BT_STAT_DELAY_8822B) & BIT_MASK_BT_STAT_DELAY_8822B)
-
-#define BIT_SHIFT_BT_TRX_INIT_DETECT_8822B 8
-#define BIT_MASK_BT_TRX_INIT_DETECT_8822B 0xf
-#define BIT_BT_TRX_INIT_DETECT_8822B(x)                                        \
-	(((x) & BIT_MASK_BT_TRX_INIT_DETECT_8822B)                             \
-	 << BIT_SHIFT_BT_TRX_INIT_DETECT_8822B)
-#define BIT_GET_BT_TRX_INIT_DETECT_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_BT_TRX_INIT_DETECT_8822B) &                         \
-	 BIT_MASK_BT_TRX_INIT_DETECT_8822B)
-
-#define BIT_SHIFT_BT_PRI_DETECT_TO_8822B 4
-#define BIT_MASK_BT_PRI_DETECT_TO_8822B 0xf
-#define BIT_BT_PRI_DETECT_TO_8822B(x)                                          \
-	(((x) & BIT_MASK_BT_PRI_DETECT_TO_8822B)                               \
-	 << BIT_SHIFT_BT_PRI_DETECT_TO_8822B)
-#define BIT_GET_BT_PRI_DETECT_TO_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_BT_PRI_DETECT_TO_8822B) &                           \
-	 BIT_MASK_BT_PRI_DETECT_TO_8822B)
-
-#define BIT_R_GRANTALL_WLMASK_8822B BIT(3)
-#define BIT_STATIS_BT_EN_8822B BIT(2)
-#define BIT_WL_ACT_MASK_ENABLE_8822B BIT(1)
-#define BIT_ENHANCED_BT_8822B BIT(0)
-
-/* 2 REG_BT_ACT_STATISTICS_8822B */
-
-#define BIT_SHIFT_STATIS_BT_LO_RX_8822B (48 & CPU_OPT_WIDTH)
-#define BIT_MASK_STATIS_BT_LO_RX_8822B 0xffff
-#define BIT_STATIS_BT_LO_RX_8822B(x)                                           \
-	(((x) & BIT_MASK_STATIS_BT_LO_RX_8822B)                                \
-	 << BIT_SHIFT_STATIS_BT_LO_RX_8822B)
-#define BIT_GET_STATIS_BT_LO_RX_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_STATIS_BT_LO_RX_8822B) &                            \
-	 BIT_MASK_STATIS_BT_LO_RX_8822B)
-
-#define BIT_SHIFT_STATIS_BT_LO_TX_8822B (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_STATIS_BT_LO_TX_8822B 0xffff
-#define BIT_STATIS_BT_LO_TX_8822B(x)                                           \
-	(((x) & BIT_MASK_STATIS_BT_LO_TX_8822B)                                \
-	 << BIT_SHIFT_STATIS_BT_LO_TX_8822B)
-#define BIT_GET_STATIS_BT_LO_TX_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_STATIS_BT_LO_TX_8822B) &                            \
-	 BIT_MASK_STATIS_BT_LO_TX_8822B)
-
-#define BIT_SHIFT_STATIS_BT_HI_RX_8822B 16
-#define BIT_MASK_STATIS_BT_HI_RX_8822B 0xffff
-#define BIT_STATIS_BT_HI_RX_8822B(x)                                           \
-	(((x) & BIT_MASK_STATIS_BT_HI_RX_8822B)                                \
-	 << BIT_SHIFT_STATIS_BT_HI_RX_8822B)
-#define BIT_GET_STATIS_BT_HI_RX_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_STATIS_BT_HI_RX_8822B) &                            \
-	 BIT_MASK_STATIS_BT_HI_RX_8822B)
-
-#define BIT_SHIFT_STATIS_BT_HI_TX_8822B 0
-#define BIT_MASK_STATIS_BT_HI_TX_8822B 0xffff
-#define BIT_STATIS_BT_HI_TX_8822B(x)                                           \
-	(((x) & BIT_MASK_STATIS_BT_HI_TX_8822B)                                \
-	 << BIT_SHIFT_STATIS_BT_HI_TX_8822B)
-#define BIT_GET_STATIS_BT_HI_TX_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_STATIS_BT_HI_TX_8822B) &                            \
-	 BIT_MASK_STATIS_BT_HI_TX_8822B)
-
-/* 2 REG_BT_STATISTICS_CONTROL_REGISTER_8822B */
-
-#define BIT_SHIFT_R_BT_CMD_RPT_8822B 16
-#define BIT_MASK_R_BT_CMD_RPT_8822B 0xffff
-#define BIT_R_BT_CMD_RPT_8822B(x)                                              \
-	(((x) & BIT_MASK_R_BT_CMD_RPT_8822B) << BIT_SHIFT_R_BT_CMD_RPT_8822B)
-#define BIT_GET_R_BT_CMD_RPT_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_R_BT_CMD_RPT_8822B) & BIT_MASK_R_BT_CMD_RPT_8822B)
-
-#define BIT_SHIFT_R_RPT_FROM_BT_8822B 8
-#define BIT_MASK_R_RPT_FROM_BT_8822B 0xff
-#define BIT_R_RPT_FROM_BT_8822B(x)                                             \
-	(((x) & BIT_MASK_R_RPT_FROM_BT_8822B) << BIT_SHIFT_R_RPT_FROM_BT_8822B)
-#define BIT_GET_R_RPT_FROM_BT_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_R_RPT_FROM_BT_8822B) & BIT_MASK_R_RPT_FROM_BT_8822B)
-
-#define BIT_SHIFT_BT_HID_ISR_SET_8822B 6
-#define BIT_MASK_BT_HID_ISR_SET_8822B 0x3
-#define BIT_BT_HID_ISR_SET_8822B(x)                                            \
-	(((x) & BIT_MASK_BT_HID_ISR_SET_8822B)                                 \
-	 << BIT_SHIFT_BT_HID_ISR_SET_8822B)
-#define BIT_GET_BT_HID_ISR_SET_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_BT_HID_ISR_SET_8822B) &                             \
-	 BIT_MASK_BT_HID_ISR_SET_8822B)
-
-#define BIT_TDMA_BT_START_NOTIFY_8822B BIT(5)
-#define BIT_ENABLE_TDMA_FW_MODE_8822B BIT(4)
-#define BIT_ENABLE_PTA_TDMA_MODE_8822B BIT(3)
-#define BIT_ENABLE_COEXIST_TAB_IN_TDMA_8822B BIT(2)
-#define BIT_GPIO2_GPIO3_EXANGE_OR_NO_BT_CCA_8822B BIT(1)
-#define BIT_RTK_BT_ENABLE_8822B BIT(0)
-
-/* 2 REG_BT_STATUS_REPORT_REGISTER_8822B */
-
-#define BIT_SHIFT_BT_PROFILE_8822B 24
-#define BIT_MASK_BT_PROFILE_8822B 0xff
-#define BIT_BT_PROFILE_8822B(x)                                                \
-	(((x) & BIT_MASK_BT_PROFILE_8822B) << BIT_SHIFT_BT_PROFILE_8822B)
-#define BIT_GET_BT_PROFILE_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_BT_PROFILE_8822B) & BIT_MASK_BT_PROFILE_8822B)
-
-#define BIT_SHIFT_BT_POWER_8822B 16
-#define BIT_MASK_BT_POWER_8822B 0xff
-#define BIT_BT_POWER_8822B(x)                                                  \
-	(((x) & BIT_MASK_BT_POWER_8822B) << BIT_SHIFT_BT_POWER_8822B)
-#define BIT_GET_BT_POWER_8822B(x)                                              \
-	(((x) >> BIT_SHIFT_BT_POWER_8822B) & BIT_MASK_BT_POWER_8822B)
-
-#define BIT_SHIFT_BT_PREDECT_STATUS_8822B 8
-#define BIT_MASK_BT_PREDECT_STATUS_8822B 0xff
-#define BIT_BT_PREDECT_STATUS_8822B(x)                                         \
-	(((x) & BIT_MASK_BT_PREDECT_STATUS_8822B)                              \
-	 << BIT_SHIFT_BT_PREDECT_STATUS_8822B)
-#define BIT_GET_BT_PREDECT_STATUS_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_BT_PREDECT_STATUS_8822B) &                          \
-	 BIT_MASK_BT_PREDECT_STATUS_8822B)
-
-#define BIT_SHIFT_BT_CMD_INFO_8822B 0
-#define BIT_MASK_BT_CMD_INFO_8822B 0xff
-#define BIT_BT_CMD_INFO_8822B(x)                                               \
-	(((x) & BIT_MASK_BT_CMD_INFO_8822B) << BIT_SHIFT_BT_CMD_INFO_8822B)
-#define BIT_GET_BT_CMD_INFO_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_BT_CMD_INFO_8822B) & BIT_MASK_BT_CMD_INFO_8822B)
-
-/* 2 REG_BT_INTERRUPT_CONTROL_REGISTER_8822B */
-#define BIT_EN_MAC_NULL_PKT_NOTIFY_8822B BIT(31)
-#define BIT_EN_WLAN_RPT_AND_BT_QUERY_8822B BIT(30)
-#define BIT_EN_BT_STSTUS_RPT_8822B BIT(29)
-#define BIT_EN_BT_POWER_8822B BIT(28)
-#define BIT_EN_BT_CHANNEL_8822B BIT(27)
-#define BIT_EN_BT_SLOT_CHANGE_8822B BIT(26)
-#define BIT_EN_BT_PROFILE_OR_HID_8822B BIT(25)
-#define BIT_WLAN_RPT_NOTIFY_8822B BIT(24)
-
-#define BIT_SHIFT_WLAN_RPT_DATA_8822B 16
-#define BIT_MASK_WLAN_RPT_DATA_8822B 0xff
-#define BIT_WLAN_RPT_DATA_8822B(x)                                             \
-	(((x) & BIT_MASK_WLAN_RPT_DATA_8822B) << BIT_SHIFT_WLAN_RPT_DATA_8822B)
-#define BIT_GET_WLAN_RPT_DATA_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_WLAN_RPT_DATA_8822B) & BIT_MASK_WLAN_RPT_DATA_8822B)
-
-#define BIT_SHIFT_CMD_ID_8822B 8
-#define BIT_MASK_CMD_ID_8822B 0xff
-#define BIT_CMD_ID_8822B(x)                                                    \
-	(((x) & BIT_MASK_CMD_ID_8822B) << BIT_SHIFT_CMD_ID_8822B)
-#define BIT_GET_CMD_ID_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_CMD_ID_8822B) & BIT_MASK_CMD_ID_8822B)
-
-#define BIT_SHIFT_BT_DATA_8822B 0
-#define BIT_MASK_BT_DATA_8822B 0xff
-#define BIT_BT_DATA_8822B(x)                                                   \
-	(((x) & BIT_MASK_BT_DATA_8822B) << BIT_SHIFT_BT_DATA_8822B)
-#define BIT_GET_BT_DATA_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_BT_DATA_8822B) & BIT_MASK_BT_DATA_8822B)
-
-/* 2 REG_WLAN_REPORT_TIME_OUT_CONTROL_REGISTER_8822B */
-
-#define BIT_SHIFT_WLAN_RPT_TO_8822B 0
-#define BIT_MASK_WLAN_RPT_TO_8822B 0xff
-#define BIT_WLAN_RPT_TO_8822B(x)                                               \
-	(((x) & BIT_MASK_WLAN_RPT_TO_8822B) << BIT_SHIFT_WLAN_RPT_TO_8822B)
-#define BIT_GET_WLAN_RPT_TO_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_WLAN_RPT_TO_8822B) & BIT_MASK_WLAN_RPT_TO_8822B)
-
-/* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER_8822B */
-
-#define BIT_SHIFT_ISOLATION_CHK_8822B 1
-#define BIT_MASK_ISOLATION_CHK_8822B 0x7fffffffffffffffffffL
-#define BIT_ISOLATION_CHK_8822B(x)                                             \
-	(((x) & BIT_MASK_ISOLATION_CHK_8822B) << BIT_SHIFT_ISOLATION_CHK_8822B)
-#define BIT_GET_ISOLATION_CHK_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_ISOLATION_CHK_8822B) & BIT_MASK_ISOLATION_CHK_8822B)
-
-#define BIT_ISOLATION_EN_8822B BIT(0)
-
-/* 2 REG_BT_INTERRUPT_STATUS_REGISTER_8822B */
-#define BIT_BT_HID_ISR_8822B BIT(7)
-#define BIT_BT_QUERY_ISR_8822B BIT(6)
-#define BIT_MAC_NULL_PKT_NOTIFY_ISR_8822B BIT(5)
-#define BIT_WLAN_RPT_ISR_8822B BIT(4)
-#define BIT_BT_POWER_ISR_8822B BIT(3)
-#define BIT_BT_CHANNEL_ISR_8822B BIT(2)
-#define BIT_BT_SLOT_CHANGE_ISR_8822B BIT(1)
-#define BIT_BT_PROFILE_ISR_8822B BIT(0)
-
-/* 2 REG_BT_TDMA_TIME_REGISTER_8822B */
-
-#define BIT_SHIFT_BT_TIME_8822B 6
-#define BIT_MASK_BT_TIME_8822B 0x3ffffff
-#define BIT_BT_TIME_8822B(x)                                                   \
-	(((x) & BIT_MASK_BT_TIME_8822B) << BIT_SHIFT_BT_TIME_8822B)
-#define BIT_GET_BT_TIME_8822B(x)                                               \
-	(((x) >> BIT_SHIFT_BT_TIME_8822B) & BIT_MASK_BT_TIME_8822B)
-
-#define BIT_SHIFT_BT_RPT_SAMPLE_RATE_8822B 0
-#define BIT_MASK_BT_RPT_SAMPLE_RATE_8822B 0x3f
-#define BIT_BT_RPT_SAMPLE_RATE_8822B(x)                                        \
-	(((x) & BIT_MASK_BT_RPT_SAMPLE_RATE_8822B)                             \
-	 << BIT_SHIFT_BT_RPT_SAMPLE_RATE_8822B)
-#define BIT_GET_BT_RPT_SAMPLE_RATE_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_BT_RPT_SAMPLE_RATE_8822B) &                         \
-	 BIT_MASK_BT_RPT_SAMPLE_RATE_8822B)
-
-/* 2 REG_BT_ACT_REGISTER_8822B */
-
-#define BIT_SHIFT_BT_EISR_EN_8822B 16
-#define BIT_MASK_BT_EISR_EN_8822B 0xff
-#define BIT_BT_EISR_EN_8822B(x)                                                \
-	(((x) & BIT_MASK_BT_EISR_EN_8822B) << BIT_SHIFT_BT_EISR_EN_8822B)
-#define BIT_GET_BT_EISR_EN_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_BT_EISR_EN_8822B) & BIT_MASK_BT_EISR_EN_8822B)
-
-#define BIT_BT_ACT_FALLING_ISR_8822B BIT(10)
-#define BIT_BT_ACT_RISING_ISR_8822B BIT(9)
-#define BIT_TDMA_TO_ISR_8822B BIT(8)
-
-#define BIT_SHIFT_BT_CH_8822B 0
-#define BIT_MASK_BT_CH_8822B 0xff
-#define BIT_BT_CH_8822B(x)                                                     \
-	(((x) & BIT_MASK_BT_CH_8822B) << BIT_SHIFT_BT_CH_8822B)
-#define BIT_GET_BT_CH_8822B(x)                                                 \
-	(((x) >> BIT_SHIFT_BT_CH_8822B) & BIT_MASK_BT_CH_8822B)
-
-/* 2 REG_OBFF_CTRL_BASIC_8822B */
-#define BIT_OBFF_EN_V1_8822B BIT(31)
-
-#define BIT_SHIFT_OBFF_STATE_V1_8822B 28
-#define BIT_MASK_OBFF_STATE_V1_8822B 0x3
-#define BIT_OBFF_STATE_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_OBFF_STATE_V1_8822B) << BIT_SHIFT_OBFF_STATE_V1_8822B)
-#define BIT_GET_OBFF_STATE_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_OBFF_STATE_V1_8822B) & BIT_MASK_OBFF_STATE_V1_8822B)
-
-#define BIT_OBFF_ACT_RXDMA_EN_8822B BIT(27)
-#define BIT_OBFF_BLOCK_INT_EN_8822B BIT(26)
-#define BIT_OBFF_AUTOACT_EN_8822B BIT(25)
-#define BIT_OBFF_AUTOIDLE_EN_8822B BIT(24)
-
-#define BIT_SHIFT_WAKE_MAX_PLS_8822B 20
-#define BIT_MASK_WAKE_MAX_PLS_8822B 0x7
-#define BIT_WAKE_MAX_PLS_8822B(x)                                              \
-	(((x) & BIT_MASK_WAKE_MAX_PLS_8822B) << BIT_SHIFT_WAKE_MAX_PLS_8822B)
-#define BIT_GET_WAKE_MAX_PLS_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_WAKE_MAX_PLS_8822B) & BIT_MASK_WAKE_MAX_PLS_8822B)
-
-#define BIT_SHIFT_WAKE_MIN_PLS_8822B 16
-#define BIT_MASK_WAKE_MIN_PLS_8822B 0x7
-#define BIT_WAKE_MIN_PLS_8822B(x)                                              \
-	(((x) & BIT_MASK_WAKE_MIN_PLS_8822B) << BIT_SHIFT_WAKE_MIN_PLS_8822B)
-#define BIT_GET_WAKE_MIN_PLS_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_WAKE_MIN_PLS_8822B) & BIT_MASK_WAKE_MIN_PLS_8822B)
-
-#define BIT_SHIFT_WAKE_MAX_F2F_8822B 12
-#define BIT_MASK_WAKE_MAX_F2F_8822B 0x7
-#define BIT_WAKE_MAX_F2F_8822B(x)                                              \
-	(((x) & BIT_MASK_WAKE_MAX_F2F_8822B) << BIT_SHIFT_WAKE_MAX_F2F_8822B)
-#define BIT_GET_WAKE_MAX_F2F_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_WAKE_MAX_F2F_8822B) & BIT_MASK_WAKE_MAX_F2F_8822B)
-
-#define BIT_SHIFT_WAKE_MIN_F2F_8822B 8
-#define BIT_MASK_WAKE_MIN_F2F_8822B 0x7
-#define BIT_WAKE_MIN_F2F_8822B(x)                                              \
-	(((x) & BIT_MASK_WAKE_MIN_F2F_8822B) << BIT_SHIFT_WAKE_MIN_F2F_8822B)
-#define BIT_GET_WAKE_MIN_F2F_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_WAKE_MIN_F2F_8822B) & BIT_MASK_WAKE_MIN_F2F_8822B)
-
-#define BIT_APP_CPU_ACT_V1_8822B BIT(3)
-#define BIT_APP_OBFF_V1_8822B BIT(2)
-#define BIT_APP_IDLE_V1_8822B BIT(1)
-#define BIT_APP_INIT_V1_8822B BIT(0)
-
-/* 2 REG_OBFF_CTRL2_TIMER_8822B */
-
-#define BIT_SHIFT_RX_HIGH_TIMER_IDX_8822B 24
-#define BIT_MASK_RX_HIGH_TIMER_IDX_8822B 0x7
-#define BIT_RX_HIGH_TIMER_IDX_8822B(x)                                         \
-	(((x) & BIT_MASK_RX_HIGH_TIMER_IDX_8822B)                              \
-	 << BIT_SHIFT_RX_HIGH_TIMER_IDX_8822B)
-#define BIT_GET_RX_HIGH_TIMER_IDX_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_RX_HIGH_TIMER_IDX_8822B) &                          \
-	 BIT_MASK_RX_HIGH_TIMER_IDX_8822B)
-
-#define BIT_SHIFT_RX_MED_TIMER_IDX_8822B 16
-#define BIT_MASK_RX_MED_TIMER_IDX_8822B 0x7
-#define BIT_RX_MED_TIMER_IDX_8822B(x)                                          \
-	(((x) & BIT_MASK_RX_MED_TIMER_IDX_8822B)                               \
-	 << BIT_SHIFT_RX_MED_TIMER_IDX_8822B)
-#define BIT_GET_RX_MED_TIMER_IDX_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_RX_MED_TIMER_IDX_8822B) &                           \
-	 BIT_MASK_RX_MED_TIMER_IDX_8822B)
-
-#define BIT_SHIFT_RX_LOW_TIMER_IDX_8822B 8
-#define BIT_MASK_RX_LOW_TIMER_IDX_8822B 0x7
-#define BIT_RX_LOW_TIMER_IDX_8822B(x)                                          \
-	(((x) & BIT_MASK_RX_LOW_TIMER_IDX_8822B)                               \
-	 << BIT_SHIFT_RX_LOW_TIMER_IDX_8822B)
-#define BIT_GET_RX_LOW_TIMER_IDX_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_RX_LOW_TIMER_IDX_8822B) &                           \
-	 BIT_MASK_RX_LOW_TIMER_IDX_8822B)
-
-#define BIT_SHIFT_OBFF_INT_TIMER_IDX_8822B 0
-#define BIT_MASK_OBFF_INT_TIMER_IDX_8822B 0x7
-#define BIT_OBFF_INT_TIMER_IDX_8822B(x)                                        \
-	(((x) & BIT_MASK_OBFF_INT_TIMER_IDX_8822B)                             \
-	 << BIT_SHIFT_OBFF_INT_TIMER_IDX_8822B)
-#define BIT_GET_OBFF_INT_TIMER_IDX_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_OBFF_INT_TIMER_IDX_8822B) &                         \
-	 BIT_MASK_OBFF_INT_TIMER_IDX_8822B)
-
-/* 2 REG_LTR_CTRL_BASIC_8822B */
-#define BIT_LTR_EN_V1_8822B BIT(31)
-#define BIT_LTR_HW_EN_V1_8822B BIT(30)
-#define BIT_LRT_ACT_CTS_EN_8822B BIT(29)
-#define BIT_LTR_ACT_RXPKT_EN_8822B BIT(28)
-#define BIT_LTR_ACT_RXDMA_EN_8822B BIT(27)
-#define BIT_LTR_IDLE_NO_SNOOP_8822B BIT(26)
-#define BIT_SPDUP_MGTPKT_8822B BIT(25)
-#define BIT_RX_AGG_EN_8822B BIT(24)
-#define BIT_APP_LTR_ACT_8822B BIT(23)
-#define BIT_APP_LTR_IDLE_8822B BIT(22)
-
-#define BIT_SHIFT_HIGH_RATE_TRIG_SEL_8822B 20
-#define BIT_MASK_HIGH_RATE_TRIG_SEL_8822B 0x3
-#define BIT_HIGH_RATE_TRIG_SEL_8822B(x)                                        \
-	(((x) & BIT_MASK_HIGH_RATE_TRIG_SEL_8822B)                             \
-	 << BIT_SHIFT_HIGH_RATE_TRIG_SEL_8822B)
-#define BIT_GET_HIGH_RATE_TRIG_SEL_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_HIGH_RATE_TRIG_SEL_8822B) &                         \
-	 BIT_MASK_HIGH_RATE_TRIG_SEL_8822B)
-
-#define BIT_SHIFT_MED_RATE_TRIG_SEL_8822B 18
-#define BIT_MASK_MED_RATE_TRIG_SEL_8822B 0x3
-#define BIT_MED_RATE_TRIG_SEL_8822B(x)                                         \
-	(((x) & BIT_MASK_MED_RATE_TRIG_SEL_8822B)                              \
-	 << BIT_SHIFT_MED_RATE_TRIG_SEL_8822B)
-#define BIT_GET_MED_RATE_TRIG_SEL_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_MED_RATE_TRIG_SEL_8822B) &                          \
-	 BIT_MASK_MED_RATE_TRIG_SEL_8822B)
-
-#define BIT_SHIFT_LOW_RATE_TRIG_SEL_8822B 16
-#define BIT_MASK_LOW_RATE_TRIG_SEL_8822B 0x3
-#define BIT_LOW_RATE_TRIG_SEL_8822B(x)                                         \
-	(((x) & BIT_MASK_LOW_RATE_TRIG_SEL_8822B)                              \
-	 << BIT_SHIFT_LOW_RATE_TRIG_SEL_8822B)
-#define BIT_GET_LOW_RATE_TRIG_SEL_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_LOW_RATE_TRIG_SEL_8822B) &                          \
-	 BIT_MASK_LOW_RATE_TRIG_SEL_8822B)
-
-#define BIT_SHIFT_HIGH_RATE_BD_IDX_8822B 8
-#define BIT_MASK_HIGH_RATE_BD_IDX_8822B 0x7f
-#define BIT_HIGH_RATE_BD_IDX_8822B(x)                                          \
-	(((x) & BIT_MASK_HIGH_RATE_BD_IDX_8822B)                               \
-	 << BIT_SHIFT_HIGH_RATE_BD_IDX_8822B)
-#define BIT_GET_HIGH_RATE_BD_IDX_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_HIGH_RATE_BD_IDX_8822B) &                           \
-	 BIT_MASK_HIGH_RATE_BD_IDX_8822B)
-
-#define BIT_SHIFT_LOW_RATE_BD_IDX_8822B 0
-#define BIT_MASK_LOW_RATE_BD_IDX_8822B 0x7f
-#define BIT_LOW_RATE_BD_IDX_8822B(x)                                           \
-	(((x) & BIT_MASK_LOW_RATE_BD_IDX_8822B)                                \
-	 << BIT_SHIFT_LOW_RATE_BD_IDX_8822B)
-#define BIT_GET_LOW_RATE_BD_IDX_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_LOW_RATE_BD_IDX_8822B) &                            \
-	 BIT_MASK_LOW_RATE_BD_IDX_8822B)
-
-/* 2 REG_LTR_CTRL2_TIMER_THRESHOLD_8822B */
-
-#define BIT_SHIFT_RX_EMPTY_TIMER_IDX_8822B 24
-#define BIT_MASK_RX_EMPTY_TIMER_IDX_8822B 0x7
-#define BIT_RX_EMPTY_TIMER_IDX_8822B(x)                                        \
-	(((x) & BIT_MASK_RX_EMPTY_TIMER_IDX_8822B)                             \
-	 << BIT_SHIFT_RX_EMPTY_TIMER_IDX_8822B)
-#define BIT_GET_RX_EMPTY_TIMER_IDX_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_RX_EMPTY_TIMER_IDX_8822B) &                         \
-	 BIT_MASK_RX_EMPTY_TIMER_IDX_8822B)
-
-#define BIT_SHIFT_RX_AFULL_TH_IDX_8822B 20
-#define BIT_MASK_RX_AFULL_TH_IDX_8822B 0x7
-#define BIT_RX_AFULL_TH_IDX_8822B(x)                                           \
-	(((x) & BIT_MASK_RX_AFULL_TH_IDX_8822B)                                \
-	 << BIT_SHIFT_RX_AFULL_TH_IDX_8822B)
-#define BIT_GET_RX_AFULL_TH_IDX_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_RX_AFULL_TH_IDX_8822B) &                            \
-	 BIT_MASK_RX_AFULL_TH_IDX_8822B)
-
-#define BIT_SHIFT_RX_HIGH_TH_IDX_8822B 16
-#define BIT_MASK_RX_HIGH_TH_IDX_8822B 0x7
-#define BIT_RX_HIGH_TH_IDX_8822B(x)                                            \
-	(((x) & BIT_MASK_RX_HIGH_TH_IDX_8822B)                                 \
-	 << BIT_SHIFT_RX_HIGH_TH_IDX_8822B)
-#define BIT_GET_RX_HIGH_TH_IDX_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_RX_HIGH_TH_IDX_8822B) &                             \
-	 BIT_MASK_RX_HIGH_TH_IDX_8822B)
-
-#define BIT_SHIFT_RX_MED_TH_IDX_8822B 12
-#define BIT_MASK_RX_MED_TH_IDX_8822B 0x7
-#define BIT_RX_MED_TH_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_RX_MED_TH_IDX_8822B) << BIT_SHIFT_RX_MED_TH_IDX_8822B)
-#define BIT_GET_RX_MED_TH_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_RX_MED_TH_IDX_8822B) & BIT_MASK_RX_MED_TH_IDX_8822B)
-
-#define BIT_SHIFT_RX_LOW_TH_IDX_8822B 8
-#define BIT_MASK_RX_LOW_TH_IDX_8822B 0x7
-#define BIT_RX_LOW_TH_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_RX_LOW_TH_IDX_8822B) << BIT_SHIFT_RX_LOW_TH_IDX_8822B)
-#define BIT_GET_RX_LOW_TH_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_RX_LOW_TH_IDX_8822B) & BIT_MASK_RX_LOW_TH_IDX_8822B)
-
-#define BIT_SHIFT_LTR_SPACE_IDX_8822B 4
-#define BIT_MASK_LTR_SPACE_IDX_8822B 0x3
-#define BIT_LTR_SPACE_IDX_8822B(x)                                             \
-	(((x) & BIT_MASK_LTR_SPACE_IDX_8822B) << BIT_SHIFT_LTR_SPACE_IDX_8822B)
-#define BIT_GET_LTR_SPACE_IDX_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_LTR_SPACE_IDX_8822B) & BIT_MASK_LTR_SPACE_IDX_8822B)
-
-#define BIT_SHIFT_LTR_IDLE_TIMER_IDX_8822B 0
-#define BIT_MASK_LTR_IDLE_TIMER_IDX_8822B 0x7
-#define BIT_LTR_IDLE_TIMER_IDX_8822B(x)                                        \
-	(((x) & BIT_MASK_LTR_IDLE_TIMER_IDX_8822B)                             \
-	 << BIT_SHIFT_LTR_IDLE_TIMER_IDX_8822B)
-#define BIT_GET_LTR_IDLE_TIMER_IDX_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_LTR_IDLE_TIMER_IDX_8822B) &                         \
-	 BIT_MASK_LTR_IDLE_TIMER_IDX_8822B)
-
-/* 2 REG_LTR_IDLE_LATENCY_V1_8822B */
-
-#define BIT_SHIFT_LTR_IDLE_L_8822B 0
-#define BIT_MASK_LTR_IDLE_L_8822B 0xffffffffL
-#define BIT_LTR_IDLE_L_8822B(x)                                                \
-	(((x) & BIT_MASK_LTR_IDLE_L_8822B) << BIT_SHIFT_LTR_IDLE_L_8822B)
-#define BIT_GET_LTR_IDLE_L_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_LTR_IDLE_L_8822B) & BIT_MASK_LTR_IDLE_L_8822B)
-
-/* 2 REG_LTR_ACTIVE_LATENCY_V1_8822B */
-
-#define BIT_SHIFT_LTR_ACT_L_8822B 0
-#define BIT_MASK_LTR_ACT_L_8822B 0xffffffffL
-#define BIT_LTR_ACT_L_8822B(x)                                                 \
-	(((x) & BIT_MASK_LTR_ACT_L_8822B) << BIT_SHIFT_LTR_ACT_L_8822B)
-#define BIT_GET_LTR_ACT_L_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_LTR_ACT_L_8822B) & BIT_MASK_LTR_ACT_L_8822B)
-
-/* 2 REG_ANTENNA_TRAINING_CONTROL_REGISTER_8822B */
-#define BIT_APPEND_MACID_IN_RESP_EN_8822B BIT(50)
-#define BIT_ADDR2_MATCH_EN_8822B BIT(49)
-#define BIT_ANTTRN_EN_8822B BIT(48)
-
-#define BIT_SHIFT_TRAIN_STA_ADDR_8822B 0
-#define BIT_MASK_TRAIN_STA_ADDR_8822B 0xffffffffffffL
-#define BIT_TRAIN_STA_ADDR_8822B(x)                                            \
-	(((x) & BIT_MASK_TRAIN_STA_ADDR_8822B)                                 \
-	 << BIT_SHIFT_TRAIN_STA_ADDR_8822B)
-#define BIT_GET_TRAIN_STA_ADDR_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_TRAIN_STA_ADDR_8822B) &                             \
-	 BIT_MASK_TRAIN_STA_ADDR_8822B)
-
-/* 2 REG_RSVD_0X7B4_8822B */
-
-/* 2 REG_WMAC_PKTCNT_RWD_8822B */
-
-#define BIT_SHIFT_PKTCNT_BSSIDMAP_8822B 4
-#define BIT_MASK_PKTCNT_BSSIDMAP_8822B 0xf
-#define BIT_PKTCNT_BSSIDMAP_8822B(x)                                           \
-	(((x) & BIT_MASK_PKTCNT_BSSIDMAP_8822B)                                \
-	 << BIT_SHIFT_PKTCNT_BSSIDMAP_8822B)
-#define BIT_GET_PKTCNT_BSSIDMAP_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_PKTCNT_BSSIDMAP_8822B) &                            \
-	 BIT_MASK_PKTCNT_BSSIDMAP_8822B)
-
-#define BIT_PKTCNT_CNTRST_8822B BIT(1)
-#define BIT_PKTCNT_CNTEN_8822B BIT(0)
-
-/* 2 REG_WMAC_PKTCNT_CTRL_8822B */
-#define BIT_WMAC_PKTCNT_TRST_8822B BIT(9)
-#define BIT_WMAC_PKTCNT_FEN_8822B BIT(8)
-
-#define BIT_SHIFT_WMAC_PKTCNT_CFGAD_8822B 0
-#define BIT_MASK_WMAC_PKTCNT_CFGAD_8822B 0xff
-#define BIT_WMAC_PKTCNT_CFGAD_8822B(x)                                         \
-	(((x) & BIT_MASK_WMAC_PKTCNT_CFGAD_8822B)                              \
-	 << BIT_SHIFT_WMAC_PKTCNT_CFGAD_8822B)
-#define BIT_GET_WMAC_PKTCNT_CFGAD_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_WMAC_PKTCNT_CFGAD_8822B) &                          \
-	 BIT_MASK_WMAC_PKTCNT_CFGAD_8822B)
-
-/* 2 REG_IQ_DUMP_8822B */
-
-#define BIT_SHIFT_R_WMAC_MATCH_REF_MAC_8822B (64 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_MATCH_REF_MAC_8822B 0xffffffffL
-#define BIT_R_WMAC_MATCH_REF_MAC_8822B(x)                                      \
-	(((x) & BIT_MASK_R_WMAC_MATCH_REF_MAC_8822B)                           \
-	 << BIT_SHIFT_R_WMAC_MATCH_REF_MAC_8822B)
-#define BIT_GET_R_WMAC_MATCH_REF_MAC_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_R_WMAC_MATCH_REF_MAC_8822B) &                       \
-	 BIT_MASK_R_WMAC_MATCH_REF_MAC_8822B)
-
-#define BIT_SHIFT_R_WMAC_MASK_LA_MAC_8822B (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_MASK_LA_MAC_8822B 0xffffffffL
-#define BIT_R_WMAC_MASK_LA_MAC_8822B(x)                                        \
-	(((x) & BIT_MASK_R_WMAC_MASK_LA_MAC_8822B)                             \
-	 << BIT_SHIFT_R_WMAC_MASK_LA_MAC_8822B)
-#define BIT_GET_R_WMAC_MASK_LA_MAC_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_R_WMAC_MASK_LA_MAC_8822B) &                         \
-	 BIT_MASK_R_WMAC_MASK_LA_MAC_8822B)
-
-#define BIT_SHIFT_DUMP_OK_ADDR_8822B 15
-#define BIT_MASK_DUMP_OK_ADDR_8822B 0x1ffff
-#define BIT_DUMP_OK_ADDR_8822B(x)                                              \
-	(((x) & BIT_MASK_DUMP_OK_ADDR_8822B) << BIT_SHIFT_DUMP_OK_ADDR_8822B)
-#define BIT_GET_DUMP_OK_ADDR_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_DUMP_OK_ADDR_8822B) & BIT_MASK_DUMP_OK_ADDR_8822B)
-
-#define BIT_SHIFT_R_TRIG_TIME_SEL_8822B 8
-#define BIT_MASK_R_TRIG_TIME_SEL_8822B 0x7f
-#define BIT_R_TRIG_TIME_SEL_8822B(x)                                           \
-	(((x) & BIT_MASK_R_TRIG_TIME_SEL_8822B)                                \
-	 << BIT_SHIFT_R_TRIG_TIME_SEL_8822B)
-#define BIT_GET_R_TRIG_TIME_SEL_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_R_TRIG_TIME_SEL_8822B) &                            \
-	 BIT_MASK_R_TRIG_TIME_SEL_8822B)
-
-#define BIT_SHIFT_R_MAC_TRIG_SEL_8822B 6
-#define BIT_MASK_R_MAC_TRIG_SEL_8822B 0x3
-#define BIT_R_MAC_TRIG_SEL_8822B(x)                                            \
-	(((x) & BIT_MASK_R_MAC_TRIG_SEL_8822B)                                 \
-	 << BIT_SHIFT_R_MAC_TRIG_SEL_8822B)
-#define BIT_GET_R_MAC_TRIG_SEL_8822B(x)                                        \
-	(((x) >> BIT_SHIFT_R_MAC_TRIG_SEL_8822B) &                             \
-	 BIT_MASK_R_MAC_TRIG_SEL_8822B)
-
-#define BIT_MAC_TRIG_REG_8822B BIT(5)
-
-#define BIT_SHIFT_R_LEVEL_PULSE_SEL_8822B 3
-#define BIT_MASK_R_LEVEL_PULSE_SEL_8822B 0x3
-#define BIT_R_LEVEL_PULSE_SEL_8822B(x)                                         \
-	(((x) & BIT_MASK_R_LEVEL_PULSE_SEL_8822B)                              \
-	 << BIT_SHIFT_R_LEVEL_PULSE_SEL_8822B)
-#define BIT_GET_R_LEVEL_PULSE_SEL_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_R_LEVEL_PULSE_SEL_8822B) &                          \
-	 BIT_MASK_R_LEVEL_PULSE_SEL_8822B)
-
-#define BIT_EN_LA_MAC_8822B BIT(2)
-#define BIT_R_EN_IQDUMP_8822B BIT(1)
-#define BIT_R_IQDATA_DUMP_8822B BIT(0)
-
-/* 2 REG_WMAC_FTM_CTL_8822B */
-#define BIT_RXFTM_TXACK_SC_8822B BIT(6)
-#define BIT_RXFTM_TXACK_BW_8822B BIT(5)
-#define BIT_RXFTM_EN_8822B BIT(3)
-#define BIT_RXFTMREQ_BYDRV_8822B BIT(2)
-#define BIT_RXFTMREQ_EN_8822B BIT(1)
-#define BIT_FTM_EN_8822B BIT(0)
-
-/* 2 REG_WMAC_IQ_MDPK_FUNC_8822B */
-
-/* 2 REG_WMAC_OPTION_FUNCTION_8822B */
-
-#define BIT_SHIFT_R_WMAC_RX_FIL_LEN_8822B (64 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_RX_FIL_LEN_8822B 0xffff
-#define BIT_R_WMAC_RX_FIL_LEN_8822B(x)                                         \
-	(((x) & BIT_MASK_R_WMAC_RX_FIL_LEN_8822B)                              \
-	 << BIT_SHIFT_R_WMAC_RX_FIL_LEN_8822B)
-#define BIT_GET_R_WMAC_RX_FIL_LEN_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_R_WMAC_RX_FIL_LEN_8822B) &                          \
-	 BIT_MASK_R_WMAC_RX_FIL_LEN_8822B)
-
-#define BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_8822B (56 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_WMAC_RXFIFO_FULL_TH_8822B 0xff
-#define BIT_R_WMAC_RXFIFO_FULL_TH_8822B(x)                                     \
-	(((x) & BIT_MASK_R_WMAC_RXFIFO_FULL_TH_8822B)                          \
-	 << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_8822B)
-#define BIT_GET_R_WMAC_RXFIFO_FULL_TH_8822B(x)                                 \
-	(((x) >> BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_8822B) &                      \
-	 BIT_MASK_R_WMAC_RXFIFO_FULL_TH_8822B)
-
-#define BIT_R_WMAC_RX_SYNCFIFO_SYNC_8822B BIT(55)
-#define BIT_R_WMAC_RXRST_DLY_8822B BIT(54)
-#define BIT_R_WMAC_SRCH_TXRPT_REF_DROP_8822B BIT(53)
-#define BIT_R_WMAC_SRCH_TXRPT_UA1_8822B BIT(52)
-#define BIT_R_WMAC_SRCH_TXRPT_TYPE_8822B BIT(51)
-#define BIT_R_WMAC_NDP_RST_8822B BIT(50)
-#define BIT_R_WMAC_POWINT_EN_8822B BIT(49)
-#define BIT_R_WMAC_SRCH_TXRPT_PERPKT_8822B BIT(48)
-#define BIT_R_WMAC_SRCH_TXRPT_MID_8822B BIT(47)
-#define BIT_R_WMAC_PFIN_TOEN_8822B BIT(46)
-#define BIT_R_WMAC_FIL_SECERR_8822B BIT(45)
-#define BIT_R_WMAC_FIL_CTLPKTLEN_8822B BIT(44)
-#define BIT_R_WMAC_FIL_FCTYPE_8822B BIT(43)
-#define BIT_R_WMAC_FIL_FCPROVER_8822B BIT(42)
-#define BIT_R_WMAC_PHYSTS_SNIF_8822B BIT(41)
-#define BIT_R_WMAC_PHYSTS_PLCP_8822B BIT(40)
-#define BIT_R_MAC_TCR_VBONF_RD_8822B BIT(39)
-#define BIT_R_WMAC_TCR_MPAR_NDP_8822B BIT(38)
-#define BIT_R_WMAC_NDP_FILTER_8822B BIT(37)
-#define BIT_R_WMAC_RXLEN_SEL_8822B BIT(36)
-#define BIT_R_WMAC_RXLEN_SEL1_8822B BIT(35)
-#define BIT_R_OFDM_FILTER_8822B BIT(34)
-#define BIT_R_WMAC_CHK_OFDM_LEN_8822B BIT(33)
-#define BIT_R_WMAC_CHK_CCK_LEN_8822B BIT(32)
-
-#define BIT_SHIFT_R_OFDM_LEN_8822B 26
-#define BIT_MASK_R_OFDM_LEN_8822B 0x3f
-#define BIT_R_OFDM_LEN_8822B(x)                                                \
-	(((x) & BIT_MASK_R_OFDM_LEN_8822B) << BIT_SHIFT_R_OFDM_LEN_8822B)
-#define BIT_GET_R_OFDM_LEN_8822B(x)                                            \
-	(((x) >> BIT_SHIFT_R_OFDM_LEN_8822B) & BIT_MASK_R_OFDM_LEN_8822B)
-
-#define BIT_SHIFT_R_CCK_LEN_8822B 0
-#define BIT_MASK_R_CCK_LEN_8822B 0xffff
-#define BIT_R_CCK_LEN_8822B(x)                                                 \
-	(((x) & BIT_MASK_R_CCK_LEN_8822B) << BIT_SHIFT_R_CCK_LEN_8822B)
-#define BIT_GET_R_CCK_LEN_8822B(x)                                             \
-	(((x) >> BIT_SHIFT_R_CCK_LEN_8822B) & BIT_MASK_R_CCK_LEN_8822B)
-
-/* 2 REG_RX_FILTER_FUNCTION_8822B */
-#define BIT_R_WMAC_MHRDDY_LATCH_8822B BIT(14)
-#define BIT_R_WMAC_MHRDDY_CLR_8822B BIT(13)
-#define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY1_8822B BIT(12)
-#define BIT_WMAC_DIS_VHT_PLCP_CHK_MU_8822B BIT(11)
-#define BIT_R_CHK_DELIMIT_LEN_8822B BIT(10)
-#define BIT_R_REAPTER_ADDR_MATCH_8822B BIT(9)
-#define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY_8822B BIT(8)
-#define BIT_R_LATCH_MACHRDY_8822B BIT(7)
-#define BIT_R_WMAC_RXFIL_REND_8822B BIT(6)
-#define BIT_R_WMAC_MPDURDY_CLR_8822B BIT(5)
-#define BIT_R_WMAC_CLRRXSEC_8822B BIT(4)
-#define BIT_R_WMAC_RXFIL_RDEL_8822B BIT(3)
-#define BIT_R_WMAC_RXFIL_FCSE_8822B BIT(2)
-#define BIT_R_WMAC_RXFIL_MESH_DEL_8822B BIT(1)
-#define BIT_R_WMAC_RXFIL_MASKM_8822B BIT(0)
-
-/* 2 REG_NDP_SIG_8822B */
-
-#define BIT_SHIFT_R_WMAC_TXNDP_SIGB_8822B 0
-#define BIT_MASK_R_WMAC_TXNDP_SIGB_8822B 0x1fffff
-#define BIT_R_WMAC_TXNDP_SIGB_8822B(x)                                         \
-	(((x) & BIT_MASK_R_WMAC_TXNDP_SIGB_8822B)                              \
-	 << BIT_SHIFT_R_WMAC_TXNDP_SIGB_8822B)
-#define BIT_GET_R_WMAC_TXNDP_SIGB_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_R_WMAC_TXNDP_SIGB_8822B) &                          \
-	 BIT_MASK_R_WMAC_TXNDP_SIGB_8822B)
-
-/* 2 REG_TXCMD_INFO_FOR_RSP_PKT_8822B */
-
-#define BIT_SHIFT_R_MAC_DEBUG_8822B (32 & CPU_OPT_WIDTH)
-#define BIT_MASK_R_MAC_DEBUG_8822B 0xffffffffL
-#define BIT_R_MAC_DEBUG_8822B(x)                                               \
-	(((x) & BIT_MASK_R_MAC_DEBUG_8822B) << BIT_SHIFT_R_MAC_DEBUG_8822B)
-#define BIT_GET_R_MAC_DEBUG_8822B(x)                                           \
-	(((x) >> BIT_SHIFT_R_MAC_DEBUG_8822B) & BIT_MASK_R_MAC_DEBUG_8822B)
-
-#define BIT_SHIFT_R_MAC_DBG_SHIFT_8822B 8
-#define BIT_MASK_R_MAC_DBG_SHIFT_8822B 0x7
-#define BIT_R_MAC_DBG_SHIFT_8822B(x)                                           \
-	(((x) & BIT_MASK_R_MAC_DBG_SHIFT_8822B)                                \
-	 << BIT_SHIFT_R_MAC_DBG_SHIFT_8822B)
-#define BIT_GET_R_MAC_DBG_SHIFT_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_R_MAC_DBG_SHIFT_8822B) &                            \
-	 BIT_MASK_R_MAC_DBG_SHIFT_8822B)
-
-#define BIT_SHIFT_R_MAC_DBG_SEL_8822B 0
-#define BIT_MASK_R_MAC_DBG_SEL_8822B 0x3
-#define BIT_R_MAC_DBG_SEL_8822B(x)                                             \
-	(((x) & BIT_MASK_R_MAC_DBG_SEL_8822B) << BIT_SHIFT_R_MAC_DBG_SEL_8822B)
-#define BIT_GET_R_MAC_DBG_SEL_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_R_MAC_DBG_SEL_8822B) & BIT_MASK_R_MAC_DBG_SEL_8822B)
-
-/* 2 REG_RTS_ADDRESS_0_8822B */
-
-/* 2 REG_RTS_ADDRESS_1_8822B */
-
-/* 2 REG__RPFM_MAP1_8822B
- * (RX PAYLOAD FILTER MAP FRAME TYPE CONTROL REGISTER GROUP 1
- */
-#define BIT_DATA_RPFM15EN_8822B BIT(15)
-#define BIT_DATA_RPFM14EN_8822B BIT(14)
-#define BIT_DATA_RPFM13EN_8822B BIT(13)
-#define BIT_DATA_RPFM12EN_8822B BIT(12)
-#define BIT_DATA_RPFM11EN_8822B BIT(11)
-#define BIT_DATA_RPFM10EN_8822B BIT(10)
-#define BIT_DATA_RPFM9EN_8822B BIT(9)
-#define BIT_DATA_RPFM8EN_8822B BIT(8)
-#define BIT_DATA_RPFM7EN_8822B BIT(7)
-#define BIT_DATA_RPFM6EN_8822B BIT(6)
-#define BIT_DATA_RPFM5EN_8822B BIT(5)
-#define BIT_DATA_RPFM4EN_8822B BIT(4)
-#define BIT_DATA_RPFM3EN_8822B BIT(3)
-#define BIT_DATA_RPFM2EN_8822B BIT(2)
-#define BIT_DATA_RPFM1EN_8822B BIT(1)
-#define BIT_DATA_RPFM0EN_8822B BIT(0)
-
-/* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_CTRL_V1_8822B */
-#define BIT_LTECOEX_ACCESS_START_V1_8822B BIT(31)
-#define BIT_LTECOEX_WRITE_MODE_V1_8822B BIT(30)
-#define BIT_LTECOEX_READY_BIT_V1_8822B BIT(29)
-
-#define BIT_SHIFT_WRITE_BYTE_EN_V1_8822B 16
-#define BIT_MASK_WRITE_BYTE_EN_V1_8822B 0xf
-#define BIT_WRITE_BYTE_EN_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_WRITE_BYTE_EN_V1_8822B)                               \
-	 << BIT_SHIFT_WRITE_BYTE_EN_V1_8822B)
-#define BIT_GET_WRITE_BYTE_EN_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_WRITE_BYTE_EN_V1_8822B) &                           \
-	 BIT_MASK_WRITE_BYTE_EN_V1_8822B)
-
-#define BIT_SHIFT_LTECOEX_REG_ADDR_V1_8822B 0
-#define BIT_MASK_LTECOEX_REG_ADDR_V1_8822B 0xffff
-#define BIT_LTECOEX_REG_ADDR_V1_8822B(x)                                       \
-	(((x) & BIT_MASK_LTECOEX_REG_ADDR_V1_8822B)                            \
-	 << BIT_SHIFT_LTECOEX_REG_ADDR_V1_8822B)
-#define BIT_GET_LTECOEX_REG_ADDR_V1_8822B(x)                                   \
-	(((x) >> BIT_SHIFT_LTECOEX_REG_ADDR_V1_8822B) &                        \
-	 BIT_MASK_LTECOEX_REG_ADDR_V1_8822B)
-
-/* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA_V1_8822B */
-
-#define BIT_SHIFT_LTECOEX_W_DATA_V1_8822B 0
-#define BIT_MASK_LTECOEX_W_DATA_V1_8822B 0xffffffffL
-#define BIT_LTECOEX_W_DATA_V1_8822B(x)                                         \
-	(((x) & BIT_MASK_LTECOEX_W_DATA_V1_8822B)                              \
-	 << BIT_SHIFT_LTECOEX_W_DATA_V1_8822B)
-#define BIT_GET_LTECOEX_W_DATA_V1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_LTECOEX_W_DATA_V1_8822B) &                          \
-	 BIT_MASK_LTECOEX_W_DATA_V1_8822B)
-
-/* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA_V1_8822B */
-
-#define BIT_SHIFT_LTECOEX_R_DATA_V1_8822B 0
-#define BIT_MASK_LTECOEX_R_DATA_V1_8822B 0xffffffffL
-#define BIT_LTECOEX_R_DATA_V1_8822B(x)                                         \
-	(((x) & BIT_MASK_LTECOEX_R_DATA_V1_8822B)                              \
-	 << BIT_SHIFT_LTECOEX_R_DATA_V1_8822B)
-#define BIT_GET_LTECOEX_R_DATA_V1_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_LTECOEX_R_DATA_V1_8822B) &                          \
-	 BIT_MASK_LTECOEX_R_DATA_V1_8822B)
-
-/* 2 REG_NOT_VALID_8822B */
-
-/* 2 REG_SDIO_TX_CTRL_8822B */
-
-#define BIT_SHIFT_SDIO_INT_TIMEOUT_8822B 16
-#define BIT_MASK_SDIO_INT_TIMEOUT_8822B 0xffff
-#define BIT_SDIO_INT_TIMEOUT_8822B(x)                                          \
-	(((x) & BIT_MASK_SDIO_INT_TIMEOUT_8822B)                               \
-	 << BIT_SHIFT_SDIO_INT_TIMEOUT_8822B)
-#define BIT_GET_SDIO_INT_TIMEOUT_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_SDIO_INT_TIMEOUT_8822B) &                           \
-	 BIT_MASK_SDIO_INT_TIMEOUT_8822B)
-
-#define BIT_IO_ERR_STATUS_8822B BIT(15)
-#define BIT_REPLY_ERRCRC_IN_DATA_8822B BIT(9)
-#define BIT_EN_CMD53_OVERLAP_8822B BIT(8)
-#define BIT_REPLY_ERR_IN_R5_8822B BIT(7)
-#define BIT_R18A_EN_8822B BIT(6)
-#define BIT_INIT_CMD_EN_8822B BIT(5)
-#define BIT_EN_RXDMA_MASK_INT_8822B BIT(2)
-#define BIT_EN_MASK_TIMER_8822B BIT(1)
-#define BIT_CMD_ERR_STOP_INT_EN_8822B BIT(0)
-
-/* 2 REG_SDIO_HIMR_8822B */
-#define BIT_SDIO_CRCERR_MSK_8822B BIT(31)
-#define BIT_SDIO_HSISR3_IND_MSK_8822B BIT(30)
-#define BIT_SDIO_HSISR2_IND_MSK_8822B BIT(29)
-#define BIT_SDIO_HEISR_IND_MSK_8822B BIT(28)
-#define BIT_SDIO_CTWEND_MSK_8822B BIT(27)
-#define BIT_SDIO_ATIMEND_E_MSK_8822B BIT(26)
-#define BIT_SDIIO_ATIMEND_MSK_8822B BIT(25)
-#define BIT_SDIO_OCPINT_MSK_8822B BIT(24)
-#define BIT_SDIO_PSTIMEOUT_MSK_8822B BIT(23)
-#define BIT_SDIO_GTINT4_MSK_8822B BIT(22)
-#define BIT_SDIO_GTINT3_MSK_8822B BIT(21)
-#define BIT_SDIO_HSISR_IND_MSK_8822B BIT(20)
-#define BIT_SDIO_CPWM2_MSK_8822B BIT(19)
-#define BIT_SDIO_CPWM1_MSK_8822B BIT(18)
-#define BIT_SDIO_C2HCMD_INT_MSK_8822B BIT(17)
-#define BIT_SDIO_BCNERLY_INT_MSK_8822B BIT(16)
-#define BIT_SDIO_TXBCNERR_MSK_8822B BIT(7)
-#define BIT_SDIO_TXBCNOK_MSK_8822B BIT(6)
-#define BIT_SDIO_RXFOVW_MSK_8822B BIT(5)
-#define BIT_SDIO_TXFOVW_MSK_8822B BIT(4)
-#define BIT_SDIO_RXERR_MSK_8822B BIT(3)
-#define BIT_SDIO_TXERR_MSK_8822B BIT(2)
-#define BIT_SDIO_AVAL_MSK_8822B BIT(1)
-#define BIT_RX_REQUEST_MSK_8822B BIT(0)
-
-/* 2 REG_SDIO_HISR_8822B */
-#define BIT_SDIO_CRCERR_8822B BIT(31)
-#define BIT_SDIO_HSISR3_IND_8822B BIT(30)
-#define BIT_SDIO_HSISR2_IND_8822B BIT(29)
-#define BIT_SDIO_HEISR_IND_8822B BIT(28)
-#define BIT_SDIO_CTWEND_8822B BIT(27)
-#define BIT_SDIO_ATIMEND_E_8822B BIT(26)
-#define BIT_SDIO_ATIMEND_8822B BIT(25)
-#define BIT_SDIO_OCPINT_8822B BIT(24)
-#define BIT_SDIO_PSTIMEOUT_8822B BIT(23)
-#define BIT_SDIO_GTINT4_8822B BIT(22)
-#define BIT_SDIO_GTINT3_8822B BIT(21)
-#define BIT_SDIO_HSISR_IND_8822B BIT(20)
-#define BIT_SDIO_CPWM2_8822B BIT(19)
-#define BIT_SDIO_CPWM1_8822B BIT(18)
-#define BIT_SDIO_C2HCMD_INT_8822B BIT(17)
-#define BIT_SDIO_BCNERLY_INT_8822B BIT(16)
-#define BIT_SDIO_TXBCNERR_8822B BIT(7)
-#define BIT_SDIO_TXBCNOK_8822B BIT(6)
-#define BIT_SDIO_RXFOVW_8822B BIT(5)
-#define BIT_SDIO_TXFOVW_8822B BIT(4)
-#define BIT_SDIO_RXERR_8822B BIT(3)
-#define BIT_SDIO_TXERR_8822B BIT(2)
-#define BIT_SDIO_AVAL_8822B BIT(1)
-#define BIT_RX_REQUEST_8822B BIT(0)
-
-/* 2 REG_SDIO_RX_REQ_LEN_8822B */
-
-#define BIT_SHIFT_RX_REQ_LEN_V1_8822B 0
-#define BIT_MASK_RX_REQ_LEN_V1_8822B 0x3ffff
-#define BIT_RX_REQ_LEN_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_RX_REQ_LEN_V1_8822B) << BIT_SHIFT_RX_REQ_LEN_V1_8822B)
-#define BIT_GET_RX_REQ_LEN_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_RX_REQ_LEN_V1_8822B) & BIT_MASK_RX_REQ_LEN_V1_8822B)
-
-/* 2 REG_SDIO_FREE_TXPG_SEQ_V1_8822B */
-
-#define BIT_SHIFT_FREE_TXPG_SEQ_8822B 0
-#define BIT_MASK_FREE_TXPG_SEQ_8822B 0xff
-#define BIT_FREE_TXPG_SEQ_8822B(x)                                             \
-	(((x) & BIT_MASK_FREE_TXPG_SEQ_8822B) << BIT_SHIFT_FREE_TXPG_SEQ_8822B)
-#define BIT_GET_FREE_TXPG_SEQ_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_FREE_TXPG_SEQ_8822B) & BIT_MASK_FREE_TXPG_SEQ_8822B)
-
-/* 2 REG_SDIO_FREE_TXPG_8822B */
-
-#define BIT_SHIFT_MID_FREEPG_V1_8822B 16
-#define BIT_MASK_MID_FREEPG_V1_8822B 0xfff
-#define BIT_MID_FREEPG_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_MID_FREEPG_V1_8822B) << BIT_SHIFT_MID_FREEPG_V1_8822B)
-#define BIT_GET_MID_FREEPG_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_MID_FREEPG_V1_8822B) & BIT_MASK_MID_FREEPG_V1_8822B)
-
-#define BIT_SHIFT_HIQ_FREEPG_V1_8822B 0
-#define BIT_MASK_HIQ_FREEPG_V1_8822B 0xfff
-#define BIT_HIQ_FREEPG_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_HIQ_FREEPG_V1_8822B) << BIT_SHIFT_HIQ_FREEPG_V1_8822B)
-#define BIT_GET_HIQ_FREEPG_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_HIQ_FREEPG_V1_8822B) & BIT_MASK_HIQ_FREEPG_V1_8822B)
-
-/* 2 REG_SDIO_FREE_TXPG2_8822B */
-
-#define BIT_SHIFT_PUB_FREEPG_V1_8822B 16
-#define BIT_MASK_PUB_FREEPG_V1_8822B 0xfff
-#define BIT_PUB_FREEPG_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_PUB_FREEPG_V1_8822B) << BIT_SHIFT_PUB_FREEPG_V1_8822B)
-#define BIT_GET_PUB_FREEPG_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_PUB_FREEPG_V1_8822B) & BIT_MASK_PUB_FREEPG_V1_8822B)
-
-#define BIT_SHIFT_LOW_FREEPG_V1_8822B 0
-#define BIT_MASK_LOW_FREEPG_V1_8822B 0xfff
-#define BIT_LOW_FREEPG_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_LOW_FREEPG_V1_8822B) << BIT_SHIFT_LOW_FREEPG_V1_8822B)
-#define BIT_GET_LOW_FREEPG_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_LOW_FREEPG_V1_8822B) & BIT_MASK_LOW_FREEPG_V1_8822B)
-
-/* 2 REG_SDIO_OQT_FREE_TXPG_V1_8822B */
-
-#define BIT_SHIFT_NOAC_OQT_FREEPG_V1_8822B 24
-#define BIT_MASK_NOAC_OQT_FREEPG_V1_8822B 0xff
-#define BIT_NOAC_OQT_FREEPG_V1_8822B(x)                                        \
-	(((x) & BIT_MASK_NOAC_OQT_FREEPG_V1_8822B)                             \
-	 << BIT_SHIFT_NOAC_OQT_FREEPG_V1_8822B)
-#define BIT_GET_NOAC_OQT_FREEPG_V1_8822B(x)                                    \
-	(((x) >> BIT_SHIFT_NOAC_OQT_FREEPG_V1_8822B) &                         \
-	 BIT_MASK_NOAC_OQT_FREEPG_V1_8822B)
-
-#define BIT_SHIFT_AC_OQT_FREEPG_V1_8822B 16
-#define BIT_MASK_AC_OQT_FREEPG_V1_8822B 0xff
-#define BIT_AC_OQT_FREEPG_V1_8822B(x)                                          \
-	(((x) & BIT_MASK_AC_OQT_FREEPG_V1_8822B)                               \
-	 << BIT_SHIFT_AC_OQT_FREEPG_V1_8822B)
-#define BIT_GET_AC_OQT_FREEPG_V1_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_AC_OQT_FREEPG_V1_8822B) &                           \
-	 BIT_MASK_AC_OQT_FREEPG_V1_8822B)
-
-#define BIT_SHIFT_EXQ_FREEPG_V1_8822B 0
-#define BIT_MASK_EXQ_FREEPG_V1_8822B 0xfff
-#define BIT_EXQ_FREEPG_V1_8822B(x)                                             \
-	(((x) & BIT_MASK_EXQ_FREEPG_V1_8822B) << BIT_SHIFT_EXQ_FREEPG_V1_8822B)
-#define BIT_GET_EXQ_FREEPG_V1_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_EXQ_FREEPG_V1_8822B) & BIT_MASK_EXQ_FREEPG_V1_8822B)
-
-/* 2 REG_SDIO_HTSFR_INFO_8822B */
-
-#define BIT_SHIFT_HTSFR1_8822B 16
-#define BIT_MASK_HTSFR1_8822B 0xffff
-#define BIT_HTSFR1_8822B(x)                                                    \
-	(((x) & BIT_MASK_HTSFR1_8822B) << BIT_SHIFT_HTSFR1_8822B)
-#define BIT_GET_HTSFR1_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_HTSFR1_8822B) & BIT_MASK_HTSFR1_8822B)
-
-#define BIT_SHIFT_HTSFR0_8822B 0
-#define BIT_MASK_HTSFR0_8822B 0xffff
-#define BIT_HTSFR0_8822B(x)                                                    \
-	(((x) & BIT_MASK_HTSFR0_8822B) << BIT_SHIFT_HTSFR0_8822B)
-#define BIT_GET_HTSFR0_8822B(x)                                                \
-	(((x) >> BIT_SHIFT_HTSFR0_8822B) & BIT_MASK_HTSFR0_8822B)
-
-/* 2 REG_SDIO_HCPWM1_V2_8822B */
-#define BIT_TOGGLING_8822B BIT(7)
-#define BIT_ACK_8822B BIT(6)
-#define BIT_SYS_CLK_8822B BIT(0)
-
-/* 2 REG_SDIO_HCPWM2_V2_8822B */
-
-/* 2 REG_SDIO_INDIRECT_REG_CFG_8822B */
-#define BIT_INDIRECT_REG_RDY_8822B BIT(20)
-#define BIT_INDIRECT_REG_R_8822B BIT(19)
-#define BIT_INDIRECT_REG_W_8822B BIT(18)
-
-#define BIT_SHIFT_INDIRECT_REG_SIZE_8822B 16
-#define BIT_MASK_INDIRECT_REG_SIZE_8822B 0x3
-#define BIT_INDIRECT_REG_SIZE_8822B(x)                                         \
-	(((x) & BIT_MASK_INDIRECT_REG_SIZE_8822B)                              \
-	 << BIT_SHIFT_INDIRECT_REG_SIZE_8822B)
-#define BIT_GET_INDIRECT_REG_SIZE_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_INDIRECT_REG_SIZE_8822B) &                          \
-	 BIT_MASK_INDIRECT_REG_SIZE_8822B)
-
-#define BIT_SHIFT_INDIRECT_REG_ADDR_8822B 0
-#define BIT_MASK_INDIRECT_REG_ADDR_8822B 0xffff
-#define BIT_INDIRECT_REG_ADDR_8822B(x)                                         \
-	(((x) & BIT_MASK_INDIRECT_REG_ADDR_8822B)                              \
-	 << BIT_SHIFT_INDIRECT_REG_ADDR_8822B)
-#define BIT_GET_INDIRECT_REG_ADDR_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_INDIRECT_REG_ADDR_8822B) &                          \
-	 BIT_MASK_INDIRECT_REG_ADDR_8822B)
-
-/* 2 REG_SDIO_INDIRECT_REG_DATA_8822B */
-
-#define BIT_SHIFT_INDIRECT_REG_DATA_8822B 0
-#define BIT_MASK_INDIRECT_REG_DATA_8822B 0xffffffffL
-#define BIT_INDIRECT_REG_DATA_8822B(x)                                         \
-	(((x) & BIT_MASK_INDIRECT_REG_DATA_8822B)                              \
-	 << BIT_SHIFT_INDIRECT_REG_DATA_8822B)
-#define BIT_GET_INDIRECT_REG_DATA_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_INDIRECT_REG_DATA_8822B) &                          \
-	 BIT_MASK_INDIRECT_REG_DATA_8822B)
-
-/* 2 REG_SDIO_H2C_8822B */
-
-#define BIT_SHIFT_SDIO_H2C_MSG_8822B 0
-#define BIT_MASK_SDIO_H2C_MSG_8822B 0xffffffffL
-#define BIT_SDIO_H2C_MSG_8822B(x)                                              \
-	(((x) & BIT_MASK_SDIO_H2C_MSG_8822B) << BIT_SHIFT_SDIO_H2C_MSG_8822B)
-#define BIT_GET_SDIO_H2C_MSG_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_SDIO_H2C_MSG_8822B) & BIT_MASK_SDIO_H2C_MSG_8822B)
-
-/* 2 REG_SDIO_C2H_8822B */
-
-#define BIT_SHIFT_SDIO_C2H_MSG_8822B 0
-#define BIT_MASK_SDIO_C2H_MSG_8822B 0xffffffffL
-#define BIT_SDIO_C2H_MSG_8822B(x)                                              \
-	(((x) & BIT_MASK_SDIO_C2H_MSG_8822B) << BIT_SHIFT_SDIO_C2H_MSG_8822B)
-#define BIT_GET_SDIO_C2H_MSG_8822B(x)                                          \
-	(((x) >> BIT_SHIFT_SDIO_C2H_MSG_8822B) & BIT_MASK_SDIO_C2H_MSG_8822B)
-
-/* 2 REG_SDIO_HRPWM1_8822B */
-#define BIT_TOGGLING_8822B BIT(7)
-#define BIT_ACK_8822B BIT(6)
-#define BIT_32K_PERMISSION_8822B BIT(0)
-
-/* 2 REG_SDIO_HRPWM2_8822B */
-
-/* 2 REG_SDIO_HPS_CLKR_8822B */
-
-/* 2 REG_SDIO_BUS_CTRL_8822B */
-#define BIT_PAD_CLK_XHGE_EN_8822B BIT(3)
-#define BIT_INTER_CLK_EN_8822B BIT(2)
-#define BIT_EN_RPT_TXCRC_8822B BIT(1)
-#define BIT_DIS_RXDMA_STS_8822B BIT(0)
-
-/* 2 REG_SDIO_HSUS_CTRL_8822B */
-#define BIT_INTR_CTRL_8822B BIT(4)
-#define BIT_SDIO_VOLTAGE_8822B BIT(3)
-#define BIT_BYPASS_INIT_8822B BIT(2)
-#define BIT_HCI_RESUME_RDY_8822B BIT(1)
-#define BIT_HCI_SUS_REQ_8822B BIT(0)
-
-/* 2 REG_SDIO_RESPONSE_TIMER_8822B */
-
-#define BIT_SHIFT_CMDIN_2RESP_TIMER_8822B 0
-#define BIT_MASK_CMDIN_2RESP_TIMER_8822B 0xffff
-#define BIT_CMDIN_2RESP_TIMER_8822B(x)                                         \
-	(((x) & BIT_MASK_CMDIN_2RESP_TIMER_8822B)                              \
-	 << BIT_SHIFT_CMDIN_2RESP_TIMER_8822B)
-#define BIT_GET_CMDIN_2RESP_TIMER_8822B(x)                                     \
-	(((x) >> BIT_SHIFT_CMDIN_2RESP_TIMER_8822B) &                          \
-	 BIT_MASK_CMDIN_2RESP_TIMER_8822B)
-
-/* 2 REG_SDIO_CMD_CRC_8822B */
-
-#define BIT_SHIFT_SDIO_CMD_CRC_V1_8822B 0
-#define BIT_MASK_SDIO_CMD_CRC_V1_8822B 0xff
-#define BIT_SDIO_CMD_CRC_V1_8822B(x)                                           \
-	(((x) & BIT_MASK_SDIO_CMD_CRC_V1_8822B)                                \
-	 << BIT_SHIFT_SDIO_CMD_CRC_V1_8822B)
-#define BIT_GET_SDIO_CMD_CRC_V1_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_SDIO_CMD_CRC_V1_8822B) &                            \
-	 BIT_MASK_SDIO_CMD_CRC_V1_8822B)
-
-/* 2 REG_SDIO_HSISR_8822B */
-#define BIT_DRV_WLAN_INT_CLR_8822B BIT(1)
-#define BIT_DRV_WLAN_INT_8822B BIT(0)
-
-/* 2 REG_SDIO_HSIMR_8822B */
-#define BIT_HISR_MASK_8822B BIT(0)
-
-/* 2 REG_SDIO_ERR_RPT_8822B */
-#define BIT_HR_FF_OVF_8822B BIT(6)
-#define BIT_HR_FF_UDN_8822B BIT(5)
-#define BIT_TXDMA_BUSY_ERR_8822B BIT(4)
-#define BIT_TXDMA_VLD_ERR_8822B BIT(3)
-#define BIT_QSEL_UNKNOWN_ERR_8822B BIT(2)
-#define BIT_QSEL_MIS_ERR_8822B BIT(1)
-#define BIT_SDIO_OVERRD_ERR_8822B BIT(0)
-
-/* 2 REG_SDIO_CMD_ERRCNT_8822B */
-
-#define BIT_SHIFT_CMD_CRC_ERR_CNT_8822B 0
-#define BIT_MASK_CMD_CRC_ERR_CNT_8822B 0xff
-#define BIT_CMD_CRC_ERR_CNT_8822B(x)                                           \
-	(((x) & BIT_MASK_CMD_CRC_ERR_CNT_8822B)                                \
-	 << BIT_SHIFT_CMD_CRC_ERR_CNT_8822B)
-#define BIT_GET_CMD_CRC_ERR_CNT_8822B(x)                                       \
-	(((x) >> BIT_SHIFT_CMD_CRC_ERR_CNT_8822B) &                            \
-	 BIT_MASK_CMD_CRC_ERR_CNT_8822B)
-
-/* 2 REG_SDIO_DATA_ERRCNT_8822B */
-
-#define BIT_SHIFT_DATA_CRC_ERR_CNT_8822B 0
-#define BIT_MASK_DATA_CRC_ERR_CNT_8822B 0xff
-#define BIT_DATA_CRC_ERR_CNT_8822B(x)                                          \
-	(((x) & BIT_MASK_DATA_CRC_ERR_CNT_8822B)                               \
-	 << BIT_SHIFT_DATA_CRC_ERR_CNT_8822B)
-#define BIT_GET_DATA_CRC_ERR_CNT_8822B(x)                                      \
-	(((x) >> BIT_SHIFT_DATA_CRC_ERR_CNT_8822B) &                           \
-	 BIT_MASK_DATA_CRC_ERR_CNT_8822B)
-
-/* 2 REG_SDIO_CMD_ERR_CONTENT_8822B */
-
-#define BIT_SHIFT_SDIO_CMD_ERR_CONTENT_8822B 0
-#define BIT_MASK_SDIO_CMD_ERR_CONTENT_8822B 0xffffffffffL
-#define BIT_SDIO_CMD_ERR_CONTENT_8822B(x)                                      \
-	(((x) & BIT_MASK_SDIO_CMD_ERR_CONTENT_8822B)                           \
-	 << BIT_SHIFT_SDIO_CMD_ERR_CONTENT_8822B)
-#define BIT_GET_SDIO_CMD_ERR_CONTENT_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_SDIO_CMD_ERR_CONTENT_8822B) &                       \
-	 BIT_MASK_SDIO_CMD_ERR_CONTENT_8822B)
-
-/* 2 REG_SDIO_CRC_ERR_IDX_8822B */
-#define BIT_D3_CRC_ERR_8822B BIT(4)
-#define BIT_D2_CRC_ERR_8822B BIT(3)
-#define BIT_D1_CRC_ERR_8822B BIT(2)
-#define BIT_D0_CRC_ERR_8822B BIT(1)
-#define BIT_CMD_CRC_ERR_8822B BIT(0)
-
-/* 2 REG_SDIO_DATA_CRC_8822B */
-
-#define BIT_SHIFT_SDIO_DATA_CRC_8822B 0
-#define BIT_MASK_SDIO_DATA_CRC_8822B 0xff
-#define BIT_SDIO_DATA_CRC_8822B(x)                                             \
-	(((x) & BIT_MASK_SDIO_DATA_CRC_8822B) << BIT_SHIFT_SDIO_DATA_CRC_8822B)
-#define BIT_GET_SDIO_DATA_CRC_8822B(x)                                         \
-	(((x) >> BIT_SHIFT_SDIO_DATA_CRC_8822B) & BIT_MASK_SDIO_DATA_CRC_8822B)
-
-/* 2 REG_SDIO_DATA_REPLY_TIME_8822B */
-
-#define BIT_SHIFT_SDIO_DATA_REPLY_TIME_8822B 0
-#define BIT_MASK_SDIO_DATA_REPLY_TIME_8822B 0x7
-#define BIT_SDIO_DATA_REPLY_TIME_8822B(x)                                      \
-	(((x) & BIT_MASK_SDIO_DATA_REPLY_TIME_8822B)                           \
-	 << BIT_SHIFT_SDIO_DATA_REPLY_TIME_8822B)
-#define BIT_GET_SDIO_DATA_REPLY_TIME_8822B(x)                                  \
-	(((x) >> BIT_SHIFT_SDIO_DATA_REPLY_TIME_8822B) &                       \
-	 BIT_MASK_SDIO_DATA_REPLY_TIME_8822B)
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_fw_info.h b/drivers/staging/rtlwifi/halmac/halmac_fw_info.h
deleted file mode 100644
index eb4558d..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_fw_info.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_FW_INFO_H_
-#define _HALMAC_FW_INFO_H_
-
-#define H2C_FORMAT_VERSION 6
-
-#define H2C_ACK_HDR_CONTENT_LENGTH 8
-#define CFG_PARAMETER_ACK_CONTENT_LENGTH 16
-#define SCAN_STATUS_RPT_CONTENT_LENGTH 4
-#define C2H_DBG_HEADER_LENGTH 4
-#define C2H_DBG_CONTENT_MAX_LENGTH 228
-
-#define C2H_DBG_CONTENT_SEQ_OFFSET 1
-
-/* Rename from FW SysHalCom_Debug_RAM.h */
-#define FW_REG_H2CPKT_DONE_SEQ 0x1C8
-#define fw_reg_wow_reason 0x1C7
-
-enum halmac_data_type {
-	HALMAC_DATA_TYPE_MAC_REG = 0x00,
-	HALMAC_DATA_TYPE_BB_REG = 0x01,
-	HALMAC_DATA_TYPE_RADIO_A = 0x02,
-	HALMAC_DATA_TYPE_RADIO_B = 0x03,
-	HALMAC_DATA_TYPE_RADIO_C = 0x04,
-	HALMAC_DATA_TYPE_RADIO_D = 0x05,
-
-	HALMAC_DATA_TYPE_DRV_DEFINE_0 = 0x80,
-	HALMAC_DATA_TYPE_DRV_DEFINE_1 = 0x81,
-	HALMAC_DATA_TYPE_DRV_DEFINE_2 = 0x82,
-	HALMAC_DATA_TYPE_DRV_DEFINE_3 = 0x83,
-	HALMAC_DATA_TYPE_UNDEFINE = 0x7FFFFFFF,
-};
-
-enum halmac_packet_id {
-	HALMAC_PACKET_PROBE_REQ = 0x00,
-	HALMAC_PACKET_SYNC_BCN = 0x01,
-	HALMAC_PACKET_DISCOVERY_BCN = 0x02,
-
-	HALMAC_PACKET_UNDEFINE = 0x7FFFFFFF,
-};
-
-/* Channel Switch Action ID */
-enum halmac_cs_action_id {
-	HALMAC_CS_ACTION_NONE = 0x00,
-	HALMAC_CS_ACTIVE_SCAN = 0x01,
-	HALMAC_CS_NAN_NONMASTER_DW = 0x02,
-	HALMAC_CS_NAN_NONMASTER_NONDW = 0x03,
-	HALMAC_CS_NAN_MASTER_NONDW = 0x04,
-	HALMAC_CS_NAN_MASTER_DW = 0x05,
-
-	HALMAC_CS_ACTION_UNDEFINE = 0x7FFFFFFF,
-};
-
-/* Channel Switch Extra Action ID */
-enum halmac_cs_extra_action_id {
-	HALMAC_CS_EXTRA_ACTION_NONE = 0x00,
-	HALMAC_CS_EXTRA_UPDATE_PROBE = 0x01,
-	HALMAC_CS_EXTRA_UPDATE_BEACON = 0x02,
-
-	HALMAC_CS_EXTRA_ACTION_UNDEFINE = 0x7FFFFFFF,
-};
-
-enum halmac_h2c_return_code {
-	HALMAC_H2C_RETURN_SUCCESS = 0x00,
-	HALMAC_H2C_RETURN_CFG_ERR_LEN = 0x01,
-	HALMAC_H2C_RETURN_CFG_ERR_CMD = 0x02,
-
-	HALMAC_H2C_RETURN_EFUSE_ERR_DUMP = 0x03,
-
-	HALMAC_H2C_RETURN_DATAPACK_ERR_FULL = 0x04, /* DMEM buffer full */
-	HALMAC_H2C_RETURN_DATAPACK_ERR_ID = 0x05, /* Invalid pack id */
-
-	HALMAC_H2C_RETURN_RUN_ERR_EMPTY =
-		0x06, /* No data in dedicated buffer */
-	HALMAC_H2C_RETURN_RUN_ERR_LEN = 0x07,
-	HALMAC_H2C_RETURN_RUN_ERR_CMD = 0x08,
-	HALMAC_H2C_RETURN_RUN_ERR_ID = 0x09, /* Invalid pack id */
-
-	HALMAC_H2C_RETURN_PACKET_ERR_FULL = 0x0A, /* DMEM buffer full */
-	HALMAC_H2C_RETURN_PACKET_ERR_ID = 0x0B, /* Invalid packet id */
-
-	HALMAC_H2C_RETURN_SCAN_ERR_FULL = 0x0C, /* DMEM buffer full */
-	HALMAC_H2C_RETURN_SCAN_ERR_PHYDM = 0x0D, /* PHYDM API return fail */
-
-	HALMAC_H2C_RETURN_ORIG_ERR_ID = 0x0E, /* Invalid original H2C cmd id */
-
-	HALMAC_H2C_RETURN_UNDEFINE = 0x7FFFFFFF,
-};
-
-enum halmac_scan_report_code {
-	HALMAC_SCAN_REPORT_DONE = 0x00,
-	HALMAC_SCAN_REPORT_ERR_PHYDM = 0x01, /* PHYDM API return fail */
-	HALMAC_SCAN_REPORT_ERR_ID = 0x02, /* Invalid ActionID */
-	HALMAC_SCAN_REPORT_ERR_TX = 0x03, /* Tx RsvdPage fail */
-
-	HALMAC_SCAN_REPORT_UNDEFINE = 0x7FFFFFFF,
-};
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_fw_offload_c2h_nic.h b/drivers/staging/rtlwifi/halmac/halmac_fw_offload_c2h_nic.h
deleted file mode 100644
index 45b5f878..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_fw_offload_c2h_nic.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HAL_FWOFFLOADC2HFORMAT_H2C_C2H_NIC_H_
-#define _HAL_FWOFFLOADC2HFORMAT_H2C_C2H_NIC_H_
-#define C2H_SUB_CMD_ID_C2H_DBG 0X00
-#define C2H_SUB_CMD_ID_BT_COEX_INFO 0X02
-#define C2H_SUB_CMD_ID_SCAN_STATUS_RPT 0X03
-#define C2H_SUB_CMD_ID_H2C_ACK_HDR 0X01
-#define C2H_SUB_CMD_ID_CFG_PARAMETER_ACK 0X01
-#define C2H_SUB_CMD_ID_BT_COEX_ACK 0X01
-#define C2H_SUB_CMD_ID_DUMP_PHYSICAL_EFUSE_ACK 0X01
-#define C2H_SUB_CMD_ID_UPDATE_PACKET_ACK 0X01
-#define C2H_SUB_CMD_ID_UPDATE_DATAPACK_ACK 0X01
-#define C2H_SUB_CMD_ID_RUN_DATAPACK_ACK 0X01
-#define C2H_SUB_CMD_ID_CHANNEL_SWITCH_ACK 0X01
-#define C2H_SUB_CMD_ID_IQK_ACK 0X01
-#define C2H_SUB_CMD_ID_POWER_TRACKING_ACK 0X01
-#define C2H_SUB_CMD_ID_PSD_ACK 0X01
-#define C2H_SUB_CMD_ID_PSD_DATA 0X04
-#define C2H_SUB_CMD_ID_EFUSE_DATA 0X05
-#define C2H_SUB_CMD_ID_IQK_DATA 0X06
-#define C2H_SUB_CMD_ID_C2H_PKT_FTM_DBG 0X07
-#define C2H_SUB_CMD_ID_C2H_PKT_FTM_2_DBG 0X08
-#define C2H_SUB_CMD_ID_C2H_PKT_FTM_3_DBG 0X09
-#define C2H_SUB_CMD_ID_C2H_PKT_FTM_4_DBG 0X0A
-#define C2H_SUB_CMD_ID_FTMACKRPT_HDL_DBG 0X0B
-#define C2H_SUB_CMD_ID_FTMC2H_RPT 0X0C
-#define C2H_SUB_CMD_ID_DRVFTMC2H_RPT 0X0D
-#define C2H_SUB_CMD_ID_C2H_PKT_FTM_5_DBG 0X0E
-#define C2H_SUB_CMD_ID_CCX_RPT 0X0F
-#define C2H_SUB_CMD_ID_C2H_PKT_NAN_RPT 0X10
-#define H2C_SUB_CMD_ID_CFG_PARAMETER_ACK SUB_CMD_ID_CFG_PARAMETER
-#define H2C_SUB_CMD_ID_BT_COEX_ACK SUB_CMD_ID_BT_COEX
-#define H2C_SUB_CMD_ID_DUMP_PHYSICAL_EFUSE_ACK SUB_CMD_ID_DUMP_PHYSICAL_EFUSE
-#define H2C_SUB_CMD_ID_UPDATE_PACKET_ACK SUB_CMD_ID_UPDATE_PACKET
-#define H2C_SUB_CMD_ID_UPDATE_DATAPACK_ACK SUB_CMD_ID_UPDATE_DATAPACK
-#define H2C_SUB_CMD_ID_RUN_DATAPACK_ACK SUB_CMD_ID_RUN_DATAPACK
-#define H2C_SUB_CMD_ID_CHANNEL_SWITCH_ACK SUB_CMD_ID_CHANNEL_SWITCH
-#define H2C_SUB_CMD_ID_IQK_ACK SUB_CMD_ID_IQK
-#define H2C_SUB_CMD_ID_POWER_TRACKING_ACK SUB_CMD_ID_POWER_TRACKING
-#define H2C_SUB_CMD_ID_PSD_ACK SUB_CMD_ID_PSD
-#define H2C_SUB_CMD_ID_CCX_RPT SUB_CMD_ID_CCX_RPT
-#define H2C_CMD_ID_CFG_PARAMETER_ACK 0XFF
-#define H2C_CMD_ID_BT_COEX_ACK 0XFF
-#define H2C_CMD_ID_DUMP_PHYSICAL_EFUSE_ACK 0XFF
-#define H2C_CMD_ID_UPDATE_PACKET_ACK 0XFF
-#define H2C_CMD_ID_UPDATE_DATAPACK_ACK 0XFF
-#define H2C_CMD_ID_RUN_DATAPACK_ACK 0XFF
-#define H2C_CMD_ID_CHANNEL_SWITCH_ACK 0XFF
-#define H2C_CMD_ID_IQK_ACK 0XFF
-#define H2C_CMD_ID_POWER_TRACKING_ACK 0XFF
-#define H2C_CMD_ID_PSD_ACK 0XFF
-#define H2C_CMD_ID_CCX_RPT 0XFF
-#define C2H_HDR_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_HDR_SET_CMD_ID(__c2h, __value)                                     \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_HDR_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_HDR_SET_SEQ(__c2h, __value)                                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_HDR_GET_C2H_SUB_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
-#define C2H_HDR_SET_C2H_SUB_CMD_ID(__c2h, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
-#define C2H_HDR_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
-#define C2H_HDR_SET_LEN(__c2h, __value)                                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
-#define C2H_DBG_GET_DBG_MSG(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
-#define C2H_DBG_SET_DBG_MSG(__c2h, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
-#define BT_COEX_INFO_GET_DATA_START(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
-#define BT_COEX_INFO_SET_DATA_START(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
-#define SCAN_STATUS_RPT_GET_H2C_RETURN_CODE(__c2h)                             \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
-#define SCAN_STATUS_RPT_SET_H2C_RETURN_CODE(__c2h, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
-#define SCAN_STATUS_RPT_GET_H2C_SEQ(__c2h)                                     \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 16)
-#define SCAN_STATUS_RPT_SET_H2C_SEQ(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 16, __value)
-#define H2C_ACK_HDR_GET_H2C_RETURN_CODE(__c2h)                                 \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
-#define H2C_ACK_HDR_SET_H2C_RETURN_CODE(__c2h, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
-#define H2C_ACK_HDR_GET_H2C_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define H2C_ACK_HDR_SET_H2C_CMD_ID(__c2h, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define H2C_ACK_HDR_GET_H2C_SUB_CMD_ID(__c2h)                                  \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 16)
-#define H2C_ACK_HDR_SET_H2C_SUB_CMD_ID(__c2h, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 16, __value)
-#define H2C_ACK_HDR_GET_H2C_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 16)
-#define H2C_ACK_HDR_SET_H2C_SEQ(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 16, __value)
-#define CFG_PARAMETER_ACK_GET_OFFSET_ACCUMULATION(__c2h)                       \
-	LE_BITS_TO_4BYTE(__c2h + 0XC, 0, 32)
-#define CFG_PARAMETER_ACK_SET_OFFSET_ACCUMULATION(__c2h, __value)              \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0XC, 0, 32, __value)
-#define CFG_PARAMETER_ACK_GET_VALUE_ACCUMULATION(__c2h)                        \
-	LE_BITS_TO_4BYTE(__c2h + 0X10, 0, 32)
-#define CFG_PARAMETER_ACK_SET_VALUE_ACCUMULATION(__c2h, __value)               \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X10, 0, 32, __value)
-#define BT_COEX_ACK_GET_DATA_START(__c2h) LE_BITS_TO_4BYTE(__c2h + 0XC, 0, 8)
-#define BT_COEX_ACK_SET_DATA_START(__c2h, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0XC, 0, 8, __value)
-#define PSD_DATA_GET_SEGMENT_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 7)
-#define PSD_DATA_SET_SEGMENT_ID(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 7, __value)
-#define PSD_DATA_GET_END_SEGMENT(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 7, 1)
-#define PSD_DATA_SET_END_SEGMENT(__c2h, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 7, 1, __value)
-#define PSD_DATA_GET_SEGMENT_SIZE(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define PSD_DATA_SET_SEGMENT_SIZE(__c2h, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define PSD_DATA_GET_TOTAL_SIZE(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 16)
-#define PSD_DATA_SET_TOTAL_SIZE(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 16, __value)
-#define PSD_DATA_GET_H2C_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X8, 0, 16)
-#define PSD_DATA_SET_H2C_SEQ(__c2h, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X8, 0, 16, __value)
-#define PSD_DATA_GET_DATA_START(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X8, 16, 8)
-#define PSD_DATA_SET_DATA_START(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X8, 16, 8, __value)
-#define EFUSE_DATA_GET_SEGMENT_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 7)
-#define EFUSE_DATA_SET_SEGMENT_ID(__c2h, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 7, __value)
-#define EFUSE_DATA_GET_END_SEGMENT(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 7, 1)
-#define EFUSE_DATA_SET_END_SEGMENT(__c2h, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 7, 1, __value)
-#define EFUSE_DATA_GET_SEGMENT_SIZE(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define EFUSE_DATA_SET_SEGMENT_SIZE(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define EFUSE_DATA_GET_TOTAL_SIZE(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 16)
-#define EFUSE_DATA_SET_TOTAL_SIZE(__c2h, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 16, __value)
-#define EFUSE_DATA_GET_H2C_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X8, 0, 16)
-#define EFUSE_DATA_SET_H2C_SEQ(__c2h, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X8, 0, 16, __value)
-#define EFUSE_DATA_GET_DATA_START(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X8, 16, 8)
-#define EFUSE_DATA_SET_DATA_START(__c2h, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X8, 16, 8, __value)
-#define IQK_DATA_GET_SEGMENT_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 7)
-#define IQK_DATA_SET_SEGMENT_ID(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 7, __value)
-#define IQK_DATA_GET_END_SEGMENT(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 7, 1)
-#define IQK_DATA_SET_END_SEGMENT(__c2h, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 7, 1, __value)
-#define IQK_DATA_GET_SEGMENT_SIZE(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define IQK_DATA_SET_SEGMENT_SIZE(__c2h, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define IQK_DATA_GET_TOTAL_SIZE(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 16)
-#define IQK_DATA_SET_TOTAL_SIZE(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 16, __value)
-#define IQK_DATA_GET_H2C_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X8, 0, 16)
-#define IQK_DATA_SET_H2C_SEQ(__c2h, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X8, 0, 16, __value)
-#define IQK_DATA_GET_DATA_START(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X8, 16, 8)
-#define IQK_DATA_SET_DATA_START(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X8, 16, 8, __value)
-#define CCX_RPT_GET_CCX_RPT(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X4, 0, 129)
-#define CCX_RPT_SET_CCX_RPT(__c2h, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X4, 0, 129, __value)
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_fw_offload_h2c_nic.h b/drivers/staging/rtlwifi/halmac/halmac_fw_offload_h2c_nic.h
deleted file mode 100644
index 58e4758..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_fw_offload_h2c_nic.h
+++ /dev/null
@@ -1,504 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HAL_FWOFFLOADH2CFORMAT_H2C_C2H_NIC_H_
-#define _HAL_FWOFFLOADH2CFORMAT_H2C_C2H_NIC_H_
-#define CMD_ID_FW_OFFLOAD_H2C 0XFF
-#define CMD_ID_CHANNEL_SWITCH 0XFF
-#define CMD_ID_DUMP_PHYSICAL_EFUSE 0XFF
-#define CMD_ID_UPDATE_BEACON_PARSING_INFO 0XFF
-#define CMD_ID_CFG_PARAMETER 0XFF
-#define CMD_ID_UPDATE_DATAPACK 0XFF
-#define CMD_ID_RUN_DATAPACK 0XFF
-#define CMD_ID_DOWNLOAD_FLASH 0XFF
-#define CMD_ID_UPDATE_PACKET 0XFF
-#define CMD_ID_GENERAL_INFO 0XFF
-#define CMD_ID_IQK 0XFF
-#define CMD_ID_POWER_TRACKING 0XFF
-#define CMD_ID_PSD 0XFF
-#define CMD_ID_P2PPS 0XFF
-#define CMD_ID_BT_COEX 0XFF
-#define CMD_ID_NAN_CTRL 0XFF
-#define CMD_ID_NAN_CHANNEL_PLAN_0 0XFF
-#define CMD_ID_NAN_CHANNEL_PLAN_1 0XFF
-#define CATEGORY_H2C_CMD_HEADER 0X00
-#define CATEGORY_FW_OFFLOAD_H2C 0X01
-#define CATEGORY_CHANNEL_SWITCH 0X01
-#define CATEGORY_DUMP_PHYSICAL_EFUSE 0X01
-#define CATEGORY_UPDATE_BEACON_PARSING_INFO 0X01
-#define CATEGORY_CFG_PARAMETER 0X01
-#define CATEGORY_UPDATE_DATAPACK 0X01
-#define CATEGORY_RUN_DATAPACK 0X01
-#define CATEGORY_DOWNLOAD_FLASH 0X01
-#define CATEGORY_UPDATE_PACKET 0X01
-#define CATEGORY_GENERAL_INFO 0X01
-#define CATEGORY_IQK 0X01
-#define CATEGORY_POWER_TRACKING 0X01
-#define CATEGORY_PSD 0X01
-#define CATEGORY_P2PPS 0X01
-#define CATEGORY_BT_COEX 0X01
-#define CATEGORY_NAN_CTRL 0X01
-#define CATEGORY_NAN_CHANNEL_PLAN_0 0X01
-#define CATEGORY_NAN_CHANNEL_PLAN_1 0X01
-#define SUB_CMD_ID_CHANNEL_SWITCH 0X02
-#define SUB_CMD_ID_DUMP_PHYSICAL_EFUSE 0X03
-#define SUB_CMD_ID_UPDATE_BEACON_PARSING_INFO 0X05
-#define SUB_CMD_ID_CFG_PARAMETER 0X08
-#define SUB_CMD_ID_UPDATE_DATAPACK 0X09
-#define SUB_CMD_ID_RUN_DATAPACK 0X0A
-#define SUB_CMD_ID_DOWNLOAD_FLASH 0X0B
-#define SUB_CMD_ID_UPDATE_PACKET 0X0C
-#define SUB_CMD_ID_GENERAL_INFO 0X0D
-#define SUB_CMD_ID_IQK 0X0E
-#define SUB_CMD_ID_POWER_TRACKING 0X0F
-#define SUB_CMD_ID_PSD 0X10
-#define SUB_CMD_ID_P2PPS 0X24
-#define SUB_CMD_ID_BT_COEX 0X60
-#define SUB_CMD_ID_NAN_CTRL 0XB2
-#define SUB_CMD_ID_NAN_CHANNEL_PLAN_0 0XB4
-#define SUB_CMD_ID_NAN_CHANNEL_PLAN_1 0XB5
-#define H2C_CMD_HEADER_GET_CATEGORY(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 7)
-#define H2C_CMD_HEADER_SET_CATEGORY(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 7, __value)
-#define H2C_CMD_HEADER_GET_ACK(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 7, 1)
-#define H2C_CMD_HEADER_SET_ACK(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 7, 1, __value)
-#define H2C_CMD_HEADER_GET_TOTAL_LEN(__h2c)                                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 16)
-#define H2C_CMD_HEADER_SET_TOTAL_LEN(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 16, __value)
-#define H2C_CMD_HEADER_GET_SEQ_NUM(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 16)
-#define H2C_CMD_HEADER_SET_SEQ_NUM(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 16, __value)
-#define FW_OFFLOAD_H2C_GET_CATEGORY(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 7)
-#define FW_OFFLOAD_H2C_SET_CATEGORY(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 7, __value)
-#define FW_OFFLOAD_H2C_GET_ACK(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 7, 1)
-#define FW_OFFLOAD_H2C_SET_ACK(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 7, 1, __value)
-#define FW_OFFLOAD_H2C_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define FW_OFFLOAD_H2C_SET_CMD_ID(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define FW_OFFLOAD_H2C_GET_SUB_CMD_ID(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 16)
-#define FW_OFFLOAD_H2C_SET_SUB_CMD_ID(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 16, __value)
-#define FW_OFFLOAD_H2C_GET_TOTAL_LEN(__h2c)                                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 16)
-#define FW_OFFLOAD_H2C_SET_TOTAL_LEN(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 16, __value)
-#define FW_OFFLOAD_H2C_GET_SEQ_NUM(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 16)
-#define FW_OFFLOAD_H2C_SET_SEQ_NUM(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 16, __value)
-#define CHANNEL_SWITCH_GET_SWITCH_START(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
-#define CHANNEL_SWITCH_SET_SWITCH_START(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
-#define CHANNEL_SWITCH_GET_DEST_CH_EN(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 1, 1)
-#define CHANNEL_SWITCH_SET_DEST_CH_EN(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 1, 1, __value)
-#define CHANNEL_SWITCH_GET_ABSOLUTE_TIME(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 2, 1)
-#define CHANNEL_SWITCH_SET_ABSOLUTE_TIME(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 2, 1, __value)
-#define CHANNEL_SWITCH_GET_PERIODIC_OPTION(__h2c)                              \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 3, 2)
-#define CHANNEL_SWITCH_SET_PERIODIC_OPTION(__h2c, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 3, 2, __value)
-#define CHANNEL_SWITCH_GET_CHANNEL_INFO_LOC(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
-#define CHANNEL_SWITCH_SET_CHANNEL_INFO_LOC(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
-#define CHANNEL_SWITCH_GET_CHANNEL_NUM(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
-#define CHANNEL_SWITCH_SET_CHANNEL_NUM(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
-#define CHANNEL_SWITCH_GET_PRI_CH_IDX(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 4)
-#define CHANNEL_SWITCH_SET_PRI_CH_IDX(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 4, __value)
-#define CHANNEL_SWITCH_GET_DEST_BW(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 28, 4)
-#define CHANNEL_SWITCH_SET_DEST_BW(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 28, 4, __value)
-#define CHANNEL_SWITCH_GET_DEST_CH(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
-#define CHANNEL_SWITCH_SET_DEST_CH(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
-#define CHANNEL_SWITCH_GET_NORMAL_PERIOD(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 8, 8)
-#define CHANNEL_SWITCH_SET_NORMAL_PERIOD(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 8, 8, __value)
-#define CHANNEL_SWITCH_GET_SLOW_PERIOD(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 16, 8)
-#define CHANNEL_SWITCH_SET_SLOW_PERIOD(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 16, 8, __value)
-#define CHANNEL_SWITCH_GET_NORMAL_CYCLE(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 24, 8)
-#define CHANNEL_SWITCH_SET_NORMAL_CYCLE(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 24, 8, __value)
-#define CHANNEL_SWITCH_GET_TSF_HIGH(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 32)
-#define CHANNEL_SWITCH_SET_TSF_HIGH(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 32, __value)
-#define CHANNEL_SWITCH_GET_TSF_LOW(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 32)
-#define CHANNEL_SWITCH_SET_TSF_LOW(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 32, __value)
-#define CHANNEL_SWITCH_GET_CHANNEL_INFO_SIZE(__h2c)                            \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 16)
-#define CHANNEL_SWITCH_SET_CHANNEL_INFO_SIZE(__h2c, __value)                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 16, __value)
-#define UPDATE_BEACON_PARSING_INFO_GET_FUNC_EN(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
-#define UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
-#define UPDATE_BEACON_PARSING_INFO_GET_SIZE_TH(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 4)
-#define UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 4, __value)
-#define UPDATE_BEACON_PARSING_INFO_GET_TIMEOUT(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 12, 4)
-#define UPDATE_BEACON_PARSING_INFO_SET_TIMEOUT(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 12, 4, __value)
-#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_0(__h2c)                      \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 32)
-#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_0(__h2c, __value)             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 32, __value)
-#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_1(__h2c)                      \
-	LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 32)
-#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_1(__h2c, __value)             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 32, __value)
-#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_2(__h2c)                      \
-	LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 32)
-#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_2(__h2c, __value)             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 32, __value)
-#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_3(__h2c)                      \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 32)
-#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_3(__h2c, __value)             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 32, __value)
-#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_4(__h2c)                      \
-	LE_BITS_TO_4BYTE(__h2c + 0X1C, 0, 32)
-#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_4(__h2c, __value)             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 0, 32, __value)
-#define CFG_PARAMETER_GET_NUM(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 16)
-#define CFG_PARAMETER_SET_NUM(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 16, __value)
-#define CFG_PARAMETER_GET_INIT_CASE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 1)
-#define CFG_PARAMETER_SET_INIT_CASE(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 1, __value)
-#define CFG_PARAMETER_GET_PHY_PARAMETER_LOC(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
-#define CFG_PARAMETER_SET_PHY_PARAMETER_LOC(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
-#define UPDATE_DATAPACK_GET_SIZE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 16)
-#define UPDATE_DATAPACK_SET_SIZE(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 16, __value)
-#define UPDATE_DATAPACK_GET_DATAPACK_ID(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
-#define UPDATE_DATAPACK_SET_DATAPACK_ID(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
-#define UPDATE_DATAPACK_GET_DATAPACK_LOC(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
-#define UPDATE_DATAPACK_SET_DATAPACK_LOC(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
-#define UPDATE_DATAPACK_GET_DATAPACK_SEGMENT(__h2c)                            \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
-#define UPDATE_DATAPACK_SET_DATAPACK_SEGMENT(__h2c, __value)                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
-#define UPDATE_DATAPACK_GET_END_SEGMENT(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 8, 1)
-#define UPDATE_DATAPACK_SET_END_SEGMENT(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 8, 1, __value)
-#define RUN_DATAPACK_GET_DATAPACK_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
-#define RUN_DATAPACK_SET_DATAPACK_ID(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
-#define DOWNLOAD_FLASH_GET_SPI_CMD(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
-#define DOWNLOAD_FLASH_SET_SPI_CMD(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
-#define DOWNLOAD_FLASH_GET_LOCATION(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 16)
-#define DOWNLOAD_FLASH_SET_LOCATION(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 16, __value)
-#define DOWNLOAD_FLASH_GET_SIZE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 32)
-#define DOWNLOAD_FLASH_SET_SIZE(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 32, __value)
-#define DOWNLOAD_FLASH_GET_START_ADDR(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 32)
-#define DOWNLOAD_FLASH_SET_START_ADDR(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 32, __value)
-#define UPDATE_PACKET_GET_SIZE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 16)
-#define UPDATE_PACKET_SET_SIZE(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 16, __value)
-#define UPDATE_PACKET_GET_PACKET_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
-#define UPDATE_PACKET_SET_PACKET_ID(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
-#define UPDATE_PACKET_GET_PACKET_LOC(__h2c)                                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
-#define UPDATE_PACKET_SET_PACKET_LOC(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
-#define GENERAL_INFO_GET_REF_TYPE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
-#define GENERAL_INFO_SET_REF_TYPE(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
-#define GENERAL_INFO_GET_RF_TYPE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 9)
-#define GENERAL_INFO_SET_RF_TYPE(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 9, __value)
-#define GENERAL_INFO_GET_FW_TX_BOUNDARY(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
-#define GENERAL_INFO_SET_FW_TX_BOUNDARY(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
-#define IQK_GET_CLEAR(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
-#define IQK_SET_CLEAR(__h2c, __value)                                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
-#define IQK_GET_SEGMENT_IQK(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 1, 1)
-#define IQK_SET_SEGMENT_IQK(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 1, 1, __value)
-#define POWER_TRACKING_GET_ENABLE_A(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
-#define POWER_TRACKING_SET_ENABLE_A(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
-#define POWER_TRACKING_GET_ENABLE_B(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 1, 1)
-#define POWER_TRACKING_SET_ENABLE_B(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 1, 1, __value)
-#define POWER_TRACKING_GET_ENABLE_C(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 2, 1)
-#define POWER_TRACKING_SET_ENABLE_C(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 2, 1, __value)
-#define POWER_TRACKING_GET_ENABLE_D(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 3, 1)
-#define POWER_TRACKING_SET_ENABLE_D(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 3, 1, __value)
-#define POWER_TRACKING_GET_TYPE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 4, 3)
-#define POWER_TRACKING_SET_TYPE(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 4, 3, __value)
-#define POWER_TRACKING_GET_BBSWING_INDEX(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
-#define POWER_TRACKING_SET_BBSWING_INDEX(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
-#define POWER_TRACKING_GET_TX_PWR_INDEX_A(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
-#define POWER_TRACKING_SET_TX_PWR_INDEX_A(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
-#define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_A(__h2c)                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 8, 8)
-#define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_A(__h2c, __value)         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 8, 8, __value)
-#define POWER_TRACKING_GET_TSSI_VALUE_A(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 16, 8)
-#define POWER_TRACKING_SET_TSSI_VALUE_A(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 16, 8, __value)
-#define POWER_TRACKING_GET_TX_PWR_INDEX_B(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 8)
-#define POWER_TRACKING_SET_TX_PWR_INDEX_B(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 8, __value)
-#define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_B(__h2c)                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X10, 8, 8)
-#define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_B(__h2c, __value)         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 8, 8, __value)
-#define POWER_TRACKING_GET_TSSI_VALUE_B(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X10, 16, 8)
-#define POWER_TRACKING_SET_TSSI_VALUE_B(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 16, 8, __value)
-#define POWER_TRACKING_GET_TX_PWR_INDEX_C(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 8)
-#define POWER_TRACKING_SET_TX_PWR_INDEX_C(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 8, __value)
-#define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_C(__h2c)                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X14, 8, 8)
-#define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_C(__h2c, __value)         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 8, 8, __value)
-#define POWER_TRACKING_GET_TSSI_VALUE_C(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X14, 16, 8)
-#define POWER_TRACKING_SET_TSSI_VALUE_C(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 16, 8, __value)
-#define POWER_TRACKING_GET_TX_PWR_INDEX_D(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 8)
-#define POWER_TRACKING_SET_TX_PWR_INDEX_D(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 8, __value)
-#define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_D(__h2c)                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 8, 8)
-#define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_D(__h2c, __value)         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 8, 8, __value)
-#define POWER_TRACKING_GET_TSSI_VALUE_D(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 16, 8)
-#define POWER_TRACKING_SET_TSSI_VALUE_D(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 16, 8, __value)
-#define PSD_GET_START_PSD(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 16)
-#define PSD_SET_START_PSD(__h2c, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 16, __value)
-#define PSD_GET_END_PSD(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 16)
-#define PSD_SET_END_PSD(__h2c, __value)                                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 16, __value)
-#define P2PPS_GET_OFFLOAD_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
-#define P2PPS_SET_OFFLOAD_EN(__h2c, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
-#define P2PPS_GET_ROLE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 1, 1)
-#define P2PPS_SET_ROLE(__h2c, __value)                                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 1, 1, __value)
-#define P2PPS_GET_CTWINDOW_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 2, 1)
-#define P2PPS_SET_CTWINDOW_EN(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 2, 1, __value)
-#define P2PPS_GET_NOA_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 3, 1)
-#define P2PPS_SET_NOA_EN(__h2c, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 3, 1, __value)
-#define P2PPS_GET_NOA_SEL(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 4, 1)
-#define P2PPS_SET_NOA_SEL(__h2c, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 4, 1, __value)
-#define P2PPS_GET_ALLSTASLEEP(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 5, 1)
-#define P2PPS_SET_ALLSTASLEEP(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 5, 1, __value)
-#define P2PPS_GET_DISCOVERY(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 6, 1)
-#define P2PPS_SET_DISCOVERY(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 6, 1, __value)
-#define P2PPS_GET_P2P_PORT_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
-#define P2PPS_SET_P2P_PORT_ID(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
-#define P2PPS_GET_P2P_GROUP(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
-#define P2PPS_SET_P2P_GROUP(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
-#define P2PPS_GET_P2P_MACID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
-#define P2PPS_SET_P2P_MACID(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
-#define P2PPS_GET_CTWINDOW_LENGTH(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
-#define P2PPS_SET_CTWINDOW_LENGTH(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
-#define P2PPS_GET_NOA_DURATION_PARA(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 32)
-#define P2PPS_SET_NOA_DURATION_PARA(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 32, __value)
-#define P2PPS_GET_NOA_INTERVAL_PARA(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 32)
-#define P2PPS_SET_NOA_INTERVAL_PARA(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 32, __value)
-#define P2PPS_GET_NOA_START_TIME_PARA(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 32)
-#define P2PPS_SET_NOA_START_TIME_PARA(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 32, __value)
-#define P2PPS_GET_NOA_COUNT_PARA(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X1C, 0, 32)
-#define P2PPS_SET_NOA_COUNT_PARA(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 0, 32, __value)
-#define BT_COEX_GET_DATA_START(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
-#define BT_COEX_SET_DATA_START(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
-#define NAN_CTRL_GET_NAN_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 2)
-#define NAN_CTRL_SET_NAN_EN(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 2, __value)
-#define NAN_CTRL_GET_SUPPORT_BAND(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 2)
-#define NAN_CTRL_SET_SUPPORT_BAND(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 2, __value)
-#define NAN_CTRL_GET_DISABLE_2G_DISC_BCN(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 10, 1)
-#define NAN_CTRL_SET_DISABLE_2G_DISC_BCN(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 10, 1, __value)
-#define NAN_CTRL_GET_DISABLE_5G_DISC_BCN(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 11, 1)
-#define NAN_CTRL_SET_DISABLE_5G_DISC_BCN(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 11, 1, __value)
-#define NAN_CTRL_GET_BCN_RSVD_PAGE_OFFSET(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
-#define NAN_CTRL_SET_BCN_RSVD_PAGE_OFFSET(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
-#define NAN_CTRL_GET_CHANNEL_2G(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
-#define NAN_CTRL_SET_CHANNEL_2G(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
-#define NAN_CTRL_GET_CHANNEL_5G(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
-#define NAN_CTRL_SET_CHANNEL_5G(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
-#define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_0(__h2c)                         \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
-#define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_0(__h2c, __value)                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
-#define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_0(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
-#define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_0(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
-#define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_0(__h2c)                        \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 16)
-#define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_0(__h2c, __value)               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 16, __value)
-#define NAN_CHANNEL_PLAN_0_GET_DURATION_0(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 16, 16)
-#define NAN_CHANNEL_PLAN_0_SET_DURATION_0(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 16, 16, __value)
-#define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_1(__h2c)                         \
-	LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 8)
-#define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_1(__h2c, __value)                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 8, __value)
-#define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_1(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X10, 8, 8)
-#define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_1(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 8, 8, __value)
-#define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_1(__h2c)                        \
-	LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 16)
-#define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_1(__h2c, __value)               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 16, __value)
-#define NAN_CHANNEL_PLAN_0_GET_DURATION_1(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X14, 16, 16)
-#define NAN_CHANNEL_PLAN_0_SET_DURATION_1(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 16, 16, __value)
-#define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_2(__h2c)                         \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 8)
-#define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_2(__h2c, __value)                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 8, __value)
-#define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_2(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 8, 8)
-#define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_2(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 8, 8, __value)
-#define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_2(__h2c)                        \
-	LE_BITS_TO_4BYTE(__h2c + 0X1C, 0, 16)
-#define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_2(__h2c, __value)               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 0, 16, __value)
-#define NAN_CHANNEL_PLAN_0_GET_DURATION_2(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X1C, 16, 16)
-#define NAN_CHANNEL_PLAN_0_SET_DURATION_2(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 16, 16, __value)
-#define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_3(__h2c)                         \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
-#define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_3(__h2c, __value)                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
-#define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_3(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
-#define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_3(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
-#define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_3(__h2c)                        \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 16)
-#define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_3(__h2c, __value)               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 16, __value)
-#define NAN_CHANNEL_PLAN_1_GET_DURATION_3(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X0C, 16, 16)
-#define NAN_CHANNEL_PLAN_1_SET_DURATION_3(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 16, 16, __value)
-#define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_4(__h2c)                         \
-	LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 8)
-#define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_4(__h2c, __value)                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 8, __value)
-#define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_4(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X10, 8, 8)
-#define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_4(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 8, 8, __value)
-#define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_4(__h2c)                        \
-	LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 16)
-#define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_4(__h2c, __value)               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 16, __value)
-#define NAN_CHANNEL_PLAN_1_GET_DURATION_4(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X14, 16, 16)
-#define NAN_CHANNEL_PLAN_1_SET_DURATION_4(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 16, 16, __value)
-#define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_5(__h2c)                         \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 8)
-#define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_5(__h2c, __value)                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 8, __value)
-#define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_5(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X18, 8, 8)
-#define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_5(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 8, 8, __value)
-#define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_5(__h2c)                        \
-	LE_BITS_TO_4BYTE(__h2c + 0X1C, 0, 16)
-#define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_5(__h2c, __value)               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 0, 16, __value)
-#define NAN_CHANNEL_PLAN_1_GET_DURATION_5(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X1C, 16, 16)
-#define NAN_CHANNEL_PLAN_1_SET_DURATION_5(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 16, 16, __value)
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_h2c_extra_info_nic.h b/drivers/staging/rtlwifi/halmac/halmac_h2c_extra_info_nic.h
deleted file mode 100644
index 04cee38..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_h2c_extra_info_nic.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HAL_H2CEXTRAINFO_H2C_C2H_NIC_H_
-#define _HAL_H2CEXTRAINFO_H2C_C2H_NIC_H_
-#define PHY_PARAMETER_INFO_GET_LENGTH(__extra_info)                            \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 0, 8)
-#define PHY_PARAMETER_INFO_SET_LENGTH(__extra_info, __value)                   \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 0, 8, __value)
-#define PHY_PARAMETER_INFO_GET_IO_CMD(__extra_info)                            \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 8, 7)
-#define PHY_PARAMETER_INFO_SET_IO_CMD(__extra_info, __value)                   \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 8, 7, __value)
-#define PHY_PARAMETER_INFO_GET_MSK_EN(__extra_info)                            \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 15, 1)
-#define PHY_PARAMETER_INFO_SET_MSK_EN(__extra_info, __value)                   \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 15, 1, __value)
-#define PHY_PARAMETER_INFO_GET_LLT_PG_BNDY(__extra_info)                       \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 16, 8)
-#define PHY_PARAMETER_INFO_SET_LLT_PG_BNDY(__extra_info, __value)              \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 16, 8, __value)
-#define PHY_PARAMETER_INFO_GET_EFUSE_RSVDPAGE_LOC(__extra_info)                \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 16, 8)
-#define PHY_PARAMETER_INFO_SET_EFUSE_RSVDPAGE_LOC(__extra_info, __value)       \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 16, 8, __value)
-#define PHY_PARAMETER_INFO_GET_EFUSE_PATCH_EN(__extra_info)                    \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 16, 8)
-#define PHY_PARAMETER_INFO_SET_EFUSE_PATCH_EN(__extra_info, __value)           \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 16, 8, __value)
-#define PHY_PARAMETER_INFO_GET_RF_ADDR(__extra_info)                           \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 16, 8)
-#define PHY_PARAMETER_INFO_SET_RF_ADDR(__extra_info, __value)                  \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 16, 8, __value)
-#define PHY_PARAMETER_INFO_GET_IO_ADDR(__extra_info)                           \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 16, 16)
-#define PHY_PARAMETER_INFO_SET_IO_ADDR(__extra_info, __value)                  \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 16, 16, __value)
-#define PHY_PARAMETER_INFO_GET_DELAY_VALUE(__extra_info)                       \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 16, 16)
-#define PHY_PARAMETER_INFO_SET_DELAY_VALUE(__extra_info, __value)              \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 16, 16, __value)
-#define PHY_PARAMETER_INFO_GET_RF_PATH(__extra_info)                           \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 24, 8)
-#define PHY_PARAMETER_INFO_SET_RF_PATH(__extra_info, __value)                  \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 24, 8, __value)
-#define PHY_PARAMETER_INFO_GET_DATA(__extra_info)                              \
-	LE_BITS_TO_4BYTE(__extra_info + 0X04, 0, 32)
-#define PHY_PARAMETER_INFO_SET_DATA(__extra_info, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X04, 0, 32, __value)
-#define PHY_PARAMETER_INFO_GET_MASK(__extra_info)                              \
-	LE_BITS_TO_4BYTE(__extra_info + 0X08, 0, 32)
-#define PHY_PARAMETER_INFO_SET_MASK(__extra_info, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X08, 0, 32, __value)
-#define CHANNEL_INFO_GET_CHANNEL(__extra_info)                                 \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 0, 8)
-#define CHANNEL_INFO_SET_CHANNEL(__extra_info, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 0, 8, __value)
-#define CHANNEL_INFO_GET_PRI_CH_IDX(__extra_info)                              \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 8, 4)
-#define CHANNEL_INFO_SET_PRI_CH_IDX(__extra_info, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 8, 4, __value)
-#define CHANNEL_INFO_GET_BANDWIDTH(__extra_info)                               \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 12, 4)
-#define CHANNEL_INFO_SET_BANDWIDTH(__extra_info, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 12, 4, __value)
-#define CHANNEL_INFO_GET_TIMEOUT(__extra_info)                                 \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 16, 8)
-#define CHANNEL_INFO_SET_TIMEOUT(__extra_info, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 16, 8, __value)
-#define CHANNEL_INFO_GET_ACTION_ID(__extra_info)                               \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 24, 7)
-#define CHANNEL_INFO_SET_ACTION_ID(__extra_info, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 24, 7, __value)
-#define CHANNEL_INFO_GET_CH_EXTRA_INFO(__extra_info)                           \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 31, 1)
-#define CHANNEL_INFO_SET_CH_EXTRA_INFO(__extra_info, __value)                  \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 31, 1, __value)
-#define CH_EXTRA_INFO_GET_CH_EXTRA_INFO_ID(__extra_info)                       \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 0, 7)
-#define CH_EXTRA_INFO_SET_CH_EXTRA_INFO_ID(__extra_info, __value)              \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 0, 7, __value)
-#define CH_EXTRA_INFO_GET_CH_EXTRA_INFO(__extra_info)                          \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 7, 1)
-#define CH_EXTRA_INFO_SET_CH_EXTRA_INFO(__extra_info, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 7, 1, __value)
-#define CH_EXTRA_INFO_GET_CH_EXTRA_INFO_SIZE(__extra_info)                     \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 8, 8)
-#define CH_EXTRA_INFO_SET_CH_EXTRA_INFO_SIZE(__extra_info, __value)            \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 8, 8, __value)
-#define CH_EXTRA_INFO_GET_CH_EXTRA_INFO_DATA(__extra_info)                     \
-	LE_BITS_TO_4BYTE(__extra_info + 0X00, 16, 1)
-#define CH_EXTRA_INFO_SET_CH_EXTRA_INFO_DATA(__extra_info, __value)            \
-	SET_BITS_TO_LE_4BYTE(__extra_info + 0X00, 16, 1, __value)
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_intf_phy_cmd.h b/drivers/staging/rtlwifi/halmac/halmac_intf_phy_cmd.h
deleted file mode 100644
index bc9fb8e..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_intf_phy_cmd.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef HALMAC_INTF_PHY_CMD
-#define HALMAC_INTF_PHY_CMD
-
-/* Cut mask */
-enum halmac_intf_phy_cut {
-	HALMAC_INTF_PHY_CUT_TESTCHIP = BIT(0),
-	HALMAC_INTF_PHY_CUT_A = BIT(1),
-	HALMAC_INTF_PHY_CUT_B = BIT(2),
-	HALMAC_INTF_PHY_CUT_C = BIT(3),
-	HALMAC_INTF_PHY_CUT_D = BIT(4),
-	HALMAC_INTF_PHY_CUT_E = BIT(5),
-	HALMAC_INTF_PHY_CUT_F = BIT(6),
-	HALMAC_INTF_PHY_CUT_G = BIT(7),
-	HALMAC_INTF_PHY_CUT_ALL = 0x7FFF,
-};
-
-/* IP selection */
-enum halmac_ip_sel {
-	HALMAC_IP_SEL_INTF_PHY = 0,
-	HALMAC_IP_SEL_MAC = 1,
-	HALMAC_IP_SEL_PCIE_DBI = 2,
-	HALMAC_IP_SEL_UNDEFINE = 0x7FFF,
-};
-
-/* Platform mask */
-enum halmac_intf_phy_platform {
-	HALMAC_INTF_PHY_PLATFORM_ALL = 0x7FFF,
-};
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_original_c2h_nic.h b/drivers/staging/rtlwifi/halmac/halmac_original_c2h_nic.h
deleted file mode 100644
index f5807753..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_original_c2h_nic.h
+++ /dev/null
@@ -1,392 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HAL_ORIGINALC2HFORMAT_H2C_C2H_NIC_H_
-#define _HAL_ORIGINALC2HFORMAT_H2C_C2H_NIC_H_
-#define CMD_ID_C2H 0X00
-#define CMD_ID_DBG 0X00
-#define CMD_ID_C2H_LB 0X01
-#define CMD_ID_C2H_SND_TXBF 0X02
-#define CMD_ID_C2H_CCX_RPT 0X03
-#define CMD_ID_C2H_AP_REQ_TXRPT 0X04
-#define CMD_ID_C2H_INITIAL_RATE_COLLECTION 0X05
-#define CMD_ID_C2H_RA_RPT 0X0C
-#define CMD_ID_C2H_SPECIAL_STATISTICS 0X0D
-#define CMD_ID_C2H_RA_PARA_RPT 0X0E
-#define CMD_ID_C2H_CUR_CHANNEL 0X10
-#define CMD_ID_C2H_GPIO_WAKEUP 0X14
-#define C2H_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_SET_CMD_ID(__c2h, __value)                                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_SET_SEQ(__c2h, __value)                                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define DBG_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define DBG_SET_CMD_ID(__c2h, __value)                                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define DBG_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define DBG_SET_SEQ(__c2h, __value)                                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define DBG_GET_DBG_STR1(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
-#define DBG_SET_DBG_STR1(__c2h, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
-#define DBG_GET_DBG_STR2(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
-#define DBG_SET_DBG_STR2(__c2h, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
-#define DBG_GET_DBG_STR3(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
-#define DBG_SET_DBG_STR3(__c2h, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
-#define DBG_GET_DBG_STR4(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define DBG_SET_DBG_STR4(__c2h, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define DBG_GET_DBG_STR5(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
-#define DBG_SET_DBG_STR5(__c2h, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
-#define DBG_GET_DBG_STR6(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
-#define DBG_SET_DBG_STR6(__c2h, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
-#define DBG_GET_DBG_STR7(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
-#define DBG_SET_DBG_STR7(__c2h, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
-#define DBG_GET_DBG_STR8(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8)
-#define DBG_SET_DBG_STR8(__c2h, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value)
-#define DBG_GET_DBG_STR9(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 16, 8)
-#define DBG_SET_DBG_STR9(__c2h, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 16, 8, __value)
-#define DBG_GET_DBG_STR10(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 24, 8)
-#define DBG_SET_DBG_STR10(__c2h, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 24, 8, __value)
-#define DBG_GET_DBG_STR11(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 0, 8)
-#define DBG_SET_DBG_STR11(__c2h, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 0, 8, __value)
-#define DBG_GET_DBG_STR12(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 8, 8)
-#define DBG_SET_DBG_STR12(__c2h, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 8, 8, __value)
-#define DBG_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define DBG_SET_LEN(__c2h, __value)                                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define DBG_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define DBG_SET_TRIGGER(__c2h, __value)                                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_LB_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_LB_SET_CMD_ID(__c2h, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_LB_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_LB_SET_SEQ(__c2h, __value)                                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_LB_GET_PAYLOAD1(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 16)
-#define C2H_LB_SET_PAYLOAD1(__c2h, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 16, __value)
-#define C2H_LB_GET_PAYLOAD2(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 32)
-#define C2H_LB_SET_PAYLOAD2(__c2h, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 32, __value)
-#define C2H_LB_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_LB_SET_LEN(__c2h, __value)                                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_LB_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_LB_SET_TRIGGER(__c2h, __value)                                     \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_SND_TXBF_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_SND_TXBF_SET_CMD_ID(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_SND_TXBF_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_SND_TXBF_SET_SEQ(__c2h, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_SND_TXBF_GET_SND_RESULT(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 1)
-#define C2H_SND_TXBF_SET_SND_RESULT(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 1, __value)
-#define C2H_SND_TXBF_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_SND_TXBF_SET_LEN(__c2h, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_SND_TXBF_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_SND_TXBF_SET_TRIGGER(__c2h, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_CCX_RPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_CCX_RPT_SET_CMD_ID(__c2h, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_CCX_RPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_CCX_RPT_SET_SEQ(__c2h, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_CCX_RPT_GET_QSEL(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 5)
-#define C2H_CCX_RPT_SET_QSEL(__c2h, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 5, __value)
-#define C2H_CCX_RPT_GET_BMC(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 21, 1)
-#define C2H_CCX_RPT_SET_BMC(__c2h, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 21, 1, __value)
-#define C2H_CCX_RPT_GET_LIFE_TIME_OVER(__c2h)                                  \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 22, 1)
-#define C2H_CCX_RPT_SET_LIFE_TIME_OVER(__c2h, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 22, 1, __value)
-#define C2H_CCX_RPT_GET_RETRY_OVER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 23, 1)
-#define C2H_CCX_RPT_SET_RETRY_OVER(__c2h, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 23, 1, __value)
-#define C2H_CCX_RPT_GET_MACID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
-#define C2H_CCX_RPT_SET_MACID(__c2h, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
-#define C2H_CCX_RPT_GET_DATA_RETRY_CNT(__c2h)                                  \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 6)
-#define C2H_CCX_RPT_SET_DATA_RETRY_CNT(__c2h, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 6, __value)
-#define C2H_CCX_RPT_GET_QUEUE7_0(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define C2H_CCX_RPT_SET_QUEUE7_0(__c2h, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define C2H_CCX_RPT_GET_QUEUE15_8(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
-#define C2H_CCX_RPT_SET_QUEUE15_8(__c2h, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
-#define C2H_CCX_RPT_GET_FINAL_DATA_RATE(__c2h)                                 \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
-#define C2H_CCX_RPT_SET_FINAL_DATA_RATE(__c2h, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
-#define C2H_CCX_RPT_GET_SW_DEFINE_0(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
-#define C2H_CCX_RPT_SET_SW_DEFINE_0(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
-#define C2H_CCX_RPT_GET_SW_DEFINE_1(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 4)
-#define C2H_CCX_RPT_SET_SW_DEFINE_1(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 4, __value)
-#define C2H_CCX_RPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_CCX_RPT_SET_LEN(__c2h, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_CCX_RPT_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_CCX_RPT_SET_TRIGGER(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_AP_REQ_TXRPT_SET_CMD_ID(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_AP_REQ_TXRPT_SET_SEQ(__c2h, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_STA1_MACID(__c2h)                                 \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
-#define C2H_AP_REQ_TXRPT_SET_STA1_MACID(__c2h, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_TX_OK1_0(__c2h)                                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
-#define C2H_AP_REQ_TXRPT_SET_TX_OK1_0(__c2h, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_TX_OK1_1(__c2h)                                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
-#define C2H_AP_REQ_TXRPT_SET_TX_OK1_1(__c2h, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_TX_FAIL1_0(__c2h)                                 \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_0(__c2h, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_TX_FAIL1_1(__c2h)                                 \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
-#define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_1(__c2h, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_INITIAL_RATE1(__c2h)                              \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
-#define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE1(__c2h, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_STA2_MACID(__c2h)                                 \
-	LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
-#define C2H_AP_REQ_TXRPT_SET_STA2_MACID(__c2h, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_TX_OK2_0(__c2h)                                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8)
-#define C2H_AP_REQ_TXRPT_SET_TX_OK2_0(__c2h, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_TX_OK2_1(__c2h)                                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X08, 16, 8)
-#define C2H_AP_REQ_TXRPT_SET_TX_OK2_1(__c2h, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 16, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_TX_FAIL2_0(__c2h)                                 \
-	LE_BITS_TO_4BYTE(__c2h + 0X08, 24, 8)
-#define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_0(__c2h, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 24, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_TX_FAIL2_1(__c2h)                                 \
-	LE_BITS_TO_4BYTE(__c2h + 0X0C, 0, 8)
-#define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_1(__c2h, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 0, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_INITIAL_RATE2(__c2h)                              \
-	LE_BITS_TO_4BYTE(__c2h + 0X0C, 8, 8)
-#define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE2(__c2h, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 8, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_AP_REQ_TXRPT_SET_LEN(__c2h, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_AP_REQ_TXRPT_GET_TRIGGER(__c2h)                                    \
-	LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_AP_REQ_TXRPT_SET_TRIGGER(__c2h, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_CMD_ID(__c2h)                          \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_CMD_ID(__c2h, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_SEQ(__c2h)                             \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_SEQ(__c2h, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_TRYING_BITMAP(__c2h)                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 7)
-#define C2H_INITIAL_RATE_COLLECTION_SET_TRYING_BITMAP(__c2h, __value)          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 7, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE1(__c2h)                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE1(__c2h, __value)          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE2(__c2h)                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE2(__c2h, __value)          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE3(__c2h)                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE3(__c2h, __value)          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE4(__c2h)                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE4(__c2h, __value)          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE5(__c2h)                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE5(__c2h, __value)          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE6(__c2h)                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE6(__c2h, __value)          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE7(__c2h)                   \
-	LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE7(__c2h, __value)          \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_LEN(__c2h)                             \
-	LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_LEN(__c2h, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_INITIAL_RATE_COLLECTION_GET_TRIGGER(__c2h)                         \
-	LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_INITIAL_RATE_COLLECTION_SET_TRIGGER(__c2h, __value)                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_RA_RPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_RA_RPT_SET_CMD_ID(__c2h, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_RA_RPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_RA_RPT_SET_SEQ(__c2h, __value)                                     \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_RA_RPT_GET_RATE(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
-#define C2H_RA_RPT_SET_RATE(__c2h, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
-#define C2H_RA_RPT_GET_MACID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
-#define C2H_RA_RPT_SET_MACID(__c2h, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
-#define C2H_RA_RPT_GET_USE_LDPC(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 1)
-#define C2H_RA_RPT_SET_USE_LDPC(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 1, __value)
-#define C2H_RA_RPT_GET_USE_TXBF(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 1, 1)
-#define C2H_RA_RPT_SET_USE_TXBF(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 1, 1, __value)
-#define C2H_RA_RPT_GET_COLLISION_STATE(__c2h)                                  \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define C2H_RA_RPT_SET_COLLISION_STATE(__c2h, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define C2H_RA_RPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_RA_RPT_SET_LEN(__c2h, __value)                                     \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_RA_RPT_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_RA_RPT_SET_TRIGGER(__c2h, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_CMD_ID(__c2h)                               \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_SPECIAL_STATISTICS_SET_CMD_ID(__c2h, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_SEQ(__c2h)                                  \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_SPECIAL_STATISTICS_SET_SEQ(__c2h, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_STATISTICS_IDX(__c2h)                       \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
-#define C2H_SPECIAL_STATISTICS_SET_STATISTICS_IDX(__c2h, __value)              \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_DATA0(__c2h)                                \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
-#define C2H_SPECIAL_STATISTICS_SET_DATA0(__c2h, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_DATA1(__c2h)                                \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
-#define C2H_SPECIAL_STATISTICS_SET_DATA1(__c2h, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_DATA2(__c2h)                                \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
-#define C2H_SPECIAL_STATISTICS_SET_DATA2(__c2h, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_DATA3(__c2h)                                \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
-#define C2H_SPECIAL_STATISTICS_SET_DATA3(__c2h, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_DATA4(__c2h)                                \
-	LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
-#define C2H_SPECIAL_STATISTICS_SET_DATA4(__c2h, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_DATA5(__c2h)                                \
-	LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
-#define C2H_SPECIAL_STATISTICS_SET_DATA5(__c2h, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_DATA6(__c2h)                                \
-	LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8)
-#define C2H_SPECIAL_STATISTICS_SET_DATA6(__c2h, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_DATA7(__c2h)                                \
-	LE_BITS_TO_4BYTE(__c2h + 0X08, 16, 8)
-#define C2H_SPECIAL_STATISTICS_SET_DATA7(__c2h, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 16, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_LEN(__c2h)                                  \
-	LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_SPECIAL_STATISTICS_SET_LEN(__c2h, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_SPECIAL_STATISTICS_GET_TRIGGER(__c2h)                              \
-	LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_SPECIAL_STATISTICS_SET_TRIGGER(__c2h, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_RA_PARA_RPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_RA_PARA_RPT_SET_CMD_ID(__c2h, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_RA_PARA_RPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_RA_PARA_RPT_SET_SEQ(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_RA_PARA_RPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_RA_PARA_RPT_SET_LEN(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_RA_PARA_RPT_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_RA_PARA_RPT_SET_TRIGGER(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_CUR_CHANNEL_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_CUR_CHANNEL_SET_CMD_ID(__c2h, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_CUR_CHANNEL_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_CUR_CHANNEL_SET_SEQ(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_CUR_CHANNEL_GET_CHANNEL_NUM(__c2h)                                 \
-	LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
-#define C2H_CUR_CHANNEL_SET_CHANNEL_NUM(__c2h, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
-#define C2H_CUR_CHANNEL_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_CUR_CHANNEL_SET_LEN(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_CUR_CHANNEL_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_CUR_CHANNEL_SET_TRIGGER(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#define C2H_GPIO_WAKEUP_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
-#define C2H_GPIO_WAKEUP_SET_CMD_ID(__c2h, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
-#define C2H_GPIO_WAKEUP_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
-#define C2H_GPIO_WAKEUP_SET_SEQ(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
-#define C2H_GPIO_WAKEUP_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
-#define C2H_GPIO_WAKEUP_SET_LEN(__c2h, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
-#define C2H_GPIO_WAKEUP_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
-#define C2H_GPIO_WAKEUP_SET_TRIGGER(__c2h, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_original_h2c_nic.h b/drivers/staging/rtlwifi/halmac/halmac_original_h2c_nic.h
deleted file mode 100644
index ce39f08..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_original_h2c_nic.h
+++ /dev/null
@@ -1,1000 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HAL_ORIGINALH2CFORMAT_H2C_C2H_NIC_H_
-#define _HAL_ORIGINALH2CFORMAT_H2C_C2H_NIC_H_
-#define CMD_ID_ORIGINAL_H2C 0X00
-#define CMD_ID_H2C2H_LB 0X0
-#define CMD_ID_D0_SCAN_OFFLOAD_CTRL 0X06
-#define CMD_ID_RSVD_PAGE 0X0
-#define CMD_ID_MEDIA_STATUS_RPT 0X01
-#define CMD_ID_KEEP_ALIVE 0X03
-#define CMD_ID_DISCONNECT_DECISION 0X04
-#define CMD_ID_AP_OFFLOAD 0X08
-#define CMD_ID_BCN_RSVDPAGE 0X09
-#define CMD_ID_PROBE_RSP_RSVDPAGE 0X0A
-#define CMD_ID_SET_PWR_MODE 0X00
-#define CMD_ID_PS_TUNING_PARA 0X01
-#define CMD_ID_PS_TUNING_PARA_II 0X02
-#define CMD_ID_PS_LPS_PARA 0X03
-#define CMD_ID_P2P_PS_OFFLOAD 0X04
-#define CMD_ID_PS_SCAN_EN 0X05
-#define CMD_ID_SAP_PS 0X06
-#define CMD_ID_INACTIVE_PS 0X07
-#define CMD_ID_MACID_CFG 0X00
-#define CMD_ID_TXBF 0X01
-#define CMD_ID_RSSI_SETTING 0X02
-#define CMD_ID_AP_REQ_TXRPT 0X03
-#define CMD_ID_INIT_RATE_COLLECTION 0X04
-#define CMD_ID_IQK_OFFLOAD 0X05
-#define CMD_ID_MACID_CFG_3SS 0X06
-#define CMD_ID_RA_PARA_ADJUST 0X07
-#define CMD_ID_WWLAN 0X00
-#define CMD_ID_REMOTE_WAKE_CTRL 0X01
-#define CMD_ID_AOAC_GLOBAL_INFO 0X02
-#define CMD_ID_AOAC_RSVD_PAGE 0X03
-#define CMD_ID_AOAC_RSVD_PAGE2 0X04
-#define CMD_ID_D0_SCAN_OFFLOAD_INFO 0X05
-#define CMD_ID_CHANNEL_SWITCH_OFFLOAD 0X07
-#define CMD_ID_AOAC_RSVD_PAGE3 0X08
-#define CLASS_ORIGINAL_H2C 0X00
-#define CLASS_H2C2H_LB 0X07
-#define CLASS_D0_SCAN_OFFLOAD_CTRL 0X04
-#define CLASS_RSVD_PAGE 0X0
-#define CLASS_MEDIA_STATUS_RPT 0X0
-#define CLASS_KEEP_ALIVE 0X0
-#define CLASS_DISCONNECT_DECISION 0X0
-#define CLASS_AP_OFFLOAD 0X0
-#define CLASS_BCN_RSVDPAGE 0X0
-#define CLASS_PROBE_RSP_RSVDPAGE 0X0
-#define CLASS_SET_PWR_MODE 0X01
-#define CLASS_PS_TUNING_PARA 0X01
-#define CLASS_PS_TUNING_PARA_II 0X01
-#define CLASS_PS_LPS_PARA 0X01
-#define CLASS_P2P_PS_OFFLOAD 0X01
-#define CLASS_PS_SCAN_EN 0X1
-#define CLASS_SAP_PS 0X1
-#define CLASS_INACTIVE_PS 0X1
-#define CLASS_MACID_CFG 0X2
-#define CLASS_TXBF 0X2
-#define CLASS_RSSI_SETTING 0X2
-#define CLASS_AP_REQ_TXRPT 0X2
-#define CLASS_INIT_RATE_COLLECTION 0X2
-#define CLASS_IQK_OFFLOAD 0X2
-#define CLASS_MACID_CFG_3SS 0X2
-#define CLASS_RA_PARA_ADJUST 0X02
-#define CLASS_WWLAN 0X4
-#define CLASS_REMOTE_WAKE_CTRL 0X4
-#define CLASS_AOAC_GLOBAL_INFO 0X04
-#define CLASS_AOAC_RSVD_PAGE 0X04
-#define CLASS_AOAC_RSVD_PAGE2 0X04
-#define CLASS_D0_SCAN_OFFLOAD_INFO 0X04
-#define CLASS_CHANNEL_SWITCH_OFFLOAD 0X04
-#define CLASS_AOAC_RSVD_PAGE3 0X04
-#define ORIGINAL_H2C_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define ORIGINAL_H2C_SET_CMD_ID(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define ORIGINAL_H2C_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define ORIGINAL_H2C_SET_CLASS(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define H2C2H_LB_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define H2C2H_LB_SET_CMD_ID(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define H2C2H_LB_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define H2C2H_LB_SET_CLASS(__h2c, __value)                                     \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define H2C2H_LB_GET_SEQ(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define H2C2H_LB_SET_SEQ(__h2c, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define H2C2H_LB_GET_PAYLOAD1(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 16)
-#define H2C2H_LB_SET_PAYLOAD1(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 16, __value)
-#define H2C2H_LB_GET_PAYLOAD2(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 32)
-#define H2C2H_LB_SET_PAYLOAD2(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 32, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_CMD_ID(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define D0_SCAN_OFFLOAD_CTRL_SET_CMD_ID(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_CLASS(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define D0_SCAN_OFFLOAD_CTRL_SET_CLASS(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_D0_SCAN_FUN_EN(__h2c)                         \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define D0_SCAN_OFFLOAD_CTRL_SET_D0_SCAN_FUN_EN(__h2c, __value)                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_RTD3FUN_EN(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define D0_SCAN_OFFLOAD_CTRL_SET_RTD3FUN_EN(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_U3_SCAN_FUN_EN(__h2c)                         \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 10, 1)
-#define D0_SCAN_OFFLOAD_CTRL_SET_U3_SCAN_FUN_EN(__h2c, __value)                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 10, 1, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_NLO_FUN_EN(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 11, 1)
-#define D0_SCAN_OFFLOAD_CTRL_SET_NLO_FUN_EN(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 11, 1, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_IPS_DEPENDENT(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 12, 1)
-#define D0_SCAN_OFFLOAD_CTRL_SET_IPS_DEPENDENT(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 12, 1, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_LOC_PROBE_PACKET(__h2c)                       \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 17)
-#define D0_SCAN_OFFLOAD_CTRL_SET_LOC_PROBE_PACKET(__h2c, __value)              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 17, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_LOC_SCAN_INFO(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define D0_SCAN_OFFLOAD_CTRL_SET_LOC_SCAN_INFO(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define D0_SCAN_OFFLOAD_CTRL_GET_LOC_SSID_INFO(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define D0_SCAN_OFFLOAD_CTRL_SET_LOC_SSID_INFO(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define RSVD_PAGE_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define RSVD_PAGE_SET_CMD_ID(__h2c, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define RSVD_PAGE_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define RSVD_PAGE_SET_CLASS(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define RSVD_PAGE_GET_LOC_PROBE_RSP(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define RSVD_PAGE_SET_LOC_PROBE_RSP(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define RSVD_PAGE_GET_LOC_PS_POLL(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define RSVD_PAGE_SET_LOC_PS_POLL(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define RSVD_PAGE_GET_LOC_NULL_DATA(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define RSVD_PAGE_SET_LOC_NULL_DATA(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define RSVD_PAGE_GET_LOC_QOS_NULL(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define RSVD_PAGE_SET_LOC_QOS_NULL(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define RSVD_PAGE_GET_LOC_BT_QOS_NULL(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define RSVD_PAGE_SET_LOC_BT_QOS_NULL(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define RSVD_PAGE_GET_LOC_CTS2SELF(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 8)
-#define RSVD_PAGE_SET_LOC_CTS2SELF(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 8, __value)
-#define RSVD_PAGE_GET_LOC_LTECOEX_QOSNULL(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 24, 8)
-#define RSVD_PAGE_SET_LOC_LTECOEX_QOSNULL(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 24, 8, __value)
-#define MEDIA_STATUS_RPT_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define MEDIA_STATUS_RPT_SET_CMD_ID(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define MEDIA_STATUS_RPT_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define MEDIA_STATUS_RPT_SET_CLASS(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define MEDIA_STATUS_RPT_GET_OP_MODE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define MEDIA_STATUS_RPT_SET_OP_MODE(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define MEDIA_STATUS_RPT_GET_MACID_IN(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define MEDIA_STATUS_RPT_SET_MACID_IN(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define MEDIA_STATUS_RPT_GET_MACID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define MEDIA_STATUS_RPT_SET_MACID(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define MEDIA_STATUS_RPT_GET_MACID_END(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define MEDIA_STATUS_RPT_SET_MACID_END(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define KEEP_ALIVE_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define KEEP_ALIVE_SET_CMD_ID(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define KEEP_ALIVE_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define KEEP_ALIVE_SET_CLASS(__h2c, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define KEEP_ALIVE_GET_ENABLE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define KEEP_ALIVE_SET_ENABLE(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define KEEP_ALIVE_GET_ADOPT_USER_SETTING(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define KEEP_ALIVE_SET_ADOPT_USER_SETTING(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define KEEP_ALIVE_GET_PKT_TYPE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 10, 1)
-#define KEEP_ALIVE_SET_PKT_TYPE(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 10, 1, __value)
-#define KEEP_ALIVE_GET_KEEP_ALIVE_CHECK_PERIOD(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define KEEP_ALIVE_SET_KEEP_ALIVE_CHECK_PERIOD(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define DISCONNECT_DECISION_GET_CMD_ID(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define DISCONNECT_DECISION_SET_CMD_ID(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define DISCONNECT_DECISION_GET_CLASS(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define DISCONNECT_DECISION_SET_CLASS(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define DISCONNECT_DECISION_GET_ENABLE(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define DISCONNECT_DECISION_SET_ENABLE(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define DISCONNECT_DECISION_GET_ADOPT_USER_SETTING(__h2c)                      \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define DISCONNECT_DECISION_SET_ADOPT_USER_SETTING(__h2c, __value)             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define DISCONNECT_DECISION_GET_TRY_OK_BCN_FAIL_COUNT_EN(__h2c)                \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 10, 1)
-#define DISCONNECT_DECISION_SET_TRY_OK_BCN_FAIL_COUNT_EN(__h2c, __value)       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 10, 1, __value)
-#define DISCONNECT_DECISION_GET_DISCONNECT_EN(__h2c)                           \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 11, 1)
-#define DISCONNECT_DECISION_SET_DISCONNECT_EN(__h2c, __value)                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 11, 1, __value)
-#define DISCONNECT_DECISION_GET_DISCON_DECISION_CHECK_PERIOD(__h2c)            \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define DISCONNECT_DECISION_SET_DISCON_DECISION_CHECK_PERIOD(__h2c, __value)   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define DISCONNECT_DECISION_GET_TRY_PKT_NUM(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define DISCONNECT_DECISION_SET_TRY_PKT_NUM(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define DISCONNECT_DECISION_GET_TRY_OK_BCN_FAIL_COUNT_LIMIT(__h2c)             \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define DISCONNECT_DECISION_SET_TRY_OK_BCN_FAIL_COUNT_LIMIT(__h2c, __value)    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define AP_OFFLOAD_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define AP_OFFLOAD_SET_CMD_ID(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define AP_OFFLOAD_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define AP_OFFLOAD_SET_CLASS(__h2c, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define AP_OFFLOAD_GET_ON(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define AP_OFFLOAD_SET_ON(__h2c, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define AP_OFFLOAD_GET_CFG_MIFI_PLATFORM(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define AP_OFFLOAD_SET_CFG_MIFI_PLATFORM(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define AP_OFFLOAD_GET_LINKED(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 10, 1)
-#define AP_OFFLOAD_SET_LINKED(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 10, 1, __value)
-#define AP_OFFLOAD_GET_EN_AUTO_WAKE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 11, 1)
-#define AP_OFFLOAD_SET_EN_AUTO_WAKE(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 11, 1, __value)
-#define AP_OFFLOAD_GET_WAKE_FLAG(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 12, 1)
-#define AP_OFFLOAD_SET_WAKE_FLAG(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 12, 1, __value)
-#define AP_OFFLOAD_GET_HIDDEN_ROOT(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 1)
-#define AP_OFFLOAD_SET_HIDDEN_ROOT(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 1, __value)
-#define AP_OFFLOAD_GET_HIDDEN_VAP1(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 17, 1)
-#define AP_OFFLOAD_SET_HIDDEN_VAP1(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 17, 1, __value)
-#define AP_OFFLOAD_GET_HIDDEN_VAP2(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 18, 1)
-#define AP_OFFLOAD_SET_HIDDEN_VAP2(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 18, 1, __value)
-#define AP_OFFLOAD_GET_HIDDEN_VAP3(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 19, 1)
-#define AP_OFFLOAD_SET_HIDDEN_VAP3(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 19, 1, __value)
-#define AP_OFFLOAD_GET_HIDDEN_VAP4(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 20, 1)
-#define AP_OFFLOAD_SET_HIDDEN_VAP4(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 20, 1, __value)
-#define AP_OFFLOAD_GET_DENYANY_ROOT(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 1)
-#define AP_OFFLOAD_SET_DENYANY_ROOT(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 1, __value)
-#define AP_OFFLOAD_GET_DENYANY_VAP1(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 25, 1)
-#define AP_OFFLOAD_SET_DENYANY_VAP1(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 25, 1, __value)
-#define AP_OFFLOAD_GET_DENYANY_VAP2(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 26, 1)
-#define AP_OFFLOAD_SET_DENYANY_VAP2(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 26, 1, __value)
-#define AP_OFFLOAD_GET_DENYANY_VAP3(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 27, 1)
-#define AP_OFFLOAD_SET_DENYANY_VAP3(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 27, 1, __value)
-#define AP_OFFLOAD_GET_DENYANY_VAP4(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 28, 1)
-#define AP_OFFLOAD_SET_DENYANY_VAP4(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 28, 1, __value)
-#define AP_OFFLOAD_GET_WAIT_TBTT_CNT(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define AP_OFFLOAD_SET_WAIT_TBTT_CNT(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define AP_OFFLOAD_GET_WAKE_TIMEOUT(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define AP_OFFLOAD_SET_WAKE_TIMEOUT(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define AP_OFFLOAD_GET_LEN_IV_PAIR(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 8)
-#define AP_OFFLOAD_SET_LEN_IV_PAIR(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 8, __value)
-#define AP_OFFLOAD_GET_LEN_IV_GRP(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 24, 8)
-#define AP_OFFLOAD_SET_LEN_IV_GRP(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 24, 8, __value)
-#define BCN_RSVDPAGE_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define BCN_RSVDPAGE_SET_CMD_ID(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define BCN_RSVDPAGE_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define BCN_RSVDPAGE_SET_CLASS(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define BCN_RSVDPAGE_GET_LOC_ROOT(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define BCN_RSVDPAGE_SET_LOC_ROOT(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define BCN_RSVDPAGE_GET_LOC_VAP1(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define BCN_RSVDPAGE_SET_LOC_VAP1(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define BCN_RSVDPAGE_GET_LOC_VAP2(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define BCN_RSVDPAGE_SET_LOC_VAP2(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define BCN_RSVDPAGE_GET_LOC_VAP3(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define BCN_RSVDPAGE_SET_LOC_VAP3(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define BCN_RSVDPAGE_GET_LOC_VAP4(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define BCN_RSVDPAGE_SET_LOC_VAP4(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define PROBE_RSP_RSVDPAGE_GET_CMD_ID(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define PROBE_RSP_RSVDPAGE_SET_CMD_ID(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define PROBE_RSP_RSVDPAGE_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define PROBE_RSP_RSVDPAGE_SET_CLASS(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define PROBE_RSP_RSVDPAGE_GET_LOC_ROOT(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define PROBE_RSP_RSVDPAGE_SET_LOC_ROOT(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define PROBE_RSP_RSVDPAGE_GET_LOC_VAP1(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define PROBE_RSP_RSVDPAGE_SET_LOC_VAP1(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define PROBE_RSP_RSVDPAGE_GET_LOC_VAP2(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define PROBE_RSP_RSVDPAGE_SET_LOC_VAP2(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define PROBE_RSP_RSVDPAGE_GET_LOC_VAP3(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define PROBE_RSP_RSVDPAGE_SET_LOC_VAP3(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define PROBE_RSP_RSVDPAGE_GET_LOC_VAP4(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define PROBE_RSP_RSVDPAGE_SET_LOC_VAP4(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define SET_PWR_MODE_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define SET_PWR_MODE_SET_CMD_ID(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define SET_PWR_MODE_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define SET_PWR_MODE_SET_CLASS(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define SET_PWR_MODE_GET_MODE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 7)
-#define SET_PWR_MODE_SET_MODE(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 7, __value)
-#define SET_PWR_MODE_GET_CLK_REQUEST(__h2c)                                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 15, 1)
-#define SET_PWR_MODE_SET_CLK_REQUEST(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 15, 1, __value)
-#define SET_PWR_MODE_GET_RLBM(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 4)
-#define SET_PWR_MODE_SET_RLBM(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 4, __value)
-#define SET_PWR_MODE_GET_SMART_PS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 20, 4)
-#define SET_PWR_MODE_SET_SMART_PS(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 20, 4, __value)
-#define SET_PWR_MODE_GET_AWAKE_INTERVAL(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define SET_PWR_MODE_SET_AWAKE_INTERVAL(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define SET_PWR_MODE_GET_B_ALL_QUEUE_UAPSD(__h2c)                              \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 1)
-#define SET_PWR_MODE_SET_B_ALL_QUEUE_UAPSD(__h2c, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 1, __value)
-#define SET_PWR_MODE_GET_BCN_EARLY_RPT(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 2, 1)
-#define SET_PWR_MODE_SET_BCN_EARLY_RPT(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 2, 1, __value)
-#define SET_PWR_MODE_GET_PORT_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 5, 3)
-#define SET_PWR_MODE_SET_PORT_ID(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 5, 3, __value)
-#define SET_PWR_MODE_GET_PWR_STATE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define SET_PWR_MODE_SET_PWR_STATE(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define SET_PWR_MODE_GET_LOW_POWER_RX_BCN(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 1)
-#define SET_PWR_MODE_SET_LOW_POWER_RX_BCN(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 1, __value)
-#define SET_PWR_MODE_GET_ANT_AUTO_SWITCH(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 17, 1)
-#define SET_PWR_MODE_SET_ANT_AUTO_SWITCH(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 17, 1, __value)
-#define SET_PWR_MODE_GET_PS_ALLOW_BT_HIGH_PRIORITY(__h2c)                      \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 18, 1)
-#define SET_PWR_MODE_SET_PS_ALLOW_BT_HIGH_PRIORITY(__h2c, __value)             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 18, 1, __value)
-#define SET_PWR_MODE_GET_PROTECT_BCN(__h2c)                                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 19, 1)
-#define SET_PWR_MODE_SET_PROTECT_BCN(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 19, 1, __value)
-#define SET_PWR_MODE_GET_SILENCE_PERIOD(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 20, 1)
-#define SET_PWR_MODE_SET_SILENCE_PERIOD(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 20, 1, __value)
-#define SET_PWR_MODE_GET_FAST_BT_CONNECT(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 21, 1)
-#define SET_PWR_MODE_SET_FAST_BT_CONNECT(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 21, 1, __value)
-#define SET_PWR_MODE_GET_TWO_ANTENNA_EN(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 22, 1)
-#define SET_PWR_MODE_SET_TWO_ANTENNA_EN(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 22, 1, __value)
-#define SET_PWR_MODE_GET_ADOPT_USER_SETTING(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 24, 1)
-#define SET_PWR_MODE_SET_ADOPT_USER_SETTING(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 24, 1, __value)
-#define SET_PWR_MODE_GET_DRV_BCN_EARLY_SHIFT(__h2c)                            \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 25, 3)
-#define SET_PWR_MODE_SET_DRV_BCN_EARLY_SHIFT(__h2c, __value)                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 25, 3, __value)
-#define SET_PWR_MODE_GET_DRV_BCN_EARLY_SHIFT2(__h2c)                           \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 28, 4)
-#define SET_PWR_MODE_SET_DRV_BCN_EARLY_SHIFT2(__h2c, __value)                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 28, 4, __value)
-#define PS_TUNING_PARA_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define PS_TUNING_PARA_SET_CMD_ID(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define PS_TUNING_PARA_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define PS_TUNING_PARA_SET_CLASS(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define PS_TUNING_PARA_GET_BCN_TO_LIMIT(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 7)
-#define PS_TUNING_PARA_SET_BCN_TO_LIMIT(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 7, __value)
-#define PS_TUNING_PARA_GET_DTIM_TIME_OUT(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 15, 1)
-#define PS_TUNING_PARA_SET_DTIM_TIME_OUT(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 15, 1, __value)
-#define PS_TUNING_PARA_GET_PS_TIME_OUT(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 4)
-#define PS_TUNING_PARA_SET_PS_TIME_OUT(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 4, __value)
-#define PS_TUNING_PARA_GET_ADOPT(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define PS_TUNING_PARA_SET_ADOPT(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define PS_TUNING_PARA_II_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define PS_TUNING_PARA_II_SET_CMD_ID(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define PS_TUNING_PARA_II_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define PS_TUNING_PARA_II_SET_CLASS(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define PS_TUNING_PARA_II_GET_BCN_TO_PERIOD(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 7)
-#define PS_TUNING_PARA_II_SET_BCN_TO_PERIOD(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 7, __value)
-#define PS_TUNING_PARA_II_GET_ADOPT(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 15, 1)
-#define PS_TUNING_PARA_II_SET_ADOPT(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 15, 1, __value)
-#define PS_TUNING_PARA_II_GET_DRV_EARLY_IVL(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define PS_TUNING_PARA_II_SET_DRV_EARLY_IVL(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define PS_LPS_PARA_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define PS_LPS_PARA_SET_CMD_ID(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define PS_LPS_PARA_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define PS_LPS_PARA_SET_CLASS(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define PS_LPS_PARA_GET_LPS_CONTROL(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define PS_LPS_PARA_SET_LPS_CONTROL(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define P2P_PS_OFFLOAD_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define P2P_PS_OFFLOAD_SET_CMD_ID(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define P2P_PS_OFFLOAD_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define P2P_PS_OFFLOAD_SET_CLASS(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define P2P_PS_OFFLOAD_GET_OFFLOAD_EN(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define P2P_PS_OFFLOAD_SET_OFFLOAD_EN(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define P2P_PS_OFFLOAD_GET_ROLE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define P2P_PS_OFFLOAD_SET_ROLE(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define P2P_PS_OFFLOAD_GET_CTWINDOW_EN(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 10, 1)
-#define P2P_PS_OFFLOAD_SET_CTWINDOW_EN(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 10, 1, __value)
-#define P2P_PS_OFFLOAD_GET_NOA0_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 11, 1)
-#define P2P_PS_OFFLOAD_SET_NOA0_EN(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 11, 1, __value)
-#define P2P_PS_OFFLOAD_GET_NOA1_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 12, 1)
-#define P2P_PS_OFFLOAD_SET_NOA1_EN(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 12, 1, __value)
-#define P2P_PS_OFFLOAD_GET_ALL_STA_SLEEP(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 13, 1)
-#define P2P_PS_OFFLOAD_SET_ALL_STA_SLEEP(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 13, 1, __value)
-#define P2P_PS_OFFLOAD_GET_DISCOVERY(__h2c)                                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 14, 1)
-#define P2P_PS_OFFLOAD_SET_DISCOVERY(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 14, 1, __value)
-#define PS_SCAN_EN_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define PS_SCAN_EN_SET_CMD_ID(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define PS_SCAN_EN_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define PS_SCAN_EN_SET_CLASS(__h2c, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define PS_SCAN_EN_GET_ENABLE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define PS_SCAN_EN_SET_ENABLE(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define SAP_PS_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define SAP_PS_SET_CMD_ID(__h2c, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define SAP_PS_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define SAP_PS_SET_CLASS(__h2c, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define SAP_PS_GET_ENABLE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define SAP_PS_SET_ENABLE(__h2c, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define SAP_PS_GET_EN_PS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define SAP_PS_SET_EN_PS(__h2c, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define SAP_PS_GET_EN_LP_RX(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 10, 1)
-#define SAP_PS_SET_EN_LP_RX(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 10, 1, __value)
-#define SAP_PS_GET_MANUAL_32K(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 11, 1)
-#define SAP_PS_SET_MANUAL_32K(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 11, 1, __value)
-#define SAP_PS_GET_DURATION(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define SAP_PS_SET_DURATION(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define INACTIVE_PS_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define INACTIVE_PS_SET_CMD_ID(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define INACTIVE_PS_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define INACTIVE_PS_SET_CLASS(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define INACTIVE_PS_GET_ENABLE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define INACTIVE_PS_SET_ENABLE(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define INACTIVE_PS_GET_IGNORE_PS_CONDITION(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define INACTIVE_PS_SET_IGNORE_PS_CONDITION(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define INACTIVE_PS_GET_FREQUENCY(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define INACTIVE_PS_SET_FREQUENCY(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define INACTIVE_PS_GET_DURATION(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define INACTIVE_PS_SET_DURATION(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define MACID_CFG_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define MACID_CFG_SET_CMD_ID(__h2c, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define MACID_CFG_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define MACID_CFG_SET_CLASS(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define MACID_CFG_GET_MAC_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define MACID_CFG_SET_MAC_ID(__h2c, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define MACID_CFG_GET_RATE_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 5)
-#define MACID_CFG_SET_RATE_ID(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 5, __value)
-#define MACID_CFG_GET_SGI(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 23, 1)
-#define MACID_CFG_SET_SGI(__h2c, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 23, 1, __value)
-#define MACID_CFG_GET_BW(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 2)
-#define MACID_CFG_SET_BW(__h2c, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 2, __value)
-#define MACID_CFG_GET_LDPC_CAP(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 26, 1)
-#define MACID_CFG_SET_LDPC_CAP(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 26, 1, __value)
-#define MACID_CFG_GET_NO_UPDATE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 27, 1)
-#define MACID_CFG_SET_NO_UPDATE(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 27, 1, __value)
-#define MACID_CFG_GET_WHT_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 28, 2)
-#define MACID_CFG_SET_WHT_EN(__h2c, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 28, 2, __value)
-#define MACID_CFG_GET_DISPT(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 30, 1)
-#define MACID_CFG_SET_DISPT(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 30, 1, __value)
-#define MACID_CFG_GET_DISRA(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 31, 1)
-#define MACID_CFG_SET_DISRA(__h2c, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 31, 1, __value)
-#define MACID_CFG_GET_RATE_MASK7_0(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define MACID_CFG_SET_RATE_MASK7_0(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define MACID_CFG_GET_RATE_MASK15_8(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define MACID_CFG_SET_RATE_MASK15_8(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define MACID_CFG_GET_RATE_MASK23_16(__h2c)                                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 8)
-#define MACID_CFG_SET_RATE_MASK23_16(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 8, __value)
-#define MACID_CFG_GET_RATE_MASK31_24(__h2c)                                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 24, 8)
-#define MACID_CFG_SET_RATE_MASK31_24(__h2c, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 24, 8, __value)
-#define TXBF_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define TXBF_SET_CMD_ID(__h2c, __value)                                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define TXBF_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define TXBF_SET_CLASS(__h2c, __value)                                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define TXBF_GET_NDPA0_HEAD_PAGE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define TXBF_SET_NDPA0_HEAD_PAGE(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define TXBF_GET_NDPA1_HEAD_PAGE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define TXBF_SET_NDPA1_HEAD_PAGE(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define TXBF_GET_PERIOD_0(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define TXBF_SET_PERIOD_0(__h2c, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define RSSI_SETTING_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define RSSI_SETTING_SET_CMD_ID(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define RSSI_SETTING_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define RSSI_SETTING_SET_CLASS(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define RSSI_SETTING_GET_MAC_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define RSSI_SETTING_SET_MAC_ID(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define RSSI_SETTING_GET_RSSI(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 7)
-#define RSSI_SETTING_SET_RSSI(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 7, __value)
-#define RSSI_SETTING_GET_RA_INFO(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define RSSI_SETTING_SET_RA_INFO(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define AP_REQ_TXRPT_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define AP_REQ_TXRPT_SET_CMD_ID(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define AP_REQ_TXRPT_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define AP_REQ_TXRPT_SET_CLASS(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define AP_REQ_TXRPT_GET_STA1_MACID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define AP_REQ_TXRPT_SET_STA1_MACID(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define AP_REQ_TXRPT_GET_STA2_MACID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define AP_REQ_TXRPT_SET_STA2_MACID(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define AP_REQ_TXRPT_GET_RTY_OK_TOTAL(__h2c)                                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 1)
-#define AP_REQ_TXRPT_SET_RTY_OK_TOTAL(__h2c, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 1, __value)
-#define AP_REQ_TXRPT_GET_RTY_CNT_MACID(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 25, 1)
-#define AP_REQ_TXRPT_SET_RTY_CNT_MACID(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 25, 1, __value)
-#define INIT_RATE_COLLECTION_GET_CMD_ID(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define INIT_RATE_COLLECTION_SET_CMD_ID(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define INIT_RATE_COLLECTION_GET_CLASS(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define INIT_RATE_COLLECTION_SET_CLASS(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define INIT_RATE_COLLECTION_GET_STA1_MACID(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define INIT_RATE_COLLECTION_SET_STA1_MACID(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define INIT_RATE_COLLECTION_GET_STA2_MACID(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define INIT_RATE_COLLECTION_SET_STA2_MACID(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define INIT_RATE_COLLECTION_GET_STA3_MACID(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define INIT_RATE_COLLECTION_SET_STA3_MACID(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define INIT_RATE_COLLECTION_GET_STA4_MACID(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define INIT_RATE_COLLECTION_SET_STA4_MACID(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define INIT_RATE_COLLECTION_GET_STA5_MACID(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define INIT_RATE_COLLECTION_SET_STA5_MACID(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define INIT_RATE_COLLECTION_GET_STA6_MACID(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 8)
-#define INIT_RATE_COLLECTION_SET_STA6_MACID(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 8, __value)
-#define INIT_RATE_COLLECTION_GET_STA7_MACID(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 24, 8)
-#define INIT_RATE_COLLECTION_SET_STA7_MACID(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 24, 8, __value)
-#define IQK_OFFLOAD_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define IQK_OFFLOAD_SET_CMD_ID(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define IQK_OFFLOAD_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define IQK_OFFLOAD_SET_CLASS(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define IQK_OFFLOAD_GET_CHANNEL(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define IQK_OFFLOAD_SET_CHANNEL(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define IQK_OFFLOAD_GET_BWBAND(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define IQK_OFFLOAD_SET_BWBAND(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define IQK_OFFLOAD_GET_EXTPALNA(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define IQK_OFFLOAD_SET_EXTPALNA(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define MACID_CFG_3SS_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define MACID_CFG_3SS_SET_CMD_ID(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define MACID_CFG_3SS_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define MACID_CFG_3SS_SET_CLASS(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define MACID_CFG_3SS_GET_MACID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define MACID_CFG_3SS_SET_MACID(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define MACID_CFG_3SS_GET_RATE_MASK_39_32(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define MACID_CFG_3SS_SET_RATE_MASK_39_32(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define MACID_CFG_3SS_GET_RATE_MASK_47_40(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define MACID_CFG_3SS_SET_RATE_MASK_47_40(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define RA_PARA_ADJUST_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define RA_PARA_ADJUST_SET_CMD_ID(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define RA_PARA_ADJUST_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define RA_PARA_ADJUST_SET_CLASS(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define RA_PARA_ADJUST_GET_MAC_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define RA_PARA_ADJUST_SET_MAC_ID(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define RA_PARA_ADJUST_GET_PARAMETER_INDEX(__h2c)                              \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define RA_PARA_ADJUST_SET_PARAMETER_INDEX(__h2c, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define RA_PARA_ADJUST_GET_RATE_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define RA_PARA_ADJUST_SET_RATE_ID(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define RA_PARA_ADJUST_GET_VALUE_BYTE0(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define RA_PARA_ADJUST_SET_VALUE_BYTE0(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define RA_PARA_ADJUST_GET_VALUE_BYTE1(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define RA_PARA_ADJUST_SET_VALUE_BYTE1(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define RA_PARA_ADJUST_GET_ASK_FW_FOR_FW_PARA(__h2c)                           \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 8)
-#define RA_PARA_ADJUST_SET_ASK_FW_FOR_FW_PARA(__h2c, __value)                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 8, __value)
-#define WWLAN_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define WWLAN_SET_CMD_ID(__h2c, __value)                                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define WWLAN_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define WWLAN_SET_CLASS(__h2c, __value)                                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define WWLAN_GET_FUNC_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define WWLAN_SET_FUNC_EN(__h2c, __value)                                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define WWLAN_GET_PATTERM_MAT_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define WWLAN_SET_PATTERM_MAT_EN(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define WWLAN_GET_MAGIC_PKT_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 10, 1)
-#define WWLAN_SET_MAGIC_PKT_EN(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 10, 1, __value)
-#define WWLAN_GET_UNICAST_WAKEUP_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 11, 1)
-#define WWLAN_SET_UNICAST_WAKEUP_EN(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 11, 1, __value)
-#define WWLAN_GET_ALL_PKT_DROP(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 12, 1)
-#define WWLAN_SET_ALL_PKT_DROP(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 12, 1, __value)
-#define WWLAN_GET_GPIO_ACTIVE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 13, 1)
-#define WWLAN_SET_GPIO_ACTIVE(__h2c, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 13, 1, __value)
-#define WWLAN_GET_REKEY_WAKEUP_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 14, 1)
-#define WWLAN_SET_REKEY_WAKEUP_EN(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 14, 1, __value)
-#define WWLAN_GET_DEAUTH_WAKEUP_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 15, 1)
-#define WWLAN_SET_DEAUTH_WAKEUP_EN(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 15, 1, __value)
-#define WWLAN_GET_GPIO_NUM(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 7)
-#define WWLAN_SET_GPIO_NUM(__h2c, __value)                                     \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 7, __value)
-#define WWLAN_GET_DATAPIN_WAKEUP_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 23, 1)
-#define WWLAN_SET_DATAPIN_WAKEUP_EN(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 23, 1, __value)
-#define WWLAN_GET_GPIO_DURATION(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define WWLAN_SET_GPIO_DURATION(__h2c, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define WWLAN_GET_GPIO_PLUS_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 1)
-#define WWLAN_SET_GPIO_PLUS_EN(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 1, __value)
-#define WWLAN_GET_GPIO_PULSE_COUNT(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 1, 7)
-#define WWLAN_SET_GPIO_PULSE_COUNT(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 1, 7, __value)
-#define WWLAN_GET_DISABLE_UPHY(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 1)
-#define WWLAN_SET_DISABLE_UPHY(__h2c, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 1, __value)
-#define WWLAN_GET_HST2DEV_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 9, 1)
-#define WWLAN_SET_HST2DEV_EN(__h2c, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 9, 1, __value)
-#define WWLAN_GET_GPIO_DURATION_MS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 10, 1)
-#define WWLAN_SET_GPIO_DURATION_MS(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 10, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define REMOTE_WAKE_CTRL_SET_CMD_ID(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define REMOTE_WAKE_CTRL_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define REMOTE_WAKE_CTRL_SET_CLASS(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define REMOTE_WAKE_CTRL_GET_REMOTE_WAKE_CTRL_EN(__h2c)                        \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 1)
-#define REMOTE_WAKE_CTRL_SET_REMOTE_WAKE_CTRL_EN(__h2c, __value)               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_ARP_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 9, 1)
-#define REMOTE_WAKE_CTRL_SET_ARP_EN(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 9, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_NDP_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 10, 1)
-#define REMOTE_WAKE_CTRL_SET_NDP_EN(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 10, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_GTK_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 11, 1)
-#define REMOTE_WAKE_CTRL_SET_GTK_EN(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 11, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_NLO_OFFLOAD_EN(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 12, 1)
-#define REMOTE_WAKE_CTRL_SET_NLO_OFFLOAD_EN(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 12, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_REAL_WOW_V1_EN(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 13, 1)
-#define REMOTE_WAKE_CTRL_SET_REAL_WOW_V1_EN(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 13, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_REAL_WOW_V2_EN(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 14, 1)
-#define REMOTE_WAKE_CTRL_SET_REAL_WOW_V2_EN(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 14, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_FW_UNICAST(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 15, 1)
-#define REMOTE_WAKE_CTRL_SET_FW_UNICAST(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 15, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_P2P_OFFLOAD_EN(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 1)
-#define REMOTE_WAKE_CTRL_SET_P2P_OFFLOAD_EN(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_RUNTIME_PM_EN(__h2c)                              \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 17, 1)
-#define REMOTE_WAKE_CTRL_SET_RUNTIME_PM_EN(__h2c, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 17, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_NET_BIOS_DROP_EN(__h2c)                           \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 18, 1)
-#define REMOTE_WAKE_CTRL_SET_NET_BIOS_DROP_EN(__h2c, __value)                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 18, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_ARP_ACTION(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 1)
-#define REMOTE_WAKE_CTRL_SET_ARP_ACTION(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_FW_PARSING_UNTIL_WAKEUP(__h2c)                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 28, 1)
-#define REMOTE_WAKE_CTRL_SET_FW_PARSING_UNTIL_WAKEUP(__h2c, __value)           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 28, 1, __value)
-#define REMOTE_WAKE_CTRL_GET_FW_PARSING_AFTER_WAKEUP(__h2c)                    \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 29, 1)
-#define REMOTE_WAKE_CTRL_SET_FW_PARSING_AFTER_WAKEUP(__h2c, __value)           \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 29, 1, __value)
-#define AOAC_GLOBAL_INFO_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define AOAC_GLOBAL_INFO_SET_CMD_ID(__h2c, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define AOAC_GLOBAL_INFO_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define AOAC_GLOBAL_INFO_SET_CLASS(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define AOAC_GLOBAL_INFO_GET_PAIR_WISE_ENC_ALG(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define AOAC_GLOBAL_INFO_SET_PAIR_WISE_ENC_ALG(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define AOAC_GLOBAL_INFO_GET_GROUP_ENC_ALG(__h2c)                              \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define AOAC_GLOBAL_INFO_SET_GROUP_ENC_ALG(__h2c, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define AOAC_RSVD_PAGE_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define AOAC_RSVD_PAGE_SET_CMD_ID(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define AOAC_RSVD_PAGE_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define AOAC_RSVD_PAGE_SET_CLASS(__h2c, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define AOAC_RSVD_PAGE_GET_LOC_REMOTE_CTRL_INFO(__h2c)                         \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define AOAC_RSVD_PAGE_SET_LOC_REMOTE_CTRL_INFO(__h2c, __value)                \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define AOAC_RSVD_PAGE_GET_LOC_ARP_RESPONSE(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define AOAC_RSVD_PAGE_SET_LOC_ARP_RESPONSE(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define AOAC_RSVD_PAGE_GET_LOC_NEIGHBOR_ADVERTISEMENT(__h2c)                   \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define AOAC_RSVD_PAGE_SET_LOC_NEIGHBOR_ADVERTISEMENT(__h2c, __value)          \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define AOAC_RSVD_PAGE_GET_LOC_GTK_RSP(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define AOAC_RSVD_PAGE_SET_LOC_GTK_RSP(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define AOAC_RSVD_PAGE_GET_LOC_GTK_INFO(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define AOAC_RSVD_PAGE_SET_LOC_GTK_INFO(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define AOAC_RSVD_PAGE_GET_LOC_GTK_EXT_MEM(__h2c)                              \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 8)
-#define AOAC_RSVD_PAGE_SET_LOC_GTK_EXT_MEM(__h2c, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 8, __value)
-#define AOAC_RSVD_PAGE_GET_LOC_NDP_INFO(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 24, 8)
-#define AOAC_RSVD_PAGE_SET_LOC_NDP_INFO(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 24, 8, __value)
-#define AOAC_RSVD_PAGE2_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define AOAC_RSVD_PAGE2_SET_CMD_ID(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define AOAC_RSVD_PAGE2_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define AOAC_RSVD_PAGE2_SET_CLASS(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define AOAC_RSVD_PAGE2_GET_LOC_ROUTER_SOLICATION(__h2c)                       \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define AOAC_RSVD_PAGE2_SET_LOC_ROUTER_SOLICATION(__h2c, __value)              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define AOAC_RSVD_PAGE2_GET_LOC_BUBBLE_PACKET(__h2c)                           \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define AOAC_RSVD_PAGE2_SET_LOC_BUBBLE_PACKET(__h2c, __value)                  \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define AOAC_RSVD_PAGE2_GET_LOC_TEREDO_INFO(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define AOAC_RSVD_PAGE2_SET_LOC_TEREDO_INFO(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define AOAC_RSVD_PAGE2_GET_LOC_REALWOW_INFO(__h2c)                            \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 8)
-#define AOAC_RSVD_PAGE2_SET_LOC_REALWOW_INFO(__h2c, __value)                   \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 8, __value)
-#define AOAC_RSVD_PAGE2_GET_LOC_KEEP_ALIVE_PKT(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 8, 8)
-#define AOAC_RSVD_PAGE2_SET_LOC_KEEP_ALIVE_PKT(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 8, 8, __value)
-#define AOAC_RSVD_PAGE2_GET_LOC_ACK_PATTERN(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 8)
-#define AOAC_RSVD_PAGE2_SET_LOC_ACK_PATTERN(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 8, __value)
-#define AOAC_RSVD_PAGE2_GET_LOC_WAKEUP_PATTERN(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X04, 24, 8)
-#define AOAC_RSVD_PAGE2_SET_LOC_WAKEUP_PATTERN(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 24, 8, __value)
-#define D0_SCAN_OFFLOAD_INFO_GET_CMD_ID(__h2c)                                 \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define D0_SCAN_OFFLOAD_INFO_SET_CMD_ID(__h2c, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define D0_SCAN_OFFLOAD_INFO_GET_CLASS(__h2c)                                  \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define D0_SCAN_OFFLOAD_INFO_SET_CLASS(__h2c, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define D0_SCAN_OFFLOAD_INFO_GET_LOC_CHANNEL_INFO(__h2c)                       \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define D0_SCAN_OFFLOAD_INFO_SET_LOC_CHANNEL_INFO(__h2c, __value)              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define CHANNEL_SWITCH_OFFLOAD_GET_CMD_ID(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define CHANNEL_SWITCH_OFFLOAD_SET_CMD_ID(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define CHANNEL_SWITCH_OFFLOAD_GET_CLASS(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define CHANNEL_SWITCH_OFFLOAD_SET_CLASS(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define CHANNEL_SWITCH_OFFLOAD_GET_CHANNEL_NUM(__h2c)                          \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define CHANNEL_SWITCH_OFFLOAD_SET_CHANNEL_NUM(__h2c, __value)                 \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define CHANNEL_SWITCH_OFFLOAD_GET_EN_RFE(__h2c)                               \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define CHANNEL_SWITCH_OFFLOAD_SET_EN_RFE(__h2c, __value)                      \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#define CHANNEL_SWITCH_OFFLOAD_GET_RFE_TYPE(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 24, 8)
-#define CHANNEL_SWITCH_OFFLOAD_SET_RFE_TYPE(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 24, 8, __value)
-#define AOAC_RSVD_PAGE3_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 5)
-#define AOAC_RSVD_PAGE3_SET_CMD_ID(__h2c, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 5, __value)
-#define AOAC_RSVD_PAGE3_GET_CLASS(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 5, 3)
-#define AOAC_RSVD_PAGE3_SET_CLASS(__h2c, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 5, 3, __value)
-#define AOAC_RSVD_PAGE3_GET_LOC_NLO_INFO(__h2c)                                \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
-#define AOAC_RSVD_PAGE3_SET_LOC_NLO_INFO(__h2c, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
-#define AOAC_RSVD_PAGE3_GET_LOC_AOAC_REPORT(__h2c)                             \
-	LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 8)
-#define AOAC_RSVD_PAGE3_SET_LOC_AOAC_REPORT(__h2c, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 8, __value)
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_pwr_seq_cmd.h b/drivers/staging/rtlwifi/halmac/halmac_pwr_seq_cmd.h
deleted file mode 100644
index 802142b..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_pwr_seq_cmd.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef HALMAC_POWER_SEQUENCE_CMD
-#define HALMAC_POWER_SEQUENCE_CMD
-
-#include "halmac_2_platform.h"
-#include "halmac_type.h"
-
-#define HALMAC_POLLING_READY_TIMEOUT_COUNT 20000
-
-/* The value of cmd : 4 bits */
-
-/* offset : the read register offset
- * msk : the mask of the read value
- * value : N/A, left by 0
- * Note : dirver shall implement this function by read & msk
- */
-#define HALMAC_PWR_CMD_READ 0x00
-/*
- * offset: the read register offset
- * msk: the mask of the write bits
- * value: write value
- * Note: driver shall implement this cmd by read & msk after write
- */
-#define HALMAC_PWR_CMD_WRITE 0x01
-/* offset: the read register offset
- * msk: the mask of the polled value
- * value: the value to be polled, masked by the msd field.
- * Note: driver shall implement this cmd by
- * do{
- * if( (Read(offset) & msk) == (value & msk) )
- * break;
- * } while(not timeout);
- */
-#define HALMAC_PWR_CMD_POLLING 0x02
-/* offset: the value to delay
- * msk: N/A
- * value: the unit of delay, 0: us, 1: ms
- */
-#define HALMAC_PWR_CMD_DELAY 0x03
-/* offset: N/A
- * msk: N/A
- * value: N/A
- */
-#define HALMAC_PWR_CMD_END 0x04
-
-/* The value of base : 4 bits */
-
-/* define the base address of each block */
-#define HALMAC_PWR_BASEADDR_MAC 0x00
-#define HALMAC_PWR_BASEADDR_USB 0x01
-#define HALMAC_PWR_BASEADDR_PCIE 0x02
-#define HALMAC_PWR_BASEADDR_SDIO 0x03
-
-/* The value of interface_msk : 4 bits */
-#define HALMAC_PWR_INTF_SDIO_MSK BIT(0)
-#define HALMAC_PWR_INTF_USB_MSK BIT(1)
-#define HALMAC_PWR_INTF_PCI_MSK BIT(2)
-#define HALMAC_PWR_INTF_ALL_MSK (BIT(0) | BIT(1) | BIT(2) | BIT(3))
-
-/* The value of fab_msk : 4 bits */
-#define HALMAC_PWR_FAB_TSMC_MSK BIT(0)
-#define HALMAC_PWR_FAB_UMC_MSK BIT(1)
-#define HALMAC_PWR_FAB_ALL_MSK (BIT(0) | BIT(1) | BIT(2) | BIT(3))
-
-/* The value of cut_msk : 8 bits */
-#define HALMAC_PWR_CUT_TESTCHIP_MSK BIT(0)
-#define HALMAC_PWR_CUT_A_MSK BIT(1)
-#define HALMAC_PWR_CUT_B_MSK BIT(2)
-#define HALMAC_PWR_CUT_C_MSK BIT(3)
-#define HALMAC_PWR_CUT_D_MSK BIT(4)
-#define HALMAC_PWR_CUT_E_MSK BIT(5)
-#define HALMAC_PWR_CUT_F_MSK BIT(6)
-#define HALMAC_PWR_CUT_G_MSK BIT(7)
-#define HALMAC_PWR_CUT_ALL_MSK 0xFF
-
-enum halmac_pwrseq_cmd_delay_unit_ {
-	HALMAC_PWRSEQ_DELAY_US,
-	HALMAC_PWRSEQ_DELAY_MS,
-};
-
-/*Don't care endian issue, because element of pwer seq vector is fixed address*/
-struct halmac_wl_pwr_cfg_ {
-	u16 offset;
-	u8 cut_msk;
-	u8 fab_msk : 4;
-	u8 interface_msk : 4;
-	u8 base : 4;
-	u8 cmd : 4;
-	u8 msk;
-	u8 value;
-};
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_reg2.h b/drivers/staging/rtlwifi/halmac/halmac_reg2.h
deleted file mode 100644
index 34ab11d..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_reg2.h
+++ /dev/null
@@ -1,1121 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __HALMAC_COM_REG_H__
-#define __HALMAC_COM_REG_H__
-/*-------------------------Modification Log-----------------------------------
- *	For Page0, it is based on Combo_And_WL_Only_Page0_Reg.xls SVN524
- *	The supported IC are 8723A, 8881A, 8723B, 8192E, 8881A
- *	8812A and 8188E is not included in page0 register
- *
- *	For other pages, it is based on MAC_Register.doc SVN502
- *	Most IC is the same with 8812A
- *-------------------------Modification Log-----------------------------------
- */
-
-/*--------------------------Include File--------------------------------------*/
-/*--------------------------Include File--------------------------------------*/
-
-#define REG_SYS_ISO_CTRL				0x0000
-
-#define REG_SDIO_TX_CTRL				0x10250000
-
-#define REG_SYS_FUNC_EN				0x0002
-#define REG_SYS_PW_CTRL				0x0004
-#define REG_SYS_CLK_CTRL				0x0008
-#define REG_SYS_EEPROM_CTRL				0x000A
-#define REG_EE_VPD					0x000C
-#define REG_SYS_SWR_CTRL1				0x0010
-#define REG_SYS_SWR_CTRL2				0x0014
-
-#define REG_SDIO_HIMR					0x10250014
-
-#define REG_SYS_SWR_CTRL3				0x0018
-
-#define REG_SDIO_HISR					0x10250018
-
-#define REG_RSV_CTRL					0x001C
-
-#define REG_SDIO_RX_REQ_LEN				0x1025001C
-
-#define REG_RF_CTRL					0x001F
-
-#define REG_SDIO_FREE_TXPG_SEQ_V1			0x1025001F
-
-#define REG_AFE_LDO_CTRL				0x0020
-
-#define REG_SDIO_FREE_TXPG				0x10250020
-
-#define REG_AFE_CTRL1					0x0024
-
-#define REG_SDIO_FREE_TXPG2				0x10250024
-
-#define REG_AFE_CTRL2					0x0028
-
-#define REG_SDIO_OQT_FREE_TXPG_V1			0x10250028
-
-#define REG_AFE_CTRL3					0x002C
-#define REG_EFUSE_CTRL					0x0030
-
-#define REG_SDIO_HTSFR_INFO				0x10250030
-
-#define REG_LDO_EFUSE_CTRL				0x0034
-#define REG_PWR_OPTION_CTRL				0x0038
-
-#define REG_SDIO_HCPWM1_V2				0x10250038
-#define REG_SDIO_HCPWM2_V2				0x1025003A
-
-#define REG_CAL_TIMER					0x003C
-#define REG_ACLK_MON					0x003E
-#define REG_GPIO_MUXCFG				0x0040
-
-#define REG_SDIO_INDIRECT_REG_CFG			0x10250040
-
-#define REG_GPIO_PIN_CTRL				0x0044
-
-#define REG_SDIO_INDIRECT_REG_DATA			0x10250044
-
-#define REG_GPIO_INTM					0x0048
-#define REG_LED_CFG					0x004C
-#define REG_FSIMR					0x0050
-#define REG_FSISR					0x0054
-#define REG_HSIMR					0x0058
-#define REG_HSISR					0x005C
-#define REG_GPIO_EXT_CTRL				0x0060
-
-#define REG_SDIO_H2C					0x10250060
-
-#define REG_PAD_CTRL1					0x0064
-
-#define REG_SDIO_C2H					0x10250064
-
-#define REG_WL_BT_PWR_CTRL				0x0068
-
-#define REG_SDM_DEBUG					0x006C
-
-#define REG_SYS_SDIO_CTRL				0x0070
-
-#define REG_HCI_OPT_CTRL				0x0074
-
-#define REG_AFE_CTRL4					0x0078
-
-#define REG_LDO_SWR_CTRL				0x007C
-
-#define REG_MCUFW_CTRL					0x0080
-
-#define REG_SDIO_HRPWM1				0x10250080
-#define REG_SDIO_HRPWM2				0x10250082
-
-#define REG_MCU_TST_CFG				0x0084
-
-#define REG_SDIO_HPS_CLKR				0x10250084
-#define REG_SDIO_BUS_CTRL				0x10250085
-
-#define REG_SDIO_HSUS_CTRL				0x10250086
-
-#define REG_HMEBOX_E0_E1				0x0088
-
-#define REG_SDIO_RESPONSE_TIMER			0x10250088
-
-#define REG_SDIO_CMD_CRC				0x1025008A
-
-#define REG_HMEBOX_E2_E3				0x008C
-#define REG_WLLPS_CTRL					0x0090
-
-#define REG_SDIO_HSISR					0x10250090
-#define REG_SDIO_HSIMR					0x10250091
-
-#define REG_AFE_CTRL5					0x0094
-
-#define REG_GPIO_DEBOUNCE_CTRL				0x0098
-#define REG_RPWM2					0x009C
-#define REG_SYSON_FSM_MON				0x00A0
-
-#define REG_AFE_CTRL6					0x00A4
-
-#define REG_PMC_DBG_CTRL1				0x00A8
-
-#define REG_AFE_CTRL7					0x00AC
-
-#define REG_HIMR0					0x00B0
-#define REG_HISR0					0x00B4
-#define REG_HIMR1					0x00B8
-#define REG_HISR1					0x00BC
-#define REG_DBG_PORT_SEL				0x00C0
-
-#define REG_SDIO_ERR_RPT				0x102500C0
-#define REG_SDIO_CMD_ERRCNT				0x102500C1
-#define REG_SDIO_DATA_ERRCNT				0x102500C2
-
-#define REG_PAD_CTRL2					0x00C4
-
-#define REG_SDIO_CMD_ERR_CONTENT			0x102500C4
-
-#define REG_SDIO_CRC_ERR_IDX				0x102500C9
-#define REG_SDIO_DATA_CRC				0x102500CA
-#define REG_SDIO_DATA_REPLY_TIME			0x102500CB
-
-#define REG_PMC_DBG_CTRL2				0x00CC
-#define REG_BIST_CTRL					0x00D0
-#define REG_BIST_RPT					0x00D4
-#define REG_MEM_CTRL					0x00D8
-
-#define REG_AFE_CTRL8					0x00DC
-
-#define REG_USB_SIE_INTF				0x00E0
-#define REG_PCIE_MIO_INTF				0x00E4
-#define REG_PCIE_MIO_INTD				0x00E8
-
-#define REG_WLRF1					0x00EC
-
-#define REG_SYS_CFG1					0x00F0
-#define REG_SYS_STATUS1				0x00F4
-#define REG_SYS_STATUS2				0x00F8
-#define REG_SYS_CFG2					0x00FC
-#define REG_CR						0x0100
-
-#define REG_PKT_BUFF_ACCESS_CTRL			0x0106
-
-#define REG_TSF_CLK_STATE				0x0108
-#define REG_TXDMA_PQ_MAP				0x010C
-#define REG_TRXFF_BNDY					0x0114
-
-#define REG_PTA_I2C_MBOX				0x0118
-
-#define REG_RXFF_BNDY					0x011C
-
-#define REG_FE1IMR					0x0120
-
-#define REG_FE1ISR					0x0124
-
-#define REG_CPWM					0x012C
-#define REG_FWIMR					0x0130
-#define REG_FWISR					0x0134
-#define REG_FTIMR					0x0138
-#define REG_FTISR					0x013C
-#define REG_PKTBUF_DBG_CTRL				0x0140
-#define REG_PKTBUF_DBG_DATA_L				0x0144
-#define REG_PKTBUF_DBG_DATA_H				0x0148
-#define REG_CPWM2					0x014C
-#define REG_TC0_CTRL					0x0150
-#define REG_TC1_CTRL					0x0154
-#define REG_TC2_CTRL					0x0158
-#define REG_TC3_CTRL					0x015C
-#define REG_TC4_CTRL					0x0160
-#define REG_TCUNIT_BASE				0x0164
-#define REG_TC5_CTRL					0x0168
-#define REG_TC6_CTRL					0x016C
-#define REG_MBIST_FAIL					0x0170
-#define REG_MBIST_START_PAUSE				0x0174
-#define REG_MBIST_DONE					0x0178
-
-#define REG_MBIST_FAIL_NRML				0x017C
-
-#define REG_AES_DECRPT_DATA				0x0180
-#define REG_AES_DECRPT_CFG				0x0184
-
-#define REG_TMETER					0x0190
-#define REG_OSC_32K_CTRL				0x0194
-#define REG_32K_CAL_REG1				0x0198
-#define REG_C2HEVT					0x01A0
-
-#define REG_C2HEVT_1					0x01A4
-#define REG_C2HEVT_2					0x01A8
-#define REG_C2HEVT_3					0x01AC
-
-#define REG_SW_DEFINED_PAGE1				0x01B8
-
-#define REG_MCUTST_I					0x01C0
-#define REG_MCUTST_II					0x01C4
-#define REG_FMETHR					0x01C8
-#define REG_HMETFR					0x01CC
-#define REG_HMEBOX0					0x01D0
-#define REG_HMEBOX1					0x01D4
-#define REG_HMEBOX2					0x01D8
-#define REG_HMEBOX3					0x01DC
-#define REG_LLT_INIT					0x01E0
-
-#define REG_LLT_INIT_ADDR				0x01E4
-
-#define REG_BB_ACCESS_CTRL				0x01E8
-#define REG_BB_ACCESS_DATA				0x01EC
-#define REG_HMEBOX_E0					0x01F0
-#define REG_HMEBOX_E1					0x01F4
-#define REG_HMEBOX_E2					0x01F8
-#define REG_HMEBOX_E3					0x01FC
-
-#define REG_FIFOPAGE_CTRL_1				0x0200
-
-#define REG_FIFOPAGE_CTRL_2				0x0204
-
-#define REG_AUTO_LLT_V1				0x0208
-
-#define REG_TXDMA_OFFSET_CHK				0x020C
-#define REG_TXDMA_STATUS				0x0210
-
-#define REG_TX_DMA_DBG					0x0214
-
-#define REG_TQPNT1					0x0218
-#define REG_TQPNT2					0x021C
-
-#define REG_TQPNT3					0x0220
-
-#define REG_TQPNT4					0x0224
-
-#define REG_RQPN_CTRL_1				0x0228
-#define REG_RQPN_CTRL_2				0x022C
-#define REG_FIFOPAGE_INFO_1				0x0230
-#define REG_FIFOPAGE_INFO_2				0x0234
-#define REG_FIFOPAGE_INFO_3				0x0238
-#define REG_FIFOPAGE_INFO_4				0x023C
-#define REG_FIFOPAGE_INFO_5				0x0240
-
-#define REG_H2C_HEAD					0x0244
-#define REG_H2C_TAIL					0x0248
-#define REG_H2C_READ_ADDR				0x024C
-#define REG_H2C_WR_ADDR				0x0250
-#define REG_H2C_INFO					0x0254
-
-#define REG_RXDMA_AGG_PG_TH				0x0280
-#define REG_RXPKT_NUM					0x0284
-#define REG_RXDMA_STATUS				0x0288
-#define REG_RXDMA_DPR					0x028C
-#define REG_RXDMA_MODE					0x0290
-#define REG_C2H_PKT					0x0294
-
-#define REG_FWFF_C2H					0x0298
-#define REG_FWFF_CTRL					0x029C
-#define REG_FWFF_PKT_INFO				0x02A0
-
-#define REG_PCIE_CTRL					0x0300
-
-#define REG_INT_MIG					0x0304
-#define REG_BCNQ_TXBD_DESA				0x0308
-#define REG_MGQ_TXBD_DESA				0x0310
-#define REG_VOQ_TXBD_DESA				0x0318
-#define REG_VIQ_TXBD_DESA				0x0320
-#define REG_BEQ_TXBD_DESA				0x0328
-#define REG_BKQ_TXBD_DESA				0x0330
-#define REG_RXQ_RXBD_DESA				0x0338
-#define REG_HI0Q_TXBD_DESA				0x0340
-#define REG_HI1Q_TXBD_DESA				0x0348
-#define REG_HI2Q_TXBD_DESA				0x0350
-#define REG_HI3Q_TXBD_DESA				0x0358
-#define REG_HI4Q_TXBD_DESA				0x0360
-#define REG_HI5Q_TXBD_DESA				0x0368
-#define REG_HI6Q_TXBD_DESA				0x0370
-#define REG_HI7Q_TXBD_DESA				0x0378
-#define REG_MGQ_TXBD_NUM				0x0380
-#define REG_RX_RXBD_NUM				0x0382
-#define REG_VOQ_TXBD_NUM				0x0384
-#define REG_VIQ_TXBD_NUM				0x0386
-#define REG_BEQ_TXBD_NUM				0x0388
-#define REG_BKQ_TXBD_NUM				0x038A
-#define REG_HI0Q_TXBD_NUM				0x038C
-#define REG_HI1Q_TXBD_NUM				0x038E
-#define REG_HI2Q_TXBD_NUM				0x0390
-#define REG_HI3Q_TXBD_NUM				0x0392
-#define REG_HI4Q_TXBD_NUM				0x0394
-#define REG_HI5Q_TXBD_NUM				0x0396
-#define REG_HI6Q_TXBD_NUM				0x0398
-#define REG_HI7Q_TXBD_NUM				0x039A
-#define REG_TSFTIMER_HCI				0x039C
-#define REG_BD_RWPTR_CLR				0x039C
-#define REG_VOQ_TXBD_IDX				0x03A0
-#define REG_VIQ_TXBD_IDX				0x03A4
-#define REG_BEQ_TXBD_IDX				0x03A8
-#define REG_BKQ_TXBD_IDX				0x03AC
-#define REG_MGQ_TXBD_IDX				0x03B0
-#define REG_RXQ_RXBD_IDX				0x03B4
-#define REG_HI0Q_TXBD_IDX				0x03B8
-#define REG_HI1Q_TXBD_IDX				0x03BC
-#define REG_HI2Q_TXBD_IDX				0x03C0
-#define REG_HI3Q_TXBD_IDX				0x03C4
-#define REG_HI4Q_TXBD_IDX				0x03C8
-#define REG_HI5Q_TXBD_IDX				0x03CC
-#define REG_HI6Q_TXBD_IDX				0x03D0
-#define REG_HI7Q_TXBD_IDX				0x03D4
-
-#define REG_DBG_SEL_V1					0x03D8
-
-#define REG_PCIE_HRPWM1_V1				0x03D9
-
-#define REG_PCIE_HCPWM1_V1				0x03DA
-
-#define REG_PCIE_CTRL2					0x03DB
-
-#define REG_PCIE_HRPWM2_V1				0x03DC
-
-#define REG_PCIE_HCPWM2_V1				0x03DE
-
-#define REG_PCIE_H2C_MSG_V1				0x03E0
-
-#define REG_PCIE_C2H_MSG_V1				0x03E4
-
-#define REG_DBI_WDATA_V1				0x03E8
-
-#define REG_DBI_RDATA_V1				0x03EC
-
-#define REG_DBI_FLAG_V1				0x03F0
-
-#define REG_MDIO_V1					0x03F4
-
-#define REG_PCIE_MIX_CFG				0x03F8
-
-#define REG_HCI_MIX_CFG				0x03FC
-
-#define REG_Q0_INFO					0x0400
-#define REG_Q1_INFO					0x0404
-#define REG_Q2_INFO					0x0408
-#define REG_Q3_INFO					0x040C
-#define REG_MGQ_INFO					0x0410
-#define REG_HIQ_INFO					0x0414
-#define REG_BCNQ_INFO					0x0418
-#define REG_TXPKT_EMPTY				0x041A
-#define REG_CPU_MGQ_INFO				0x041C
-#define REG_FWHW_TXQ_CTRL				0x0420
-
-#define REG_DATAFB_SEL					0x0423
-
-#define REG_BCNQ_BDNY_V1				0x0424
-
-#define REG_LIFETIME_EN				0x0426
-
-#define REG_SPEC_SIFS					0x0428
-#define REG_RETRY_LIMIT				0x042A
-#define REG_TXBF_CTRL					0x042C
-#define REG_DARFRC					0x0430
-#define REG_RARFRC					0x0438
-#define REG_RRSR					0x0440
-#define REG_ARFR0					0x0444
-#define REG_ARFR1_V1					0x044C
-#define REG_CCK_CHECK					0x0454
-
-#define REG_AMPDU_MAX_TIME_V1				0x0455
-
-#define REG_BCNQ1_BDNY_V1				0x0456
-
-#define REG_AMPDU_MAX_LENGTH				0x0458
-#define REG_ACQ_STOP					0x045C
-
-#define REG_NDPA_RATE					0x045D
-
-#define REG_TX_HANG_CTRL				0x045E
-#define REG_NDPA_OPT_CTRL				0x045F
-
-#define REG_RD_RESP_PKT_TH				0x0463
-#define REG_CMDQ_INFO					0x0464
-#define REG_Q4_INFO					0x0468
-#define REG_Q5_INFO					0x046C
-#define REG_Q6_INFO					0x0470
-#define REG_Q7_INFO					0x0474
-
-#define REG_WMAC_LBK_BUF_HD_V1				0x0478
-#define REG_MGQ_BDNY_V1				0x047A
-
-#define REG_TXRPT_CTRL					0x047C
-#define REG_INIRTS_RATE_SEL				0x0480
-#define REG_BASIC_CFEND_RATE				0x0481
-#define REG_STBC_CFEND_RATE				0x0482
-#define REG_DATA_SC					0x0483
-#define REG_MACID_SLEEP3				0x0484
-#define REG_MACID_SLEEP1				0x0488
-#define REG_ARFR2_V1					0x048C
-#define REG_ARFR3_V1					0x0494
-#define REG_ARFR4					0x049C
-#define REG_ARFR5					0x04A4
-#define REG_TXRPT_START_OFFSET				0x04AC
-
-#define REG_POWER_STAGE1				0x04B4
-
-#define REG_POWER_STAGE2				0x04B8
-
-#define REG_SW_AMPDU_BURST_MODE_CTRL			0x04BC
-#define REG_PKT_LIFE_TIME				0x04C0
-#define REG_STBC_SETTING				0x04C4
-#define REG_STBC_SETTING2				0x04C5
-#define REG_QUEUE_CTRL					0x04C6
-#define REG_SINGLE_AMPDU_CTRL				0x04C7
-#define REG_PROT_MODE_CTRL				0x04C8
-#define REG_BAR_MODE_CTRL				0x04CC
-#define REG_RA_TRY_RATE_AGG_LMT			0x04CF
-#define REG_MACID_SLEEP2				0x04D0
-#define REG_MACID_SLEEP				0x04D4
-
-#define REG_HW_SEQ0					0x04D8
-#define REG_HW_SEQ1					0x04DA
-#define REG_HW_SEQ2					0x04DC
-#define REG_HW_SEQ3					0x04DE
-
-#define REG_NULL_PKT_STATUS_V1				0x04E0
-
-#define REG_PTCL_ERR_STATUS				0x04E2
-
-#define REG_NULL_PKT_STATUS_EXTEND			0x04E3
-
-#define REG_VIDEO_ENHANCEMENT_FUN			0x04E4
-
-#define REG_BT_POLLUTE_PKT_CNT				0x04E8
-#define REG_PTCL_DBG					0x04EC
-
-#define REG_CPUMGQ_TIMER_CTRL2				0x04F4
-
-#define REG_DUMMY_PAGE4_V1				0x04FC
-#define REG_MOREDATA					0x04FE
-
-#define REG_EDCA_VO_PARAM				0x0500
-#define REG_EDCA_VI_PARAM				0x0504
-#define REG_EDCA_BE_PARAM				0x0508
-#define REG_EDCA_BK_PARAM				0x050C
-#define REG_BCNTCFG					0x0510
-#define REG_PIFS					0x0512
-#define REG_RDG_PIFS					0x0513
-#define REG_SIFS					0x0514
-#define REG_TSFTR_SYN_OFFSET				0x0518
-#define REG_AGGR_BREAK_TIME				0x051A
-#define REG_SLOT					0x051B
-#define REG_TX_PTCL_CTRL				0x0520
-#define REG_TXPAUSE					0x0522
-#define REG_DIS_TXREQ_CLR				0x0523
-#define REG_RD_CTRL					0x0524
-#define REG_MBSSID_CTRL				0x0526
-#define REG_P2PPS_CTRL					0x0527
-#define REG_PKT_LIFETIME_CTRL				0x0528
-#define REG_P2PPS_SPEC_STATE				0x052B
-
-#define REG_BAR_TX_CTRL				0x0530
-
-#define REG_QUEUE_INCOL_THR				0x0538
-#define REG_QUEUE_INCOL_EN				0x053C
-
-#define REG_TBTT_PROHIBIT				0x0540
-#define REG_P2PPS_STATE				0x0543
-#define REG_RD_NAV_NXT					0x0544
-#define REG_NAV_PROT_LEN				0x0546
-
-#define REG_BCN_CTRL					0x0550
-
-#define REG_BCN_CTRL_CLINT0				0x0551
-
-#define REG_MBID_NUM					0x0552
-#define REG_DUAL_TSF_RST				0x0553
-#define REG_MBSSID_BCN_SPACE				0x0554
-#define REG_DRVERLYINT					0x0558
-#define REG_BCNDMATIM					0x0559
-#define REG_ATIMWND					0x055A
-#define REG_USTIME_TSF					0x055C
-#define REG_BCN_MAX_ERR				0x055D
-#define REG_RXTSF_OFFSET_CCK				0x055E
-#define REG_RXTSF_OFFSET_OFDM				0x055F
-#define REG_TSFTR					0x0560
-
-#define REG_FREERUN_CNT				0x0568
-
-#define REG_ATIMWND1_V1				0x0570
-
-#define REG_TBTT_PROHIBIT_INFRA			0x0571
-
-#define REG_CTWND					0x0572
-#define REG_BCNIVLCUNT					0x0573
-#define REG_BCNDROPCTRL				0x0574
-#define REG_HGQ_TIMEOUT_PERIOD				0x0575
-
-#define REG_TXCMD_TIMEOUT_PERIOD			0x0576
-#define REG_MISC_CTRL					0x0577
-#define REG_BCN_CTRL_CLINT1				0x0578
-#define REG_BCN_CTRL_CLINT2				0x0579
-#define REG_BCN_CTRL_CLINT3				0x057A
-
-#define REG_EXTEND_CTRL				0x057B
-
-#define REG_P2PPS1_SPEC_STATE				0x057C
-#define REG_P2PPS1_STATE				0x057D
-#define REG_P2PPS2_SPEC_STATE				0x057E
-#define REG_P2PPS2_STATE				0x057F
-
-#define REG_PS_TIMER0					0x0580
-
-#define REG_PS_TIMER1					0x0584
-
-#define REG_PS_TIMER2					0x0588
-
-#define REG_TBTT_CTN_AREA				0x058C
-#define REG_FORCE_BCN_IFS				0x058E
-#define REG_TXOP_MIN					0x0590
-#define REG_PRE_BKF_TIME				0x0592
-#define REG_CROSS_TXOP_CTRL				0x0593
-
-#define REG_ATIMWND2					0x05A0
-#define REG_ATIMWND3					0x05A1
-#define REG_ATIMWND4					0x05A2
-#define REG_ATIMWND5					0x05A3
-#define REG_ATIMWND6					0x05A4
-#define REG_ATIMWND7					0x05A5
-#define REG_ATIMUGT					0x05A6
-#define REG_HIQ_NO_LMT_EN				0x05A7
-#define REG_DTIM_COUNTER_ROOT				0x05A8
-#define REG_DTIM_COUNTER_VAP1				0x05A9
-#define REG_DTIM_COUNTER_VAP2				0x05AA
-#define REG_DTIM_COUNTER_VAP3				0x05AB
-#define REG_DTIM_COUNTER_VAP4				0x05AC
-#define REG_DTIM_COUNTER_VAP5				0x05AD
-#define REG_DTIM_COUNTER_VAP6				0x05AE
-#define REG_DTIM_COUNTER_VAP7				0x05AF
-#define REG_DIS_ATIM					0x05B0
-
-#define REG_EARLY_128US				0x05B1
-#define REG_P2PPS1_CTRL				0x05B2
-#define REG_P2PPS2_CTRL				0x05B3
-#define REG_TIMER0_SRC_SEL				0x05B4
-#define REG_NOA_UNIT_SEL				0x05B5
-#define REG_P2POFF_DIS_TXTIME				0x05B7
-#define REG_MBSSID_BCN_SPACE2				0x05B8
-#define REG_MBSSID_BCN_SPACE3				0x05BC
-
-#define REG_ACMHWCTRL					0x05C0
-#define REG_ACMRSTCTRL					0x05C1
-#define REG_ACMAVG					0x05C2
-#define REG_VO_ADMTIME					0x05C4
-#define REG_VI_ADMTIME					0x05C6
-#define REG_BE_ADMTIME					0x05C8
-#define REG_EDCA_RANDOM_GEN				0x05CC
-#define REG_TXCMD_NOA_SEL				0x05CF
-#define REG_NOA_PARAM					0x05E0
-
-#define REG_P2P_RST					0x05F0
-#define REG_SCHEDULER_RST				0x05F1
-
-#define REG_SCH_TXCMD					0x05F8
-#define REG_PAGE5_DUMMY				0x05FC
-#define REG_WMAC_CR					0x0600
-
-#define REG_WMAC_FWPKT_CR				0x0601
-
-#define REG_BWOPMODE					0x0603
-
-#define REG_TCR					0x0604
-#define REG_RCR					0x0608
-#define REG_RX_PKT_LIMIT				0x060C
-#define REG_RX_DLK_TIME				0x060D
-#define REG_RX_DRVINFO_SZ				0x060F
-#define REG_MACID					0x0610
-#define REG_BSSID					0x0618
-#define REG_MAR					0x0620
-#define REG_MBIDCAMCFG_1				0x0628
-#define REG_MBIDCAMCFG_2				0x062C
-
-#define REG_WMAC_TCR_TSFT_OFS				0x0630
-#define REG_UDF_THSD					0x0632
-#define REG_ZLD_NUM					0x0633
-
-#define REG_STMP_THSD					0x0634
-#define REG_WMAC_TXTIMEOUT				0x0635
-#define REG_MCU_TEST_2_V1				0x0636
-
-#define REG_USTIME_EDCA				0x0638
-
-#define REG_MAC_SPEC_SIFS				0x063A
-#define REG_RESP_SIFS_CCK				0x063C
-#define REG_RESP_SIFS_OFDM				0x063E
-#define REG_ACKTO					0x0640
-#define REG_CTS2TO					0x0641
-#define REG_EIFS					0x0642
-
-#define REG_NAV_CTRL					0x0650
-#define REG_BACAMCMD					0x0654
-#define REG_BACAMCONTENT				0x0658
-#define REG_LBDLY					0x0660
-
-#define REG_WMAC_BACAM_RPMEN				0x0661
-
-#define REG_TX_RX					0x0662
-
-#define REG_WMAC_BITMAP_CTL				0x0663
-
-#define REG_RXERR_RPT					0x0664
-#define REG_WMAC_TRXPTCL_CTL				0x0668
-#define REG_CAMCMD					0x0670
-#define REG_CAMWRITE					0x0674
-#define REG_CAMREAD					0x0678
-#define REG_CAMDBG					0x067C
-#define REG_SECCFG					0x0680
-
-#define REG_RXFILTER_CATEGORY_1			0x0682
-#define REG_RXFILTER_ACTION_1				0x0683
-#define REG_RXFILTER_CATEGORY_2			0x0684
-#define REG_RXFILTER_ACTION_2				0x0685
-#define REG_RXFILTER_CATEGORY_3			0x0686
-#define REG_RXFILTER_ACTION_3				0x0687
-#define REG_RXFLTMAP3					0x0688
-#define REG_RXFLTMAP4					0x068A
-#define REG_RXFLTMAP5					0x068C
-#define REG_RXFLTMAP6					0x068E
-
-#define REG_WOW_CTRL					0x0690
-
-#define REG_NAN_RX_TSF_FILTER				0x0691
-
-#define REG_PS_RX_INFO					0x0692
-#define REG_WMMPS_UAPSD_TID				0x0693
-#define REG_LPNAV_CTRL					0x0694
-
-#define REG_WKFMCAM_CMD				0x0698
-#define REG_WKFMCAM_RWD				0x069C
-
-#define REG_RXFLTMAP0					0x06A0
-#define REG_RXFLTMAP1					0x06A2
-#define REG_RXFLTMAP					0x06A4
-#define REG_BCN_PSR_RPT				0x06A8
-
-#define REG_FLC_RPC					0x06AC
-#define REG_FLC_RPCT					0x06AD
-#define REG_FLC_PTS					0x06AE
-#define REG_FLC_TRPC					0x06AF
-
-#define REG_RXPKTMON_CTRL				0x06B0
-
-#define REG_STATE_MON					0x06B4
-
-#define REG_ERROR_MON					0x06B8
-#define REG_SEARCH_MACID				0x06BC
-
-#define REG_BT_COEX_TABLE				0x06C0
-
-#define REG_RXCMD_0					0x06D0
-#define REG_RXCMD_1					0x06D4
-
-#define REG_WMAC_RESP_TXINFO				0x06D8
-
-#define REG_BBPSF_CTRL					0x06DC
-
-#define REG_P2P_RX_BCN_NOA				0x06E0
-#define REG_ASSOCIATED_BFMER0_INFO			0x06E4
-#define REG_ASSOCIATED_BFMER1_INFO			0x06EC
-#define REG_TX_CSI_RPT_PARAM_BW20			0x06F4
-#define REG_TX_CSI_RPT_PARAM_BW40			0x06F8
-#define REG_TX_CSI_RPT_PARAM_BW80			0x06FC
-#define REG_MACID1					0x0700
-
-#define REG_BSSID1					0x0708
-
-#define REG_BCN_PSR_RPT1				0x0710
-#define REG_ASSOCIATED_BFMEE_SEL			0x0714
-#define REG_SND_PTCL_CTRL				0x0718
-#define REG_RX_CSI_RPT_INFO				0x071C
-#define REG_NS_ARP_CTRL				0x0720
-#define REG_NS_ARP_INFO				0x0724
-
-#define REG_BEAMFORMING_INFO_NSARP_V1			0x0728
-
-#define REG_BEAMFORMING_INFO_NSARP			0x072C
-
-#define REG_WMAC_RTX_CTX_SUBTYPE_CFG			0x0750
-
-#define REG_WMAC_SWAES_CFG				0x0760
-
-#define REG_BT_COEX_V2					0x0762
-
-#define REG_BT_COEX					0x0764
-
-#define REG_WLAN_ACT_MASK_CTRL				0x0768
-
-#define REG_BT_COEX_ENHANCED_INTR_CTRL			0x076E
-
-#define REG_BT_ACT_STATISTICS				0x0770
-
-#define REG_BT_STATISTICS_CONTROL_REGISTER		0x0778
-
-#define REG_BT_STATUS_REPORT_REGISTER			0x077C
-
-#define REG_BT_INTERRUPT_CONTROL_REGISTER		0x0780
-
-#define REG_WLAN_REPORT_TIME_OUT_CONTROL_REGISTER	0x0784
-
-#define REG_BT_ISOLATION_TABLE_REGISTER_REGISTER	0x0785
-
-#define REG_BT_INTERRUPT_STATUS_REGISTER		0x078F
-
-#define REG_BT_TDMA_TIME_REGISTER			0x0790
-
-#define REG_BT_ACT_REGISTER				0x0794
-
-#define REG_OBFF_CTRL_BASIC				0x0798
-
-#define REG_OBFF_CTRL2_TIMER				0x079C
-
-#define REG_LTR_CTRL_BASIC				0x07A0
-
-#define REG_LTR_CTRL2_TIMER_THRESHOLD			0x07A4
-
-#define REG_LTR_IDLE_LATENCY_V1			0x07A8
-#define REG_LTR_ACTIVE_LATENCY_V1			0x07AC
-
-#define REG_ANTENNA_TRAINING_CONTROL_REGISTER		0x07B0
-
-#define REG_WMAC_PKTCNT_RWD				0x07B8
-#define REG_WMAC_PKTCNT_CTRL				0x07BC
-
-#define REG_IQ_DUMP					0x07C0
-
-#define REG_WMAC_FTM_CTL				0x07CC
-
-#define REG_WMAC_IQ_MDPK_FUNC				0x07CE
-
-#define REG_WMAC_OPTION_FUNCTION			0x07D0
-
-#define REG_RX_FILTER_FUNCTION				0x07DA
-
-#define REG_NDP_SIG					0x07E0
-#define REG_TXCMD_INFO_FOR_RSP_PKT			0x07E4
-
-#define REG_RTS_ADDRESS_0				0x07F0
-
-#define REG_RTS_ADDRESS_1				0x07F8
-
-#define REG__RPFM_MAP1					0x07FE
-
-#define REG_SYS_CFG3					0x1000
-#define REG_SYS_CFG4					0x1034
-
-#define REG_SYS_CFG5					0x1070
-
-#define REG_CPU_DMEM_CON				0x1080
-
-#define REG_BOOT_REASON				0x1088
-#define REG_NFCPAD_CTRL				0x10A8
-
-#define REG_HIMR2					0x10B0
-#define REG_HISR2					0x10B4
-#define REG_HIMR3					0x10B8
-#define REG_HISR3					0x10BC
-#define REG_SW_MDIO					0x10C0
-#define REG_SW_FLUSH					0x10C4
-
-#define REG_H2C_PKT_READADDR				0x10D0
-#define REG_H2C_PKT_WRITEADDR				0x10D4
-
-#define REG_MEM_PWR_CRTL				0x10D8
-
-#define REG_FW_DBG0					0x10E0
-#define REG_FW_DBG1					0x10E4
-#define REG_FW_DBG2					0x10E8
-#define REG_FW_DBG3					0x10EC
-#define REG_FW_DBG4					0x10F0
-#define REG_FW_DBG5					0x10F4
-#define REG_FW_DBG6					0x10F8
-#define REG_FW_DBG7					0x10FC
-#define REG_CR_EXT					0x1100
-#define REG_FWFF					0x1114
-
-#define REG_RXFF_PTR_V1				0x1118
-#define REG_RXFF_WTR_V1				0x111C
-
-#define REG_FE2IMR					0x1120
-#define REG_FE2ISR					0x1124
-#define REG_FE3IMR					0x1128
-#define REG_FE3ISR					0x112C
-#define REG_FE4IMR					0x1130
-#define REG_FE4ISR					0x1134
-#define REG_FT1IMR					0x1138
-#define REG_FT1ISR					0x113C
-#define REG_SPWR0					0x1140
-#define REG_SPWR1					0x1144
-#define REG_SPWR2					0x1148
-#define REG_SPWR3					0x114C
-#define REG_POWSEQ					0x1150
-
-#define REG_TC7_CTRL_V1				0x1158
-#define REG_TC8_CTRL_V1				0x115C
-
-#define REG_FT2IMR					0x11E0
-#define REG_FT2ISR					0x11E4
-
-#define REG_MSG2					0x11F0
-#define REG_MSG3					0x11F4
-#define REG_MSG4					0x11F8
-#define REG_MSG5					0x11FC
-#define REG_DDMA_CH0SA					0x1200
-#define REG_DDMA_CH0DA					0x1204
-#define REG_DDMA_CH0CTRL				0x1208
-#define REG_DDMA_CH1SA					0x1210
-#define REG_DDMA_CH1DA					0x1214
-#define REG_DDMA_CH1CTRL				0x1218
-#define REG_DDMA_CH2SA					0x1220
-#define REG_DDMA_CH2DA					0x1224
-#define REG_DDMA_CH2CTRL				0x1228
-#define REG_DDMA_CH3SA					0x1230
-#define REG_DDMA_CH3DA					0x1234
-#define REG_DDMA_CH3CTRL				0x1238
-#define REG_DDMA_CH4SA					0x1240
-#define REG_DDMA_CH4DA					0x1244
-#define REG_DDMA_CH4CTRL				0x1248
-#define REG_DDMA_CH5SA					0x1250
-#define REG_DDMA_CH5DA					0x1254
-
-#define REG_REG_DDMA_CH5CTRL				0x1258
-
-#define REG_DDMA_INT_MSK				0x12E0
-#define REG_DDMA_CHSTATUS				0x12E8
-#define REG_DDMA_CHKSUM				0x12F0
-#define REG_DDMA_MONITOR				0x12FC
-
-#define REG_STC_INT_CS					0x1300
-#define REG_ST_INT_CFG					0x1304
-#define REG_CMU_DLY_CTRL				0x1310
-#define REG_CMU_DLY_CFG				0x1314
-#define REG_H2CQ_TXBD_DESA				0x1320
-#define REG_H2CQ_TXBD_NUM				0x1328
-#define REG_H2CQ_TXBD_IDX				0x132C
-#define REG_H2CQ_CSR					0x1330
-
-#define REG_CHANGE_PCIE_SPEED				0x1350
-
-#define REG_OLD_DEHANG					0x13F4
-
-#define REG_Q0_Q1_INFO					0x1400
-#define REG_Q2_Q3_INFO					0x1404
-#define REG_Q4_Q5_INFO					0x1408
-#define REG_Q6_Q7_INFO					0x140C
-#define REG_MGQ_HIQ_INFO				0x1410
-#define REG_CMDQ_BCNQ_INFO				0x1414
-#define REG_USEREG_SETTING				0x1420
-#define REG_AESIV_SETTING				0x1424
-#define REG_BF0_TIME_SETTING				0x1428
-#define REG_BF1_TIME_SETTING				0x142C
-#define REG_BF_TIMEOUT_EN				0x1430
-#define REG_MACID_RELEASE0				0x1434
-#define REG_MACID_RELEASE1				0x1438
-#define REG_MACID_RELEASE2				0x143C
-#define REG_MACID_RELEASE3				0x1440
-#define REG_MACID_RELEASE_SETTING			0x1444
-#define REG_FAST_EDCA_VOVI_SETTING			0x1448
-#define REG_FAST_EDCA_BEBK_SETTING			0x144C
-#define REG_MACID_DROP0				0x1450
-#define REG_MACID_DROP1				0x1454
-#define REG_MACID_DROP2				0x1458
-#define REG_MACID_DROP3				0x145C
-
-#define REG_R_MACID_RELEASE_SUCCESS_0			0x1460
-#define REG_R_MACID_RELEASE_SUCCESS_1			0x1464
-#define REG_R_MACID_RELEASE_SUCCESS_2			0x1468
-#define REG_R_MACID_RELEASE_SUCCESS_3			0x146C
-#define REG_MGG_FIFO_CRTL				0x1470
-#define REG_MGG_FIFO_INT				0x1474
-#define REG_MGG_FIFO_LIFETIME				0x1478
-#define REG_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET	0x147C
-
-#define REG_MACID_SHCUT_OFFSET				0x1480
-
-#define REG_MU_TX_CTL					0x14C0
-#define REG_MU_STA_GID_VLD				0x14C4
-#define REG_MU_STA_USER_POS_INFO			0x14C8
-#define REG_MU_TRX_DBG_CNT				0x14D0
-
-#define REG_CPUMGQ_TX_TIMER				0x1500
-#define REG_PS_TIMER_A					0x1504
-#define REG_PS_TIMER_B					0x1508
-#define REG_PS_TIMER_C					0x150C
-#define REG_PS_TIMER_ABC_CPUMGQ_TIMER_CRTL		0x1510
-#define REG_CPUMGQ_TX_TIMER_EARLY			0x1514
-#define REG_PS_TIMER_A_EARLY				0x1515
-#define REG_PS_TIMER_B_EARLY				0x1516
-#define REG_PS_TIMER_C_EARLY				0x1517
-
-#define REG_BCN_PSR_RPT2				0x1600
-#define REG_BCN_PSR_RPT3				0x1604
-#define REG_BCN_PSR_RPT4				0x1608
-#define REG_A1_ADDR_MASK				0x160C
-#define REG_MACID2					0x1620
-#define REG_BSSID2					0x1628
-#define REG_MACID3					0x1630
-#define REG_BSSID3					0x1638
-#define REG_MACID4					0x1640
-#define REG_BSSID4					0x1648
-
-#define REG_NOA_REPORT					0x1650
-#define REG_PWRBIT_SETTING				0x1660
-#define REG_WMAC_MU_BF_OPTION				0x167C
-
-#define REG_WMAC_MU_ARB				0x167E
-#define REG_WMAC_MU_OPTION				0x167F
-#define REG_WMAC_MU_BF_CTL				0x1680
-
-#define REG_WMAC_MU_BFRPT_PARA				0x1682
-
-#define REG_WMAC_ASSOCIATED_MU_BFMEE2			0x1684
-#define REG_WMAC_ASSOCIATED_MU_BFMEE3			0x1686
-#define REG_WMAC_ASSOCIATED_MU_BFMEE4			0x1688
-#define REG_WMAC_ASSOCIATED_MU_BFMEE5			0x168A
-#define REG_WMAC_ASSOCIATED_MU_BFMEE6			0x168C
-#define REG_WMAC_ASSOCIATED_MU_BFMEE7			0x168E
-
-#define REG_TRANSMIT_ADDRSS_0				0x16A0
-#define REG_TRANSMIT_ADDRSS_1				0x16A8
-#define REG_TRANSMIT_ADDRSS_2				0x16B0
-#define REG_TRANSMIT_ADDRSS_3				0x16B8
-#define REG_TRANSMIT_ADDRSS_4				0x16C0
-
-#define REG_WL2LTECOEX_INDIRECT_ACCESS_CTRL_V1	0x1700
-#define REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA_V1	0x1704
-#define REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA_V1	0x1708
-
-/* ----------------------------------------------------- */
-/*	*/
-/* 0xFB00h ~ 0xFCFFh	TX/RX packet buffer affress */
-/*	*/
-/* ----------------------------------------------------- */
-#define REG_RXPKTBUF_STARTADDR	0xFB00
-#define REG_TXPKTBUF_STARTADDR	0xFC00
-
-/* ----------------------------------------------------- */
-/*	*/
-/* 0xFD00h ~ 0xFDFFh	8051 CPU Local REG */
-/*	*/
-/* ----------------------------------------------------- */
-#define REG_SYS_CTRL		0xFD00
-#define REG_PONSTS_RPT1		0xFD01
-#define REG_PONSTS_RPT2		0xFD02
-#define REG_PONSTS_RPT3		0xFD03
-#define REG_PONSTS_RPT4		0xFD04	/* 0x84 */
-#define REG_PONSTS_RPT5		0xFD05	/* 0x85 */
-#define REG_8051ERRFLAG		0xFD08
-#define REG_8051ERRFLAG_MASK	0xFD09
-#define REG_TXADDRH		0xFD10	/* Tx Packet High address */
-#define REG_RXADDRH		0xFD11	/* Rx Packet High address */
-#define REG_TXADDRH_EXT		0xFD12	/* 0xFD12[0] : for 8051 access txpktbuf
-					 * high64k as external register
-					 */
-
-#define REG_U3_STATE		0xFD48	/* (Read only)
-					 * [7:4] : usb3 changed last state.
-					 * [3:0] : usb3 state
-					 */
-
-/* for MAILBOX */
-#define REG_OUTDATA0		0xFD50
-#define REG_OUTDATA1		0xFD54
-#define REG_OUTRDY		0xFD58	/* bit[0] : OutReady,
-					 * bit[1] : OutEmptyIntEn
-					 */
-
-#define REG_INDATA0		0xFD60
-#define REG_INDATA1		0xFD64
-#define REG_INRDY		0xFD68	/* bit[0] : InReady,
-					 * bit[1] : InRdyIntEn
-					 */
-
-/* MCU ERROR debug REG */
-#define REG_MCUERR_PCLSB	0xFD90	/* PC[7:0] */
-#define REG_MCUERR_PCMSB	0xFD91	/* PC[15:8] */
-#define REG_MCUERR_ACC		0xFD92
-#define REG_MCUERR_B		0xFD93
-#define REG_MCUERR_DPTRLSB	0xFD94	/* DPTR[7:0] */
-#define REG_MCUERR_DPTRMSB	0xFD95	/* DPTR[15:8] */
-#define REG_MCUERR_SP		0xFD96	/* SP[7:0] */
-#define REG_MCUERR_IE		0xFD97	/* IE[7:0] */
-#define REG_MCUERR_EIE		0xFD98	/* EIE[7:0] */
-#define REG_VERA_SIM		0xFD9F
-/* 0xFD99~0xFD9F are reserved.. */
-
-/* ----------------------------------------------------- */
-/*	*/
-/* 0xFE00h ~ 0xFEFFh	USB Configuration */
-/*	*/
-/* ----------------------------------------------------- */
-
-/* RTS5101 USB Register Definition */
-#define REG_USB_SETUP_DEC_INT		0xFE00
-#define REG_USB_DMACTL			0xFE01
-#define REG_USB_IRQSTAT0		0xFE02
-#define REG_USB_IRQSTAT1		0xFE03
-#define REG_USB_IRQEN0			0xFE04
-#define REG_USB_IRQEN1			0xFE05
-#define REG_USB_AUTOPTRL		0xFE06
-#define REG_USB_AUTOPTRH		0xFE07
-#define REG_USB_AUTODAT			0xFE08
-
-#define REG_USB_SCRATCH0		0xFE09
-#define REG_USB_SCRATCH1		0xFE0A
-#define REG_USB_SEEPROM			0xFE0B
-#define REG_USB_GPIO0			0xFE0C
-#define REG_USB_GPIO0DIR		0xFE0D
-#define REG_USB_CLKSEL			0xFE0E
-#define REG_USB_BOOTCTL			0xFE0F
-
-#define REG_USB_USBCTL			0xFE10
-#define REG_USB_USBSTAT			0xFE11
-#define REG_USB_DEVADDR			0xFE12
-#define REG_USB_USBTEST			0xFE13
-#define REG_USB_FNUM0			0xFE14
-#define REG_USB_FNUM1			0xFE15
-
-#define REG_USB_EP_IDX			0xFE20
-#define REG_USB_EP_CFG			0xFE21
-#define REG_USB_EP_CTL			0xFE22
-#define REG_USB_EP_STAT			0xFE23
-#define REG_USB_EP_IRQ			0xFE24
-#define REG_USB_EP_IRQEN		0xFE25
-#define REG_USB_EP_MAXPKT0		0xFE26
-#define REG_USB_EP_MAXPKT1		0xFE27
-#define REG_USB_EP_DAT			0xFE28
-#define REG_USB_EP_BC0			0xFE29
-#define REG_USB_EP_BC1			0xFE2A
-#define REG_USB_EP_TC0			0xFE2B
-#define REG_USB_EP_TC1			0xFE2C
-#define REG_USB_EP_TC2			0xFE2D
-#define REG_USB_EP_CTL2			0xFE2E
-
-#define REG_USB_INFO			0xFE17
-#define REG_USB_SPECIAL_OPTION		0xFE55
-#define REG_USB_DMA_AGG_TO		0xFE5B
-#define REG_USB_AGG_TO			0xFE5C
-#define REG_USB_AGG_TH			0xFE5D
-
-#define REG_USB_VID			0xFE60
-#define REG_USB_PID			0xFE62
-#define REG_USB_OPT			0xFE64
-#define REG_USB_CONFIG			0xFE65	/* RX EP setting.
-						 * 0xFE65 Bit[3:0] : RXQ,
-						 *        Bit[7:4] : INTQ
-						 */
-						/* TX EP setting.
-						 * 0xFE66 Bit[3:0] : TXQ0,
-						 *        Bit[7:4] : TXQ1,
-						 * 0xFE67 Bit[3:0] : TXQ2
-						 */
-#define REG_USB_PHY_PARA1 0xFE68 /* Bit[7:4]: XCVR_SEN	(USB PHY 0xE2[7:4]),
-				  * Bit[3:0]: XCVR_SH	(USB PHY 0xE2[3:0])
-				  */
-#define REG_USB_PHY_PARA2 0xFE69 /* Bit[7:5]: XCVR_BG	(USB PHY 0xE3[5:3]),
-				  * Bit[4:2]: XCVR_DR	(USB PHY 0xE3[2:0]),
-				  * Bit[1]: SE0_LVL	(USB PHY 0xE5[7]),
-				  * Bit[0]: FORCE_XTL_ON (USB PHY 0xE5[1])
-				  */
-#define REG_USB_PHY_PARA3 0xFE6A /* Bit[7:5]: XCVR_SRC	(USB PHY 0xE5[4:2]),
-				  * Bit[4]: LATE_DLLEN	(USB PHY 0xF0[4]),
-				  * Bit[3]: HS_LP_MODE	(USB PHY 0xF0[3]),
-				  * Bit[2]: UTMI_POS_OUT (USB PHY 0xF1 [7]),
-				  * Bit[1:0]: TX_DELAY	(USB PHY 0xF1 [2:1])
-				  */
-#define REG_USB_PHY_PARA4		0xFE6B	/* (USB PHY 0xE7[7:0]) */
-#define REG_USB_OPT2			0xFE6C
-#define REG_USB_MAC_ADDR			0xFE70	/* 0xFE70~0xFE75 */
-#define REG_USB_MANUFACTURE_SETTING	0xFE80	/* 0xFE80~0xFE90 Max: 32 bytes*/
-#define REG_USB_PRODUCT_STRING		0xFEA0	/* 0xFEA0~0xFECF Max: 48 bytes*/
-#define REG_USB_SERIAL_NUMBER_STRING	0xFED0	/* 0xFED0~0xFEDF Max: 12 bytes*/
-
-#define REG_USB_ALTERNATE_SETTING	0xFE4F
-#define REG_USB_INT_BINTERVAL		0xFE6E
-#define REG_USB_GPS_EP_CONFIG		0xFE6D
-
-#endif	/* __HALMAC_COM_REG_H__ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_reg_8822b.h b/drivers/staging/rtlwifi/halmac/halmac_reg_8822b.h
deleted file mode 100644
index 48d5dc0..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_reg_8822b.h
+++ /dev/null
@@ -1,717 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __INC_HALMAC_REG_8822B_H
-#define __INC_HALMAC_REG_8822B_H
-
-#define REG_SYS_ISO_CTRL_8822B 0x0000
-#define REG_SYS_FUNC_EN_8822B 0x0002
-#define REG_SYS_PW_CTRL_8822B 0x0004
-#define REG_SYS_CLK_CTRL_8822B 0x0008
-#define REG_SYS_EEPROM_CTRL_8822B 0x000A
-#define REG_EE_VPD_8822B 0x000C
-#define REG_SYS_SWR_CTRL1_8822B 0x0010
-#define REG_SYS_SWR_CTRL2_8822B 0x0014
-#define REG_SYS_SWR_CTRL3_8822B 0x0018
-#define REG_RSV_CTRL_8822B 0x001C
-#define REG_RF_CTRL_8822B 0x001F
-#define REG_AFE_LDO_CTRL_8822B 0x0020
-#define REG_AFE_CTRL1_8822B 0x0024
-#define REG_AFE_CTRL2_8822B 0x0028
-#define REG_AFE_CTRL3_8822B 0x002C
-#define REG_EFUSE_CTRL_8822B 0x0030
-#define REG_LDO_EFUSE_CTRL_8822B 0x0034
-#define REG_PWR_OPTION_CTRL_8822B 0x0038
-#define REG_CAL_TIMER_8822B 0x003C
-#define REG_ACLK_MON_8822B 0x003E
-#define REG_GPIO_MUXCFG_8822B 0x0040
-#define REG_GPIO_PIN_CTRL_8822B 0x0044
-#define REG_GPIO_INTM_8822B 0x0048
-#define REG_LED_CFG_8822B 0x004C
-#define REG_FSIMR_8822B 0x0050
-#define REG_FSISR_8822B 0x0054
-#define REG_HSIMR_8822B 0x0058
-#define REG_HSISR_8822B 0x005C
-#define REG_GPIO_EXT_CTRL_8822B 0x0060
-#define REG_PAD_CTRL1_8822B 0x0064
-#define REG_WL_BT_PWR_CTRL_8822B 0x0068
-#define REG_SDM_DEBUG_8822B 0x006C
-#define REG_SYS_SDIO_CTRL_8822B 0x0070
-#define REG_HCI_OPT_CTRL_8822B 0x0074
-#define REG_AFE_CTRL4_8822B 0x0078
-#define REG_LDO_SWR_CTRL_8822B 0x007C
-#define REG_MCUFW_CTRL_8822B 0x0080
-#define REG_MCU_TST_CFG_8822B 0x0084
-#define REG_HMEBOX_E0_E1_8822B 0x0088
-#define REG_HMEBOX_E2_E3_8822B 0x008C
-#define REG_WLLPS_CTRL_8822B 0x0090
-#define REG_AFE_CTRL5_8822B 0x0094
-#define REG_GPIO_DEBOUNCE_CTRL_8822B 0x0098
-#define REG_RPWM2_8822B 0x009C
-#define REG_SYSON_FSM_MON_8822B 0x00A0
-#define REG_AFE_CTRL6_8822B 0x00A4
-#define REG_PMC_DBG_CTRL1_8822B 0x00A8
-#define REG_AFE_CTRL7_8822B 0x00AC
-#define REG_HIMR0_8822B 0x00B0
-#define REG_HISR0_8822B 0x00B4
-#define REG_HIMR1_8822B 0x00B8
-#define REG_HISR1_8822B 0x00BC
-#define REG_DBG_PORT_SEL_8822B 0x00C0
-#define REG_PAD_CTRL2_8822B 0x00C4
-#define REG_PMC_DBG_CTRL2_8822B 0x00CC
-#define REG_BIST_CTRL_8822B 0x00D0
-#define REG_BIST_RPT_8822B 0x00D4
-#define REG_MEM_CTRL_8822B 0x00D8
-#define REG_AFE_CTRL8_8822B 0x00DC
-#define REG_USB_SIE_INTF_8822B 0x00E0
-#define REG_PCIE_MIO_INTF_8822B 0x00E4
-#define REG_PCIE_MIO_INTD_8822B 0x00E8
-#define REG_WLRF1_8822B 0x00EC
-#define REG_SYS_CFG1_8822B 0x00F0
-#define REG_SYS_STATUS1_8822B 0x00F4
-#define REG_SYS_STATUS2_8822B 0x00F8
-#define REG_SYS_CFG2_8822B 0x00FC
-#define REG_SYS_CFG3_8822B 0x1000
-#define REG_SYS_CFG4_8822B 0x1034
-#define REG_SYS_CFG5_8822B 0x1070
-#define REG_CPU_DMEM_CON_8822B 0x1080
-#define REG_BOOT_REASON_8822B 0x1088
-#define REG_NFCPAD_CTRL_8822B 0x10A8
-#define REG_HIMR2_8822B 0x10B0
-#define REG_HISR2_8822B 0x10B4
-#define REG_HIMR3_8822B 0x10B8
-#define REG_HISR3_8822B 0x10BC
-#define REG_SW_MDIO_8822B 0x10C0
-#define REG_SW_FLUSH_8822B 0x10C4
-#define REG_H2C_PKT_READADDR_8822B 0x10D0
-#define REG_H2C_PKT_WRITEADDR_8822B 0x10D4
-#define REG_MEM_PWR_CRTL_8822B 0x10D8
-#define REG_FW_DBG0_8822B 0x10E0
-#define REG_FW_DBG1_8822B 0x10E4
-#define REG_FW_DBG2_8822B 0x10E8
-#define REG_FW_DBG3_8822B 0x10EC
-#define REG_FW_DBG4_8822B 0x10F0
-#define REG_FW_DBG5_8822B 0x10F4
-#define REG_FW_DBG6_8822B 0x10F8
-#define REG_FW_DBG7_8822B 0x10FC
-#define REG_CR_8822B 0x0100
-#define REG_PKT_BUFF_ACCESS_CTRL_8822B 0x0106
-#define REG_TSF_CLK_STATE_8822B 0x0108
-#define REG_TXDMA_PQ_MAP_8822B 0x010C
-#define REG_TRXFF_BNDY_8822B 0x0114
-#define REG_PTA_I2C_MBOX_8822B 0x0118
-#define REG_RXFF_BNDY_8822B 0x011C
-#define REG_FE1IMR_8822B 0x0120
-#define REG_FE1ISR_8822B 0x0124
-#define REG_CPWM_8822B 0x012C
-#define REG_FWIMR_8822B 0x0130
-#define REG_FWISR_8822B 0x0134
-#define REG_FTIMR_8822B 0x0138
-#define REG_FTISR_8822B 0x013C
-#define REG_PKTBUF_DBG_CTRL_8822B 0x0140
-#define REG_PKTBUF_DBG_DATA_L_8822B 0x0144
-#define REG_PKTBUF_DBG_DATA_H_8822B 0x0148
-#define REG_CPWM2_8822B 0x014C
-#define REG_TC0_CTRL_8822B 0x0150
-#define REG_TC1_CTRL_8822B 0x0154
-#define REG_TC2_CTRL_8822B 0x0158
-#define REG_TC3_CTRL_8822B 0x015C
-#define REG_TC4_CTRL_8822B 0x0160
-#define REG_TCUNIT_BASE_8822B 0x0164
-#define REG_TC5_CTRL_8822B 0x0168
-#define REG_TC6_CTRL_8822B 0x016C
-#define REG_MBIST_FAIL_8822B 0x0170
-#define REG_MBIST_START_PAUSE_8822B 0x0174
-#define REG_MBIST_DONE_8822B 0x0178
-#define REG_MBIST_FAIL_NRML_8822B 0x017C
-#define REG_AES_DECRPT_DATA_8822B 0x0180
-#define REG_AES_DECRPT_CFG_8822B 0x0184
-#define REG_TMETER_8822B 0x0190
-#define REG_OSC_32K_CTRL_8822B 0x0194
-#define REG_32K_CAL_REG1_8822B 0x0198
-#define REG_C2HEVT_8822B 0x01A0
-#define REG_SW_DEFINED_PAGE1_8822B 0x01B8
-#define REG_MCUTST_I_8822B 0x01C0
-#define REG_MCUTST_II_8822B 0x01C4
-#define REG_FMETHR_8822B 0x01C8
-#define REG_HMETFR_8822B 0x01CC
-#define REG_HMEBOX0_8822B 0x01D0
-#define REG_HMEBOX1_8822B 0x01D4
-#define REG_HMEBOX2_8822B 0x01D8
-#define REG_HMEBOX3_8822B 0x01DC
-#define REG_LLT_INIT_8822B 0x01E0
-#define REG_LLT_INIT_ADDR_8822B 0x01E4
-#define REG_BB_ACCESS_CTRL_8822B 0x01E8
-#define REG_BB_ACCESS_DATA_8822B 0x01EC
-#define REG_HMEBOX_E0_8822B 0x01F0
-#define REG_HMEBOX_E1_8822B 0x01F4
-#define REG_HMEBOX_E2_8822B 0x01F8
-#define REG_HMEBOX_E3_8822B 0x01FC
-#define REG_CR_EXT_8822B 0x1100
-#define REG_FWFF_8822B 0x1114
-#define REG_RXFF_PTR_V1_8822B 0x1118
-#define REG_RXFF_WTR_V1_8822B 0x111C
-#define REG_FE2IMR_8822B 0x1120
-#define REG_FE2ISR_8822B 0x1124
-#define REG_FE3IMR_8822B 0x1128
-#define REG_FE3ISR_8822B 0x112C
-#define REG_FE4IMR_8822B 0x1130
-#define REG_FE4ISR_8822B 0x1134
-#define REG_FT1IMR_8822B 0x1138
-#define REG_FT1ISR_8822B 0x113C
-#define REG_SPWR0_8822B 0x1140
-#define REG_SPWR1_8822B 0x1144
-#define REG_SPWR2_8822B 0x1148
-#define REG_SPWR3_8822B 0x114C
-#define REG_POWSEQ_8822B 0x1150
-#define REG_TC7_CTRL_V1_8822B 0x1158
-#define REG_TC8_CTRL_V1_8822B 0x115C
-#define REG_FT2IMR_8822B 0x11E0
-#define REG_FT2ISR_8822B 0x11E4
-#define REG_MSG2_8822B 0x11F0
-#define REG_MSG3_8822B 0x11F4
-#define REG_MSG4_8822B 0x11F8
-#define REG_MSG5_8822B 0x11FC
-#define REG_FIFOPAGE_CTRL_1_8822B 0x0200
-#define REG_FIFOPAGE_CTRL_2_8822B 0x0204
-#define REG_AUTO_LLT_V1_8822B 0x0208
-#define REG_TXDMA_OFFSET_CHK_8822B 0x020C
-#define REG_TXDMA_STATUS_8822B 0x0210
-#define REG_TX_DMA_DBG_8822B 0x0214
-#define REG_TQPNT1_8822B 0x0218
-#define REG_TQPNT2_8822B 0x021C
-#define REG_TQPNT3_8822B 0x0220
-#define REG_TQPNT4_8822B 0x0224
-#define REG_RQPN_CTRL_1_8822B 0x0228
-#define REG_RQPN_CTRL_2_8822B 0x022C
-#define REG_FIFOPAGE_INFO_1_8822B 0x0230
-#define REG_FIFOPAGE_INFO_2_8822B 0x0234
-#define REG_FIFOPAGE_INFO_3_8822B 0x0238
-#define REG_FIFOPAGE_INFO_4_8822B 0x023C
-#define REG_FIFOPAGE_INFO_5_8822B 0x0240
-#define REG_H2C_HEAD_8822B 0x0244
-#define REG_H2C_TAIL_8822B 0x0248
-#define REG_H2C_READ_ADDR_8822B 0x024C
-#define REG_H2C_WR_ADDR_8822B 0x0250
-#define REG_H2C_INFO_8822B 0x0254
-#define REG_RXDMA_AGG_PG_TH_8822B 0x0280
-#define REG_RXPKT_NUM_8822B 0x0284
-#define REG_RXDMA_STATUS_8822B 0x0288
-#define REG_RXDMA_DPR_8822B 0x028C
-#define REG_RXDMA_MODE_8822B 0x0290
-#define REG_C2H_PKT_8822B 0x0294
-#define REG_FWFF_C2H_8822B 0x0298
-#define REG_FWFF_CTRL_8822B 0x029C
-#define REG_FWFF_PKT_INFO_8822B 0x02A0
-#define REG_DDMA_CH0SA_8822B 0x1200
-#define REG_DDMA_CH0DA_8822B 0x1204
-#define REG_DDMA_CH0CTRL_8822B 0x1208
-#define REG_DDMA_CH1SA_8822B 0x1210
-#define REG_DDMA_CH1DA_8822B 0x1214
-#define REG_DDMA_CH1CTRL_8822B 0x1218
-#define REG_DDMA_CH2SA_8822B 0x1220
-#define REG_DDMA_CH2DA_8822B 0x1224
-#define REG_DDMA_CH2CTRL_8822B 0x1228
-#define REG_DDMA_CH3SA_8822B 0x1230
-#define REG_DDMA_CH3DA_8822B 0x1234
-#define REG_DDMA_CH3CTRL_8822B 0x1238
-#define REG_DDMA_CH4SA_8822B 0x1240
-#define REG_DDMA_CH4DA_8822B 0x1244
-#define REG_DDMA_CH4CTRL_8822B 0x1248
-#define REG_DDMA_CH5SA_8822B 0x1250
-#define REG_DDMA_CH5DA_8822B 0x1254
-#define REG_REG_DDMA_CH5CTRL_8822B 0x1258
-#define REG_DDMA_INT_MSK_8822B 0x12E0
-#define REG_DDMA_CHSTATUS_8822B 0x12E8
-#define REG_DDMA_CHKSUM_8822B 0x12F0
-#define REG_DDMA_MONITOR_8822B 0x12FC
-#define REG_PCIE_CTRL_8822B 0x0300
-#define REG_INT_MIG_8822B 0x0304
-#define REG_BCNQ_TXBD_DESA_8822B 0x0308
-#define REG_MGQ_TXBD_DESA_8822B 0x0310
-#define REG_VOQ_TXBD_DESA_8822B 0x0318
-#define REG_VIQ_TXBD_DESA_8822B 0x0320
-#define REG_BEQ_TXBD_DESA_8822B 0x0328
-#define REG_BKQ_TXBD_DESA_8822B 0x0330
-#define REG_RXQ_RXBD_DESA_8822B 0x0338
-#define REG_HI0Q_TXBD_DESA_8822B 0x0340
-#define REG_HI1Q_TXBD_DESA_8822B 0x0348
-#define REG_HI2Q_TXBD_DESA_8822B 0x0350
-#define REG_HI3Q_TXBD_DESA_8822B 0x0358
-#define REG_HI4Q_TXBD_DESA_8822B 0x0360
-#define REG_HI5Q_TXBD_DESA_8822B 0x0368
-#define REG_HI6Q_TXBD_DESA_8822B 0x0370
-#define REG_HI7Q_TXBD_DESA_8822B 0x0378
-#define REG_MGQ_TXBD_NUM_8822B 0x0380
-#define REG_RX_RXBD_NUM_8822B 0x0382
-#define REG_VOQ_TXBD_NUM_8822B 0x0384
-#define REG_VIQ_TXBD_NUM_8822B 0x0386
-#define REG_BEQ_TXBD_NUM_8822B 0x0388
-#define REG_BKQ_TXBD_NUM_8822B 0x038A
-#define REG_HI0Q_TXBD_NUM_8822B 0x038C
-#define REG_HI1Q_TXBD_NUM_8822B 0x038E
-#define REG_HI2Q_TXBD_NUM_8822B 0x0390
-#define REG_HI3Q_TXBD_NUM_8822B 0x0392
-#define REG_HI4Q_TXBD_NUM_8822B 0x0394
-#define REG_HI5Q_TXBD_NUM_8822B 0x0396
-#define REG_HI6Q_TXBD_NUM_8822B 0x0398
-#define REG_HI7Q_TXBD_NUM_8822B 0x039A
-#define REG_TSFTIMER_HCI_8822B 0x039C
-#define REG_BD_RWPTR_CLR_8822B 0x039C
-#define REG_VOQ_TXBD_IDX_8822B 0x03A0
-#define REG_VIQ_TXBD_IDX_8822B 0x03A4
-#define REG_BEQ_TXBD_IDX_8822B 0x03A8
-#define REG_BKQ_TXBD_IDX_8822B 0x03AC
-#define REG_MGQ_TXBD_IDX_8822B 0x03B0
-#define REG_RXQ_RXBD_IDX_8822B 0x03B4
-#define REG_HI0Q_TXBD_IDX_8822B 0x03B8
-#define REG_HI1Q_TXBD_IDX_8822B 0x03BC
-#define REG_HI2Q_TXBD_IDX_8822B 0x03C0
-#define REG_HI3Q_TXBD_IDX_8822B 0x03C4
-#define REG_HI4Q_TXBD_IDX_8822B 0x03C8
-#define REG_HI5Q_TXBD_IDX_8822B 0x03CC
-#define REG_HI6Q_TXBD_IDX_8822B 0x03D0
-#define REG_HI7Q_TXBD_IDX_8822B 0x03D4
-#define REG_DBG_SEL_V1_8822B 0x03D8
-#define REG_PCIE_HRPWM1_V1_8822B 0x03D9
-#define REG_PCIE_HCPWM1_V1_8822B 0x03DA
-#define REG_PCIE_CTRL2_8822B 0x03DB
-#define REG_PCIE_HRPWM2_V1_8822B 0x03DC
-#define REG_PCIE_HCPWM2_V1_8822B 0x03DE
-#define REG_PCIE_H2C_MSG_V1_8822B 0x03E0
-#define REG_PCIE_C2H_MSG_V1_8822B 0x03E4
-#define REG_DBI_WDATA_V1_8822B 0x03E8
-#define REG_DBI_RDATA_V1_8822B 0x03EC
-#define REG_DBI_FLAG_V1_8822B 0x03F0
-#define REG_MDIO_V1_8822B 0x03F4
-#define REG_PCIE_MIX_CFG_8822B 0x03F8
-#define REG_HCI_MIX_CFG_8822B 0x03FC
-#define REG_STC_INT_CS_8822B 0x1300
-#define REG_ST_INT_CFG_8822B 0x1304
-#define REG_CMU_DLY_CTRL_8822B 0x1310
-#define REG_CMU_DLY_CFG_8822B 0x1314
-#define REG_H2CQ_TXBD_DESA_8822B 0x1320
-#define REG_H2CQ_TXBD_NUM_8822B 0x1328
-#define REG_H2CQ_TXBD_IDX_8822B 0x132C
-#define REG_H2CQ_CSR_8822B 0x1330
-#define REG_CHANGE_PCIE_SPEED_8822B 0x1350
-#define REG_OLD_DEHANG_8822B 0x13F4
-#define REG_Q0_INFO_8822B 0x0400
-#define REG_Q1_INFO_8822B 0x0404
-#define REG_Q2_INFO_8822B 0x0408
-#define REG_Q3_INFO_8822B 0x040C
-#define REG_MGQ_INFO_8822B 0x0410
-#define REG_HIQ_INFO_8822B 0x0414
-#define REG_BCNQ_INFO_8822B 0x0418
-#define REG_TXPKT_EMPTY_8822B 0x041A
-#define REG_CPU_MGQ_INFO_8822B 0x041C
-#define REG_FWHW_TXQ_CTRL_8822B 0x0420
-#define REG_DATAFB_SEL_8822B 0x0423
-#define REG_BCNQ_BDNY_V1_8822B 0x0424
-#define REG_LIFETIME_EN_8822B 0x0426
-#define REG_SPEC_SIFS_8822B 0x0428
-#define REG_RETRY_LIMIT_8822B 0x042A
-#define REG_TXBF_CTRL_8822B 0x042C
-#define REG_DARFRC_8822B 0x0430
-#define REG_RARFRC_8822B 0x0438
-#define REG_RRSR_8822B 0x0440
-#define REG_ARFR0_8822B 0x0444
-#define REG_ARFR1_V1_8822B 0x044C
-#define REG_CCK_CHECK_8822B 0x0454
-#define REG_AMPDU_MAX_TIME_V1_8822B 0x0455
-#define REG_BCNQ1_BDNY_V1_8822B 0x0456
-#define REG_AMPDU_MAX_LENGTH_8822B 0x0458
-#define REG_ACQ_STOP_8822B 0x045C
-#define REG_NDPA_RATE_8822B 0x045D
-#define REG_TX_HANG_CTRL_8822B 0x045E
-#define REG_NDPA_OPT_CTRL_8822B 0x045F
-#define REG_RD_RESP_PKT_TH_8822B 0x0463
-#define REG_CMDQ_INFO_8822B 0x0464
-#define REG_Q4_INFO_8822B 0x0468
-#define REG_Q5_INFO_8822B 0x046C
-#define REG_Q6_INFO_8822B 0x0470
-#define REG_Q7_INFO_8822B 0x0474
-#define REG_WMAC_LBK_BUF_HD_V1_8822B 0x0478
-#define REG_MGQ_BDNY_V1_8822B 0x047A
-#define REG_TXRPT_CTRL_8822B 0x047C
-#define REG_INIRTS_RATE_SEL_8822B 0x0480
-#define REG_BASIC_CFEND_RATE_8822B 0x0481
-#define REG_STBC_CFEND_RATE_8822B 0x0482
-#define REG_DATA_SC_8822B 0x0483
-#define REG_MACID_SLEEP3_8822B 0x0484
-#define REG_MACID_SLEEP1_8822B 0x0488
-#define REG_ARFR2_V1_8822B 0x048C
-#define REG_ARFR3_V1_8822B 0x0494
-#define REG_ARFR4_8822B 0x049C
-#define REG_ARFR5_8822B 0x04A4
-#define REG_TXRPT_START_OFFSET_8822B 0x04AC
-#define REG_POWER_STAGE1_8822B 0x04B4
-#define REG_POWER_STAGE2_8822B 0x04B8
-#define REG_SW_AMPDU_BURST_MODE_CTRL_8822B 0x04BC
-#define REG_PKT_LIFE_TIME_8822B 0x04C0
-#define REG_STBC_SETTING_8822B 0x04C4
-#define REG_STBC_SETTING2_8822B 0x04C5
-#define REG_QUEUE_CTRL_8822B 0x04C6
-#define REG_SINGLE_AMPDU_CTRL_8822B 0x04C7
-#define REG_PROT_MODE_CTRL_8822B 0x04C8
-#define REG_BAR_MODE_CTRL_8822B 0x04CC
-#define REG_RA_TRY_RATE_AGG_LMT_8822B 0x04CF
-#define REG_MACID_SLEEP2_8822B 0x04D0
-#define REG_MACID_SLEEP_8822B 0x04D4
-#define REG_HW_SEQ0_8822B 0x04D8
-#define REG_HW_SEQ1_8822B 0x04DA
-#define REG_HW_SEQ2_8822B 0x04DC
-#define REG_HW_SEQ3_8822B 0x04DE
-#define REG_NULL_PKT_STATUS_V1_8822B 0x04E0
-#define REG_PTCL_ERR_STATUS_8822B 0x04E2
-#define REG_NULL_PKT_STATUS_EXTEND_8822B 0x04E3
-#define REG_VIDEO_ENHANCEMENT_FUN_8822B 0x04E4
-#define REG_BT_POLLUTE_PKT_CNT_8822B 0x04E8
-#define REG_PTCL_DBG_8822B 0x04EC
-#define REG_CPUMGQ_TIMER_CTRL2_8822B 0x04F4
-#define REG_DUMMY_PAGE4_V1_8822B 0x04FC
-#define REG_MOREDATA_8822B 0x04FE
-#define REG_Q0_Q1_INFO_8822B 0x1400
-#define REG_Q2_Q3_INFO_8822B 0x1404
-#define REG_Q4_Q5_INFO_8822B 0x1408
-#define REG_Q6_Q7_INFO_8822B 0x140C
-#define REG_MGQ_HIQ_INFO_8822B 0x1410
-#define REG_CMDQ_BCNQ_INFO_8822B 0x1414
-#define REG_USEREG_SETTING_8822B 0x1420
-#define REG_AESIV_SETTING_8822B 0x1424
-#define REG_BF0_TIME_SETTING_8822B 0x1428
-#define REG_BF1_TIME_SETTING_8822B 0x142C
-#define REG_BF_TIMEOUT_EN_8822B 0x1430
-#define REG_MACID_RELEASE0_8822B 0x1434
-#define REG_MACID_RELEASE1_8822B 0x1438
-#define REG_MACID_RELEASE2_8822B 0x143C
-#define REG_MACID_RELEASE3_8822B 0x1440
-#define REG_MACID_RELEASE_SETTING_8822B 0x1444
-#define REG_FAST_EDCA_VOVI_SETTING_8822B 0x1448
-#define REG_FAST_EDCA_BEBK_SETTING_8822B 0x144C
-#define REG_MACID_DROP0_8822B 0x1450
-#define REG_MACID_DROP1_8822B 0x1454
-#define REG_MACID_DROP2_8822B 0x1458
-#define REG_MACID_DROP3_8822B 0x145C
-#define REG_R_MACID_RELEASE_SUCCESS_0_8822B 0x1460
-#define REG_R_MACID_RELEASE_SUCCESS_1_8822B 0x1464
-#define REG_R_MACID_RELEASE_SUCCESS_2_8822B 0x1468
-#define REG_R_MACID_RELEASE_SUCCESS_3_8822B 0x146C
-#define REG_MGG_FIFO_CRTL_8822B 0x1470
-#define REG_MGG_FIFO_INT_8822B 0x1474
-#define REG_MGG_FIFO_LIFETIME_8822B 0x1478
-#define REG_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET_8822B 0x147C
-#define REG_MACID_SHCUT_OFFSET_8822B 0x1480
-#define REG_MU_TX_CTL_8822B 0x14C0
-#define REG_MU_STA_GID_VLD_8822B 0x14C4
-#define REG_MU_STA_USER_POS_INFO_8822B 0x14C8
-#define REG_MU_TRX_DBG_CNT_8822B 0x14D0
-#define REG_EDCA_VO_PARAM_8822B 0x0500
-#define REG_EDCA_VI_PARAM_8822B 0x0504
-#define REG_EDCA_BE_PARAM_8822B 0x0508
-#define REG_EDCA_BK_PARAM_8822B 0x050C
-#define REG_BCNTCFG_8822B 0x0510
-#define REG_PIFS_8822B 0x0512
-#define REG_RDG_PIFS_8822B 0x0513
-#define REG_SIFS_8822B 0x0514
-#define REG_TSFTR_SYN_OFFSET_8822B 0x0518
-#define REG_AGGR_BREAK_TIME_8822B 0x051A
-#define REG_SLOT_8822B 0x051B
-#define REG_TX_PTCL_CTRL_8822B 0x0520
-#define REG_TXPAUSE_8822B 0x0522
-#define REG_DIS_TXREQ_CLR_8822B 0x0523
-#define REG_RD_CTRL_8822B 0x0524
-#define REG_MBSSID_CTRL_8822B 0x0526
-#define REG_P2PPS_CTRL_8822B 0x0527
-#define REG_PKT_LIFETIME_CTRL_8822B 0x0528
-#define REG_P2PPS_SPEC_STATE_8822B 0x052B
-#define REG_BAR_TX_CTRL_8822B 0x0530
-#define REG_QUEUE_INCOL_THR_8822B 0x0538
-#define REG_QUEUE_INCOL_EN_8822B 0x053C
-#define REG_TBTT_PROHIBIT_8822B 0x0540
-#define REG_P2PPS_STATE_8822B 0x0543
-#define REG_RD_NAV_NXT_8822B 0x0544
-#define REG_NAV_PROT_LEN_8822B 0x0546
-#define REG_BCN_CTRL_8822B 0x0550
-#define REG_BCN_CTRL_CLINT0_8822B 0x0551
-#define REG_MBID_NUM_8822B 0x0552
-#define REG_DUAL_TSF_RST_8822B 0x0553
-#define REG_MBSSID_BCN_SPACE_8822B 0x0554
-#define REG_DRVERLYINT_8822B 0x0558
-#define REG_BCNDMATIM_8822B 0x0559
-#define REG_ATIMWND_8822B 0x055A
-#define REG_USTIME_TSF_8822B 0x055C
-#define REG_BCN_MAX_ERR_8822B 0x055D
-#define REG_RXTSF_OFFSET_CCK_8822B 0x055E
-#define REG_RXTSF_OFFSET_OFDM_8822B 0x055F
-#define REG_TSFTR_8822B 0x0560
-#define REG_FREERUN_CNT_8822B 0x0568
-#define REG_ATIMWND1_V1_8822B 0x0570
-#define REG_TBTT_PROHIBIT_INFRA_8822B 0x0571
-#define REG_CTWND_8822B 0x0572
-#define REG_BCNIVLCUNT_8822B 0x0573
-#define REG_BCNDROPCTRL_8822B 0x0574
-#define REG_HGQ_TIMEOUT_PERIOD_8822B 0x0575
-#define REG_TXCMD_TIMEOUT_PERIOD_8822B 0x0576
-#define REG_MISC_CTRL_8822B 0x0577
-#define REG_BCN_CTRL_CLINT1_8822B 0x0578
-#define REG_BCN_CTRL_CLINT2_8822B 0x0579
-#define REG_BCN_CTRL_CLINT3_8822B 0x057A
-#define REG_EXTEND_CTRL_8822B 0x057B
-#define REG_P2PPS1_SPEC_STATE_8822B 0x057C
-#define REG_P2PPS1_STATE_8822B 0x057D
-#define REG_P2PPS2_SPEC_STATE_8822B 0x057E
-#define REG_P2PPS2_STATE_8822B 0x057F
-#define REG_PS_TIMER0_8822B 0x0580
-#define REG_PS_TIMER1_8822B 0x0584
-#define REG_PS_TIMER2_8822B 0x0588
-#define REG_TBTT_CTN_AREA_8822B 0x058C
-#define REG_FORCE_BCN_IFS_8822B 0x058E
-#define REG_TXOP_MIN_8822B 0x0590
-#define REG_PRE_BKF_TIME_8822B 0x0592
-#define REG_CROSS_TXOP_CTRL_8822B 0x0593
-#define REG_ATIMWND2_8822B 0x05A0
-#define REG_ATIMWND3_8822B 0x05A1
-#define REG_ATIMWND4_8822B 0x05A2
-#define REG_ATIMWND5_8822B 0x05A3
-#define REG_ATIMWND6_8822B 0x05A4
-#define REG_ATIMWND7_8822B 0x05A5
-#define REG_ATIMUGT_8822B 0x05A6
-#define REG_HIQ_NO_LMT_EN_8822B 0x05A7
-#define REG_DTIM_COUNTER_ROOT_8822B 0x05A8
-#define REG_DTIM_COUNTER_VAP1_8822B 0x05A9
-#define REG_DTIM_COUNTER_VAP2_8822B 0x05AA
-#define REG_DTIM_COUNTER_VAP3_8822B 0x05AB
-#define REG_DTIM_COUNTER_VAP4_8822B 0x05AC
-#define REG_DTIM_COUNTER_VAP5_8822B 0x05AD
-#define REG_DTIM_COUNTER_VAP6_8822B 0x05AE
-#define REG_DTIM_COUNTER_VAP7_8822B 0x05AF
-#define REG_DIS_ATIM_8822B 0x05B0
-#define REG_EARLY_128US_8822B 0x05B1
-#define REG_P2PPS1_CTRL_8822B 0x05B2
-#define REG_P2PPS2_CTRL_8822B 0x05B3
-#define REG_TIMER0_SRC_SEL_8822B 0x05B4
-#define REG_NOA_UNIT_SEL_8822B 0x05B5
-#define REG_P2POFF_DIS_TXTIME_8822B 0x05B7
-#define REG_MBSSID_BCN_SPACE2_8822B 0x05B8
-#define REG_MBSSID_BCN_SPACE3_8822B 0x05BC
-#define REG_ACMHWCTRL_8822B 0x05C0
-#define REG_ACMRSTCTRL_8822B 0x05C1
-#define REG_ACMAVG_8822B 0x05C2
-#define REG_VO_ADMTIME_8822B 0x05C4
-#define REG_VI_ADMTIME_8822B 0x05C6
-#define REG_BE_ADMTIME_8822B 0x05C8
-#define REG_EDCA_RANDOM_GEN_8822B 0x05CC
-#define REG_TXCMD_NOA_SEL_8822B 0x05CF
-#define REG_NOA_PARAM_8822B 0x05E0
-#define REG_P2P_RST_8822B 0x05F0
-#define REG_SCHEDULER_RST_8822B 0x05F1
-#define REG_SCH_TXCMD_8822B 0x05F8
-#define REG_PAGE5_DUMMY_8822B 0x05FC
-#define REG_CPUMGQ_TX_TIMER_8822B 0x1500
-#define REG_PS_TIMER_A_8822B 0x1504
-#define REG_PS_TIMER_B_8822B 0x1508
-#define REG_PS_TIMER_C_8822B 0x150C
-#define REG_PS_TIMER_ABC_CPUMGQ_TIMER_CRTL_8822B 0x1510
-#define REG_CPUMGQ_TX_TIMER_EARLY_8822B 0x1514
-#define REG_PS_TIMER_A_EARLY_8822B 0x1515
-#define REG_PS_TIMER_B_EARLY_8822B 0x1516
-#define REG_PS_TIMER_C_EARLY_8822B 0x1517
-#define REG_WMAC_CR_8822B 0x0600
-#define REG_WMAC_FWPKT_CR_8822B 0x0601
-#define REG_BWOPMODE_8822B 0x0603
-#define REG_TCR_8822B 0x0604
-#define REG_RCR_8822B 0x0608
-#define REG_RX_PKT_LIMIT_8822B 0x060C
-#define REG_RX_DLK_TIME_8822B 0x060D
-#define REG_RX_DRVINFO_SZ_8822B 0x060F
-#define REG_MACID_8822B 0x0610
-#define REG_BSSID_8822B 0x0618
-#define REG_MAR_8822B 0x0620
-#define REG_MBIDCAMCFG_1_8822B 0x0628
-#define REG_MBIDCAMCFG_2_8822B 0x062C
-#define REG_WMAC_TCR_TSFT_OFS_8822B 0x0630
-#define REG_UDF_THSD_8822B 0x0632
-#define REG_ZLD_NUM_8822B 0x0633
-#define REG_STMP_THSD_8822B 0x0634
-#define REG_WMAC_TXTIMEOUT_8822B 0x0635
-#define REG_MCU_TEST_2_V1_8822B 0x0636
-#define REG_USTIME_EDCA_8822B 0x0638
-#define REG_MAC_SPEC_SIFS_8822B 0x063A
-#define REG_RESP_SIFS_CCK_8822B 0x063C
-#define REG_RESP_SIFS_OFDM_8822B 0x063E
-#define REG_ACKTO_8822B 0x0640
-#define REG_CTS2TO_8822B 0x0641
-#define REG_EIFS_8822B 0x0642
-#define REG_NAV_CTRL_8822B 0x0650
-#define REG_BACAMCMD_8822B 0x0654
-#define REG_BACAMCONTENT_8822B 0x0658
-#define REG_LBDLY_8822B 0x0660
-#define REG_WMAC_BACAM_RPMEN_8822B 0x0661
-#define REG_TX_RX_8822B 0x0662
-#define REG_WMAC_BITMAP_CTL_8822B 0x0663
-#define REG_RXERR_RPT_8822B 0x0664
-#define REG_WMAC_TRXPTCL_CTL_8822B 0x0668
-#define REG_CAMCMD_8822B 0x0670
-#define REG_CAMWRITE_8822B 0x0674
-#define REG_CAMREAD_8822B 0x0678
-#define REG_CAMDBG_8822B 0x067C
-#define REG_SECCFG_8822B 0x0680
-#define REG_RXFILTER_CATEGORY_1_8822B 0x0682
-#define REG_RXFILTER_ACTION_1_8822B 0x0683
-#define REG_RXFILTER_CATEGORY_2_8822B 0x0684
-#define REG_RXFILTER_ACTION_2_8822B 0x0685
-#define REG_RXFILTER_CATEGORY_3_8822B 0x0686
-#define REG_RXFILTER_ACTION_3_8822B 0x0687
-#define REG_RXFLTMAP3_8822B 0x0688
-#define REG_RXFLTMAP4_8822B 0x068A
-#define REG_RXFLTMAP5_8822B 0x068C
-#define REG_RXFLTMAP6_8822B 0x068E
-#define REG_WOW_CTRL_8822B 0x0690
-#define REG_NAN_RX_TSF_FILTER_8822B 0x0691
-#define REG_PS_RX_INFO_8822B 0x0692
-#define REG_WMMPS_UAPSD_TID_8822B 0x0693
-#define REG_LPNAV_CTRL_8822B 0x0694
-#define REG_WKFMCAM_CMD_8822B 0x0698
-#define REG_WKFMCAM_RWD_8822B 0x069C
-#define REG_RXFLTMAP0_8822B 0x06A0
-#define REG_RXFLTMAP1_8822B 0x06A2
-#define REG_RXFLTMAP_8822B 0x06A4
-#define REG_BCN_PSR_RPT_8822B 0x06A8
-#define REG_FLC_RPC_8822B 0x06AC
-#define REG_FLC_RPCT_8822B 0x06AD
-#define REG_FLC_PTS_8822B 0x06AE
-#define REG_FLC_TRPC_8822B 0x06AF
-#define REG_RXPKTMON_CTRL_8822B 0x06B0
-#define REG_STATE_MON_8822B 0x06B4
-#define REG_ERROR_MON_8822B 0x06B8
-#define REG_SEARCH_MACID_8822B 0x06BC
-#define REG_BT_COEX_TABLE_8822B 0x06C0
-#define REG_RXCMD_0_8822B 0x06D0
-#define REG_RXCMD_1_8822B 0x06D4
-#define REG_WMAC_RESP_TXINFO_8822B 0x06D8
-#define REG_BBPSF_CTRL_8822B 0x06DC
-#define REG_P2P_RX_BCN_NOA_8822B 0x06E0
-#define REG_ASSOCIATED_BFMER0_INFO_8822B 0x06E4
-#define REG_ASSOCIATED_BFMER1_INFO_8822B 0x06EC
-#define REG_TX_CSI_RPT_PARAM_BW20_8822B 0x06F4
-#define REG_TX_CSI_RPT_PARAM_BW40_8822B 0x06F8
-#define REG_TX_CSI_RPT_PARAM_BW80_8822B 0x06FC
-#define REG_BCN_PSR_RPT2_8822B 0x1600
-#define REG_BCN_PSR_RPT3_8822B 0x1604
-#define REG_BCN_PSR_RPT4_8822B 0x1608
-#define REG_A1_ADDR_MASK_8822B 0x160C
-#define REG_MACID2_8822B 0x1620
-#define REG_BSSID2_8822B 0x1628
-#define REG_MACID3_8822B 0x1630
-#define REG_BSSID3_8822B 0x1638
-#define REG_MACID4_8822B 0x1640
-#define REG_BSSID4_8822B 0x1648
-#define REG_NOA_REPORT_8822B 0x1650
-#define REG_PWRBIT_SETTING_8822B 0x1660
-#define REG_WMAC_MU_BF_OPTION_8822B 0x167C
-#define REG_WMAC_MU_ARB_8822B 0x167E
-#define REG_WMAC_MU_OPTION_8822B 0x167F
-#define REG_WMAC_MU_BF_CTL_8822B 0x1680
-#define REG_WMAC_MU_BFRPT_PARA_8822B 0x1682
-#define REG_WMAC_ASSOCIATED_MU_BFMEE2_8822B 0x1684
-#define REG_WMAC_ASSOCIATED_MU_BFMEE3_8822B 0x1686
-#define REG_WMAC_ASSOCIATED_MU_BFMEE4_8822B 0x1688
-#define REG_WMAC_ASSOCIATED_MU_BFMEE5_8822B 0x168A
-#define REG_WMAC_ASSOCIATED_MU_BFMEE6_8822B 0x168C
-#define REG_WMAC_ASSOCIATED_MU_BFMEE7_8822B 0x168E
-#define REG_TRANSMIT_ADDRSS_0_8822B 0x16A0
-#define REG_TRANSMIT_ADDRSS_1_8822B 0x16A8
-#define REG_TRANSMIT_ADDRSS_2_8822B 0x16B0
-#define REG_TRANSMIT_ADDRSS_3_8822B 0x16B8
-#define REG_TRANSMIT_ADDRSS_4_8822B 0x16C0
-#define REG_MACID1_8822B 0x0700
-#define REG_BSSID1_8822B 0x0708
-#define REG_BCN_PSR_RPT1_8822B 0x0710
-#define REG_ASSOCIATED_BFMEE_SEL_8822B 0x0714
-#define REG_SND_PTCL_CTRL_8822B 0x0718
-#define REG_RX_CSI_RPT_INFO_8822B 0x071C
-#define REG_NS_ARP_CTRL_8822B 0x0720
-#define REG_NS_ARP_INFO_8822B 0x0724
-#define REG_BEAMFORMING_INFO_NSARP_V1_8822B 0x0728
-#define REG_BEAMFORMING_INFO_NSARP_8822B 0x072C
-#define REG_WMAC_RTX_CTX_SUBTYPE_CFG_8822B 0x0750
-#define REG_WMAC_SWAES_CFG_8822B 0x0760
-#define REG_BT_COEX_V2_8822B 0x0762
-#define REG_BT_COEX_8822B 0x0764
-#define REG_WLAN_ACT_MASK_CTRL_8822B 0x0768
-#define REG_BT_COEX_ENHANCED_INTR_CTRL_8822B 0x076E
-#define REG_BT_ACT_STATISTICS_8822B 0x0770
-#define REG_BT_STATISTICS_CONTROL_REGISTER_8822B 0x0778
-#define REG_BT_STATUS_REPORT_REGISTER_8822B 0x077C
-#define REG_BT_INTERRUPT_CONTROL_REGISTER_8822B 0x0780
-#define REG_WLAN_REPORT_TIME_OUT_CONTROL_REGISTER_8822B 0x0784
-#define REG_BT_ISOLATION_TABLE_REGISTER_REGISTER_8822B 0x0785
-#define REG_BT_INTERRUPT_STATUS_REGISTER_8822B 0x078F
-#define REG_BT_TDMA_TIME_REGISTER_8822B 0x0790
-#define REG_BT_ACT_REGISTER_8822B 0x0794
-#define REG_OBFF_CTRL_BASIC_8822B 0x0798
-#define REG_OBFF_CTRL2_TIMER_8822B 0x079C
-#define REG_LTR_CTRL_BASIC_8822B 0x07A0
-#define REG_LTR_CTRL2_TIMER_THRESHOLD_8822B 0x07A4
-#define REG_LTR_IDLE_LATENCY_V1_8822B 0x07A8
-#define REG_LTR_ACTIVE_LATENCY_V1_8822B 0x07AC
-#define REG_ANTENNA_TRAINING_CONTROL_REGISTER_8822B 0x07B0
-#define REG_WMAC_PKTCNT_RWD_8822B 0x07B8
-#define REG_WMAC_PKTCNT_CTRL_8822B 0x07BC
-#define REG_IQ_DUMP_8822B 0x07C0
-#define REG_WMAC_FTM_CTL_8822B 0x07CC
-#define REG_WMAC_IQ_MDPK_FUNC_8822B 0x07CE
-#define REG_WMAC_OPTION_FUNCTION_8822B 0x07D0
-#define REG_RX_FILTER_FUNCTION_8822B 0x07DA
-#define REG_NDP_SIG_8822B 0x07E0
-#define REG_TXCMD_INFO_FOR_RSP_PKT_8822B 0x07E4
-#define REG_RTS_ADDRESS_0_8822B 0x07F0
-#define REG_RTS_ADDRESS_1_8822B 0x07F8
-#define REG__RPFM_MAP1_8822B 0x07FE
-#define REG_WL2LTECOEX_INDIRECT_ACCESS_CTRL_V1_8822B 0x1700
-#define REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA_V1_8822B 0x1704
-#define REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA_V1_8822B 0x1708
-#define REG_SDIO_TX_CTRL_8822B 0x10250000
-#define REG_SDIO_HIMR_8822B 0x10250014
-#define REG_SDIO_HISR_8822B 0x10250018
-#define REG_SDIO_RX_REQ_LEN_8822B 0x1025001C
-#define REG_SDIO_FREE_TXPG_SEQ_V1_8822B 0x1025001F
-#define REG_SDIO_FREE_TXPG_8822B 0x10250020
-#define REG_SDIO_FREE_TXPG2_8822B 0x10250024
-#define REG_SDIO_OQT_FREE_TXPG_V1_8822B 0x10250028
-#define REG_SDIO_HTSFR_INFO_8822B 0x10250030
-#define REG_SDIO_HCPWM1_V2_8822B 0x10250038
-#define REG_SDIO_HCPWM2_V2_8822B 0x1025003A
-#define REG_SDIO_INDIRECT_REG_CFG_8822B 0x10250040
-#define REG_SDIO_INDIRECT_REG_DATA_8822B 0x10250044
-#define REG_SDIO_H2C_8822B 0x10250060
-#define REG_SDIO_C2H_8822B 0x10250064
-#define REG_SDIO_HRPWM1_8822B 0x10250080
-#define REG_SDIO_HRPWM2_8822B 0x10250082
-#define REG_SDIO_HPS_CLKR_8822B 0x10250084
-#define REG_SDIO_BUS_CTRL_8822B 0x10250085
-#define REG_SDIO_HSUS_CTRL_8822B 0x10250086
-#define REG_SDIO_RESPONSE_TIMER_8822B 0x10250088
-#define REG_SDIO_CMD_CRC_8822B 0x1025008A
-#define REG_SDIO_HSISR_8822B 0x10250090
-#define REG_SDIO_HSIMR_8822B 0x10250091
-#define REG_SDIO_ERR_RPT_8822B 0x102500C0
-#define REG_SDIO_CMD_ERRCNT_8822B 0x102500C1
-#define REG_SDIO_DATA_ERRCNT_8822B 0x102500C2
-#define REG_SDIO_CMD_ERR_CONTENT_8822B 0x102500C4
-#define REG_SDIO_CRC_ERR_IDX_8822B 0x102500C9
-#define REG_SDIO_DATA_CRC_8822B 0x102500CA
-#define REG_SDIO_DATA_REPLY_TIME_8822B 0x102500CB
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_rx_bd_chip.h b/drivers/staging/rtlwifi/halmac/halmac_rx_bd_chip.h
deleted file mode 100644
index d5ff89c..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_rx_bd_chip.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_RX_BD_CHIP_H_
-#define _HALMAC_RX_BD_CHIP_H_
-
-/*TXBD_DW0*/
-
-#define GET_RX_BD_RXFAIL_8822B(__rx_bd) GET_RX_BD_RXFAIL(__rx_bd)
-#define GET_RX_BD_TOTALRXPKTSIZE_8822B(__rx_bd)                                \
-	GET_RX_BD_TOTALRXPKTSIZE(__rx_bd)
-#define GET_RX_BD_RXTAG_8822B(__rx_bd) GET_RX_BD_RXTAG(__rx_bd)
-#define GET_RX_BD_FS_8822B(__rx_bd) GET_RX_BD_FS(__rx_bd)
-#define GET_RX_BD_LS_8822B(__rx_bd) GET_RX_BD_LS(__rx_bd)
-#define GET_RX_BD_RXBUFFSIZE_8822B(__rx_bd) GET_RX_BD_RXBUFFSIZE(__rx_bd)
-
-/*TXBD_DW1*/
-
-#define GET_RX_BD_PHYSICAL_ADDR_LOW_8822B(__rx_bd)                             \
-	GET_RX_BD_PHYSICAL_ADDR_LOW(__rx_bd)
-
-/*TXBD_DW2*/
-
-#define GET_RX_BD_PHYSICAL_ADDR_HIGH_8822B(__rx_bd)                            \
-	GET_RX_BD_PHYSICAL_ADDR_HIGH(__rx_bd)
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_rx_bd_nic.h b/drivers/staging/rtlwifi/halmac/halmac_rx_bd_nic.h
deleted file mode 100644
index c030f25..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_rx_bd_nic.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_RX_BD_NIC_H_
-#define _HALMAC_RX_BD_NIC_H_
-
-/*TXBD_DW0*/
-
-#define GET_RX_BD_RXFAIL(__rx_bd) LE_BITS_TO_4BYTE(__rx_bd + 0x00, 31, 1)
-#define GET_RX_BD_TOTALRXPKTSIZE(__rx_bd)                                      \
-	LE_BITS_TO_4BYTE(__rx_bd + 0x00, 16, 13)
-#define GET_RX_BD_RXTAG(__rx_bd) LE_BITS_TO_4BYTE(__rx_bd + 0x00, 16, 13)
-#define GET_RX_BD_FS(__rx_bd) LE_BITS_TO_4BYTE(__rx_bd + 0x00, 15, 1)
-#define GET_RX_BD_LS(__rx_bd) LE_BITS_TO_4BYTE(__rx_bd + 0x00, 14, 1)
-#define GET_RX_BD_RXBUFFSIZE(__rx_bd) LE_BITS_TO_4BYTE(__rx_bd + 0x00, 0, 14)
-
-/*TXBD_DW1*/
-
-#define GET_RX_BD_PHYSICAL_ADDR_LOW(__rx_bd)                                   \
-	LE_BITS_TO_4BYTE(__rx_bd + 0x04, 0, 32)
-
-/*TXBD_DW2*/
-
-#define GET_RX_BD_PHYSICAL_ADDR_HIGH(__rx_bd)                                  \
-	LE_BITS_TO_4BYTE(__rx_bd + 0x08, 0, 32)
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_rx_desc_chip.h b/drivers/staging/rtlwifi/halmac/halmac_rx_desc_chip.h
deleted file mode 100644
index 5f960e2..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_rx_desc_chip.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_RX_DESC_CHIP_H_
-#define _HALMAC_RX_DESC_CHIP_H_
-
-/*RXDESC_WORD0*/
-
-#define GET_RX_DESC_EOR_8822B(__rx_desc) GET_RX_DESC_EOR(__rx_desc)
-#define GET_RX_DESC_PHYPKTIDC_8822B(__rx_desc) GET_RX_DESC_PHYPKTIDC(__rx_desc)
-#define GET_RX_DESC_SWDEC_8822B(__rx_desc) GET_RX_DESC_SWDEC(__rx_desc)
-#define GET_RX_DESC_PHYST_8822B(__rx_desc) GET_RX_DESC_PHYST(__rx_desc)
-#define GET_RX_DESC_SHIFT_8822B(__rx_desc) GET_RX_DESC_SHIFT(__rx_desc)
-#define GET_RX_DESC_QOS_8822B(__rx_desc) GET_RX_DESC_QOS(__rx_desc)
-#define GET_RX_DESC_SECURITY_8822B(__rx_desc) GET_RX_DESC_SECURITY(__rx_desc)
-#define GET_RX_DESC_DRV_INFO_SIZE_8822B(__rx_desc)                             \
-	GET_RX_DESC_DRV_INFO_SIZE(__rx_desc)
-#define GET_RX_DESC_ICV_ERR_8822B(__rx_desc) GET_RX_DESC_ICV_ERR(__rx_desc)
-#define GET_RX_DESC_CRC32_8822B(__rx_desc) GET_RX_DESC_CRC32(__rx_desc)
-#define GET_RX_DESC_PKT_LEN_8822B(__rx_desc) GET_RX_DESC_PKT_LEN(__rx_desc)
-
-/*RXDESC_WORD1*/
-
-#define GET_RX_DESC_BC_8822B(__rx_desc) GET_RX_DESC_BC(__rx_desc)
-#define GET_RX_DESC_MC_8822B(__rx_desc) GET_RX_DESC_MC(__rx_desc)
-#define GET_RX_DESC_TY_PE_8822B(__rx_desc) GET_RX_DESC_TY_PE(__rx_desc)
-#define GET_RX_DESC_MF_8822B(__rx_desc) GET_RX_DESC_MF(__rx_desc)
-#define GET_RX_DESC_MD_8822B(__rx_desc) GET_RX_DESC_MD(__rx_desc)
-#define GET_RX_DESC_PWR_8822B(__rx_desc) GET_RX_DESC_PWR(__rx_desc)
-#define GET_RX_DESC_PAM_8822B(__rx_desc) GET_RX_DESC_PAM(__rx_desc)
-#define GET_RX_DESC_CHK_VLD_8822B(__rx_desc) GET_RX_DESC_CHK_VLD(__rx_desc)
-#define GET_RX_DESC_RX_IS_TCP_UDP_8822B(__rx_desc)                             \
-	GET_RX_DESC_RX_IS_TCP_UDP(__rx_desc)
-#define GET_RX_DESC_RX_IPV_8822B(__rx_desc) GET_RX_DESC_RX_IPV(__rx_desc)
-#define GET_RX_DESC_CHKERR_8822B(__rx_desc) GET_RX_DESC_CHKERR(__rx_desc)
-#define GET_RX_DESC_PAGGR_8822B(__rx_desc) GET_RX_DESC_PAGGR(__rx_desc)
-#define GET_RX_DESC_RXID_MATCH_8822B(__rx_desc)                                \
-	GET_RX_DESC_RXID_MATCH(__rx_desc)
-#define GET_RX_DESC_AMSDU_8822B(__rx_desc) GET_RX_DESC_AMSDU(__rx_desc)
-#define GET_RX_DESC_MACID_VLD_8822B(__rx_desc) GET_RX_DESC_MACID_VLD(__rx_desc)
-#define GET_RX_DESC_TID_8822B(__rx_desc) GET_RX_DESC_TID(__rx_desc)
-#define GET_RX_DESC_EXT_SECTYPE_8822B(__rx_desc)                               \
-	GET_RX_DESC_EXT_SECTYPE(__rx_desc)
-#define GET_RX_DESC_MACID_8822B(__rx_desc) GET_RX_DESC_MACID(__rx_desc)
-
-/*RXDESC_WORD2*/
-
-#define GET_RX_DESC_FCS_OK_8822B(__rx_desc) GET_RX_DESC_FCS_OK(__rx_desc)
-#define GET_RX_DESC_PPDU_CNT_8822B(__rx_desc) GET_RX_DESC_PPDU_CNT(__rx_desc)
-#define GET_RX_DESC_C2H_8822B(__rx_desc) GET_RX_DESC_C2H(__rx_desc)
-#define GET_RX_DESC_HWRSVD_8822B(__rx_desc) GET_RX_DESC_HWRSVD(__rx_desc)
-#define GET_RX_DESC_WLANHD_IV_LEN_8822B(__rx_desc)                             \
-	GET_RX_DESC_WLANHD_IV_LEN(__rx_desc)
-#define GET_RX_DESC_RX_IS_QOS_8822B(__rx_desc) GET_RX_DESC_RX_IS_QOS(__rx_desc)
-#define GET_RX_DESC_FRAG_8822B(__rx_desc) GET_RX_DESC_FRAG(__rx_desc)
-#define GET_RX_DESC_SEQ_8822B(__rx_desc) GET_RX_DESC_SEQ(__rx_desc)
-
-/*RXDESC_WORD3*/
-
-#define GET_RX_DESC_MAGIC_WAKE_8822B(__rx_desc)                                \
-	GET_RX_DESC_MAGIC_WAKE(__rx_desc)
-#define GET_RX_DESC_UNICAST_WAKE_8822B(__rx_desc)                              \
-	GET_RX_DESC_UNICAST_WAKE(__rx_desc)
-#define GET_RX_DESC_PATTERN_MATCH_8822B(__rx_desc)                             \
-	GET_RX_DESC_PATTERN_MATCH(__rx_desc)
-#define GET_RX_DESC_RXPAYLOAD_MATCH_8822B(__rx_desc)                           \
-	GET_RX_DESC_RXPAYLOAD_MATCH(__rx_desc)
-#define GET_RX_DESC_RXPAYLOAD_ID_8822B(__rx_desc)                              \
-	GET_RX_DESC_RXPAYLOAD_ID(__rx_desc)
-#define GET_RX_DESC_DMA_AGG_NUM_8822B(__rx_desc)                               \
-	GET_RX_DESC_DMA_AGG_NUM(__rx_desc)
-#define GET_RX_DESC_BSSID_FIT_1_0_8822B(__rx_desc)                             \
-	GET_RX_DESC_BSSID_FIT_1_0(__rx_desc)
-#define GET_RX_DESC_EOSP_8822B(__rx_desc) GET_RX_DESC_EOSP(__rx_desc)
-#define GET_RX_DESC_HTC_8822B(__rx_desc) GET_RX_DESC_HTC(__rx_desc)
-#define GET_RX_DESC_BSSID_FIT_4_2_8822B(__rx_desc)                             \
-	GET_RX_DESC_BSSID_FIT_4_2(__rx_desc)
-#define GET_RX_DESC_RX_RATE_8822B(__rx_desc) GET_RX_DESC_RX_RATE(__rx_desc)
-
-/*RXDESC_WORD4*/
-
-#define GET_RX_DESC_A1_FIT_8822B(__rx_desc) GET_RX_DESC_A1_FIT(__rx_desc)
-#define GET_RX_DESC_MACID_RPT_BUFF_8822B(__rx_desc)                            \
-	GET_RX_DESC_MACID_RPT_BUFF(__rx_desc)
-#define GET_RX_DESC_RX_PRE_NDP_VLD_8822B(__rx_desc)                            \
-	GET_RX_DESC_RX_PRE_NDP_VLD(__rx_desc)
-#define GET_RX_DESC_RX_SCRAMBLER_8822B(__rx_desc)                              \
-	GET_RX_DESC_RX_SCRAMBLER(__rx_desc)
-#define GET_RX_DESC_RX_EOF_8822B(__rx_desc) GET_RX_DESC_RX_EOF(__rx_desc)
-#define GET_RX_DESC_PATTERN_IDX_8822B(__rx_desc)                               \
-	GET_RX_DESC_PATTERN_IDX(__rx_desc)
-
-/*RXDESC_WORD5*/
-
-#define GET_RX_DESC_TSFL_8822B(__rx_desc) GET_RX_DESC_TSFL(__rx_desc)
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_rx_desc_nic.h b/drivers/staging/rtlwifi/halmac/halmac_rx_desc_nic.h
deleted file mode 100644
index 413004e..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_rx_desc_nic.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_RX_DESC_NIC_H_
-#define _HALMAC_RX_DESC_NIC_H_
-
-/*RXDESC_WORD0*/
-
-#define GET_RX_DESC_EOR(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x00, 30, 1)
-#define GET_RX_DESC_PHYPKTIDC(__rx_desc)                                       \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x00, 28, 1)
-#define GET_RX_DESC_SWDEC(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x00, 27, 1)
-#define GET_RX_DESC_PHYST(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x00, 26, 1)
-#define GET_RX_DESC_SHIFT(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x00, 24, 2)
-#define GET_RX_DESC_QOS(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x00, 23, 1)
-#define GET_RX_DESC_SECURITY(__rx_desc)                                        \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x00, 20, 3)
-#define GET_RX_DESC_DRV_INFO_SIZE(__rx_desc)                                   \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x00, 16, 4)
-#define GET_RX_DESC_ICV_ERR(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x00, 15, 1)
-#define GET_RX_DESC_CRC32(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x00, 14, 1)
-#define GET_RX_DESC_PKT_LEN(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x00, 0, 14)
-
-/*RXDESC_WORD1*/
-
-#define GET_RX_DESC_BC(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 31, 1)
-#define GET_RX_DESC_MC(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 30, 1)
-#define GET_RX_DESC_TY_PE(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 28, 2)
-#define GET_RX_DESC_MF(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 27, 1)
-#define GET_RX_DESC_MD(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 26, 1)
-#define GET_RX_DESC_PWR(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 25, 1)
-#define GET_RX_DESC_PAM(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 24, 1)
-#define GET_RX_DESC_CHK_VLD(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 23, 1)
-#define GET_RX_DESC_RX_IS_TCP_UDP(__rx_desc)                                   \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x04, 22, 1)
-#define GET_RX_DESC_RX_IPV(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 21, 1)
-#define GET_RX_DESC_CHKERR(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 20, 1)
-#define GET_RX_DESC_PAGGR(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 15, 1)
-#define GET_RX_DESC_RXID_MATCH(__rx_desc)                                      \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x04, 14, 1)
-#define GET_RX_DESC_AMSDU(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 13, 1)
-#define GET_RX_DESC_MACID_VLD(__rx_desc)                                       \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x04, 12, 1)
-#define GET_RX_DESC_TID(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 8, 4)
-
-#define GET_RX_DESC_EXT_SECTYPE(__rx_desc)                                     \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x04, 7, 1)
-
-#define GET_RX_DESC_MACID(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x04, 0, 7)
-
-/*RXDESC_WORD2*/
-
-#define GET_RX_DESC_FCS_OK(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x08, 31, 1)
-
-#define GET_RX_DESC_PPDU_CNT(__rx_desc)                                        \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x08, 29, 2)
-
-#define GET_RX_DESC_C2H(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x08, 28, 1)
-#define GET_RX_DESC_HWRSVD(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x08, 24, 4)
-#define GET_RX_DESC_WLANHD_IV_LEN(__rx_desc)                                   \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x08, 18, 6)
-#define GET_RX_DESC_RX_IS_QOS(__rx_desc)                                       \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x08, 16, 1)
-#define GET_RX_DESC_FRAG(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x08, 12, 4)
-#define GET_RX_DESC_SEQ(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x08, 0, 12)
-
-/*RXDESC_WORD3*/
-
-#define GET_RX_DESC_MAGIC_WAKE(__rx_desc)                                      \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 31, 1)
-#define GET_RX_DESC_UNICAST_WAKE(__rx_desc)                                    \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 30, 1)
-#define GET_RX_DESC_PATTERN_MATCH(__rx_desc)                                   \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 29, 1)
-
-#define GET_RX_DESC_RXPAYLOAD_MATCH(__rx_desc)                                 \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 28, 1)
-#define GET_RX_DESC_RXPAYLOAD_ID(__rx_desc)                                    \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 24, 4)
-
-#define GET_RX_DESC_DMA_AGG_NUM(__rx_desc)                                     \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 16, 8)
-#define GET_RX_DESC_BSSID_FIT_1_0(__rx_desc)                                   \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 12, 2)
-#define GET_RX_DESC_EOSP(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 11, 1)
-#define GET_RX_DESC_HTC(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 10, 1)
-
-#define GET_RX_DESC_BSSID_FIT_4_2(__rx_desc)                                   \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 7, 3)
-
-#define GET_RX_DESC_RX_RATE(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x0C, 0, 7)
-
-/*RXDESC_WORD4*/
-
-#define GET_RX_DESC_A1_FIT(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x10, 24, 5)
-
-#define GET_RX_DESC_MACID_RPT_BUFF(__rx_desc)                                  \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x10, 17, 7)
-#define GET_RX_DESC_RX_PRE_NDP_VLD(__rx_desc)                                  \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x10, 16, 1)
-#define GET_RX_DESC_RX_SCRAMBLER(__rx_desc)                                    \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x10, 9, 7)
-#define GET_RX_DESC_RX_EOF(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x10, 8, 1)
-
-#define GET_RX_DESC_PATTERN_IDX(__rx_desc)                                     \
-	LE_BITS_TO_4BYTE(__rx_desc + 0x10, 0, 8)
-
-/*RXDESC_WORD5*/
-
-#define GET_RX_DESC_TSFL(__rx_desc) LE_BITS_TO_4BYTE(__rx_desc + 0x14, 0, 32)
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_sdio_reg.h b/drivers/staging/rtlwifi/halmac/halmac_sdio_reg.h
deleted file mode 100644
index 7760a6b..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_sdio_reg.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __HALMAC_SDIO_REG_H__
-#define __HALMAC_SDIO_REG_H__
-
-/* SDIO CMD address mapping */
-
-#define HALMAC_SDIO_4BYTE_LEN_MASK 0x1FFF
-#define HALMAC_SDIO_LOCAL_MSK 0x0FFF
-#define HALMAC_WLAN_MAC_REG_MSK 0xFFFF
-#define HALMAC_WLAN_IOREG_MSK 0xFFFF
-
-/* Sdio address for SDIO Local Reg, TRX FIFO, MAC Reg */
-enum halmac_sdio_cmd_addr {
-	HALMAC_SDIO_CMD_ADDR_SDIO_REG = 0,
-	HALMAC_SDIO_CMD_ADDR_MAC_REG = 8,
-	HALMAC_SDIO_CMD_ADDR_TXFF_HIGH = 4,
-	HALMAC_SDIO_CMD_ADDR_TXFF_LOW = 6,
-	HALMAC_SDIO_CMD_ADDR_TXFF_NORMAL = 5,
-	HALMAC_SDIO_CMD_ADDR_TXFF_EXTRA = 7,
-	HALMAC_SDIO_CMD_ADDR_RXFF = 7,
-};
-
-/* IO Bus domain address mapping */
-#define SDIO_LOCAL_OFFSET 0x10250000
-#define WLAN_IOREG_OFFSET 0x10260000
-#define FW_FIFO_OFFSET 0x10270000
-#define TX_HIQ_OFFSET 0x10310000
-#define TX_MIQ_OFFSET 0x10320000
-#define TX_LOQ_OFFSET 0x10330000
-#define TX_EXQ_OFFSET 0x10350000
-#define RX_RXOFF_OFFSET 0x10340000
-
-/* Get TX WLAN FIFO information in CMD53 addr  */
-#define GET_WLAN_TXFF_DEVICE_ID(__cmd53_addr)                                  \
-	LE_BITS_TO_4BYTE((u32 *)__cmd53_addr, 13, 4)
-#define GET_WLAN_TXFF_PKT_SIZE(__cmd53_addr)                                   \
-	(LE_BITS_TO_4BYTE((u32 *)__cmd53_addr, 0, 13) << 2)
-
-#endif /* __HALMAC_SDIO_REG_H__ */
diff --git a/drivers/staging/rtlwifi/halmac/halmac_tx_bd_chip.h b/drivers/staging/rtlwifi/halmac/halmac_tx_bd_chip.h
deleted file mode 100644
index e1cfcfd..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_tx_bd_chip.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_TX_BD_CHIP_H_
-#define _HALMAC_TX_BD_CHIP_H_
-
-/*TXBD_DW0*/
-
-#define SET_TX_BD_OWN_8822B(__tx_bd, __value) SET_TX_BD_OWN(__tx_bd, __value)
-#define GET_TX_BD_OWN_8822B(__tx_bd) GET_TX_BD_OWN(__tx_bd)
-#define SET_TX_BD_PSB_8822B(__tx_bd, __value) SET_TX_BD_PSB(__tx_bd, __value)
-#define GET_TX_BD_PSB_8822B(__tx_bd) GET_TX_BD_PSB(__tx_bd)
-#define SET_TX_BD_TX_BUFF_SIZE0_8822B(__tx_bd, __value)                        \
-	SET_TX_BD_TX_BUFF_SIZE0(__tx_bd, __value)
-#define GET_TX_BD_TX_BUFF_SIZE0_8822B(__tx_bd) GET_TX_BD_TX_BUFF_SIZE0(__tx_bd)
-
-/*TXBD_DW1*/
-
-#define SET_TX_BD_PHYSICAL_ADDR0_LOW_8822B(__tx_bd, __value)                   \
-	SET_TX_BD_PHYSICAL_ADDR0_LOW(__tx_bd, __value)
-#define GET_TX_BD_PHYSICAL_ADDR0_LOW_8822B(__tx_bd)                            \
-	GET_TX_BD_PHYSICAL_ADDR0_LOW(__tx_bd)
-
-/*TXBD_DW2*/
-
-#define SET_TX_BD_PHYSICAL_ADDR0_HIGH_8822B(__tx_bd, __value)                  \
-	SET_TX_BD_PHYSICAL_ADDR0_HIGH(__tx_bd, __value)
-#define GET_TX_BD_PHYSICAL_ADDR0_HIGH_8822B(__tx_bd)                           \
-	GET_TX_BD_PHYSICAL_ADDR0_HIGH(__tx_bd)
-
-/*TXBD_DW4*/
-
-#define SET_TX_BD_A1_8822B(__tx_bd, __value) SET_TX_BD_A1(__tx_bd, __value)
-#define GET_TX_BD_A1_8822B(__tx_bd) GET_TX_BD_A1(__tx_bd)
-#define SET_TX_BD_TX_BUFF_SIZE1_8822B(__tx_bd, __value)                        \
-	SET_TX_BD_TX_BUFF_SIZE1(__tx_bd, __value)
-#define GET_TX_BD_TX_BUFF_SIZE1_8822B(__tx_bd) GET_TX_BD_TX_BUFF_SIZE1(__tx_bd)
-
-/*TXBD_DW5*/
-
-#define SET_TX_BD_PHYSICAL_ADDR1_LOW_8822B(__tx_bd, __value)                   \
-	SET_TX_BD_PHYSICAL_ADDR1_LOW(__tx_bd, __value)
-#define GET_TX_BD_PHYSICAL_ADDR1_LOW_8822B(__tx_bd)                            \
-	GET_TX_BD_PHYSICAL_ADDR1_LOW(__tx_bd)
-
-/*TXBD_DW6*/
-
-#define SET_TX_BD_PHYSICAL_ADDR1_HIGH_8822B(__tx_bd, __value)                  \
-	SET_TX_BD_PHYSICAL_ADDR1_HIGH(__tx_bd, __value)
-#define GET_TX_BD_PHYSICAL_ADDR1_HIGH_8822B(__tx_bd)                           \
-	GET_TX_BD_PHYSICAL_ADDR1_HIGH(__tx_bd)
-
-/*TXBD_DW8*/
-
-#define SET_TX_BD_A2_8822B(__tx_bd, __value) SET_TX_BD_A2(__tx_bd, __value)
-#define GET_TX_BD_A2_8822B(__tx_bd) GET_TX_BD_A2(__tx_bd)
-#define SET_TX_BD_TX_BUFF_SIZE2_8822B(__tx_bd, __value)                        \
-	SET_TX_BD_TX_BUFF_SIZE2(__tx_bd, __value)
-#define GET_TX_BD_TX_BUFF_SIZE2_8822B(__tx_bd) GET_TX_BD_TX_BUFF_SIZE2(__tx_bd)
-
-/*TXBD_DW9*/
-
-#define SET_TX_BD_PHYSICAL_ADDR2_LOW_8822B(__tx_bd, __value)                   \
-	SET_TX_BD_PHYSICAL_ADDR2_LOW(__tx_bd, __value)
-#define GET_TX_BD_PHYSICAL_ADDR2_LOW_8822B(__tx_bd)                            \
-	GET_TX_BD_PHYSICAL_ADDR2_LOW(__tx_bd)
-
-/*TXBD_DW10*/
-
-#define SET_TX_BD_PHYSICAL_ADDR2_HIGH_8822B(__tx_bd, __value)                  \
-	SET_TX_BD_PHYSICAL_ADDR2_HIGH(__tx_bd, __value)
-#define GET_TX_BD_PHYSICAL_ADDR2_HIGH_8822B(__tx_bd)                           \
-	GET_TX_BD_PHYSICAL_ADDR2_HIGH(__tx_bd)
-
-/*TXBD_DW12*/
-
-#define SET_TX_BD_A3_8822B(__tx_bd, __value) SET_TX_BD_A3(__tx_bd, __value)
-#define GET_TX_BD_A3_8822B(__tx_bd) GET_TX_BD_A3(__tx_bd)
-#define SET_TX_BD_TX_BUFF_SIZE3_8822B(__tx_bd, __value)                        \
-	SET_TX_BD_TX_BUFF_SIZE3(__tx_bd, __value)
-#define GET_TX_BD_TX_BUFF_SIZE3_8822B(__tx_bd) GET_TX_BD_TX_BUFF_SIZE3(__tx_bd)
-
-/*TXBD_DW13*/
-
-#define SET_TX_BD_PHYSICAL_ADDR3_LOW_8822B(__tx_bd, __value)                   \
-	SET_TX_BD_PHYSICAL_ADDR3_LOW(__tx_bd, __value)
-#define GET_TX_BD_PHYSICAL_ADDR3_LOW_8822B(__tx_bd)                            \
-	GET_TX_BD_PHYSICAL_ADDR3_LOW(__tx_bd)
-
-/*TXBD_DW14*/
-
-#define SET_TX_BD_PHYSICAL_ADDR3_HIGH_8822B(__tx_bd, __value)                  \
-	SET_TX_BD_PHYSICAL_ADDR3_HIGH(__tx_bd, __value)
-#define GET_TX_BD_PHYSICAL_ADDR3_HIGH_8822B(__tx_bd)                           \
-	GET_TX_BD_PHYSICAL_ADDR3_HIGH(__tx_bd)
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_tx_bd_nic.h b/drivers/staging/rtlwifi/halmac/halmac_tx_bd_nic.h
deleted file mode 100644
index fd3f80b..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_tx_bd_nic.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_TX_BD_NIC_H_
-#define _HALMAC_TX_BD_NIC_H_
-
-/*TXBD_DW0*/
-
-#define SET_TX_BD_OWN(__tx_bd, __value)                                        \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x00, 31, 1, __value)
-#define GET_TX_BD_OWN(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x00, 31, 1)
-#define SET_TX_BD_PSB(__tx_bd, __value)                                        \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x00, 16, 8, __value)
-#define GET_TX_BD_PSB(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x00, 16, 8)
-#define SET_TX_BD_TX_BUFF_SIZE0(__tx_bd, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x00, 0, 16, __value)
-#define GET_TX_BD_TX_BUFF_SIZE0(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x00, 0, 16)
-
-/*TXBD_DW1*/
-
-#define SET_TX_BD_PHYSICAL_ADDR0_LOW(__tx_bd, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x04, 0, 32, __value)
-#define GET_TX_BD_PHYSICAL_ADDR0_LOW(__tx_bd)                                  \
-	LE_BITS_TO_4BYTE(__tx_bd + 0x04, 0, 32)
-
-/*TXBD_DW2*/
-
-#define SET_TX_BD_PHYSICAL_ADDR0_HIGH(__tx_bd, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x08, 0, 32, __value)
-#define GET_TX_BD_PHYSICAL_ADDR0_HIGH(__tx_bd)                                 \
-	LE_BITS_TO_4BYTE(__tx_bd + 0x08, 0, 32)
-
-/*TXBD_DW4*/
-
-#define SET_TX_BD_A1(__tx_bd, __value)                                         \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x10, 31, 1, __value)
-#define GET_TX_BD_A1(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x10, 31, 1)
-#define SET_TX_BD_TX_BUFF_SIZE1(__tx_bd, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x10, 0, 16, __value)
-#define GET_TX_BD_TX_BUFF_SIZE1(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x10, 0, 16)
-
-/*TXBD_DW5*/
-
-#define SET_TX_BD_PHYSICAL_ADDR1_LOW(__tx_bd, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x14, 0, 32, __value)
-#define GET_TX_BD_PHYSICAL_ADDR1_LOW(__tx_bd)                                  \
-	LE_BITS_TO_4BYTE(__tx_bd + 0x14, 0, 32)
-
-/*TXBD_DW6*/
-
-#define SET_TX_BD_PHYSICAL_ADDR1_HIGH(__tx_bd, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x18, 0, 32, __value)
-#define GET_TX_BD_PHYSICAL_ADDR1_HIGH(__tx_bd)                                 \
-	LE_BITS_TO_4BYTE(__tx_bd + 0x18, 0, 32)
-
-/*TXBD_DW8*/
-
-#define SET_TX_BD_A2(__tx_bd, __value)                                         \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x20, 31, 1, __value)
-#define GET_TX_BD_A2(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x20, 31, 1)
-#define SET_TX_BD_TX_BUFF_SIZE2(__tx_bd, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x20, 0, 16, __value)
-#define GET_TX_BD_TX_BUFF_SIZE2(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x20, 0, 16)
-
-/*TXBD_DW9*/
-
-#define SET_TX_BD_PHYSICAL_ADDR2_LOW(__tx_bd, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x24, 0, 32, __value)
-#define GET_TX_BD_PHYSICAL_ADDR2_LOW(__tx_bd)                                  \
-	LE_BITS_TO_4BYTE(__tx_bd + 0x24, 0, 32)
-
-/*TXBD_DW10*/
-
-#define SET_TX_BD_PHYSICAL_ADDR2_HIGH(__tx_bd, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x28, 0, 32, __value)
-#define GET_TX_BD_PHYSICAL_ADDR2_HIGH(__tx_bd)                                 \
-	LE_BITS_TO_4BYTE(__tx_bd + 0x28, 0, 32)
-
-/*TXBD_DW12*/
-
-#define SET_TX_BD_A3(__tx_bd, __value)                                         \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x30, 31, 1, __value)
-#define GET_TX_BD_A3(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x30, 31, 1)
-#define SET_TX_BD_TX_BUFF_SIZE3(__tx_bd, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x30, 0, 16, __value)
-#define GET_TX_BD_TX_BUFF_SIZE3(__tx_bd) LE_BITS_TO_4BYTE(__tx_bd + 0x30, 0, 16)
-
-/*TXBD_DW13*/
-
-#define SET_TX_BD_PHYSICAL_ADDR3_LOW(__tx_bd, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x34, 0, 32, __value)
-#define GET_TX_BD_PHYSICAL_ADDR3_LOW(__tx_bd)                                  \
-	LE_BITS_TO_4BYTE(__tx_bd + 0x34, 0, 32)
-
-/*TXBD_DW14*/
-
-#define SET_TX_BD_PHYSICAL_ADDR3_HIGH(__tx_bd, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__tx_bd + 0x38, 0, 32, __value)
-#define GET_TX_BD_PHYSICAL_ADDR3_HIGH(__tx_bd)                                 \
-	LE_BITS_TO_4BYTE(__tx_bd + 0x38, 0, 32)
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_tx_desc_chip.h b/drivers/staging/rtlwifi/halmac/halmac_tx_desc_chip.h
deleted file mode 100644
index ca32f1b..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_tx_desc_chip.h
+++ /dev/null
@@ -1,433 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_TX_DESC_CHIP_H_
-#define _HALMAC_TX_DESC_CHIP_H_
-
-/*TXDESC_WORD0*/
-
-#define SET_TX_DESC_DISQSELSEQ_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_DISQSELSEQ(__tx_desc, __value)
-#define GET_TX_DESC_DISQSELSEQ_8822B(__tx_desc)                                \
-	GET_TX_DESC_DISQSELSEQ(__tx_desc)
-#define SET_TX_DESC_GF_8822B(__tx_desc, __value)                               \
-	SET_TX_DESC_GF(__tx_desc, __value)
-#define GET_TX_DESC_GF_8822B(__tx_desc) GET_TX_DESC_GF(__tx_desc)
-#define SET_TX_DESC_NO_ACM_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_NO_ACM(__tx_desc, __value)
-#define GET_TX_DESC_NO_ACM_8822B(__tx_desc) GET_TX_DESC_NO_ACM(__tx_desc)
-#define SET_TX_DESC_BCNPKT_TSF_CTRL_8822B(__tx_desc, __value)                  \
-	SET_TX_DESC_BCNPKT_TSF_CTRL(__tx_desc, __value)
-#define GET_TX_DESC_BCNPKT_TSF_CTRL_8822B(__tx_desc)                           \
-	GET_TX_DESC_BCNPKT_TSF_CTRL(__tx_desc)
-#define SET_TX_DESC_AMSDU_PAD_EN_8822B(__tx_desc, __value)                     \
-	SET_TX_DESC_AMSDU_PAD_EN(__tx_desc, __value)
-#define GET_TX_DESC_AMSDU_PAD_EN_8822B(__tx_desc)                              \
-	GET_TX_DESC_AMSDU_PAD_EN(__tx_desc)
-#define SET_TX_DESC_LS_8822B(__tx_desc, __value)                               \
-	SET_TX_DESC_LS(__tx_desc, __value)
-#define GET_TX_DESC_LS_8822B(__tx_desc) GET_TX_DESC_LS(__tx_desc)
-#define SET_TX_DESC_HTC_8822B(__tx_desc, __value)                              \
-	SET_TX_DESC_HTC(__tx_desc, __value)
-#define GET_TX_DESC_HTC_8822B(__tx_desc) GET_TX_DESC_HTC(__tx_desc)
-#define SET_TX_DESC_BMC_8822B(__tx_desc, __value)                              \
-	SET_TX_DESC_BMC(__tx_desc, __value)
-#define GET_TX_DESC_BMC_8822B(__tx_desc) GET_TX_DESC_BMC(__tx_desc)
-#define SET_TX_DESC_OFFSET_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_OFFSET(__tx_desc, __value)
-#define GET_TX_DESC_OFFSET_8822B(__tx_desc) GET_TX_DESC_OFFSET(__tx_desc)
-#define SET_TX_DESC_TXPKTSIZE_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_TXPKTSIZE(__tx_desc, __value)
-#define GET_TX_DESC_TXPKTSIZE_8822B(__tx_desc) GET_TX_DESC_TXPKTSIZE(__tx_desc)
-
-/*TXDESC_WORD1*/
-
-#define SET_TX_DESC_MOREDATA_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_MOREDATA(__tx_desc, __value)
-#define GET_TX_DESC_MOREDATA_8822B(__tx_desc) GET_TX_DESC_MOREDATA(__tx_desc)
-#define SET_TX_DESC_PKT_OFFSET_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_PKT_OFFSET(__tx_desc, __value)
-#define GET_TX_DESC_PKT_OFFSET_8822B(__tx_desc)                                \
-	GET_TX_DESC_PKT_OFFSET(__tx_desc)
-#define SET_TX_DESC_SEC_TYPE_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_SEC_TYPE(__tx_desc, __value)
-#define GET_TX_DESC_SEC_TYPE_8822B(__tx_desc) GET_TX_DESC_SEC_TYPE(__tx_desc)
-#define SET_TX_DESC_EN_DESC_ID_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_EN_DESC_ID(__tx_desc, __value)
-#define GET_TX_DESC_EN_DESC_ID_8822B(__tx_desc)                                \
-	GET_TX_DESC_EN_DESC_ID(__tx_desc)
-#define SET_TX_DESC_RATE_ID_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_RATE_ID(__tx_desc, __value)
-#define GET_TX_DESC_RATE_ID_8822B(__tx_desc) GET_TX_DESC_RATE_ID(__tx_desc)
-#define SET_TX_DESC_PIFS_8822B(__tx_desc, __value)                             \
-	SET_TX_DESC_PIFS(__tx_desc, __value)
-#define GET_TX_DESC_PIFS_8822B(__tx_desc) GET_TX_DESC_PIFS(__tx_desc)
-#define SET_TX_DESC_LSIG_TXOP_EN_8822B(__tx_desc, __value)                     \
-	SET_TX_DESC_LSIG_TXOP_EN(__tx_desc, __value)
-#define GET_TX_DESC_LSIG_TXOP_EN_8822B(__tx_desc)                              \
-	GET_TX_DESC_LSIG_TXOP_EN(__tx_desc)
-#define SET_TX_DESC_RD_NAV_EXT_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_RD_NAV_EXT(__tx_desc, __value)
-#define GET_TX_DESC_RD_NAV_EXT_8822B(__tx_desc)                                \
-	GET_TX_DESC_RD_NAV_EXT(__tx_desc)
-#define SET_TX_DESC_QSEL_8822B(__tx_desc, __value)                             \
-	SET_TX_DESC_QSEL(__tx_desc, __value)
-#define GET_TX_DESC_QSEL_8822B(__tx_desc) GET_TX_DESC_QSEL(__tx_desc)
-#define SET_TX_DESC_MACID_8822B(__tx_desc, __value)                            \
-	SET_TX_DESC_MACID(__tx_desc, __value)
-#define GET_TX_DESC_MACID_8822B(__tx_desc) GET_TX_DESC_MACID(__tx_desc)
-
-/*TXDESC_WORD2*/
-
-#define SET_TX_DESC_HW_AES_IV_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_HW_AES_IV(__tx_desc, __value)
-#define GET_TX_DESC_HW_AES_IV_8822B(__tx_desc) GET_TX_DESC_HW_AES_IV(__tx_desc)
-#define SET_TX_DESC_FTM_EN_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_FTM_EN(__tx_desc, __value)
-#define GET_TX_DESC_FTM_EN_8822B(__tx_desc) GET_TX_DESC_FTM_EN(__tx_desc)
-#define SET_TX_DESC_G_ID_8822B(__tx_desc, __value)                             \
-	SET_TX_DESC_G_ID(__tx_desc, __value)
-#define GET_TX_DESC_G_ID_8822B(__tx_desc) GET_TX_DESC_G_ID(__tx_desc)
-#define SET_TX_DESC_BT_NULL_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_BT_NULL(__tx_desc, __value)
-#define GET_TX_DESC_BT_NULL_8822B(__tx_desc) GET_TX_DESC_BT_NULL(__tx_desc)
-#define SET_TX_DESC_AMPDU_DENSITY_8822B(__tx_desc, __value)                    \
-	SET_TX_DESC_AMPDU_DENSITY(__tx_desc, __value)
-#define GET_TX_DESC_AMPDU_DENSITY_8822B(__tx_desc)                             \
-	GET_TX_DESC_AMPDU_DENSITY(__tx_desc)
-#define SET_TX_DESC_SPE_RPT_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_SPE_RPT(__tx_desc, __value)
-#define GET_TX_DESC_SPE_RPT_8822B(__tx_desc) GET_TX_DESC_SPE_RPT(__tx_desc)
-#define SET_TX_DESC_RAW_8822B(__tx_desc, __value)                              \
-	SET_TX_DESC_RAW(__tx_desc, __value)
-#define GET_TX_DESC_RAW_8822B(__tx_desc) GET_TX_DESC_RAW(__tx_desc)
-#define SET_TX_DESC_MOREFRAG_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_MOREFRAG(__tx_desc, __value)
-#define GET_TX_DESC_MOREFRAG_8822B(__tx_desc) GET_TX_DESC_MOREFRAG(__tx_desc)
-#define SET_TX_DESC_BK_8822B(__tx_desc, __value)                               \
-	SET_TX_DESC_BK(__tx_desc, __value)
-#define GET_TX_DESC_BK_8822B(__tx_desc) GET_TX_DESC_BK(__tx_desc)
-#define SET_TX_DESC_NULL_1_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_NULL_1(__tx_desc, __value)
-#define GET_TX_DESC_NULL_1_8822B(__tx_desc) GET_TX_DESC_NULL_1(__tx_desc)
-#define SET_TX_DESC_NULL_0_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_NULL_0(__tx_desc, __value)
-#define GET_TX_DESC_NULL_0_8822B(__tx_desc) GET_TX_DESC_NULL_0(__tx_desc)
-#define SET_TX_DESC_RDG_EN_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_RDG_EN(__tx_desc, __value)
-#define GET_TX_DESC_RDG_EN_8822B(__tx_desc) GET_TX_DESC_RDG_EN(__tx_desc)
-#define SET_TX_DESC_AGG_EN_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_AGG_EN(__tx_desc, __value)
-#define GET_TX_DESC_AGG_EN_8822B(__tx_desc) GET_TX_DESC_AGG_EN(__tx_desc)
-#define SET_TX_DESC_CCA_RTS_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_CCA_RTS(__tx_desc, __value)
-#define GET_TX_DESC_CCA_RTS_8822B(__tx_desc) GET_TX_DESC_CCA_RTS(__tx_desc)
-#define SET_TX_DESC_TRI_FRAME_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_TRI_FRAME(__tx_desc, __value)
-#define GET_TX_DESC_TRI_FRAME_8822B(__tx_desc) GET_TX_DESC_TRI_FRAME(__tx_desc)
-#define SET_TX_DESC_P_AID_8822B(__tx_desc, __value)                            \
-	SET_TX_DESC_P_AID(__tx_desc, __value)
-#define GET_TX_DESC_P_AID_8822B(__tx_desc) GET_TX_DESC_P_AID(__tx_desc)
-
-/*TXDESC_WORD3*/
-
-#define SET_TX_DESC_AMPDU_MAX_TIME_8822B(__tx_desc, __value)                   \
-	SET_TX_DESC_AMPDU_MAX_TIME(__tx_desc, __value)
-#define GET_TX_DESC_AMPDU_MAX_TIME_8822B(__tx_desc)                            \
-	GET_TX_DESC_AMPDU_MAX_TIME(__tx_desc)
-#define SET_TX_DESC_NDPA_8822B(__tx_desc, __value)                             \
-	SET_TX_DESC_NDPA(__tx_desc, __value)
-#define GET_TX_DESC_NDPA_8822B(__tx_desc) GET_TX_DESC_NDPA(__tx_desc)
-#define SET_TX_DESC_MAX_AGG_NUM_8822B(__tx_desc, __value)                      \
-	SET_TX_DESC_MAX_AGG_NUM(__tx_desc, __value)
-#define GET_TX_DESC_MAX_AGG_NUM_8822B(__tx_desc)                               \
-	GET_TX_DESC_MAX_AGG_NUM(__tx_desc)
-#define SET_TX_DESC_USE_MAX_TIME_EN_8822B(__tx_desc, __value)                  \
-	SET_TX_DESC_USE_MAX_TIME_EN(__tx_desc, __value)
-#define GET_TX_DESC_USE_MAX_TIME_EN_8822B(__tx_desc)                           \
-	GET_TX_DESC_USE_MAX_TIME_EN(__tx_desc)
-#define SET_TX_DESC_NAVUSEHDR_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_NAVUSEHDR(__tx_desc, __value)
-#define GET_TX_DESC_NAVUSEHDR_8822B(__tx_desc) GET_TX_DESC_NAVUSEHDR(__tx_desc)
-#define SET_TX_DESC_CHK_EN_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_CHK_EN(__tx_desc, __value)
-#define GET_TX_DESC_CHK_EN_8822B(__tx_desc) GET_TX_DESC_CHK_EN(__tx_desc)
-#define SET_TX_DESC_HW_RTS_EN_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_HW_RTS_EN(__tx_desc, __value)
-#define GET_TX_DESC_HW_RTS_EN_8822B(__tx_desc) GET_TX_DESC_HW_RTS_EN(__tx_desc)
-#define SET_TX_DESC_RTSEN_8822B(__tx_desc, __value)                            \
-	SET_TX_DESC_RTSEN(__tx_desc, __value)
-#define GET_TX_DESC_RTSEN_8822B(__tx_desc) GET_TX_DESC_RTSEN(__tx_desc)
-#define SET_TX_DESC_CTS2SELF_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_CTS2SELF(__tx_desc, __value)
-#define GET_TX_DESC_CTS2SELF_8822B(__tx_desc) GET_TX_DESC_CTS2SELF(__tx_desc)
-#define SET_TX_DESC_DISDATAFB_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_DISDATAFB(__tx_desc, __value)
-#define GET_TX_DESC_DISDATAFB_8822B(__tx_desc) GET_TX_DESC_DISDATAFB(__tx_desc)
-#define SET_TX_DESC_DISRTSFB_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_DISRTSFB(__tx_desc, __value)
-#define GET_TX_DESC_DISRTSFB_8822B(__tx_desc) GET_TX_DESC_DISRTSFB(__tx_desc)
-#define SET_TX_DESC_USE_RATE_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_USE_RATE(__tx_desc, __value)
-#define GET_TX_DESC_USE_RATE_8822B(__tx_desc) GET_TX_DESC_USE_RATE(__tx_desc)
-#define SET_TX_DESC_HW_SSN_SEL_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_HW_SSN_SEL(__tx_desc, __value)
-#define GET_TX_DESC_HW_SSN_SEL_8822B(__tx_desc)                                \
-	GET_TX_DESC_HW_SSN_SEL(__tx_desc)
-#define SET_TX_DESC_WHEADER_LEN_8822B(__tx_desc, __value)                      \
-	SET_TX_DESC_WHEADER_LEN(__tx_desc, __value)
-#define GET_TX_DESC_WHEADER_LEN_8822B(__tx_desc)                               \
-	GET_TX_DESC_WHEADER_LEN(__tx_desc)
-
-/*TXDESC_WORD4*/
-
-#define SET_TX_DESC_PCTS_MASK_IDX_8822B(__tx_desc, __value)                    \
-	SET_TX_DESC_PCTS_MASK_IDX(__tx_desc, __value)
-#define GET_TX_DESC_PCTS_MASK_IDX_8822B(__tx_desc)                             \
-	GET_TX_DESC_PCTS_MASK_IDX(__tx_desc)
-#define SET_TX_DESC_PCTS_EN_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_PCTS_EN(__tx_desc, __value)
-#define GET_TX_DESC_PCTS_EN_8822B(__tx_desc) GET_TX_DESC_PCTS_EN(__tx_desc)
-#define SET_TX_DESC_RTSRATE_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_RTSRATE(__tx_desc, __value)
-#define GET_TX_DESC_RTSRATE_8822B(__tx_desc) GET_TX_DESC_RTSRATE(__tx_desc)
-#define SET_TX_DESC_RTS_DATA_RTY_LMT_8822B(__tx_desc, __value)                 \
-	SET_TX_DESC_RTS_DATA_RTY_LMT(__tx_desc, __value)
-#define GET_TX_DESC_RTS_DATA_RTY_LMT_8822B(__tx_desc)                          \
-	GET_TX_DESC_RTS_DATA_RTY_LMT(__tx_desc)
-#define SET_TX_DESC_RTY_LMT_EN_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_RTY_LMT_EN(__tx_desc, __value)
-#define GET_TX_DESC_RTY_LMT_EN_8822B(__tx_desc)                                \
-	GET_TX_DESC_RTY_LMT_EN(__tx_desc)
-#define SET_TX_DESC_RTS_RTY_LOWEST_RATE_8822B(__tx_desc, __value)              \
-	SET_TX_DESC_RTS_RTY_LOWEST_RATE(__tx_desc, __value)
-#define GET_TX_DESC_RTS_RTY_LOWEST_RATE_8822B(__tx_desc)                       \
-	GET_TX_DESC_RTS_RTY_LOWEST_RATE(__tx_desc)
-#define SET_TX_DESC_DATA_RTY_LOWEST_RATE_8822B(__tx_desc, __value)             \
-	SET_TX_DESC_DATA_RTY_LOWEST_RATE(__tx_desc, __value)
-#define GET_TX_DESC_DATA_RTY_LOWEST_RATE_8822B(__tx_desc)                      \
-	GET_TX_DESC_DATA_RTY_LOWEST_RATE(__tx_desc)
-#define SET_TX_DESC_TRY_RATE_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_TRY_RATE(__tx_desc, __value)
-#define GET_TX_DESC_TRY_RATE_8822B(__tx_desc) GET_TX_DESC_TRY_RATE(__tx_desc)
-#define SET_TX_DESC_DATARATE_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_DATARATE(__tx_desc, __value)
-#define GET_TX_DESC_DATARATE_8822B(__tx_desc) GET_TX_DESC_DATARATE(__tx_desc)
-
-/*TXDESC_WORD5*/
-
-#define SET_TX_DESC_POLLUTED_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_POLLUTED(__tx_desc, __value)
-#define GET_TX_DESC_POLLUTED_8822B(__tx_desc) GET_TX_DESC_POLLUTED(__tx_desc)
-#define SET_TX_DESC_TXPWR_OFSET_8822B(__tx_desc, __value)                      \
-	SET_TX_DESC_TXPWR_OFSET(__tx_desc, __value)
-#define GET_TX_DESC_TXPWR_OFSET_8822B(__tx_desc)                               \
-	GET_TX_DESC_TXPWR_OFSET(__tx_desc)
-#define SET_TX_DESC_TX_ANT_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_TX_ANT(__tx_desc, __value)
-#define GET_TX_DESC_TX_ANT_8822B(__tx_desc) GET_TX_DESC_TX_ANT(__tx_desc)
-#define SET_TX_DESC_PORT_ID_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_PORT_ID(__tx_desc, __value)
-#define GET_TX_DESC_PORT_ID_8822B(__tx_desc) GET_TX_DESC_PORT_ID(__tx_desc)
-#define SET_TX_DESC_MULTIPLE_PORT_8822B(__tx_desc, __value)                    \
-	SET_TX_DESC_MULTIPLE_PORT(__tx_desc, __value)
-#define GET_TX_DESC_MULTIPLE_PORT_8822B(__tx_desc)                             \
-	GET_TX_DESC_MULTIPLE_PORT(__tx_desc)
-#define SET_TX_DESC_SIGNALING_TAPKT_EN_8822B(__tx_desc, __value)               \
-	SET_TX_DESC_SIGNALING_TAPKT_EN(__tx_desc, __value)
-#define GET_TX_DESC_SIGNALING_TAPKT_EN_8822B(__tx_desc)                        \
-	GET_TX_DESC_SIGNALING_TAPKT_EN(__tx_desc)
-#define SET_TX_DESC_RTS_SC_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_RTS_SC(__tx_desc, __value)
-#define GET_TX_DESC_RTS_SC_8822B(__tx_desc) GET_TX_DESC_RTS_SC(__tx_desc)
-#define SET_TX_DESC_RTS_SHORT_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_RTS_SHORT(__tx_desc, __value)
-#define GET_TX_DESC_RTS_SHORT_8822B(__tx_desc) GET_TX_DESC_RTS_SHORT(__tx_desc)
-#define SET_TX_DESC_VCS_STBC_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_VCS_STBC(__tx_desc, __value)
-#define GET_TX_DESC_VCS_STBC_8822B(__tx_desc) GET_TX_DESC_VCS_STBC(__tx_desc)
-#define SET_TX_DESC_DATA_STBC_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_DATA_STBC(__tx_desc, __value)
-#define GET_TX_DESC_DATA_STBC_8822B(__tx_desc) GET_TX_DESC_DATA_STBC(__tx_desc)
-#define SET_TX_DESC_DATA_LDPC_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_DATA_LDPC(__tx_desc, __value)
-#define GET_TX_DESC_DATA_LDPC_8822B(__tx_desc) GET_TX_DESC_DATA_LDPC(__tx_desc)
-#define SET_TX_DESC_DATA_BW_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_DATA_BW(__tx_desc, __value)
-#define GET_TX_DESC_DATA_BW_8822B(__tx_desc) GET_TX_DESC_DATA_BW(__tx_desc)
-#define SET_TX_DESC_DATA_SHORT_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_DATA_SHORT(__tx_desc, __value)
-#define GET_TX_DESC_DATA_SHORT_8822B(__tx_desc)                                \
-	GET_TX_DESC_DATA_SHORT(__tx_desc)
-#define SET_TX_DESC_DATA_SC_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_DATA_SC(__tx_desc, __value)
-#define GET_TX_DESC_DATA_SC_8822B(__tx_desc) GET_TX_DESC_DATA_SC(__tx_desc)
-
-/*TXDESC_WORD6*/
-
-#define SET_TX_DESC_ANTSEL_D_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_ANTSEL_D(__tx_desc, __value)
-#define GET_TX_DESC_ANTSEL_D_8822B(__tx_desc) GET_TX_DESC_ANTSEL_D(__tx_desc)
-#define SET_TX_DESC_ANT_MAPD_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_ANT_MAPD(__tx_desc, __value)
-#define GET_TX_DESC_ANT_MAPD_8822B(__tx_desc) GET_TX_DESC_ANT_MAPD(__tx_desc)
-#define SET_TX_DESC_ANT_MAPC_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_ANT_MAPC(__tx_desc, __value)
-#define GET_TX_DESC_ANT_MAPC_8822B(__tx_desc) GET_TX_DESC_ANT_MAPC(__tx_desc)
-#define SET_TX_DESC_ANT_MAPB_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_ANT_MAPB(__tx_desc, __value)
-#define GET_TX_DESC_ANT_MAPB_8822B(__tx_desc) GET_TX_DESC_ANT_MAPB(__tx_desc)
-#define SET_TX_DESC_ANT_MAPA_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_ANT_MAPA(__tx_desc, __value)
-#define GET_TX_DESC_ANT_MAPA_8822B(__tx_desc) GET_TX_DESC_ANT_MAPA(__tx_desc)
-#define SET_TX_DESC_ANTSEL_C_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_ANTSEL_C(__tx_desc, __value)
-#define GET_TX_DESC_ANTSEL_C_8822B(__tx_desc) GET_TX_DESC_ANTSEL_C(__tx_desc)
-#define SET_TX_DESC_ANTSEL_B_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_ANTSEL_B(__tx_desc, __value)
-#define GET_TX_DESC_ANTSEL_B_8822B(__tx_desc) GET_TX_DESC_ANTSEL_B(__tx_desc)
-#define SET_TX_DESC_ANTSEL_A_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_ANTSEL_A(__tx_desc, __value)
-#define GET_TX_DESC_ANTSEL_A_8822B(__tx_desc) GET_TX_DESC_ANTSEL_A(__tx_desc)
-#define SET_TX_DESC_MBSSID_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_MBSSID(__tx_desc, __value)
-#define GET_TX_DESC_MBSSID_8822B(__tx_desc) GET_TX_DESC_MBSSID(__tx_desc)
-#define SET_TX_DESC_SW_DEFINE_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_SW_DEFINE(__tx_desc, __value)
-#define GET_TX_DESC_SW_DEFINE_8822B(__tx_desc) GET_TX_DESC_SW_DEFINE(__tx_desc)
-
-/*TXDESC_WORD7*/
-
-#define SET_TX_DESC_DMA_TXAGG_NUM_8822B(__tx_desc, __value)                    \
-	SET_TX_DESC_DMA_TXAGG_NUM(__tx_desc, __value)
-#define GET_TX_DESC_DMA_TXAGG_NUM_8822B(__tx_desc)                             \
-	GET_TX_DESC_DMA_TXAGG_NUM(__tx_desc)
-#define SET_TX_DESC_FINAL_DATA_RATE_8822B(__tx_desc, __value)                  \
-	SET_TX_DESC_FINAL_DATA_RATE(__tx_desc, __value)
-#define GET_TX_DESC_FINAL_DATA_RATE_8822B(__tx_desc)                           \
-	GET_TX_DESC_FINAL_DATA_RATE(__tx_desc)
-#define SET_TX_DESC_NTX_MAP_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_NTX_MAP(__tx_desc, __value)
-#define GET_TX_DESC_NTX_MAP_8822B(__tx_desc) GET_TX_DESC_NTX_MAP(__tx_desc)
-#define SET_TX_DESC_TX_BUFF_SIZE_8822B(__tx_desc, __value)                     \
-	SET_TX_DESC_TX_BUFF_SIZE(__tx_desc, __value)
-#define GET_TX_DESC_TX_BUFF_SIZE_8822B(__tx_desc)                              \
-	GET_TX_DESC_TX_BUFF_SIZE(__tx_desc)
-#define SET_TX_DESC_TXDESC_CHECKSUM_8822B(__tx_desc, __value)                  \
-	SET_TX_DESC_TXDESC_CHECKSUM(__tx_desc, __value)
-#define GET_TX_DESC_TXDESC_CHECKSUM_8822B(__tx_desc)                           \
-	GET_TX_DESC_TXDESC_CHECKSUM(__tx_desc)
-#define SET_TX_DESC_TIMESTAMP_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_TIMESTAMP(__tx_desc, __value)
-#define GET_TX_DESC_TIMESTAMP_8822B(__tx_desc) GET_TX_DESC_TIMESTAMP(__tx_desc)
-
-/*TXDESC_WORD8*/
-
-#define SET_TX_DESC_TXWIFI_CP_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_TXWIFI_CP(__tx_desc, __value)
-#define GET_TX_DESC_TXWIFI_CP_8822B(__tx_desc) GET_TX_DESC_TXWIFI_CP(__tx_desc)
-#define SET_TX_DESC_MAC_CP_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_MAC_CP(__tx_desc, __value)
-#define GET_TX_DESC_MAC_CP_8822B(__tx_desc) GET_TX_DESC_MAC_CP(__tx_desc)
-#define SET_TX_DESC_STW_PKTRE_DIS_8822B(__tx_desc, __value)                    \
-	SET_TX_DESC_STW_PKTRE_DIS(__tx_desc, __value)
-#define GET_TX_DESC_STW_PKTRE_DIS_8822B(__tx_desc)                             \
-	GET_TX_DESC_STW_PKTRE_DIS(__tx_desc)
-#define SET_TX_DESC_STW_RB_DIS_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_STW_RB_DIS(__tx_desc, __value)
-#define GET_TX_DESC_STW_RB_DIS_8822B(__tx_desc)                                \
-	GET_TX_DESC_STW_RB_DIS(__tx_desc)
-#define SET_TX_DESC_STW_RATE_DIS_8822B(__tx_desc, __value)                     \
-	SET_TX_DESC_STW_RATE_DIS(__tx_desc, __value)
-#define GET_TX_DESC_STW_RATE_DIS_8822B(__tx_desc)                              \
-	GET_TX_DESC_STW_RATE_DIS(__tx_desc)
-#define SET_TX_DESC_STW_ANT_DIS_8822B(__tx_desc, __value)                      \
-	SET_TX_DESC_STW_ANT_DIS(__tx_desc, __value)
-#define GET_TX_DESC_STW_ANT_DIS_8822B(__tx_desc)                               \
-	GET_TX_DESC_STW_ANT_DIS(__tx_desc)
-#define SET_TX_DESC_STW_EN_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_STW_EN(__tx_desc, __value)
-#define GET_TX_DESC_STW_EN_8822B(__tx_desc) GET_TX_DESC_STW_EN(__tx_desc)
-#define SET_TX_DESC_SMH_EN_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_SMH_EN(__tx_desc, __value)
-#define GET_TX_DESC_SMH_EN_8822B(__tx_desc) GET_TX_DESC_SMH_EN(__tx_desc)
-#define SET_TX_DESC_TAILPAGE_L_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_TAILPAGE_L(__tx_desc, __value)
-#define GET_TX_DESC_TAILPAGE_L_8822B(__tx_desc)                                \
-	GET_TX_DESC_TAILPAGE_L(__tx_desc)
-#define SET_TX_DESC_SDIO_DMASEQ_8822B(__tx_desc, __value)                      \
-	SET_TX_DESC_SDIO_DMASEQ(__tx_desc, __value)
-#define GET_TX_DESC_SDIO_DMASEQ_8822B(__tx_desc)                               \
-	GET_TX_DESC_SDIO_DMASEQ(__tx_desc)
-#define SET_TX_DESC_NEXTHEADPAGE_L_8822B(__tx_desc, __value)                   \
-	SET_TX_DESC_NEXTHEADPAGE_L(__tx_desc, __value)
-#define GET_TX_DESC_NEXTHEADPAGE_L_8822B(__tx_desc)                            \
-	GET_TX_DESC_NEXTHEADPAGE_L(__tx_desc)
-#define SET_TX_DESC_EN_HWSEQ_8822B(__tx_desc, __value)                         \
-	SET_TX_DESC_EN_HWSEQ(__tx_desc, __value)
-#define GET_TX_DESC_EN_HWSEQ_8822B(__tx_desc) GET_TX_DESC_EN_HWSEQ(__tx_desc)
-#define SET_TX_DESC_EN_HWEXSEQ_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_EN_HWEXSEQ(__tx_desc, __value)
-#define GET_TX_DESC_EN_HWEXSEQ_8822B(__tx_desc)                                \
-	GET_TX_DESC_EN_HWEXSEQ(__tx_desc)
-#define SET_TX_DESC_DATA_RC_8822B(__tx_desc, __value)                          \
-	SET_TX_DESC_DATA_RC(__tx_desc, __value)
-#define GET_TX_DESC_DATA_RC_8822B(__tx_desc) GET_TX_DESC_DATA_RC(__tx_desc)
-#define SET_TX_DESC_BAR_RTY_TH_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_BAR_RTY_TH(__tx_desc, __value)
-#define GET_TX_DESC_BAR_RTY_TH_8822B(__tx_desc)                                \
-	GET_TX_DESC_BAR_RTY_TH(__tx_desc)
-#define SET_TX_DESC_RTS_RC_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_RTS_RC(__tx_desc, __value)
-#define GET_TX_DESC_RTS_RC_8822B(__tx_desc) GET_TX_DESC_RTS_RC(__tx_desc)
-
-/*TXDESC_WORD9*/
-
-#define SET_TX_DESC_TAILPAGE_H_8822B(__tx_desc, __value)                       \
-	SET_TX_DESC_TAILPAGE_H(__tx_desc, __value)
-#define GET_TX_DESC_TAILPAGE_H_8822B(__tx_desc)                                \
-	GET_TX_DESC_TAILPAGE_H(__tx_desc)
-#define SET_TX_DESC_NEXTHEADPAGE_H_8822B(__tx_desc, __value)                   \
-	SET_TX_DESC_NEXTHEADPAGE_H(__tx_desc, __value)
-#define GET_TX_DESC_NEXTHEADPAGE_H_8822B(__tx_desc)                            \
-	GET_TX_DESC_NEXTHEADPAGE_H(__tx_desc)
-#define SET_TX_DESC_SW_SEQ_8822B(__tx_desc, __value)                           \
-	SET_TX_DESC_SW_SEQ(__tx_desc, __value)
-#define GET_TX_DESC_SW_SEQ_8822B(__tx_desc) GET_TX_DESC_SW_SEQ(__tx_desc)
-#define SET_TX_DESC_TXBF_PATH_8822B(__tx_desc, __value)                        \
-	SET_TX_DESC_TXBF_PATH(__tx_desc, __value)
-#define GET_TX_DESC_TXBF_PATH_8822B(__tx_desc) GET_TX_DESC_TXBF_PATH(__tx_desc)
-#define SET_TX_DESC_PADDING_LEN_8822B(__tx_desc, __value)                      \
-	SET_TX_DESC_PADDING_LEN(__tx_desc, __value)
-#define GET_TX_DESC_PADDING_LEN_8822B(__tx_desc)                               \
-	GET_TX_DESC_PADDING_LEN(__tx_desc)
-#define SET_TX_DESC_GROUP_BIT_IE_OFFSET_8822B(__tx_desc, __value)              \
-	SET_TX_DESC_GROUP_BIT_IE_OFFSET(__tx_desc, __value)
-#define GET_TX_DESC_GROUP_BIT_IE_OFFSET_8822B(__tx_desc)                       \
-	GET_TX_DESC_GROUP_BIT_IE_OFFSET(__tx_desc)
-
-/*WORD10*/
-
-#define SET_TX_DESC_MU_DATARATE_8822B(__tx_desc, __value)                      \
-	SET_TX_DESC_MU_DATARATE(__tx_desc, __value)
-#define GET_TX_DESC_MU_DATARATE_8822B(__tx_desc)                               \
-	GET_TX_DESC_MU_DATARATE(__tx_desc)
-#define SET_TX_DESC_MU_RC_8822B(__tx_desc, __value)                            \
-	SET_TX_DESC_MU_RC(__tx_desc, __value)
-#define GET_TX_DESC_MU_RC_8822B(__tx_desc) GET_TX_DESC_MU_RC(__tx_desc)
-#define SET_TX_DESC_SND_PKT_SEL_8822B(__tx_desc, __value)                      \
-	SET_TX_DESC_SND_PKT_SEL(__tx_desc, __value)
-#define GET_TX_DESC_SND_PKT_SEL_8822B(__tx_desc)                               \
-	GET_TX_DESC_SND_PKT_SEL(__tx_desc)
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_tx_desc_nic.h b/drivers/staging/rtlwifi/halmac/halmac_tx_desc_nic.h
deleted file mode 100644
index 73b973d..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_tx_desc_nic.h
+++ /dev/null
@@ -1,495 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_TX_DESC_NIC_H_
-#define _HALMAC_TX_DESC_NIC_H_
-
-/*TXDESC_WORD0*/
-
-#define SET_TX_DESC_DISQSELSEQ(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 31, 1, __value)
-#define GET_TX_DESC_DISQSELSEQ(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x00, 31, 1)
-
-#define SET_TX_DESC_GF(__tx_desc, __value)                                     \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 30, 1, __value)
-#define GET_TX_DESC_GF(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 30, 1)
-#define SET_TX_DESC_NO_ACM(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 29, 1, __value)
-#define GET_TX_DESC_NO_ACM(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 29, 1)
-
-#define SET_TX_DESC_BCNPKT_TSF_CTRL(__tx_desc, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 28, 1, __value)
-#define GET_TX_DESC_BCNPKT_TSF_CTRL(__tx_desc)                                 \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x00, 28, 1)
-
-#define SET_TX_DESC_AMSDU_PAD_EN(__tx_desc, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 27, 1, __value)
-#define GET_TX_DESC_AMSDU_PAD_EN(__tx_desc)                                    \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x00, 27, 1)
-
-#define SET_TX_DESC_LS(__tx_desc, __value)                                     \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 26, 1, __value)
-#define GET_TX_DESC_LS(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 26, 1)
-#define SET_TX_DESC_HTC(__tx_desc, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 25, 1, __value)
-#define GET_TX_DESC_HTC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 25, 1)
-#define SET_TX_DESC_BMC(__tx_desc, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 24, 1, __value)
-#define GET_TX_DESC_BMC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 24, 1)
-#define SET_TX_DESC_OFFSET(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 16, 8, __value)
-#define GET_TX_DESC_OFFSET(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 16, 8)
-#define SET_TX_DESC_TXPKTSIZE(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 0, 16, __value)
-#define GET_TX_DESC_TXPKTSIZE(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x00, 0, 16)
-
-/*TXDESC_WORD1*/
-
-#define SET_TX_DESC_MOREDATA(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 29, 1, __value)
-#define GET_TX_DESC_MOREDATA(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x04, 29, 1)
-#define SET_TX_DESC_PKT_OFFSET(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 24, 5, __value)
-#define GET_TX_DESC_PKT_OFFSET(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x04, 24, 5)
-#define SET_TX_DESC_SEC_TYPE(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 22, 2, __value)
-#define GET_TX_DESC_SEC_TYPE(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x04, 22, 2)
-#define SET_TX_DESC_EN_DESC_ID(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 21, 1, __value)
-#define GET_TX_DESC_EN_DESC_ID(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x04, 21, 1)
-#define SET_TX_DESC_RATE_ID(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 16, 5, __value)
-#define GET_TX_DESC_RATE_ID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x04, 16, 5)
-#define SET_TX_DESC_PIFS(__tx_desc, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 15, 1, __value)
-#define GET_TX_DESC_PIFS(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x04, 15, 1)
-#define SET_TX_DESC_LSIG_TXOP_EN(__tx_desc, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 14, 1, __value)
-#define GET_TX_DESC_LSIG_TXOP_EN(__tx_desc)                                    \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x04, 14, 1)
-#define SET_TX_DESC_RD_NAV_EXT(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 13, 1, __value)
-#define GET_TX_DESC_RD_NAV_EXT(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x04, 13, 1)
-#define SET_TX_DESC_QSEL(__tx_desc, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 8, 5, __value)
-#define GET_TX_DESC_QSEL(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x04, 8, 5)
-#define SET_TX_DESC_MACID(__tx_desc, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 0, 7, __value)
-#define GET_TX_DESC_MACID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x04, 0, 7)
-
-/*TXDESC_WORD2*/
-
-#define SET_TX_DESC_HW_AES_IV(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 31, 1, __value)
-#define GET_TX_DESC_HW_AES_IV(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x08, 31, 1)
-
-#define SET_TX_DESC_FTM_EN(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 30, 1, __value)
-#define GET_TX_DESC_FTM_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 30, 1)
-
-#define SET_TX_DESC_G_ID(__tx_desc, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 24, 6, __value)
-#define GET_TX_DESC_G_ID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 24, 6)
-#define SET_TX_DESC_BT_NULL(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 23, 1, __value)
-#define GET_TX_DESC_BT_NULL(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 23, 1)
-#define SET_TX_DESC_AMPDU_DENSITY(__tx_desc, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 20, 3, __value)
-#define GET_TX_DESC_AMPDU_DENSITY(__tx_desc)                                   \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x08, 20, 3)
-#ifdef SET_TX_DESC_SPE_RPT
-#undef SET_TX_DESC_SPE_RPT
-#endif
-#define SET_TX_DESC_SPE_RPT(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 19, 1, __value)
-#define GET_TX_DESC_SPE_RPT(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 19, 1)
-#define SET_TX_DESC_RAW(__tx_desc, __value)                                    \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 18, 1, __value)
-#define GET_TX_DESC_RAW(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 18, 1)
-#define SET_TX_DESC_MOREFRAG(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 17, 1, __value)
-#define GET_TX_DESC_MOREFRAG(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x08, 17, 1)
-#define SET_TX_DESC_BK(__tx_desc, __value)                                     \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 16, 1, __value)
-#define GET_TX_DESC_BK(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 16, 1)
-#define SET_TX_DESC_NULL_1(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 15, 1, __value)
-#define GET_TX_DESC_NULL_1(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 15, 1)
-#define SET_TX_DESC_NULL_0(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 14, 1, __value)
-#define GET_TX_DESC_NULL_0(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 14, 1)
-#define SET_TX_DESC_RDG_EN(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 13, 1, __value)
-#define GET_TX_DESC_RDG_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 13, 1)
-#define SET_TX_DESC_AGG_EN(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 12, 1, __value)
-#define GET_TX_DESC_AGG_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 12, 1)
-#define SET_TX_DESC_CCA_RTS(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 10, 2, __value)
-#define GET_TX_DESC_CCA_RTS(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 10, 2)
-
-#define SET_TX_DESC_TRI_FRAME(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 9, 1, __value)
-#define GET_TX_DESC_TRI_FRAME(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x08, 9, 1)
-
-#define SET_TX_DESC_P_AID(__tx_desc, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 0, 9, __value)
-#define GET_TX_DESC_P_AID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 0, 9)
-
-/*TXDESC_WORD3*/
-
-#define SET_TX_DESC_AMPDU_MAX_TIME(__tx_desc, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 24, 8, __value)
-#define GET_TX_DESC_AMPDU_MAX_TIME(__tx_desc)                                  \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 24, 8)
-#define SET_TX_DESC_NDPA(__tx_desc, __value)                                   \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 22, 2, __value)
-#define GET_TX_DESC_NDPA(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 22, 2)
-#define SET_TX_DESC_MAX_AGG_NUM(__tx_desc, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 17, 5, __value)
-#define GET_TX_DESC_MAX_AGG_NUM(__tx_desc)                                     \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 17, 5)
-#define SET_TX_DESC_USE_MAX_TIME_EN(__tx_desc, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 16, 1, __value)
-#define GET_TX_DESC_USE_MAX_TIME_EN(__tx_desc)                                 \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 16, 1)
-#define SET_TX_DESC_NAVUSEHDR(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 15, 1, __value)
-#define GET_TX_DESC_NAVUSEHDR(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 15, 1)
-
-#define SET_TX_DESC_CHK_EN(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 14, 1, __value)
-#define GET_TX_DESC_CHK_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 14, 1)
-
-#define SET_TX_DESC_HW_RTS_EN(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 13, 1, __value)
-#define GET_TX_DESC_HW_RTS_EN(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 13, 1)
-#define SET_TX_DESC_RTSEN(__tx_desc, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 12, 1, __value)
-#define GET_TX_DESC_RTSEN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 12, 1)
-#define SET_TX_DESC_CTS2SELF(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 11, 1, __value)
-#define GET_TX_DESC_CTS2SELF(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 11, 1)
-#define SET_TX_DESC_DISDATAFB(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 10, 1, __value)
-#define GET_TX_DESC_DISDATAFB(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 10, 1)
-#define SET_TX_DESC_DISRTSFB(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 9, 1, __value)
-#define GET_TX_DESC_DISRTSFB(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 9, 1)
-#define SET_TX_DESC_USE_RATE(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 8, 1, __value)
-#define GET_TX_DESC_USE_RATE(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 8, 1)
-#define SET_TX_DESC_HW_SSN_SEL(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 6, 2, __value)
-#define GET_TX_DESC_HW_SSN_SEL(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 6, 2)
-
-#define SET_TX_DESC_WHEADER_LEN(__tx_desc, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 0, 5, __value)
-#define GET_TX_DESC_WHEADER_LEN(__tx_desc)                                     \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 0, 5)
-
-/*TXDESC_WORD4*/
-
-#define SET_TX_DESC_PCTS_MASK_IDX(__tx_desc, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 30, 2, __value)
-#define GET_TX_DESC_PCTS_MASK_IDX(__tx_desc)                                   \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x10, 30, 2)
-#define SET_TX_DESC_PCTS_EN(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 29, 1, __value)
-#define GET_TX_DESC_PCTS_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x10, 29, 1)
-#define SET_TX_DESC_RTSRATE(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 24, 5, __value)
-#define GET_TX_DESC_RTSRATE(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x10, 24, 5)
-#define SET_TX_DESC_RTS_DATA_RTY_LMT(__tx_desc, __value)                       \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 18, 6, __value)
-#define GET_TX_DESC_RTS_DATA_RTY_LMT(__tx_desc)                                \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x10, 18, 6)
-#define SET_TX_DESC_RTY_LMT_EN(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 17, 1, __value)
-#define GET_TX_DESC_RTY_LMT_EN(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x10, 17, 1)
-#define SET_TX_DESC_RTS_RTY_LOWEST_RATE(__tx_desc, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 13, 4, __value)
-#define GET_TX_DESC_RTS_RTY_LOWEST_RATE(__tx_desc)                             \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x10, 13, 4)
-#define SET_TX_DESC_DATA_RTY_LOWEST_RATE(__tx_desc, __value)                   \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 8, 5, __value)
-#define GET_TX_DESC_DATA_RTY_LOWEST_RATE(__tx_desc)                            \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x10, 8, 5)
-#define SET_TX_DESC_TRY_RATE(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 7, 1, __value)
-#define GET_TX_DESC_TRY_RATE(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x10, 7, 1)
-#define SET_TX_DESC_DATARATE(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 0, 7, __value)
-#define GET_TX_DESC_DATARATE(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x10, 0, 7)
-
-/*TXDESC_WORD5*/
-
-#define SET_TX_DESC_POLLUTED(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 31, 1, __value)
-#define GET_TX_DESC_POLLUTED(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x14, 31, 1)
-
-#define SET_TX_DESC_TXPWR_OFSET(__tx_desc, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 28, 3, __value)
-#define GET_TX_DESC_TXPWR_OFSET(__tx_desc)                                     \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x14, 28, 3)
-#define SET_TX_DESC_TX_ANT(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 24, 4, __value)
-#define GET_TX_DESC_TX_ANT(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 24, 4)
-#define SET_TX_DESC_PORT_ID(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 21, 3, __value)
-#define GET_TX_DESC_PORT_ID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 21, 3)
-
-#define SET_TX_DESC_MULTIPLE_PORT(__tx_desc, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 18, 3, __value)
-#define GET_TX_DESC_MULTIPLE_PORT(__tx_desc)                                   \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x14, 18, 3)
-
-#define SET_TX_DESC_SIGNALING_TAPKT_EN(__tx_desc, __value)                     \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 17, 1, __value)
-#define GET_TX_DESC_SIGNALING_TAPKT_EN(__tx_desc)                              \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x14, 17, 1)
-
-#define SET_TX_DESC_RTS_SC(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 13, 4, __value)
-#define GET_TX_DESC_RTS_SC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 13, 4)
-#define SET_TX_DESC_RTS_SHORT(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 12, 1, __value)
-#define GET_TX_DESC_RTS_SHORT(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x14, 12, 1)
-
-#define SET_TX_DESC_VCS_STBC(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 10, 2, __value)
-#define GET_TX_DESC_VCS_STBC(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x14, 10, 2)
-
-#define SET_TX_DESC_DATA_STBC(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 8, 2, __value)
-#define GET_TX_DESC_DATA_STBC(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x14, 8, 2)
-
-#define SET_TX_DESC_DATA_LDPC(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 7, 1, __value)
-#define GET_TX_DESC_DATA_LDPC(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x14, 7, 1)
-
-#define SET_TX_DESC_DATA_BW(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 5, 2, __value)
-#define GET_TX_DESC_DATA_BW(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 5, 2)
-#define SET_TX_DESC_DATA_SHORT(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 4, 1, __value)
-#define GET_TX_DESC_DATA_SHORT(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x14, 4, 1)
-#define SET_TX_DESC_DATA_SC(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 0, 4, __value)
-#define GET_TX_DESC_DATA_SC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 0, 4)
-
-/*TXDESC_WORD6*/
-
-#define SET_TX_DESC_ANTSEL_D(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 30, 2, __value)
-#define GET_TX_DESC_ANTSEL_D(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x18, 30, 2)
-#define SET_TX_DESC_ANT_MAPD(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 28, 2, __value)
-#define GET_TX_DESC_ANT_MAPD(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x18, 28, 2)
-#define SET_TX_DESC_ANT_MAPC(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 26, 2, __value)
-#define GET_TX_DESC_ANT_MAPC(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x18, 26, 2)
-#define SET_TX_DESC_ANT_MAPB(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 24, 2, __value)
-#define GET_TX_DESC_ANT_MAPB(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x18, 24, 2)
-#define SET_TX_DESC_ANT_MAPA(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 22, 2, __value)
-#define GET_TX_DESC_ANT_MAPA(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x18, 22, 2)
-#define SET_TX_DESC_ANTSEL_C(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 20, 2, __value)
-#define GET_TX_DESC_ANTSEL_C(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x18, 20, 2)
-#define SET_TX_DESC_ANTSEL_B(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 18, 2, __value)
-#define GET_TX_DESC_ANTSEL_B(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x18, 18, 2)
-
-#define SET_TX_DESC_ANTSEL_A(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 16, 2, __value)
-#define GET_TX_DESC_ANTSEL_A(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x18, 16, 2)
-#define SET_TX_DESC_MBSSID(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 12, 4, __value)
-#define GET_TX_DESC_MBSSID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x18, 12, 4)
-#ifdef SET_TX_DESC_SW_DEFINE
-#undef SET_TX_DESC_SW_DEFINE
-#endif
-#define SET_TX_DESC_SW_DEFINE(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 0, 12, __value)
-#define GET_TX_DESC_SW_DEFINE(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x18, 0, 12)
-
-/*TXDESC_WORD7*/
-
-#define SET_TX_DESC_DMA_TXAGG_NUM(__tx_desc, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 24, 8, __value)
-#define GET_TX_DESC_DMA_TXAGG_NUM(__tx_desc)                                   \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 24, 8)
-
-#define SET_TX_DESC_FINAL_DATA_RATE(__tx_desc, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 24, 8, __value)
-#define GET_TX_DESC_FINAL_DATA_RATE(__tx_desc)                                 \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 24, 8)
-#define SET_TX_DESC_NTX_MAP(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 20, 4, __value)
-#define GET_TX_DESC_NTX_MAP(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 20, 4)
-
-#define SET_TX_DESC_TX_BUFF_SIZE(__tx_desc, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 0, 16, __value)
-#define GET_TX_DESC_TX_BUFF_SIZE(__tx_desc)                                    \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 0, 16)
-#define SET_TX_DESC_TXDESC_CHECKSUM(__tx_desc, __value)                        \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 0, 16, __value)
-#define GET_TX_DESC_TXDESC_CHECKSUM(__tx_desc)                                 \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 0, 16)
-#define SET_TX_DESC_TIMESTAMP(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 0, 16, __value)
-#define GET_TX_DESC_TIMESTAMP(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 0, 16)
-
-/*TXDESC_WORD8*/
-
-#define SET_TX_DESC_TXWIFI_CP(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 31, 1, __value)
-#define GET_TX_DESC_TXWIFI_CP(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 31, 1)
-#define SET_TX_DESC_MAC_CP(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 30, 1, __value)
-#define GET_TX_DESC_MAC_CP(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 30, 1)
-#define SET_TX_DESC_STW_PKTRE_DIS(__tx_desc, __value)                          \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 29, 1, __value)
-#define GET_TX_DESC_STW_PKTRE_DIS(__tx_desc)                                   \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 29, 1)
-#define SET_TX_DESC_STW_RB_DIS(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 28, 1, __value)
-#define GET_TX_DESC_STW_RB_DIS(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 28, 1)
-#define SET_TX_DESC_STW_RATE_DIS(__tx_desc, __value)                           \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 27, 1, __value)
-#define GET_TX_DESC_STW_RATE_DIS(__tx_desc)                                    \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 27, 1)
-#define SET_TX_DESC_STW_ANT_DIS(__tx_desc, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 26, 1, __value)
-#define GET_TX_DESC_STW_ANT_DIS(__tx_desc)                                     \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 26, 1)
-#define SET_TX_DESC_STW_EN(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 25, 1, __value)
-#define GET_TX_DESC_STW_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 25, 1)
-#define SET_TX_DESC_SMH_EN(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 24, 1, __value)
-#define GET_TX_DESC_SMH_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 24, 1)
-
-#define SET_TX_DESC_TAILPAGE_L(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 24, 8, __value)
-#define GET_TX_DESC_TAILPAGE_L(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 24, 8)
-
-#define SET_TX_DESC_SDIO_DMASEQ(__tx_desc, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 16, 8, __value)
-#define GET_TX_DESC_SDIO_DMASEQ(__tx_desc)                                     \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 16, 8)
-
-#define SET_TX_DESC_NEXTHEADPAGE_L(__tx_desc, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 16, 8, __value)
-#define GET_TX_DESC_NEXTHEADPAGE_L(__tx_desc)                                  \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 16, 8)
-#define SET_TX_DESC_EN_HWSEQ(__tx_desc, __value)                               \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 15, 1, __value)
-#define GET_TX_DESC_EN_HWSEQ(__tx_desc)                                        \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 15, 1)
-
-#define SET_TX_DESC_EN_HWEXSEQ(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 14, 1, __value)
-#define GET_TX_DESC_EN_HWEXSEQ(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 14, 1)
-
-#define SET_TX_DESC_DATA_RC(__tx_desc, __value)                                \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 8, 6, __value)
-#define GET_TX_DESC_DATA_RC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 8, 6)
-#define SET_TX_DESC_BAR_RTY_TH(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 6, 2, __value)
-#define GET_TX_DESC_BAR_RTY_TH(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x20, 6, 2)
-#define SET_TX_DESC_RTS_RC(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 0, 6, __value)
-#define GET_TX_DESC_RTS_RC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 0, 6)
-
-/*TXDESC_WORD9*/
-
-#define SET_TX_DESC_TAILPAGE_H(__tx_desc, __value)                             \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 28, 4, __value)
-#define GET_TX_DESC_TAILPAGE_H(__tx_desc)                                      \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x24, 28, 4)
-#define SET_TX_DESC_NEXTHEADPAGE_H(__tx_desc, __value)                         \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 24, 4, __value)
-#define GET_TX_DESC_NEXTHEADPAGE_H(__tx_desc)                                  \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x24, 24, 4)
-
-#define SET_TX_DESC_SW_SEQ(__tx_desc, __value)                                 \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 12, 12, __value)
-#define GET_TX_DESC_SW_SEQ(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x24, 12, 12)
-#define SET_TX_DESC_TXBF_PATH(__tx_desc, __value)                              \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 11, 1, __value)
-#define GET_TX_DESC_TXBF_PATH(__tx_desc)                                       \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x24, 11, 1)
-#define SET_TX_DESC_PADDING_LEN(__tx_desc, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 0, 11, __value)
-#define GET_TX_DESC_PADDING_LEN(__tx_desc)                                     \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x24, 0, 11)
-#define SET_TX_DESC_GROUP_BIT_IE_OFFSET(__tx_desc, __value)                    \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 0, 8, __value)
-#define GET_TX_DESC_GROUP_BIT_IE_OFFSET(__tx_desc)                             \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x24, 0, 8)
-
-/*WORD10*/
-
-#define SET_TX_DESC_MU_DATARATE(__tx_desc, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x28, 8, 8, __value)
-#define GET_TX_DESC_MU_DATARATE(__tx_desc)                                     \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x28, 8, 8)
-#define SET_TX_DESC_MU_RC(__tx_desc, __value)                                  \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x28, 4, 4, __value)
-#define GET_TX_DESC_MU_RC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x28, 4, 4)
-#define SET_TX_DESC_SND_PKT_SEL(__tx_desc, __value)                            \
-	SET_BITS_TO_LE_4BYTE(__tx_desc + 0x28, 0, 2, __value)
-#define GET_TX_DESC_SND_PKT_SEL(__tx_desc)                                     \
-	LE_BITS_TO_4BYTE(__tx_desc + 0x28, 0, 2)
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_type.h b/drivers/staging/rtlwifi/halmac/halmac_type.h
deleted file mode 100644
index 51d758b..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_type.h
+++ /dev/null
@@ -1,1923 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _HALMAC_TYPE_H_
-#define _HALMAC_TYPE_H_
-
-#include "halmac_2_platform.h"
-#include "halmac_fw_info.h"
-#include "halmac_intf_phy_cmd.h"
-
-#define HALMAC_SCAN_CH_NUM_MAX 28
-#define HALMAC_BCN_IE_BMP_SIZE 24 /* ID0~ID191, 192/8=24 */
-#define HALMAC_PHY_PARAMETER_SIZE 12
-#define HALMAC_PHY_PARAMETER_MAX_NUM 128
-#define HALMAC_MAX_SSID_LEN 32
-#define HALMAC_SUPPORT_NLO_NUM 16
-#define HALMAC_SUPPORT_PROBE_REQ_NUM 8
-#define HALMC_DDMA_POLLING_COUNT 1000
-#define API_ARRAY_SIZE 32
-
-/* platform api */
-#define PLATFORM_SDIO_CMD52_READ                                               \
-	halmac_adapter->halmac_platform_api->SDIO_CMD52_READ
-#define PLATFORM_SDIO_CMD53_READ_8                                             \
-	halmac_adapter->halmac_platform_api->SDIO_CMD53_READ_8
-#define PLATFORM_SDIO_CMD53_READ_16                                            \
-	halmac_adapter->halmac_platform_api->SDIO_CMD53_READ_16
-#define PLATFORM_SDIO_CMD53_READ_32                                            \
-	halmac_adapter->halmac_platform_api->SDIO_CMD53_READ_32
-#define PLATFORM_SDIO_CMD53_READ_N                                             \
-	halmac_adapter->halmac_platform_api->SDIO_CMD53_READ_N
-#define PLATFORM_SDIO_CMD52_WRITE                                              \
-	halmac_adapter->halmac_platform_api->SDIO_CMD52_WRITE
-#define PLATFORM_SDIO_CMD53_WRITE_8                                            \
-	halmac_adapter->halmac_platform_api->SDIO_CMD53_WRITE_8
-#define PLATFORM_SDIO_CMD53_WRITE_16                                           \
-	halmac_adapter->halmac_platform_api->SDIO_CMD53_WRITE_16
-#define PLATFORM_SDIO_CMD53_WRITE_32                                           \
-	halmac_adapter->halmac_platform_api->SDIO_CMD53_WRITE_32
-
-#define PLATFORM_REG_READ_8 halmac_adapter->halmac_platform_api->REG_READ_8
-#define PLATFORM_REG_READ_16 halmac_adapter->halmac_platform_api->REG_READ_16
-#define PLATFORM_REG_READ_32 halmac_adapter->halmac_platform_api->REG_READ_32
-#define PLATFORM_REG_WRITE_8 halmac_adapter->halmac_platform_api->REG_WRITE_8
-#define PLATFORM_REG_WRITE_16 halmac_adapter->halmac_platform_api->REG_WRITE_16
-#define PLATFORM_REG_WRITE_32 halmac_adapter->halmac_platform_api->REG_WRITE_32
-
-#define PLATFORM_SEND_RSVD_PAGE                                                \
-	halmac_adapter->halmac_platform_api->SEND_RSVD_PAGE
-#define PLATFORM_SEND_H2C_PKT halmac_adapter->halmac_platform_api->SEND_H2C_PKT
-
-#define PLATFORM_EVENT_INDICATION                                              \
-	halmac_adapter->halmac_platform_api->EVENT_INDICATION
-
-#define HALMAC_RT_TRACE(drv_adapter, comp, level, fmt, ...)                    \
-	RT_TRACE(drv_adapter, COMP_HALMAC, level, fmt, ##__VA_ARGS__)
-
-#define HALMAC_REG_READ_8 halmac_api->halmac_reg_read_8
-#define HALMAC_REG_READ_16 halmac_api->halmac_reg_read_16
-#define HALMAC_REG_READ_32 halmac_api->halmac_reg_read_32
-#define HALMAC_REG_WRITE_8 halmac_api->halmac_reg_write_8
-#define HALMAC_REG_WRITE_16 halmac_api->halmac_reg_write_16
-#define HALMAC_REG_WRITE_32 halmac_api->halmac_reg_write_32
-#define HALMAC_REG_SDIO_CMD53_READ_N halmac_api->halmac_reg_sdio_cmd53_read_n
-
-/* Swap Little-endian <-> Big-endia*/
-
-/*1->Little endian 0->Big endian*/
-#if HALMAC_SYSTEM_ENDIAN
-#else
-#endif
-
-#define HALMAC_ALIGN(x, a) HALMAC_ALIGN_MASK(x, (a) - 1)
-#define HALMAC_ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask))
-
-/* HALMAC API return status*/
-enum halmac_ret_status {
-	HALMAC_RET_SUCCESS = 0x00,
-	HALMAC_RET_SUCCESS_ENQUEUE = 0x01,
-	HALMAC_RET_PLATFORM_API_NULL = 0x02,
-	HALMAC_RET_EFUSE_SIZE_INCORRECT = 0x03,
-	HALMAC_RET_MALLOC_FAIL = 0x04,
-	HALMAC_RET_ADAPTER_INVALID = 0x05,
-	HALMAC_RET_ITF_INCORRECT = 0x06,
-	HALMAC_RET_DLFW_FAIL = 0x07,
-	HALMAC_RET_PORT_NOT_SUPPORT = 0x08,
-	HALMAC_RET_TRXMODE_NOT_SUPPORT = 0x09,
-	HALMAC_RET_INIT_LLT_FAIL = 0x0A,
-	HALMAC_RET_POWER_STATE_INVALID = 0x0B,
-	HALMAC_RET_H2C_ACK_NOT_RECEIVED = 0x0C,
-	HALMAC_RET_DL_RSVD_PAGE_FAIL = 0x0D,
-	HALMAC_RET_EFUSE_R_FAIL = 0x0E,
-	HALMAC_RET_EFUSE_W_FAIL = 0x0F,
-	HALMAC_RET_H2C_SW_RES_FAIL = 0x10,
-	HALMAC_RET_SEND_H2C_FAIL = 0x11,
-	HALMAC_RET_PARA_NOT_SUPPORT = 0x12,
-	HALMAC_RET_PLATFORM_API_INCORRECT = 0x13,
-	HALMAC_RET_ENDIAN_ERR = 0x14,
-	HALMAC_RET_FW_SIZE_ERR = 0x15,
-	HALMAC_RET_TRX_MODE_NOT_SUPPORT = 0x16,
-	HALMAC_RET_FAIL = 0x17,
-	HALMAC_RET_CHANGE_PS_FAIL = 0x18,
-	HALMAC_RET_CFG_PARA_FAIL = 0x19,
-	HALMAC_RET_UPDATE_PROBE_FAIL = 0x1A,
-	HALMAC_RET_SCAN_FAIL = 0x1B,
-	HALMAC_RET_STOP_SCAN_FAIL = 0x1C,
-	HALMAC_RET_BCN_PARSER_CMD_FAIL = 0x1D,
-	HALMAC_RET_POWER_ON_FAIL = 0x1E,
-	HALMAC_RET_POWER_OFF_FAIL = 0x1F,
-	HALMAC_RET_RX_AGG_MODE_FAIL = 0x20,
-	HALMAC_RET_DATA_BUF_NULL = 0x21,
-	HALMAC_RET_DATA_SIZE_INCORRECT = 0x22,
-	HALMAC_RET_QSEL_INCORRECT = 0x23,
-	HALMAC_RET_DMA_MAP_INCORRECT = 0x24,
-	HALMAC_RET_SEND_ORIGINAL_H2C_FAIL = 0x25,
-	HALMAC_RET_DDMA_FAIL = 0x26,
-	HALMAC_RET_FW_CHECKSUM_FAIL = 0x27,
-	HALMAC_RET_PWRSEQ_POLLING_FAIL = 0x28,
-	HALMAC_RET_PWRSEQ_CMD_INCORRECT = 0x29,
-	HALMAC_RET_WRITE_DATA_FAIL = 0x2A,
-	HALMAC_RET_DUMP_FIFOSIZE_INCORRECT = 0x2B,
-	HALMAC_RET_NULL_POINTER = 0x2C,
-	HALMAC_RET_PROBE_NOT_FOUND = 0x2D,
-	HALMAC_RET_FW_NO_MEMORY = 0x2E,
-	HALMAC_RET_H2C_STATUS_ERR = 0x2F,
-	HALMAC_RET_GET_H2C_SPACE_ERR = 0x30,
-	HALMAC_RET_H2C_SPACE_FULL = 0x31,
-	HALMAC_RET_DATAPACK_NO_FOUND = 0x32,
-	HALMAC_RET_CANNOT_FIND_H2C_RESOURCE = 0x33,
-	HALMAC_RET_TX_DMA_ERR = 0x34,
-	HALMAC_RET_RX_DMA_ERR = 0x35,
-	HALMAC_RET_CHIP_NOT_SUPPORT = 0x36,
-	HALMAC_RET_FREE_SPACE_NOT_ENOUGH = 0x37,
-	HALMAC_RET_CH_SW_SEQ_WRONG = 0x38,
-	HALMAC_RET_CH_SW_NO_BUF = 0x39,
-	HALMAC_RET_SW_CASE_NOT_SUPPORT = 0x3A,
-	HALMAC_RET_CONVERT_SDIO_OFFSET_FAIL = 0x3B,
-	HALMAC_RET_INVALID_SOUNDING_SETTING = 0x3C,
-	HALMAC_RET_GEN_INFO_NOT_SENT = 0x3D,
-	HALMAC_RET_STATE_INCORRECT = 0x3E,
-	HALMAC_RET_H2C_BUSY = 0x3F,
-	HALMAC_RET_INVALID_FEATURE_ID = 0x40,
-	HALMAC_RET_BUFFER_TOO_SMALL = 0x41,
-	HALMAC_RET_ZERO_LEN_RSVD_PACKET = 0x42,
-	HALMAC_RET_BUSY_STATE = 0x43,
-	HALMAC_RET_ERROR_STATE = 0x44,
-	HALMAC_RET_API_INVALID = 0x45,
-	HALMAC_RET_POLLING_BCN_VALID_FAIL = 0x46,
-	HALMAC_RET_SDIO_LEAVE_SUSPEND_FAIL = 0x47,
-	HALMAC_RET_EEPROM_PARSING_FAIL = 0x48,
-	HALMAC_RET_EFUSE_NOT_ENOUGH = 0x49,
-	HALMAC_RET_WRONG_ARGUMENT = 0x4A,
-	HALMAC_RET_NOT_SUPPORT = 0x4B,
-	HALMAC_RET_C2H_NOT_HANDLED = 0x4C,
-	HALMAC_RET_PARA_SENDING = 0x4D,
-	HALMAC_RET_CFG_DLFW_SIZE_FAIL = 0x4E,
-	HALMAC_RET_CFG_TXFIFO_PAGE_FAIL = 0x4F,
-	HALMAC_RET_SWITCH_CASE_ERROR = 0x50,
-	HALMAC_RET_EFUSE_BANK_INCORRECT = 0x51,
-	HALMAC_RET_SWITCH_EFUSE_BANK_FAIL = 0x52,
-	HALMAC_RET_USB_MODE_UNCHANGE = 0x53,
-	HALMAC_RET_NO_DLFW = 0x54,
-	HALMAC_RET_USB2_3_SWITCH_UNSUPPORT = 0x55,
-	HALMAC_RET_BIP_NO_SUPPORT = 0x56,
-	HALMAC_RET_ENTRY_INDEX_ERROR = 0x57,
-	HALMAC_RET_ENTRY_KEY_ID_ERROR = 0x58,
-	HALMAC_RET_DRV_DL_ERR = 0x59,
-	HALMAC_RET_OQT_NOT_ENOUGH = 0x5A,
-	HALMAC_RET_PWR_UNCHANGE = 0x5B,
-	HALMAC_RET_FW_NO_SUPPORT = 0x60,
-	HALMAC_RET_TXFIFO_NO_EMPTY = 0x61,
-};
-
-enum halmac_mac_clock_hw_def {
-	HALMAC_MAC_CLOCK_HW_DEF_80M = 0,
-	HALMAC_MAC_CLOCK_HW_DEF_40M = 1,
-	HALMAC_MAC_CLOCK_HW_DEF_20M = 2,
-};
-
-/* Rx aggregation parameters */
-enum halmac_normal_rxagg_th_to {
-	HALMAC_NORMAL_RXAGG_THRESHOLD = 0xFF,
-	HALMAC_NORMAL_RXAGG_TIMEOUT = 0x01,
-};
-
-enum halmac_loopback_rxagg_th_to {
-	HALMAC_LOOPBACK_RXAGG_THRESHOLD = 0xFF,
-	HALMAC_LOOPBACK_RXAGG_TIMEOUT = 0x01,
-};
-
-/* Chip ID*/
-enum halmac_chip_id {
-	HALMAC_CHIP_ID_8822B = 0,
-	HALMAC_CHIP_ID_8821C = 1,
-	HALMAC_CHIP_ID_8814B = 2,
-	HALMAC_CHIP_ID_8197F = 3,
-	HALMAC_CHIP_ID_UNDEFINE = 0x7F,
-};
-
-enum halmac_chip_id_hw_def {
-	HALMAC_CHIP_ID_HW_DEF_8723A = 0x01,
-	HALMAC_CHIP_ID_HW_DEF_8188E = 0x02,
-	HALMAC_CHIP_ID_HW_DEF_8881A = 0x03,
-	HALMAC_CHIP_ID_HW_DEF_8812A = 0x04,
-	HALMAC_CHIP_ID_HW_DEF_8821A = 0x05,
-	HALMAC_CHIP_ID_HW_DEF_8723B = 0x06,
-	HALMAC_CHIP_ID_HW_DEF_8192E = 0x07,
-	HALMAC_CHIP_ID_HW_DEF_8814A = 0x08,
-	HALMAC_CHIP_ID_HW_DEF_8821C = 0x09,
-	HALMAC_CHIP_ID_HW_DEF_8822B = 0x0A,
-	HALMAC_CHIP_ID_HW_DEF_8703B = 0x0B,
-	HALMAC_CHIP_ID_HW_DEF_8188F = 0x0C,
-	HALMAC_CHIP_ID_HW_DEF_8192F = 0x0D,
-	HALMAC_CHIP_ID_HW_DEF_8197F = 0x0E,
-	HALMAC_CHIP_ID_HW_DEF_8723D = 0x0F,
-	HALMAC_CHIP_ID_HW_DEF_8814B = 0x10,
-	HALMAC_CHIP_ID_HW_DEF_UNDEFINE = 0x7F,
-	HALMAC_CHIP_ID_HW_DEF_PS = 0xEA,
-};
-
-/* Chip Version*/
-enum halmac_chip_ver {
-	HALMAC_CHIP_VER_A_CUT = 0x00,
-	HALMAC_CHIP_VER_B_CUT = 0x01,
-	HALMAC_CHIP_VER_C_CUT = 0x02,
-	HALMAC_CHIP_VER_D_CUT = 0x03,
-	HALMAC_CHIP_VER_E_CUT = 0x04,
-	HALMAC_CHIP_VER_F_CUT = 0x05,
-	HALMAC_CHIP_VER_TEST = 0xFF,
-	HALMAC_CHIP_VER_UNDEFINE = 0x7FFF,
-};
-
-/* Network type select */
-enum halmac_network_type_select {
-	HALMAC_NETWORK_NO_LINK = 0,
-	HALMAC_NETWORK_ADHOC = 1,
-	HALMAC_NETWORK_INFRASTRUCTURE = 2,
-	HALMAC_NETWORK_AP = 3,
-	HALMAC_NETWORK_UNDEFINE = 0x7F,
-};
-
-/* Transfer mode select */
-enum halmac_trnsfer_mode_select {
-	HALMAC_TRNSFER_NORMAL = 0x0,
-	HALMAC_TRNSFER_LOOPBACK_DIRECT = 0xB,
-	HALMAC_TRNSFER_LOOPBACK_DELAY = 0x3,
-	HALMAC_TRNSFER_UNDEFINE = 0x7F,
-};
-
-/* Queue select */
-enum halmac_dma_mapping {
-	HALMAC_DMA_MAPPING_EXTRA = 0,
-	HALMAC_DMA_MAPPING_LOW = 1,
-	HALMAC_DMA_MAPPING_NORMAL = 2,
-	HALMAC_DMA_MAPPING_HIGH = 3,
-	HALMAC_DMA_MAPPING_UNDEFINE = 0x7F,
-};
-
-#define HALMAC_MAP2_HQ HALMAC_DMA_MAPPING_HIGH
-#define HALMAC_MAP2_NQ HALMAC_DMA_MAPPING_NORMAL
-#define HALMAC_MAP2_LQ HALMAC_DMA_MAPPING_LOW
-#define HALMAC_MAP2_EXQ HALMAC_DMA_MAPPING_EXTRA
-#define HALMAC_MAP2_UNDEF HALMAC_DMA_MAPPING_UNDEFINE
-
-/* TXDESC queue select TID */
-enum halmac_txdesc_queue_tid {
-	HALMAC_TXDESC_QSEL_TID0 = 0,
-	HALMAC_TXDESC_QSEL_TID1 = 1,
-	HALMAC_TXDESC_QSEL_TID2 = 2,
-	HALMAC_TXDESC_QSEL_TID3 = 3,
-	HALMAC_TXDESC_QSEL_TID4 = 4,
-	HALMAC_TXDESC_QSEL_TID5 = 5,
-	HALMAC_TXDESC_QSEL_TID6 = 6,
-	HALMAC_TXDESC_QSEL_TID7 = 7,
-	HALMAC_TXDESC_QSEL_TID8 = 8,
-	HALMAC_TXDESC_QSEL_TID9 = 9,
-	HALMAC_TXDESC_QSEL_TIDA = 10,
-	HALMAC_TXDESC_QSEL_TIDB = 11,
-	HALMAC_TXDESC_QSEL_TIDC = 12,
-	HALMAC_TXDESC_QSEL_TIDD = 13,
-	HALMAC_TXDESC_QSEL_TIDE = 14,
-	HALMAC_TXDESC_QSEL_TIDF = 15,
-
-	HALMAC_TXDESC_QSEL_BEACON = 0x10,
-	HALMAC_TXDESC_QSEL_HIGH = 0x11,
-	HALMAC_TXDESC_QSEL_MGT = 0x12,
-	HALMAC_TXDESC_QSEL_H2C_CMD = 0x13,
-
-	HALMAC_TXDESC_QSEL_UNDEFINE = 0x7F,
-};
-
-enum halmac_ptcl_queue {
-	HALMAC_PTCL_QUEUE_VO = 0x0,
-	HALMAC_PTCL_QUEUE_VI = 0x1,
-	HALMAC_PTCL_QUEUE_BE = 0x2,
-	HALMAC_PTCL_QUEUE_BK = 0x3,
-	HALMAC_PTCL_QUEUE_MG = 0x4,
-	HALMAC_PTCL_QUEUE_HI = 0x5,
-	HALMAC_PTCL_QUEUE_NUM = 0x6,
-	HALMAC_PTCL_QUEUE_UNDEFINE = 0x7F,
-};
-
-enum halmac_queue_select {
-	HALMAC_QUEUE_SELECT_VO = HALMAC_TXDESC_QSEL_TID6,
-	HALMAC_QUEUE_SELECT_VI = HALMAC_TXDESC_QSEL_TID4,
-	HALMAC_QUEUE_SELECT_BE = HALMAC_TXDESC_QSEL_TID0,
-	HALMAC_QUEUE_SELECT_BK = HALMAC_TXDESC_QSEL_TID1,
-	HALMAC_QUEUE_SELECT_VO_V2 = HALMAC_TXDESC_QSEL_TID7,
-	HALMAC_QUEUE_SELECT_VI_V2 = HALMAC_TXDESC_QSEL_TID5,
-	HALMAC_QUEUE_SELECT_BE_V2 = HALMAC_TXDESC_QSEL_TID3,
-	HALMAC_QUEUE_SELECT_BK_V2 = HALMAC_TXDESC_QSEL_TID2,
-	HALMAC_QUEUE_SELECT_BCN = HALMAC_TXDESC_QSEL_BEACON,
-	HALMAC_QUEUE_SELECT_HIGH = HALMAC_TXDESC_QSEL_HIGH,
-	HALMAC_QUEUE_SELECT_MGNT = HALMAC_TXDESC_QSEL_MGT,
-	HALMAC_QUEUE_SELECT_CMD = HALMAC_TXDESC_QSEL_H2C_CMD,
-	HALMAC_QUEUE_SELECT_UNDEFINE = 0x7F,
-};
-
-/* USB burst size */
-enum halmac_usb_burst_size {
-	HALMAC_USB_BURST_SIZE_3_0 = 0x0,
-	HALMAC_USB_BURST_SIZE_2_0_HSPEED = 0x1,
-	HALMAC_USB_BURST_SIZE_2_0_FSPEED = 0x2,
-	HALMAC_USB_BURST_SIZE_2_0_OTHERS = 0x3,
-	HALMAC_USB_BURST_SIZE_UNDEFINE = 0x7F,
-};
-
-/* HAL API  function parameters*/
-enum halmac_interface {
-	HALMAC_INTERFACE_PCIE = 0x0,
-	HALMAC_INTERFACE_USB = 0x1,
-	HALMAC_INTERFACE_SDIO = 0x2,
-	HALMAC_INTERFACE_AXI = 0x3,
-	HALMAC_INTERFACE_UNDEFINE = 0x7F,
-};
-
-enum halmac_rx_agg_mode {
-	HALMAC_RX_AGG_MODE_NONE = 0x0,
-	HALMAC_RX_AGG_MODE_DMA = 0x1,
-	HALMAC_RX_AGG_MODE_USB = 0x2,
-	HALMAC_RX_AGG_MODE_UNDEFINE = 0x7F,
-};
-
-struct halmac_rxagg_th {
-	u8 drv_define;
-	u8 timeout;
-	u8 size;
-};
-
-struct halmac_rxagg_cfg {
-	enum halmac_rx_agg_mode mode;
-	struct halmac_rxagg_th threshold;
-};
-
-enum halmac_mac_power {
-	HALMAC_MAC_POWER_OFF = 0x0,
-	HALMAC_MAC_POWER_ON = 0x1,
-	HALMAC_MAC_POWER_UNDEFINE = 0x7F,
-};
-
-enum halmac_ps_state {
-	HALMAC_PS_STATE_ACT = 0x0,
-	HALMAC_PS_STATE_LPS = 0x1,
-	HALMAC_PS_STATE_IPS = 0x2,
-	HALMAC_PS_STATE_UNDEFINE = 0x7F,
-};
-
-enum halmac_trx_mode {
-	HALMAC_TRX_MODE_NORMAL = 0x0,
-	HALMAC_TRX_MODE_TRXSHARE = 0x1,
-	HALMAC_TRX_MODE_WMM = 0x2,
-	HALMAC_TRX_MODE_P2P = 0x3,
-	HALMAC_TRX_MODE_LOOPBACK = 0x4,
-	HALMAC_TRX_MODE_DELAY_LOOPBACK = 0x5,
-	HALMAC_TRX_MODE_MAX = 0x6,
-	HALMAC_TRX_MODE_WMM_LINUX = 0x7E,
-	HALMAC_TRX_MODE_UNDEFINE = 0x7F,
-};
-
-enum halmac_wireless_mode {
-	HALMAC_WIRELESS_MODE_B = 0x0,
-	HALMAC_WIRELESS_MODE_G = 0x1,
-	HALMAC_WIRELESS_MODE_N = 0x2,
-	HALMAC_WIRELESS_MODE_AC = 0x3,
-	HALMAC_WIRELESS_MODE_UNDEFINE = 0x7F,
-};
-
-enum halmac_bw {
-	HALMAC_BW_20 = 0x00,
-	HALMAC_BW_40 = 0x01,
-	HALMAC_BW_80 = 0x02,
-	HALMAC_BW_160 = 0x03,
-	HALMAC_BW_5 = 0x04,
-	HALMAC_BW_10 = 0x05,
-	HALMAC_BW_MAX = 0x06,
-	HALMAC_BW_UNDEFINE = 0x7F,
-};
-
-enum halmac_efuse_read_cfg {
-	HALMAC_EFUSE_R_AUTO = 0x00,
-	HALMAC_EFUSE_R_DRV = 0x01,
-	HALMAC_EFUSE_R_FW = 0x02,
-	HALMAC_EFUSE_R_UNDEFINE = 0x7F,
-};
-
-enum halmac_dlfw_mem {
-	HALMAC_DLFW_MEM_EMEM = 0x00,
-	HALMAC_DLFW_MEM_UNDEFINE = 0x7F,
-};
-
-struct halmac_tx_desc {
-	u32 dword0;
-	u32 dword1;
-	u32 dword2;
-	u32 dword3;
-	u32 dword4;
-	u32 dword5;
-	u32 dword6;
-	u32 dword7;
-	u32 dword8;
-	u32 dword9;
-	u32 dword10;
-	u32 dword11;
-};
-
-struct halmac_rx_desc {
-	u32 dword0;
-	u32 dword1;
-	u32 dword2;
-	u32 dword3;
-	u32 dword4;
-	u32 dword5;
-};
-
-struct halmac_fwlps_option {
-	u8 mode;
-	u8 clk_request;
-	u8 rlbm;
-	u8 smart_ps;
-	u8 awake_interval;
-	u8 all_queue_uapsd;
-	u8 pwr_state;
-	u8 low_pwr_rx_beacon;
-	u8 ant_auto_switch;
-	u8 ps_allow_bt_high_priority;
-	u8 protect_bcn;
-	u8 silence_period;
-	u8 fast_bt_connect;
-	u8 two_antenna_en;
-	u8 adopt_user_setting;
-	u8 drv_bcn_early_shift;
-	bool enter_32K;
-};
-
-struct halmac_fwips_option {
-	u8 adopt_user_setting;
-};
-
-struct halmac_wowlan_option {
-	u8 adopt_user_setting;
-};
-
-struct halmac_bcn_ie_info {
-	u8 func_en;
-	u8 size_th;
-	u8 timeout;
-	u8 ie_bmp[HALMAC_BCN_IE_BMP_SIZE];
-};
-
-enum halmac_reg_type {
-	HALMAC_REG_TYPE_MAC = 0x0,
-	HALMAC_REG_TYPE_BB = 0x1,
-	HALMAC_REG_TYPE_RF = 0x2,
-	HALMAC_REG_TYPE_UNDEFINE = 0x7F,
-};
-
-enum halmac_parameter_cmd {
-	/* HALMAC_PARAMETER_CMD_LLT				= 0x1, */
-	/* HALMAC_PARAMETER_CMD_R_EFUSE			= 0x2, */
-	/* HALMAC_PARAMETER_CMD_EFUSE_PATCH	= 0x3, */
-	HALMAC_PARAMETER_CMD_MAC_W8 = 0x4,
-	HALMAC_PARAMETER_CMD_MAC_W16 = 0x5,
-	HALMAC_PARAMETER_CMD_MAC_W32 = 0x6,
-	HALMAC_PARAMETER_CMD_RF_W = 0x7,
-	HALMAC_PARAMETER_CMD_BB_W8 = 0x8,
-	HALMAC_PARAMETER_CMD_BB_W16 = 0x9,
-	HALMAC_PARAMETER_CMD_BB_W32 = 0XA,
-	HALMAC_PARAMETER_CMD_DELAY_US = 0X10,
-	HALMAC_PARAMETER_CMD_DELAY_MS = 0X11,
-	HALMAC_PARAMETER_CMD_END = 0XFF,
-};
-
-union halmac_parameter_content {
-	struct _MAC_REG_W {
-		u32 value;
-		u32 msk;
-		u16 offset;
-		u8 msk_en;
-	} MAC_REG_W;
-	struct _BB_REG_W {
-		u32 value;
-		u32 msk;
-		u16 offset;
-		u8 msk_en;
-	} BB_REG_W;
-	struct _RF_REG_W {
-		u32 value;
-		u32 msk;
-		u8 offset;
-		u8 msk_en;
-		u8 rf_path;
-	} RF_REG_W;
-	struct _DELAY_TIME {
-		u32 rsvd1;
-		u32 rsvd2;
-		u16 delay_time;
-		u8 rsvd3;
-	} DELAY_TIME;
-};
-
-struct halmac_phy_parameter_info {
-	enum halmac_parameter_cmd cmd_id;
-	union halmac_parameter_content content;
-};
-
-struct halmac_h2c_info {
-	u16 h2c_seq_num; /* H2C sequence number */
-	u8 in_use; /* 0 : empty 1 : used */
-	enum halmac_h2c_return_code status;
-};
-
-struct halmac_pg_efuse_info {
-	u8 *efuse_map;
-	u32 efuse_map_size;
-	u8 *efuse_mask;
-	u32 efuse_mask_size;
-};
-
-struct halmac_txagg_buff_info {
-	u8 *tx_agg_buf;
-	u8 *curr_pkt_buf;
-	u32 avai_buf_size;
-	u32 total_pkt_size;
-	u8 agg_num;
-};
-
-struct halmac_config_para_info {
-	u32 para_buf_size; /* Parameter buffer size */
-	u8 *cfg_para_buf; /* Buffer for config parameter */
-	u8 *para_buf_w; /* Write pointer of the parameter buffer */
-	u32 para_num; /* Parameter numbers in parameter buffer */
-	u32 avai_para_buf_size; /* Free size of parameter buffer */
-	u32 offset_accumulation;
-	u32 value_accumulation;
-	enum halmac_data_type data_type; /*DataType which is passed to FW*/
-	u8 datapack_segment; /*DataPack Segment, from segment0...*/
-	bool full_fifo_mode; /* Used full tx fifo to save cfg parameter */
-};
-
-struct halmac_hw_config_info {
-	u32 efuse_size; /* Record efuse size */
-	u32 eeprom_size; /* Record eeprom size */
-	u32 bt_efuse_size; /* Record BT efuse size */
-	u32 tx_fifo_size; /* Record tx fifo size */
-	u32 rx_fifo_size; /* Record rx fifo size */
-	u8 txdesc_size; /* Record tx desc size */
-	u8 rxdesc_size; /* Record rx desc size */
-	u32 page_size; /* Record page size */
-	u16 tx_align_size;
-	u8 page_size_2_power;
-	u8 cam_entry_num; /* Record CAM entry number */
-};
-
-struct halmac_sdio_free_space {
-	u16 high_queue_number; /* Free space of HIQ */
-	u16 normal_queue_number; /* Free space of MIDQ */
-	u16 low_queue_number; /* Free space of LOWQ */
-	u16 public_queue_number; /* Free space of PUBQ */
-	u16 extra_queue_number; /* Free space of EXBQ */
-	u8 ac_oqt_number;
-	u8 non_ac_oqt_number;
-	u8 ac_empty;
-};
-
-enum hal_fifo_sel {
-	HAL_FIFO_SEL_TX,
-	HAL_FIFO_SEL_RX,
-	HAL_FIFO_SEL_RSVD_PAGE,
-	HAL_FIFO_SEL_REPORT,
-	HAL_FIFO_SEL_LLT,
-};
-
-enum halmac_drv_info {
-	HALMAC_DRV_INFO_NONE, /* No information is appended in rx_pkt */
-	HALMAC_DRV_INFO_PHY_STATUS, /* PHY status is appended after rx_desc */
-	HALMAC_DRV_INFO_PHY_SNIFFER, /* PHY status and sniffer info appended */
-	HALMAC_DRV_INFO_PHY_PLCP, /* PHY status and plcp header are appended */
-	HALMAC_DRV_INFO_UNDEFINE,
-};
-
-struct halmac_bt_coex_cmd {
-	u8 element_id;
-	u8 op_code;
-	u8 op_code_ver;
-	u8 req_num;
-	u8 data0;
-	u8 data1;
-	u8 data2;
-	u8 data3;
-	u8 data4;
-};
-
-enum halmac_pri_ch_idx {
-	HALMAC_CH_IDX_UNDEFINE = 0,
-	HALMAC_CH_IDX_1 = 1,
-	HALMAC_CH_IDX_2 = 2,
-	HALMAC_CH_IDX_3 = 3,
-	HALMAC_CH_IDX_4 = 4,
-	HALMAC_CH_IDX_MAX = 5,
-};
-
-struct halmac_ch_info {
-	enum halmac_cs_action_id action_id;
-	enum halmac_bw bw;
-	enum halmac_pri_ch_idx pri_ch_idx;
-	u8 channel;
-	u8 timeout;
-	u8 extra_info;
-};
-
-struct halmac_ch_extra_info {
-	u8 extra_info;
-	enum halmac_cs_extra_action_id extra_action_id;
-	u8 extra_info_size;
-	u8 *extra_info_data;
-};
-
-enum halmac_cs_periodic_option {
-	HALMAC_CS_PERIODIC_NONE,
-	HALMAC_CS_PERIODIC_NORMAL,
-	HALMAC_CS_PERIODIC_2_PHASE,
-	HALMAC_CS_PERIODIC_SEAMLESS,
-};
-
-struct halmac_ch_switch_option {
-	enum halmac_bw dest_bw;
-	enum halmac_cs_periodic_option periodic_option;
-	enum halmac_pri_ch_idx dest_pri_ch_idx;
-	/* u32 tsf_high; */
-	u32 tsf_low;
-	bool switch_en;
-	u8 dest_ch_en;
-	u8 absolute_time_en;
-	u8 dest_ch;
-	u8 normal_period;
-	u8 normal_cycle;
-	u8 phase_2_period;
-};
-
-struct halmac_fw_version {
-	u16 version;
-	u8 sub_version;
-	u8 sub_index;
-	u16 h2c_version;
-};
-
-enum halmac_rf_type {
-	HALMAC_RF_1T2R = 0,
-	HALMAC_RF_2T4R = 1,
-	HALMAC_RF_2T2R = 2,
-	HALMAC_RF_2T3R = 3,
-	HALMAC_RF_1T1R = 4,
-	HALMAC_RF_2T2R_GREEN = 5,
-	HALMAC_RF_3T3R = 6,
-	HALMAC_RF_3T4R = 7,
-	HALMAC_RF_4T4R = 8,
-	HALMAC_RF_MAX_TYPE = 0xF,
-};
-
-struct halmac_general_info {
-	u8 rfe_type;
-	enum halmac_rf_type rf_type;
-};
-
-struct halmac_pwr_tracking_para {
-	u8 enable;
-	u8 tx_pwr_index;
-	u8 pwr_tracking_offset_value;
-	u8 tssi_value;
-};
-
-struct halmac_pwr_tracking_option {
-	u8 type;
-	u8 bbswing_index;
-	struct halmac_pwr_tracking_para
-		pwr_tracking_para[4]; /* pathA, pathB, pathC, pathD */
-};
-
-struct halmac_nlo_cfg {
-	u8 num_of_ssid;
-	u8 num_of_hidden_ap;
-	u8 rsvd[2];
-	u32 pattern_check;
-	u32 rsvd1;
-	u32 rsvd2;
-	u8 ssid_len[HALMAC_SUPPORT_NLO_NUM];
-	u8 chiper_type[HALMAC_SUPPORT_NLO_NUM];
-	u8 rsvd3[HALMAC_SUPPORT_NLO_NUM];
-	u8 loc_probe_req[HALMAC_SUPPORT_PROBE_REQ_NUM];
-	u8 rsvd4[56];
-	u8 ssid[HALMAC_SUPPORT_NLO_NUM][HALMAC_MAX_SSID_LEN];
-};
-
-enum halmac_data_rate {
-	HALMAC_CCK1,
-	HALMAC_CCK2,
-	HALMAC_CCK5_5,
-	HALMAC_CCK11,
-	HALMAC_OFDM6,
-	HALMAC_OFDM9,
-	HALMAC_OFDM12,
-	HALMAC_OFDM18,
-	HALMAC_OFDM24,
-	HALMAC_OFDM36,
-	HALMAC_OFDM48,
-	HALMAC_OFDM54,
-	HALMAC_MCS0,
-	HALMAC_MCS1,
-	HALMAC_MCS2,
-	HALMAC_MCS3,
-	HALMAC_MCS4,
-	HALMAC_MCS5,
-	HALMAC_MCS6,
-	HALMAC_MCS7,
-	HALMAC_MCS8,
-	HALMAC_MCS9,
-	HALMAC_MCS10,
-	HALMAC_MCS11,
-	HALMAC_MCS12,
-	HALMAC_MCS13,
-	HALMAC_MCS14,
-	HALMAC_MCS15,
-	HALMAC_MCS16,
-	HALMAC_MCS17,
-	HALMAC_MCS18,
-	HALMAC_MCS19,
-	HALMAC_MCS20,
-	HALMAC_MCS21,
-	HALMAC_MCS22,
-	HALMAC_MCS23,
-	HALMAC_MCS24,
-	HALMAC_MCS25,
-	HALMAC_MCS26,
-	HALMAC_MCS27,
-	HALMAC_MCS28,
-	HALMAC_MCS29,
-	HALMAC_MCS30,
-	HALMAC_MCS31,
-	HALMAC_VHT_NSS1_MCS0,
-	HALMAC_VHT_NSS1_MCS1,
-	HALMAC_VHT_NSS1_MCS2,
-	HALMAC_VHT_NSS1_MCS3,
-	HALMAC_VHT_NSS1_MCS4,
-	HALMAC_VHT_NSS1_MCS5,
-	HALMAC_VHT_NSS1_MCS6,
-	HALMAC_VHT_NSS1_MCS7,
-	HALMAC_VHT_NSS1_MCS8,
-	HALMAC_VHT_NSS1_MCS9,
-	HALMAC_VHT_NSS2_MCS0,
-	HALMAC_VHT_NSS2_MCS1,
-	HALMAC_VHT_NSS2_MCS2,
-	HALMAC_VHT_NSS2_MCS3,
-	HALMAC_VHT_NSS2_MCS4,
-	HALMAC_VHT_NSS2_MCS5,
-	HALMAC_VHT_NSS2_MCS6,
-	HALMAC_VHT_NSS2_MCS7,
-	HALMAC_VHT_NSS2_MCS8,
-	HALMAC_VHT_NSS2_MCS9,
-	HALMAC_VHT_NSS3_MCS0,
-	HALMAC_VHT_NSS3_MCS1,
-	HALMAC_VHT_NSS3_MCS2,
-	HALMAC_VHT_NSS3_MCS3,
-	HALMAC_VHT_NSS3_MCS4,
-	HALMAC_VHT_NSS3_MCS5,
-	HALMAC_VHT_NSS3_MCS6,
-	HALMAC_VHT_NSS3_MCS7,
-	HALMAC_VHT_NSS3_MCS8,
-	HALMAC_VHT_NSS3_MCS9,
-	HALMAC_VHT_NSS4_MCS0,
-	HALMAC_VHT_NSS4_MCS1,
-	HALMAC_VHT_NSS4_MCS2,
-	HALMAC_VHT_NSS4_MCS3,
-	HALMAC_VHT_NSS4_MCS4,
-	HALMAC_VHT_NSS4_MCS5,
-	HALMAC_VHT_NSS4_MCS6,
-	HALMAC_VHT_NSS4_MCS7,
-	HALMAC_VHT_NSS4_MCS8,
-	HALMAC_VHT_NSS4_MCS9
-};
-
-enum halmac_rf_path {
-	HALMAC_RF_PATH_A,
-	HALMAC_RF_PATH_B,
-	HALMAC_RF_PATH_C,
-	HALMAC_RF_PATH_D
-};
-
-enum halmac_snd_pkt_sel {
-	HALMAC_UNI_NDPA,
-	HALMAC_BMC_NDPA,
-	HALMAC_NON_FINAL_BFRPRPOLL,
-	HALMAC_FINAL_BFRPTPOLL,
-};
-
-enum hal_security_type {
-	HAL_SECURITY_TYPE_NONE = 0,
-	HAL_SECURITY_TYPE_WEP40 = 1,
-	HAL_SECURITY_TYPE_WEP104 = 2,
-	HAL_SECURITY_TYPE_TKIP = 3,
-	HAL_SECURITY_TYPE_AES128 = 4,
-	HAL_SECURITY_TYPE_WAPI = 5,
-	HAL_SECURITY_TYPE_AES256 = 6,
-	HAL_SECURITY_TYPE_GCMP128 = 7,
-	HAL_SECURITY_TYPE_GCMP256 = 8,
-	HAL_SECURITY_TYPE_GCMSMS4 = 9,
-	HAL_SECURITY_TYPE_BIP = 10,
-	HAL_SECURITY_TYPE_UNDEFINE = 0x7F,
-};
-
-enum hal_intf_phy {
-	HAL_INTF_PHY_USB2 = 0,
-	HAL_INTF_PHY_USB3 = 1,
-	HAL_INTF_PHY_PCIE_GEN1 = 2,
-	HAL_INTF_PHY_PCIE_GEN2 = 3,
-	HAL_INTF_PHY_UNDEFINE = 0x7F,
-};
-
-enum halmac_dbg_msg_info {
-	HALMAC_DBG_ERR,
-	HALMAC_DBG_WARN,
-	HALMAC_DBG_TRACE,
-};
-
-enum halmac_dbg_msg_type {
-	HALMAC_MSG_INIT,
-	HALMAC_MSG_EFUSE,
-	HALMAC_MSG_FW,
-	HALMAC_MSG_H2C,
-	HALMAC_MSG_PWR,
-	HALMAC_MSG_SND,
-	HALMAC_MSG_COMMON,
-	HALMAC_MSG_DBI,
-	HALMAC_MSG_MDIO,
-	HALMAC_MSG_USB
-};
-
-enum halmac_cmd_process_status {
-	HALMAC_CMD_PROCESS_IDLE = 0x01, /* Init status */
-	HALMAC_CMD_PROCESS_SENDING = 0x02, /* Wait ack */
-	HALMAC_CMD_PROCESS_RCVD = 0x03, /* Rcvd ack */
-	HALMAC_CMD_PROCESS_DONE = 0x04, /* Event done */
-	HALMAC_CMD_PROCESS_ERROR = 0x05, /* Return code error */
-	HALMAC_CMD_PROCESS_UNDEFINE = 0x7F,
-};
-
-enum halmac_feature_id {
-	HALMAC_FEATURE_CFG_PARA, /* Support */
-	HALMAC_FEATURE_DUMP_PHYSICAL_EFUSE, /* Support */
-	HALMAC_FEATURE_DUMP_LOGICAL_EFUSE, /* Support */
-	HALMAC_FEATURE_UPDATE_PACKET, /* Support */
-	HALMAC_FEATURE_UPDATE_DATAPACK,
-	HALMAC_FEATURE_RUN_DATAPACK,
-	HALMAC_FEATURE_CHANNEL_SWITCH, /* Support */
-	HALMAC_FEATURE_IQK, /* Support */
-	HALMAC_FEATURE_POWER_TRACKING, /* Support */
-	HALMAC_FEATURE_PSD, /* Support */
-	HALMAC_FEATURE_ALL, /* Support, only for reset */
-};
-
-enum halmac_drv_rsvd_pg_num {
-	HALMAC_RSVD_PG_NUM16, /* 2K */
-	HALMAC_RSVD_PG_NUM24, /* 3K */
-	HALMAC_RSVD_PG_NUM32, /* 4K */
-};
-
-enum halmac_pcie_cfg {
-	HALMAC_PCIE_GEN1,
-	HALMAC_PCIE_GEN2,
-	HALMAC_PCIE_CFG_UNDEFINE,
-};
-
-enum halmac_portid {
-	HALMAC_PORTID0 = 0,
-	HALMAC_PORTID1 = 1,
-	HALMAC_PORTID2 = 2,
-	HALMAC_PORTID3 = 3,
-	HALMAC_PORTID4 = 4,
-	HALMAC_PORTIDMAX
-};
-
-struct halmac_p2pps {
-	/*DW0*/
-	u8 offload_en : 1;
-	u8 role : 1;
-	u8 ctwindow_en : 1;
-	u8 noa_en : 1;
-	u8 noa_sel : 1;
-	u8 all_sta_sleep : 1;
-	u8 discovery : 1;
-	u8 rsvd2 : 1;
-	u8 p2p_port_id;
-	u8 p2p_group;
-	u8 p2p_macid;
-
-	/*DW1*/
-	u8 ctwindow_length;
-	u8 rsvd3;
-	u8 rsvd4;
-	u8 rsvd5;
-
-	/*DW2*/
-	u32 noa_duration_para;
-
-	/*DW3*/
-	u32 noa_interval_para;
-
-	/*DW4*/
-	u32 noa_start_time_para;
-
-	/*DW5*/
-	u32 noa_count_para;
-};
-
-/* Platform API setting */
-struct halmac_platform_api {
-	/* R/W register */
-	u8 (*SDIO_CMD52_READ)(void *driver_adapter, u32 offset);
-	u8 (*SDIO_CMD53_READ_8)(void *driver_adapter, u32 offset);
-	u16 (*SDIO_CMD53_READ_16)(void *driver_adapter, u32 offset);
-	u32 (*SDIO_CMD53_READ_32)(void *driver_adapter, u32 offset);
-	u8 (*SDIO_CMD53_READ_N)(void *driver_adapter, u32 offset, u32 size,
-				u8 *data);
-	void (*SDIO_CMD52_WRITE)(void *driver_adapter, u32 offset, u8 value);
-	void (*SDIO_CMD53_WRITE_8)(void *driver_adapter, u32 offset, u8 value);
-	void (*SDIO_CMD53_WRITE_16)(void *driver_adapter, u32 offset,
-				    u16 value);
-	void (*SDIO_CMD53_WRITE_32)(void *driver_adapter, u32 offset,
-				    u32 value);
-	u8 (*REG_READ_8)(void *driver_adapter, u32 offset);
-	u16 (*REG_READ_16)(void *driver_adapter, u32 offset);
-	u32 (*REG_READ_32)(void *driver_adapter, u32 offset);
-	void (*REG_WRITE_8)(void *driver_adapter, u32 offset, u8 value);
-	void (*REG_WRITE_16)(void *driver_adapter, u32 offset, u16 value);
-	void (*REG_WRITE_32)(void *driver_adapter, u32 offset, u32 value);
-
-	/* send buf to reserved page, the tx_desc is not included in buf,
-	 * driver need to fill tx_desc with qsel = bcn
-	 */
-	bool (*SEND_RSVD_PAGE)(void *driver_adapter, u8 *buf, u32 size);
-	/* send buf to h2c queue, the tx_desc is not included in buf,
-	 * driver need to fill tx_desc with qsel = h2c
-	 */
-	bool (*SEND_H2C_PKT)(void *driver_adapter, u8 *buf, u32 size);
-
-	bool (*EVENT_INDICATION)(void *driver_adapter,
-				 enum halmac_feature_id feature_id,
-				 enum halmac_cmd_process_status process_status,
-				 u8 *buf, u32 size);
-};
-
-/*1->Little endian 0->Big endian*/
-#if HALMAC_SYSTEM_ENDIAN
-
-#else
-
-#endif
-
-/* User can not use members in address_l_h, use address[6] is mandatory */
-union halmac_wlan_addr {
-	u8 address[6]; /* WLAN address (MACID, BSSID, Brodcast ID).
-			* address[0] is lowest, address[5] is highest
-			*/
-	struct {
-		union {
-			u32 address_low;
-			__le32 le_address_low;
-			u8 address_low_b[4];
-		};
-		union {
-			u16 address_high;
-			__le16 le_address_high;
-			u8 address_high_b[2];
-		};
-	} address_l_h;
-};
-
-enum halmac_snd_role {
-	HAL_BFER = 0,
-	HAL_BFEE = 1,
-};
-
-enum halmac_csi_seg_len {
-	HAL_CSI_SEG_4K = 0,
-	HAL_CSI_SEG_8K = 1,
-	HAL_CSI_SEG_11K = 2,
-};
-
-struct halmac_cfg_mumimo_para {
-	enum halmac_snd_role role;
-	bool sounding_sts[6];
-	u16 grouping_bitmap;
-	bool mu_tx_en;
-	u32 given_gid_tab[2];
-	u32 given_user_pos[4];
-};
-
-struct halmac_su_bfer_init_para {
-	u8 userid;
-	u16 paid;
-	u16 csi_para;
-	union halmac_wlan_addr bfer_address;
-};
-
-struct halmac_mu_bfee_init_para {
-	u8 userid;
-	u16 paid;
-	u32 user_position_l;
-	u32 user_position_h;
-};
-
-struct halmac_mu_bfer_init_para {
-	u16 paid;
-	u16 csi_para;
-	u16 my_aid;
-	enum halmac_csi_seg_len csi_length_sel;
-	union halmac_wlan_addr bfer_address;
-};
-
-struct halmac_snd_info {
-	u16 paid;
-	u8 userid;
-	enum halmac_data_rate ndpa_rate;
-	u16 csi_para;
-	u16 my_aid;
-	enum halmac_data_rate csi_rate;
-	enum halmac_csi_seg_len csi_length_sel;
-	enum halmac_snd_role role;
-	union halmac_wlan_addr bfer_address;
-	enum halmac_bw bw;
-	u8 txbf_en;
-	struct halmac_su_bfer_init_para *su_bfer_init;
-	struct halmac_mu_bfer_init_para *mu_bfer_init;
-	struct halmac_mu_bfee_init_para *mu_bfee_init;
-};
-
-struct halmac_cs_info {
-	u8 *ch_info_buf;
-	u8 *ch_info_buf_w;
-	u8 extra_info_en;
-	u32 buf_size; /* buffer size */
-	u32 avai_buf_size; /* buffer size */
-	u32 total_size;
-	u32 accu_timeout;
-	u32 ch_num;
-};
-
-struct halmac_restore_info {
-	u32 mac_register;
-	u32 value;
-	u8 length;
-};
-
-struct halmac_event_trigger {
-	u32 physical_efuse_map : 1;
-	u32 logical_efuse_map : 1;
-	u32 rsvd1 : 28;
-};
-
-struct halmac_h2c_header_info {
-	u16 sub_cmd_id;
-	u16 content_size;
-	bool ack;
-};
-
-enum halmac_dlfw_state {
-	HALMAC_DLFW_NONE = 0,
-	HALMAC_DLFW_DONE = 1,
-	HALMAC_GEN_INFO_SENT = 2,
-	HALMAC_DLFW_UNDEFINED = 0x7F,
-};
-
-enum halmac_efuse_cmd_construct_state {
-	HALMAC_EFUSE_CMD_CONSTRUCT_IDLE = 0,
-	HALMAC_EFUSE_CMD_CONSTRUCT_BUSY = 1,
-	HALMAC_EFUSE_CMD_CONSTRUCT_H2C_SENT = 2,
-	HALMAC_EFUSE_CMD_CONSTRUCT_STATE_NUM = 3,
-	HALMAC_EFUSE_CMD_CONSTRUCT_UNDEFINED = 0x7F,
-};
-
-enum halmac_cfg_para_cmd_construct_state {
-	HALMAC_CFG_PARA_CMD_CONSTRUCT_IDLE = 0,
-	HALMAC_CFG_PARA_CMD_CONSTRUCT_CONSTRUCTING = 1,
-	HALMAC_CFG_PARA_CMD_CONSTRUCT_H2C_SENT = 2,
-	HALMAC_CFG_PARA_CMD_CONSTRUCT_NUM = 3,
-	HALMAC_CFG_PARA_CMD_CONSTRUCT_UNDEFINED = 0x7F,
-};
-
-enum halmac_scan_cmd_construct_state {
-	HALMAC_SCAN_CMD_CONSTRUCT_IDLE = 0,
-	HALMAC_SCAN_CMD_CONSTRUCT_BUFFER_CLEARED = 1,
-	HALMAC_SCAN_CMD_CONSTRUCT_CONSTRUCTING = 2,
-	HALMAC_SCAN_CMD_CONSTRUCT_H2C_SENT = 3,
-	HALMAC_SCAN_CMD_CONSTRUCT_STATE_NUM = 4,
-	HALMAC_SCAN_CMD_CONSTRUCT_UNDEFINED = 0x7F,
-};
-
-enum halmac_api_state {
-	HALMAC_API_STATE_INIT = 0,
-	HALMAC_API_STATE_HALT = 1,
-	HALMAC_API_STATE_UNDEFINED = 0x7F,
-};
-
-struct halmac_efuse_state_set {
-	enum halmac_efuse_cmd_construct_state efuse_cmd_construct_state;
-	enum halmac_cmd_process_status process_status;
-	u8 fw_return_code;
-	u16 seq_num;
-};
-
-struct halmac_cfg_para_state_set {
-	enum halmac_cfg_para_cmd_construct_state cfg_para_cmd_construct_state;
-	enum halmac_cmd_process_status process_status;
-	u8 fw_return_code;
-	u16 seq_num;
-};
-
-struct halmac_scan_state_set {
-	enum halmac_scan_cmd_construct_state scan_cmd_construct_state;
-	enum halmac_cmd_process_status process_status;
-	u8 fw_return_code;
-	u16 seq_num;
-};
-
-struct halmac_update_packet_state_set {
-	enum halmac_cmd_process_status process_status;
-	u8 fw_return_code;
-	u16 seq_num;
-};
-
-struct halmac_iqk_state_set {
-	enum halmac_cmd_process_status process_status;
-	u8 fw_return_code;
-	u16 seq_num;
-};
-
-struct halmac_power_tracking_state_set {
-	enum halmac_cmd_process_status process_status;
-	u8 fw_return_code;
-	u16 seq_num;
-};
-
-struct halmac_psd_state_set {
-	enum halmac_cmd_process_status process_status;
-	u16 data_size;
-	u16 segment_size;
-	u8 *data;
-	u8 fw_return_code;
-	u16 seq_num;
-};
-
-struct halmac_state {
-	struct halmac_efuse_state_set
-		efuse_state_set; /* State machine + cmd process status */
-	struct halmac_cfg_para_state_set
-		cfg_para_state_set; /* State machine + cmd process status */
-	struct halmac_scan_state_set
-		scan_state_set; /* State machine + cmd process status */
-	struct halmac_update_packet_state_set
-		update_packet_set; /* cmd process status */
-	struct halmac_iqk_state_set iqk_set; /* cmd process status */
-	struct halmac_power_tracking_state_set
-		power_tracking_set; /* cmd process status */
-	struct halmac_psd_state_set psd_set; /* cmd process status */
-	enum halmac_api_state api_state; /* Halmac api state */
-	enum halmac_mac_power mac_power; /* 0 : power off, 1 : power on*/
-	enum halmac_ps_state ps_state; /* power saving state */
-	enum halmac_dlfw_state dlfw_state; /* download FW state */
-};
-
-struct halmac_ver {
-	u8 major_ver;
-	u8 prototype_ver;
-	u8 minor_ver;
-};
-
-enum halmac_api_id {
-	/*stuff, need to be the 1st*/
-	HALMAC_API_STUFF = 0x0,
-	/*stuff, need to be the 1st*/
-	HALMAC_API_MAC_POWER_SWITCH = 0x1,
-	HALMAC_API_DOWNLOAD_FIRMWARE = 0x2,
-	HALMAC_API_CFG_MAC_ADDR = 0x3,
-	HALMAC_API_CFG_BSSID = 0x4,
-	HALMAC_API_CFG_MULTICAST_ADDR = 0x5,
-	HALMAC_API_PRE_INIT_SYSTEM_CFG = 0x6,
-	HALMAC_API_INIT_SYSTEM_CFG = 0x7,
-	HALMAC_API_INIT_TRX_CFG = 0x8,
-	HALMAC_API_CFG_RX_AGGREGATION = 0x9,
-	HALMAC_API_INIT_PROTOCOL_CFG = 0xA,
-	HALMAC_API_INIT_EDCA_CFG = 0xB,
-	HALMAC_API_CFG_OPERATION_MODE = 0xC,
-	HALMAC_API_CFG_CH_BW = 0xD,
-	HALMAC_API_CFG_BW = 0xE,
-	HALMAC_API_INIT_WMAC_CFG = 0xF,
-	HALMAC_API_INIT_MAC_CFG = 0x10,
-	HALMAC_API_INIT_SDIO_CFG = 0x11,
-	HALMAC_API_INIT_USB_CFG = 0x12,
-	HALMAC_API_INIT_PCIE_CFG = 0x13,
-	HALMAC_API_INIT_INTERFACE_CFG = 0x14,
-	HALMAC_API_DEINIT_SDIO_CFG = 0x15,
-	HALMAC_API_DEINIT_USB_CFG = 0x16,
-	HALMAC_API_DEINIT_PCIE_CFG = 0x17,
-	HALMAC_API_DEINIT_INTERFACE_CFG = 0x18,
-	HALMAC_API_GET_EFUSE_SIZE = 0x19,
-	HALMAC_API_DUMP_EFUSE_MAP = 0x1A,
-	HALMAC_API_WRITE_EFUSE = 0x1B,
-	HALMAC_API_READ_EFUSE = 0x1C,
-	HALMAC_API_GET_LOGICAL_EFUSE_SIZE = 0x1D,
-	HALMAC_API_DUMP_LOGICAL_EFUSE_MAP = 0x1E,
-	HALMAC_API_WRITE_LOGICAL_EFUSE = 0x1F,
-	HALMAC_API_READ_LOGICAL_EFUSE = 0x20,
-	HALMAC_API_PG_EFUSE_BY_MAP = 0x21,
-	HALMAC_API_GET_C2H_INFO = 0x22,
-	HALMAC_API_CFG_FWLPS_OPTION = 0x23,
-	HALMAC_API_CFG_FWIPS_OPTION = 0x24,
-	HALMAC_API_ENTER_WOWLAN = 0x25,
-	HALMAC_API_LEAVE_WOWLAN = 0x26,
-	HALMAC_API_ENTER_PS = 0x27,
-	HALMAC_API_LEAVE_PS = 0x28,
-	HALMAC_API_H2C_LB = 0x29,
-	HALMAC_API_DEBUG = 0x2A,
-	HALMAC_API_CFG_PARAMETER = 0x2B,
-	HALMAC_API_UPDATE_PACKET = 0x2C,
-	HALMAC_API_BCN_IE_FILTER = 0x2D,
-	HALMAC_API_REG_READ_8 = 0x2E,
-	HALMAC_API_REG_WRITE_8 = 0x2F,
-	HALMAC_API_REG_READ_16 = 0x30,
-	HALMAC_API_REG_WRITE_16 = 0x31,
-	HALMAC_API_REG_READ_32 = 0x32,
-	HALMAC_API_REG_WRITE_32 = 0x33,
-	HALMAC_API_TX_ALLOWED_SDIO = 0x34,
-	HALMAC_API_SET_BULKOUT_NUM = 0x35,
-	HALMAC_API_GET_SDIO_TX_ADDR = 0x36,
-	HALMAC_API_GET_USB_BULKOUT_ID = 0x37,
-	HALMAC_API_TIMER_2S = 0x38,
-	HALMAC_API_FILL_TXDESC_CHECKSUM = 0x39,
-	HALMAC_API_SEND_ORIGINAL_H2C = 0x3A,
-	HALMAC_API_UPDATE_DATAPACK = 0x3B,
-	HALMAC_API_RUN_DATAPACK = 0x3C,
-	HALMAC_API_CFG_DRV_INFO = 0x3D,
-	HALMAC_API_SEND_BT_COEX = 0x3E,
-	HALMAC_API_VERIFY_PLATFORM_API = 0x3F,
-	HALMAC_API_GET_FIFO_SIZE = 0x40,
-	HALMAC_API_DUMP_FIFO = 0x41,
-	HALMAC_API_CFG_TXBF = 0x42,
-	HALMAC_API_CFG_MUMIMO = 0x43,
-	HALMAC_API_CFG_SOUNDING = 0x44,
-	HALMAC_API_DEL_SOUNDING = 0x45,
-	HALMAC_API_SU_BFER_ENTRY_INIT = 0x46,
-	HALMAC_API_SU_BFEE_ENTRY_INIT = 0x47,
-	HALMAC_API_MU_BFER_ENTRY_INIT = 0x48,
-	HALMAC_API_MU_BFEE_ENTRY_INIT = 0x49,
-	HALMAC_API_SU_BFER_ENTRY_DEL = 0x4A,
-	HALMAC_API_SU_BFEE_ENTRY_DEL = 0x4B,
-	HALMAC_API_MU_BFER_ENTRY_DEL = 0x4C,
-	HALMAC_API_MU_BFEE_ENTRY_DEL = 0x4D,
-
-	HALMAC_API_ADD_CH_INFO = 0x4E,
-	HALMAC_API_ADD_EXTRA_CH_INFO = 0x4F,
-	HALMAC_API_CTRL_CH_SWITCH = 0x50,
-	HALMAC_API_CLEAR_CH_INFO = 0x51,
-
-	HALMAC_API_SEND_GENERAL_INFO = 0x52,
-	HALMAC_API_START_IQK = 0x53,
-	HALMAC_API_CTRL_PWR_TRACKING = 0x54,
-	HALMAC_API_PSD = 0x55,
-	HALMAC_API_CFG_TX_AGG_ALIGN = 0x56,
-
-	HALMAC_API_QUERY_STATE = 0x57,
-	HALMAC_API_RESET_FEATURE = 0x58,
-	HALMAC_API_CHECK_FW_STATUS = 0x59,
-	HALMAC_API_DUMP_FW_DMEM = 0x5A,
-	HALMAC_API_CFG_MAX_DL_SIZE = 0x5B,
-
-	HALMAC_API_INIT_OBJ = 0x5C,
-	HALMAC_API_DEINIT_OBJ = 0x5D,
-	HALMAC_API_CFG_LA_MODE = 0x5E,
-	HALMAC_API_GET_HW_VALUE = 0x5F,
-	HALMAC_API_SET_HW_VALUE = 0x60,
-	HALMAC_API_CFG_DRV_RSVD_PG_NUM = 0x61,
-	HALMAC_API_SWITCH_EFUSE_BANK = 0x62,
-	HALMAC_API_WRITE_EFUSE_BT = 0x63,
-	HALMAC_API_DUMP_EFUSE_MAP_BT = 0x64,
-	HALMAC_API_DL_DRV_RSVD_PG = 0x65,
-	HALMAC_API_PCIE_SWITCH = 0x66,
-	HALMAC_API_PHY_CFG = 0x67,
-	HALMAC_API_CFG_RX_FIFO_EXPANDING_MODE = 0x68,
-	HALMAC_API_CFG_CSI_RATE = 0x69,
-	HALMAC_API_MAX
-};
-
-struct halmac_api_record {
-	enum halmac_api_id api_array[API_ARRAY_SIZE];
-	u8 array_wptr;
-};
-
-enum halmac_la_mode {
-	HALMAC_LA_MODE_DISABLE = 0,
-	HALMAC_LA_MODE_PARTIAL = 1,
-	HALMAC_LA_MODE_FULL = 2,
-	HALMAC_LA_MODE_UNDEFINE = 0x7F,
-};
-
-enum halmac_rx_fifo_expanding_mode {
-	HALMAC_RX_FIFO_EXPANDING_MODE_DISABLE = 0,
-	HALMAC_RX_FIFO_EXPANDING_MODE_1_BLOCK = 1,
-	HALMAC_RX_FIFO_EXPANDING_MODE_2_BLOCK = 2,
-	HALMAC_RX_FIFO_EXPANDING_MODE_3_BLOCK = 3,
-	HALMAC_RX_FIFO_EXPANDING_MODE_UNDEFINE = 0x7F,
-};
-
-enum halmac_sdio_cmd53_4byte_mode {
-	HALMAC_SDIO_CMD53_4BYTE_MODE_DISABLE = 0,
-	HALMAC_SDIO_CMD53_4BYTE_MODE_RW = 1,
-	HALMAC_SDIO_CMD53_4BYTE_MODE_R = 2,
-	HALMAC_SDIO_CMD53_4BYTE_MODE_W = 3,
-	HALMAC_SDIO_CMD53_4BYTE_MODE_UNDEFINE = 0x7F,
-};
-
-enum halmac_usb_mode {
-	HALMAC_USB_MODE_U2 = 1,
-	HALMAC_USB_MODE_U3 = 2,
-};
-
-enum halmac_hw_id {
-	/* Get HW value */
-	HALMAC_HW_RQPN_MAPPING = 0x00,
-	HALMAC_HW_EFUSE_SIZE = 0x01,
-	HALMAC_HW_EEPROM_SIZE = 0x02,
-	HALMAC_HW_BT_BANK_EFUSE_SIZE = 0x03,
-	HALMAC_HW_BT_BANK1_EFUSE_SIZE = 0x04,
-	HALMAC_HW_BT_BANK2_EFUSE_SIZE = 0x05,
-	HALMAC_HW_TXFIFO_SIZE = 0x06,
-	HALMAC_HW_RSVD_PG_BNDY = 0x07,
-	HALMAC_HW_CAM_ENTRY_NUM = 0x08,
-	HALMAC_HW_IC_VERSION = 0x09,
-	HALMAC_HW_PAGE_SIZE = 0x0A,
-	HALMAC_HW_TX_AGG_ALIGN_SIZE = 0x0B,
-	HALMAC_HW_RX_AGG_ALIGN_SIZE = 0x0C,
-	HALMAC_HW_DRV_INFO_SIZE = 0x0D,
-	HALMAC_HW_TXFF_ALLOCATION = 0x0E,
-	HALMAC_HW_RSVD_EFUSE_SIZE = 0x0F,
-	HALMAC_HW_FW_HDR_SIZE = 0x10,
-	HALMAC_HW_TX_DESC_SIZE = 0x11,
-	HALMAC_HW_RX_DESC_SIZE = 0x12,
-	HALMAC_HW_WLAN_EFUSE_AVAILABLE_SIZE = 0x13,
-	/* Set HW value */
-	HALMAC_HW_USB_MODE = 0x60,
-	HALMAC_HW_SEQ_EN = 0x61,
-	HALMAC_HW_BANDWIDTH = 0x62,
-	HALMAC_HW_CHANNEL = 0x63,
-	HALMAC_HW_PRI_CHANNEL_IDX = 0x64,
-	HALMAC_HW_EN_BB_RF = 0x65,
-	HALMAC_HW_SDIO_TX_PAGE_THRESHOLD = 0x66,
-	HALMAC_HW_AMPDU_CONFIG = 0x67,
-
-	HALMAC_HW_ID_UNDEFINE = 0x7F,
-};
-
-enum halmac_efuse_bank {
-	HALMAC_EFUSE_BANK_WIFI = 0,
-	HALMAC_EFUSE_BANK_BT = 1,
-	HALMAC_EFUSE_BANK_BT_1 = 2,
-	HALMAC_EFUSE_BANK_BT_2 = 3,
-	HALMAC_EFUSE_BANK_MAX,
-	HALMAC_EFUSE_BANK_UNDEFINE = 0X7F,
-};
-
-struct halmac_txff_allocation {
-	u16 tx_fifo_pg_num;
-	u16 rsvd_pg_num;
-	u16 rsvd_drv_pg_num;
-	u16 ac_q_pg_num;
-	u16 high_queue_pg_num;
-	u16 low_queue_pg_num;
-	u16 normal_queue_pg_num;
-	u16 extra_queue_pg_num;
-	u16 pub_queue_pg_num;
-	u16 rsvd_pg_bndy;
-	u16 rsvd_drv_pg_bndy;
-	u16 rsvd_h2c_extra_info_pg_bndy;
-	u16 rsvd_h2c_queue_pg_bndy;
-	u16 rsvd_cpu_instr_pg_bndy;
-	u16 rsvd_fw_txbuff_pg_bndy;
-	enum halmac_la_mode la_mode;
-	enum halmac_rx_fifo_expanding_mode rx_fifo_expanding_mode;
-};
-
-struct halmac_rqpn_map {
-	enum halmac_dma_mapping dma_map_vo;
-	enum halmac_dma_mapping dma_map_vi;
-	enum halmac_dma_mapping dma_map_be;
-	enum halmac_dma_mapping dma_map_bk;
-	enum halmac_dma_mapping dma_map_mg;
-	enum halmac_dma_mapping dma_map_hi;
-};
-
-struct halmac_security_setting {
-	u8 tx_encryption;
-	u8 rx_decryption;
-	u8 bip_enable;
-};
-
-struct halmac_cam_entry_info {
-	enum hal_security_type security_type;
-	u32 key[4];
-	u32 key_ext[4];
-	u8 mac_address[6];
-	u8 unicast;
-	u8 key_id;
-	u8 valid;
-};
-
-struct halmac_cam_entry_format {
-	u16 key_id : 2;
-	u16 type : 3;
-	u16 mic : 1;
-	u16 grp : 1;
-	u16 spp_mode : 1;
-	u16 rpt_md : 1;
-	u16 ext_sectype : 1;
-	u16 mgnt : 1;
-	u16 rsvd1 : 4;
-	u16 valid : 1;
-	u8 mac_address[6];
-	u32 key[4];
-	u32 rsvd[2];
-};
-
-struct halmac_tx_page_threshold_info {
-	u32 threshold;
-	enum halmac_dma_mapping dma_queue_sel;
-};
-
-struct halmac_ampdu_config {
-	u8 max_agg_num;
-};
-
-struct halmac_port_cfg {
-	u8 port0_sync_tsf;
-	u8 port1_sync_tsf;
-};
-
-struct halmac_rqpn_ {
-	enum halmac_trx_mode mode;
-	enum halmac_dma_mapping dma_map_vo;
-	enum halmac_dma_mapping dma_map_vi;
-	enum halmac_dma_mapping dma_map_be;
-	enum halmac_dma_mapping dma_map_bk;
-	enum halmac_dma_mapping dma_map_mg;
-	enum halmac_dma_mapping dma_map_hi;
-};
-
-struct halmac_pg_num_ {
-	enum halmac_trx_mode mode;
-	u16 hq_num;
-	u16 nq_num;
-	u16 lq_num;
-	u16 exq_num;
-	u16 gap_num; /*used for loopback mode*/
-};
-
-struct halmac_intf_phy_para_ {
-	u16 offset;
-	u16 value;
-	u16 ip_sel;
-	u16 cut;
-	u16 plaform;
-};
-
-struct halmac_iqk_para_ {
-	u8 clear;
-	u8 segment_iqk;
-};
-
-/* Hal mac adapter */
-struct halmac_adapter {
-	/* Dma mapping of protocol queues */
-	enum halmac_dma_mapping halmac_ptcl_queue[HALMAC_PTCL_QUEUE_NUM];
-	/* low power state option */
-	struct halmac_fwlps_option fwlps_option;
-	/* mac address information, suppot 2 ports */
-	union halmac_wlan_addr hal_mac_addr[HALMAC_PORTIDMAX];
-	/* bss address information, suppot 2 ports */
-	union halmac_wlan_addr hal_bss_addr[HALMAC_PORTIDMAX];
-	/* Protect h2c_packet_seq packet*/
-	spinlock_t h2c_seq_lock;
-	/* Protect Efuse map memory of halmac_adapter */
-	spinlock_t efuse_lock;
-	struct halmac_config_para_info config_para_info;
-	struct halmac_cs_info ch_sw_info;
-	struct halmac_event_trigger event_trigger;
-	/* HW related information */
-	struct halmac_hw_config_info hw_config_info;
-	struct halmac_sdio_free_space sdio_free_space;
-	struct halmac_snd_info snd_info;
-	/* Backup HalAdapter address */
-	void *hal_adapter_backup;
-	/* Driver or FW adapter address. Do not write this memory*/
-	void *driver_adapter;
-	u8 *hal_efuse_map;
-	/* Record function pointer of halmac api */
-	void *halmac_api;
-	/* Record function pointer of platform api */
-	struct halmac_platform_api *halmac_platform_api;
-	/* Record efuse used memory */
-	u32 efuse_end;
-	u32 h2c_buf_free_space;
-	u32 h2c_buff_size;
-	u32 max_download_size;
-	/* Chip ID, 8822B, 8821C... */
-	enum halmac_chip_id chip_id;
-	/* A cut, B cut... */
-	enum halmac_chip_ver chip_version;
-	struct halmac_fw_version fw_version;
-	struct halmac_state halmac_state;
-	/* Interface information, get from driver */
-	enum halmac_interface halmac_interface;
-	/* Noraml, WMM, P2P, LoopBack... */
-	enum halmac_trx_mode trx_mode;
-	struct halmac_txff_allocation txff_allocation;
-	u8 h2c_packet_seq; /* current h2c packet sequence number */
-	u16 ack_h2c_packet_seq; /*the acked h2c packet sequence number */
-	bool hal_efuse_map_valid;
-	u8 efuse_segment_size;
-	u8 rpwm_record; /* record rpwm value */
-	bool low_clk; /*LPS 32K or IPS 32K*/
-	u8 halmac_bulkout_num; /* USB bulkout num */
-	struct halmac_api_record api_record; /* API record */
-	bool gen_info_valid;
-	struct halmac_general_info general_info;
-	u8 drv_info_size;
-	enum halmac_sdio_cmd53_4byte_mode sdio_cmd53_4byte;
-};
-
-/* Function pointer of  Hal mac API */
-struct halmac_api {
-	enum halmac_ret_status (*halmac_mac_power_switch)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_mac_power halmac_power);
-	enum halmac_ret_status (*halmac_download_firmware)(
-		struct halmac_adapter *halmac_adapter, u8 *hamacl_fw,
-		u32 halmac_fw_size);
-	enum halmac_ret_status (*halmac_free_download_firmware)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_dlfw_mem dlfw_mem, u8 *hamacl_fw,
-		u32 halmac_fw_size);
-	enum halmac_ret_status (*halmac_get_fw_version)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_fw_version *fw_version);
-	enum halmac_ret_status (*halmac_cfg_mac_addr)(
-		struct halmac_adapter *halmac_adapter, u8 halmac_port,
-		union halmac_wlan_addr *hal_address);
-	enum halmac_ret_status (*halmac_cfg_bssid)(
-		struct halmac_adapter *halmac_adapter, u8 halmac_port,
-		union halmac_wlan_addr *hal_address);
-	enum halmac_ret_status (*halmac_cfg_multicast_addr)(
-		struct halmac_adapter *halmac_adapter,
-		union halmac_wlan_addr *hal_address);
-	enum halmac_ret_status (*halmac_pre_init_system_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_init_system_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_init_trx_cfg)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_trx_mode mode);
-	enum halmac_ret_status (*halmac_init_h2c)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_cfg_rx_aggregation)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_rxagg_cfg *phalmac_rxagg_cfg);
-	enum halmac_ret_status (*halmac_init_protocol_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_init_edca_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_cfg_operation_mode)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_wireless_mode wireless_mode);
-	enum halmac_ret_status (*halmac_cfg_ch_bw)(
-		struct halmac_adapter *halmac_adapter, u8 channel,
-		enum halmac_pri_ch_idx pri_ch_idx, enum halmac_bw bw);
-	enum halmac_ret_status (*halmac_cfg_bw)(
-		struct halmac_adapter *halmac_adapter, enum halmac_bw bw);
-	enum halmac_ret_status (*halmac_init_wmac_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_init_mac_cfg)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_trx_mode mode);
-	enum halmac_ret_status (*halmac_init_sdio_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_init_usb_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_init_pcie_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_init_interface_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_deinit_sdio_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_deinit_usb_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_deinit_pcie_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_deinit_interface_cfg)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_get_efuse_size)(
-		struct halmac_adapter *halmac_adapter, u32 *halmac_size);
-	enum halmac_ret_status (*halmac_get_efuse_available_size)(
-		struct halmac_adapter *halmac_adapter, u32 *halmac_size);
-	enum halmac_ret_status (*halmac_dump_efuse_map)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_efuse_read_cfg cfg);
-	enum halmac_ret_status (*halmac_dump_efuse_map_bt)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_efuse_bank halmac_efues_bank, u32 bt_efuse_map_size,
-		u8 *bt_efuse_map);
-	enum halmac_ret_status (*halmac_write_efuse)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset,
-		u8 halmac_value);
-	enum halmac_ret_status (*halmac_read_efuse)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset,
-		u8 *value);
-	enum halmac_ret_status (*halmac_switch_efuse_bank)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_efuse_bank halmac_efues_bank);
-	enum halmac_ret_status (*halmac_write_efuse_bt)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset,
-		u8 halmac_value, enum halmac_efuse_bank halmac_efues_bank);
-	enum halmac_ret_status (*halmac_get_logical_efuse_size)(
-		struct halmac_adapter *halmac_adapter, u32 *halmac_size);
-	enum halmac_ret_status (*halmac_dump_logical_efuse_map)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_efuse_read_cfg cfg);
-	enum halmac_ret_status (*halmac_write_logical_efuse)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset,
-		u8 halmac_value);
-	enum halmac_ret_status (*halmac_read_logical_efuse)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset,
-		u8 *value);
-	enum halmac_ret_status (*halmac_pg_efuse_by_map)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_pg_efuse_info *pg_efuse_info,
-		enum halmac_efuse_read_cfg cfg);
-	enum halmac_ret_status (*halmac_get_c2h_info)(
-		struct halmac_adapter *halmac_adapter, u8 *halmac_buf,
-		u32 halmac_size);
-	enum halmac_ret_status (*halmac_cfg_fwlps_option)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_fwlps_option *lps_option);
-	enum halmac_ret_status (*halmac_cfg_fwips_option)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_fwips_option *ips_option);
-	enum halmac_ret_status (*halmac_enter_wowlan)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_wowlan_option *wowlan_option);
-	enum halmac_ret_status (*halmac_leave_wowlan)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_enter_ps)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_ps_state ps_state);
-	enum halmac_ret_status (*halmac_leave_ps)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_h2c_lb)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_debug)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_cfg_parameter)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_phy_parameter_info *para_info, u8 full_fifo);
-	enum halmac_ret_status (*halmac_update_packet)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_packet_id pkt_id, u8 *pkt, u32 pkt_size);
-	enum halmac_ret_status (*halmac_bcn_ie_filter)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_bcn_ie_info *bcn_ie_info);
-	u8 (*halmac_reg_read_8)(struct halmac_adapter *halmac_adapter,
-				u32 halmac_offset);
-	enum halmac_ret_status (*halmac_reg_write_8)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset,
-		u8 halmac_data);
-	u16 (*halmac_reg_read_16)(struct halmac_adapter *halmac_adapter,
-				  u32 halmac_offset);
-	enum halmac_ret_status (*halmac_reg_write_16)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset,
-		u16 halmac_data);
-	u32 (*halmac_reg_read_32)(struct halmac_adapter *halmac_adapter,
-				  u32 halmac_offset);
-	u32 (*halmac_reg_read_indirect_32)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset);
-	u8 (*halmac_reg_sdio_cmd53_read_n)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset,
-		u32 halmac_size, u8 *halmac_data);
-	enum halmac_ret_status (*halmac_reg_write_32)(
-		struct halmac_adapter *halmac_adapter, u32 halmac_offset,
-		u32 halmac_data);
-	enum halmac_ret_status (*halmac_tx_allowed_sdio)(
-		struct halmac_adapter *halmac_adapter, u8 *halmac_buf,
-		u32 halmac_size);
-	enum halmac_ret_status (*halmac_set_bulkout_num)(
-		struct halmac_adapter *halmac_adapter, u8 bulkout_num);
-	enum halmac_ret_status (*halmac_get_sdio_tx_addr)(
-		struct halmac_adapter *halmac_adapter, u8 *halmac_buf,
-		u32 halmac_size, u32 *pcmd53_addr);
-	enum halmac_ret_status (*halmac_get_usb_bulkout_id)(
-		struct halmac_adapter *halmac_adapter, u8 *halmac_buf,
-		u32 halmac_size, u8 *bulkout_id);
-	enum halmac_ret_status (*halmac_timer_2s)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_fill_txdesc_checksum)(
-		struct halmac_adapter *halmac_adapter, u8 *cur_desc);
-	enum halmac_ret_status (*halmac_update_datapack)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_data_type halmac_data_type,
-		struct halmac_phy_parameter_info *para_info);
-	enum halmac_ret_status (*halmac_run_datapack)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_data_type halmac_data_type);
-	enum halmac_ret_status (*halmac_cfg_drv_info)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_drv_info halmac_drv_info);
-	enum halmac_ret_status (*halmac_send_bt_coex)(
-		struct halmac_adapter *halmac_adapter, u8 *bt_buf, u32 bt_size,
-		u8 ack);
-	enum halmac_ret_status (*halmac_verify_platform_api)(
-		struct halmac_adapter *halmac_adapte);
-	u32 (*halmac_get_fifo_size)(struct halmac_adapter *halmac_adapter,
-				    enum hal_fifo_sel halmac_fifo_sel);
-	enum halmac_ret_status (*halmac_dump_fifo)(
-		struct halmac_adapter *halmac_adapter,
-		enum hal_fifo_sel halmac_fifo_sel, u32 halmac_start_addr,
-		u32 halmac_fifo_dump_size, u8 *fifo_map);
-	enum halmac_ret_status (*halmac_cfg_txbf)(
-		struct halmac_adapter *halmac_adapter, u8 userid,
-		enum halmac_bw bw, u8 txbf_en);
-	enum halmac_ret_status (*halmac_cfg_mumimo)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_cfg_mumimo_para *cfgmu);
-	enum halmac_ret_status (*halmac_cfg_sounding)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_snd_role role, enum halmac_data_rate datarate);
-	enum halmac_ret_status (*halmac_del_sounding)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_snd_role role);
-	enum halmac_ret_status (*halmac_su_bfer_entry_init)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_su_bfer_init_para *su_bfer_init);
-	enum halmac_ret_status (*halmac_su_bfee_entry_init)(
-		struct halmac_adapter *halmac_adapter, u8 userid, u16 paid);
-	enum halmac_ret_status (*halmac_mu_bfer_entry_init)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_mu_bfer_init_para *mu_bfer_init);
-	enum halmac_ret_status (*halmac_mu_bfee_entry_init)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_mu_bfee_init_para *mu_bfee_init);
-	enum halmac_ret_status (*halmac_su_bfer_entry_del)(
-		struct halmac_adapter *halmac_adapter, u8 userid);
-	enum halmac_ret_status (*halmac_su_bfee_entry_del)(
-		struct halmac_adapter *halmac_adapter, u8 userid);
-	enum halmac_ret_status (*halmac_mu_bfer_entry_del)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_mu_bfee_entry_del)(
-		struct halmac_adapter *halmac_adapter, u8 userid);
-	enum halmac_ret_status (*halmac_add_ch_info)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_ch_info *ch_info);
-	enum halmac_ret_status (*halmac_add_extra_ch_info)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_ch_extra_info *ch_extra_info);
-	enum halmac_ret_status (*halmac_ctrl_ch_switch)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_ch_switch_option *cs_option);
-	enum halmac_ret_status (*halmac_p2pps)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_p2pps *p2p_ps);
-	enum halmac_ret_status (*halmac_clear_ch_info)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_send_general_info)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_general_info *pg_general_info);
-	enum halmac_ret_status (*halmac_start_iqk)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_iqk_para_ *iqk_para);
-	enum halmac_ret_status (*halmac_ctrl_pwr_tracking)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_pwr_tracking_option *pwr_tracking_opt);
-	enum halmac_ret_status (*halmac_psd)(
-		struct halmac_adapter *halmac_adapter, u16 start_psd,
-		u16 end_psd);
-	enum halmac_ret_status (*halmac_cfg_tx_agg_align)(
-		struct halmac_adapter *halmac_adapter, u8 enable,
-		u16 align_size);
-	enum halmac_ret_status (*halmac_query_status)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_feature_id feature_id,
-		enum halmac_cmd_process_status *process_status, u8 *data,
-		u32 *size);
-	enum halmac_ret_status (*halmac_reset_feature)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_feature_id feature_id);
-	enum halmac_ret_status (*halmac_check_fw_status)(
-		struct halmac_adapter *halmac_adapter, bool *fw_status);
-	enum halmac_ret_status (*halmac_dump_fw_dmem)(
-		struct halmac_adapter *halmac_adapter, u8 *dmem, u32 *size);
-	enum halmac_ret_status (*halmac_cfg_max_dl_size)(
-		struct halmac_adapter *halmac_adapter, u32 size);
-	enum halmac_ret_status (*halmac_cfg_la_mode)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_la_mode la_mode);
-	enum halmac_ret_status (*halmac_cfg_rx_fifo_expanding_mode)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_rx_fifo_expanding_mode rx_fifo_expanding_mode);
-	enum halmac_ret_status (*halmac_config_security)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_security_setting *sec_setting);
-	u8 (*halmac_get_used_cam_entry_num)(
-		struct halmac_adapter *halmac_adapter,
-		enum hal_security_type sec_type);
-	enum halmac_ret_status (*halmac_write_cam)(
-		struct halmac_adapter *halmac_adapter, u32 entry_index,
-		struct halmac_cam_entry_info *cam_entry_info);
-	enum halmac_ret_status (*halmac_read_cam_entry)(
-		struct halmac_adapter *halmac_adapter, u32 entry_index,
-		struct halmac_cam_entry_format *content);
-	enum halmac_ret_status (*halmac_clear_cam_entry)(
-		struct halmac_adapter *halmac_adapter, u32 entry_index);
-	enum halmac_ret_status (*halmac_get_hw_value)(
-		struct halmac_adapter *halmac_adapter, enum halmac_hw_id hw_id,
-		void *pvalue);
-	enum halmac_ret_status (*halmac_set_hw_value)(
-		struct halmac_adapter *halmac_adapter, enum halmac_hw_id hw_id,
-		void *pvalue);
-	enum halmac_ret_status (*halmac_cfg_drv_rsvd_pg_num)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_drv_rsvd_pg_num pg_num);
-	enum halmac_ret_status (*halmac_get_chip_version)(
-		struct halmac_adapter *halmac_adapter,
-		struct halmac_ver *version);
-	enum halmac_ret_status (*halmac_chk_txdesc)(
-		struct halmac_adapter *halmac_adapter, u8 *halmac_buf,
-		u32 halmac_size);
-	enum halmac_ret_status (*halmac_dl_drv_rsvd_page)(
-		struct halmac_adapter *halmac_adapter, u8 pg_offset,
-		u8 *hal_buf, u32 size);
-	enum halmac_ret_status (*halmac_pcie_switch)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_pcie_cfg pcie_cfg);
-	enum halmac_ret_status (*halmac_phy_cfg)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_intf_phy_platform platform);
-	enum halmac_ret_status (*halmac_cfg_csi_rate)(
-		struct halmac_adapter *halmac_adapter, u8 rssi, u8 current_rate,
-		u8 fixrate_en, u8 *new_rate);
-	enum halmac_ret_status (*halmac_sdio_cmd53_4byte)(
-		struct halmac_adapter *halmac_adapter,
-		enum halmac_sdio_cmd53_4byte_mode cmd53_4byte_mode);
-	enum halmac_ret_status (*halmac_interface_integration_tuning)(
-		struct halmac_adapter *halmac_adapter);
-	enum halmac_ret_status (*halmac_txfifo_is_empty)(
-		struct halmac_adapter *halmac_adapter, u32 chk_num);
-};
-
-#define HALMAC_GET_API(phalmac_adapter)                                        \
-	((struct halmac_api *)phalmac_adapter->halmac_api)
-
-static inline enum halmac_ret_status
-halmac_adapter_validate(struct halmac_adapter *halmac_adapter)
-{
-	if ((!halmac_adapter) ||
-	    (halmac_adapter->hal_adapter_backup != halmac_adapter))
-		return HALMAC_RET_ADAPTER_INVALID;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static inline enum halmac_ret_status
-halmac_api_validate(struct halmac_adapter *halmac_adapter)
-{
-	if (halmac_adapter->halmac_state.api_state != HALMAC_API_STATE_INIT)
-		return HALMAC_RET_API_INVALID;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-static inline enum halmac_ret_status
-halmac_fw_validate(struct halmac_adapter *halmac_adapter)
-{
-	if (halmac_adapter->halmac_state.dlfw_state != HALMAC_DLFW_DONE &&
-	    halmac_adapter->halmac_state.dlfw_state != HALMAC_GEN_INFO_SENT)
-		return HALMAC_RET_NO_DLFW;
-
-	return HALMAC_RET_SUCCESS;
-}
-
-#endif
diff --git a/drivers/staging/rtlwifi/halmac/halmac_usb_reg.h b/drivers/staging/rtlwifi/halmac/halmac_usb_reg.h
deleted file mode 100644
index 27910a4..0000000
--- a/drivers/staging/rtlwifi/halmac/halmac_usb_reg.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __HALMAC_USB_REG_H__
-#define __HALMAC_USB_REG_H__
-
-#endif /* __HALMAC_USB_REG_H__ */
diff --git a/drivers/staging/rtlwifi/halmac/rtl_halmac.c b/drivers/staging/rtlwifi/halmac/rtl_halmac.c
deleted file mode 100644
index 7bfc962..0000000
--- a/drivers/staging/rtlwifi/halmac/rtl_halmac.c
+++ /dev/null
@@ -1,1373 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "halmac_api.h"
-#include "rtl_halmac.h"
-#include <linux/module.h>
-#include <linux/vmalloc.h>
-
-#define DEFAULT_INDICATOR_TIMELMT msecs_to_jiffies(1000) /* ms */
-#define FIRMWARE_MAX_SIZE HALMAC_FW_SIZE_MAX_88XX
-
-static struct rtl_halmac_ops rtl_halmac_operation = {
-	.halmac_init_adapter = rtl_halmac_init_adapter,
-	.halmac_deinit_adapter = rtl_halmac_deinit_adapter,
-	.halmac_init_hal = rtl_halmac_init_hal,
-	.halmac_deinit_hal = rtl_halmac_deinit_hal,
-	.halmac_poweron = rtl_halmac_poweron,
-	.halmac_poweroff = rtl_halmac_poweroff,
-
-	.halmac_phy_power_switch = rtl_halmac_phy_power_switch,
-	.halmac_set_mac_address = rtl_halmac_set_mac_address,
-	.halmac_set_bssid = rtl_halmac_set_bssid,
-
-	.halmac_get_physical_efuse_size = rtl_halmac_get_physical_efuse_size,
-	.halmac_read_physical_efuse_map = rtl_halmac_read_physical_efuse_map,
-	.halmac_get_logical_efuse_size = rtl_halmac_get_logical_efuse_size,
-	.halmac_read_logical_efuse_map = rtl_halmac_read_logical_efuse_map,
-
-	.halmac_set_bandwidth = rtl_halmac_set_bandwidth,
-
-	.halmac_c2h_handle = rtl_halmac_c2h_handle,
-
-	.halmac_chk_txdesc = rtl_halmac_chk_txdesc,
-};
-
-struct rtl_halmac_ops *rtl_halmac_get_ops_pointer(void)
-{
-	return &rtl_halmac_operation;
-}
-EXPORT_SYMBOL(rtl_halmac_get_ops_pointer);
-
-/*
- * Driver API for HALMAC operations
- */
-
-static u8 _halmac_reg_read_8(void *p, u32 offset)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)p;
-
-	return rtl_read_byte(rtlpriv, offset);
-}
-
-static u16 _halmac_reg_read_16(void *p, u32 offset)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)p;
-
-	return rtl_read_word(rtlpriv, offset);
-}
-
-static u32 _halmac_reg_read_32(void *p, u32 offset)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)p;
-
-	return rtl_read_dword(rtlpriv, offset);
-}
-
-static void _halmac_reg_write_8(void *p, u32 offset, u8 val)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)p;
-
-	rtl_write_byte(rtlpriv, offset, val);
-}
-
-static void _halmac_reg_write_16(void *p, u32 offset, u16 val)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)p;
-
-	rtl_write_word(rtlpriv, offset, val);
-}
-
-static void _halmac_reg_write_32(void *p, u32 offset, u32 val)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)p;
-
-	rtl_write_dword(rtlpriv, offset, val);
-}
-
-static bool _halmac_write_data_rsvd_page(void *p, u8 *buf, u32 size)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)p;
-
-	if (rtlpriv->cfg->ops->halmac_cb_write_data_rsvd_page &&
-	    rtlpriv->cfg->ops->halmac_cb_write_data_rsvd_page(rtlpriv, buf,
-							      size))
-		return true;
-
-	return false;
-}
-
-static bool _halmac_write_data_h2c(void *p, u8 *buf, u32 size)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)p;
-
-	if (rtlpriv->cfg->ops->halmac_cb_write_data_h2c &&
-	    rtlpriv->cfg->ops->halmac_cb_write_data_h2c(rtlpriv, buf, size))
-		return true;
-
-	return false;
-}
-
-static const char *const RTL_HALMAC_FEATURE_NAME[] = {
-	"HALMAC_FEATURE_CFG_PARA",
-	"HALMAC_FEATURE_DUMP_PHYSICAL_EFUSE",
-	"HALMAC_FEATURE_DUMP_LOGICAL_EFUSE",
-	"HALMAC_FEATURE_UPDATE_PACKET",
-	"HALMAC_FEATURE_UPDATE_DATAPACK",
-	"HALMAC_FEATURE_RUN_DATAPACK",
-	"HALMAC_FEATURE_CHANNEL_SWITCH",
-	"HALMAC_FEATURE_IQK",
-	"HALMAC_FEATURE_POWER_TRACKING",
-	"HALMAC_FEATURE_PSD",
-	"HALMAC_FEATURE_ALL"};
-
-static inline bool is_valid_id_status(struct rtl_priv *rtlpriv,
-				      enum halmac_feature_id id,
-				      enum halmac_cmd_process_status status)
-{
-	switch (id) {
-	case HALMAC_FEATURE_CFG_PARA:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		break;
-	case HALMAC_FEATURE_DUMP_PHYSICAL_EFUSE:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		if (status != HALMAC_CMD_PROCESS_DONE) {
-			RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD,
-				 "%s: <WARN> id(%d) unspecified status(%d)!\n",
-				 __func__, id, status);
-		}
-		break;
-	case HALMAC_FEATURE_DUMP_LOGICAL_EFUSE:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		if (status != HALMAC_CMD_PROCESS_DONE) {
-			RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD,
-				 "%s: <WARN> id(%d) unspecified status(%d)!\n",
-				 __func__, id, status);
-		}
-		break;
-	case HALMAC_FEATURE_UPDATE_PACKET:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		break;
-	case HALMAC_FEATURE_UPDATE_DATAPACK:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		break;
-	case HALMAC_FEATURE_RUN_DATAPACK:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		break;
-	case HALMAC_FEATURE_CHANNEL_SWITCH:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		break;
-	case HALMAC_FEATURE_IQK:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		break;
-	case HALMAC_FEATURE_POWER_TRACKING:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		break;
-	case HALMAC_FEATURE_PSD:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		break;
-	case HALMAC_FEATURE_ALL:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: %s\n", __func__,
-			 RTL_HALMAC_FEATURE_NAME[id]);
-		break;
-	default:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD,
-			 "%s: unknown feature id(%d)\n", __func__, id);
-		return false;
-	}
-
-	return true;
-}
-
-static int init_halmac_event_with_waittime(struct rtl_priv *rtlpriv,
-					   enum halmac_feature_id id, u8 *buf,
-					   u32 size, u32 time)
-{
-	struct completion *comp;
-
-	if (!rtlpriv->halmac.indicator[id].comp) {
-		comp = kzalloc(sizeof(*comp), GFP_KERNEL);
-		if (!comp)
-			return -ENOMEM;
-	} else {
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD,
-			 "%s: <WARN> id(%d) sctx is not NULL!!\n", __func__,
-			 id);
-		comp = rtlpriv->halmac.indicator[id].comp;
-		rtlpriv->halmac.indicator[id].comp = NULL;
-	}
-
-	init_completion(comp);
-	rtlpriv->halmac.indicator[id].wait_ms = time;
-
-	rtlpriv->halmac.indicator[id].buffer = buf;
-	rtlpriv->halmac.indicator[id].buf_size = size;
-	rtlpriv->halmac.indicator[id].ret_size = 0;
-	rtlpriv->halmac.indicator[id].status = 0;
-	/* fill sctx at least to sure other variables are all ready! */
-	rtlpriv->halmac.indicator[id].comp = comp;
-
-	return 0;
-}
-
-static inline int init_halmac_event(struct rtl_priv *rtlpriv,
-				    enum halmac_feature_id id, u8 *buf,
-				    u32 size)
-{
-	return init_halmac_event_with_waittime(rtlpriv, id, buf, size,
-					       DEFAULT_INDICATOR_TIMELMT);
-}
-
-static void free_halmac_event(struct rtl_priv *rtlpriv,
-			      enum halmac_feature_id id)
-{
-	struct completion *comp;
-
-	if (!rtlpriv->halmac.indicator[id].comp)
-		return;
-
-	comp = rtlpriv->halmac.indicator[id].comp;
-	rtlpriv->halmac.indicator[id].comp = NULL;
-	kfree(comp);
-}
-
-static int wait_halmac_event(struct rtl_priv *rtlpriv,
-			     enum halmac_feature_id id)
-{
-	struct completion *comp;
-	int ret;
-
-	comp = rtlpriv->halmac.indicator[id].comp;
-	if (!comp)
-		return -1;
-
-	ret = wait_for_completion_timeout(
-		comp, rtlpriv->halmac.indicator[id].wait_ms);
-	free_halmac_event(rtlpriv, id);
-	if (ret > 0)
-		return 0;
-
-	return -1;
-}
-
-/*
- * Return:
- *	Always return true, HALMAC don't care the return value.
- */
-static bool
-_halmac_event_indication(void *p, enum halmac_feature_id feature_id,
-			 enum halmac_cmd_process_status process_status, u8 *buf,
-			 u32 size)
-{
-	struct rtl_priv *rtlpriv;
-	struct rtl_halmac_indicator *tbl, *indicator;
-	struct completion *comp;
-	u32 cpsz;
-	bool ret;
-
-	rtlpriv = (struct rtl_priv *)p;
-	tbl = rtlpriv->halmac.indicator;
-
-	ret = is_valid_id_status(rtlpriv, feature_id, process_status);
-	if (!ret)
-		goto exit;
-
-	indicator = &tbl[feature_id];
-	indicator->status = process_status;
-	indicator->ret_size = size;
-	if (!indicator->comp) {
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD,
-			 "%s: No feature id(%d) waiting!!\n", __func__,
-			 feature_id);
-		goto exit;
-	}
-	comp = indicator->comp;
-
-	if (process_status == HALMAC_CMD_PROCESS_ERROR) {
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD,
-			 "%s: Something wrong id(%d)!!\n", __func__,
-			 feature_id);
-		complete(comp); /* may provide error code */
-		goto exit;
-	}
-
-	if (size > indicator->buf_size) {
-		RT_TRACE(
-			rtlpriv, COMP_HALMAC, DBG_LOUD,
-			"%s: <WARN> id(%d) buffer is not enough(%d<%d), data will be truncated!\n",
-			__func__, feature_id, indicator->buf_size, size);
-		cpsz = indicator->buf_size;
-	} else {
-		cpsz = size;
-	}
-
-	if (cpsz && indicator->buffer)
-		memcpy(indicator->buffer, buf, cpsz);
-
-	complete(comp);
-
-exit:
-	return true;
-}
-
-static struct halmac_platform_api rtl_halmac_platform_api = {
-	/* R/W register */
-	.REG_READ_8 = _halmac_reg_read_8,
-	.REG_READ_16 = _halmac_reg_read_16,
-	.REG_READ_32 = _halmac_reg_read_32,
-	.REG_WRITE_8 = _halmac_reg_write_8,
-	.REG_WRITE_16 = _halmac_reg_write_16,
-	.REG_WRITE_32 = _halmac_reg_write_32,
-
-	/* Write data */
-	/* impletement in HAL-IC level */
-	.SEND_RSVD_PAGE = _halmac_write_data_rsvd_page,
-	.SEND_H2C_PKT = _halmac_write_data_h2c,
-
-	.EVENT_INDICATION = _halmac_event_indication,
-};
-
-static int init_priv(struct rtl_halmac *halmac)
-{
-	struct rtl_halmac_indicator *indicator;
-	u32 count, size;
-
-	halmac->send_general_info = 0;
-
-	count = HALMAC_FEATURE_ALL + 1;
-	size = sizeof(*indicator) * count;
-	indicator = kzalloc(size, GFP_KERNEL);
-	if (!indicator)
-		return -ENOMEM;
-	halmac->indicator = indicator;
-
-	return 0;
-}
-
-static void deinit_priv(struct rtl_halmac *halmac)
-{
-	struct rtl_halmac_indicator *indicator;
-
-	indicator = halmac->indicator;
-	halmac->indicator = NULL;
-	kfree(indicator);
-}
-
-int rtl_halmac_init_adapter(struct rtl_priv *rtlpriv)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	enum halmac_interface intf;
-	enum halmac_ret_status status;
-	int err = 0;
-	struct halmac_platform_api *pf_api = &rtl_halmac_platform_api;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	if (halmac) {
-		err = 0;
-		goto out;
-	}
-
-	err = init_priv(&rtlpriv->halmac);
-	if (err)
-		goto out;
-
-	intf = HALMAC_INTERFACE_PCIE;
-	status = halmac_init_adapter(rtlpriv, pf_api, intf, &halmac, &api);
-	if (status != HALMAC_RET_SUCCESS) {
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD,
-			 "%s: halmac_init_adapter fail!(status=%d)\n", __func__,
-			 status);
-		err = -1;
-		goto out;
-	}
-
-	rtlpriv->halmac.internal = halmac;
-
-out:
-	if (err)
-		rtl_halmac_deinit_adapter(rtlpriv);
-
-	return err;
-}
-
-int rtl_halmac_deinit_adapter(struct rtl_priv *rtlpriv)
-{
-	struct halmac_adapter *halmac;
-	enum halmac_ret_status status;
-	int err = 0;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	if (!halmac) {
-		err = 0;
-		goto out;
-	}
-
-	deinit_priv(&rtlpriv->halmac);
-
-	halmac_halt_api(halmac);
-
-	status = halmac_deinit_adapter(halmac);
-	rtlpriv->halmac.internal = NULL;
-	if (status != HALMAC_RET_SUCCESS) {
-		err = -1;
-		goto out;
-	}
-
-out:
-	return err;
-}
-
-int rtl_halmac_poweron(struct rtl_priv *rtlpriv)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	int err = -1;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	if (!halmac)
-		goto out;
-
-	api = HALMAC_GET_API(halmac);
-
-	status = api->halmac_pre_init_system_cfg(halmac);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	status = api->halmac_mac_power_switch(halmac, HALMAC_MAC_POWER_ON);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	status = api->halmac_init_system_cfg(halmac);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	err = 0;
-out:
-	return err;
-}
-
-int rtl_halmac_poweroff(struct rtl_priv *rtlpriv)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	int err = -1;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	if (!halmac)
-		goto out;
-
-	api = HALMAC_GET_API(halmac);
-
-	status = api->halmac_mac_power_switch(halmac, HALMAC_MAC_POWER_OFF);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	err = 0;
-out:
-	return err;
-}
-
-/*
- * Note:
- *	When this function return, the register REG_RCR may be changed.
- */
-int rtl_halmac_config_rx_info(struct rtl_priv *rtlpriv,
-			      enum halmac_drv_info info)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	int err = -1;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(halmac);
-
-	status = api->halmac_cfg_drv_info(halmac, info);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	err = 0;
-out:
-	return err;
-}
-
-static enum halmac_ret_status init_mac_flow(struct rtl_priv *rtlpriv)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	u8 wifi_test = 0;
-	int err;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(halmac);
-
-	if (wifi_test)
-		status = api->halmac_init_mac_cfg(halmac, HALMAC_TRX_MODE_WMM);
-	else
-		status = api->halmac_init_mac_cfg(halmac,
-						  HALMAC_TRX_MODE_NORMAL);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	err = rtl_halmac_rx_agg_switch(rtlpriv, true);
-	if (err)
-		goto out;
-
-	if (rtlpriv->cfg->maps[RTL_RC_VHT_RATE_1SS_MCS7])
-		status = api->halmac_cfg_operation_mode(
-			halmac, HALMAC_WIRELESS_MODE_AC);
-	else if (rtlpriv->cfg->maps[RTL_RC_HT_RATEMCS7])
-		status = api->halmac_cfg_operation_mode(halmac,
-							HALMAC_WIRELESS_MODE_N);
-	else if (rtlpriv->cfg->maps[RTL_RC_OFDM_RATE6M])
-		status = api->halmac_cfg_operation_mode(halmac,
-							HALMAC_WIRELESS_MODE_G);
-	else
-		status = api->halmac_cfg_operation_mode(halmac,
-							HALMAC_WIRELESS_MODE_B);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-out:
-	return status;
-}
-
-static inline enum halmac_rf_type _rf_type_drv2halmac(enum rf_type rf_drv)
-{
-	enum halmac_rf_type rf_mac;
-
-	switch (rf_drv) {
-	case RF_1T2R:
-		rf_mac = HALMAC_RF_1T2R;
-		break;
-	case RF_2T2R:
-		rf_mac = HALMAC_RF_2T2R;
-		break;
-	case RF_1T1R:
-		rf_mac = HALMAC_RF_1T1R;
-		break;
-	case RF_2T2R_GREEN:
-		rf_mac = HALMAC_RF_2T2R_GREEN;
-		break;
-	default:
-		rf_mac = (enum halmac_rf_type)rf_drv;
-		break;
-	}
-
-	return rf_mac;
-}
-
-static int _send_general_info(struct rtl_priv *rtlpriv)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	struct halmac_general_info info;
-	enum halmac_ret_status status;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	if (!halmac)
-		return -1;
-	api = HALMAC_GET_API(halmac);
-
-	memset(&info, 0, sizeof(info));
-	info.rfe_type = rtlpriv->rtlhal.rfe_type;
-	info.rf_type = _rf_type_drv2halmac(rtlpriv->phy.rf_type);
-
-	status = api->halmac_send_general_info(halmac, &info);
-	switch (status) {
-	case HALMAC_RET_SUCCESS:
-		break;
-	case HALMAC_RET_NO_DLFW:
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_WARNING,
-			 "%s: halmac_send_general_info() fail because fw not dl!\n",
-			 __func__);
-	/* fall through */
-	default:
-		return -1;
-	}
-
-	return 0;
-}
-
-/*
- * Notices:
- *	Make sure
- *	1. rtl_hal_get_hwreg(HW_VAR_RF_TYPE)
- *	2. HAL_DATA_TYPE.rfe_type
- *	already ready for use before calling this function.
- */
-static int _halmac_init_hal(struct rtl_priv *rtlpriv, u8 *fw, u32 fwsize)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	bool ok;
-	bool fw_ok = false;
-	int err, err_ret = -1;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	if (!halmac)
-		goto out;
-	api = HALMAC_GET_API(halmac);
-
-	/* StatePowerOff */
-
-	/* SKIP: halmac_init_adapter (Already done before) */
-
-	/* halmac_pre_Init_system_cfg */
-	/* halmac_mac_power_switch(on) */
-	/* halmac_Init_system_cfg */
-	err = rtl_halmac_poweron(rtlpriv);
-	if (err)
-		goto out;
-
-	/* StatePowerOn */
-
-	/* DownloadFW */
-	rtlpriv->halmac.send_general_info = 0;
-	if (fw && fwsize) {
-		err = rtl_halmac_dlfw(rtlpriv, fw, fwsize);
-		if (err)
-			goto out;
-		fw_ok = true;
-	}
-
-	/* InitMACFlow */
-	status = init_mac_flow(rtlpriv);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	/* halmac_send_general_info */
-	if (fw_ok) {
-		rtlpriv->halmac.send_general_info = 0;
-		err = _send_general_info(rtlpriv);
-		if (err)
-			goto out;
-	} else {
-		rtlpriv->halmac.send_general_info = 1;
-	}
-
-	/* Init Phy parameter-MAC */
-	if (rtlpriv->cfg->ops->halmac_cb_init_mac_register)
-		ok = rtlpriv->cfg->ops->halmac_cb_init_mac_register(rtlpriv);
-	else
-		ok = false;
-
-	if (!ok)
-		goto out;
-
-	/* StateMacInitialized */
-
-	/* halmac_cfg_drv_info */
-	err = rtl_halmac_config_rx_info(rtlpriv, HALMAC_DRV_INFO_PHY_STATUS);
-	if (err)
-		goto out;
-
-	/* halmac_set_hw_value(HALMAC_HW_EN_BB_RF) */
-	/* Init BB, RF */
-	if (rtlpriv->cfg->ops->halmac_cb_init_bb_rf_register)
-		ok = rtlpriv->cfg->ops->halmac_cb_init_bb_rf_register(rtlpriv);
-	else
-		ok = false;
-
-	if (!ok)
-		goto out;
-
-	status = api->halmac_init_interface_cfg(halmac);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	/* SKIP: halmac_verify_platform_api */
-	/* SKIP: halmac_h2c_lb */
-
-	/* StateRxIdle */
-
-	err_ret = 0;
-out:
-	return err_ret;
-}
-
-int rtl_halmac_init_hal(struct rtl_priv *rtlpriv)
-{
-	if (!rtlpriv->rtlhal.pfirmware || rtlpriv->rtlhal.fwsize == 0)
-		return -1;
-
-	return _halmac_init_hal(rtlpriv, rtlpriv->rtlhal.pfirmware,
-				rtlpriv->rtlhal.fwsize);
-}
-
-int rtl_halmac_deinit_hal(struct rtl_priv *rtlpriv)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	int err = -1;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	if (!halmac)
-		goto out;
-	api = HALMAC_GET_API(halmac);
-
-	status = api->halmac_deinit_interface_cfg(halmac);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	/* rtw_hal_power_off(adapter); */
-	status = api->halmac_mac_power_switch(halmac, HALMAC_MAC_POWER_OFF);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	err = 0;
-out:
-	return err;
-}
-
-int rtl_halmac_self_verify(struct rtl_priv *rtlpriv)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	int err = -1;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	status = api->halmac_verify_platform_api(mac);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	status = api->halmac_h2c_lb(mac);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	err = 0;
-out:
-	return err;
-}
-
-int rtl_halmac_dlfw(struct rtl_priv *rtlpriv, u8 *fw, u32 fwsize)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	struct halmac_fw_version fw_version;
-	int err = 0;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	if ((!fw) || (!fwsize))
-		return -1;
-
-	/* 1. Driver Stop Tx */
-	/* ToDo */
-
-	/* 2. Driver Check Tx FIFO is empty */
-	/* ToDo */
-
-	/* 3. Config MAX download size */
-	api->halmac_cfg_max_dl_size(mac, 0x1000);
-
-	/* 4. Download Firmware */
-	mac->h2c_packet_seq = 0;
-	status = api->halmac_download_firmware(mac, fw, fwsize);
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	status = api->halmac_get_fw_version(mac, &fw_version);
-	if (status == HALMAC_RET_SUCCESS) {
-		rtlpriv->rtlhal.fw_version = fw_version.version;
-		rtlpriv->rtlhal.fw_subversion =
-			(fw_version.sub_version << 8) | (fw_version.sub_index);
-
-		RT_TRACE(
-			rtlpriv, COMP_HALMAC, DBG_DMESG,
-			"halmac report firmware version %04X.%04X\n",
-			rtlpriv->rtlhal.fw_version,
-			rtlpriv->rtlhal.fw_subversion);
-	}
-
-	if (rtlpriv->halmac.send_general_info) {
-		rtlpriv->halmac.send_general_info = 0;
-		err = _send_general_info(rtlpriv);
-	}
-
-	/* 5. Driver resume TX if needed */
-	/* ToDo */
-
-	/* 6. Reset driver variables if needed */
-	/*hal->LastHMEBoxNum = 0;*/
-
-	return err;
-}
-
-/*
- * Description:
- *	Power on/off BB/RF domain.
- *
- * Parameters:
- *	enable	true/false for power on/off
- *
- * Return:
- *	0	Success
- *	others	Fail
- */
-int rtl_halmac_phy_power_switch(struct rtl_priv *rtlpriv, u8 enable)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	if (!halmac)
-		return -1;
-	api = HALMAC_GET_API(halmac);
-
-	status = api->halmac_set_hw_value(halmac, HALMAC_HW_EN_BB_RF, &enable);
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	return 0;
-}
-
-static bool _is_fw_read_cmd_down(struct rtl_priv *rtlpriv, u8 msgbox_num)
-{
-	bool read_down = false;
-	int retry_cnts = 100;
-	u8 valid;
-
-	RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD,
-		 "%s, reg_1cc(%x), msg_box(%d)...\n", __func__,
-		 rtl_read_byte(rtlpriv, REG_HMETFR), msgbox_num);
-
-	do {
-		valid = rtl_read_byte(rtlpriv, REG_HMETFR) & BIT(msgbox_num);
-		if (valid == 0)
-			read_down = true;
-		else
-			mdelay(1);
-	} while ((!read_down) && (retry_cnts--));
-
-	return read_down;
-}
-
-int rtl_halmac_send_h2c(struct rtl_priv *rtlpriv, u8 *h2c)
-{
-	u8 h2c_box_num = 0;
-	u32 msgbox_addr = 0;
-	u32 msgbox_ex_addr = 0;
-	__le32 h2c_cmd = 0;
-	__le32 h2c_cmd_ex = 0;
-	s32 ret = -1;
-	unsigned long flag = 0;
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-
-	if (!h2c) {
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD, "%s: pbuf is NULL\n",
-			 __func__);
-		return ret;
-	}
-
-	spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag);
-
-	/* pay attention to if race condition happened in  H2C cmd setting */
-	h2c_box_num = rtlhal->last_hmeboxnum;
-
-	if (!_is_fw_read_cmd_down(rtlpriv, h2c_box_num)) {
-		RT_TRACE(rtlpriv, COMP_HALMAC, DBG_LOUD,
-			 " fw read cmd failed...\n");
-		goto exit;
-	}
-
-	/* Write Ext command(byte 4 -7) */
-	msgbox_ex_addr = REG_HMEBOX_E0 + (h2c_box_num * EX_MESSAGE_BOX_SIZE);
-	memcpy((u8 *)(&h2c_cmd_ex), h2c + 4, EX_MESSAGE_BOX_SIZE);
-	rtl_write_dword(rtlpriv, msgbox_ex_addr, le32_to_cpu(h2c_cmd_ex));
-
-	/* Write command (byte 0 -3 ) */
-	msgbox_addr = REG_HMEBOX0 + (h2c_box_num * MESSAGE_BOX_SIZE);
-	memcpy((u8 *)(&h2c_cmd), h2c, 4);
-	rtl_write_dword(rtlpriv, msgbox_addr, le32_to_cpu(h2c_cmd));
-
-	/* update last msg box number */
-	rtlhal->last_hmeboxnum = (h2c_box_num + 1) % MAX_H2C_BOX_NUMS;
-	ret = 0;
-
-exit:
-	spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag);
-	return ret;
-}
-
-int rtl_halmac_c2h_handle(struct rtl_priv *rtlpriv, u8 *c2h, u32 size)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	status = api->halmac_get_c2h_info(mac, c2h, size);
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	return 0;
-}
-
-int rtl_halmac_get_physical_efuse_size(struct rtl_priv *rtlpriv, u32 *size)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	u32 val;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	status = api->halmac_get_efuse_size(mac, &val);
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	*size = val;
-	return 0;
-}
-
-int rtl_halmac_read_physical_efuse_map(struct rtl_priv *rtlpriv, u8 *map,
-				       u32 size)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	enum halmac_feature_id id;
-	int ret;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-	id = HALMAC_FEATURE_DUMP_PHYSICAL_EFUSE;
-
-	ret = init_halmac_event(rtlpriv, id, map, size);
-	if (ret)
-		return -1;
-
-	status = api->halmac_dump_efuse_map(mac, HALMAC_EFUSE_R_DRV);
-	if (status != HALMAC_RET_SUCCESS) {
-		free_halmac_event(rtlpriv, id);
-		return -1;
-	}
-
-	ret = wait_halmac_event(rtlpriv, id);
-	if (ret)
-		return -1;
-
-	return 0;
-}
-
-int rtl_halmac_read_physical_efuse(struct rtl_priv *rtlpriv, u32 offset,
-				   u32 cnt, u8 *data)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	u8 v;
-	u32 i;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	for (i = 0; i < cnt; i++) {
-		status = api->halmac_read_efuse(mac, offset + i, &v);
-		if (status != HALMAC_RET_SUCCESS)
-			return -1;
-		data[i] = v;
-	}
-
-	return 0;
-}
-
-int rtl_halmac_write_physical_efuse(struct rtl_priv *rtlpriv, u32 offset,
-				    u32 cnt, u8 *data)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	u32 i;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	for (i = 0; i < cnt; i++) {
-		status = api->halmac_write_efuse(mac, offset + i, data[i]);
-		if (status != HALMAC_RET_SUCCESS)
-			return -1;
-	}
-
-	return 0;
-}
-
-int rtl_halmac_get_logical_efuse_size(struct rtl_priv *rtlpriv, u32 *size)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	u32 val;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	status = api->halmac_get_logical_efuse_size(mac, &val);
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	*size = val;
-	return 0;
-}
-
-int rtl_halmac_read_logical_efuse_map(struct rtl_priv *rtlpriv, u8 *map,
-				      u32 size)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	enum halmac_feature_id id;
-	int ret;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-	id = HALMAC_FEATURE_DUMP_LOGICAL_EFUSE;
-
-	ret = init_halmac_event(rtlpriv, id, map, size);
-	if (ret)
-		return -1;
-
-	status = api->halmac_dump_logical_efuse_map(mac, HALMAC_EFUSE_R_AUTO);
-	if (status != HALMAC_RET_SUCCESS) {
-		free_halmac_event(rtlpriv, id);
-		return -1;
-	}
-
-	ret = wait_halmac_event(rtlpriv, id);
-	if (ret)
-		return -1;
-
-	return 0;
-}
-
-int rtl_halmac_write_logical_efuse_map(struct rtl_priv *rtlpriv, u8 *map,
-				       u32 size, u8 *maskmap, u32 masksize)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	struct halmac_pg_efuse_info pginfo;
-	enum halmac_ret_status status;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	pginfo.efuse_map = map;
-	pginfo.efuse_map_size = size;
-	pginfo.efuse_mask = maskmap;
-	pginfo.efuse_mask_size = masksize;
-
-	status = api->halmac_pg_efuse_by_map(mac, &pginfo, HALMAC_EFUSE_R_AUTO);
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	return 0;
-}
-
-int rtl_halmac_read_logical_efuse(struct rtl_priv *rtlpriv, u32 offset, u32 cnt,
-				  u8 *data)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	u8 v;
-	u32 i;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	for (i = 0; i < cnt; i++) {
-		status = api->halmac_read_logical_efuse(mac, offset + i, &v);
-		if (status != HALMAC_RET_SUCCESS)
-			return -1;
-		data[i] = v;
-	}
-
-	return 0;
-}
-
-int rtl_halmac_write_logical_efuse(struct rtl_priv *rtlpriv, u32 offset,
-				   u32 cnt, u8 *data)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	u32 i;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	for (i = 0; i < cnt; i++) {
-		status = api->halmac_write_logical_efuse(mac, offset + i,
-							 data[i]);
-		if (status != HALMAC_RET_SUCCESS)
-			return -1;
-	}
-
-	return 0;
-}
-
-int rtl_halmac_set_mac_address(struct rtl_priv *rtlpriv, u8 hwport, u8 *addr)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	u8 port;
-	union halmac_wlan_addr hwa;
-	enum halmac_ret_status status;
-	int err = -1;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(halmac);
-
-	port = hwport;
-	memset(&hwa, 0, sizeof(hwa));
-	memcpy(hwa.address, addr, 6);
-
-	status = api->halmac_cfg_mac_addr(halmac, port, &hwa);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	err = 0;
-out:
-	return err;
-}
-
-int rtl_halmac_set_bssid(struct rtl_priv *rtlpriv, u8 hwport, u8 *addr)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	u8 port;
-	union halmac_wlan_addr hwa;
-	enum halmac_ret_status status;
-	int err = -1;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(halmac);
-	port = hwport;
-
-	memset(&hwa, 0, sizeof(union halmac_wlan_addr));
-	memcpy(hwa.address, addr, 6);
-	status = api->halmac_cfg_bssid(halmac, port, &hwa);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	err = 0;
-out:
-	return err;
-}
-
-int rtl_halmac_set_bandwidth(struct rtl_priv *rtlpriv, u8 channel,
-			     u8 pri_ch_idx, u8 bw)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	status = api->halmac_cfg_ch_bw(mac, channel, pri_ch_idx, bw);
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	return 0;
-}
-
-int rtl_halmac_get_hw_value(struct rtl_priv *rtlpriv, enum halmac_hw_id hw_id,
-			    void *pvalue)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	status = api->halmac_get_hw_value(mac, hw_id, pvalue);
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	return 0;
-}
-
-int rtl_halmac_dump_fifo(struct rtl_priv *rtlpriv,
-			 enum hal_fifo_sel halmac_fifo_sel)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-	u8 *pfifo_map = NULL;
-	u32 fifo_size = 0;
-	s8 ret = 0;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	fifo_size = api->halmac_get_fifo_size(mac, halmac_fifo_sel);
-	if (fifo_size)
-		pfifo_map = vmalloc(fifo_size);
-	if (!pfifo_map)
-		return -1;
-
-	status = api->halmac_dump_fifo(mac, halmac_fifo_sel, 0, fifo_size,
-				       pfifo_map);
-
-	if (status != HALMAC_RET_SUCCESS) {
-		ret = -1;
-		goto _exit;
-	}
-
-_exit:
-	if (pfifo_map)
-		vfree(pfifo_map);
-	return ret;
-}
-
-int rtl_halmac_rx_agg_switch(struct rtl_priv *rtlpriv, bool enable)
-{
-	struct halmac_adapter *halmac;
-	struct halmac_api *api;
-	struct halmac_rxagg_cfg rxaggcfg;
-	enum halmac_ret_status status;
-	int err = -1;
-
-	halmac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(halmac);
-	memset((void *)&rxaggcfg, 0, sizeof(rxaggcfg));
-
-	if (enable) {
-		/* enable RX agg. */
-		/* PCIE do nothing */
-	} else {
-		/* disable RX agg. */
-		rxaggcfg.mode = HALMAC_RX_AGG_MODE_NONE;
-	}
-
-	status = api->halmac_cfg_rx_aggregation(halmac, &rxaggcfg);
-	if (status != HALMAC_RET_SUCCESS)
-		goto out;
-
-	err = 0;
-out:
-	return err;
-}
-
-int rtl_halmac_get_wow_reason(struct rtl_priv *rtlpriv, u8 *reason)
-{
-	u8 val8;
-	int err = -1;
-
-	val8 = rtl_read_byte(rtlpriv, 0x1C7);
-	if (val8 == 0xEA)
-		goto out;
-
-	*reason = val8;
-	err = 0;
-out:
-	return err;
-}
-
-/*
- * Description:
- *	Get RX driver info size. RX driver info is a small memory space between
- *	scriptor and RX payload.
- *
- *	+-------------------------+
- *	| RX descriptor           |
- *	| usually 24 bytes        |
- *	+-------------------------+
- *	| RX driver info          |
- *	| depends on driver cfg   |
- *	+-------------------------+
- *	| RX paylad               |
- *	|                         |
- *	+-------------------------+
- *
- * Parameter:
- *	d	pointer to struct dvobj_priv of driver
- *	sz	rx driver info size in bytes.
- *
- * Rteurn:
- *	0	Success
- *	other	Fail
- */
-int rtl_halmac_get_drv_info_sz(struct rtl_priv *rtlpriv, u8 *sz)
-{
-	/*	enum halmac_ret_status status; */
-	u8 dw = 6; /* max number */
-
-	*sz = dw * 8;
-	return 0;
-}
-
-int rtl_halmac_get_rsvd_drv_pg_bndy(struct rtl_priv *rtlpriv, u16 *drv_pg)
-{
-	enum halmac_ret_status status;
-	struct halmac_adapter *halmac = rtlpriv_to_halmac(rtlpriv);
-	struct halmac_api *api = HALMAC_GET_API(halmac);
-
-	status = api->halmac_get_hw_value(halmac, HALMAC_HW_RSVD_PG_BNDY,
-					  drv_pg);
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	return 0;
-}
-
-int rtl_halmac_chk_txdesc(struct rtl_priv *rtlpriv, u8 *txdesc, u32 size)
-{
-	struct halmac_adapter *mac;
-	struct halmac_api *api;
-	enum halmac_ret_status status;
-
-	mac = rtlpriv_to_halmac(rtlpriv);
-	api = HALMAC_GET_API(mac);
-
-	status = api->halmac_chk_txdesc(mac, txdesc, size);
-
-	if (status != HALMAC_RET_SUCCESS)
-		return -1;
-
-	return 0;
-}
-
-MODULE_AUTHOR("Realtek WlanFAE	<wlanfae@realtek.com>");
-MODULE_AUTHOR("Larry Finger	<Larry.FInger@lwfinger.net>");
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Realtek 802.11n PCI wireless core");
diff --git a/drivers/staging/rtlwifi/halmac/rtl_halmac.h b/drivers/staging/rtlwifi/halmac/rtl_halmac.h
deleted file mode 100644
index aa511da..0000000
--- a/drivers/staging/rtlwifi/halmac/rtl_halmac.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef _RTL_HALMAC_H_
-#define _RTL_HALMAC_H_
-
-#include "halmac_api.h"
-
-#define rtlpriv_to_halmac(priv)                                                \
-	((struct halmac_adapter *)((priv)->halmac.internal))
-
-/* for H2C cmd */
-#define MAX_H2C_BOX_NUMS 4
-#define MESSAGE_BOX_SIZE 4
-#define EX_MESSAGE_BOX_SIZE 4
-
-/* HALMAC API for Driver(HAL) */
-int rtl_halmac_init_adapter(struct rtl_priv *rtlpriv);
-int rtl_halmac_deinit_adapter(struct rtl_priv *rtlpriv);
-int rtl_halmac_poweron(struct rtl_priv *rtlpriv);
-int rtl_halmac_poweroff(struct rtl_priv *rtlpriv);
-int rtl_halmac_init_hal(struct rtl_priv *rtlpriv);
-int rtl_halmac_init_hal_fw(struct rtl_priv *rtlpriv, u8 *fw, u32 fwsize);
-int rtl_halmac_init_hal_fw_file(struct rtl_priv *rtlpriv, u8 *fwpath);
-int rtl_halmac_deinit_hal(struct rtl_priv *rtlpriv);
-int rtl_halmac_self_verify(struct rtl_priv *rtlpriv);
-int rtl_halmac_dlfw(struct rtl_priv *rtlpriv, u8 *fw, u32 fwsize);
-int rtl_halmac_dlfw_from_file(struct rtl_priv *rtlpriv, u8 *fwpath);
-int rtl_halmac_phy_power_switch(struct rtl_priv *rtlpriv, u8 enable);
-int rtl_halmac_send_h2c(struct rtl_priv *rtlpriv, u8 *h2c);
-int rtl_halmac_c2h_handle(struct rtl_priv *rtlpriv, u8 *c2h, u32 size);
-
-int rtl_halmac_get_physical_efuse_size(struct rtl_priv *rtlpriv, u32 *size);
-int rtl_halmac_read_physical_efuse_map(struct rtl_priv *rtlpriv, u8 *map,
-				       u32 size);
-int rtl_halmac_read_physical_efuse(struct rtl_priv *rtlpriv, u32 offset,
-				   u32 cnt, u8 *data);
-int rtl_halmac_write_physical_efuse(struct rtl_priv *rtlpriv, u32 offset,
-				    u32 cnt, u8 *data);
-int rtl_halmac_get_logical_efuse_size(struct rtl_priv *rtlpriv, u32 *size);
-int rtl_halmac_read_logical_efuse_map(struct rtl_priv *rtlpriv, u8 *map,
-				      u32 size);
-int rtl_halmac_write_logical_efuse_map(struct rtl_priv *rtlpriv, u8 *map,
-				       u32 size, u8 *maskmap, u32 masksize);
-int rtl_halmac_read_logical_efuse(struct rtl_priv *rtlpriv, u32 offset, u32 cnt,
-				  u8 *data);
-int rtl_halmac_write_logical_efuse(struct rtl_priv *rtlpriv, u32 offset,
-				   u32 cnt, u8 *data);
-
-int rtl_halmac_config_rx_info(struct rtl_priv *rtlpriv, enum halmac_drv_info);
-int rtl_halmac_set_mac_address(struct rtl_priv *rtlpriv, u8 hwport, u8 *addr);
-int rtl_halmac_set_bssid(struct rtl_priv *d, u8 hwport, u8 *addr);
-
-int rtl_halmac_set_bandwidth(struct rtl_priv *rtlpriv, u8 channel,
-			     u8 pri_ch_idx, u8 bw);
-int rtl_halmac_rx_agg_switch(struct rtl_priv *rtlpriv, bool enable);
-int rtl_halmac_get_hw_value(struct rtl_priv *d, enum halmac_hw_id hw_id,
-			    void *pvalue);
-int rtl_halmac_dump_fifo(struct rtl_priv *rtlpriv,
-			 enum hal_fifo_sel halmac_fifo_sel);
-
-int rtl_halmac_get_wow_reason(struct rtl_priv *rtlpriv, u8 *reason);
-int rtl_halmac_get_drv_info_sz(struct rtl_priv *d, u8 *sz);
-
-int rtl_halmac_get_rsvd_drv_pg_bndy(struct rtl_priv *dvobj, u16 *drv_pg);
-int rtl_halmac_download_rsvd_page(struct rtl_priv *dvobj, u8 pg_offset,
-				  u8 *pbuf, u32 size);
-
-int rtl_halmac_chk_txdesc(struct rtl_priv *rtlpriv, u8 *txdesc, u32 size);
-
-struct rtl_halmac_ops *rtl_halmac_get_ops_pointer(void);
-
-#endif /* _RTL_HALMAC_H_ */
diff --git a/drivers/staging/rtlwifi/pci.c b/drivers/staging/rtlwifi/pci.c
deleted file mode 100644
index b97c76e..0000000
--- a/drivers/staging/rtlwifi/pci.c
+++ /dev/null
@@ -1,2496 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "wifi.h"
-#include "core.h"
-#include "pci.h"
-#include "base.h"
-#include "ps.h"
-#include "efuse.h"
-#include <linux/interrupt.h>
-#include <linux/export.h>
-#include <linux/module.h>
-
-MODULE_AUTHOR("lizhaoming	<chaoming_li@realsil.com.cn>");
-MODULE_AUTHOR("Realtek WlanFAE	<wlanfae@realtek.com>");
-MODULE_AUTHOR("Larry Finger	<Larry.FInger@lwfinger.net>");
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("PCI basic driver for rtlwifi");
-
-static const u16 pcibridge_vendors[PCI_BRIDGE_VENDOR_MAX] = {
-	INTEL_VENDOR_ID,
-	ATI_VENDOR_ID,
-	AMD_VENDOR_ID,
-	SIS_VENDOR_ID
-};
-
-static const u8 ac_to_hwq[] = {
-	VO_QUEUE,
-	VI_QUEUE,
-	BE_QUEUE,
-	BK_QUEUE
-};
-
-static u8 _rtl_mac_to_hwqueue(struct ieee80211_hw *hw,
-			      struct sk_buff *skb)
-{
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	__le16 fc = rtl_get_fc(skb);
-	u8 queue_index = skb_get_queue_mapping(skb);
-	struct ieee80211_hdr *hdr;
-
-	if (unlikely(ieee80211_is_beacon(fc)))
-		return BEACON_QUEUE;
-	if (ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc))
-		return MGNT_QUEUE;
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE)
-		if (ieee80211_is_nullfunc(fc))
-			return HIGH_QUEUE;
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8822BE) {
-		hdr = rtl_get_hdr(skb);
-
-		if (is_multicast_ether_addr(hdr->addr1) ||
-		    is_broadcast_ether_addr(hdr->addr1))
-			return HIGH_QUEUE;
-	}
-
-	return ac_to_hwq[queue_index];
-}
-
-/* Update PCI dependent default settings*/
-static void _rtl_pci_update_default_setting(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	u8 pcibridge_vendor = pcipriv->ndis_adapter.pcibridge_vendor;
-	u8 init_aspm;
-
-	ppsc->reg_rfps_level = 0;
-	ppsc->support_aspm = false;
-
-	/*Update PCI ASPM setting */
-	ppsc->const_amdpci_aspm = rtlpci->const_amdpci_aspm;
-	switch (rtlpci->const_pci_aspm) {
-	case 0:
-		/*No ASPM */
-		break;
-
-	case 1:
-		/*ASPM dynamically enabled/disable. */
-		ppsc->reg_rfps_level |= RT_RF_LPS_LEVEL_ASPM;
-		break;
-
-	case 2:
-		/*ASPM with Clock Req dynamically enabled/disable. */
-		ppsc->reg_rfps_level |= (RT_RF_LPS_LEVEL_ASPM |
-					 RT_RF_OFF_LEVL_CLK_REQ);
-		break;
-
-	case 3:
-		/* Always enable ASPM and Clock Req
-		 * from initialization to halt.
-		 */
-		ppsc->reg_rfps_level &= ~(RT_RF_LPS_LEVEL_ASPM);
-		ppsc->reg_rfps_level |= (RT_RF_PS_LEVEL_ALWAYS_ASPM |
-					 RT_RF_OFF_LEVL_CLK_REQ);
-		break;
-
-	case 4:
-		/* Always enable ASPM without Clock Req
-		 * from initialization to halt.
-		 */
-		ppsc->reg_rfps_level &= ~(RT_RF_LPS_LEVEL_ASPM |
-					  RT_RF_OFF_LEVL_CLK_REQ);
-		ppsc->reg_rfps_level |= RT_RF_PS_LEVEL_ALWAYS_ASPM;
-		break;
-	}
-
-	ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_HALT_NIC;
-
-	/*Update Radio OFF setting */
-	switch (rtlpci->const_hwsw_rfoff_d3) {
-	case 1:
-		if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM)
-			ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_ASPM;
-		break;
-
-	case 2:
-		if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM)
-			ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_ASPM;
-		ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_HALT_NIC;
-		break;
-
-	case 3:
-		ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_PCI_D3;
-		break;
-	}
-
-	/*Set HW definition to determine if it supports ASPM. */
-	switch (rtlpci->const_support_pciaspm) {
-	case 0:{
-		/*Not support ASPM. */
-		bool support_aspm = false;
-
-		ppsc->support_aspm = support_aspm;
-		break;
-	}
-	case 1:{
-		/*Support ASPM. */
-		bool support_aspm = true;
-		bool support_backdoor = true;
-
-		ppsc->support_aspm = support_aspm;
-
-		/*if (priv->oem_id == RT_CID_TOSHIBA &&
-		 * !priv->ndis_adapter.amd_l1_patch)
-		 *  support_backdoor = false;
-		 */
-
-		ppsc->support_backdoor = support_backdoor;
-
-		break;
-	}
-	case 2:
-		/*ASPM value set by chipset. */
-		if (pcibridge_vendor == PCI_BRIDGE_VENDOR_INTEL) {
-			bool support_aspm = true;
-
-			ppsc->support_aspm = support_aspm;
-		}
-		break;
-	default:
-		pr_err("switch case %#x not processed\n",
-		       rtlpci->const_support_pciaspm);
-		break;
-	}
-
-	/* toshiba aspm issue, toshiba will set aspm selfly
-	 * so we should not set aspm in driver
-	 */
-	pci_read_config_byte(rtlpci->pdev, 0x80, &init_aspm);
-	if (rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8192SE &&
-	    init_aspm == 0x43)
-		ppsc->support_aspm = false;
-}
-
-static bool _rtl_pci_platform_switch_device_pci_aspm(
-			struct ieee80211_hw *hw,
-			u8 value)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-
-	if (rtlhal->hw_type != HARDWARE_TYPE_RTL8192SE)
-		value |= 0x40;
-
-	pci_write_config_byte(rtlpci->pdev, 0x80, value);
-
-	return false;
-}
-
-/*When we set 0x01 to enable clk request. Set 0x0 to disable clk req.*/
-static void _rtl_pci_switch_clk_req(struct ieee80211_hw *hw, u8 value)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-
-	pci_write_config_byte(rtlpci->pdev, 0x81, value);
-
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE)
-		udelay(100);
-}
-
-/*Disable RTL8192SE ASPM & Disable Pci Bridge ASPM*/
-static void rtl_pci_disable_aspm(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	u8 pcibridge_vendor = pcipriv->ndis_adapter.pcibridge_vendor;
-	u8 num4bytes = pcipriv->ndis_adapter.num4bytes;
-	/*Retrieve original configuration settings. */
-	u8 linkctrl_reg = pcipriv->ndis_adapter.linkctrl_reg;
-	u16 pcibridge_linkctrlreg = pcipriv->ndis_adapter.pcibridge_linkctrlreg;
-	u16 aspmlevel = 0;
-	u8 tmp_u1b = 0;
-
-	if (!ppsc->support_aspm)
-		return;
-
-	if (pcibridge_vendor == PCI_BRIDGE_VENDOR_UNKNOWN) {
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-			 "PCI(Bridge) UNKNOWN\n");
-
-		return;
-	}
-
-	if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_CLK_REQ) {
-		RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_CLK_REQ);
-		_rtl_pci_switch_clk_req(hw, 0x0);
-	}
-
-	/*for promising device will in L0 state after an I/O. */
-	pci_read_config_byte(rtlpci->pdev, 0x80, &tmp_u1b);
-
-	/*Set corresponding value. */
-	aspmlevel |= BIT(0) | BIT(1);
-	linkctrl_reg &= ~aspmlevel;
-	pcibridge_linkctrlreg &= ~(BIT(0) | BIT(1));
-
-	_rtl_pci_platform_switch_device_pci_aspm(hw, linkctrl_reg);
-	udelay(50);
-
-	/*4 Disable Pci Bridge ASPM */
-	pci_write_config_byte(rtlpci->pdev, (num4bytes << 2),
-			      pcibridge_linkctrlreg);
-
-	udelay(50);
-}
-
-/*
- *Enable RTL8192SE ASPM & Enable Pci Bridge ASPM for
- *power saving We should follow the sequence to enable
- *RTL8192SE first then enable Pci Bridge ASPM
- *or the system will show bluescreen.
- */
-static void rtl_pci_enable_aspm(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	u8 pcibridge_vendor = pcipriv->ndis_adapter.pcibridge_vendor;
-	u8 num4bytes = pcipriv->ndis_adapter.num4bytes;
-	u16 aspmlevel;
-	u8 u_pcibridge_aspmsetting;
-	u8 u_device_aspmsetting;
-
-	if (!ppsc->support_aspm)
-		return;
-
-	if (pcibridge_vendor == PCI_BRIDGE_VENDOR_UNKNOWN) {
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-			 "PCI(Bridge) UNKNOWN\n");
-		return;
-	}
-
-	/*4 Enable Pci Bridge ASPM */
-
-	u_pcibridge_aspmsetting =
-	    pcipriv->ndis_adapter.pcibridge_linkctrlreg |
-	    rtlpci->const_hostpci_aspm_setting;
-
-	if (pcibridge_vendor == PCI_BRIDGE_VENDOR_INTEL)
-		u_pcibridge_aspmsetting &= ~BIT(0);
-
-	pci_write_config_byte(rtlpci->pdev, (num4bytes << 2),
-			      u_pcibridge_aspmsetting);
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "PlatformEnableASPM(): Write reg[%x] = %x\n",
-		 (pcipriv->ndis_adapter.pcibridge_pciehdr_offset + 0x10),
-		 u_pcibridge_aspmsetting);
-
-	udelay(50);
-
-	/*Get ASPM level (with/without Clock Req) */
-	aspmlevel = rtlpci->const_devicepci_aspm_setting;
-	u_device_aspmsetting = pcipriv->ndis_adapter.linkctrl_reg;
-
-	/*_rtl_pci_platform_switch_device_pci_aspm(dev,*/
-	/*(priv->ndis_adapter.linkctrl_reg | ASPMLevel)); */
-
-	u_device_aspmsetting |= aspmlevel;
-
-	_rtl_pci_platform_switch_device_pci_aspm(hw, u_device_aspmsetting);
-
-	if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_CLK_REQ) {
-		_rtl_pci_switch_clk_req(hw, (ppsc->reg_rfps_level &
-					     RT_RF_OFF_LEVL_CLK_REQ) ? 1 : 0);
-		RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_CLK_REQ);
-	}
-	udelay(100);
-}
-
-static bool rtl_pci_get_amd_l1_patch(struct ieee80211_hw *hw)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	bool status = false;
-	u8 offset_e0;
-	unsigned int offset_e4;
-
-	pci_write_config_byte(rtlpci->pdev, 0xe0, 0xa0);
-
-	pci_read_config_byte(rtlpci->pdev, 0xe0, &offset_e0);
-
-	if (offset_e0 == 0xA0) {
-		pci_read_config_dword(rtlpci->pdev, 0xe4, &offset_e4);
-		if (offset_e4 & BIT(23))
-			status = true;
-	}
-
-	return status;
-}
-
-static bool rtl_pci_check_buddy_priv(struct ieee80211_hw *hw,
-				     struct rtl_priv **buddy_priv)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	bool find_buddy_priv = false;
-	struct rtl_priv *tpriv;
-	struct rtl_pci_priv *tpcipriv = NULL;
-
-	if (!list_empty(&rtlpriv->glb_var->glb_priv_list)) {
-		list_for_each_entry(tpriv, &rtlpriv->glb_var->glb_priv_list,
-				    list) {
-			tpcipriv = (struct rtl_pci_priv *)tpriv->priv;
-			RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-				 "pcipriv->ndis_adapter.funcnumber %x\n",
-				pcipriv->ndis_adapter.funcnumber);
-			RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-				 "tpcipriv->ndis_adapter.funcnumber %x\n",
-				tpcipriv->ndis_adapter.funcnumber);
-
-			if ((pcipriv->ndis_adapter.busnumber ==
-			     tpcipriv->ndis_adapter.busnumber) &&
-			    (pcipriv->ndis_adapter.devnumber ==
-			    tpcipriv->ndis_adapter.devnumber) &&
-			    (pcipriv->ndis_adapter.funcnumber !=
-			    tpcipriv->ndis_adapter.funcnumber)) {
-				find_buddy_priv = true;
-				break;
-			}
-		}
-	}
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "find_buddy_priv %d\n", find_buddy_priv);
-
-	if (find_buddy_priv)
-		*buddy_priv = tpriv;
-
-	return find_buddy_priv;
-}
-
-static void rtl_pci_get_linkcontrol_field(struct ieee80211_hw *hw)
-{
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(pcipriv);
-	u8 capabilityoffset = pcipriv->ndis_adapter.pcibridge_pciehdr_offset;
-	u8 linkctrl_reg;
-	u8 num4bbytes;
-
-	num4bbytes = (capabilityoffset + 0x10) / 4;
-
-	/*Read  Link Control Register */
-	pci_read_config_byte(rtlpci->pdev, (num4bbytes << 2), &linkctrl_reg);
-
-	pcipriv->ndis_adapter.pcibridge_linkctrlreg = linkctrl_reg;
-}
-
-static void rtl_pci_parse_configuration(struct pci_dev *pdev,
-					struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-
-	u8 tmp;
-	u16 linkctrl_reg;
-
-	/*Link Control Register */
-	pcie_capability_read_word(pdev, PCI_EXP_LNKCTL, &linkctrl_reg);
-	pcipriv->ndis_adapter.linkctrl_reg = (u8)linkctrl_reg;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Link Control Register =%x\n",
-		 pcipriv->ndis_adapter.linkctrl_reg);
-
-	pci_read_config_byte(pdev, 0x98, &tmp);
-	tmp |= BIT(4);
-	pci_write_config_byte(pdev, 0x98, tmp);
-
-	tmp = 0x17;
-	pci_write_config_byte(pdev, 0x70f, tmp);
-}
-
-static void rtl_pci_init_aspm(struct ieee80211_hw *hw)
-{
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-
-	_rtl_pci_update_default_setting(hw);
-
-	if (ppsc->reg_rfps_level & RT_RF_PS_LEVEL_ALWAYS_ASPM) {
-		/*Always enable ASPM & Clock Req. */
-		rtl_pci_enable_aspm(hw);
-		RT_SET_PS_LEVEL(ppsc, RT_RF_PS_LEVEL_ALWAYS_ASPM);
-	}
-}
-
-static void _rtl_pci_io_handler_init(struct device *dev,
-				     struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtlpriv->io.dev = dev;
-
-	rtlpriv->io.write8_async = pci_write8_async;
-	rtlpriv->io.write16_async = pci_write16_async;
-	rtlpriv->io.write32_async = pci_write32_async;
-
-	rtlpriv->io.read8_sync = pci_read8_sync;
-	rtlpriv->io.read16_sync = pci_read16_sync;
-	rtlpriv->io.read32_sync = pci_read32_sync;
-}
-
-static bool _rtl_update_earlymode_info(struct ieee80211_hw *hw,
-				       struct sk_buff *skb,
-				       struct rtl_tcb_desc *tcb_desc, u8 tid)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct sk_buff *next_skb;
-	u8 additionlen = FCS_LEN;
-
-	/* here open is 4, wep/tkip is 8, aes is 12*/
-	if (info->control.hw_key)
-		additionlen += info->control.hw_key->icv_len;
-
-	/* The most skb num is 6 */
-	tcb_desc->empkt_num = 0;
-	spin_lock_bh(&rtlpriv->locks.waitq_lock);
-	skb_queue_walk(&rtlpriv->mac80211.skb_waitq[tid], next_skb) {
-		struct ieee80211_tx_info *next_info;
-
-		next_info = IEEE80211_SKB_CB(next_skb);
-		if (next_info->flags & IEEE80211_TX_CTL_AMPDU) {
-			tcb_desc->empkt_len[tcb_desc->empkt_num] =
-				next_skb->len + additionlen;
-			tcb_desc->empkt_num++;
-		} else {
-			break;
-		}
-
-		if (skb_queue_is_last(&rtlpriv->mac80211.skb_waitq[tid],
-				      next_skb))
-			break;
-
-		if (tcb_desc->empkt_num >= rtlhal->max_earlymode_num)
-			break;
-	}
-	spin_unlock_bh(&rtlpriv->locks.waitq_lock);
-
-	return true;
-}
-
-/* just for early mode now */
-static void _rtl_pci_tx_chk_waitq(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct sk_buff *skb = NULL;
-	struct ieee80211_tx_info *info = NULL;
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	int tid;
-
-	if (!rtlpriv->rtlhal.earlymode_enable)
-		return;
-
-	if (rtlpriv->dm.supp_phymode_switch &&
-	    (rtlpriv->easy_concurrent_ctl.switch_in_process ||
-	    (rtlpriv->buddy_priv &&
-	    rtlpriv->buddy_priv->easy_concurrent_ctl.switch_in_process)))
-		return;
-	/* we just use em for BE/BK/VI/VO */
-	for (tid = 7; tid >= 0; tid--) {
-		u8 hw_queue = ac_to_hwq[rtl_tid_to_ac(tid)];
-		struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
-
-		while (!mac->act_scanning &&
-		       rtlpriv->psc.rfpwr_state == ERFON) {
-			struct rtl_tcb_desc tcb_desc;
-
-			memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc));
-			spin_lock_bh(&rtlpriv->locks.waitq_lock);
-			if (!skb_queue_empty(&mac->skb_waitq[tid]) &&
-			    (ring->entries - skb_queue_len(&ring->queue) >
-			     rtlhal->max_earlymode_num)) {
-				skb = skb_dequeue(&mac->skb_waitq[tid]);
-			} else {
-				spin_unlock_bh(&rtlpriv->locks.waitq_lock);
-				break;
-			}
-			spin_unlock_bh(&rtlpriv->locks.waitq_lock);
-
-			/* Some macaddr can't do early mode. like
-			 * multicast/broadcast/no_qos data
-			 */
-			info = IEEE80211_SKB_CB(skb);
-			if (info->flags & IEEE80211_TX_CTL_AMPDU)
-				_rtl_update_earlymode_info(hw, skb,
-							   &tcb_desc, tid);
-
-			rtlpriv->intf_ops->adapter_tx(hw, NULL, skb, &tcb_desc);
-		}
-	}
-}
-
-static void _rtl_pci_tx_isr(struct ieee80211_hw *hw, int prio)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[prio];
-
-	while (skb_queue_len(&ring->queue)) {
-		struct sk_buff *skb;
-		struct ieee80211_tx_info *info;
-		__le16 fc;
-		u8 tid;
-		u8 *entry;
-
-		if (rtlpriv->use_new_trx_flow)
-			entry = (u8 *)(&ring->buffer_desc[ring->idx]);
-		else
-			entry = (u8 *)(&ring->desc[ring->idx]);
-
-		if (!rtlpriv->cfg->ops->is_tx_desc_closed(hw, prio, ring->idx))
-			return;
-		ring->idx = (ring->idx + 1) % ring->entries;
-
-		skb = __skb_dequeue(&ring->queue);
-		pci_unmap_single(rtlpci->pdev,
-				 rtlpriv->cfg->ops->get_desc(hw, (u8 *)entry, true,
-				 HW_DESC_TXBUFF_ADDR),
-				 skb->len, PCI_DMA_TODEVICE);
-
-		/* remove early mode header */
-		if (rtlpriv->rtlhal.earlymode_enable)
-			skb_pull(skb, EM_HDR_LEN);
-
-		RT_TRACE(rtlpriv, (COMP_INTR | COMP_SEND), DBG_TRACE,
-			 "new ring->idx:%d, free: skb_queue_len:%d, free: seq:%x\n",
-			 ring->idx,
-			 skb_queue_len(&ring->queue),
-			 *(u16 *)(skb->data + 22));
-
-		if (prio == TXCMD_QUEUE) {
-			dev_kfree_skb(skb);
-			goto tx_status_ok;
-		}
-
-		/* for sw LPS, just after NULL skb send out, we can
-		 * sure AP knows we are sleeping, we should not let
-		 * rf sleep
-		 */
-		fc = rtl_get_fc(skb);
-		if (ieee80211_is_nullfunc(fc)) {
-			if (ieee80211_has_pm(fc)) {
-				rtlpriv->mac80211.offchan_delay = true;
-				rtlpriv->psc.state_inap = true;
-			} else {
-				rtlpriv->psc.state_inap = false;
-			}
-		}
-		if (ieee80211_is_action(fc)) {
-			struct ieee80211_mgmt *action_frame =
-				(struct ieee80211_mgmt *)skb->data;
-			if (action_frame->u.action.u.ht_smps.action ==
-			    WLAN_HT_ACTION_SMPS) {
-				dev_kfree_skb(skb);
-				goto tx_status_ok;
-			}
-		}
-
-		/* update tid tx pkt num */
-		tid = rtl_get_tid(skb);
-		if (tid <= 7)
-			rtlpriv->link_info.tidtx_inperiod[tid]++;
-
-		info = IEEE80211_SKB_CB(skb);
-		ieee80211_tx_info_clear_status(info);
-
-		info->flags |= IEEE80211_TX_STAT_ACK;
-		/*info->status.rates[0].count = 1; */
-
-		ieee80211_tx_status_irqsafe(hw, skb);
-
-		if ((ring->entries - skb_queue_len(&ring->queue)) <= 4) {
-			RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
-				 "more desc left, wake skb_queue@%d, ring->idx = %d, skb_queue_len = 0x%x\n",
-				 prio, ring->idx,
-				 skb_queue_len(&ring->queue));
-
-			ieee80211_wake_queue(hw, skb_get_queue_mapping(skb));
-		}
-tx_status_ok:
-		skb = NULL;
-	}
-
-	if (((rtlpriv->link_info.num_rx_inperiod +
-	      rtlpriv->link_info.num_tx_inperiod) > 8) ||
-	      (rtlpriv->link_info.num_rx_inperiod > 2))
-		rtl_lps_leave(hw);
-}
-
-static int _rtl_pci_init_one_rxdesc(struct ieee80211_hw *hw,
-				    struct sk_buff *new_skb, u8 *entry,
-				    int rxring_idx, int desc_idx)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	u32 bufferaddress;
-	u8 tmp_one = 1;
-	struct sk_buff *skb;
-
-	if (likely(new_skb)) {
-		skb = new_skb;
-		goto remap;
-	}
-	skb = dev_alloc_skb(rtlpci->rxbuffersize);
-	if (!skb)
-		return 0;
-
-remap:
-	/* just set skb->cb to mapping addr for pci_unmap_single use */
-	*((dma_addr_t *)skb->cb) =
-		pci_map_single(rtlpci->pdev, skb_tail_pointer(skb),
-			       rtlpci->rxbuffersize, PCI_DMA_FROMDEVICE);
-	bufferaddress = *((dma_addr_t *)skb->cb);
-	if (pci_dma_mapping_error(rtlpci->pdev, bufferaddress))
-		return 0;
-	rtlpci->rx_ring[rxring_idx].rx_buf[desc_idx] = skb;
-	if (rtlpriv->use_new_trx_flow) {
-		/* skb->cb may be 64 bit address */
-		rtlpriv->cfg->ops->set_desc(hw, (u8 *)entry, false,
-					    HW_DESC_RX_PREPARE,
-					    (u8 *)(dma_addr_t *)skb->cb);
-	} else {
-		rtlpriv->cfg->ops->set_desc(hw, (u8 *)entry, false,
-					    HW_DESC_RXBUFF_ADDR,
-					    (u8 *)&bufferaddress);
-		rtlpriv->cfg->ops->set_desc(hw, (u8 *)entry, false,
-					    HW_DESC_RXPKT_LEN,
-					    (u8 *)&rtlpci->rxbuffersize);
-		rtlpriv->cfg->ops->set_desc(hw, (u8 *)entry, false,
-					    HW_DESC_RXOWN,
-					    (u8 *)&tmp_one);
-	}
-	return 1;
-}
-
-/* inorder to receive 8K AMSDU we have set skb to
- * 9100bytes in init rx ring, but if this packet is
- * not a AMSDU, this large packet will be sent to
- * TCP/IP directly, this cause big packet ping fail
- * like: "ping -s 65507", so here we will realloc skb
- * based on the true size of packet, Mac80211
- * Probably will do it better, but does not yet.
- *
- * Some platform will fail when alloc skb sometimes.
- * in this condition, we will send the old skb to
- * mac80211 directly, this will not cause any other
- * issues, but only this packet will be lost by TCP/IP
- */
-static void _rtl_pci_rx_to_mac80211(struct ieee80211_hw *hw,
-				    struct sk_buff *skb,
-				    struct ieee80211_rx_status rx_status)
-{
-	if (unlikely(!rtl_action_proc(hw, skb, false))) {
-		dev_kfree_skb_any(skb);
-	} else {
-		struct sk_buff *uskb = NULL;
-
-		uskb = dev_alloc_skb(skb->len + 128);
-		if (likely(uskb)) {
-			memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status,
-			       sizeof(rx_status));
-			skb_put_data(uskb, skb->data, skb->len);
-			dev_kfree_skb_any(skb);
-			ieee80211_rx_irqsafe(hw, uskb);
-		} else {
-			ieee80211_rx_irqsafe(hw, skb);
-		}
-	}
-}
-
-/*hsisr interrupt handler*/
-static void _rtl_pci_hs_interrupt(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[MAC_HSISR],
-		       rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[MAC_HSISR]) |
-		       rtlpci->sys_irq_mask);
-}
-
-static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	int rxring_idx = RTL_PCI_RX_MPDU_QUEUE;
-	struct ieee80211_rx_status rx_status = { 0 };
-	unsigned int count = rtlpci->rxringcount;
-	u8 own;
-	u8 tmp_one;
-	bool unicast = false;
-	u8 hw_queue = 0;
-	unsigned int rx_remained_cnt = 0;
-	struct rtl_stats stats = {
-		.signal = 0,
-		.rate = 0,
-	};
-
-	/*RX NORMAL PKT */
-	while (count--) {
-		struct ieee80211_hdr *hdr;
-		__le16 fc;
-		u16 len;
-		/*rx buffer descriptor */
-		struct rtl_rx_buffer_desc *buffer_desc = NULL;
-		/*if use new trx flow, it means wifi info */
-		struct rtl_rx_desc *pdesc = NULL;
-		/*rx pkt */
-		struct sk_buff *skb = rtlpci->rx_ring[rxring_idx].rx_buf[
-				      rtlpci->rx_ring[rxring_idx].idx];
-		struct sk_buff *new_skb;
-
-		if (rtlpriv->use_new_trx_flow) {
-			if (rx_remained_cnt == 0)
-				rx_remained_cnt =
-				rtlpriv->cfg->ops->rx_desc_buff_remained_cnt(hw,
-								      hw_queue);
-			if (rx_remained_cnt == 0)
-				return;
-			buffer_desc = &rtlpci->rx_ring[rxring_idx].buffer_desc[
-				rtlpci->rx_ring[rxring_idx].idx];
-			pdesc = (struct rtl_rx_desc *)skb->data;
-		} else {	/* rx descriptor */
-			pdesc = &rtlpci->rx_ring[rxring_idx].desc[
-				rtlpci->rx_ring[rxring_idx].idx];
-
-			own = (u8)rtlpriv->cfg->ops->get_desc(hw, (u8 *)pdesc,
-							      false,
-							      HW_DESC_OWN);
-			if (own) /* wait data to be filled by hardware */
-				return;
-		}
-
-		/* Reaching this point means: data is filled already
-		 * AAAAAAttention !!!
-		 * We can NOT access 'skb' before 'pci_unmap_single'
-		 */
-		pci_unmap_single(rtlpci->pdev, *((dma_addr_t *)skb->cb),
-				 rtlpci->rxbuffersize, PCI_DMA_FROMDEVICE);
-
-		/* get a new skb - if fail, old one will be reused */
-		new_skb = dev_alloc_skb(rtlpci->rxbuffersize);
-		if (unlikely(!new_skb))
-			goto no_new;
-		memset(&rx_status, 0, sizeof(rx_status));
-		rtlpriv->cfg->ops->query_rx_desc(hw, &stats,
-						 &rx_status, (u8 *)pdesc, skb);
-
-		if (rtlpriv->use_new_trx_flow)
-			rtlpriv->cfg->ops->rx_check_dma_ok(hw,
-							   (u8 *)buffer_desc,
-							   hw_queue);
-
-		len = rtlpriv->cfg->ops->get_desc(hw, (u8 *)pdesc, false,
-						  HW_DESC_RXPKT_LEN);
-
-		if (skb->end - skb->tail > len) {
-			skb_put(skb, len);
-			if (rtlpriv->use_new_trx_flow)
-				skb_reserve(skb, stats.rx_drvinfo_size +
-					    stats.rx_bufshift + 24);
-			else
-				skb_reserve(skb, stats.rx_drvinfo_size +
-					    stats.rx_bufshift);
-		} else {
-			RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-				 "skb->end - skb->tail = %d, len is %d\n",
-				 skb->end - skb->tail, len);
-			dev_kfree_skb_any(skb);
-			goto new_trx_end;
-		}
-		/* handle command packet here */
-		if (rtlpriv->cfg->ops->rx_command_packet &&
-		    rtlpriv->cfg->ops->rx_command_packet(hw, &stats, skb)) {
-			dev_kfree_skb_any(skb);
-			goto new_trx_end;
-		}
-
-		/*
-		 * NOTICE This can not be use for mac80211,
-		 * this is done in mac80211 code,
-		 * if done here sec DHCP will fail
-		 * skb_trim(skb, skb->len - 4);
-		 */
-
-		hdr = rtl_get_hdr(skb);
-		fc = rtl_get_fc(skb);
-
-		if (!stats.crc && !stats.hwerror) {
-			memcpy(IEEE80211_SKB_RXCB(skb), &rx_status,
-			       sizeof(rx_status));
-
-			if (is_broadcast_ether_addr(hdr->addr1)) {
-				;/*TODO*/
-			} else if (is_multicast_ether_addr(hdr->addr1)) {
-				;/*TODO*/
-			} else {
-				unicast = true;
-				rtlpriv->stats.rxbytesunicast += skb->len;
-			}
-			rtl_is_special_data(hw, skb, false, true);
-
-			if (ieee80211_is_data(fc)) {
-				rtlpriv->cfg->ops->led_control(hw, LED_CTL_RX);
-				if (unicast)
-					rtlpriv->link_info.num_rx_inperiod++;
-			}
-
-			rtl_collect_scan_list(hw, skb);
-
-			/* static bcn for roaming */
-			rtl_beacon_statistic(hw, skb);
-			rtl_p2p_info(hw, (void *)skb->data, skb->len);
-			/* for sw lps */
-			rtl_swlps_beacon(hw, (void *)skb->data, skb->len);
-			rtl_recognize_peer(hw, (void *)skb->data, skb->len);
-			if ((rtlpriv->mac80211.opmode == NL80211_IFTYPE_AP) &&
-			    (rtlpriv->rtlhal.current_bandtype ==
-			     BAND_ON_2_4G) &&
-			    (ieee80211_is_beacon(fc) ||
-			     ieee80211_is_probe_resp(fc))) {
-				dev_kfree_skb_any(skb);
-			} else {
-				rtl_check_beacon_key(hw, (void *)skb->data,
-						     skb->len);
-				_rtl_pci_rx_to_mac80211(hw, skb, rx_status);
-			}
-		} else {
-			dev_kfree_skb_any(skb);
-		}
-new_trx_end:
-		if (rtlpriv->use_new_trx_flow) {
-			rtlpci->rx_ring[hw_queue].next_rx_rp += 1;
-			rtlpci->rx_ring[hw_queue].next_rx_rp %=
-					RTL_PCI_MAX_RX_COUNT;
-
-			rx_remained_cnt--;
-			rtl_write_word(rtlpriv, 0x3B4,
-				       rtlpci->rx_ring[hw_queue].next_rx_rp);
-		}
-		if (((rtlpriv->link_info.num_rx_inperiod +
-		      rtlpriv->link_info.num_tx_inperiod) > 8) ||
-		      (rtlpriv->link_info.num_rx_inperiod > 2))
-			rtl_lps_leave(hw);
-		skb = new_skb;
-no_new:
-		if (rtlpriv->use_new_trx_flow) {
-			_rtl_pci_init_one_rxdesc(hw, skb, (u8 *)buffer_desc,
-						 rxring_idx,
-						 rtlpci->rx_ring[rxring_idx].idx);
-		} else {
-			_rtl_pci_init_one_rxdesc(hw, skb, (u8 *)pdesc,
-						 rxring_idx,
-						 rtlpci->rx_ring[rxring_idx].idx);
-			if (rtlpci->rx_ring[rxring_idx].idx ==
-			    rtlpci->rxringcount - 1)
-				rtlpriv->cfg->ops->set_desc(hw, (u8 *)pdesc,
-							    false,
-							    HW_DESC_RXERO,
-							    (u8 *)&tmp_one);
-		}
-		rtlpci->rx_ring[rxring_idx].idx =
-				(rtlpci->rx_ring[rxring_idx].idx + 1) %
-				rtlpci->rxringcount;
-	}
-}
-
-static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
-{
-	struct ieee80211_hw *hw = dev_id;
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	unsigned long flags;
-	u32 inta = 0;
-	u32 intb = 0;
-	u32 intc = 0;
-	u32 intd = 0;
-	irqreturn_t ret = IRQ_HANDLED;
-
-	if (rtlpci->irq_enabled == 0)
-		return ret;
-
-	spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags);
-	rtlpriv->cfg->ops->disable_interrupt(hw);
-
-	/*read ISR: 4/8bytes */
-	rtlpriv->cfg->ops->interrupt_recognized(hw, &inta, &intb, &intc, &intd);
-
-	/*Shared IRQ or HW disappeared */
-	if (!inta || inta == 0xffff)
-		goto done;
-
-	/*<1> beacon related */
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_TBDOK]) {
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-			 "beacon ok interrupt!\n");
-	}
-
-	if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_TBDER])) {
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-			 "beacon err interrupt!\n");
-	}
-
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_BDOK])
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, "beacon interrupt!\n");
-
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_BCNINT]) {
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-			 "prepare beacon for interrupt!\n");
-		tasklet_schedule(&rtlpriv->works.irq_prepare_bcn_tasklet);
-	}
-
-	/*<2> Tx related */
-	if (unlikely(intb & rtlpriv->cfg->maps[RTL_IMR_TXFOVW]))
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "IMR_TXFOVW!\n");
-
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_MGNTDOK]) {
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-			 "Manage ok interrupt!\n");
-		_rtl_pci_tx_isr(hw, MGNT_QUEUE);
-	}
-
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_HIGHDOK]) {
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-			 "HIGH_QUEUE ok interrupt!\n");
-		_rtl_pci_tx_isr(hw, HIGH_QUEUE);
-	}
-
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_BKDOK]) {
-		rtlpriv->link_info.num_tx_inperiod++;
-
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-			 "BK Tx OK interrupt!\n");
-		_rtl_pci_tx_isr(hw, BK_QUEUE);
-	}
-
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_BEDOK]) {
-		rtlpriv->link_info.num_tx_inperiod++;
-
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-			 "BE TX OK interrupt!\n");
-		_rtl_pci_tx_isr(hw, BE_QUEUE);
-	}
-
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_VIDOK]) {
-		rtlpriv->link_info.num_tx_inperiod++;
-
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-			 "VI TX OK interrupt!\n");
-		_rtl_pci_tx_isr(hw, VI_QUEUE);
-	}
-
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_VODOK]) {
-		rtlpriv->link_info.num_tx_inperiod++;
-
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-			 "Vo TX OK interrupt!\n");
-		_rtl_pci_tx_isr(hw, VO_QUEUE);
-	}
-
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8822BE) {
-		if (intd & rtlpriv->cfg->maps[RTL_IMR_H2CDOK]) {
-			rtlpriv->link_info.num_tx_inperiod++;
-
-			RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-				 "H2C TX OK interrupt!\n");
-			_rtl_pci_tx_isr(hw, H2C_QUEUE);
-		}
-	}
-
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE) {
-		if (inta & rtlpriv->cfg->maps[RTL_IMR_COMDOK]) {
-			rtlpriv->link_info.num_tx_inperiod++;
-
-			RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-				 "CMD TX OK interrupt!\n");
-			_rtl_pci_tx_isr(hw, TXCMD_QUEUE);
-		}
-	}
-
-	/*<3> Rx related */
-	if (inta & rtlpriv->cfg->maps[RTL_IMR_ROK]) {
-		RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, "Rx ok interrupt!\n");
-		_rtl_pci_rx_interrupt(hw);
-	}
-
-	if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_RDU])) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "rx descriptor unavailable!\n");
-		_rtl_pci_rx_interrupt(hw);
-	}
-
-	if (unlikely(intb & rtlpriv->cfg->maps[RTL_IMR_RXFOVW])) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "rx overflow !\n");
-		_rtl_pci_rx_interrupt(hw);
-	}
-
-	/*<4> fw related*/
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723AE) {
-		if (inta & rtlpriv->cfg->maps[RTL_IMR_C2HCMD]) {
-			RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-				 "firmware interrupt!\n");
-			queue_delayed_work(rtlpriv->works.rtl_wq,
-					   &rtlpriv->works.fwevt_wq, 0);
-		}
-	}
-
-	/*<5> hsisr related*/
-	/* Only 8188EE & 8723BE Supported.
-	 * If Other ICs Come in, System will corrupt,
-	 * because maps[RTL_IMR_HSISR_IND] & maps[MAC_HSISR]
-	 * are not initialized
-	 */
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8188EE ||
-	    rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) {
-		if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_HSISR_IND])) {
-			RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-				 "hsisr interrupt!\n");
-			_rtl_pci_hs_interrupt(hw);
-		}
-	}
-
-	if (rtlpriv->rtlhal.earlymode_enable)
-		tasklet_schedule(&rtlpriv->works.irq_tasklet);
-
-done:
-	rtlpriv->cfg->ops->enable_interrupt(hw);
-	spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
-	return ret;
-}
-
-static void _rtl_pci_irq_tasklet(struct ieee80211_hw *hw)
-{
-	_rtl_pci_tx_chk_waitq(hw);
-}
-
-static void _rtl_pci_prepare_bcn_tasklet(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl8192_tx_ring *ring = NULL;
-	struct ieee80211_hdr *hdr = NULL;
-	struct ieee80211_tx_info *info = NULL;
-	struct sk_buff *pskb = NULL;
-	struct rtl_tx_desc *pdesc = NULL;
-	struct rtl_tcb_desc tcb_desc;
-	/*This is for new trx flow*/
-	struct rtl_tx_buffer_desc *pbuffer_desc = NULL;
-	u8 temp_one = 1;
-	u8 *entry;
-
-	memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc));
-	ring = &rtlpci->tx_ring[BEACON_QUEUE];
-	pskb = __skb_dequeue(&ring->queue);
-	if (rtlpriv->use_new_trx_flow)
-		entry = (u8 *)(&ring->buffer_desc[ring->idx]);
-	else
-		entry = (u8 *)(&ring->desc[ring->idx]);
-	if (pskb) {
-		pci_unmap_single(rtlpci->pdev,
-				 rtlpriv->cfg->ops->get_desc(
-				 hw, (u8 *)entry, true, HW_DESC_TXBUFF_ADDR),
-				 pskb->len, PCI_DMA_TODEVICE);
-		kfree_skb(pskb);
-	}
-
-	/*NB: the beacon data buffer must be 32-bit aligned. */
-	pskb = ieee80211_beacon_get(hw, mac->vif);
-	if (!pskb)
-		return;
-	hdr = rtl_get_hdr(pskb);
-	info = IEEE80211_SKB_CB(pskb);
-	pdesc = &ring->desc[0];
-	if (rtlpriv->use_new_trx_flow)
-		pbuffer_desc = &ring->buffer_desc[0];
-
-	rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *)pdesc,
-					(u8 *)pbuffer_desc, info, NULL, pskb,
-					BEACON_QUEUE, &tcb_desc);
-
-	__skb_queue_tail(&ring->queue, pskb);
-
-	if (rtlpriv->use_new_trx_flow) {
-		temp_one = 4;
-		rtlpriv->cfg->ops->set_desc(hw, (u8 *)pbuffer_desc, true,
-					    HW_DESC_OWN, (u8 *)&temp_one);
-	} else {
-		rtlpriv->cfg->ops->set_desc(hw, (u8 *)pdesc, true, HW_DESC_OWN,
-					    &temp_one);
-	}
-}
-
-static void _rtl_pci_init_trx_var(struct ieee80211_hw *hw)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	u8 i;
-	u16 desc_num;
-
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE)
-		desc_num = TX_DESC_NUM_92E;
-	else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8822BE)
-		desc_num = TX_DESC_NUM_8822B;
-	else
-		desc_num = RT_TXDESC_NUM;
-
-	for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++)
-		rtlpci->txringcount[i] = desc_num;
-
-	/*
-	 *we just alloc 2 desc for beacon queue,
-	 *because we just need first desc in hw beacon.
-	 */
-	rtlpci->txringcount[BEACON_QUEUE] = 2;
-
-	/*BE queue need more descriptor for performance
-	 *consideration or, No more tx desc will happen,
-	 *and may cause mac80211 mem leakage.
-	 */
-	if (!rtl_priv(hw)->use_new_trx_flow)
-		rtlpci->txringcount[BE_QUEUE] = RT_TXDESC_NUM_BE_QUEUE;
-
-	rtlpci->rxbuffersize = 9100;	/*2048/1024; */
-	rtlpci->rxringcount = RTL_PCI_MAX_RX_COUNT;	/*64; */
-}
-
-static void _rtl_pci_init_struct(struct ieee80211_hw *hw,
-				 struct pci_dev *pdev)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-
-	rtlpci->up_first_time = true;
-	rtlpci->being_init_adapter = false;
-
-	rtlhal->hw = hw;
-	rtlpci->pdev = pdev;
-
-	/*Tx/Rx related var */
-	_rtl_pci_init_trx_var(hw);
-
-	/*IBSS*/
-	mac->beacon_interval = 100;
-
-	/*AMPDU*/
-	mac->min_space_cfg = 0;
-	mac->max_mss_density = 0;
-	/*set sane AMPDU defaults */
-	mac->current_ampdu_density = 7;
-	mac->current_ampdu_factor = 3;
-
-	/*Retry Limit*/
-	mac->retry_short = 7;
-	mac->retry_long = 7;
-
-	/*QOS*/
-	rtlpci->acm_method = EACMWAY2_SW;
-
-	/*task */
-	tasklet_init(&rtlpriv->works.irq_tasklet,
-		     (void (*)(unsigned long))_rtl_pci_irq_tasklet,
-		     (unsigned long)hw);
-	tasklet_init(&rtlpriv->works.irq_prepare_bcn_tasklet,
-		     (void (*)(unsigned long))_rtl_pci_prepare_bcn_tasklet,
-		     (unsigned long)hw);
-	INIT_WORK(&rtlpriv->works.lps_change_work,
-		  rtl_lps_change_work_callback);
-}
-
-static int _rtl_pci_init_tx_ring(struct ieee80211_hw *hw,
-				 unsigned int prio, unsigned int entries)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_tx_buffer_desc *buffer_desc;
-	struct rtl_tx_desc *desc;
-	dma_addr_t buffer_desc_dma, desc_dma;
-	u32 nextdescaddress;
-	int i;
-
-	/* alloc tx buffer desc for new trx flow*/
-	if (rtlpriv->use_new_trx_flow) {
-		buffer_desc =
-		   pci_zalloc_consistent(rtlpci->pdev,
-					 sizeof(*buffer_desc) * entries,
-					 &buffer_desc_dma);
-
-		if (!buffer_desc || (unsigned long)buffer_desc & 0xFF) {
-			pr_err("Cannot allocate TX ring (prio = %d)\n",
-			       prio);
-			return -ENOMEM;
-		}
-
-		rtlpci->tx_ring[prio].buffer_desc = buffer_desc;
-		rtlpci->tx_ring[prio].buffer_desc_dma = buffer_desc_dma;
-
-		rtlpci->tx_ring[prio].cur_tx_rp = 0;
-		rtlpci->tx_ring[prio].cur_tx_wp = 0;
-	}
-
-	/* alloc dma for this ring */
-	desc = pci_zalloc_consistent(rtlpci->pdev,
-				     sizeof(*desc) * entries, &desc_dma);
-
-	if (!desc || (unsigned long)desc & 0xFF) {
-		pr_err("Cannot allocate TX ring (prio = %d)\n", prio);
-		return -ENOMEM;
-	}
-
-	rtlpci->tx_ring[prio].desc = desc;
-	rtlpci->tx_ring[prio].dma = desc_dma;
-
-	rtlpci->tx_ring[prio].idx = 0;
-	rtlpci->tx_ring[prio].entries = entries;
-	skb_queue_head_init(&rtlpci->tx_ring[prio].queue);
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "queue:%d, ring_addr:%p\n",
-		 prio, desc);
-
-	/* init every desc in this ring */
-	if (!rtlpriv->use_new_trx_flow) {
-		for (i = 0; i < entries; i++) {
-			nextdescaddress = (u32)desc_dma +
-					  ((i +	1) % entries) *
-					  sizeof(*desc);
-
-			rtlpriv->cfg->ops->set_desc(hw, (u8 *)&desc[i],
-						    true,
-						    HW_DESC_TX_NEXTDESC_ADDR,
-						    (u8 *)&nextdescaddress);
-		}
-	}
-	return 0;
-}
-
-static int _rtl_pci_init_rx_ring(struct ieee80211_hw *hw, int rxring_idx)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	int i;
-
-	if (rtlpriv->use_new_trx_flow) {
-		struct rtl_rx_buffer_desc *entry = NULL;
-		/* alloc dma for this ring */
-		rtlpci->rx_ring[rxring_idx].buffer_desc =
-		    pci_zalloc_consistent(rtlpci->pdev,
-					  sizeof(*rtlpci->rx_ring[rxring_idx].buffer_desc) *
-						 rtlpci->rxringcount,
-					  &rtlpci->rx_ring[rxring_idx].dma);
-		if (!rtlpci->rx_ring[rxring_idx].buffer_desc ||
-		    (ulong)rtlpci->rx_ring[rxring_idx].buffer_desc & 0xFF) {
-			pr_err("Cannot allocate RX ring\n");
-			return -ENOMEM;
-		}
-
-		/* init every desc in this ring */
-		rtlpci->rx_ring[rxring_idx].idx = 0;
-		for (i = 0; i < rtlpci->rxringcount; i++) {
-			entry = &rtlpci->rx_ring[rxring_idx].buffer_desc[i];
-			if (!_rtl_pci_init_one_rxdesc(hw, NULL, (u8 *)entry,
-						      rxring_idx, i))
-				return -ENOMEM;
-		}
-	} else {
-		struct rtl_rx_desc *entry = NULL;
-		u8 tmp_one = 1;
-		/* alloc dma for this ring */
-		rtlpci->rx_ring[rxring_idx].desc =
-		    pci_zalloc_consistent(rtlpci->pdev,
-					  sizeof(*rtlpci->rx_ring[rxring_idx].desc) *
-					  rtlpci->rxringcount,
-					  &rtlpci->rx_ring[rxring_idx].dma);
-		if (!rtlpci->rx_ring[rxring_idx].desc ||
-		    (unsigned long)rtlpci->rx_ring[rxring_idx].desc & 0xFF) {
-			pr_err("Cannot allocate RX ring\n");
-			return -ENOMEM;
-		}
-
-		/* init every desc in this ring */
-		rtlpci->rx_ring[rxring_idx].idx = 0;
-
-		for (i = 0; i < rtlpci->rxringcount; i++) {
-			entry = &rtlpci->rx_ring[rxring_idx].desc[i];
-			if (!_rtl_pci_init_one_rxdesc(hw, NULL, (u8 *)entry,
-						      rxring_idx, i))
-				return -ENOMEM;
-		}
-
-		rtlpriv->cfg->ops->set_desc(hw, (u8 *)entry, false,
-					    HW_DESC_RXERO, &tmp_one);
-	}
-	return 0;
-}
-
-static void _rtl_pci_free_tx_ring(struct ieee80211_hw *hw,
-				  unsigned int prio)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[prio];
-
-	/* free every desc in this ring */
-	while (skb_queue_len(&ring->queue)) {
-		u8 *entry;
-		struct sk_buff *skb = __skb_dequeue(&ring->queue);
-
-		if (rtlpriv->use_new_trx_flow)
-			entry = (u8 *)(&ring->buffer_desc[ring->idx]);
-		else
-			entry = (u8 *)(&ring->desc[ring->idx]);
-
-		pci_unmap_single(rtlpci->pdev,
-				 rtlpriv->cfg->ops->get_desc(hw, (u8 *)entry,
-						   true,
-						   HW_DESC_TXBUFF_ADDR),
-				 skb->len, PCI_DMA_TODEVICE);
-		kfree_skb(skb);
-		ring->idx = (ring->idx + 1) % ring->entries;
-	}
-
-	/* free dma of this ring */
-	pci_free_consistent(rtlpci->pdev,
-			    sizeof(*ring->desc) * ring->entries,
-			    ring->desc, ring->dma);
-	ring->desc = NULL;
-	if (rtlpriv->use_new_trx_flow) {
-		pci_free_consistent(rtlpci->pdev,
-				    sizeof(*ring->buffer_desc) * ring->entries,
-				    ring->buffer_desc, ring->buffer_desc_dma);
-		ring->buffer_desc = NULL;
-	}
-}
-
-static void _rtl_pci_free_rx_ring(struct ieee80211_hw *hw, int rxring_idx)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	int i;
-
-	/* free every desc in this ring */
-	for (i = 0; i < rtlpci->rxringcount; i++) {
-		struct sk_buff *skb = rtlpci->rx_ring[rxring_idx].rx_buf[i];
-
-		if (!skb)
-			continue;
-		pci_unmap_single(rtlpci->pdev, *((dma_addr_t *)skb->cb),
-				 rtlpci->rxbuffersize, PCI_DMA_FROMDEVICE);
-		kfree_skb(skb);
-	}
-
-	/* free dma of this ring */
-	if (rtlpriv->use_new_trx_flow) {
-		pci_free_consistent(rtlpci->pdev,
-				    sizeof(*rtlpci->rx_ring[rxring_idx].buffer_desc) *
-				    rtlpci->rxringcount,
-				    rtlpci->rx_ring[rxring_idx].buffer_desc,
-				    rtlpci->rx_ring[rxring_idx].dma);
-		rtlpci->rx_ring[rxring_idx].buffer_desc = NULL;
-	} else {
-		pci_free_consistent(rtlpci->pdev,
-				    sizeof(*rtlpci->rx_ring[rxring_idx].desc) *
-				    rtlpci->rxringcount,
-				    rtlpci->rx_ring[rxring_idx].desc,
-				    rtlpci->rx_ring[rxring_idx].dma);
-		rtlpci->rx_ring[rxring_idx].desc = NULL;
-	}
-}
-
-static int _rtl_pci_init_trx_ring(struct ieee80211_hw *hw)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	int ret;
-	int i, rxring_idx;
-
-	/* rxring_idx 0:RX_MPDU_QUEUE
-	 * rxring_idx 1:RX_CMD_QUEUE
-	 */
-	for (rxring_idx = 0; rxring_idx < RTL_PCI_MAX_RX_QUEUE; rxring_idx++) {
-		ret = _rtl_pci_init_rx_ring(hw, rxring_idx);
-		if (ret)
-			return ret;
-	}
-
-	for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++) {
-		ret = _rtl_pci_init_tx_ring(hw, i, rtlpci->txringcount[i]);
-		if (ret)
-			goto err_free_rings;
-	}
-
-	return 0;
-
-err_free_rings:
-	for (rxring_idx = 0; rxring_idx < RTL_PCI_MAX_RX_QUEUE; rxring_idx++)
-		_rtl_pci_free_rx_ring(hw, rxring_idx);
-
-	for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++)
-		if (rtlpci->tx_ring[i].desc ||
-		    rtlpci->tx_ring[i].buffer_desc)
-			_rtl_pci_free_tx_ring(hw, i);
-
-	return 1;
-}
-
-static int _rtl_pci_deinit_trx_ring(struct ieee80211_hw *hw)
-{
-	u32 i, rxring_idx;
-
-	/*free rx rings */
-	for (rxring_idx = 0; rxring_idx < RTL_PCI_MAX_RX_QUEUE; rxring_idx++)
-		_rtl_pci_free_rx_ring(hw, rxring_idx);
-
-	/*free tx rings */
-	for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++)
-		_rtl_pci_free_tx_ring(hw, i);
-
-	return 0;
-}
-
-int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	int i, rxring_idx;
-	unsigned long flags;
-	u8 tmp_one = 1;
-	u32 bufferaddress;
-	/* rxring_idx 0:RX_MPDU_QUEUE */
-	/* rxring_idx 1:RX_CMD_QUEUE */
-	for (rxring_idx = 0; rxring_idx < RTL_PCI_MAX_RX_QUEUE; rxring_idx++) {
-		/* force the rx_ring[RX_MPDU_QUEUE/
-		 * RX_CMD_QUEUE].idx to the first one
-		 * new trx flow, do nothing
-		 */
-		if (!rtlpriv->use_new_trx_flow &&
-		    rtlpci->rx_ring[rxring_idx].desc) {
-			struct rtl_rx_desc *entry = NULL;
-
-			rtlpci->rx_ring[rxring_idx].idx = 0;
-			for (i = 0; i < rtlpci->rxringcount; i++) {
-				entry = &rtlpci->rx_ring[rxring_idx].desc[i];
-				bufferaddress =
-				  rtlpriv->cfg->ops->get_desc(hw, (u8 *)entry,
-				  false, HW_DESC_RXBUFF_ADDR);
-				memset((u8 *)entry, 0,
-				       sizeof(*rtlpci->rx_ring
-				       [rxring_idx].desc));/*clear one entry*/
-				if (rtlpriv->use_new_trx_flow) {
-					/* This is deadcode */
-					rtlpriv->cfg->ops->set_desc(hw,
-					    (u8 *)entry, false,
-					    HW_DESC_RX_PREPARE,
-					    (u8 *)&bufferaddress);
-				} else {
-					rtlpriv->cfg->ops->set_desc(hw,
-					    (u8 *)entry, false,
-					    HW_DESC_RXBUFF_ADDR,
-					    (u8 *)&bufferaddress);
-					rtlpriv->cfg->ops->set_desc(hw,
-					    (u8 *)entry, false,
-					    HW_DESC_RXPKT_LEN,
-					    (u8 *)&rtlpci->rxbuffersize);
-					rtlpriv->cfg->ops->set_desc(hw,
-					    (u8 *)entry, false,
-					    HW_DESC_RXOWN,
-					    (u8 *)&tmp_one);
-				}
-			}
-			rtlpriv->cfg->ops->set_desc(hw, (u8 *)entry, false,
-					    HW_DESC_RXERO, (u8 *)&tmp_one);
-		}
-		rtlpci->rx_ring[rxring_idx].idx = 0;
-	}
-
-	/*
-	 *after reset, release previous pending packet,
-	 *and force the  tx idx to the first one
-	 */
-	spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags);
-	for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++) {
-		if (rtlpci->tx_ring[i].desc ||
-		    rtlpci->tx_ring[i].buffer_desc) {
-			struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[i];
-
-			while (skb_queue_len(&ring->queue)) {
-				u8 *entry;
-				struct sk_buff *skb =
-					__skb_dequeue(&ring->queue);
-				if (rtlpriv->use_new_trx_flow)
-					entry = (u8 *)(&ring->buffer_desc
-								[ring->idx]);
-				else
-					entry = (u8 *)(&ring->desc[ring->idx]);
-
-				pci_unmap_single(rtlpci->pdev,
-				     rtlpriv->cfg->ops->get_desc(hw, (u8 *)entry,
-					 true, HW_DESC_TXBUFF_ADDR),
-					 skb->len, PCI_DMA_TODEVICE);
-				dev_kfree_skb_irq(skb);
-				ring->idx = (ring->idx + 1) % ring->entries;
-			}
-
-			if (rtlpriv->use_new_trx_flow) {
-				rtlpci->tx_ring[i].cur_tx_rp = 0;
-				rtlpci->tx_ring[i].cur_tx_wp = 0;
-			}
-
-			ring->idx = 0;
-			ring->entries = rtlpci->txringcount[i];
-		}
-	}
-	spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
-
-	return 0;
-}
-
-static bool rtl_pci_tx_chk_waitq_insert(struct ieee80211_hw *hw,
-					struct ieee80211_sta *sta,
-					struct sk_buff *skb)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_sta_info *sta_entry = NULL;
-	u8 tid = rtl_get_tid(skb);
-	__le16 fc = rtl_get_fc(skb);
-
-	if (!sta)
-		return false;
-	sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-
-	if (!rtlpriv->rtlhal.earlymode_enable)
-		return false;
-	if (ieee80211_is_nullfunc(fc))
-		return false;
-	if (ieee80211_is_qos_nullfunc(fc))
-		return false;
-	if (ieee80211_is_pspoll(fc))
-		return false;
-	if (sta_entry->tids[tid].agg.agg_state != RTL_AGG_OPERATIONAL)
-		return false;
-	if (_rtl_mac_to_hwqueue(hw, skb) > VO_QUEUE)
-		return false;
-	if (tid > 7)
-		return false;
-
-	/* maybe every tid should be checked */
-	if (!rtlpriv->link_info.higher_busytxtraffic[tid])
-		return false;
-
-	spin_lock_bh(&rtlpriv->locks.waitq_lock);
-	skb_queue_tail(&rtlpriv->mac80211.skb_waitq[tid], skb);
-	spin_unlock_bh(&rtlpriv->locks.waitq_lock);
-
-	return true;
-}
-
-static int rtl_pci_tx(struct ieee80211_hw *hw,
-		      struct ieee80211_sta *sta,
-		      struct sk_buff *skb,
-		      struct rtl_tcb_desc *ptcb_desc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_sta_info *sta_entry = NULL;
-	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
-	struct rtl8192_tx_ring *ring;
-	struct rtl_tx_desc *pdesc;
-	struct rtl_tx_buffer_desc *ptx_bd_desc = NULL;
-	u16 idx;
-	u8 hw_queue = _rtl_mac_to_hwqueue(hw, skb);
-	unsigned long flags;
-	struct ieee80211_hdr *hdr = rtl_get_hdr(skb);
-	__le16 fc = rtl_get_fc(skb);
-	u8 *pda_addr = hdr->addr1;
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	/*ssn */
-	u8 tid = 0;
-	u16 seq_number = 0;
-	u8 own;
-	u8 temp_one = 1;
-
-	if (ieee80211_is_mgmt(fc))
-		rtl_tx_mgmt_proc(hw, skb);
-
-	if (rtlpriv->psc.sw_ps_enabled) {
-		if (ieee80211_is_data(fc) && !ieee80211_is_nullfunc(fc) &&
-		    !ieee80211_has_pm(fc))
-			hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_PM);
-	}
-
-	rtl_action_proc(hw, skb, true);
-
-	if (is_multicast_ether_addr(pda_addr))
-		rtlpriv->stats.txbytesmulticast += skb->len;
-	else if (is_broadcast_ether_addr(pda_addr))
-		rtlpriv->stats.txbytesbroadcast += skb->len;
-	else
-		rtlpriv->stats.txbytesunicast += skb->len;
-
-	spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags);
-	ring = &rtlpci->tx_ring[hw_queue];
-	if (hw_queue != BEACON_QUEUE) {
-		if (rtlpriv->use_new_trx_flow)
-			idx = ring->cur_tx_wp;
-		else
-			idx = (ring->idx + skb_queue_len(&ring->queue)) %
-			      ring->entries;
-	} else {
-		idx = 0;
-	}
-
-	pdesc = &ring->desc[idx];
-	if (rtlpriv->use_new_trx_flow) {
-		ptx_bd_desc = &ring->buffer_desc[idx];
-	} else {
-		own = (u8)rtlpriv->cfg->ops->get_desc(hw, (u8 *)pdesc,
-				true, HW_DESC_OWN);
-
-		if ((own == 1) && (hw_queue != BEACON_QUEUE)) {
-			RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-				 "No more TX desc@%d, ring->idx = %d, idx = %d, skb_queue_len = 0x%x\n",
-				 hw_queue, ring->idx, idx,
-				 skb_queue_len(&ring->queue));
-
-			spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock,
-					       flags);
-			return skb->len;
-		}
-	}
-
-	if (rtlpriv->cfg->ops->get_available_desc &&
-	    rtlpriv->cfg->ops->get_available_desc(hw, hw_queue) == 0) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "get_available_desc fail\n");
-		spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
-		return skb->len;
-	}
-
-	if (ieee80211_is_data_qos(fc)) {
-		tid = rtl_get_tid(skb);
-		if (sta) {
-			sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-			seq_number = (le16_to_cpu(hdr->seq_ctrl) &
-				      IEEE80211_SCTL_SEQ) >> 4;
-			seq_number += 1;
-
-			if (!ieee80211_has_morefrags(hdr->frame_control))
-				sta_entry->tids[tid].seq_number = seq_number;
-		}
-	}
-
-	if (ieee80211_is_data(fc))
-		rtlpriv->cfg->ops->led_control(hw, LED_CTL_TX);
-
-	rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *)pdesc,
-			(u8 *)ptx_bd_desc, info, sta, skb, hw_queue, ptcb_desc);
-
-	__skb_queue_tail(&ring->queue, skb);
-
-	if (rtlpriv->use_new_trx_flow) {
-		rtlpriv->cfg->ops->set_desc(hw, (u8 *)pdesc, true,
-					    HW_DESC_OWN, &hw_queue);
-	} else {
-		rtlpriv->cfg->ops->set_desc(hw, (u8 *)pdesc, true,
-					    HW_DESC_OWN, &temp_one);
-	}
-
-	if ((ring->entries - skb_queue_len(&ring->queue)) < 2 &&
-	    hw_queue != BEACON_QUEUE) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
-			 "less desc left, stop skb_queue@%d, ring->idx = %d, idx = %d, skb_queue_len = 0x%x\n",
-			 hw_queue, ring->idx, idx,
-			 skb_queue_len(&ring->queue));
-
-		ieee80211_stop_queue(hw, skb_get_queue_mapping(skb));
-	}
-
-	spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
-
-	rtlpriv->cfg->ops->tx_polling(hw, hw_queue);
-
-	return 0;
-}
-
-static void rtl_pci_flush(struct ieee80211_hw *hw, u32 queues, bool drop)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	u16 i = 0;
-	int queue_id;
-	struct rtl8192_tx_ring *ring;
-
-	if (mac->skip_scan)
-		return;
-
-	for (queue_id = RTL_PCI_MAX_TX_QUEUE_COUNT - 1; queue_id >= 0;) {
-		u32 queue_len;
-
-		if (((queues >> queue_id) & 0x1) == 0) {
-			queue_id--;
-			continue;
-		}
-		ring = &pcipriv->dev.tx_ring[queue_id];
-		queue_len = skb_queue_len(&ring->queue);
-		if (queue_len == 0 || queue_id == BEACON_QUEUE ||
-		    queue_id == TXCMD_QUEUE) {
-			queue_id--;
-			continue;
-		} else {
-			msleep(20);
-			i++;
-		}
-
-		/* we just wait 1s for all queues */
-		if (rtlpriv->psc.rfpwr_state == ERFOFF ||
-		    is_hal_stop(rtlhal) || i >= 200)
-			return;
-	}
-}
-
-static void rtl_pci_deinit(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	_rtl_pci_deinit_trx_ring(hw);
-
-	synchronize_irq(rtlpci->pdev->irq);
-	tasklet_kill(&rtlpriv->works.irq_tasklet);
-	cancel_work_sync(&rtlpriv->works.lps_change_work);
-
-	flush_workqueue(rtlpriv->works.rtl_wq);
-	destroy_workqueue(rtlpriv->works.rtl_wq);
-}
-
-static int rtl_pci_init(struct ieee80211_hw *hw, struct pci_dev *pdev)
-{
-	int err;
-
-	_rtl_pci_init_struct(hw, pdev);
-
-	err = _rtl_pci_init_trx_ring(hw);
-	if (err) {
-		pr_err("tx ring initialization failed\n");
-		return err;
-	}
-
-	return 0;
-}
-
-static int rtl_pci_start(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_mac *rtlmac = rtl_mac(rtl_priv(hw));
-
-	int err;
-
-	rtl_pci_reset_trx_ring(hw);
-
-	rtlpci->driver_is_goingto_unload = false;
-	if (rtlpriv->cfg->ops->get_btc_status &&
-	    rtlpriv->cfg->ops->get_btc_status()) {
-		rtlpriv->btcoexist.btc_info.ap_num = 36;
-		rtlpriv->btcoexist.btc_ops->btc_init_variables(rtlpriv);
-		rtlpriv->btcoexist.btc_ops->btc_init_hal_vars(rtlpriv);
-	} else if (rtlpriv->btcoexist.btc_ops) {
-		rtlpriv->btcoexist.btc_ops->btc_init_variables_wifi_only(
-								rtlpriv);
-	}
-
-	err = rtlpriv->cfg->ops->hw_init(hw);
-	if (err) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-			 "Failed to config hardware!\n");
-		return err;
-	}
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RETRY_LIMIT,
-			&rtlmac->retry_long);
-
-	rtlpriv->cfg->ops->enable_interrupt(hw);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "enable_interrupt OK\n");
-
-	rtl_init_rx_config(hw);
-
-	/*should be after adapter start and interrupt enable. */
-	set_hal_start(rtlhal);
-
-	RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
-
-	rtlpci->up_first_time = false;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "%s OK\n", __func__);
-	return 0;
-}
-
-static void rtl_pci_stop(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	unsigned long flags;
-	u8 rf_timeout = 0;
-
-	if (rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->btcoexist.btc_ops->btc_halt_notify(rtlpriv);
-
-	if (rtlpriv->btcoexist.btc_ops)
-		rtlpriv->btcoexist.btc_ops->btc_deinit_variables(rtlpriv);
-
-	/*
-	 *should be before disable interrupt&adapter
-	 *and will do it immediately.
-	 */
-	set_hal_stop(rtlhal);
-
-	rtlpci->driver_is_goingto_unload = true;
-	rtlpriv->cfg->ops->disable_interrupt(hw);
-	cancel_work_sync(&rtlpriv->works.lps_change_work);
-
-	spin_lock_irqsave(&rtlpriv->locks.rf_ps_lock, flags);
-	while (ppsc->rfchange_inprogress) {
-		spin_unlock_irqrestore(&rtlpriv->locks.rf_ps_lock, flags);
-		if (rf_timeout > 100) {
-			spin_lock_irqsave(&rtlpriv->locks.rf_ps_lock, flags);
-			break;
-		}
-		mdelay(1);
-		rf_timeout++;
-		spin_lock_irqsave(&rtlpriv->locks.rf_ps_lock, flags);
-	}
-	ppsc->rfchange_inprogress = true;
-	spin_unlock_irqrestore(&rtlpriv->locks.rf_ps_lock, flags);
-
-	rtlpriv->cfg->ops->hw_disable(hw);
-	/* some things are not needed if firmware not available */
-	if (!rtlpriv->max_fw_size)
-		return;
-	rtlpriv->cfg->ops->led_control(hw, LED_CTL_POWER_OFF);
-
-	spin_lock_irqsave(&rtlpriv->locks.rf_ps_lock, flags);
-	ppsc->rfchange_inprogress = false;
-	spin_unlock_irqrestore(&rtlpriv->locks.rf_ps_lock, flags);
-
-	rtl_pci_enable_aspm(hw);
-}
-
-static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
-				  struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct pci_dev *bridge_pdev = pdev->bus->self;
-	u16 venderid;
-	u16 deviceid;
-	u8 revisionid;
-	u16 irqline;
-	u8 tmp;
-
-	pcipriv->ndis_adapter.pcibridge_vendor = PCI_BRIDGE_VENDOR_UNKNOWN;
-	venderid = pdev->vendor;
-	deviceid = pdev->device;
-	pci_read_config_byte(pdev, 0x8, &revisionid);
-	pci_read_config_word(pdev, 0x3C, &irqline);
-
-	/* PCI ID 0x10ec:0x8192 occurs for both RTL8192E, which uses
-	 * r8192e_pci, and RTL8192SE, which uses this driver. If the
-	 * revision ID is RTL_PCI_REVISION_ID_8192PCIE (0x01), then
-	 * the correct driver is r8192e_pci, thus this routine should
-	 * return false.
-	 */
-	if (deviceid == RTL_PCI_8192SE_DID &&
-	    revisionid == RTL_PCI_REVISION_ID_8192PCIE)
-		return false;
-
-	if (deviceid == RTL_PCI_8192_DID ||
-	    deviceid == RTL_PCI_0044_DID ||
-	    deviceid == RTL_PCI_0047_DID ||
-	    deviceid == RTL_PCI_8192SE_DID ||
-	    deviceid == RTL_PCI_8174_DID ||
-	    deviceid == RTL_PCI_8173_DID ||
-	    deviceid == RTL_PCI_8172_DID ||
-	    deviceid == RTL_PCI_8171_DID) {
-		switch (revisionid) {
-		case RTL_PCI_REVISION_ID_8192PCIE:
-			RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-				 "8192 PCI-E is found - vid/did=%x/%x\n",
-				 venderid, deviceid);
-			rtlhal->hw_type = HARDWARE_TYPE_RTL8192E;
-			return false;
-		case RTL_PCI_REVISION_ID_8192SE:
-			RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-				 "8192SE is found - vid/did=%x/%x\n",
-				 venderid, deviceid);
-			rtlhal->hw_type = HARDWARE_TYPE_RTL8192SE;
-			break;
-		default:
-			RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-				 "Err: Unknown device - vid/did=%x/%x\n",
-				 venderid, deviceid);
-			rtlhal->hw_type = HARDWARE_TYPE_RTL8192SE;
-			break;
-		}
-	} else if (deviceid == RTL_PCI_8723AE_DID) {
-		rtlhal->hw_type = HARDWARE_TYPE_RTL8723AE;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-			 "8723AE PCI-E is found - vid/did=%x/%x\n",
-			 venderid, deviceid);
-	} else if (deviceid == RTL_PCI_8192CET_DID ||
-		   deviceid == RTL_PCI_8192CE_DID ||
-		   deviceid == RTL_PCI_8191CE_DID ||
-		   deviceid == RTL_PCI_8188CE_DID) {
-		rtlhal->hw_type = HARDWARE_TYPE_RTL8192CE;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-			 "8192C PCI-E is found - vid/did=%x/%x\n",
-			 venderid, deviceid);
-	} else if (deviceid == RTL_PCI_8192DE_DID ||
-		   deviceid == RTL_PCI_8192DE_DID2) {
-		rtlhal->hw_type = HARDWARE_TYPE_RTL8192DE;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-			 "8192D PCI-E is found - vid/did=%x/%x\n",
-			 venderid, deviceid);
-	} else if (deviceid == RTL_PCI_8188EE_DID) {
-		rtlhal->hw_type = HARDWARE_TYPE_RTL8188EE;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Find adapter, Hardware type is 8188EE\n");
-	} else if (deviceid == RTL_PCI_8723BE_DID) {
-		rtlhal->hw_type = HARDWARE_TYPE_RTL8723BE;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Find adapter, Hardware type is 8723BE\n");
-	} else if (deviceid == RTL_PCI_8192EE_DID) {
-		rtlhal->hw_type = HARDWARE_TYPE_RTL8192EE;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Find adapter, Hardware type is 8192EE\n");
-	} else if (deviceid == RTL_PCI_8821AE_DID) {
-		rtlhal->hw_type = HARDWARE_TYPE_RTL8821AE;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Find adapter, Hardware type is 8821AE\n");
-	} else if (deviceid == RTL_PCI_8812AE_DID) {
-		rtlhal->hw_type = HARDWARE_TYPE_RTL8812AE;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Find adapter, Hardware type is 8812AE\n");
-	} else if (deviceid == RTL_PCI_8822BE_DID) {
-		rtlhal->hw_type = HARDWARE_TYPE_RTL8822BE;
-		rtlhal->bandset = BAND_ON_BOTH;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Find adapter, Hardware type is 8822BE\n");
-	} else {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "Err: Unknown device - vid/did=%x/%x\n",
-			 venderid, deviceid);
-
-		rtlhal->hw_type = RTL_DEFAULT_HARDWARE_TYPE;
-	}
-
-	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192DE) {
-		if (revisionid == 0 || revisionid == 1) {
-			if (revisionid == 0) {
-				RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-					 "Find 92DE MAC0\n");
-				rtlhal->interfaceindex = 0;
-			} else if (revisionid == 1) {
-				RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-					 "Find 92DE MAC1\n");
-				rtlhal->interfaceindex = 1;
-			}
-		} else {
-			RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-				 "Unknown device - VendorID/DeviceID=%x/%x, Revision=%x\n",
-				 venderid, deviceid, revisionid);
-			rtlhal->interfaceindex = 0;
-		}
-	}
-
-	switch (rtlhal->hw_type) {
-	case HARDWARE_TYPE_RTL8192EE:
-	case HARDWARE_TYPE_RTL8822BE:
-		/* use new trx flow */
-		rtlpriv->use_new_trx_flow = true;
-		break;
-
-	default:
-		rtlpriv->use_new_trx_flow = false;
-		break;
-	}
-
-	/*find bus info */
-	pcipriv->ndis_adapter.busnumber = pdev->bus->number;
-	pcipriv->ndis_adapter.devnumber = PCI_SLOT(pdev->devfn);
-	pcipriv->ndis_adapter.funcnumber = PCI_FUNC(pdev->devfn);
-
-	/*find bridge info */
-	pcipriv->ndis_adapter.pcibridge_vendor = PCI_BRIDGE_VENDOR_UNKNOWN;
-	/* some ARM have no bridge_pdev and will crash here
-	 * so we should check if bridge_pdev is NULL
-	 */
-	if (bridge_pdev) {
-		/*find bridge info if available */
-		pcipriv->ndis_adapter.pcibridge_vendorid = bridge_pdev->vendor;
-		for (tmp = 0; tmp < PCI_BRIDGE_VENDOR_MAX; tmp++) {
-			if (bridge_pdev->vendor == pcibridge_vendors[tmp]) {
-				pcipriv->ndis_adapter.pcibridge_vendor = tmp;
-				RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-					 "Pci Bridge Vendor is found index: %d\n",
-					 tmp);
-				break;
-			}
-		}
-	}
-
-	if (pcipriv->ndis_adapter.pcibridge_vendor !=
-		PCI_BRIDGE_VENDOR_UNKNOWN) {
-		pcipriv->ndis_adapter.pcibridge_busnum =
-		    bridge_pdev->bus->number;
-		pcipriv->ndis_adapter.pcibridge_devnum =
-		    PCI_SLOT(bridge_pdev->devfn);
-		pcipriv->ndis_adapter.pcibridge_funcnum =
-		    PCI_FUNC(bridge_pdev->devfn);
-		pcipriv->ndis_adapter.pcibridge_pciehdr_offset =
-		    pci_pcie_cap(bridge_pdev);
-		pcipriv->ndis_adapter.num4bytes =
-		    (pcipriv->ndis_adapter.pcibridge_pciehdr_offset + 0x10) / 4;
-
-		rtl_pci_get_linkcontrol_field(hw);
-
-		if (pcipriv->ndis_adapter.pcibridge_vendor ==
-		    PCI_BRIDGE_VENDOR_AMD) {
-			pcipriv->ndis_adapter.amd_l1_patch =
-			    rtl_pci_get_amd_l1_patch(hw);
-		}
-	}
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-		 "pcidev busnumber:devnumber:funcnumber:vendor:link_ctl %d:%d:%d:%x:%x\n",
-		 pcipriv->ndis_adapter.busnumber,
-		 pcipriv->ndis_adapter.devnumber,
-		 pcipriv->ndis_adapter.funcnumber,
-		 pdev->vendor, pcipriv->ndis_adapter.linkctrl_reg);
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-		 "pci_bridge busnumber:devnumber:funcnumber:vendor:pcie_cap:link_ctl_reg:amd %d:%d:%d:%x:%x:%x:%x\n",
-		 pcipriv->ndis_adapter.pcibridge_busnum,
-		 pcipriv->ndis_adapter.pcibridge_devnum,
-		 pcipriv->ndis_adapter.pcibridge_funcnum,
-		 pcibridge_vendors[pcipriv->ndis_adapter.pcibridge_vendor],
-		 pcipriv->ndis_adapter.pcibridge_pciehdr_offset,
-		 pcipriv->ndis_adapter.pcibridge_linkctrlreg,
-		 pcipriv->ndis_adapter.amd_l1_patch);
-
-	rtl_pci_parse_configuration(pdev, hw);
-	list_add_tail(&rtlpriv->list, &rtlpriv->glb_var->glb_priv_list);
-
-	return true;
-}
-
-static int rtl_pci_intr_mode_msi(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(pcipriv);
-	int ret;
-
-	ret = pci_enable_msi(rtlpci->pdev);
-	if (ret < 0)
-		return ret;
-
-	ret = request_irq(rtlpci->pdev->irq, _rtl_pci_interrupt,
-			  IRQF_SHARED, KBUILD_MODNAME, hw);
-	if (ret < 0) {
-		pci_disable_msi(rtlpci->pdev);
-		return ret;
-	}
-
-	rtlpci->using_msi = true;
-
-	RT_TRACE(rtlpriv, COMP_INIT | COMP_INTR, DBG_DMESG,
-		 "MSI Interrupt Mode!\n");
-	return 0;
-}
-
-static int rtl_pci_intr_mode_legacy(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(pcipriv);
-	int ret;
-
-	ret = request_irq(rtlpci->pdev->irq, _rtl_pci_interrupt,
-			  IRQF_SHARED, KBUILD_MODNAME, hw);
-	if (ret < 0)
-		return ret;
-
-	rtlpci->using_msi = false;
-	RT_TRACE(rtlpriv, COMP_INIT | COMP_INTR, DBG_DMESG,
-		 "Pin-based Interrupt Mode!\n");
-	return 0;
-}
-
-static int rtl_pci_intr_mode_decide(struct ieee80211_hw *hw)
-{
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(pcipriv);
-	int ret;
-
-	if (rtlpci->msi_support) {
-		ret = rtl_pci_intr_mode_msi(hw);
-		if (ret < 0)
-			ret = rtl_pci_intr_mode_legacy(hw);
-	} else {
-		ret = rtl_pci_intr_mode_legacy(hw);
-	}
-	return ret;
-}
-
-static void platform_enable_dma64(struct pci_dev *pdev, bool dma64)
-{
-	u8	value;
-
-	pci_read_config_byte(pdev, 0x719, &value);
-
-	/* 0x719 Bit5 is DMA64 bit fetch. */
-	if (dma64)
-		value |= BIT(5);
-	else
-		value &= ~BIT(5);
-
-	pci_write_config_byte(pdev, 0x719, value);
-}
-
-int rtl_pci_probe(struct pci_dev *pdev,
-		  const struct pci_device_id *id)
-{
-	struct ieee80211_hw *hw = NULL;
-
-	struct rtl_priv *rtlpriv = NULL;
-	struct rtl_pci_priv *pcipriv = NULL;
-	struct rtl_pci *rtlpci;
-	unsigned long pmem_start, pmem_len, pmem_flags;
-	int err;
-
-	err = rtl_core_module_init();
-	if (err)
-		return err;
-	err = pci_enable_device(pdev);
-	if (err) {
-		WARN_ONCE(true, "%s : Cannot enable new PCI device\n",
-			  pci_name(pdev));
-		return err;
-	}
-
-	if (((struct rtl_hal_cfg *)(id->driver_data))->mod_params->dma64 &&
-	    !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-		if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))) {
-			WARN_ONCE(true,
-				  "Unable to obtain 64bit DMA for consistent allocations\n");
-			err = -ENOMEM;
-			goto fail1;
-		}
-
-		platform_enable_dma64(pdev, true);
-	} else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) {
-		if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
-			WARN_ONCE(true,
-				  "rtlwifi: Unable to obtain 32bit DMA for consistent allocations\n");
-			err = -ENOMEM;
-			goto fail1;
-		}
-
-		platform_enable_dma64(pdev, false);
-	}
-
-	pci_set_master(pdev);
-
-	hw = ieee80211_alloc_hw(sizeof(struct rtl_pci_priv) +
-				sizeof(struct rtl_priv), &rtl_ops);
-	if (!hw) {
-		WARN_ONCE(true,
-			  "%s : ieee80211 alloc failed\n", pci_name(pdev));
-		err = -ENOMEM;
-		goto fail1;
-	}
-
-	SET_IEEE80211_DEV(hw, &pdev->dev);
-	pci_set_drvdata(pdev, hw);
-
-	rtlpriv = hw->priv;
-	rtlpriv->hw = hw;
-	pcipriv = (void *)rtlpriv->priv;
-	pcipriv->dev.pdev = pdev;
-	init_completion(&rtlpriv->firmware_loading_complete);
-	/*proximity init here*/
-	rtlpriv->proximity.proxim_on = false;
-
-	pcipriv = (void *)rtlpriv->priv;
-	pcipriv->dev.pdev = pdev;
-
-	/* init cfg & intf_ops */
-	rtlpriv->rtlhal.interface = INTF_PCI;
-	rtlpriv->cfg = (struct rtl_hal_cfg *)(id->driver_data);
-	rtlpriv->intf_ops = &rtl_pci_ops;
-	rtlpriv->glb_var = &rtl_global_var;
-
-	/* MEM map */
-	err = pci_request_regions(pdev, KBUILD_MODNAME);
-	if (err) {
-		WARN_ONCE(true, "rtlwifi: Can't obtain PCI resources\n");
-		goto fail1;
-	}
-
-	pmem_start = pci_resource_start(pdev, rtlpriv->cfg->bar_id);
-	pmem_len = pci_resource_len(pdev, rtlpriv->cfg->bar_id);
-	pmem_flags = pci_resource_flags(pdev, rtlpriv->cfg->bar_id);
-
-	/*shared mem start */
-	rtlpriv->io.pci_mem_start =
-			(unsigned long)pci_iomap(pdev,
-			rtlpriv->cfg->bar_id, pmem_len);
-	if (rtlpriv->io.pci_mem_start == 0) {
-		WARN_ONCE(true, "rtlwifi: Can't map PCI mem\n");
-		err = -ENOMEM;
-		goto fail2;
-	}
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-		 "mem mapped space: start: 0x%08lx len:%08lx flags:%08lx, after map:0x%08lx\n",
-		 pmem_start, pmem_len, pmem_flags,
-		 rtlpriv->io.pci_mem_start);
-
-	/* Disable Clk Request */
-	pci_write_config_byte(pdev, 0x81, 0);
-	/* leave D3 mode */
-	pci_write_config_byte(pdev, 0x44, 0);
-	pci_write_config_byte(pdev, 0x04, 0x06);
-	pci_write_config_byte(pdev, 0x04, 0x07);
-
-	/* find adapter */
-	if (!_rtl_pci_find_adapter(pdev, hw)) {
-		err = -ENODEV;
-		goto fail2;
-	}
-
-	/* Init IO handler */
-	_rtl_pci_io_handler_init(&pdev->dev, hw);
-
-	/*like read eeprom and so on */
-	rtlpriv->cfg->ops->read_eeprom_info(hw);
-
-	if (rtlpriv->cfg->ops->init_sw_vars(hw)) {
-		pr_err("Can't init_sw_vars\n");
-		err = -ENODEV;
-		goto fail3;
-	}
-	rtlpriv->cfg->ops->init_sw_leds(hw);
-
-	/*aspm */
-	rtl_pci_init_aspm(hw);
-
-	/* Init mac80211 sw */
-	err = rtl_init_core(hw);
-	if (err) {
-		pr_err("Can't allocate sw for mac80211\n");
-		goto fail3;
-	}
-
-	/* Init PCI sw */
-	err = rtl_pci_init(hw, pdev);
-	if (err) {
-		pr_err("Failed to init PCI\n");
-		goto fail3;
-	}
-
-	err = ieee80211_register_hw(hw);
-	if (err) {
-		pr_err("Can't register mac80211 hw.\n");
-		err = -ENODEV;
-		goto fail3;
-	}
-	rtlpriv->mac80211.mac80211_registered = 1;
-
-	/* add for debug */
-	rtl_debug_add_one(hw);
-
-	/*init rfkill */
-	rtl_init_rfkill(hw);	/* Init PCI sw */
-
-	rtlpci = rtl_pcidev(pcipriv);
-	err = rtl_pci_intr_mode_decide(hw);
-	if (err) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-			 "%s: failed to register IRQ handler\n",
-			 wiphy_name(hw->wiphy));
-		goto fail3;
-	}
-	rtlpci->irq_alloc = 1;
-
-	set_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status);
-	return 0;
-
-fail3:
-	pci_set_drvdata(pdev, NULL);
-	rtl_deinit_core(hw);
-
-fail2:
-	if (rtlpriv->io.pci_mem_start != 0)
-		pci_iounmap(pdev, (void __iomem *)rtlpriv->io.pci_mem_start);
-
-	pci_release_regions(pdev);
-	complete(&rtlpriv->firmware_loading_complete);
-
-fail1:
-	if (hw)
-		ieee80211_free_hw(hw);
-	pci_disable_device(pdev);
-
-	return err;
-}
-
-void rtl_pci_disconnect(struct pci_dev *pdev)
-{
-	struct ieee80211_hw *hw = pci_get_drvdata(pdev);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(pcipriv);
-	struct rtl_mac *rtlmac = rtl_mac(rtlpriv);
-
-	/* just in case driver is removed before firmware callback */
-	wait_for_completion(&rtlpriv->firmware_loading_complete);
-	clear_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status);
-
-	/* remove form debug */
-	rtl_debug_remove_one(hw);
-
-	/*ieee80211_unregister_hw will call ops_stop */
-	if (rtlmac->mac80211_registered == 1) {
-		ieee80211_unregister_hw(hw);
-		rtlmac->mac80211_registered = 0;
-	} else {
-		rtl_deinit_deferred_work(hw);
-		rtlpriv->intf_ops->adapter_stop(hw);
-	}
-	rtlpriv->cfg->ops->disable_interrupt(hw);
-
-	/*deinit rfkill */
-	rtl_deinit_rfkill(hw);
-
-	rtl_pci_deinit(hw);
-	rtl_deinit_core(hw);
-	rtlpriv->cfg->ops->deinit_sw_vars(hw);
-
-	if (rtlpci->irq_alloc) {
-		free_irq(rtlpci->pdev->irq, hw);
-		rtlpci->irq_alloc = 0;
-	}
-
-	if (rtlpci->using_msi)
-		pci_disable_msi(rtlpci->pdev);
-
-	list_del(&rtlpriv->list);
-	if (rtlpriv->io.pci_mem_start != 0) {
-		pci_iounmap(pdev, (void __iomem *)rtlpriv->io.pci_mem_start);
-		pci_release_regions(pdev);
-	}
-
-	pci_disable_device(pdev);
-
-	rtl_pci_disable_aspm(hw);
-
-	pci_set_drvdata(pdev, NULL);
-
-	ieee80211_free_hw(hw);
-	rtl_core_module_exit();
-}
-
-#ifdef CONFIG_PM_SLEEP
-/***************************************
- * kernel pci power state define:
- * PCI_D0         ((pci_power_t __force) 0)
- * PCI_D1         ((pci_power_t __force) 1)
- * PCI_D2         ((pci_power_t __force) 2)
- * PCI_D3hot      ((pci_power_t __force) 3)
- * PCI_D3cold     ((pci_power_t __force) 4)
- * PCI_UNKNOWN    ((pci_power_t __force) 5)
-
- * This function is called when system
- * goes into suspend state mac80211 will
- * call rtl_mac_stop() from the mac80211
- * suspend function first, So there is
- * no need to call hw_disable here.
- ****************************************/
-int rtl_pci_suspend(struct device *dev)
-{
-	struct pci_dev *pdev = to_pci_dev(dev);
-	struct ieee80211_hw *hw = pci_get_drvdata(pdev);
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtlpriv->cfg->ops->hw_suspend(hw);
-	rtl_deinit_rfkill(hw);
-
-	return 0;
-}
-
-int rtl_pci_resume(struct device *dev)
-{
-	struct pci_dev *pdev = to_pci_dev(dev);
-	struct ieee80211_hw *hw = pci_get_drvdata(pdev);
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtlpriv->cfg->ops->hw_resume(hw);
-	rtl_init_rfkill(hw);
-	return 0;
-}
-#endif /* CONFIG_PM_SLEEP */
-
-const struct rtl_intf_ops rtl_pci_ops = {
-	.read_efuse_byte = read_efuse_byte,
-	.adapter_start = rtl_pci_start,
-	.adapter_stop = rtl_pci_stop,
-	.check_buddy_priv = rtl_pci_check_buddy_priv,
-	.adapter_tx = rtl_pci_tx,
-	.flush = rtl_pci_flush,
-	.reset_trx_ring = rtl_pci_reset_trx_ring,
-	.waitq_insert = rtl_pci_tx_chk_waitq_insert,
-
-	.disable_aspm = rtl_pci_disable_aspm,
-	.enable_aspm = rtl_pci_enable_aspm,
-};
diff --git a/drivers/staging/rtlwifi/pci.h b/drivers/staging/rtlwifi/pci.h
deleted file mode 100644
index 0e55bae..0000000
--- a/drivers/staging/rtlwifi/pci.h
+++ /dev/null
@@ -1,319 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_PCI_H__
-#define __RTL_PCI_H__
-
-#include <linux/pci.h>
-/* 1: MSDU packet queue,
- * 2: Rx Command Queue
- */
-#define RTL_PCI_RX_MPDU_QUEUE			0
-#define RTL_PCI_RX_CMD_QUEUE			1
-#define RTL_PCI_MAX_RX_QUEUE			2
-
-#define RTL_PCI_MAX_RX_COUNT			512/*64*/
-#define RTL_PCI_MAX_TX_QUEUE_COUNT		9
-
-#define RT_TXDESC_NUM				128
-#define TX_DESC_NUM_92E				512
-#define TX_DESC_NUM_8822B			512
-#define RT_TXDESC_NUM_BE_QUEUE			256
-
-#define BK_QUEUE				0
-#define BE_QUEUE				1
-#define VI_QUEUE				2
-#define VO_QUEUE				3
-#define BEACON_QUEUE				4
-#define TXCMD_QUEUE				5
-#define MGNT_QUEUE				6
-#define HIGH_QUEUE				7
-#define HCCA_QUEUE				8
-#define H2C_QUEUE				TXCMD_QUEUE	/* In 8822B */
-
-#define RTL_PCI_DEVICE(vend, dev, cfg)  \
-	.vendor = (vend), \
-	.device = (dev), \
-	.subvendor = PCI_ANY_ID, \
-	.subdevice = PCI_ANY_ID,\
-	.driver_data = (kernel_ulong_t)&(cfg)
-
-#define INTEL_VENDOR_ID				0x8086
-#define SIS_VENDOR_ID				0x1039
-#define ATI_VENDOR_ID				0x1002
-#define ATI_DEVICE_ID				0x7914
-#define AMD_VENDOR_ID				0x1022
-
-#define PCI_MAX_BRIDGE_NUMBER			255
-#define PCI_MAX_DEVICES				32
-#define PCI_MAX_FUNCTION			8
-
-#define PCI_CONF_ADDRESS	0x0CF8	/*PCI Configuration Space Address */
-#define PCI_CONF_DATA		0x0CFC	/*PCI Configuration Space Data */
-
-#define PCI_CLASS_BRIDGE_DEV		0x06
-#define PCI_SUBCLASS_BR_PCI_TO_PCI	0x04
-#define PCI_CAPABILITY_ID_PCI_EXPRESS	0x10
-#define PCI_CAP_ID_EXP			0x10
-
-#define U1DONTCARE			0xFF
-#define U2DONTCARE			0xFFFF
-#define U4DONTCARE			0xFFFFFFFF
-
-#define RTL_PCI_8192_DID	0x8192	/*8192 PCI-E */
-#define RTL_PCI_8192SE_DID	0x8192	/*8192 SE */
-#define RTL_PCI_8174_DID	0x8174	/*8192 SE */
-#define RTL_PCI_8173_DID	0x8173	/*8191 SE Crab */
-#define RTL_PCI_8172_DID	0x8172	/*8191 SE RE */
-#define RTL_PCI_8171_DID	0x8171	/*8191 SE Unicron */
-#define RTL_PCI_8723AE_DID	0x8723	/*8723AE */
-#define RTL_PCI_0045_DID	0x0045	/*8190 PCI for Ceraga */
-#define RTL_PCI_0046_DID	0x0046	/*8190 Cardbus for Ceraga */
-#define RTL_PCI_0044_DID	0x0044	/*8192e PCIE for Ceraga */
-#define RTL_PCI_0047_DID	0x0047	/*8192e Express Card for Ceraga */
-#define RTL_PCI_700F_DID	0x700F
-#define RTL_PCI_701F_DID	0x701F
-#define RTL_PCI_DLINK_DID	0x3304
-#define RTL_PCI_8723AE_DID	0x8723	/*8723e */
-#define RTL_PCI_8192CET_DID	0x8191	/*8192ce */
-#define RTL_PCI_8192CE_DID	0x8178	/*8192ce */
-#define RTL_PCI_8191CE_DID	0x8177	/*8192ce */
-#define RTL_PCI_8188CE_DID	0x8176	/*8192ce */
-#define RTL_PCI_8192CU_DID	0x8191	/*8192ce */
-#define RTL_PCI_8192DE_DID	0x8193	/*8192de */
-#define RTL_PCI_8192DE_DID2	0x002B	/*92DE*/
-#define RTL_PCI_8188EE_DID	0x8179  /*8188ee*/
-#define RTL_PCI_8723BE_DID	0xB723  /*8723be*/
-#define RTL_PCI_8192EE_DID	0x818B	/*8192ee*/
-#define RTL_PCI_8821AE_DID	0x8821	/*8821ae*/
-#define RTL_PCI_8812AE_DID	0x8812	/*8812ae*/
-#define RTL_PCI_8822BE_DID	0xB822	/*8822be*/
-
-/*8192 support 16 pages of IO registers*/
-#define RTL_MEM_MAPPED_IO_RANGE_8190PCI		0x1000
-#define RTL_MEM_MAPPED_IO_RANGE_8192PCIE	0x4000
-#define RTL_MEM_MAPPED_IO_RANGE_8192SE		0x4000
-#define RTL_MEM_MAPPED_IO_RANGE_8192CE		0x4000
-#define RTL_MEM_MAPPED_IO_RANGE_8192DE		0x4000
-
-#define RTL_PCI_REVISION_ID_8190PCI		0x00
-#define RTL_PCI_REVISION_ID_8192PCIE		0x01
-#define RTL_PCI_REVISION_ID_8192SE		0x10
-#define RTL_PCI_REVISION_ID_8192CE		0x1
-#define RTL_PCI_REVISION_ID_8192DE		0x0
-
-#define RTL_DEFAULT_HARDWARE_TYPE	HARDWARE_TYPE_RTL8192CE
-
-enum pci_bridge_vendor {
-	PCI_BRIDGE_VENDOR_INTEL = 0x0,	/*0b'0000,0001 */
-	PCI_BRIDGE_VENDOR_ATI,		/*0b'0000,0010*/
-	PCI_BRIDGE_VENDOR_AMD,		/*0b'0000,0100*/
-	PCI_BRIDGE_VENDOR_SIS,		/*0b'0000,1000*/
-	PCI_BRIDGE_VENDOR_UNKNOWN,	/*0b'0100,0000*/
-	PCI_BRIDGE_VENDOR_MAX,
-};
-
-struct rtl_pci_capabilities_header {
-	u8 capability_id;
-	u8 next;
-};
-
-/* In new TRX flow, Buffer_desc is new concept
- * But TX wifi info == TX descriptor in old flow
- * RX wifi info == RX descriptor in old flow
- */
-struct rtl_tx_buffer_desc {
-	u32 dword[4 * (1 << (BUFDESC_SEG_NUM + 1))];
-} __packed;
-
-struct rtl_tx_desc {
-	u32 dword[16];
-} __packed;
-
-struct rtl_rx_buffer_desc { /*rx buffer desc*/
-	u32 dword[4];
-} __packed;
-
-struct rtl_rx_desc { /*old: rx desc new: rx wifi info*/
-	u32 dword[8];
-} __packed;
-
-struct rtl_tx_cmd_desc {
-	u32 dword[16];
-} __packed;
-
-struct rtl8192_tx_ring {
-	struct rtl_tx_desc *desc;
-	dma_addr_t dma;
-	unsigned int idx;
-	unsigned int entries;
-	struct sk_buff_head queue;
-	/*add for new trx flow*/
-	struct rtl_tx_buffer_desc *buffer_desc; /*tx buffer descriptor*/
-	dma_addr_t buffer_desc_dma; /*tx bufferd desc dma memory*/
-	u16 cur_tx_wp; /* current_tx_write_point */
-	u16 cur_tx_rp; /* current_tx_read_point */
-};
-
-struct rtl8192_rx_ring {
-	struct rtl_rx_desc *desc;
-	dma_addr_t dma;
-	unsigned int idx;
-	struct sk_buff *rx_buf[RTL_PCI_MAX_RX_COUNT];
-	/*add for new trx flow*/
-	struct rtl_rx_buffer_desc *buffer_desc; /*rx buffer descriptor*/
-	u16 next_rx_rp; /* next_rx_read_point */
-};
-
-struct rtl_pci {
-	struct pci_dev *pdev;
-	bool irq_enabled;
-
-	bool driver_is_goingto_unload;
-	bool up_first_time;
-	bool first_init;
-	bool being_init_adapter;
-	bool init_ready;
-
-	/*Tx */
-	struct rtl8192_tx_ring tx_ring[RTL_PCI_MAX_TX_QUEUE_COUNT];
-	int txringcount[RTL_PCI_MAX_TX_QUEUE_COUNT];
-	u32 transmit_config;
-
-	/*Rx */
-	struct rtl8192_rx_ring rx_ring[RTL_PCI_MAX_RX_QUEUE];
-	int rxringcount;
-	u16 rxbuffersize;
-	u32 receive_config;
-
-	/*irq */
-	u8 irq_alloc;
-	u32 irq_mask[4];	/* 0-1: normal, 2: unused, 3: h2c */
-	u32 sys_irq_mask;
-
-	/*Bcn control register setting */
-	u32 reg_bcn_ctrl_val;
-
-	/*ASPM*/
-	u8 const_pci_aspm;
-	u8 const_amdpci_aspm;
-	u8 const_hwsw_rfoff_d3;
-	u8 const_support_pciaspm;
-	/*pci-e bridge */
-	u8 const_hostpci_aspm_setting;
-	/*pci-e device */
-	u8 const_devicepci_aspm_setting;
-	/* If it supports ASPM, Offset[560h] = 0x40,
-	 * otherwise Offset[560h] = 0x00.
-	 */
-	bool support_aspm;
-	bool support_backdoor;
-
-	/*QOS & EDCA */
-	enum acm_method acm_method;
-
-	u16 shortretry_limit;
-	u16 longretry_limit;
-
-	/* MSI support */
-	bool msi_support;
-	bool using_msi;
-	/* interrupt clear before set */
-	bool int_clear;
-};
-
-struct mp_adapter {
-	u8 linkctrl_reg;
-
-	u8 busnumber;
-	u8 devnumber;
-	u8 funcnumber;
-
-	u8 pcibridge_busnum;
-	u8 pcibridge_devnum;
-	u8 pcibridge_funcnum;
-
-	u8 pcibridge_vendor;
-	u16 pcibridge_vendorid;
-	u16 pcibridge_deviceid;
-
-	u8 num4bytes;
-
-	u8 pcibridge_pciehdr_offset;
-	u8 pcibridge_linkctrlreg;
-
-	bool amd_l1_patch;
-};
-
-struct rtl_pci_priv {
-	struct bt_coexist_info bt_coexist;
-	struct rtl_led_ctl ledctl;
-	struct rtl_pci dev;
-	struct mp_adapter ndis_adapter;
-};
-
-#define rtl_pcipriv(hw)		(((struct rtl_pci_priv *)(rtl_priv(hw))->priv))
-#define rtl_pcidev(pcipriv)	(&((pcipriv)->dev))
-
-int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw);
-
-extern const struct rtl_intf_ops rtl_pci_ops;
-
-int rtl_pci_probe(struct pci_dev *pdev,
-		  const struct pci_device_id *id);
-void rtl_pci_disconnect(struct pci_dev *pdev);
-#ifdef CONFIG_PM_SLEEP
-int rtl_pci_suspend(struct device *dev);
-int rtl_pci_resume(struct device *dev);
-#endif /* CONFIG_PM_SLEEP */
-static inline u8 pci_read8_sync(struct rtl_priv *rtlpriv, u32 addr)
-{
-	return readb((u8 __iomem *)rtlpriv->io.pci_mem_start + addr);
-}
-
-static inline u16 pci_read16_sync(struct rtl_priv *rtlpriv, u32 addr)
-{
-	return readw((u8 __iomem *)rtlpriv->io.pci_mem_start + addr);
-}
-
-static inline u32 pci_read32_sync(struct rtl_priv *rtlpriv, u32 addr)
-{
-	return readl((u8 __iomem *)rtlpriv->io.pci_mem_start + addr);
-}
-
-static inline void pci_write8_async(struct rtl_priv *rtlpriv, u32 addr, u8 val)
-{
-	writeb(val, (u8 __iomem *)rtlpriv->io.pci_mem_start + addr);
-}
-
-static inline void pci_write16_async(struct rtl_priv *rtlpriv,
-				     u32 addr, u16 val)
-{
-	writew(val, (u8 __iomem *)rtlpriv->io.pci_mem_start + addr);
-}
-
-static inline void pci_write32_async(struct rtl_priv *rtlpriv,
-				     u32 addr, u32 val)
-{
-	writel(val, (u8 __iomem *)rtlpriv->io.pci_mem_start + addr);
-}
-
-static inline u16 calc_fifo_space(u16 rp, u16 wp, u16 size)
-{
-	if (rp <= wp)
-		return size - 1 + rp - wp;
-	return rp - wp - 1;
-}
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/halphyrf_ce.c b/drivers/staging/rtlwifi/phydm/halphyrf_ce.c
deleted file mode 100644
index f77847c..0000000
--- a/drivers/staging/rtlwifi/phydm/halphyrf_ce.c
+++ /dev/null
@@ -1,954 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-#define CALCULATE_SWINGTALBE_OFFSET(_offset, _direction, _size,                \
-				    _delta_thermal)                            \
-	do {                                                                   \
-		for (_offset = 0; _offset < _size; _offset++) {                \
-			if (_delta_thermal <                                   \
-			    thermal_threshold[_direction][_offset]) {          \
-				if (_offset != 0)                              \
-					_offset--;                             \
-				break;                                         \
-			}                                                      \
-		}                                                              \
-		if (_offset >= _size)                                          \
-			_offset = _size - 1;                                   \
-	} while (0)
-
-static inline void phydm_set_calibrate_info_up(
-	struct phy_dm_struct *dm, struct txpwrtrack_cfg *c, u8 delta,
-	struct dm_rf_calibration_struct *cali_info,
-	u8 *delta_swing_table_idx_tup_a, u8 *delta_swing_table_idx_tup_b,
-	u8 *delta_swing_table_idx_tup_c, u8 *delta_swing_table_idx_tup_d)
-{
-	u8 p = 0;
-
-	for (p = ODM_RF_PATH_A; p < c->rf_path_count; p++) {
-		cali_info->delta_power_index_last[p] =
-			cali_info->delta_power_index
-				[p]; /*recording poer index offset*/
-		switch (p) {
-		case ODM_RF_PATH_B:
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_swing_table_idx_tup_b[%d] = %d\n",
-				     delta, delta_swing_table_idx_tup_b[delta]);
-
-			cali_info->delta_power_index[p] =
-				delta_swing_table_idx_tup_b[delta];
-			/*Record delta swing for mix mode pwr tracking*/
-			cali_info->absolute_ofdm_swing_idx[p] =
-				delta_swing_table_idx_tup_b[delta];
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"******Temp is higher and cali_info->absolute_ofdm_swing_idx[ODM_RF_PATH_B] = %d\n",
-				cali_info->absolute_ofdm_swing_idx[p]);
-			break;
-
-		case ODM_RF_PATH_C:
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_swing_table_idx_tup_c[%d] = %d\n",
-				     delta, delta_swing_table_idx_tup_c[delta]);
-
-			cali_info->delta_power_index[p] =
-				delta_swing_table_idx_tup_c[delta];
-			/*Record delta swing for mix mode pwr tracking*/
-			cali_info->absolute_ofdm_swing_idx[p] =
-				delta_swing_table_idx_tup_c[delta];
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"******Temp is higher and cali_info->absolute_ofdm_swing_idx[ODM_RF_PATH_C] = %d\n",
-				cali_info->absolute_ofdm_swing_idx[p]);
-			break;
-
-		case ODM_RF_PATH_D:
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_swing_table_idx_tup_d[%d] = %d\n",
-				     delta, delta_swing_table_idx_tup_d[delta]);
-
-			cali_info->delta_power_index[p] =
-				delta_swing_table_idx_tup_d[delta];
-			/*Record delta swing for mix mode pwr tracking*/
-			cali_info->absolute_ofdm_swing_idx[p] =
-				delta_swing_table_idx_tup_d[delta];
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"******Temp is higher and cali_info->absolute_ofdm_swing_idx[ODM_RF_PATH_D] = %d\n",
-				cali_info->absolute_ofdm_swing_idx[p]);
-			break;
-
-		default:
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_swing_table_idx_tup_a[%d] = %d\n",
-				     delta, delta_swing_table_idx_tup_a[delta]);
-
-			cali_info->delta_power_index[p] =
-				delta_swing_table_idx_tup_a[delta];
-			/*Record delta swing for mix mode pwr tracking*/
-			cali_info->absolute_ofdm_swing_idx[p] =
-				delta_swing_table_idx_tup_a[delta];
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"******Temp is higher and cali_info->absolute_ofdm_swing_idx[ODM_RF_PATH_A] = %d\n",
-				cali_info->absolute_ofdm_swing_idx[p]);
-			break;
-		}
-	}
-}
-
-static inline void phydm_set_calibrate_info_down(
-	struct phy_dm_struct *dm, struct txpwrtrack_cfg *c, u8 delta,
-	struct dm_rf_calibration_struct *cali_info,
-	u8 *delta_swing_table_idx_tdown_a, u8 *delta_swing_table_idx_tdown_b,
-	u8 *delta_swing_table_idx_tdown_c, u8 *delta_swing_table_idx_tdown_d)
-{
-	u8 p = 0;
-
-	for (p = ODM_RF_PATH_A; p < c->rf_path_count; p++) {
-		cali_info->delta_power_index_last[p] =
-			cali_info->delta_power_index
-				[p]; /*recording poer index offset*/
-
-		switch (p) {
-		case ODM_RF_PATH_B:
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_swing_table_idx_tdown_b[%d] = %d\n",
-				     delta,
-				     delta_swing_table_idx_tdown_b[delta]);
-			cali_info->delta_power_index[p] =
-				-1 * delta_swing_table_idx_tdown_b[delta];
-			/*Record delta swing for mix mode pwr tracking*/
-			cali_info->absolute_ofdm_swing_idx[p] =
-				-1 * delta_swing_table_idx_tdown_b[delta];
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"******Temp is lower and cali_info->absolute_ofdm_swing_idx[ODM_RF_PATH_B] = %d\n",
-				cali_info->absolute_ofdm_swing_idx[p]);
-			break;
-
-		case ODM_RF_PATH_C:
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_swing_table_idx_tdown_c[%d] = %d\n",
-				     delta,
-				     delta_swing_table_idx_tdown_c[delta]);
-			cali_info->delta_power_index[p] =
-				-1 * delta_swing_table_idx_tdown_c[delta];
-			/*Record delta swing for mix mode pwr tracking*/
-			cali_info->absolute_ofdm_swing_idx[p] =
-				-1 * delta_swing_table_idx_tdown_c[delta];
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"******Temp is lower and cali_info->absolute_ofdm_swing_idx[ODM_RF_PATH_C] = %d\n",
-				cali_info->absolute_ofdm_swing_idx[p]);
-			break;
-
-		case ODM_RF_PATH_D:
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_swing_table_idx_tdown_d[%d] = %d\n",
-				     delta,
-				     delta_swing_table_idx_tdown_d[delta]);
-			cali_info->delta_power_index[p] =
-				-1 * delta_swing_table_idx_tdown_d[delta];
-			/*Record delta swing for mix mode pwr tracking*/
-			cali_info->absolute_ofdm_swing_idx[p] =
-				-1 * delta_swing_table_idx_tdown_d[delta];
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"******Temp is lower and cali_info->absolute_ofdm_swing_idx[ODM_RF_PATH_D] = %d\n",
-				cali_info->absolute_ofdm_swing_idx[p]);
-			break;
-
-		default:
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_swing_table_idx_tdown_a[%d] = %d\n",
-				     delta,
-				     delta_swing_table_idx_tdown_a[delta]);
-			cali_info->delta_power_index[p] =
-				-1 * delta_swing_table_idx_tdown_a[delta];
-			/*Record delta swing for mix mode pwr tracking*/
-			cali_info->absolute_ofdm_swing_idx[p] =
-				-1 * delta_swing_table_idx_tdown_a[delta];
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"******Temp is lower and cali_info->absolute_ofdm_swing_idx[ODM_RF_PATH_A] = %d\n",
-				cali_info->absolute_ofdm_swing_idx[p]);
-			break;
-		}
-	}
-}
-
-static inline void phydm_odm_tx_power_set(struct phy_dm_struct *dm,
-					  struct txpwrtrack_cfg *c,
-					  u8 indexforchannel, u8 flag)
-{
-	u8 p = 0;
-
-	if (dm->support_ic_type == ODM_RTL8188E ||
-	    dm->support_ic_type == ODM_RTL8192E ||
-	    dm->support_ic_type == ODM_RTL8821 ||
-	    dm->support_ic_type == ODM_RTL8812 ||
-	    dm->support_ic_type == ODM_RTL8723B ||
-	    dm->support_ic_type == ODM_RTL8814A ||
-	    dm->support_ic_type == ODM_RTL8703B ||
-	    dm->support_ic_type == ODM_RTL8188F ||
-	    dm->support_ic_type == ODM_RTL8822B ||
-	    dm->support_ic_type == ODM_RTL8723D ||
-	    dm->support_ic_type == ODM_RTL8821C ||
-	    dm->support_ic_type == ODM_RTL8710B) { /* JJ ADD 20161014 */
-
-		ODM_RT_TRACE(
-			dm, ODM_COMP_TX_PWR_TRACK,
-			"**********Enter POWER Tracking MIX_MODE**********\n");
-		for (p = ODM_RF_PATH_A; p < c->rf_path_count; p++) {
-			if (flag == 0)
-				(*c->odm_tx_pwr_track_set_pwr)(dm, MIX_MODE, p,
-							       0);
-			else
-				(*c->odm_tx_pwr_track_set_pwr)(dm, MIX_MODE, p,
-							       indexforchannel);
-		}
-	} else {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_TX_PWR_TRACK,
-			"**********Enter POWER Tracking BBSWING_MODE**********\n");
-		for (p = ODM_RF_PATH_A; p < c->rf_path_count; p++)
-			(*c->odm_tx_pwr_track_set_pwr)(dm, BBSWING, p,
-						       indexforchannel);
-	}
-}
-
-void configure_txpower_track(void *dm_void, struct txpwrtrack_cfg *config)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	/* JJ ADD 20161014 */
-
-	if (dm->support_ic_type == ODM_RTL8822B)
-		configure_txpower_track_8822b(config);
-}
-
-/* **********************************************************************
- * <20121113, Kordan> This function should be called when tx_agc changed.
- * Otherwise the previous compensation is gone, because we record the
- * delta of temperature between two TxPowerTracking watch dogs.
- *
- * NOTE: If Tx BB swing or Tx scaling is varified during run-time, still
- * need to call this function.
- * ***********************************************************************/
-void odm_clear_txpowertracking_state(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-	struct rtl_efuse *rtlefu = rtl_efuse(rtlpriv);
-	u8 p = 0;
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	cali_info->bb_swing_idx_cck_base = cali_info->default_cck_index;
-	cali_info->bb_swing_idx_cck = cali_info->default_cck_index;
-	dm->rf_calibrate_info.CCK_index = 0;
-
-	for (p = ODM_RF_PATH_A; p < MAX_RF_PATH; ++p) {
-		cali_info->bb_swing_idx_ofdm_base[p] =
-			cali_info->default_ofdm_index;
-		cali_info->bb_swing_idx_ofdm[p] = cali_info->default_ofdm_index;
-		cali_info->OFDM_index[p] = cali_info->default_ofdm_index;
-
-		cali_info->power_index_offset[p] = 0;
-		cali_info->delta_power_index[p] = 0;
-		cali_info->delta_power_index_last[p] = 0;
-
-		cali_info->absolute_ofdm_swing_idx[p] =
-			0; /* Initial Mix mode power tracking*/
-		cali_info->remnant_ofdm_swing_idx[p] = 0;
-		cali_info->kfree_offset[p] = 0;
-	}
-
-	cali_info->modify_tx_agc_flag_path_a =
-		false; /*Initial at Modify Tx Scaling mode*/
-	cali_info->modify_tx_agc_flag_path_b =
-		false; /*Initial at Modify Tx Scaling mode*/
-	cali_info->modify_tx_agc_flag_path_c =
-		false; /*Initial at Modify Tx Scaling mode*/
-	cali_info->modify_tx_agc_flag_path_d =
-		false; /*Initial at Modify Tx Scaling mode*/
-	cali_info->remnant_cck_swing_idx = 0;
-	cali_info->thermal_value = rtlefu->eeprom_thermalmeter;
-
-	cali_info->modify_tx_agc_value_cck = 0; /* modify by Mingzhi.Guo */
-	cali_info->modify_tx_agc_value_ofdm = 0; /* modify by Mingzhi.Guo */
-}
-
-void odm_txpowertracking_callback_thermal_meter(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-	struct rtl_efuse *rtlefu = rtl_efuse(rtlpriv);
-	void *adapter = dm->adapter;
-
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	u8 thermal_value = 0, delta, delta_LCK, delta_IQK, p = 0, i = 0;
-	s8 diff_DPK[4]; /* use 'for..loop' to initialize */
-	u8 thermal_value_avg_count = 0;
-	u32 thermal_value_avg = 0, regc80, regcd0, regcd4, regab4;
-
-	/* OFDM BB Swing should be less than +3.0dB (required by Arthur) */
-	u8 OFDM_min_index = 0;
-	/* get_right_chnl_place_for_iqk(hal_data->current_channel) */
-	u8 indexforchannel = 0;
-	u8 power_tracking_type = 0; /* no specify type */
-	u8 xtal_offset_eanble = 0;
-
-	struct txpwrtrack_cfg c;
-
-	/* 4 1. The following TWO tables decide the final index of
-	 *      OFDM/CCK swing table.
-	 */
-	u8 *delta_swing_table_idx_tup_a = NULL;
-	u8 *delta_swing_table_idx_tdown_a = NULL;
-	u8 *delta_swing_table_idx_tup_b = NULL;
-	u8 *delta_swing_table_idx_tdown_b = NULL;
-	/*for 8814 add by Yu Chen*/
-	u8 *delta_swing_table_idx_tup_c = NULL;
-	u8 *delta_swing_table_idx_tdown_c = NULL;
-	u8 *delta_swing_table_idx_tup_d = NULL;
-	u8 *delta_swing_table_idx_tdown_d = NULL;
-	/*for Xtal Offset by James.Tung*/
-	s8 *delta_swing_table_xtal_up = NULL;
-	s8 *delta_swing_table_xtal_down = NULL;
-
-	/* 4 2. Initialization ( 7 steps in total ) */
-
-	configure_txpower_track(dm, &c);
-
-	(*c.get_delta_swing_table)(dm, (u8 **)&delta_swing_table_idx_tup_a,
-				   (u8 **)&delta_swing_table_idx_tdown_a,
-				   (u8 **)&delta_swing_table_idx_tup_b,
-				   (u8 **)&delta_swing_table_idx_tdown_b);
-
-	if (dm->support_ic_type & ODM_RTL8814A) /*for 8814 path C & D*/
-		(*c.get_delta_swing_table8814only)(
-			dm, (u8 **)&delta_swing_table_idx_tup_c,
-			(u8 **)&delta_swing_table_idx_tdown_c,
-			(u8 **)&delta_swing_table_idx_tup_d,
-			(u8 **)&delta_swing_table_idx_tdown_d);
-	/* JJ ADD 20161014 */
-	if (dm->support_ic_type &
-	    (ODM_RTL8703B | ODM_RTL8723D | ODM_RTL8710B)) /*for Xtal Offset*/
-		(*c.get_delta_swing_xtal_table)(
-			dm, (s8 **)&delta_swing_table_xtal_up,
-			(s8 **)&delta_swing_table_xtal_down);
-
-	cali_info->txpowertracking_callback_cnt++; /*cosa add for debug*/
-	cali_info->is_txpowertracking_init = true;
-
-	/*cali_info->txpowertrack_control = hal_data->txpowertrack_control;
-	 *<Kordan> We should keep updating ctrl variable according to HalData.
-	 *<Kordan> rf_calibrate_info.rega24 will be initialized when
-	 *ODM HW configuring, but MP configures with para files.
-	 */
-	if (dm->mp_mode)
-		cali_info->rega24 = 0x090e1317;
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_TX_PWR_TRACK,
-		"===>%s\n cali_info->bb_swing_idx_cck_base: %d, cali_info->bb_swing_idx_ofdm_base[A]: %d, cali_info->default_ofdm_index: %d\n",
-		__func__, cali_info->bb_swing_idx_cck_base,
-		cali_info->bb_swing_idx_ofdm_base[ODM_RF_PATH_A],
-		cali_info->default_ofdm_index);
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_TX_PWR_TRACK,
-		"cali_info->txpowertrack_control=%d,  rtlefu->eeprom_thermalmeter %d\n",
-		cali_info->txpowertrack_control, rtlefu->eeprom_thermalmeter);
-
-	thermal_value =
-		(u8)odm_get_rf_reg(dm, ODM_RF_PATH_A, c.thermal_reg_addr,
-				   0xfc00); /* 0x42: RF Reg[15:10] 88E */
-
-	/*add log by zhao he, check c80/c94/c14/ca0 value*/
-	if (dm->support_ic_type == ODM_RTL8723D) {
-		regc80 = odm_get_bb_reg(dm, 0xc80, MASKDWORD);
-		regcd0 = odm_get_bb_reg(dm, 0xcd0, MASKDWORD);
-		regcd4 = odm_get_bb_reg(dm, 0xcd4, MASKDWORD);
-		regab4 = odm_get_bb_reg(dm, 0xab4, 0x000007FF);
-		ODM_RT_TRACE(
-			dm, ODM_COMP_CALIBRATION,
-			"0xc80 = 0x%x 0xcd0 = 0x%x 0xcd4 = 0x%x 0xab4 = 0x%x\n",
-			regc80, regcd0, regcd4, regab4);
-	}
-	/* JJ ADD 20161014 */
-	if (dm->support_ic_type == ODM_RTL8710B) {
-		regc80 = odm_get_bb_reg(dm, 0xc80, MASKDWORD);
-		regcd0 = odm_get_bb_reg(dm, 0xcd0, MASKDWORD);
-		regcd4 = odm_get_bb_reg(dm, 0xcd4, MASKDWORD);
-		regab4 = odm_get_bb_reg(dm, 0xab4, 0x000007FF);
-		ODM_RT_TRACE(
-			dm, ODM_COMP_CALIBRATION,
-			"0xc80 = 0x%x 0xcd0 = 0x%x 0xcd4 = 0x%x 0xab4 = 0x%x\n",
-			regc80, regcd0, regcd4, regab4);
-	}
-
-	if (!cali_info->txpowertrack_control)
-		return;
-
-	/*4 3. Initialize ThermalValues of rf_calibrate_info*/
-
-	if (cali_info->is_reloadtxpowerindex)
-		ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-			     "reload ofdm index for band switch\n");
-
-	/*4 4. Calculate average thermal meter*/
-
-	cali_info->thermal_value_avg[cali_info->thermal_value_avg_index] =
-		thermal_value;
-	cali_info->thermal_value_avg_index++;
-	if (cali_info->thermal_value_avg_index ==
-	    c.average_thermal_num) /*Average times =  c.average_thermal_num*/
-		cali_info->thermal_value_avg_index = 0;
-
-	for (i = 0; i < c.average_thermal_num; i++) {
-		if (cali_info->thermal_value_avg[i]) {
-			thermal_value_avg += cali_info->thermal_value_avg[i];
-			thermal_value_avg_count++;
-		}
-	}
-
-	if (thermal_value_avg_count) {
-		/* Calculate Average thermal_value after average enough times */
-		thermal_value =
-			(u8)(thermal_value_avg / thermal_value_avg_count);
-		cali_info->thermal_value_delta =
-			thermal_value - rtlefu->eeprom_thermalmeter;
-		ODM_RT_TRACE(
-			dm, ODM_COMP_TX_PWR_TRACK,
-			"AVG Thermal Meter = 0x%X, EFUSE Thermal base = 0x%X\n",
-			thermal_value, rtlefu->eeprom_thermalmeter);
-	}
-
-	/* 4 5. Calculate delta, delta_LCK, delta_IQK. */
-
-	/* "delta" is used to determine whether thermal value changes or not*/
-	delta = (thermal_value > cali_info->thermal_value) ?
-			(thermal_value - cali_info->thermal_value) :
-			(cali_info->thermal_value - thermal_value);
-	delta_LCK = (thermal_value > cali_info->thermal_value_lck) ?
-			    (thermal_value - cali_info->thermal_value_lck) :
-			    (cali_info->thermal_value_lck - thermal_value);
-	delta_IQK = (thermal_value > cali_info->thermal_value_iqk) ?
-			    (thermal_value - cali_info->thermal_value_iqk) :
-			    (cali_info->thermal_value_iqk - thermal_value);
-
-	if (cali_info->thermal_value_iqk ==
-	    0xff) { /*no PG, use thermal value for IQK*/
-		cali_info->thermal_value_iqk = thermal_value;
-		delta_IQK =
-			(thermal_value > cali_info->thermal_value_iqk) ?
-				(thermal_value - cali_info->thermal_value_iqk) :
-				(cali_info->thermal_value_iqk - thermal_value);
-		ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-			     "no PG, use thermal_value for IQK\n");
-	}
-
-	for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++)
-		diff_DPK[p] = (s8)thermal_value - (s8)cali_info->dpk_thermal[p];
-
-	/*4 6. If necessary, do LCK.*/
-
-	if (!(dm->support_ic_type &
-	      ODM_RTL8821)) { /*no PG, do LCK at initial status*/
-		if (cali_info->thermal_value_lck == 0xff) {
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "no PG, do LCK\n");
-			cali_info->thermal_value_lck = thermal_value;
-
-			/*Use RTLCK, so close power tracking driver LCK*/
-			if (!(dm->support_ic_type & ODM_RTL8814A) &&
-			    c.phy_lc_calibrate)
-				(*c.phy_lc_calibrate)(dm);
-
-			delta_LCK =
-				(thermal_value > cali_info->thermal_value_lck) ?
-					(thermal_value -
-					 cali_info->thermal_value_lck) :
-					(cali_info->thermal_value_lck -
-					 thermal_value);
-		}
-
-		ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-			     "(delta, delta_LCK, delta_IQK) = (%d, %d, %d)\n",
-			     delta, delta_LCK, delta_IQK);
-
-		/*Delta temperature is equal to or larger than 20 centigrade.*/
-		if (delta_LCK >= c.threshold_iqk) {
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_LCK(%d) >= threshold_iqk(%d)\n",
-				     delta_LCK, c.threshold_iqk);
-			cali_info->thermal_value_lck = thermal_value;
-
-			/*Use RTLCK, so close power tracking driver LCK*/
-			if (!(dm->support_ic_type & ODM_RTL8814A) &&
-			    c.phy_lc_calibrate)
-				(*c.phy_lc_calibrate)(dm);
-		}
-	}
-
-	/*3 7. If necessary, move the index of swing table to adjust Tx power.*/
-
-	if (delta > 0 && cali_info->txpowertrack_control) {
-		/* "delta" here is used to record the abs value of difference.*/
-		delta = thermal_value > rtlefu->eeprom_thermalmeter ?
-				(thermal_value - rtlefu->eeprom_thermalmeter) :
-				(rtlefu->eeprom_thermalmeter - thermal_value);
-		if (delta >= TXPWR_TRACK_TABLE_SIZE)
-			delta = TXPWR_TRACK_TABLE_SIZE - 1;
-
-		/*4 7.1 The Final Power index = BaseIndex + power_index_offset*/
-
-		if (thermal_value > rtlefu->eeprom_thermalmeter) {
-			phydm_set_calibrate_info_up(
-				dm, &c, delta, cali_info,
-				delta_swing_table_idx_tup_a,
-				delta_swing_table_idx_tup_b,
-				delta_swing_table_idx_tup_c,
-				delta_swing_table_idx_tup_d);
-			/* JJ ADD 20161014 */
-			if (dm->support_ic_type &
-			    (ODM_RTL8703B | ODM_RTL8723D | ODM_RTL8710B)) {
-				/*Save xtal_offset from Xtal table*/
-
-				/*recording last Xtal offset*/
-				cali_info->xtal_offset_last =
-					cali_info->xtal_offset;
-				ODM_RT_TRACE(
-					dm, ODM_COMP_TX_PWR_TRACK,
-					"[Xtal] delta_swing_table_xtal_up[%d] = %d\n",
-					delta,
-					delta_swing_table_xtal_up[delta]);
-				cali_info->xtal_offset =
-					delta_swing_table_xtal_up[delta];
-				xtal_offset_eanble =
-					(cali_info->xtal_offset_last ==
-					 cali_info->xtal_offset) ?
-						0 :
-						1;
-			}
-
-		} else {
-			phydm_set_calibrate_info_down(
-				dm, &c, delta, cali_info,
-				delta_swing_table_idx_tdown_a,
-				delta_swing_table_idx_tdown_b,
-				delta_swing_table_idx_tdown_c,
-				delta_swing_table_idx_tdown_d);
-			/* JJ ADD 20161014 */
-			if (dm->support_ic_type &
-			    (ODM_RTL8703B | ODM_RTL8723D | ODM_RTL8710B)) {
-				/*Save xtal_offset from Xtal table*/
-
-				/*recording last Xtal offset*/
-				cali_info->xtal_offset_last =
-					cali_info->xtal_offset;
-				ODM_RT_TRACE(
-					dm, ODM_COMP_TX_PWR_TRACK,
-					"[Xtal] delta_swing_table_xtal_down[%d] = %d\n",
-					delta,
-					delta_swing_table_xtal_down[delta]);
-				cali_info->xtal_offset =
-					delta_swing_table_xtal_down[delta];
-				xtal_offset_eanble =
-					(cali_info->xtal_offset_last ==
-					 cali_info->xtal_offset) ?
-						0 :
-						1;
-			}
-		}
-
-		for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"\n\n=========================== [path-%d] Calculating power_index_offset===========================\n",
-				p);
-
-			if (cali_info->delta_power_index[p] ==
-			    cali_info->delta_power_index_last[p]) {
-				/* If Thermal value changes but lookup table
-				 * value still the same
-				 */
-				cali_info->power_index_offset[p] = 0;
-			} else {
-				/*Power idx diff between 2 times Pwr Tracking*/
-				cali_info->power_index_offset[p] =
-					cali_info->delta_power_index[p] -
-					cali_info->delta_power_index_last[p];
-			}
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"[path-%d] power_index_offset(%d) = delta_power_index(%d) - delta_power_index_last(%d)\n",
-				p, cali_info->power_index_offset[p],
-				cali_info->delta_power_index[p],
-				cali_info->delta_power_index_last[p]);
-
-			cali_info->OFDM_index[p] =
-				cali_info->bb_swing_idx_ofdm_base[p] +
-				cali_info->power_index_offset[p];
-			cali_info->CCK_index =
-				cali_info->bb_swing_idx_cck_base +
-				cali_info->power_index_offset[p];
-
-			cali_info->bb_swing_idx_cck = cali_info->CCK_index;
-			cali_info->bb_swing_idx_ofdm[p] =
-				cali_info->OFDM_index[p];
-
-			/*******Print BB Swing base and index Offset**********/
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"The 'CCK' final index(%d) = BaseIndex(%d) + power_index_offset(%d)\n",
-				cali_info->bb_swing_idx_cck,
-				cali_info->bb_swing_idx_cck_base,
-				cali_info->power_index_offset[p]);
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"The 'OFDM' final index(%d) = BaseIndex[%d](%d) + power_index_offset(%d)\n",
-				cali_info->bb_swing_idx_ofdm[p], p,
-				cali_info->bb_swing_idx_ofdm_base[p],
-				cali_info->power_index_offset[p]);
-
-			/*4 7.1 Handle boundary conditions of index.*/
-
-			if (cali_info->OFDM_index[p] >
-			    c.swing_table_size_ofdm - 1)
-				cali_info->OFDM_index[p] =
-					c.swing_table_size_ofdm - 1;
-			else if (cali_info->OFDM_index[p] <= OFDM_min_index)
-				cali_info->OFDM_index[p] = OFDM_min_index;
-		}
-
-		ODM_RT_TRACE(
-			dm, ODM_COMP_TX_PWR_TRACK,
-			"\n\n========================================================================================================\n");
-
-		if (cali_info->CCK_index > c.swing_table_size_cck - 1)
-			cali_info->CCK_index = c.swing_table_size_cck - 1;
-		else if (cali_info->CCK_index <= 0)
-			cali_info->CCK_index = 0;
-	} else {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_TX_PWR_TRACK,
-			"The thermal meter is unchanged or TxPowerTracking OFF(%d): thermal_value: %d, cali_info->thermal_value: %d\n",
-			cali_info->txpowertrack_control, thermal_value,
-			cali_info->thermal_value);
-
-		for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++)
-			cali_info->power_index_offset[p] = 0;
-	}
-
-	/*Print Swing base & current*/
-	ODM_RT_TRACE(
-		dm, ODM_COMP_TX_PWR_TRACK,
-		"TxPowerTracking: [CCK] Swing Current index: %d, Swing base index: %d\n",
-		cali_info->CCK_index, cali_info->bb_swing_idx_cck_base);
-
-	for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++)
-		ODM_RT_TRACE(
-			dm, ODM_COMP_TX_PWR_TRACK,
-			"TxPowerTracking: [OFDM] Swing Current index: %d, Swing base index[%d]: %d\n",
-			cali_info->OFDM_index[p], p,
-			cali_info->bb_swing_idx_ofdm_base[p]);
-
-	if ((dm->support_ic_type & ODM_RTL8814A)) {
-		ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-			     "power_tracking_type=%d\n", power_tracking_type);
-
-		if (power_tracking_type == 0) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"**********Enter POWER Tracking MIX_MODE**********\n");
-			for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++)
-				(*c.odm_tx_pwr_track_set_pwr)(dm, MIX_MODE, p,
-							      0);
-		} else if (power_tracking_type == 1) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"**********Enter POWER Tracking MIX(2G) TSSI(5G) MODE**********\n");
-			for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++)
-				(*c.odm_tx_pwr_track_set_pwr)(
-					dm, MIX_2G_TSSI_5G_MODE, p, 0);
-		} else if (power_tracking_type == 2) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"**********Enter POWER Tracking MIX(5G) TSSI(2G)MODE**********\n");
-			for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++)
-				(*c.odm_tx_pwr_track_set_pwr)(
-					dm, MIX_5G_TSSI_2G_MODE, p, 0);
-		} else if (power_tracking_type == 3) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"**********Enter POWER Tracking TSSI MODE**********\n");
-			for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++)
-				(*c.odm_tx_pwr_track_set_pwr)(dm, TSSI_MODE, p,
-							      0);
-		}
-		/*Record last Power Tracking Thermal value*/
-		cali_info->thermal_value = thermal_value;
-
-	} else if ((cali_info->power_index_offset[ODM_RF_PATH_A] != 0 ||
-		    cali_info->power_index_offset[ODM_RF_PATH_B] != 0 ||
-		    cali_info->power_index_offset[ODM_RF_PATH_C] != 0 ||
-		    cali_info->power_index_offset[ODM_RF_PATH_D] != 0) &&
-		   cali_info->txpowertrack_control &&
-		   (rtlefu->eeprom_thermalmeter != 0xff)) {
-		/* 4 7.2 Configure the Swing Table to adjust Tx Power. */
-
-		/*Always true after Tx Power is adjusted by power tracking.*/
-		cali_info->is_tx_power_changed = true;
-		/* 2012/04/23 MH According to Luke's suggestion, we can not
-		 * write BB digital to increase TX power. Otherwise, EVM will
-		 * be bad.
-		 */
-		/* 2012/04/25 MH Add for tx power tracking to set tx power in
-		 * tx agc for 88E.
-		 */
-		if (thermal_value > cali_info->thermal_value) {
-			for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++) {
-				/* print temperature increasing */
-				ODM_RT_TRACE(
-					dm, ODM_COMP_TX_PWR_TRACK,
-					"Temperature Increasing(%d): delta_pi: %d, delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n",
-					p, cali_info->power_index_offset[p],
-					delta, thermal_value,
-					rtlefu->eeprom_thermalmeter,
-					cali_info->thermal_value);
-			}
-		} else if (thermal_value <
-			   cali_info->thermal_value) { /*Low temperature*/
-			for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++) {
-				/* print temperature decreasing */
-				ODM_RT_TRACE(
-					dm, ODM_COMP_TX_PWR_TRACK,
-					"Temperature Decreasing(%d): delta_pi: %d, delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n",
-					p, cali_info->power_index_offset[p],
-					delta, thermal_value,
-					rtlefu->eeprom_thermalmeter,
-					cali_info->thermal_value);
-			}
-		}
-
-		if (thermal_value > rtlefu->eeprom_thermalmeter) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"Temperature(%d) higher than PG value(%d)\n",
-				thermal_value, rtlefu->eeprom_thermalmeter);
-
-			phydm_odm_tx_power_set(dm, &c, indexforchannel, 0);
-		} else {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"Temperature(%d) lower than PG value(%d)\n",
-				thermal_value, rtlefu->eeprom_thermalmeter);
-			phydm_odm_tx_power_set(dm, &c, indexforchannel, 1);
-		}
-
-		/*Record last time Power Tracking result as base.*/
-		cali_info->bb_swing_idx_cck_base = cali_info->bb_swing_idx_cck;
-
-		for (p = ODM_RF_PATH_A; p < c.rf_path_count; p++)
-			cali_info->bb_swing_idx_ofdm_base[p] =
-				cali_info->bb_swing_idx_ofdm[p];
-
-		ODM_RT_TRACE(
-			dm, ODM_COMP_TX_PWR_TRACK,
-			"cali_info->thermal_value = %d thermal_value= %d\n",
-			cali_info->thermal_value, thermal_value);
-
-		/*Record last Power Tracking Thermal value*/
-		cali_info->thermal_value = thermal_value;
-	}
-
-	if (dm->support_ic_type == ODM_RTL8703B ||
-	    dm->support_ic_type == ODM_RTL8723D ||
-	    dm->support_ic_type == ODM_RTL8710B) { /* JJ ADD 20161014 */
-
-		if (xtal_offset_eanble != 0 &&
-		    cali_info->txpowertrack_control &&
-		    rtlefu->eeprom_thermalmeter != 0xff) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"**********Enter Xtal Tracking**********\n");
-
-			if (thermal_value > rtlefu->eeprom_thermalmeter) {
-				ODM_RT_TRACE(
-					dm, ODM_COMP_TX_PWR_TRACK,
-					"Temperature(%d) higher than PG value(%d)\n",
-					thermal_value,
-					rtlefu->eeprom_thermalmeter);
-				(*c.odm_txxtaltrack_set_xtal)(dm);
-			} else {
-				ODM_RT_TRACE(
-					dm, ODM_COMP_TX_PWR_TRACK,
-					"Temperature(%d) lower than PG value(%d)\n",
-					thermal_value,
-					rtlefu->eeprom_thermalmeter);
-				(*c.odm_txxtaltrack_set_xtal)(dm);
-			}
-		}
-		ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-			     "**********End Xtal Tracking**********\n");
-	}
-
-	if (!IS_HARDWARE_TYPE_8723B(adapter)) {
-		/* Delta temperature is equal to or larger than 20 centigrade
-		 * (When threshold is 8).
-		 */
-		if (delta_IQK >= c.threshold_iqk) {
-			ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-				     "delta_IQK(%d) >= threshold_iqk(%d)\n",
-				     delta_IQK, c.threshold_iqk);
-			if (!cali_info->is_iqk_in_progress)
-				(*c.do_iqk)(dm, delta_IQK, thermal_value, 8);
-		}
-	}
-	if (cali_info->dpk_thermal[ODM_RF_PATH_A] != 0) {
-		if (diff_DPK[ODM_RF_PATH_A] >= c.threshold_dpk) {
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x1);
-			odm_set_bb_reg(
-				dm, 0xcc4,
-				BIT(14) | BIT(13) | BIT(12) | BIT(11) | BIT(10),
-				(diff_DPK[ODM_RF_PATH_A] / c.threshold_dpk));
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x0);
-		} else if ((diff_DPK[ODM_RF_PATH_A] <= -1 * c.threshold_dpk)) {
-			s32 value = 0x20 +
-				    (diff_DPK[ODM_RF_PATH_A] / c.threshold_dpk);
-
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x1);
-			odm_set_bb_reg(dm, 0xcc4, BIT(14) | BIT(13) | BIT(12) |
-							  BIT(11) | BIT(10),
-				       value);
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x0);
-		} else {
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x1);
-			odm_set_bb_reg(dm, 0xcc4, BIT(14) | BIT(13) | BIT(12) |
-							  BIT(11) | BIT(10),
-				       0);
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x0);
-		}
-	}
-	if (cali_info->dpk_thermal[ODM_RF_PATH_B] != 0) {
-		if (diff_DPK[ODM_RF_PATH_B] >= c.threshold_dpk) {
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x1);
-			odm_set_bb_reg(
-				dm, 0xec4,
-				BIT(14) | BIT(13) | BIT(12) | BIT(11) | BIT(10),
-				(diff_DPK[ODM_RF_PATH_B] / c.threshold_dpk));
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x0);
-		} else if ((diff_DPK[ODM_RF_PATH_B] <= -1 * c.threshold_dpk)) {
-			s32 value = 0x20 +
-				    (diff_DPK[ODM_RF_PATH_B] / c.threshold_dpk);
-
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x1);
-			odm_set_bb_reg(dm, 0xec4, BIT(14) | BIT(13) | BIT(12) |
-							  BIT(11) | BIT(10),
-				       value);
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x0);
-		} else {
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x1);
-			odm_set_bb_reg(dm, 0xec4, BIT(14) | BIT(13) | BIT(12) |
-							  BIT(11) | BIT(10),
-				       0);
-			odm_set_bb_reg(dm, 0x82c, BIT(31), 0x0);
-		}
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK, "<===%s\n", __func__);
-
-	cali_info->tx_powercount = 0;
-}
-
-/* 3============================================================
- * 3 IQ Calibration
- * 3============================================================
- */
-
-void odm_reset_iqk_result(void *dm_void) { return; }
-
-u8 odm_get_right_chnl_place_for_iqk(u8 chnl)
-{
-	u8 channel_all[ODM_TARGET_CHNL_NUM_2G_5G] = {
-		1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,
-		13,  14,  36,  38,  40,  42,  44,  46,  48,  50,  52,  54,
-		56,  58,  60,  62,  64,  100, 102, 104, 106, 108, 110, 112,
-		114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136,
-		138, 140, 149, 151, 153, 155, 157, 159, 161, 163, 165};
-	u8 place = chnl;
-
-	if (chnl > 14) {
-		for (place = 14; place < sizeof(channel_all); place++) {
-			if (channel_all[place] == chnl)
-				return place - 13;
-		}
-	}
-	return 0;
-}
-
-static void odm_iq_calibrate(struct phy_dm_struct *dm)
-{
-	void *adapter = dm->adapter;
-
-	if (IS_HARDWARE_TYPE_8812AU(adapter))
-		return;
-
-	if (dm->is_linked) {
-		if ((*dm->channel != dm->pre_channel) &&
-		    (!*dm->is_scan_in_process)) {
-			dm->pre_channel = *dm->channel;
-			dm->linked_interval = 0;
-		}
-
-		if (dm->linked_interval < 3)
-			dm->linked_interval++;
-
-		if (dm->linked_interval == 2) {
-			if (IS_HARDWARE_TYPE_8814A(adapter))
-				;
-
-			else if (IS_HARDWARE_TYPE_8822B(adapter))
-				phy_iq_calibrate_8822b(dm, false);
-		}
-	} else {
-		dm->linked_interval = 0;
-	}
-}
-
-void phydm_rf_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	odm_txpowertracking_init(dm);
-
-	odm_clear_txpowertracking_state(dm);
-}
-
-void phydm_rf_watchdog(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	odm_txpowertracking_check(dm);
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		odm_iq_calibrate(dm);
-}
diff --git a/drivers/staging/rtlwifi/phydm/halphyrf_ce.h b/drivers/staging/rtlwifi/phydm/halphyrf_ce.h
deleted file mode 100644
index c542efc..0000000
--- a/drivers/staging/rtlwifi/phydm/halphyrf_ce.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __HAL_PHY_RF_H__
-#define __HAL_PHY_RF_H__
-
-#include "phydm_kfree.h"
-
-#include "rtl8822b/phydm_iqk_8822b.h"
-
-#include "phydm_powertracking_ce.h"
-
-enum spur_cal_method { PLL_RESET, AFE_PHASE_SEL };
-
-enum pwrtrack_method {
-	BBSWING,
-	TXAGC,
-	MIX_MODE,
-	TSSI_MODE,
-	MIX_2G_TSSI_5G_MODE,
-	MIX_5G_TSSI_2G_MODE
-};
-
-typedef void (*func_set_pwr)(void *, enum pwrtrack_method, u8, u8);
-typedef void (*func_iqk)(void *, u8, u8, u8);
-typedef void (*func_lck)(void *);
-typedef void (*func_swing)(void *, u8 **, u8 **, u8 **, u8 **);
-typedef void (*func_swing8814only)(void *, u8 **, u8 **, u8 **, u8 **);
-typedef void (*func_swing_xtal)(void *, s8 **, s8 **);
-typedef void (*func_set_xtal)(void *);
-
-struct txpwrtrack_cfg {
-	u8 swing_table_size_cck;
-	u8 swing_table_size_ofdm;
-	u8 threshold_iqk;
-	u8 threshold_dpk;
-	u8 average_thermal_num;
-	u8 rf_path_count;
-	u32 thermal_reg_addr;
-	func_set_pwr odm_tx_pwr_track_set_pwr;
-	func_iqk do_iqk;
-	func_lck phy_lc_calibrate;
-	func_swing get_delta_swing_table;
-	func_swing8814only get_delta_swing_table8814only;
-	func_swing_xtal get_delta_swing_xtal_table;
-	func_set_xtal odm_txxtaltrack_set_xtal;
-};
-
-void configure_txpower_track(void *dm_void, struct txpwrtrack_cfg *config);
-
-void odm_clear_txpowertracking_state(void *dm_void);
-
-void odm_txpowertracking_callback_thermal_meter(void *dm);
-
-#define ODM_TARGET_CHNL_NUM_2G_5G 59
-
-void odm_reset_iqk_result(void *dm_void);
-u8 odm_get_right_chnl_place_for_iqk(u8 chnl);
-
-void phydm_rf_init(void *dm_void);
-void phydm_rf_watchdog(void *dm_void);
-
-#endif /*  #ifndef __HAL_PHY_RF_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/mp_precomp.h b/drivers/staging/rtlwifi/phydm/mp_precomp.h
deleted file mode 100644
index 8e9caca..0000000
--- a/drivers/staging/rtlwifi/phydm/mp_precomp.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
diff --git a/drivers/staging/rtlwifi/phydm/phydm.c b/drivers/staging/rtlwifi/phydm/phydm.c
deleted file mode 100644
index 09dbb96..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm.c
+++ /dev/null
@@ -1,1967 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-static const u16 db_invert_table[12][8] = {
-	{1, 1, 1, 2, 2, 2, 2, 3},
-	{3, 3, 4, 4, 4, 5, 6, 6},
-	{7, 8, 9, 10, 11, 13, 14, 16},
-	{18, 20, 22, 25, 28, 32, 35, 40},
-	{45, 50, 56, 63, 71, 79, 89, 100},
-	{112, 126, 141, 158, 178, 200, 224, 251},
-	{282, 316, 355, 398, 447, 501, 562, 631},
-	{708, 794, 891, 1000, 1122, 1259, 1413, 1585},
-	{1778, 1995, 2239, 2512, 2818, 3162, 3548, 3981},
-	{4467, 5012, 5623, 6310, 7079, 7943, 8913, 10000},
-	{11220, 12589, 14125, 15849, 17783, 19953, 22387, 25119},
-	{28184, 31623, 35481, 39811, 44668, 50119, 56234, 65535},
-};
-
-/* ************************************************************
- * Local Function predefine.
- * *************************************************************/
-
-/* START------------COMMON INFO RELATED--------------- */
-
-static void odm_update_power_training_state(struct phy_dm_struct *dm);
-
-/* ************************************************************
- * 3 Export Interface
- * *************************************************************/
-
-/*Y = 10*log(X)*/
-s32 odm_pwdb_conversion(s32 X, u32 total_bit, u32 decimal_bit)
-{
-	s32 integer = 0, decimal = 0;
-	u32 i;
-
-	if (X == 0)
-		X = 1; /* log2(x), x can't be 0 */
-
-	for (i = (total_bit - 1); i > 0; i--) {
-		if (X & BIT(i)) {
-			integer = i;
-			if (i > 0) {
-				/* decimal is 0.5dB*3=1.5dB~=2dB */
-				decimal = (X & BIT(i - 1)) ? 2 : 0;
-			}
-			break;
-		}
-	}
-
-	return 3 * (integer - decimal_bit) + decimal; /* 10*log(x)=3*log2(x), */;
-}
-
-s32 odm_sign_conversion(s32 value, u32 total_bit)
-{
-	if (value & BIT(total_bit - 1))
-		value -= BIT(total_bit);
-	return value;
-}
-
-void phydm_seq_sorting(void *dm_void, u32 *value, u32 *rank_idx, u32 *idx_out,
-		       u8 seq_length)
-{
-	u8 i = 0, j = 0;
-	u32 tmp_a, tmp_b;
-	u32 tmp_idx_a, tmp_idx_b;
-
-	for (i = 0; i < seq_length; i++) {
-		rank_idx[i] = i;
-		/**/
-	}
-
-	for (i = 0; i < (seq_length - 1); i++) {
-		for (j = 0; j < (seq_length - 1 - i); j++) {
-			tmp_a = value[j];
-			tmp_b = value[j + 1];
-
-			tmp_idx_a = rank_idx[j];
-			tmp_idx_b = rank_idx[j + 1];
-
-			if (tmp_a < tmp_b) {
-				value[j] = tmp_b;
-				value[j + 1] = tmp_a;
-
-				rank_idx[j] = tmp_idx_b;
-				rank_idx[j + 1] = tmp_idx_a;
-			}
-		}
-	}
-
-	for (i = 0; i < seq_length; i++) {
-		idx_out[rank_idx[i]] = i + 1;
-		/**/
-	}
-}
-
-void odm_init_mp_driver_status(struct phy_dm_struct *dm)
-{
-	dm->mp_mode = false;
-}
-
-static void odm_update_mp_driver_status(struct phy_dm_struct *dm)
-{
-	/* Do nothing. */
-}
-
-static void phydm_init_trx_antenna_setting(struct phy_dm_struct *dm)
-{
-	/*#if (RTL8814A_SUPPORT == 1)*/
-
-	if (dm->support_ic_type & (ODM_RTL8814A)) {
-		u8 rx_ant = 0, tx_ant = 0;
-
-		rx_ant = (u8)odm_get_bb_reg(dm, ODM_REG(BB_RX_PATH, dm),
-					    ODM_BIT(BB_RX_PATH, dm));
-		tx_ant = (u8)odm_get_bb_reg(dm, ODM_REG(BB_TX_PATH, dm),
-					    ODM_BIT(BB_TX_PATH, dm));
-		dm->tx_ant_status = (tx_ant & 0xf);
-		dm->rx_ant_status = (rx_ant & 0xf);
-	} else if (dm->support_ic_type & (ODM_RTL8723D | ODM_RTL8821C |
-					  ODM_RTL8710B)) { /* JJ ADD 20161014 */
-		dm->tx_ant_status = 0x1;
-		dm->rx_ant_status = 0x1;
-	}
-	/*#endif*/
-}
-
-static void phydm_traffic_load_decision(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	/*---TP & Traffic-load calculation---*/
-
-	if (dm->last_tx_ok_cnt > *dm->num_tx_bytes_unicast)
-		dm->last_tx_ok_cnt = *dm->num_tx_bytes_unicast;
-
-	if (dm->last_rx_ok_cnt > *dm->num_rx_bytes_unicast)
-		dm->last_rx_ok_cnt = *dm->num_rx_bytes_unicast;
-
-	dm->cur_tx_ok_cnt = *dm->num_tx_bytes_unicast - dm->last_tx_ok_cnt;
-	dm->cur_rx_ok_cnt = *dm->num_rx_bytes_unicast - dm->last_rx_ok_cnt;
-	dm->last_tx_ok_cnt = *dm->num_tx_bytes_unicast;
-	dm->last_rx_ok_cnt = *dm->num_rx_bytes_unicast;
-
-	dm->tx_tp = ((dm->tx_tp) >> 1) +
-		    (u32)(((dm->cur_tx_ok_cnt) >> 18) >>
-			  1); /* <<3(8bit), >>20(10^6,M), >>1(2sec)*/
-	dm->rx_tp = ((dm->rx_tp) >> 1) +
-		    (u32)(((dm->cur_rx_ok_cnt) >> 18) >>
-			  1); /* <<3(8bit), >>20(10^6,M), >>1(2sec)*/
-	dm->total_tp = dm->tx_tp + dm->rx_tp;
-
-	dm->pre_traffic_load = dm->traffic_load;
-
-	if (dm->cur_tx_ok_cnt > 1875000 ||
-	    dm->cur_rx_ok_cnt >
-		    1875000) { /* ( 1.875M * 8bit ) / 2sec= 7.5M bits /sec )*/
-
-		dm->traffic_load = TRAFFIC_HIGH;
-		/**/
-	} else if (
-		dm->cur_tx_ok_cnt > 500000 ||
-		dm->cur_rx_ok_cnt >
-			500000) { /*( 0.5M * 8bit ) / 2sec =  2M bits /sec )*/
-
-		dm->traffic_load = TRAFFIC_MID;
-		/**/
-	} else if (
-		dm->cur_tx_ok_cnt > 100000 ||
-		dm->cur_rx_ok_cnt >
-			100000) { /*( 0.1M * 8bit ) / 2sec =  0.4M bits /sec )*/
-
-		dm->traffic_load = TRAFFIC_LOW;
-		/**/
-	} else {
-		dm->traffic_load = TRAFFIC_ULTRA_LOW;
-		/**/
-	}
-}
-
-static void phydm_config_ofdm_tx_path(struct phy_dm_struct *dm, u32 path) {}
-
-void phydm_config_ofdm_rx_path(struct phy_dm_struct *dm, u32 path)
-{
-	u8 ofdm_rx_path = 0;
-
-	if (dm->support_ic_type & (ODM_RTL8192E)) {
-	} else if (dm->support_ic_type & (ODM_RTL8812 | ODM_RTL8822B)) {
-		if (path == PHYDM_A) {
-			ofdm_rx_path = 1;
-			/**/
-		} else if (path == PHYDM_B) {
-			ofdm_rx_path = 2;
-			/**/
-		} else if (path == PHYDM_AB) {
-			ofdm_rx_path = 3;
-			/**/
-		}
-
-		odm_set_bb_reg(dm, 0x808, MASKBYTE0,
-			       ((ofdm_rx_path << 4) | ofdm_rx_path));
-	}
-}
-
-static void phydm_config_cck_rx_antenna_init(struct phy_dm_struct *dm) {}
-
-static void phydm_config_cck_rx_path(struct phy_dm_struct *dm, u8 path,
-				     u8 path_div_en)
-{
-}
-
-void phydm_config_trx_path(void *dm_void, u32 *const dm_value, u32 *_used,
-			   char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	/* CCK */
-	if (dm_value[0] == 0) {
-		if (dm_value[1] == 1) { /*TX*/
-			if (dm_value[2] == 1)
-				odm_set_bb_reg(dm, 0xa04, 0xf0000000, 0x8);
-			else if (dm_value[2] == 2)
-				odm_set_bb_reg(dm, 0xa04, 0xf0000000, 0x4);
-			else if (dm_value[2] == 3)
-				odm_set_bb_reg(dm, 0xa04, 0xf0000000, 0xc);
-		} else if (dm_value[1] == 2) { /*RX*/
-
-			phydm_config_cck_rx_antenna_init(dm);
-
-			if (dm_value[2] == 1)
-				phydm_config_cck_rx_path(dm, PHYDM_A,
-							 CCA_PATHDIV_DISABLE);
-			else if (dm_value[2] == 2)
-				phydm_config_cck_rx_path(dm, PHYDM_B,
-							 CCA_PATHDIV_DISABLE);
-			else if (dm_value[2] == 3 &&
-				 dm_value[3] == 1) /*enable path diversity*/
-				phydm_config_cck_rx_path(dm, PHYDM_AB,
-							 CCA_PATHDIV_ENABLE);
-			else if (dm_value[2] == 3 && dm_value[3] != 1)
-				phydm_config_cck_rx_path(dm, PHYDM_B,
-							 CCA_PATHDIV_DISABLE);
-		}
-	}
-	/* OFDM */
-	else if (dm_value[0] == 1) {
-		if (dm_value[1] == 1) { /*TX*/
-			phydm_config_ofdm_tx_path(dm, dm_value[2]);
-			/**/
-		} else if (dm_value[1] == 2) { /*RX*/
-			phydm_config_ofdm_rx_path(dm, dm_value[2]);
-			/**/
-		}
-	}
-
-	PHYDM_SNPRINTF(
-		output + used, out_len - used,
-		"PHYDM Set path [%s] [%s] = [%s%s%s%s]\n",
-		(dm_value[0] == 1) ? "OFDM" : "CCK",
-		(dm_value[1] == 1) ? "TX" : "RX",
-		(dm_value[2] & 0x1) ? "A" : "", (dm_value[2] & 0x2) ? "B" : "",
-		(dm_value[2] & 0x4) ? "C" : "", (dm_value[2] & 0x8) ? "D" : "");
-}
-
-static void phydm_init_cck_setting(struct phy_dm_struct *dm)
-{
-	dm->is_cck_high_power = (bool)odm_get_bb_reg(
-		dm, ODM_REG(CCK_RPT_FORMAT, dm), ODM_BIT(CCK_RPT_FORMAT, dm));
-
-	/* JJ ADD 20161014 */
-	/* JJ ADD 20161014 */
-	if (dm->support_ic_type & (ODM_RTL8723D | ODM_RTL8822B | ODM_RTL8197F |
-				   ODM_RTL8821C | ODM_RTL8710B))
-		dm->cck_new_agc = odm_get_bb_reg(dm, 0xa9c, BIT(17)) ?
-					  true :
-					  false; /*1: new agc  0: old agc*/
-	else
-		dm->cck_new_agc = false;
-}
-
-static void phydm_init_soft_ml_setting(struct phy_dm_struct *dm)
-{
-	if (!dm->mp_mode) {
-		if (dm->support_ic_type & ODM_RTL8822B)
-			odm_set_bb_reg(dm, 0x19a8, MASKDWORD, 0xc10a0000);
-	}
-}
-
-static void phydm_init_hw_info_by_rfe(struct phy_dm_struct *dm)
-{
-	if (dm->support_ic_type & ODM_RTL8822B)
-		phydm_init_hw_info_by_rfe_type_8822b(dm);
-}
-
-static void odm_common_info_self_init(struct phy_dm_struct *dm)
-{
-	phydm_init_cck_setting(dm);
-	dm->rf_path_rx_enable = (u8)odm_get_bb_reg(dm, ODM_REG(BB_RX_PATH, dm),
-						   ODM_BIT(BB_RX_PATH, dm));
-	odm_init_mp_driver_status(dm);
-	phydm_init_trx_antenna_setting(dm);
-	phydm_init_soft_ml_setting(dm);
-
-	dm->phydm_period = PHYDM_WATCH_DOG_PERIOD;
-	dm->phydm_sys_up_time = 0;
-
-	if (dm->support_ic_type & ODM_IC_1SS)
-		dm->num_rf_path = 1;
-	else if (dm->support_ic_type & ODM_IC_2SS)
-		dm->num_rf_path = 2;
-	else if (dm->support_ic_type & ODM_IC_3SS)
-		dm->num_rf_path = 3;
-	else if (dm->support_ic_type & ODM_IC_4SS)
-		dm->num_rf_path = 4;
-
-	dm->tx_rate = 0xFF;
-
-	dm->number_linked_client = 0;
-	dm->pre_number_linked_client = 0;
-	dm->number_active_client = 0;
-	dm->pre_number_active_client = 0;
-
-	dm->last_tx_ok_cnt = 0;
-	dm->last_rx_ok_cnt = 0;
-	dm->tx_tp = 0;
-	dm->rx_tp = 0;
-	dm->total_tp = 0;
-	dm->traffic_load = TRAFFIC_LOW;
-
-	dm->nbi_set_result = 0;
-	dm->is_init_hw_info_by_rfe = false;
-	dm->pre_dbg_priority = BB_DBGPORT_RELEASE;
-}
-
-static void odm_common_info_self_update(struct phy_dm_struct *dm)
-{
-	u8 entry_cnt = 0, num_active_client = 0;
-	u32 i, one_entry_macid = 0;
-	struct rtl_sta_info *entry;
-
-	/* THis variable cannot be used because it is wrong*/
-	if (*dm->band_width == ODM_BW40M) {
-		if (*dm->sec_ch_offset == 1)
-			dm->control_channel = *dm->channel - 2;
-		else if (*dm->sec_ch_offset == 2)
-			dm->control_channel = *dm->channel + 2;
-	} else {
-		dm->control_channel = *dm->channel;
-	}
-
-	for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) {
-		entry = dm->odm_sta_info[i];
-		if (IS_STA_VALID(entry)) {
-			entry_cnt++;
-			if (entry_cnt == 1)
-				one_entry_macid = i;
-		}
-	}
-
-	if (entry_cnt == 1) {
-		dm->is_one_entry_only = true;
-		dm->one_entry_macid = one_entry_macid;
-	} else {
-		dm->is_one_entry_only = false;
-	}
-
-	dm->pre_number_linked_client = dm->number_linked_client;
-	dm->pre_number_active_client = dm->number_active_client;
-
-	dm->number_linked_client = entry_cnt;
-	dm->number_active_client = num_active_client;
-
-	/* Update MP driver status*/
-	odm_update_mp_driver_status(dm);
-
-	/*Traffic load information update*/
-	phydm_traffic_load_decision(dm);
-
-	dm->phydm_sys_up_time += dm->phydm_period;
-}
-
-static void odm_common_info_self_reset(struct phy_dm_struct *dm)
-{
-	dm->phy_dbg_info.num_qry_beacon_pkt = 0;
-}
-
-void *phydm_get_structure(struct phy_dm_struct *dm, u8 structure_type)
-
-{
-	void *p_struct = NULL;
-
-	switch (structure_type) {
-	case PHYDM_FALSEALMCNT:
-		p_struct = &dm->false_alm_cnt;
-		break;
-
-	case PHYDM_CFOTRACK:
-		p_struct = &dm->dm_cfo_track;
-		break;
-
-	case PHYDM_ADAPTIVITY:
-		p_struct = &dm->adaptivity;
-		break;
-
-	default:
-		break;
-	}
-
-	return p_struct;
-}
-
-static void odm_hw_setting(struct phy_dm_struct *dm)
-{
-	if (dm->support_ic_type & ODM_RTL8822B)
-		phydm_hwsetting_8822b(dm);
-}
-
-static void phydm_supportability_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 support_ability = 0;
-
-	if (dm->support_ic_type != ODM_RTL8821C)
-		return;
-
-	switch (dm->support_ic_type) {
-	/*---------------AC Series-------------------*/
-
-	case ODM_RTL8822B:
-		support_ability |= ODM_BB_DIG | ODM_BB_FA_CNT | ODM_BB_CCK_PD |
-				   ODM_BB_CFO_TRACKING | ODM_BB_RATE_ADAPTIVE |
-				   ODM_BB_RSSI_MONITOR | ODM_BB_RA_MASK |
-				   ODM_RF_TX_PWR_TRACK;
-		break;
-
-	default:
-		support_ability |= ODM_BB_DIG | ODM_BB_FA_CNT | ODM_BB_CCK_PD |
-				   ODM_BB_CFO_TRACKING | ODM_BB_RATE_ADAPTIVE |
-				   ODM_BB_RSSI_MONITOR | ODM_BB_RA_MASK |
-				   ODM_RF_TX_PWR_TRACK;
-
-		ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-			     "[Warning] Supportability Init Warning !!!\n");
-		break;
-	}
-
-	if (*dm->enable_antdiv)
-		support_ability |= ODM_BB_ANT_DIV;
-
-	if (*dm->enable_adaptivity) {
-		ODM_RT_TRACE(dm, ODM_COMP_INIT,
-			     "ODM adaptivity is set to Enabled!!!\n");
-
-		support_ability |= ODM_BB_ADAPTIVITY;
-
-	} else {
-		ODM_RT_TRACE(dm, ODM_COMP_INIT,
-			     "ODM adaptivity is set to disabled!!!\n");
-		/**/
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "PHYDM support_ability = ((0x%x))\n",
-		     support_ability);
-	odm_cmn_info_init(dm, ODM_CMNINFO_ABILITY, support_ability);
-}
-
-/*
- * 2011/09/21 MH Add to describe different team necessary resource allocate??
- */
-void odm_dm_init(struct phy_dm_struct *dm)
-{
-	phydm_supportability_init(dm);
-	odm_common_info_self_init(dm);
-	odm_dig_init(dm);
-	phydm_nhm_counter_statistics_init(dm);
-	phydm_adaptivity_init(dm);
-	phydm_ra_info_init(dm);
-	odm_rate_adaptive_mask_init(dm);
-	odm_cfo_tracking_init(dm);
-	odm_edca_turbo_init(dm);
-	odm_rssi_monitor_init(dm);
-	phydm_rf_init(dm);
-	odm_txpowertracking_init(dm);
-
-	if (dm->support_ic_type & ODM_RTL8822B)
-		phydm_txcurrentcalibration(dm);
-
-	odm_antenna_diversity_init(dm);
-	odm_auto_channel_select_init(dm);
-	odm_dynamic_tx_power_init(dm);
-	phydm_init_ra_info(dm);
-	adc_smp_init(dm);
-
-	phydm_beamforming_init(dm);
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		/* 11n series */
-		odm_dynamic_bb_power_saving_init(dm);
-	}
-
-	phydm_psd_init(dm);
-}
-
-void odm_dm_reset(struct phy_dm_struct *dm)
-{
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-
-	odm_ant_div_reset(dm);
-	phydm_set_edcca_threshold_api(dm, dig_tab->cur_ig_value);
-}
-
-void phydm_support_ability_debug(void *dm_void, u32 *const dm_value, u32 *_used,
-				 char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 pre_support_ability;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	pre_support_ability = dm->support_ability;
-	PHYDM_SNPRINTF(output + used, out_len - used, "\n%s\n",
-		       "================================");
-	if (dm_value[0] == 100) {
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "[Supportability] PhyDM Selection\n");
-		PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-			       "================================");
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "00. (( %s ))DIG\n",
-			((dm->support_ability & ODM_BB_DIG) ? ("V") : (".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "01. (( %s ))RA_MASK\n",
-			((dm->support_ability & ODM_BB_RA_MASK) ? ("V") :
-								  (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "02. (( %s ))DYNAMIC_TXPWR\n",
-			       ((dm->support_ability & ODM_BB_DYNAMIC_TXPWR) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "03. (( %s ))FA_CNT\n",
-			       ((dm->support_ability & ODM_BB_FA_CNT) ? ("V") :
-									(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "04. (( %s ))RSSI_MONITOR\n",
-			       ((dm->support_ability & ODM_BB_RSSI_MONITOR) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "05. (( %s ))CCK_PD\n",
-			       ((dm->support_ability & ODM_BB_CCK_PD) ? ("V") :
-									(".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "06. (( %s ))ANT_DIV\n",
-			((dm->support_ability & ODM_BB_ANT_DIV) ? ("V") :
-								  (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "08. (( %s ))PWR_TRAIN\n",
-			       ((dm->support_ability & ODM_BB_PWR_TRAIN) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "09. (( %s ))RATE_ADAPTIVE\n",
-			       ((dm->support_ability & ODM_BB_RATE_ADAPTIVE) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "10. (( %s ))PATH_DIV\n",
-			((dm->support_ability & ODM_BB_PATH_DIV) ? ("V") :
-								   (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "13. (( %s ))ADAPTIVITY\n",
-			       ((dm->support_ability & ODM_BB_ADAPTIVITY) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "14. (( %s ))struct cfo_tracking\n",
-			       ((dm->support_ability & ODM_BB_CFO_TRACKING) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "15. (( %s ))NHM_CNT\n",
-			((dm->support_ability & ODM_BB_NHM_CNT) ? ("V") :
-								  (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "16. (( %s ))PRIMARY_CCA\n",
-			       ((dm->support_ability & ODM_BB_PRIMARY_CCA) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "17. (( %s ))TXBF\n",
-			((dm->support_ability & ODM_BB_TXBF) ? ("V") : (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "18. (( %s ))DYNAMIC_ARFR\n",
-			       ((dm->support_ability & ODM_BB_DYNAMIC_ARFR) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "20. (( %s ))EDCA_TURBO\n",
-			       ((dm->support_ability & ODM_MAC_EDCA_TURBO) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "21. (( %s ))DYNAMIC_RX_PATH\n",
-			       ((dm->support_ability & ODM_BB_DYNAMIC_RX_PATH) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "24. (( %s ))TX_PWR_TRACK\n",
-			       ((dm->support_ability & ODM_RF_TX_PWR_TRACK) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "25. (( %s ))RX_GAIN_TRACK\n",
-			       ((dm->support_ability & ODM_RF_RX_GAIN_TRACK) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "26. (( %s ))RF_CALIBRATION\n",
-			       ((dm->support_ability & ODM_RF_CALIBRATION) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-			       "================================");
-	} else {
-		if (dm_value[1] == 1) { /* enable */
-			dm->support_ability |= BIT(dm_value[0]);
-		} else if (dm_value[1] == 2) /* disable */
-			dm->support_ability &= ~(BIT(dm_value[0]));
-		else {
-			PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-				       "[Warning!!!]  1:enable,  2:disable");
-		}
-	}
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "pre-support_ability  =  0x%x\n", pre_support_ability);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "Curr-support_ability =  0x%x\n", dm->support_ability);
-	PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-		       "================================");
-}
-
-void phydm_watchdog_mp(struct phy_dm_struct *dm) {}
-/*
- * 2011/09/20 MH This is the entry pointer for all team to execute HW outsrc DM.
- * You can not add any dummy function here, be care, you can only use DM struct
- * to perform any new ODM_DM.
- */
-void odm_dm_watchdog(struct phy_dm_struct *dm)
-{
-	odm_common_info_self_update(dm);
-	phydm_basic_dbg_message(dm);
-	odm_hw_setting(dm);
-
-	odm_false_alarm_counter_statistics(dm);
-	phydm_noisy_detection(dm);
-
-	odm_rssi_monitor_check(dm);
-
-	if (*dm->is_power_saving) {
-		odm_dig_by_rssi_lps(dm);
-		phydm_adaptivity(dm);
-		odm_antenna_diversity(
-			dm); /*enable AntDiv in PS mode, request from SD4 Jeff*/
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-			     "DMWatchdog in power saving mode\n");
-		return;
-	}
-
-	phydm_check_adaptivity(dm);
-	odm_update_power_training_state(dm);
-	odm_DIG(dm);
-	phydm_adaptivity(dm);
-	odm_cck_packet_detection_thresh(dm);
-
-	phydm_ra_info_watchdog(dm);
-	odm_edca_turbo_check(dm);
-	odm_cfo_tracking(dm);
-	odm_dynamic_tx_power(dm);
-	odm_antenna_diversity(dm);
-
-	phydm_beamforming_watchdog(dm);
-
-	phydm_rf_watchdog(dm);
-
-	odm_dtc(dm);
-
-	odm_common_info_self_reset(dm);
-}
-
-/*
- * Init /.. Fixed HW value. Only init time.
- */
-void odm_cmn_info_init(struct phy_dm_struct *dm, enum odm_cmninfo cmn_info,
-		       u32 value)
-{
-	/* This section is used for init value */
-	switch (cmn_info) {
-	/* Fixed ODM value. */
-	case ODM_CMNINFO_ABILITY:
-		dm->support_ability = (u32)value;
-		break;
-
-	case ODM_CMNINFO_RF_TYPE:
-		dm->rf_type = (u8)value;
-		break;
-
-	case ODM_CMNINFO_PLATFORM:
-		dm->support_platform = (u8)value;
-		break;
-
-	case ODM_CMNINFO_INTERFACE:
-		dm->support_interface = (u8)value;
-		break;
-
-	case ODM_CMNINFO_MP_TEST_CHIP:
-		dm->is_mp_chip = (u8)value;
-		break;
-
-	case ODM_CMNINFO_IC_TYPE:
-		dm->support_ic_type = value;
-		break;
-
-	case ODM_CMNINFO_CUT_VER:
-		dm->cut_version = (u8)value;
-		break;
-
-	case ODM_CMNINFO_FAB_VER:
-		dm->fab_version = (u8)value;
-		break;
-
-	case ODM_CMNINFO_RFE_TYPE:
-		dm->rfe_type = (u8)value;
-		phydm_init_hw_info_by_rfe(dm);
-		break;
-
-	case ODM_CMNINFO_RF_ANTENNA_TYPE:
-		dm->ant_div_type = (u8)value;
-		break;
-
-	case ODM_CMNINFO_WITH_EXT_ANTENNA_SWITCH:
-		dm->with_extenal_ant_switch = (u8)value;
-		break;
-
-	case ODM_CMNINFO_BE_FIX_TX_ANT:
-		dm->dm_fat_table.b_fix_tx_ant = (u8)value;
-		break;
-
-	case ODM_CMNINFO_BOARD_TYPE:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->board_type = (u8)value;
-		break;
-
-	case ODM_CMNINFO_PACKAGE_TYPE:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->package_type = (u8)value;
-		break;
-
-	case ODM_CMNINFO_EXT_LNA:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->ext_lna = (u8)value;
-		break;
-
-	case ODM_CMNINFO_5G_EXT_LNA:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->ext_lna_5g = (u8)value;
-		break;
-
-	case ODM_CMNINFO_EXT_PA:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->ext_pa = (u8)value;
-		break;
-
-	case ODM_CMNINFO_5G_EXT_PA:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->ext_pa_5g = (u8)value;
-		break;
-
-	case ODM_CMNINFO_GPA:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->type_gpa = (u16)value;
-		break;
-
-	case ODM_CMNINFO_APA:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->type_apa = (u16)value;
-		break;
-
-	case ODM_CMNINFO_GLNA:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->type_glna = (u16)value;
-		break;
-
-	case ODM_CMNINFO_ALNA:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->type_alna = (u16)value;
-		break;
-
-	case ODM_CMNINFO_EXT_TRSW:
-		if (!dm->is_init_hw_info_by_rfe)
-			dm->ext_trsw = (u8)value;
-		break;
-	case ODM_CMNINFO_EXT_LNA_GAIN:
-		dm->ext_lna_gain = (u8)value;
-		break;
-	case ODM_CMNINFO_PATCH_ID:
-		dm->patch_id = (u8)value;
-		break;
-	case ODM_CMNINFO_BINHCT_TEST:
-		dm->is_in_hct_test = (bool)value;
-		break;
-	case ODM_CMNINFO_BWIFI_TEST:
-		dm->wifi_test = (u8)value;
-		break;
-	case ODM_CMNINFO_SMART_CONCURRENT:
-		dm->is_dual_mac_smart_concurrent = (bool)value;
-		break;
-	case ODM_CMNINFO_DOMAIN_CODE_2G:
-		dm->odm_regulation_2_4g = (u8)value;
-		break;
-	case ODM_CMNINFO_DOMAIN_CODE_5G:
-		dm->odm_regulation_5g = (u8)value;
-		break;
-	case ODM_CMNINFO_CONFIG_BB_RF:
-		dm->config_bbrf = (bool)value;
-		break;
-	case ODM_CMNINFO_IQKFWOFFLOAD:
-		dm->iqk_fw_offload = (u8)value;
-		break;
-	case ODM_CMNINFO_IQKPAOFF:
-		dm->rf_calibrate_info.is_iqk_pa_off = (bool)value;
-		break;
-	case ODM_CMNINFO_REGRFKFREEENABLE:
-		dm->rf_calibrate_info.reg_rf_kfree_enable = (u8)value;
-		break;
-	case ODM_CMNINFO_RFKFREEENABLE:
-		dm->rf_calibrate_info.rf_kfree_enable = (u8)value;
-		break;
-	case ODM_CMNINFO_NORMAL_RX_PATH_CHANGE:
-		dm->normal_rx_path = (u8)value;
-		break;
-	case ODM_CMNINFO_EFUSE0X3D8:
-		dm->efuse0x3d8 = (u8)value;
-		break;
-	case ODM_CMNINFO_EFUSE0X3D7:
-		dm->efuse0x3d7 = (u8)value;
-		break;
-	/* To remove the compiler warning, must add an empty default statement
-	 * to handle the other values.
-	 */
-	default:
-		/* do nothing */
-		break;
-	}
-}
-
-void odm_cmn_info_hook(struct phy_dm_struct *dm, enum odm_cmninfo cmn_info,
-		       void *value)
-{
-	/*  */
-	/* Hook call by reference pointer. */
-	/*  */
-	switch (cmn_info) {
-	/*  */
-	/* Dynamic call by reference pointer. */
-	/*  */
-	case ODM_CMNINFO_MAC_PHY_MODE:
-		dm->mac_phy_mode = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_TX_UNI:
-		dm->num_tx_bytes_unicast = (u64 *)value;
-		break;
-
-	case ODM_CMNINFO_RX_UNI:
-		dm->num_rx_bytes_unicast = (u64 *)value;
-		break;
-
-	case ODM_CMNINFO_WM_MODE:
-		dm->wireless_mode = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_BAND:
-		dm->band_type = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_SEC_CHNL_OFFSET:
-		dm->sec_ch_offset = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_SEC_MODE:
-		dm->security = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_BW:
-		dm->band_width = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_CHNL:
-		dm->channel = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_DMSP_GET_VALUE:
-		dm->is_get_value_from_other_mac = (bool *)value;
-		break;
-
-	case ODM_CMNINFO_BUDDY_ADAPTOR:
-		dm->buddy_adapter = (void **)value;
-		break;
-
-	case ODM_CMNINFO_DMSP_IS_MASTER:
-		dm->is_master_of_dmsp = (bool *)value;
-		break;
-
-	case ODM_CMNINFO_SCAN:
-		dm->is_scan_in_process = (bool *)value;
-		break;
-
-	case ODM_CMNINFO_POWER_SAVING:
-		dm->is_power_saving = (bool *)value;
-		break;
-
-	case ODM_CMNINFO_ONE_PATH_CCA:
-		dm->one_path_cca = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_DRV_STOP:
-		dm->is_driver_stopped = (bool *)value;
-		break;
-
-	case ODM_CMNINFO_PNP_IN:
-		dm->is_driver_is_going_to_pnp_set_power_sleep = (bool *)value;
-		break;
-
-	case ODM_CMNINFO_INIT_ON:
-		dm->pinit_adpt_in_progress = (bool *)value;
-		break;
-
-	case ODM_CMNINFO_ANT_TEST:
-		dm->antenna_test = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_NET_CLOSED:
-		dm->is_net_closed = (bool *)value;
-		break;
-
-	case ODM_CMNINFO_FORCED_RATE:
-		dm->forced_data_rate = (u16 *)value;
-		break;
-	case ODM_CMNINFO_ANT_DIV:
-		dm->enable_antdiv = (u8 *)value;
-		break;
-	case ODM_CMNINFO_ADAPTIVITY:
-		dm->enable_adaptivity = (u8 *)value;
-		break;
-	case ODM_CMNINFO_FORCED_IGI_LB:
-		dm->pu1_forced_igi_lb = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_P2P_LINK:
-		dm->dm_dig_table.is_p2p_in_process = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_IS1ANTENNA:
-		dm->is_1_antenna = (bool *)value;
-		break;
-
-	case ODM_CMNINFO_RFDEFAULTPATH:
-		dm->rf_default_path = (u8 *)value;
-		break;
-
-	case ODM_CMNINFO_FCS_MODE:
-		dm->is_fcs_mode_enable = (bool *)value;
-		break;
-	/*add by YuChen for beamforming PhyDM*/
-	case ODM_CMNINFO_HUBUSBMODE:
-		dm->hub_usb_mode = (u8 *)value;
-		break;
-	case ODM_CMNINFO_FWDWRSVDPAGEINPROGRESS:
-		dm->is_fw_dw_rsvd_page_in_progress = (bool *)value;
-		break;
-	case ODM_CMNINFO_TX_TP:
-		dm->current_tx_tp = (u32 *)value;
-		break;
-	case ODM_CMNINFO_RX_TP:
-		dm->current_rx_tp = (u32 *)value;
-		break;
-	case ODM_CMNINFO_SOUNDING_SEQ:
-		dm->sounding_seq = (u8 *)value;
-		break;
-	case ODM_CMNINFO_FORCE_TX_ANT_BY_TXDESC:
-		dm->dm_fat_table.p_force_tx_ant_by_desc = (u8 *)value;
-		break;
-	case ODM_CMNINFO_SET_S0S1_DEFAULT_ANTENNA:
-		dm->dm_fat_table.p_default_s0_s1 = (u8 *)value;
-		break;
-
-	default:
-		/*do nothing*/
-		break;
-	}
-}
-
-void odm_cmn_info_ptr_array_hook(struct phy_dm_struct *dm,
-				 enum odm_cmninfo cmn_info, u16 index,
-				 void *value)
-{
-	/*Hook call by reference pointer.*/
-	switch (cmn_info) {
-	/*Dynamic call by reference pointer.	*/
-	case ODM_CMNINFO_STA_STATUS:
-		dm->odm_sta_info[index] = (struct rtl_sta_info *)value;
-
-		if (IS_STA_VALID(dm->odm_sta_info[index]))
-			dm->platform2phydm_macid_table[index] = index;
-
-		break;
-	/* To remove the compiler warning, must add an empty default statement
-	 * to handle the other values.
-	 */
-	default:
-		/* do nothing */
-		break;
-	}
-}
-
-/*
- * Update band/CHannel/.. The values are dynamic but non-per-packet.
- */
-void odm_cmn_info_update(struct phy_dm_struct *dm, u32 cmn_info, u64 value)
-{
-	/* This init variable may be changed in run time. */
-	switch (cmn_info) {
-	case ODM_CMNINFO_LINK_IN_PROGRESS:
-		dm->is_link_in_process = (bool)value;
-		break;
-
-	case ODM_CMNINFO_ABILITY:
-		dm->support_ability = (u32)value;
-		break;
-
-	case ODM_CMNINFO_RF_TYPE:
-		dm->rf_type = (u8)value;
-		break;
-
-	case ODM_CMNINFO_WIFI_DIRECT:
-		dm->is_wifi_direct = (bool)value;
-		break;
-
-	case ODM_CMNINFO_WIFI_DISPLAY:
-		dm->is_wifi_display = (bool)value;
-		break;
-
-	case ODM_CMNINFO_LINK:
-		dm->is_linked = (bool)value;
-		break;
-
-	case ODM_CMNINFO_CMW500LINK:
-		dm->is_linkedcmw500 = (bool)value;
-		break;
-
-	case ODM_CMNINFO_LPSPG:
-		dm->is_in_lps_pg = (bool)value;
-		break;
-
-	case ODM_CMNINFO_STATION_STATE:
-		dm->bsta_state = (bool)value;
-		break;
-
-	case ODM_CMNINFO_RSSI_MIN:
-		dm->rssi_min = (u8)value;
-		break;
-
-	case ODM_CMNINFO_DBG_COMP:
-		dm->debug_components = (u32)value;
-		break;
-
-	case ODM_CMNINFO_DBG_LEVEL:
-		dm->debug_level = (u32)value;
-		break;
-	case ODM_CMNINFO_RA_THRESHOLD_HIGH:
-		dm->rate_adaptive.high_rssi_thresh = (u8)value;
-		break;
-
-	case ODM_CMNINFO_RA_THRESHOLD_LOW:
-		dm->rate_adaptive.low_rssi_thresh = (u8)value;
-		break;
-	/* The following is for BT HS mode and BT coexist mechanism. */
-	case ODM_CMNINFO_BT_ENABLED:
-		dm->is_bt_enabled = (bool)value;
-		break;
-
-	case ODM_CMNINFO_BT_HS_CONNECT_PROCESS:
-		dm->is_bt_connect_process = (bool)value;
-		break;
-
-	case ODM_CMNINFO_BT_HS_RSSI:
-		dm->bt_hs_rssi = (u8)value;
-		break;
-
-	case ODM_CMNINFO_BT_OPERATION:
-		dm->is_bt_hs_operation = (bool)value;
-		break;
-
-	case ODM_CMNINFO_BT_LIMITED_DIG:
-		dm->is_bt_limited_dig = (bool)value;
-		break;
-
-	case ODM_CMNINFO_BT_DIG:
-		dm->bt_hs_dig_val = (u8)value;
-		break;
-
-	case ODM_CMNINFO_BT_BUSY:
-		dm->is_bt_busy = (bool)value;
-		break;
-
-	case ODM_CMNINFO_BT_DISABLE_EDCA:
-		dm->is_bt_disable_edca_turbo = (bool)value;
-		break;
-
-	case ODM_CMNINFO_AP_TOTAL_NUM:
-		dm->ap_total_num = (u8)value;
-		break;
-
-	case ODM_CMNINFO_POWER_TRAINING:
-		dm->is_disable_power_training = (bool)value;
-		break;
-
-	default:
-		/* do nothing */
-		break;
-	}
-}
-
-u32 phydm_cmn_info_query(struct phy_dm_struct *dm,
-			 enum phydm_info_query info_type)
-{
-	struct false_alarm_stat *false_alm_cnt =
-		(struct false_alarm_stat *)phydm_get_structure(
-			dm, PHYDM_FALSEALMCNT);
-
-	switch (info_type) {
-	case PHYDM_INFO_FA_OFDM:
-		return false_alm_cnt->cnt_ofdm_fail;
-
-	case PHYDM_INFO_FA_CCK:
-		return false_alm_cnt->cnt_cck_fail;
-
-	case PHYDM_INFO_FA_TOTAL:
-		return false_alm_cnt->cnt_all;
-
-	case PHYDM_INFO_CCA_OFDM:
-		return false_alm_cnt->cnt_ofdm_cca;
-
-	case PHYDM_INFO_CCA_CCK:
-		return false_alm_cnt->cnt_cck_cca;
-
-	case PHYDM_INFO_CCA_ALL:
-		return false_alm_cnt->cnt_cca_all;
-
-	case PHYDM_INFO_CRC32_OK_VHT:
-		return false_alm_cnt->cnt_vht_crc32_ok;
-
-	case PHYDM_INFO_CRC32_OK_HT:
-		return false_alm_cnt->cnt_ht_crc32_ok;
-
-	case PHYDM_INFO_CRC32_OK_LEGACY:
-		return false_alm_cnt->cnt_ofdm_crc32_ok;
-
-	case PHYDM_INFO_CRC32_OK_CCK:
-		return false_alm_cnt->cnt_cck_crc32_ok;
-
-	case PHYDM_INFO_CRC32_ERROR_VHT:
-		return false_alm_cnt->cnt_vht_crc32_error;
-
-	case PHYDM_INFO_CRC32_ERROR_HT:
-		return false_alm_cnt->cnt_ht_crc32_error;
-
-	case PHYDM_INFO_CRC32_ERROR_LEGACY:
-		return false_alm_cnt->cnt_ofdm_crc32_error;
-
-	case PHYDM_INFO_CRC32_ERROR_CCK:
-		return false_alm_cnt->cnt_cck_crc32_error;
-
-	case PHYDM_INFO_EDCCA_FLAG:
-		return false_alm_cnt->edcca_flag;
-
-	case PHYDM_INFO_OFDM_ENABLE:
-		return false_alm_cnt->ofdm_block_enable;
-
-	case PHYDM_INFO_CCK_ENABLE:
-		return false_alm_cnt->cck_block_enable;
-
-	case PHYDM_INFO_DBG_PORT_0:
-		return false_alm_cnt->dbg_port0;
-
-	default:
-		return 0xffffffff;
-	}
-}
-
-void odm_init_all_timers(struct phy_dm_struct *dm) {}
-
-void odm_cancel_all_timers(struct phy_dm_struct *dm) {}
-
-void odm_release_all_timers(struct phy_dm_struct *dm) {}
-
-/* 3============================================================
- * 3 Tx Power Tracking
- * 3============================================================
- */
-
-/* need to ODM CE Platform
- * move to here for ANT detection mechanism using
- */
-
-u32 odm_convert_to_db(u32 value)
-{
-	u8 i;
-	u8 j;
-
-	value = value & 0xFFFF;
-
-	for (i = 0; i < 12; i++) {
-		if (value <= db_invert_table[i][7])
-			break;
-	}
-
-	if (i >= 12)
-		return 96; /* maximum 96 dB */
-
-	for (j = 0; j < 8; j++) {
-		if (value <= db_invert_table[i][j])
-			break;
-	}
-
-	return (i << 3) + j + 1;
-}
-
-u32 odm_convert_to_linear(u32 value)
-{
-	u8 i;
-	u8 j;
-
-	/* 1dB~96dB */
-
-	value = value & 0xFF;
-
-	i = (u8)((value - 1) >> 3);
-	j = (u8)(value - 1) - (i << 3);
-
-	return db_invert_table[i][j];
-}
-
-/*
- * ODM multi-port consideration, added by Roger, 2013.10.01.
- */
-void odm_asoc_entry_init(struct phy_dm_struct *dm) {}
-
-/* Justin: According to the current RRSI to adjust Response Frame TX power */
-void odm_dtc(struct phy_dm_struct *dm) {}
-
-static void odm_update_power_training_state(struct phy_dm_struct *dm)
-{
-	struct false_alarm_stat *false_alm_cnt =
-		(struct false_alarm_stat *)phydm_get_structure(
-			dm, PHYDM_FALSEALMCNT);
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	u32 score = 0;
-
-	if (!(dm->support_ability & ODM_BB_PWR_TRAIN))
-		return;
-
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK, "%s()============>\n", __func__);
-	dm->is_change_state = false;
-
-	/* Debug command */
-	if (dm->force_power_training_state) {
-		if (dm->force_power_training_state == 1 &&
-		    !dm->is_disable_power_training) {
-			dm->is_change_state = true;
-			dm->is_disable_power_training = true;
-		} else if (dm->force_power_training_state == 2 &&
-			   dm->is_disable_power_training) {
-			dm->is_change_state = true;
-			dm->is_disable_power_training = false;
-		}
-
-		dm->PT_score = 0;
-		dm->phy_dbg_info.num_qry_phy_status_ofdm = 0;
-		dm->phy_dbg_info.num_qry_phy_status_cck = 0;
-		ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-			     "%s(): force_power_training_state = %d\n",
-			     __func__, dm->force_power_training_state);
-		return;
-	}
-
-	if (!dm->is_linked)
-		return;
-
-	/* First connect */
-	if (dm->is_linked && !dig_tab->is_media_connect_0) {
-		dm->PT_score = 0;
-		dm->is_change_state = true;
-		dm->phy_dbg_info.num_qry_phy_status_ofdm = 0;
-		dm->phy_dbg_info.num_qry_phy_status_cck = 0;
-		ODM_RT_TRACE(dm, ODM_COMP_RA_MASK, "%s(): First Connect\n",
-			     __func__);
-		return;
-	}
-
-	/* Compute score */
-	if (dm->nhm_cnt_0 >= 215) {
-		score = 2;
-	} else if (dm->nhm_cnt_0 >= 190) {
-		score = 1; /* unknown state */
-	} else {
-		u32 rx_pkt_cnt;
-
-		rx_pkt_cnt = (u32)(dm->phy_dbg_info.num_qry_phy_status_ofdm) +
-			     (u32)(dm->phy_dbg_info.num_qry_phy_status_cck);
-
-		if ((false_alm_cnt->cnt_cca_all > 31 && rx_pkt_cnt > 31) &&
-		    false_alm_cnt->cnt_cca_all >= rx_pkt_cnt) {
-			if ((rx_pkt_cnt + (rx_pkt_cnt >> 1)) <=
-			    false_alm_cnt->cnt_cca_all)
-				score = 0;
-			else if ((rx_pkt_cnt + (rx_pkt_cnt >> 2)) <=
-				 false_alm_cnt->cnt_cca_all)
-				score = 1;
-			else
-				score = 2;
-		}
-		ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-			     "%s(): rx_pkt_cnt = %d, cnt_cca_all = %d\n",
-			     __func__, rx_pkt_cnt, false_alm_cnt->cnt_cca_all);
-	}
-	ODM_RT_TRACE(
-		dm, ODM_COMP_RA_MASK,
-		"%s(): num_qry_phy_status_ofdm = %d, num_qry_phy_status_cck = %d\n",
-		__func__, (u32)(dm->phy_dbg_info.num_qry_phy_status_ofdm),
-		(u32)(dm->phy_dbg_info.num_qry_phy_status_cck));
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK, "%s(): nhm_cnt_0 = %d, score = %d\n",
-		     __func__, dm->nhm_cnt_0, score);
-
-	/* smoothing */
-	dm->PT_score = (score << 4) + (dm->PT_score >> 1) + (dm->PT_score >> 2);
-	score = (dm->PT_score + 32) >> 6;
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-		     "%s(): PT_score = %d, score after smoothing = %d\n",
-		     __func__, dm->PT_score, score);
-
-	/* mode decision */
-	if (score == 2) {
-		if (dm->is_disable_power_training) {
-			dm->is_change_state = true;
-			dm->is_disable_power_training = false;
-			ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-				     "%s(): Change state\n", __func__);
-		}
-		ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-			     "%s(): Enable Power Training\n", __func__);
-	} else if (score == 0) {
-		if (!dm->is_disable_power_training) {
-			dm->is_change_state = true;
-			dm->is_disable_power_training = true;
-			ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-				     "%s(): Change state\n", __func__);
-		}
-		ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-			     "%s(): Disable Power Training\n", __func__);
-	}
-
-	dm->phy_dbg_info.num_qry_phy_status_ofdm = 0;
-	dm->phy_dbg_info.num_qry_phy_status_cck = 0;
-}
-
-/*===========================================================*/
-/* The following is for compile only*/
-/*===========================================================*/
-/*#define TARGET_CHNL_NUM_2G_5G	59*/
-/*===========================================================*/
-
-void phydm_noisy_detection(struct phy_dm_struct *dm)
-{
-	u32 total_fa_cnt, total_cca_cnt;
-	u32 score = 0, i, score_smooth;
-
-	total_cca_cnt = dm->false_alm_cnt.cnt_cca_all;
-	total_fa_cnt = dm->false_alm_cnt.cnt_all;
-
-	for (i = 0; i <= 16; i++) {
-		if (total_fa_cnt * 16 >= total_cca_cnt * (16 - i)) {
-			score = 16 - i;
-			break;
-		}
-	}
-
-	/* noisy_decision_smooth = noisy_decision_smooth>>1 + (score<<3)>>1; */
-	dm->noisy_decision_smooth =
-		(dm->noisy_decision_smooth >> 1) + (score << 2);
-
-	/* Round the noisy_decision_smooth: +"3" comes from (2^3)/2-1 */
-	score_smooth = (total_cca_cnt >= 300) ?
-			       ((dm->noisy_decision_smooth + 3) >> 3) :
-			       0;
-
-	dm->noisy_decision = (score_smooth >= 3) ? 1 : 0;
-	ODM_RT_TRACE(
-		dm, ODM_COMP_NOISY_DETECT,
-		"[NoisyDetection] total_cca_cnt=%d, total_fa_cnt=%d, noisy_decision_smooth=%d, score=%d, score_smooth=%d, dm->noisy_decision=%d\n",
-		total_cca_cnt, total_fa_cnt, dm->noisy_decision_smooth, score,
-		score_smooth, dm->noisy_decision);
-}
-
-void phydm_set_ext_switch(void *dm_void, u32 *const dm_value, u32 *_used,
-			  char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 ext_ant_switch = dm_value[0];
-
-	if (dm->support_ic_type & (ODM_RTL8821 | ODM_RTL8881A)) {
-		/*Output Pin Settings*/
-		odm_set_mac_reg(dm, 0x4C, BIT(23),
-				0); /*select DPDT_P and DPDT_N as output pin*/
-		odm_set_mac_reg(dm, 0x4C, BIT(24), 1); /*by WLAN control*/
-
-		odm_set_bb_reg(dm, 0xCB4, 0xF, 7); /*DPDT_P = 1b'0*/
-		odm_set_bb_reg(dm, 0xCB4, 0xF0, 7); /*DPDT_N = 1b'0*/
-
-		if (ext_ant_switch == MAIN_ANT) {
-			odm_set_bb_reg(dm, 0xCB4, (BIT(29) | BIT(28)), 1);
-			ODM_RT_TRACE(
-				dm, ODM_COMP_API,
-				"***8821A set ant switch = 2b'01 (Main)\n");
-		} else if (ext_ant_switch == AUX_ANT) {
-			odm_set_bb_reg(dm, 0xCB4, BIT(29) | BIT(28), 2);
-			ODM_RT_TRACE(dm, ODM_COMP_API,
-				     "***8821A set ant switch = 2b'10 (Aux)\n");
-		}
-	}
-}
-
-static void phydm_csi_mask_enable(void *dm_void, u32 enable)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 reg_value = 0;
-
-	reg_value = (enable == CSI_MASK_ENABLE) ? 1 : 0;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		odm_set_bb_reg(dm, 0xD2C, BIT(28), reg_value);
-		ODM_RT_TRACE(dm, ODM_COMP_API,
-			     "Enable CSI Mask:  Reg 0xD2C[28] = ((0x%x))\n",
-			     reg_value);
-
-	} else if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		odm_set_bb_reg(dm, 0x874, BIT(0), reg_value);
-		ODM_RT_TRACE(dm, ODM_COMP_API,
-			     "Enable CSI Mask:  Reg 0x874[0] = ((0x%x))\n",
-			     reg_value);
-	}
-}
-
-static void phydm_clean_all_csi_mask(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		odm_set_bb_reg(dm, 0xD40, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0xD44, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0xD48, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0xD4c, MASKDWORD, 0);
-
-	} else if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		odm_set_bb_reg(dm, 0x880, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0x884, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0x888, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0x88c, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0x890, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0x894, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0x898, MASKDWORD, 0);
-		odm_set_bb_reg(dm, 0x89c, MASKDWORD, 0);
-	}
-}
-
-static void phydm_set_csi_mask_reg(void *dm_void, u32 tone_idx_tmp,
-				   u8 tone_direction)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 byte_offset, bit_offset;
-	u32 target_reg;
-	u8 reg_tmp_value;
-	u32 tone_num = 64;
-	u32 tone_num_shift = 0;
-	u32 csi_mask_reg_p = 0, csi_mask_reg_n = 0;
-
-	/* calculate real tone idx*/
-	if ((tone_idx_tmp % 10) >= 5)
-		tone_idx_tmp += 10;
-
-	tone_idx_tmp = (tone_idx_tmp / 10);
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		tone_num = 64;
-		csi_mask_reg_p = 0xD40;
-		csi_mask_reg_n = 0xD48;
-
-	} else if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		tone_num = 128;
-		csi_mask_reg_p = 0x880;
-		csi_mask_reg_n = 0x890;
-	}
-
-	if (tone_direction == FREQ_POSITIVE) {
-		if (tone_idx_tmp >= (tone_num - 1))
-			tone_idx_tmp = tone_num - 1;
-
-		byte_offset = (u8)(tone_idx_tmp >> 3);
-		bit_offset = (u8)(tone_idx_tmp & 0x7);
-		target_reg = csi_mask_reg_p + byte_offset;
-
-	} else {
-		tone_num_shift = tone_num;
-
-		if (tone_idx_tmp >= tone_num)
-			tone_idx_tmp = tone_num;
-
-		tone_idx_tmp = tone_num - tone_idx_tmp;
-
-		byte_offset = (u8)(tone_idx_tmp >> 3);
-		bit_offset = (u8)(tone_idx_tmp & 0x7);
-		target_reg = csi_mask_reg_n + byte_offset;
-	}
-
-	reg_tmp_value = odm_read_1byte(dm, target_reg);
-	ODM_RT_TRACE(dm, ODM_COMP_API,
-		     "Pre Mask tone idx[%d]:  Reg0x%x = ((0x%x))\n",
-		     (tone_idx_tmp + tone_num_shift), target_reg,
-		     reg_tmp_value);
-	reg_tmp_value |= BIT(bit_offset);
-	odm_write_1byte(dm, target_reg, reg_tmp_value);
-	ODM_RT_TRACE(dm, ODM_COMP_API,
-		     "New Mask tone idx[%d]:  Reg0x%x = ((0x%x))\n",
-		     (tone_idx_tmp + tone_num_shift), target_reg,
-		     reg_tmp_value);
-}
-
-static void phydm_set_nbi_reg(void *dm_void, u32 tone_idx_tmp, u32 bw)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 nbi_table_128[NBI_TABLE_SIZE_128] = {
-		25, 55, 85, 115, 135, 155, 185, 205, 225, 245,
-		/*1~10*/ /*tone_idx X 10*/
-		265, 285, 305, 335, 355, 375, 395, 415, 435, 455, /*11~20*/
-		485, 505, 525, 555, 585, 615, 635}; /*21~27*/
-
-	u32 nbi_table_256[NBI_TABLE_SIZE_256] = {
-		25,   55,   85,   115,  135,  155,  175,  195,  225,
-		245, /*1~10*/
-		265,  285,  305,  325,  345,  365,  385,  405,  425,
-		445, /*11~20*/
-		465,  485,  505,  525,  545,  565,  585,  605,  625,
-		645, /*21~30*/
-		665,  695,  715,  735,  755,  775,  795,  815,  835,
-		855, /*31~40*/
-		875,  895,  915,  935,  955,  975,  995,  1015, 1035,
-		1055, /*41~50*/
-		1085, 1105, 1125, 1145, 1175, 1195, 1225, 1255, 1275}; /*51~59*/
-
-	u32 reg_idx = 0;
-	u32 i;
-	u8 nbi_table_idx = FFT_128_TYPE;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		nbi_table_idx = FFT_128_TYPE;
-	} else if (dm->support_ic_type & ODM_IC_11AC_1_SERIES) {
-		nbi_table_idx = FFT_256_TYPE;
-	} else if (dm->support_ic_type & ODM_IC_11AC_2_SERIES) {
-		if (bw == 80)
-			nbi_table_idx = FFT_256_TYPE;
-		else /*20M, 40M*/
-			nbi_table_idx = FFT_128_TYPE;
-	}
-
-	if (nbi_table_idx == FFT_128_TYPE) {
-		for (i = 0; i < NBI_TABLE_SIZE_128; i++) {
-			if (tone_idx_tmp < nbi_table_128[i]) {
-				reg_idx = i + 1;
-				break;
-			}
-		}
-
-	} else if (nbi_table_idx == FFT_256_TYPE) {
-		for (i = 0; i < NBI_TABLE_SIZE_256; i++) {
-			if (tone_idx_tmp < nbi_table_256[i]) {
-				reg_idx = i + 1;
-				break;
-			}
-		}
-	}
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		odm_set_bb_reg(dm, 0xc40, 0x1f000000, reg_idx);
-		ODM_RT_TRACE(dm, ODM_COMP_API,
-			     "Set tone idx:  Reg0xC40[28:24] = ((0x%x))\n",
-			     reg_idx);
-		/**/
-	} else {
-		odm_set_bb_reg(dm, 0x87c, 0xfc000, reg_idx);
-		ODM_RT_TRACE(dm, ODM_COMP_API,
-			     "Set tone idx: Reg0x87C[19:14] = ((0x%x))\n",
-			     reg_idx);
-		/**/
-	}
-}
-
-static void phydm_nbi_enable(void *dm_void, u32 enable)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 reg_value = 0;
-
-	reg_value = (enable == NBI_ENABLE) ? 1 : 0;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		odm_set_bb_reg(dm, 0xc40, BIT(9), reg_value);
-		ODM_RT_TRACE(dm, ODM_COMP_API,
-			     "Enable NBI Reg0xC40[9] = ((0x%x))\n", reg_value);
-
-	} else if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		odm_set_bb_reg(dm, 0x87c, BIT(13), reg_value);
-		ODM_RT_TRACE(dm, ODM_COMP_API,
-			     "Enable NBI Reg0x87C[13] = ((0x%x))\n", reg_value);
-	}
-}
-
-static u8 phydm_calculate_fc(void *dm_void, u32 channel, u32 bw, u32 second_ch,
-			     u32 *fc_in)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 fc = *fc_in;
-	u32 start_ch_per_40m[NUM_START_CH_40M + 1] = {
-		36,  44,  52,  60,  100, 108, 116,     124,
-		132, 140, 149, 157, 165, 173, 173 + 8,
-	};
-	u32 start_ch_per_80m[NUM_START_CH_80M + 1] = {
-		36, 52, 100, 116, 132, 149, 165, 165 + 16,
-	};
-	u32 *start_ch = &start_ch_per_40m[0];
-	u32 num_start_channel = NUM_START_CH_40M;
-	u32 channel_offset = 0;
-	u32 i;
-
-	/*2.4G*/
-	if (channel <= 14 && channel > 0) {
-		if (bw == 80)
-			return SET_ERROR;
-
-		fc = 2412 + (channel - 1) * 5;
-
-		if (bw == 40 && second_ch == PHYDM_ABOVE) {
-			if (channel >= 10) {
-				ODM_RT_TRACE(
-					dm, ODM_COMP_API,
-					"CH = ((%d)), Scnd_CH = ((%d)) Error setting\n",
-					channel, second_ch);
-				return SET_ERROR;
-			}
-			fc += 10;
-		} else if (bw == 40 && (second_ch == PHYDM_BELOW)) {
-			if (channel <= 2) {
-				ODM_RT_TRACE(
-					dm, ODM_COMP_API,
-					"CH = ((%d)), Scnd_CH = ((%d)) Error setting\n",
-					channel, second_ch);
-				return SET_ERROR;
-			}
-			fc -= 10;
-		}
-	}
-	/*5G*/
-	else if (channel >= 36 && channel <= 177) {
-		if (bw == 20) {
-			fc = 5180 + (channel - 36) * 5;
-			*fc_in = fc;
-			return SET_SUCCESS;
-		}
-
-		if (bw == 40) {
-			num_start_channel = NUM_START_CH_40M;
-			start_ch = &start_ch_per_40m[0];
-			channel_offset = CH_OFFSET_40M;
-		} else if (bw == 80) {
-			num_start_channel = NUM_START_CH_80M;
-			start_ch = &start_ch_per_80m[0];
-			channel_offset = CH_OFFSET_80M;
-		}
-
-		for (i = 0; i < num_start_channel; i++) {
-			if (channel < start_ch[i + 1]) {
-				channel = start_ch[i] + channel_offset;
-				break;
-			}
-		}
-
-		ODM_RT_TRACE(dm, ODM_COMP_API, "Mod_CH = ((%d))\n", channel);
-
-		fc = 5180 + (channel - 36) * 5;
-
-	} else {
-		ODM_RT_TRACE(dm, ODM_COMP_API, "CH = ((%d)) Error setting\n",
-			     channel);
-		return SET_ERROR;
-	}
-
-	*fc_in = fc;
-
-	return SET_SUCCESS;
-}
-
-static u8 phydm_calculate_intf_distance(void *dm_void, u32 bw, u32 fc,
-					u32 f_interference,
-					u32 *tone_idx_tmp_in)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 bw_up, bw_low;
-	u32 int_distance;
-	u32 tone_idx_tmp;
-	u8 set_result = SET_NO_NEED;
-
-	bw_up = fc + bw / 2;
-	bw_low = fc - bw / 2;
-
-	ODM_RT_TRACE(dm, ODM_COMP_API,
-		     "[f_l, fc, fh] = [ %d, %d, %d ], f_int = ((%d))\n", bw_low,
-		     fc, bw_up, f_interference);
-
-	if (f_interference >= bw_low && f_interference <= bw_up) {
-		int_distance = (fc >= f_interference) ? (fc - f_interference) :
-							(f_interference - fc);
-		tone_idx_tmp =
-			int_distance << 5; /* =10*(int_distance /0.3125) */
-		ODM_RT_TRACE(
-			dm, ODM_COMP_API,
-			"int_distance = ((%d MHz)) Mhz, tone_idx_tmp = ((%d.%d))\n",
-			int_distance, (tone_idx_tmp / 10), (tone_idx_tmp % 10));
-		*tone_idx_tmp_in = tone_idx_tmp;
-		set_result = SET_SUCCESS;
-	}
-
-	return set_result;
-}
-
-static u8 phydm_csi_mask_setting(void *dm_void, u32 enable, u32 channel, u32 bw,
-				 u32 f_interference, u32 second_ch)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 fc;
-	u8 tone_direction;
-	u32 tone_idx_tmp;
-	u8 set_result = SET_SUCCESS;
-
-	if (enable == CSI_MASK_DISABLE) {
-		set_result = SET_SUCCESS;
-		phydm_clean_all_csi_mask(dm);
-
-	} else {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_API,
-			"[Set CSI MASK_] CH = ((%d)), BW = ((%d)), f_intf = ((%d)), Scnd_CH = ((%s))\n",
-			channel, bw, f_interference,
-			(((bw == 20) || (channel > 14)) ?
-				 "Don't care" :
-				 (second_ch == PHYDM_ABOVE) ? "H" : "L"));
-
-		/*calculate fc*/
-		if (phydm_calculate_fc(dm, channel, bw, second_ch, &fc) ==
-		    SET_ERROR) {
-			set_result = SET_ERROR;
-		} else {
-			/*calculate interference distance*/
-			if (phydm_calculate_intf_distance(
-				    dm, bw, fc, f_interference,
-				    &tone_idx_tmp) == SET_SUCCESS) {
-				tone_direction = (f_interference >= fc) ?
-							 FREQ_POSITIVE :
-							 FREQ_NEGATIVE;
-				phydm_set_csi_mask_reg(dm, tone_idx_tmp,
-						       tone_direction);
-				set_result = SET_SUCCESS;
-			} else {
-				set_result = SET_NO_NEED;
-			}
-		}
-	}
-
-	if (set_result == SET_SUCCESS)
-		phydm_csi_mask_enable(dm, enable);
-	else
-		phydm_csi_mask_enable(dm, CSI_MASK_DISABLE);
-
-	return set_result;
-}
-
-u8 phydm_nbi_setting(void *dm_void, u32 enable, u32 channel, u32 bw,
-		     u32 f_interference, u32 second_ch)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 fc;
-	u32 tone_idx_tmp;
-	u8 set_result = SET_SUCCESS;
-
-	if (enable == NBI_DISABLE) {
-		set_result = SET_SUCCESS;
-	} else {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_API,
-			"[Set NBI] CH = ((%d)), BW = ((%d)), f_intf = ((%d)), Scnd_CH = ((%s))\n",
-			channel, bw, f_interference,
-			(((second_ch == PHYDM_DONT_CARE) || (bw == 20) ||
-			  (channel > 14)) ?
-				 "Don't care" :
-				 (second_ch == PHYDM_ABOVE) ? "H" : "L"));
-
-		/*calculate fc*/
-		if (phydm_calculate_fc(dm, channel, bw, second_ch, &fc) ==
-		    SET_ERROR) {
-			set_result = SET_ERROR;
-		} else {
-			/*calculate interference distance*/
-			if (phydm_calculate_intf_distance(
-				    dm, bw, fc, f_interference,
-				    &tone_idx_tmp) == SET_SUCCESS) {
-				phydm_set_nbi_reg(dm, tone_idx_tmp, bw);
-				set_result = SET_SUCCESS;
-			} else {
-				set_result = SET_NO_NEED;
-			}
-		}
-	}
-
-	if (set_result == SET_SUCCESS)
-		phydm_nbi_enable(dm, enable);
-	else
-		phydm_nbi_enable(dm, NBI_DISABLE);
-
-	return set_result;
-}
-
-void phydm_api_debug(void *dm_void, u32 function_map, u32 *const dm_value,
-		     u32 *_used, char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-	u32 channel = dm_value[1];
-	u32 bw = dm_value[2];
-	u32 f_interference = dm_value[3];
-	u32 second_ch = dm_value[4];
-	u8 set_result = 0;
-
-	/*PHYDM_API_NBI*/
-	/*--------------------------------------------------------------------*/
-	if (function_map == PHYDM_API_NBI) {
-		if (dm_value[0] == 100) {
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"[HELP-NBI]  EN(on=1, off=2)   CH   BW(20/40/80)  f_intf(Mhz)    Scnd_CH(L=1, H=2)\n");
-			return;
-
-		} else if (dm_value[0] == NBI_ENABLE) {
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"[Enable NBI] CH = ((%d)), BW = ((%d)), f_intf = ((%d)), Scnd_CH = ((%s))\n",
-				channel, bw, f_interference,
-				((second_ch == PHYDM_DONT_CARE) || (bw == 20) ||
-				 (channel > 14)) ?
-					"Don't care" :
-					((second_ch == PHYDM_ABOVE) ? "H" :
-								      "L"));
-			set_result =
-				phydm_nbi_setting(dm, NBI_ENABLE, channel, bw,
-						  f_interference, second_ch);
-
-		} else if (dm_value[0] == NBI_DISABLE) {
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "[Disable NBI]\n");
-			set_result =
-				phydm_nbi_setting(dm, NBI_DISABLE, channel, bw,
-						  f_interference, second_ch);
-
-		} else {
-			set_result = SET_ERROR;
-		}
-
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "[NBI set result: %s]\n",
-			(set_result == SET_SUCCESS) ?
-				"Success" :
-				((set_result == SET_NO_NEED) ? "No need" :
-							       "Error"));
-	}
-
-	/*PHYDM_CSI_MASK*/
-	/*--------------------------------------------------------------------*/
-	else if (function_map == PHYDM_API_CSI_MASK) {
-		if (dm_value[0] == 100) {
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"[HELP-CSI MASK]  EN(on=1, off=2)   CH   BW(20/40/80)  f_intf(Mhz)    Scnd_CH(L=1, H=2)\n");
-			return;
-
-		} else if (dm_value[0] == CSI_MASK_ENABLE) {
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"[Enable CSI MASK] CH = ((%d)), BW = ((%d)), f_intf = ((%d)), Scnd_CH = ((%s))\n",
-				channel, bw, f_interference,
-				(channel > 14) ?
-					"Don't care" :
-					(((second_ch == PHYDM_DONT_CARE) ||
-					  (bw == 20) || (channel > 14)) ?
-						 "H" :
-						 "L"));
-			set_result = phydm_csi_mask_setting(
-				dm, CSI_MASK_ENABLE, channel, bw,
-				f_interference, second_ch);
-
-		} else if (dm_value[0] == CSI_MASK_DISABLE) {
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "[Disable CSI MASK]\n");
-			set_result = phydm_csi_mask_setting(
-				dm, CSI_MASK_DISABLE, channel, bw,
-				f_interference, second_ch);
-
-		} else {
-			set_result = SET_ERROR;
-		}
-
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "[CSI MASK set result: %s]\n",
-			       (set_result == SET_SUCCESS) ?
-				       "Success" :
-				       ((set_result == SET_NO_NEED) ?
-						"No need" :
-						"Error"));
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm.h b/drivers/staging/rtlwifi/phydm/phydm.h
deleted file mode 100644
index 8c3ad3f..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm.h
+++ /dev/null
@@ -1,935 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __HALDMOUTSRC_H__
-#define __HALDMOUTSRC_H__
-
-/*============================================================*/
-/*include files*/
-/*============================================================*/
-#include "phydm_pre_define.h"
-#include "phydm_dig.h"
-#include "phydm_edcaturbocheck.h"
-#include "phydm_antdiv.h"
-#include "phydm_dynamicbbpowersaving.h"
-#include "phydm_rainfo.h"
-#include "phydm_dynamictxpower.h"
-#include "phydm_cfotracking.h"
-#include "phydm_acs.h"
-#include "phydm_adaptivity.h"
-#include "phydm_iqk.h"
-#include "phydm_dfs.h"
-#include "phydm_ccx.h"
-#include "txbf/phydm_hal_txbf_api.h"
-
-#include "phydm_adc_sampling.h"
-#include "phydm_dynamic_rx_path.h"
-#include "phydm_psd.h"
-
-#include "phydm_beamforming.h"
-
-#include "phydm_noisemonitor.h"
-#include "halphyrf_ce.h"
-
-/*============================================================*/
-/*Definition */
-/*============================================================*/
-
-/* Traffic load decision */
-#define TRAFFIC_ULTRA_LOW 1
-#define TRAFFIC_LOW 2
-#define TRAFFIC_MID 3
-#define TRAFFIC_HIGH 4
-
-#define NONE 0
-
-/*NBI API------------------------------------*/
-#define NBI_ENABLE 1
-#define NBI_DISABLE 2
-
-#define NBI_TABLE_SIZE_128 27
-#define NBI_TABLE_SIZE_256 59
-
-#define NUM_START_CH_80M 7
-#define NUM_START_CH_40M 14
-
-#define CH_OFFSET_40M 2
-#define CH_OFFSET_80M 6
-
-/*CSI MASK API------------------------------------*/
-#define CSI_MASK_ENABLE 1
-#define CSI_MASK_DISABLE 2
-
-/*------------------------------------------------*/
-
-#define FFT_128_TYPE 1
-#define FFT_256_TYPE 2
-
-#define SET_SUCCESS 1
-#define SET_ERROR 2
-#define SET_NO_NEED 3
-
-#define FREQ_POSITIVE 1
-#define FREQ_NEGATIVE 2
-
-#define PHYDM_WATCH_DOG_PERIOD 2
-
-/*============================================================*/
-/*structure and define*/
-/*============================================================*/
-
-/*2011/09/20 MH Add for AP/ADSLpseudo DM structuer requirement.*/
-/*We need to remove to other position???*/
-
-struct rtl8192cd_priv {
-	u8 temp;
-};
-
-struct dyn_primary_cca {
-	u8 pri_cca_flag;
-	u8 intf_flag;
-	u8 intf_type;
-	u8 dup_rts_flag;
-	u8 monitor_flag;
-	u8 ch_offset;
-	u8 mf_state;
-};
-
-#define dm_type_by_fw 0
-#define dm_type_by_driver 1
-
-/*Declare for common info*/
-
-#define IQK_THRESHOLD 8
-#define DPK_THRESHOLD 4
-
-struct dm_phy_status_info {
-	/*  */
-	/* Be care, if you want to add any element please insert between */
-	/* rx_pwdb_all & signal_strength. */
-	/*  */
-	u8 rx_pwdb_all;
-	u8 signal_quality; /* in 0-100 index. */
-	s8 rx_mimo_signal_quality[4]; /* per-path's EVM translate to 0~100% */
-	u8 rx_mimo_evm_dbm[4]; /* per-path's original EVM (dbm) */
-	u8 rx_mimo_signal_strength[4]; /* in 0~100 index */
-	s16 cfo_short[4]; /* per-path's cfo_short */
-	s16 cfo_tail[4]; /* per-path's cfo_tail */
-	s8 rx_power; /* in dBm Translate from PWdB */
-	s8 recv_signal_power; /* Real power in dBm for this packet,
-			       * no beautification and aggregation.
-			       * Keep this raw info to be used for the other
-			       * procedures.
-			       */
-	u8 bt_rx_rssi_percentage;
-	u8 signal_strength; /* in 0-100 index. */
-	s8 rx_pwr[4]; /* per-path's pwdb */
-	s8 rx_snr[4]; /* per-path's SNR	*/
-	/* s8      BB_Backup[13];                   backup reg. */
-	u8 rx_count : 2; /* RX path counter---*/
-	u8 band_width : 2;
-	u8 rxsc : 4; /* sub-channel---*/
-	u8 bt_coex_pwr_adjust;
-	u8 channel; /* channel number---*/
-	bool is_mu_packet; /* is MU packet or not---*/
-	bool is_beamformed; /* BF packet---*/
-};
-
-struct dm_per_pkt_info {
-	u8 data_rate;
-	u8 station_id;
-	bool is_packet_match_bssid;
-	bool is_packet_to_self;
-	bool is_packet_beacon;
-	bool is_to_self;
-	u8 ppdu_cnt;
-};
-
-struct odm_phy_dbg_info {
-	/*ODM Write,debug info*/
-	s8 rx_snr_db[4];
-	u32 num_qry_phy_status;
-	u32 num_qry_phy_status_cck;
-	u32 num_qry_phy_status_ofdm;
-	u32 num_qry_mu_pkt;
-	u32 num_qry_bf_pkt;
-	u32 num_qry_mu_vht_pkt[40];
-	u32 num_qry_vht_pkt[40];
-	bool is_ldpc_pkt;
-	bool is_stbc_pkt;
-	u8 num_of_ppdu[4];
-	u8 gid_num[4];
-	u8 num_qry_beacon_pkt;
-	/* Others */
-	s32 rx_evm[4];
-};
-
-/*2011/20/20 MH For MP driver RT_WLAN_STA =  struct rtl_sta_info*/
-/*Please declare below ODM relative info in your STA info structure.*/
-
-struct odm_sta_info {
-	/*Driver Write*/
-	bool is_used; /*record the sta status link or not?*/
-	u8 iot_peer; /*Enum value.	HT_IOT_PEER_E*/
-
-	/*ODM Write*/
-	/*PHY_STATUS_INFO*/
-	u8 rssi_path[4];
-	u8 rssi_ave;
-	u8 RXEVM[4];
-	u8 RXSNR[4];
-};
-
-enum odm_cmninfo {
-	/*Fixed value*/
-	/*-----------HOOK BEFORE REG INIT-----------*/
-	ODM_CMNINFO_PLATFORM = 0,
-	ODM_CMNINFO_ABILITY,
-	ODM_CMNINFO_INTERFACE,
-	ODM_CMNINFO_MP_TEST_CHIP,
-	ODM_CMNINFO_IC_TYPE,
-	ODM_CMNINFO_CUT_VER,
-	ODM_CMNINFO_FAB_VER,
-	ODM_CMNINFO_RF_TYPE,
-	ODM_CMNINFO_RFE_TYPE,
-	ODM_CMNINFO_BOARD_TYPE,
-	ODM_CMNINFO_PACKAGE_TYPE,
-	ODM_CMNINFO_EXT_LNA,
-	ODM_CMNINFO_5G_EXT_LNA,
-	ODM_CMNINFO_EXT_PA,
-	ODM_CMNINFO_5G_EXT_PA,
-	ODM_CMNINFO_GPA,
-	ODM_CMNINFO_APA,
-	ODM_CMNINFO_GLNA,
-	ODM_CMNINFO_ALNA,
-	ODM_CMNINFO_EXT_TRSW,
-	ODM_CMNINFO_DPK_EN,
-	ODM_CMNINFO_EXT_LNA_GAIN,
-	ODM_CMNINFO_PATCH_ID,
-	ODM_CMNINFO_BINHCT_TEST,
-	ODM_CMNINFO_BWIFI_TEST,
-	ODM_CMNINFO_SMART_CONCURRENT,
-	ODM_CMNINFO_CONFIG_BB_RF,
-	ODM_CMNINFO_DOMAIN_CODE_2G,
-	ODM_CMNINFO_DOMAIN_CODE_5G,
-	ODM_CMNINFO_IQKFWOFFLOAD,
-	ODM_CMNINFO_IQKPAOFF,
-	ODM_CMNINFO_HUBUSBMODE,
-	ODM_CMNINFO_FWDWRSVDPAGEINPROGRESS,
-	ODM_CMNINFO_TX_TP,
-	ODM_CMNINFO_RX_TP,
-	ODM_CMNINFO_SOUNDING_SEQ,
-	ODM_CMNINFO_REGRFKFREEENABLE,
-	ODM_CMNINFO_RFKFREEENABLE,
-	ODM_CMNINFO_NORMAL_RX_PATH_CHANGE,
-	ODM_CMNINFO_EFUSE0X3D8,
-	ODM_CMNINFO_EFUSE0X3D7,
-	/*-----------HOOK BEFORE REG INIT-----------*/
-
-	/*Dynamic value:*/
-
-	/*--------- POINTER REFERENCE-----------*/
-	ODM_CMNINFO_MAC_PHY_MODE,
-	ODM_CMNINFO_TX_UNI,
-	ODM_CMNINFO_RX_UNI,
-	ODM_CMNINFO_WM_MODE,
-	ODM_CMNINFO_BAND,
-	ODM_CMNINFO_SEC_CHNL_OFFSET,
-	ODM_CMNINFO_SEC_MODE,
-	ODM_CMNINFO_BW,
-	ODM_CMNINFO_CHNL,
-	ODM_CMNINFO_FORCED_RATE,
-	ODM_CMNINFO_ANT_DIV,
-	ODM_CMNINFO_ADAPTIVITY,
-	ODM_CMNINFO_DMSP_GET_VALUE,
-	ODM_CMNINFO_BUDDY_ADAPTOR,
-	ODM_CMNINFO_DMSP_IS_MASTER,
-	ODM_CMNINFO_SCAN,
-	ODM_CMNINFO_POWER_SAVING,
-	ODM_CMNINFO_ONE_PATH_CCA,
-	ODM_CMNINFO_DRV_STOP,
-	ODM_CMNINFO_PNP_IN,
-	ODM_CMNINFO_INIT_ON,
-	ODM_CMNINFO_ANT_TEST,
-	ODM_CMNINFO_NET_CLOSED,
-	ODM_CMNINFO_FORCED_IGI_LB,
-	ODM_CMNINFO_P2P_LINK,
-	ODM_CMNINFO_FCS_MODE,
-	ODM_CMNINFO_IS1ANTENNA,
-	ODM_CMNINFO_RFDEFAULTPATH,
-	ODM_CMNINFO_DFS_MASTER_ENABLE,
-	ODM_CMNINFO_FORCE_TX_ANT_BY_TXDESC,
-	ODM_CMNINFO_SET_S0S1_DEFAULT_ANTENNA,
-	/*--------- POINTER REFERENCE-----------*/
-
-	/*------------CALL BY VALUE-------------*/
-	ODM_CMNINFO_WIFI_DIRECT,
-	ODM_CMNINFO_WIFI_DISPLAY,
-	ODM_CMNINFO_LINK_IN_PROGRESS,
-	ODM_CMNINFO_LINK,
-	ODM_CMNINFO_CMW500LINK,
-	ODM_CMNINFO_LPSPG,
-	ODM_CMNINFO_STATION_STATE,
-	ODM_CMNINFO_RSSI_MIN,
-	ODM_CMNINFO_DBG_COMP,
-	ODM_CMNINFO_DBG_LEVEL,
-	ODM_CMNINFO_RA_THRESHOLD_HIGH,
-	ODM_CMNINFO_RA_THRESHOLD_LOW,
-	ODM_CMNINFO_RF_ANTENNA_TYPE,
-	ODM_CMNINFO_WITH_EXT_ANTENNA_SWITCH,
-	ODM_CMNINFO_BE_FIX_TX_ANT,
-	ODM_CMNINFO_BT_ENABLED,
-	ODM_CMNINFO_BT_HS_CONNECT_PROCESS,
-	ODM_CMNINFO_BT_HS_RSSI,
-	ODM_CMNINFO_BT_OPERATION,
-	ODM_CMNINFO_BT_LIMITED_DIG,
-	ODM_CMNINFO_BT_DIG,
-	ODM_CMNINFO_BT_BUSY,
-	ODM_CMNINFO_BT_DISABLE_EDCA,
-	ODM_CMNINFO_AP_TOTAL_NUM,
-	ODM_CMNINFO_POWER_TRAINING,
-	ODM_CMNINFO_DFS_REGION_DOMAIN,
-	/*------------CALL BY VALUE-------------*/
-
-	/*Dynamic ptr array hook itms.*/
-	ODM_CMNINFO_STA_STATUS,
-	ODM_CMNINFO_MAX,
-
-};
-
-enum phydm_info_query {
-	PHYDM_INFO_FA_OFDM,
-	PHYDM_INFO_FA_CCK,
-	PHYDM_INFO_FA_TOTAL,
-	PHYDM_INFO_CCA_OFDM,
-	PHYDM_INFO_CCA_CCK,
-	PHYDM_INFO_CCA_ALL,
-	PHYDM_INFO_CRC32_OK_VHT,
-	PHYDM_INFO_CRC32_OK_HT,
-	PHYDM_INFO_CRC32_OK_LEGACY,
-	PHYDM_INFO_CRC32_OK_CCK,
-	PHYDM_INFO_CRC32_ERROR_VHT,
-	PHYDM_INFO_CRC32_ERROR_HT,
-	PHYDM_INFO_CRC32_ERROR_LEGACY,
-	PHYDM_INFO_CRC32_ERROR_CCK,
-	PHYDM_INFO_EDCCA_FLAG,
-	PHYDM_INFO_OFDM_ENABLE,
-	PHYDM_INFO_CCK_ENABLE,
-	PHYDM_INFO_DBG_PORT_0
-};
-
-enum phydm_api {
-	PHYDM_API_NBI = 1,
-	PHYDM_API_CSI_MASK,
-
-};
-
-/*2011/10/20 MH Define ODM support ability.  ODM_CMNINFO_ABILITY*/
-enum odm_ability {
-	/*BB ODM section BIT 0-19*/
-	ODM_BB_DIG = BIT(0),
-	ODM_BB_RA_MASK = BIT(1),
-	ODM_BB_DYNAMIC_TXPWR = BIT(2),
-	ODM_BB_FA_CNT = BIT(3),
-	ODM_BB_RSSI_MONITOR = BIT(4),
-	ODM_BB_CCK_PD = BIT(5),
-	ODM_BB_ANT_DIV = BIT(6),
-	ODM_BB_PWR_TRAIN = BIT(8),
-	ODM_BB_RATE_ADAPTIVE = BIT(9),
-	ODM_BB_PATH_DIV = BIT(10),
-	ODM_BB_ADAPTIVITY = BIT(13),
-	ODM_BB_CFO_TRACKING = BIT(14),
-	ODM_BB_NHM_CNT = BIT(15),
-	ODM_BB_PRIMARY_CCA = BIT(16),
-	ODM_BB_TXBF = BIT(17),
-	ODM_BB_DYNAMIC_ARFR = BIT(18),
-
-	ODM_MAC_EDCA_TURBO = BIT(20),
-	ODM_BB_DYNAMIC_RX_PATH = BIT(21),
-
-	/*RF ODM section BIT 24-31*/
-	ODM_RF_TX_PWR_TRACK = BIT(24),
-	ODM_RF_RX_GAIN_TRACK = BIT(25),
-	ODM_RF_CALIBRATION = BIT(26),
-
-};
-
-/*ODM_CMNINFO_ONE_PATH_CCA*/
-enum odm_cca_path {
-	ODM_CCA_2R = 0,
-	ODM_CCA_1R_A = 1,
-	ODM_CCA_1R_B = 2,
-};
-
-enum cca_pathdiv_en {
-	CCA_PATHDIV_DISABLE = 0,
-	CCA_PATHDIV_ENABLE = 1,
-
-};
-
-enum phy_reg_pg_type {
-	PHY_REG_PG_RELATIVE_VALUE = 0,
-	PHY_REG_PG_EXACT_VALUE = 1
-};
-
-/*2011/09/22 MH Copy from SD4 defined structure.
- *We use to support PHY DM integration.
- */
-
-struct phy_dm_struct {
-	/*Add for different team use temporarily*/
-	void *adapter; /*For CE/NIC team*/
-	struct rtl8192cd_priv *priv; /*For AP/ADSL team*/
-	/*When you use adapter or priv pointer,
-	 *you must make sure the pointer is ready.
-	 */
-	bool odm_ready;
-
-	struct rtl8192cd_priv fake_priv;
-
-	enum phy_reg_pg_type phy_reg_pg_value_type;
-	u8 phy_reg_pg_version;
-
-	u32 debug_components;
-	u32 fw_debug_components;
-	u32 debug_level;
-
-	u32 num_qry_phy_status_all; /*CCK + OFDM*/
-	u32 last_num_qry_phy_status_all;
-	u32 rx_pwdb_ave;
-	bool MPDIG_2G; /*off MPDIG*/
-	u8 times_2g;
-	bool is_init_hw_info_by_rfe;
-
-	/*------ ODM HANDLE, DRIVER NEEDS NOT TO HOOK------*/
-	bool is_cck_high_power;
-	u8 rf_path_rx_enable;
-	u8 control_channel;
-	/*------ ODM HANDLE, DRIVER NEEDS NOT TO HOOK------*/
-
-	/* 1  COMMON INFORMATION */
-
-	/*Init value*/
-	/*-----------HOOK BEFORE REG INIT-----------*/
-	/*ODM Platform info AP/ADSL/CE/MP = 1/2/3/4*/
-	u8 support_platform;
-	/* ODM Platform info WIN/AP/CE = 1/2/3 */
-	u8 normal_rx_path;
-	/*ODM Support Ability DIG/RATR/TX_PWR_TRACK/ ... = 1/2/3/...*/
-	u32 support_ability;
-	/*ODM PCIE/USB/SDIO = 1/2/3*/
-	u8 support_interface;
-	/*ODM composite or independent. Bit oriented/ 92C+92D+ .... or
-	 *any other type = 1/2/3/...
-	 */
-	u32 support_ic_type;
-	/*cut version TestChip/A-cut/B-cut... = 0/1/2/3/...*/
-	u8 cut_version;
-	/*Fab version TSMC/UMC = 0/1*/
-	u8 fab_version;
-	/*RF type 4T4R/3T3R/2T2R/1T2R/1T1R/...*/
-	u8 rf_type;
-	u8 rfe_type;
-	/*Board type Normal/HighPower/MiniCard/SLIM/Combo/... = 0/1/2/3/4/...*/
-	/*Enable Function DPK OFF/ON = 0/1*/
-	u8 dpk_en;
-	u8 board_type;
-	u8 package_type;
-	u16 type_glna;
-	u16 type_gpa;
-	u16 type_alna;
-	u16 type_apa;
-	/*with external LNA  NO/Yes = 0/1*/
-	u8 ext_lna; /*2G*/
-	u8 ext_lna_5g; /*5G*/
-	/*with external PA  NO/Yes = 0/1*/
-	u8 ext_pa; /*2G*/
-	u8 ext_pa_5g; /*5G*/
-	/*with Efuse number*/
-	u8 efuse0x3d7;
-	u8 efuse0x3d8;
-	/*with external TRSW  NO/Yes = 0/1*/
-	u8 ext_trsw;
-	u8 ext_lna_gain; /*2G*/
-	u8 patch_id; /*Customer ID*/
-	bool is_in_hct_test;
-	u8 wifi_test;
-
-	bool is_dual_mac_smart_concurrent;
-	u32 bk_support_ability;
-	u8 ant_div_type;
-	u8 with_extenal_ant_switch;
-	bool config_bbrf;
-	u8 odm_regulation_2_4g;
-	u8 odm_regulation_5g;
-	u8 iqk_fw_offload;
-	bool cck_new_agc;
-	u8 phydm_period;
-	u32 phydm_sys_up_time;
-	u8 num_rf_path;
-	/*-----------HOOK BEFORE REG INIT-----------*/
-
-	/*Dynamic value*/
-
-	/*--------- POINTER REFERENCE-----------*/
-
-	u8 u1_byte_temp;
-	bool BOOLEAN_temp;
-	void *PADAPTER_temp;
-
-	/*MAC PHY mode SMSP/DMSP/DMDP = 0/1/2*/
-	u8 *mac_phy_mode;
-	/*TX Unicast byte count*/
-	u64 *num_tx_bytes_unicast;
-	/*RX Unicast byte count*/
-	u64 *num_rx_bytes_unicast;
-	/*Wireless mode B/G/A/N = BIT0/BIT1/BIT2/BIT3*/
-	u8 *wireless_mode;
-	/*Frequence band 2.4G/5G = 0/1*/
-	u8 *band_type;
-	/*Secondary channel offset don't_care/below/above = 0/1/2*/
-	u8 *sec_ch_offset;
-	/*security mode Open/WEP/AES/TKIP = 0/1/2/3*/
-	u8 *security;
-	/*BW info 20M/40M/80M = 0/1/2*/
-	u8 *band_width;
-	/*Central channel location Ch1/Ch2/....*/
-	u8 *channel; /*central channel number*/
-	bool dpk_done;
-	/*Common info for 92D DMSP*/
-
-	bool *is_get_value_from_other_mac;
-	void **buddy_adapter;
-	bool *is_master_of_dmsp; /* MAC0: master, MAC1: slave */
-	/*Common info for status*/
-	bool *is_scan_in_process;
-	bool *is_power_saving;
-	/*CCA path 2-path/path-A/path-B = 0/1/2; using enum odm_cca_path.*/
-	u8 *one_path_cca;
-	u8 *antenna_test;
-	bool *is_net_closed;
-	u8 *pu1_forced_igi_lb;
-	bool *is_fcs_mode_enable;
-	/*--------- For 8723B IQK-----------*/
-	bool *is_1_antenna;
-	u8 *rf_default_path;
-	/* 0:S1, 1:S0 */
-
-	/*--------- POINTER REFERENCE-----------*/
-	u16 *forced_data_rate;
-	u8 *enable_antdiv;
-	u8 *enable_adaptivity;
-	u8 *hub_usb_mode;
-	bool *is_fw_dw_rsvd_page_in_progress;
-	u32 *current_tx_tp;
-	u32 *current_rx_tp;
-	u8 *sounding_seq;
-	/*------------CALL BY VALUE-------------*/
-	bool is_link_in_process;
-	bool is_wifi_direct;
-	bool is_wifi_display;
-	bool is_linked;
-	bool is_linkedcmw500;
-	bool is_in_lps_pg;
-	bool bsta_state;
-	u8 rssi_min;
-	u8 interface_index; /*Add for 92D  dual MAC: 0--Mac0 1--Mac1*/
-	bool is_mp_chip;
-	bool is_one_entry_only;
-	bool mp_mode;
-	u32 one_entry_macid;
-	u8 pre_number_linked_client;
-	u8 number_linked_client;
-	u8 pre_number_active_client;
-	u8 number_active_client;
-	/*Common info for BTDM*/
-	bool is_bt_enabled; /*BT is enabled*/
-	bool is_bt_connect_process; /*BT HS is under connection progress.*/
-	u8 bt_hs_rssi; /*BT HS mode wifi rssi value.*/
-	bool is_bt_hs_operation; /*BT HS mode is under progress*/
-	u8 bt_hs_dig_val; /*use BT rssi to decide the DIG value*/
-	bool is_bt_disable_edca_turbo; /*Under some condition, don't enable*/
-	bool is_bt_busy; /*BT is busy.*/
-	bool is_bt_limited_dig; /*BT is busy.*/
-	bool is_disable_phy_api;
-	/*------------CALL BY VALUE-------------*/
-	u8 rssi_a;
-	u8 rssi_b;
-	u8 rssi_c;
-	u8 rssi_d;
-	u64 rssi_trsw;
-	u64 rssi_trsw_h;
-	u64 rssi_trsw_l;
-	u64 rssi_trsw_iso;
-	u8 tx_ant_status;
-	u8 rx_ant_status;
-	u8 cck_lna_idx;
-	u8 cck_vga_idx;
-	u8 curr_station_id;
-	u8 ofdm_agc_idx[4];
-
-	u8 rx_rate;
-	bool is_noisy_state;
-	u8 tx_rate;
-	u8 linked_interval;
-	u8 pre_channel;
-	u32 txagc_offset_value_a;
-	bool is_txagc_offset_positive_a;
-	u32 txagc_offset_value_b;
-	bool is_txagc_offset_positive_b;
-	u32 tx_tp;
-	u32 rx_tp;
-	u32 total_tp;
-	u64 cur_tx_ok_cnt;
-	u64 cur_rx_ok_cnt;
-	u64 last_tx_ok_cnt;
-	u64 last_rx_ok_cnt;
-	u32 bb_swing_offset_a;
-	bool is_bb_swing_offset_positive_a;
-	u32 bb_swing_offset_b;
-	bool is_bb_swing_offset_positive_b;
-	u8 igi_lower_bound;
-	u8 igi_upper_bound;
-	u8 antdiv_rssi;
-	u8 fat_comb_a;
-	u8 fat_comb_b;
-	u8 antdiv_intvl;
-	u8 ant_type;
-	u8 pre_ant_type;
-	u8 antdiv_period;
-	u8 evm_antdiv_period;
-	u8 antdiv_select;
-	u8 path_select;
-	u8 antdiv_evm_en;
-	u8 bdc_holdstate;
-	u8 ndpa_period;
-	bool h2c_rarpt_connect;
-	bool cck_agc_report_type;
-
-	u8 dm_dig_max_TH;
-	u8 dm_dig_min_TH;
-	u8 print_agc;
-	u8 traffic_load;
-	u8 pre_traffic_load;
-	/*8821C Antenna BTG/WLG/WLA Select*/
-	u8 current_rf_set_8821c;
-	u8 default_rf_set_8821c;
-	/*For Adaptivtiy*/
-	u16 nhm_cnt_0;
-	u16 nhm_cnt_1;
-	s8 TH_L2H_default;
-	s8 th_edcca_hl_diff_default;
-	s8 th_l2h_ini;
-	s8 th_edcca_hl_diff;
-	s8 th_l2h_ini_mode2;
-	s8 th_edcca_hl_diff_mode2;
-	bool carrier_sense_enable;
-	u8 adaptivity_igi_upper;
-	bool adaptivity_flag;
-	u8 dc_backoff;
-	bool adaptivity_enable;
-	u8 ap_total_num;
-	bool edcca_enable;
-	u8 pre_dbg_priority;
-	struct adaptivity_statistics adaptivity;
-	/*For Adaptivtiy*/
-	u8 last_usb_hub;
-	u8 tx_bf_data_rate;
-
-	u8 nbi_set_result;
-
-	u8 c2h_cmd_start;
-	u8 fw_debug_trace[60];
-	u8 pre_c2h_seq;
-	bool fw_buff_is_enpty;
-	u32 data_frame_num;
-
-	/*for noise detection*/
-	bool noisy_decision; /*b_noisy*/
-	bool pre_b_noisy;
-	u32 noisy_decision_smooth;
-	bool is_disable_dym_ecs;
-
-	struct odm_noise_monitor noise_level;
-	/*Define STA info.*/
-	/*odm_sta_info*/
-	/*2012/01/12 MH For MP,
-	 *we need to reduce one array pointer for default port.??
-	 */
-	struct rtl_sta_info *odm_sta_info[ODM_ASSOCIATE_ENTRY_NUM];
-	u16 platform2phydm_macid_table[ODM_ASSOCIATE_ENTRY_NUM];
-	/* platform_macid_table[platform_macid] = phydm_macid */
-	s32 accumulate_pwdb[ODM_ASSOCIATE_ENTRY_NUM];
-
-	/*2012/02/14 MH Add to share 88E ra with other SW team.*/
-	/*We need to colelct all support abilit to a proper area.*/
-
-	bool ra_support88e;
-
-	struct odm_phy_dbg_info phy_dbg_info;
-
-	/*ODM Structure*/
-	struct fast_antenna_training dm_fat_table;
-	struct dig_thres dm_dig_table;
-	struct dyn_pwr_saving dm_ps_table;
-	struct dyn_primary_cca dm_pri_cca;
-	struct ra_table dm_ra_table;
-	struct false_alarm_stat false_alm_cnt;
-	struct false_alarm_stat flase_alm_cnt_buddy_adapter;
-	struct sw_antenna_switch dm_swat_table;
-	struct cfo_tracking dm_cfo_track;
-	struct acs_info dm_acs;
-	struct ccx_info dm_ccx_info;
-	struct psd_info dm_psd_table;
-
-	struct rt_adcsmp adcsmp;
-
-	struct dm_iqk_info IQK_info;
-
-	struct edca_turbo dm_edca_table;
-	u32 WMMEDCA_BE;
-
-	bool *is_driver_stopped;
-	bool *is_driver_is_going_to_pnp_set_power_sleep;
-	bool *pinit_adpt_in_progress;
-
-	/*PSD*/
-	bool is_user_assign_level;
-	u8 RSSI_BT; /*come from BT*/
-	bool is_psd_in_process;
-	bool is_psd_active;
-	bool is_dm_initial_gain_enable;
-
-	/*MPT DIG*/
-	struct timer_list mpt_dig_timer;
-
-	/*for rate adaptive, in fact,  88c/92c fw will handle this*/
-	u8 is_use_ra_mask;
-
-	/* for dynamic SoML control */
-	bool bsomlenabled;
-
-	struct odm_rate_adaptive rate_adaptive;
-	struct dm_rf_calibration_struct rf_calibrate_info;
-	u32 n_iqk_cnt;
-	u32 n_iqk_ok_cnt;
-	u32 n_iqk_fail_cnt;
-
-	/*Power Training*/
-	u8 force_power_training_state;
-	bool is_change_state;
-	u32 PT_score;
-	u64 ofdm_rx_cnt;
-	u64 cck_rx_cnt;
-	bool is_disable_power_training;
-	u8 dynamic_tx_high_power_lvl;
-	u8 last_dtp_lvl;
-	u32 tx_agc_ofdm_18_6;
-	u8 rx_pkt_type;
-
-	/*ODM relative time.*/
-	struct timer_list path_div_switch_timer;
-	/*2011.09.27 add for path Diversity*/
-	struct timer_list cck_path_diversity_timer;
-	struct timer_list fast_ant_training_timer;
-	struct timer_list sbdcnt_timer;
-
-	/*ODM relative workitem.*/
-};
-
-enum phydm_structure_type {
-	PHYDM_FALSEALMCNT,
-	PHYDM_CFOTRACK,
-	PHYDM_ADAPTIVITY,
-	PHYDM_ROMINFO,
-
-};
-
-enum odm_rf_content {
-	odm_radioa_txt = 0x1000,
-	odm_radiob_txt = 0x1001,
-	odm_radioc_txt = 0x1002,
-	odm_radiod_txt = 0x1003
-};
-
-enum odm_bb_config_type {
-	CONFIG_BB_PHY_REG,
-	CONFIG_BB_AGC_TAB,
-	CONFIG_BB_AGC_TAB_2G,
-	CONFIG_BB_AGC_TAB_5G,
-	CONFIG_BB_PHY_REG_PG,
-	CONFIG_BB_PHY_REG_MP,
-	CONFIG_BB_AGC_TAB_DIFF,
-};
-
-enum odm_rf_config_type {
-	CONFIG_RF_RADIO,
-	CONFIG_RF_TXPWR_LMT,
-};
-
-enum odm_fw_config_type {
-	CONFIG_FW_NIC,
-	CONFIG_FW_NIC_2,
-	CONFIG_FW_AP,
-	CONFIG_FW_AP_2,
-	CONFIG_FW_MP,
-	CONFIG_FW_WOWLAN,
-	CONFIG_FW_WOWLAN_2,
-	CONFIG_FW_AP_WOWLAN,
-	CONFIG_FW_BT,
-};
-
-/*status code*/
-enum rt_status {
-	RT_STATUS_SUCCESS,
-	RT_STATUS_FAILURE,
-	RT_STATUS_PENDING,
-	RT_STATUS_RESOURCE,
-	RT_STATUS_INVALID_CONTEXT,
-	RT_STATUS_INVALID_PARAMETER,
-	RT_STATUS_NOT_SUPPORT,
-	RT_STATUS_OS_API_FAILED,
-};
-
-/*===========================================================*/
-/*AGC RX High Power mode*/
-/*===========================================================*/
-#define lna_low_gain_1 0x64
-#define lna_low_gain_2 0x5A
-#define lna_low_gain_3 0x58
-
-#define FA_RXHP_TH1 5000
-#define FA_RXHP_TH2 1500
-#define FA_RXHP_TH3 800
-#define FA_RXHP_TH4 600
-#define FA_RXHP_TH5 500
-
-enum dm_1r_cca {
-	CCA_1R = 0,
-	CCA_2R = 1,
-	CCA_MAX = 2,
-};
-
-enum dm_rf {
-	rf_save = 0,
-	rf_normal = 1,
-	RF_MAX = 2,
-};
-
-/*check Sta pointer valid or not*/
-
-#define IS_STA_VALID(sta) (sta)
-
-u32 odm_convert_to_db(u32 value);
-
-u32 odm_convert_to_linear(u32 value);
-
-s32 odm_pwdb_conversion(s32 X, u32 total_bit, u32 decimal_bit);
-
-s32 odm_sign_conversion(s32 value, u32 total_bit);
-
-void odm_init_mp_driver_status(struct phy_dm_struct *dm);
-
-void phydm_txcurrentcalibration(struct phy_dm_struct *dm);
-
-void phydm_seq_sorting(void *dm_void, u32 *value, u32 *rank_idx, u32 *idx_out,
-		       u8 seq_length);
-
-void odm_dm_init(struct phy_dm_struct *dm);
-
-void odm_dm_reset(struct phy_dm_struct *dm);
-
-void phydm_support_ability_debug(void *dm_void, u32 *const dm_value, u32 *_used,
-				 char *output, u32 *_out_len);
-
-void phydm_config_ofdm_rx_path(struct phy_dm_struct *dm, u32 path);
-
-void phydm_config_trx_path(void *dm_void, u32 *const dm_value, u32 *_used,
-			   char *output, u32 *_out_len);
-
-void odm_dm_watchdog(struct phy_dm_struct *dm);
-
-void phydm_watchdog_mp(struct phy_dm_struct *dm);
-
-void odm_cmn_info_init(struct phy_dm_struct *dm, enum odm_cmninfo cmn_info,
-		       u32 value);
-
-void odm_cmn_info_hook(struct phy_dm_struct *dm, enum odm_cmninfo cmn_info,
-		       void *value);
-
-void odm_cmn_info_ptr_array_hook(struct phy_dm_struct *dm,
-				 enum odm_cmninfo cmn_info, u16 index,
-				 void *value);
-
-void odm_cmn_info_update(struct phy_dm_struct *dm, u32 cmn_info, u64 value);
-
-u32 phydm_cmn_info_query(struct phy_dm_struct *dm,
-			 enum phydm_info_query info_type);
-
-void odm_init_all_timers(struct phy_dm_struct *dm);
-
-void odm_cancel_all_timers(struct phy_dm_struct *dm);
-
-void odm_release_all_timers(struct phy_dm_struct *dm);
-
-void odm_asoc_entry_init(struct phy_dm_struct *dm);
-
-void *phydm_get_structure(struct phy_dm_struct *dm, u8 structure_type);
-
-/*===========================================================*/
-/* The following is for compile only*/
-/*===========================================================*/
-
-#define IS_HARDWARE_TYPE_8188E(_adapter) false
-#define IS_HARDWARE_TYPE_8188F(_adapter) false
-#define IS_HARDWARE_TYPE_8703B(_adapter) false
-#define IS_HARDWARE_TYPE_8723D(_adapter) false
-#define IS_HARDWARE_TYPE_8821C(_adapter) false
-#define IS_HARDWARE_TYPE_8812AU(_adapter) false
-#define IS_HARDWARE_TYPE_8814A(_adapter) false
-#define IS_HARDWARE_TYPE_8814AU(_adapter) false
-#define IS_HARDWARE_TYPE_8814AE(_adapter) false
-#define IS_HARDWARE_TYPE_8814AS(_adapter) false
-#define IS_HARDWARE_TYPE_8723BU(_adapter) false
-#define IS_HARDWARE_TYPE_8822BU(_adapter) false
-#define IS_HARDWARE_TYPE_8822BS(_adapter) false
-#define IS_HARDWARE_TYPE_JAGUAR(_adapter)                                      \
-	(IS_HARDWARE_TYPE_8812(_adapter) || IS_HARDWARE_TYPE_8821(_adapter))
-#define IS_HARDWARE_TYPE_8723AE(_adapter) false
-#define IS_HARDWARE_TYPE_8192C(_adapter) false
-#define IS_HARDWARE_TYPE_8192D(_adapter) false
-#define RF_T_METER_92D 0x42
-
-#define GET_RX_STATUS_DESC_RX_MCS(__prx_status_desc)                           \
-	LE_BITS_TO_1BYTE(__prx_status_desc + 12, 0, 6)
-
-#define REG_CONFIG_RAM64X16 0xb2c
-
-#define TARGET_CHNL_NUM_2G_5G 59
-
-/* *********************************************************** */
-
-void odm_dtc(struct phy_dm_struct *dm);
-
-void phydm_noisy_detection(struct phy_dm_struct *dm);
-
-void phydm_set_ext_switch(void *dm_void, u32 *const dm_value, u32 *_used,
-			  char *output, u32 *_out_len);
-
-void phydm_api_debug(void *dm_void, u32 function_map, u32 *const dm_value,
-		     u32 *_used, char *output, u32 *_out_len);
-
-u8 phydm_nbi_setting(void *dm_void, u32 enable, u32 channel, u32 bw,
-		     u32 f_interference, u32 second_ch);
-#endif /* __HALDMOUTSRC_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/phydm_acs.c b/drivers/staging/rtlwifi/phydm/phydm_acs.c
deleted file mode 100644
index f47b245..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_acs.c
+++ /dev/null
@@ -1,189 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-u8 odm_get_auto_channel_select_result(void *dm_void, u8 band)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct acs_info *acs = &dm->dm_acs;
-	u8 result;
-
-	if (band == ODM_BAND_2_4G) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_ACS,
-			"[struct acs_info] %s(): clean_channel_2g(%d)\n",
-			__func__, acs->clean_channel_2g);
-		result = (u8)acs->clean_channel_2g;
-	} else {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_ACS,
-			"[struct acs_info] %s(): clean_channel_5g(%d)\n",
-			__func__, acs->clean_channel_5g);
-		result = (u8)acs->clean_channel_5g;
-	}
-
-	return result;
-}
-
-static void odm_auto_channel_select_setting(void *dm_void, bool is_enable)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u16 period = 0x2710; /* 40ms in default */
-	u16 nhm_type = 0x7;
-
-	ODM_RT_TRACE(dm, ODM_COMP_ACS, "%s()=========>\n", __func__);
-
-	if (is_enable) {
-		/* 20 ms */
-		period = 0x1388;
-		nhm_type = 0x1;
-	}
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		/* PHY parameters initialize for ac series */
-
-		/* 0x990[31:16]=0x2710
-		 * Time duration for NHM unit: 4us, 0x2710=40ms
-		 */
-		odm_write_2byte(dm, ODM_REG_CCX_PERIOD_11AC + 2, period);
-	} else if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		/* PHY parameters initialize for n series */
-
-		/* 0x894[31:16]=0x2710
-		 * Time duration for NHM unit: 4us, 0x2710=40ms
-		 */
-		odm_write_2byte(dm, ODM_REG_CCX_PERIOD_11N + 2, period);
-	}
-}
-
-void odm_auto_channel_select_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct acs_info *acs = &dm->dm_acs;
-	u8 i;
-
-	if (!(dm->support_ability & ODM_BB_NHM_CNT))
-		return;
-
-	if (acs->is_force_acs_result)
-		return;
-
-	ODM_RT_TRACE(dm, ODM_COMP_ACS, "%s()=========>\n", __func__);
-
-	acs->clean_channel_2g = 1;
-	acs->clean_channel_5g = 36;
-
-	for (i = 0; i < ODM_MAX_CHANNEL_2G; ++i) {
-		acs->channel_info_2g[0][i] = 0;
-		acs->channel_info_2g[1][i] = 0;
-	}
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		for (i = 0; i < ODM_MAX_CHANNEL_5G; ++i) {
-			acs->channel_info_5g[0][i] = 0;
-			acs->channel_info_5g[1][i] = 0;
-		}
-	}
-}
-
-void odm_auto_channel_select_reset(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct acs_info *acs = &dm->dm_acs;
-
-	if (!(dm->support_ability & ODM_BB_NHM_CNT))
-		return;
-
-	if (acs->is_force_acs_result)
-		return;
-
-	ODM_RT_TRACE(dm, ODM_COMP_ACS, "%s()=========>\n", __func__);
-
-	odm_auto_channel_select_setting(dm, true); /* for 20ms measurement */
-	phydm_nhm_counter_statistics_reset(dm);
-}
-
-void odm_auto_channel_select(void *dm_void, u8 channel)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct acs_info *acs = &dm->dm_acs;
-	u8 channel_idx = 0, search_idx = 0;
-	u16 max_score = 0;
-
-	if (!(dm->support_ability & ODM_BB_NHM_CNT)) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_DIG,
-			"%s(): Return: support_ability ODM_BB_NHM_CNT is disabled\n",
-			__func__);
-		return;
-	}
-
-	if (acs->is_force_acs_result) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_DIG,
-			"%s(): Force 2G clean channel = %d, 5G clean channel = %d\n",
-			__func__, acs->clean_channel_2g, acs->clean_channel_5g);
-		return;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_ACS, "%s(): channel = %d=========>\n",
-		     __func__, channel);
-
-	phydm_get_nhm_counter_statistics(dm);
-	odm_auto_channel_select_setting(dm, false);
-
-	if (channel >= 1 && channel <= 14) {
-		channel_idx = channel - 1;
-		acs->channel_info_2g[1][channel_idx]++;
-
-		if (acs->channel_info_2g[1][channel_idx] >= 2)
-			acs->channel_info_2g[0][channel_idx] =
-				(acs->channel_info_2g[0][channel_idx] >> 1) +
-				(acs->channel_info_2g[0][channel_idx] >> 2) +
-				(dm->nhm_cnt_0 >> 2);
-		else
-			acs->channel_info_2g[0][channel_idx] = dm->nhm_cnt_0;
-
-		ODM_RT_TRACE(dm, ODM_COMP_ACS, "%s(): nhm_cnt_0 = %d\n",
-			     __func__, dm->nhm_cnt_0);
-		ODM_RT_TRACE(
-			dm, ODM_COMP_ACS,
-			"%s(): Channel_Info[0][%d] = %d, Channel_Info[1][%d] = %d\n",
-			__func__, channel_idx,
-			acs->channel_info_2g[0][channel_idx], channel_idx,
-			acs->channel_info_2g[1][channel_idx]);
-
-		for (search_idx = 0; search_idx < ODM_MAX_CHANNEL_2G;
-		     search_idx++) {
-			if (acs->channel_info_2g[1][search_idx] != 0 &&
-			    acs->channel_info_2g[0][search_idx] >= max_score) {
-				max_score = acs->channel_info_2g[0][search_idx];
-				acs->clean_channel_2g = search_idx + 1;
-			}
-		}
-		ODM_RT_TRACE(
-			dm, ODM_COMP_ACS,
-			"(1)%s(): 2G: clean_channel_2g = %d, max_score = %d\n",
-			__func__, acs->clean_channel_2g, max_score);
-
-	} else if (channel >= 36) {
-		/* Need to do */
-		acs->clean_channel_5g = channel;
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_acs.h b/drivers/staging/rtlwifi/phydm/phydm_acs.h
deleted file mode 100644
index c6516b8..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_acs.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMACS_H__
-#define __PHYDMACS_H__
-
-#define ACS_VERSION "1.1" /*20150729 by YuChen*/
-#define CLM_VERSION "1.0"
-
-#define ODM_MAX_CHANNEL_2G 14
-#define ODM_MAX_CHANNEL_5G 24
-
-/* For phydm_auto_channel_select_setting_ap() */
-#define STORE_DEFAULT_NHM_SETTING 0
-#define RESTORE_DEFAULT_NHM_SETTING 1
-#define ACS_NHM_SETTING 2
-
-struct acs_info {
-	bool is_force_acs_result;
-	u8 clean_channel_2g;
-	u8 clean_channel_5g;
-	/* channel_info[1]: channel score, channel_info[2]:channel_scan_times */
-	u16 channel_info_2g[2][ODM_MAX_CHANNEL_2G];
-	u16 channel_info_5g[2][ODM_MAX_CHANNEL_5G];
-};
-
-void odm_auto_channel_select_init(void *dm_void);
-
-void odm_auto_channel_select_reset(void *dm_void);
-
-void odm_auto_channel_select(void *dm_void, u8 channel);
-
-u8 odm_get_auto_channel_select_result(void *dm_void, u8 band);
-
-#endif /* #ifndef	__PHYDMACS_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/phydm_adaptivity.c b/drivers/staging/rtlwifi/phydm/phydm_adaptivity.c
deleted file mode 100644
index 58ec399..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_adaptivity.c
+++ /dev/null
@@ -1,930 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-void phydm_check_adaptivity(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct adaptivity_statistics *adaptivity =
-		(struct adaptivity_statistics *)phydm_get_structure(
-			dm, PHYDM_ADAPTIVITY);
-
-	if (dm->support_ability & ODM_BB_ADAPTIVITY) {
-		if (adaptivity->dynamic_link_adaptivity ||
-		    adaptivity->acs_for_adaptivity) {
-			if (dm->is_linked && !adaptivity->is_check) {
-				phydm_nhm_counter_statistics(dm);
-				phydm_check_environment(dm);
-			} else if (!dm->is_linked) {
-				adaptivity->is_check = false;
-			}
-		} else {
-			dm->adaptivity_enable = true;
-
-			if (dm->support_ic_type & (ODM_IC_11AC_GAIN_IDX_EDCCA |
-						   ODM_IC_11N_GAIN_IDX_EDCCA))
-				dm->adaptivity_flag = false;
-			else
-				dm->adaptivity_flag = true;
-		}
-	} else {
-		dm->adaptivity_enable = false;
-		dm->adaptivity_flag = false;
-	}
-}
-
-void phydm_nhm_counter_statistics_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		/*PHY parameters initialize for n series*/
-
-		/*0x894[31:16]=0x0xC350
-		 *Time duration for NHM unit: us, 0xc350=200ms
-		 */
-		odm_write_2byte(dm, ODM_REG_CCX_PERIOD_11N + 2, 0xC350);
-		/*0x890[31:16]=0xffff		th_9, th_10*/
-		odm_write_2byte(dm, ODM_REG_NHM_TH9_TH10_11N + 2, 0xffff);
-		/*0x898=0xffffff52		th_3, th_2, th_1, th_0*/
-		odm_write_4byte(dm, ODM_REG_NHM_TH3_TO_TH0_11N, 0xffffff50);
-		/*0x89c=0xffffffff		th_7, th_6, th_5, th_4*/
-		odm_write_4byte(dm, ODM_REG_NHM_TH7_TO_TH4_11N, 0xffffffff);
-		/*0xe28[7:0]=0xff		th_8*/
-		odm_set_bb_reg(dm, ODM_REG_FPGA0_IQK_11N, MASKBYTE0, 0xff);
-		/*0x890[10:8]=1		ignoreCCA ignore PHYTXON enable CCX*/
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N,
-			       BIT(10) | BIT(9) | BIT(8), 0x1);
-		/*0xc0c[7]=1			max power among all RX ants*/
-		odm_set_bb_reg(dm, ODM_REG_OFDM_FA_RSTC_11N, BIT(7), 0x1);
-	} else if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		/*PHY parameters initialize for ac series*/
-
-		odm_write_2byte(dm, ODM_REG_CCX_PERIOD_11AC + 2, 0xC350);
-		/*0x994[31:16]=0xffff		th_9, th_10*/
-		odm_write_2byte(dm, ODM_REG_NHM_TH9_TH10_11AC + 2, 0xffff);
-		/*0x998=0xffffff52		th_3, th_2, th_1, th_0*/
-		odm_write_4byte(dm, ODM_REG_NHM_TH3_TO_TH0_11AC, 0xffffff50);
-		/*0x99c=0xffffffff		th_7, th_6, th_5, th_4*/
-		odm_write_4byte(dm, ODM_REG_NHM_TH7_TO_TH4_11AC, 0xffffffff);
-		/*0x9a0[7:0]=0xff		th_8*/
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH8_11AC, MASKBYTE0, 0xff);
-		/*0x994[10:8]=1		ignoreCCA ignore PHYTXON enable CCX*/
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC,
-			       BIT(8) | BIT(9) | BIT(10), 0x1);
-		/*0x9e8[7]=1			max power among all RX ants*/
-		odm_set_bb_reg(dm, ODM_REG_NHM_9E8_11AC, BIT(0), 0x1);
-	}
-}
-
-void phydm_nhm_counter_statistics(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (!(dm->support_ability & ODM_BB_NHM_CNT))
-		return;
-
-	/*Get NHM report*/
-	phydm_get_nhm_counter_statistics(dm);
-
-	/*Reset NHM counter*/
-	phydm_nhm_counter_statistics_reset(dm);
-}
-
-void phydm_get_nhm_counter_statistics(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 value32 = 0;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		value32 = odm_get_bb_reg(dm, ODM_REG_NHM_CNT_11AC, MASKDWORD);
-	else if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		value32 = odm_get_bb_reg(dm, ODM_REG_NHM_CNT_11N, MASKDWORD);
-
-	dm->nhm_cnt_0 = (u8)(value32 & MASKBYTE0);
-	dm->nhm_cnt_1 = (u8)((value32 & MASKBYTE1) >> 8);
-}
-
-void phydm_nhm_counter_statistics_reset(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, BIT(1), 0);
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, BIT(1), 1);
-	} else if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(1), 0);
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(1), 1);
-	}
-}
-
-void phydm_set_edcca_threshold(void *dm_void, s8 H2L, s8 L2H)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		odm_set_bb_reg(dm, REG_OFDM_0_ECCA_THRESHOLD,
-			       MASKBYTE2 | MASKBYTE0,
-			       (u32)((u8)L2H | (u8)H2L << 16));
-	else if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		odm_set_bb_reg(dm, REG_FPGA0_XB_LSSI_READ_BACK, MASKLWORD,
-			       (u16)((u8)L2H | (u8)H2L << 8));
-}
-
-static void phydm_set_lna(void *dm_void, enum phydm_set_lna type)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & (ODM_RTL8188E | ODM_RTL8192E)) {
-		if (type == phydm_disable_lna) {
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x1);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x30, 0xfffff,
-				       0x18000); /*select Rx mode*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x31, 0xfffff,
-				       0x0000f);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x32, 0xfffff,
-				       0x37f82); /*disable LNA*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x0);
-			if (dm->rf_type > ODM_1T1R) {
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xef, 0x80000,
-					       0x1);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x30, 0xfffff,
-					       0x18000);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x31, 0xfffff,
-					       0x0000f);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x32, 0xfffff,
-					       0x37f82);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xef, 0x80000,
-					       0x0);
-			}
-		} else if (type == phydm_enable_lna) {
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x1);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x30, 0xfffff,
-				       0x18000); /*select Rx mode*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x31, 0xfffff,
-				       0x0000f);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x32, 0xfffff,
-				       0x77f82); /*back to normal*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x0);
-			if (dm->rf_type > ODM_1T1R) {
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xef, 0x80000,
-					       0x1);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x30, 0xfffff,
-					       0x18000);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x31, 0xfffff,
-					       0x0000f);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x32, 0xfffff,
-					       0x77f82);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xef, 0x80000,
-					       0x0);
-			}
-		}
-	} else if (dm->support_ic_type & ODM_RTL8723B) {
-		if (type == phydm_disable_lna) {
-			/*S0*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x1);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x30, 0xfffff,
-				       0x18000); /*select Rx mode*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x31, 0xfffff,
-				       0x0001f);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x32, 0xfffff,
-				       0xe6137); /*disable LNA*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x0);
-			/*S1*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xed, 0x00020, 0x1);
-			odm_set_rf_reg(
-				dm, ODM_RF_PATH_A, 0x43, 0xfffff,
-				0x3008d); /*select Rx mode and disable LNA*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xed, 0x00020, 0x0);
-		} else if (type == phydm_enable_lna) {
-			/*S0*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x1);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x30, 0xfffff,
-				       0x18000); /*select Rx mode*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x31, 0xfffff,
-				       0x0001f);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x32, 0xfffff,
-				       0xe6177); /*disable LNA*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x0);
-			/*S1*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xed, 0x00020, 0x1);
-			odm_set_rf_reg(
-				dm, ODM_RF_PATH_A, 0x43, 0xfffff,
-				0x300bd); /*select Rx mode and disable LNA*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xed, 0x00020, 0x0);
-		}
-
-	} else if (dm->support_ic_type & ODM_RTL8812) {
-		if (type == phydm_disable_lna) {
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x1);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x30, 0xfffff,
-				       0x18000); /*select Rx mode*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x31, 0xfffff,
-				       0x3f7ff);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x32, 0xfffff,
-				       0xc22bf); /*disable LNA*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x0);
-			if (dm->rf_type > ODM_1T1R) {
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xef, 0x80000,
-					       0x1);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x30, 0xfffff,
-					       0x18000); /*select Rx mode*/
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x31, 0xfffff,
-					       0x3f7ff);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x32, 0xfffff,
-					       0xc22bf); /*disable LNA*/
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xef, 0x80000,
-					       0x0);
-			}
-		} else if (type == phydm_enable_lna) {
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x1);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x30, 0xfffff,
-				       0x18000); /*select Rx mode*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x31, 0xfffff,
-				       0x3f7ff);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x32, 0xfffff,
-				       0xc26bf); /*disable LNA*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x0);
-			if (dm->rf_type > ODM_1T1R) {
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xef, 0x80000,
-					       0x1);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x30, 0xfffff,
-					       0x18000); /*select Rx mode*/
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x31, 0xfffff,
-					       0x3f7ff);
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x32, 0xfffff,
-					       0xc26bf); /*disable LNA*/
-				odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xef, 0x80000,
-					       0x0);
-			}
-		}
-	} else if (dm->support_ic_type & (ODM_RTL8821 | ODM_RTL8881A)) {
-		if (type == phydm_disable_lna) {
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x1);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x30, 0xfffff,
-				       0x18000); /*select Rx mode*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x31, 0xfffff,
-				       0x0002f);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x32, 0xfffff,
-				       0xfb09b); /*disable LNA*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x0);
-		} else if (type == phydm_enable_lna) {
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x1);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x30, 0xfffff,
-				       0x18000); /*select Rx mode*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x31, 0xfffff,
-				       0x0002f);
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x32, 0xfffff,
-				       0xfb0bb); /*disable LNA*/
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, 0x80000, 0x0);
-		}
-	}
-}
-
-void phydm_set_trx_mux(void *dm_void, enum phydm_trx_mux_type tx_mode,
-		       enum phydm_trx_mux_type rx_mode)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		/*set TXmod to standby mode to remove outside noise affect*/
-		odm_set_bb_reg(dm, ODM_REG_CCK_RPT_FORMAT_11N,
-			       BIT(3) | BIT(2) | BIT(1), tx_mode);
-		/*set RXmod to standby mode to remove outside noise affect*/
-		odm_set_bb_reg(dm, ODM_REG_CCK_RPT_FORMAT_11N,
-			       BIT(22) | BIT(21) | BIT(20), rx_mode);
-		if (dm->rf_type > ODM_1T1R) {
-			/*set TXmod to standby mode to rm outside noise affect*/
-			odm_set_bb_reg(dm, ODM_REG_CCK_RPT_FORMAT_11N_B,
-				       BIT(3) | BIT(2) | BIT(1), tx_mode);
-			/*set RXmod to standby mode to rm outside noise affect*/
-			odm_set_bb_reg(dm, ODM_REG_CCK_RPT_FORMAT_11N_B,
-				       BIT(22) | BIT(21) | BIT(20), rx_mode);
-		}
-	} else if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		/*set TXmod to standby mode to remove outside noise affect*/
-		odm_set_bb_reg(dm, ODM_REG_TRMUX_11AC,
-			       BIT(11) | BIT(10) | BIT(9) | BIT(8), tx_mode);
-		/*set RXmod to standby mode to remove outside noise affect*/
-		odm_set_bb_reg(dm, ODM_REG_TRMUX_11AC,
-			       BIT(7) | BIT(6) | BIT(5) | BIT(4), rx_mode);
-		if (dm->rf_type > ODM_1T1R) {
-			/*set TXmod to standby mode to rm outside noise affect*/
-			odm_set_bb_reg(dm, ODM_REG_TRMUX_11AC_B,
-				       BIT(11) | BIT(10) | BIT(9) | BIT(8),
-				       tx_mode);
-			/*set RXmod to standby mode to rm outside noise affect*/
-			odm_set_bb_reg(dm, ODM_REG_TRMUX_11AC_B,
-				       BIT(7) | BIT(6) | BIT(5) | BIT(4),
-				       rx_mode);
-		}
-	}
-}
-
-void phydm_mac_edcca_state(void *dm_void, enum phydm_mac_edcca_type state)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (state == phydm_ignore_edcca) {
-		/*ignore EDCCA	reg520[15]=1*/
-		odm_set_mac_reg(dm, REG_TX_PTCL_CTRL, BIT(15), 1);
-	} else { /*don't set MAC ignore EDCCA signal*/
-		/*don't ignore EDCCA	 reg520[15]=0*/
-		odm_set_mac_reg(dm, REG_TX_PTCL_CTRL, BIT(15), 0);
-	}
-	ODM_RT_TRACE(dm, PHYDM_COMP_ADAPTIVITY, "EDCCA enable state = %d\n",
-		     state);
-}
-
-bool phydm_cal_nhm_cnt(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u16 base = 0;
-
-	base = dm->nhm_cnt_0 + dm->nhm_cnt_1;
-
-	if (base != 0) {
-		dm->nhm_cnt_0 = ((dm->nhm_cnt_0) << 8) / base;
-		dm->nhm_cnt_1 = ((dm->nhm_cnt_1) << 8) / base;
-	}
-	if ((dm->nhm_cnt_0 - dm->nhm_cnt_1) >= 100)
-		return true; /*clean environment*/
-	else
-		return false; /*noisy environment*/
-}
-
-void phydm_check_environment(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct adaptivity_statistics *adaptivity =
-		(struct adaptivity_statistics *)phydm_get_structure(
-			dm, PHYDM_ADAPTIVITY);
-	bool is_clean_environment = false;
-
-	if (adaptivity->is_first_link) {
-		if (dm->support_ic_type &
-		    (ODM_IC_11AC_GAIN_IDX_EDCCA | ODM_IC_11N_GAIN_IDX_EDCCA))
-			dm->adaptivity_flag = false;
-		else
-			dm->adaptivity_flag = true;
-
-		adaptivity->is_first_link = false;
-		return;
-	}
-
-	if (adaptivity->nhm_wait < 3) { /*Start enter NHM after 4 nhm_wait*/
-		adaptivity->nhm_wait++;
-		phydm_nhm_counter_statistics(dm);
-		return;
-	}
-
-	phydm_nhm_counter_statistics(dm);
-	is_clean_environment = phydm_cal_nhm_cnt(dm);
-
-	if (is_clean_environment) {
-		dm->th_l2h_ini =
-			adaptivity->th_l2h_ini_backup; /*adaptivity mode*/
-		dm->th_edcca_hl_diff = adaptivity->th_edcca_hl_diff_backup;
-
-		dm->adaptivity_enable = true;
-
-		if (dm->support_ic_type &
-		    (ODM_IC_11AC_GAIN_IDX_EDCCA | ODM_IC_11N_GAIN_IDX_EDCCA))
-			dm->adaptivity_flag = false;
-		else
-			dm->adaptivity_flag = true;
-	} else {
-		if (!adaptivity->acs_for_adaptivity) {
-			dm->th_l2h_ini = dm->th_l2h_ini_mode2; /*mode2*/
-			dm->th_edcca_hl_diff = dm->th_edcca_hl_diff_mode2;
-
-			dm->adaptivity_flag = false;
-			dm->adaptivity_enable = false;
-		}
-	}
-
-	adaptivity->nhm_wait = 0;
-	adaptivity->is_first_link = true;
-	adaptivity->is_check = true;
-}
-
-void phydm_search_pwdb_lower_bound(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct adaptivity_statistics *adaptivity =
-		(struct adaptivity_statistics *)phydm_get_structure(
-			dm, PHYDM_ADAPTIVITY);
-	u32 value32 = 0, reg_value32 = 0;
-	u8 cnt, try_count = 0;
-	u8 tx_edcca1 = 0, tx_edcca0 = 0;
-	bool is_adjust = true;
-	s8 th_l2h_dmc, th_h2l_dmc, igi_target = 0x32;
-	s8 diff;
-	u8 IGI = adaptivity->igi_base + 30 + (u8)dm->th_l2h_ini -
-		 (u8)dm->th_edcca_hl_diff;
-
-	if (dm->support_ic_type & (ODM_RTL8723B | ODM_RTL8188E | ODM_RTL8192E |
-				   ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8881A)) {
-		phydm_set_lna(dm, phydm_disable_lna);
-	} else {
-		phydm_set_trx_mux(dm, phydm_standby_mode, phydm_standby_mode);
-		odm_pause_dig(dm, PHYDM_PAUSE, PHYDM_PAUSE_LEVEL_0, 0x7e);
-	}
-
-	diff = igi_target - (s8)IGI;
-	th_l2h_dmc = dm->th_l2h_ini + diff;
-	if (th_l2h_dmc > 10)
-		th_l2h_dmc = 10;
-	th_h2l_dmc = th_l2h_dmc - dm->th_edcca_hl_diff;
-
-	phydm_set_edcca_threshold(dm, th_h2l_dmc, th_l2h_dmc);
-	ODM_delay_ms(30);
-
-	while (is_adjust) {
-		if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-			odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x0);
-			reg_value32 =
-				odm_get_bb_reg(dm, ODM_REG_RPT_11N, MASKDWORD);
-		} else if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-			odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD,
-				       0x0);
-			reg_value32 =
-				odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		}
-		while (reg_value32 & BIT(3) && try_count < 3) {
-			ODM_delay_ms(3);
-			try_count = try_count + 1;
-			if (dm->support_ic_type & ODM_IC_11N_SERIES)
-				reg_value32 = odm_get_bb_reg(
-					dm, ODM_REG_RPT_11N, MASKDWORD);
-			else if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-				reg_value32 = odm_get_bb_reg(
-					dm, ODM_REG_RPT_11AC, MASKDWORD);
-		}
-		try_count = 0;
-
-		for (cnt = 0; cnt < 20; cnt++) {
-			if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-				odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11N,
-					       MASKDWORD, 0x208);
-				value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11N,
-							 MASKDWORD);
-			} else if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-				odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC,
-					       MASKDWORD, 0x209);
-				value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC,
-							 MASKDWORD);
-			}
-			if (value32 & BIT(30) &&
-			    (dm->support_ic_type &
-			     (ODM_RTL8723B | ODM_RTL8188E)))
-				tx_edcca1 = tx_edcca1 + 1;
-			else if (value32 & BIT(29))
-				tx_edcca1 = tx_edcca1 + 1;
-			else
-				tx_edcca0 = tx_edcca0 + 1;
-		}
-
-		if (tx_edcca1 > 1) {
-			IGI = IGI - 1;
-			th_l2h_dmc = th_l2h_dmc + 1;
-			if (th_l2h_dmc > 10)
-				th_l2h_dmc = 10;
-			th_h2l_dmc = th_l2h_dmc - dm->th_edcca_hl_diff;
-
-			phydm_set_edcca_threshold(dm, th_h2l_dmc, th_l2h_dmc);
-			if (th_l2h_dmc == 10) {
-				is_adjust = false;
-				adaptivity->h2l_lb = th_h2l_dmc;
-				adaptivity->l2h_lb = th_l2h_dmc;
-				dm->adaptivity_igi_upper = IGI;
-			}
-
-			tx_edcca1 = 0;
-			tx_edcca0 = 0;
-
-		} else {
-			is_adjust = false;
-			adaptivity->h2l_lb = th_h2l_dmc;
-			adaptivity->l2h_lb = th_l2h_dmc;
-			dm->adaptivity_igi_upper = IGI;
-			tx_edcca1 = 0;
-			tx_edcca0 = 0;
-		}
-	}
-
-	dm->adaptivity_igi_upper = dm->adaptivity_igi_upper - dm->dc_backoff;
-	adaptivity->h2l_lb = adaptivity->h2l_lb + dm->dc_backoff;
-	adaptivity->l2h_lb = adaptivity->l2h_lb + dm->dc_backoff;
-
-	if (dm->support_ic_type & (ODM_RTL8723B | ODM_RTL8188E | ODM_RTL8192E |
-				   ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8881A)) {
-		phydm_set_lna(dm, phydm_enable_lna);
-	} else {
-		phydm_set_trx_mux(dm, phydm_tx_mode, phydm_rx_mode);
-		odm_pause_dig(dm, PHYDM_RESUME, PHYDM_PAUSE_LEVEL_0, NONE);
-	}
-
-	phydm_set_edcca_threshold(dm, 0x7f, 0x7f); /*resume to no link state*/
-}
-
-static bool phydm_re_search_condition(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 adaptivity_igi_upper;
-	u8 count = 0;
-
-	adaptivity_igi_upper = dm->adaptivity_igi_upper + dm->dc_backoff;
-
-	if (adaptivity_igi_upper <= 0x26 && count < 3) {
-		count = count + 1;
-		return true;
-	}
-
-	return false;
-}
-
-void phydm_adaptivity_info_init(void *dm_void, enum phydm_adapinfo cmn_info,
-				u32 value)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct adaptivity_statistics *adaptivity =
-		(struct adaptivity_statistics *)phydm_get_structure(
-			dm, PHYDM_ADAPTIVITY);
-
-	switch (cmn_info) {
-	case PHYDM_ADAPINFO_CARRIER_SENSE_ENABLE:
-		dm->carrier_sense_enable = (bool)value;
-		break;
-
-	case PHYDM_ADAPINFO_DCBACKOFF:
-		dm->dc_backoff = (u8)value;
-		break;
-
-	case PHYDM_ADAPINFO_DYNAMICLINKADAPTIVITY:
-		adaptivity->dynamic_link_adaptivity = (bool)value;
-		break;
-
-	case PHYDM_ADAPINFO_TH_L2H_INI:
-		dm->th_l2h_ini = (s8)value;
-		break;
-
-	case PHYDM_ADAPINFO_TH_EDCCA_HL_DIFF:
-		dm->th_edcca_hl_diff = (s8)value;
-		break;
-
-	case PHYDM_ADAPINFO_AP_NUM_TH:
-		adaptivity->ap_num_th = (u8)value;
-		break;
-
-	default:
-		break;
-	}
-}
-
-void phydm_adaptivity_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct adaptivity_statistics *adaptivity =
-		(struct adaptivity_statistics *)phydm_get_structure(
-			dm, PHYDM_ADAPTIVITY);
-	s8 igi_target = 0x32;
-
-	if (!dm->carrier_sense_enable) {
-		if (dm->th_l2h_ini == 0)
-			dm->th_l2h_ini = 0xf5;
-	} else {
-		dm->th_l2h_ini = 0xa;
-	}
-
-	if (dm->th_edcca_hl_diff == 0)
-		dm->th_edcca_hl_diff = 7;
-	if (dm->wifi_test || dm->mp_mode) {
-		/*even no adaptivity, we still enable EDCCA, AP use mib ctrl*/
-		dm->edcca_enable = false;
-	} else {
-		dm->edcca_enable = true;
-	}
-
-	dm->adaptivity_igi_upper = 0;
-	dm->adaptivity_enable =
-		false; /*use this flag to decide enable or disable*/
-
-	dm->th_l2h_ini_mode2 = 20;
-	dm->th_edcca_hl_diff_mode2 = 8;
-	adaptivity->th_l2h_ini_backup = dm->th_l2h_ini;
-	adaptivity->th_edcca_hl_diff_backup = dm->th_edcca_hl_diff;
-
-	adaptivity->igi_base = 0x32;
-	adaptivity->igi_target = 0x1c;
-	adaptivity->h2l_lb = 0;
-	adaptivity->l2h_lb = 0;
-	adaptivity->nhm_wait = 0;
-	adaptivity->is_check = false;
-	adaptivity->is_first_link = true;
-	adaptivity->adajust_igi_level = 0;
-	adaptivity->is_stop_edcca = false;
-	adaptivity->backup_h2l = 0;
-	adaptivity->backup_l2h = 0;
-
-	phydm_mac_edcca_state(dm, phydm_dont_ignore_edcca);
-
-	/*Search pwdB lower bound*/
-	if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x208);
-	else if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x209);
-
-	if (dm->support_ic_type & ODM_IC_11N_GAIN_IDX_EDCCA) {
-		if (dm->support_ic_type & ODM_RTL8197F) {
-			/*set to page B1*/
-			odm_set_bb_reg(dm, ODM_REG_PAGE_B1_97F, BIT(30), 0x1);
-			/*0:rx_dfir, 1: dcnf_out, 2 :rx_iq, 3: rx_nbi_nf_out*/
-			odm_set_bb_reg(dm, ODM_REG_EDCCA_DCNF_97F,
-				       BIT(27) | BIT(26), 0x1);
-			odm_set_bb_reg(dm, ODM_REG_PAGE_B1_97F, BIT(30), 0x0);
-		} else {
-			/*0:rx_dfir, 1: dcnf_out, 2 :rx_iq, 3: rx_nbi_nf_out*/
-			odm_set_bb_reg(dm, ODM_REG_EDCCA_DCNF_11N,
-				       BIT(21) | BIT(20), 0x1);
-		}
-	}
-	/*8814a no need to find pwdB lower bound, maybe*/
-	if (dm->support_ic_type & ODM_IC_11AC_GAIN_IDX_EDCCA) {
-		/*0:rx_dfir, 1: dcnf_out, 2 :rx_iq, 3: rx_nbi_nf_out*/
-		odm_set_bb_reg(dm, ODM_REG_ACBB_EDCCA_ENHANCE,
-			       BIT(29) | BIT(28), 0x1);
-	}
-
-	if (!(dm->support_ic_type &
-	      (ODM_IC_11AC_GAIN_IDX_EDCCA | ODM_IC_11N_GAIN_IDX_EDCCA))) {
-		phydm_search_pwdb_lower_bound(dm);
-		if (phydm_re_search_condition(dm))
-			phydm_search_pwdb_lower_bound(dm);
-	}
-
-	/*we need to consider PwdB upper bound for 8814 later IC*/
-	adaptivity->adajust_igi_level =
-		(u8)((dm->th_l2h_ini + igi_target) - pwdb_upper_bound +
-		     dfir_loss); /*IGI = L2H - PwdB - dfir_loss*/
-
-	ODM_RT_TRACE(
-		dm, PHYDM_COMP_ADAPTIVITY,
-		"th_l2h_ini = 0x%x, th_edcca_hl_diff = 0x%x, adaptivity->adajust_igi_level = 0x%x\n",
-		dm->th_l2h_ini, dm->th_edcca_hl_diff,
-		adaptivity->adajust_igi_level);
-
-	/*Check this later on Windows*/
-	/*phydm_set_edcca_threshold_api(dm, dig_tab->cur_ig_value);*/
-}
-
-void phydm_adaptivity(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	u8 IGI = dig_tab->cur_ig_value;
-	s8 th_l2h_dmc, th_h2l_dmc;
-	s8 diff = 0, igi_target;
-	struct adaptivity_statistics *adaptivity =
-		(struct adaptivity_statistics *)phydm_get_structure(
-			dm, PHYDM_ADAPTIVITY);
-
-	if (!dm->edcca_enable || adaptivity->is_stop_edcca) {
-		ODM_RT_TRACE(dm, PHYDM_COMP_ADAPTIVITY, "Disable EDCCA!!!\n");
-		return;
-	}
-
-	if (!(dm->support_ability & ODM_BB_ADAPTIVITY)) {
-		ODM_RT_TRACE(dm, PHYDM_COMP_ADAPTIVITY,
-			     "adaptivity disable, enable EDCCA mode!!!\n");
-		dm->th_l2h_ini = dm->th_l2h_ini_mode2;
-		dm->th_edcca_hl_diff = dm->th_edcca_hl_diff_mode2;
-	}
-
-	ODM_RT_TRACE(dm, PHYDM_COMP_ADAPTIVITY, "%s() =====>\n", __func__);
-	ODM_RT_TRACE(dm, PHYDM_COMP_ADAPTIVITY,
-		     "igi_base=0x%x, th_l2h_ini = %d, th_edcca_hl_diff = %d\n",
-		     adaptivity->igi_base, dm->th_l2h_ini,
-		     dm->th_edcca_hl_diff);
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		/*fix AC series when enable EDCCA hang issue*/
-		odm_set_bb_reg(dm, 0x800, BIT(10), 1); /*ADC_mask disable*/
-		odm_set_bb_reg(dm, 0x800, BIT(10), 0); /*ADC_mask enable*/
-	}
-	if (*dm->band_width == ODM_BW20M) /*CHANNEL_WIDTH_20*/
-		igi_target = adaptivity->igi_base;
-	else if (*dm->band_width == ODM_BW40M)
-		igi_target = adaptivity->igi_base + 2;
-	else if (*dm->band_width == ODM_BW80M)
-		igi_target = adaptivity->igi_base + 2;
-	else
-		igi_target = adaptivity->igi_base;
-	adaptivity->igi_target = (u8)igi_target;
-
-	ODM_RT_TRACE(
-		dm, PHYDM_COMP_ADAPTIVITY,
-		"band_width=%s, igi_target=0x%x, dynamic_link_adaptivity = %d, acs_for_adaptivity = %d\n",
-		(*dm->band_width == ODM_BW80M) ?
-			"80M" :
-			((*dm->band_width == ODM_BW40M) ? "40M" : "20M"),
-		igi_target, adaptivity->dynamic_link_adaptivity,
-		adaptivity->acs_for_adaptivity);
-	ODM_RT_TRACE(
-		dm, PHYDM_COMP_ADAPTIVITY,
-		"rssi_min = %d, adaptivity->adajust_igi_level= 0x%x, adaptivity_flag = %d, adaptivity_enable = %d\n",
-		dm->rssi_min, adaptivity->adajust_igi_level,
-		dm->adaptivity_flag, dm->adaptivity_enable);
-
-	if (adaptivity->dynamic_link_adaptivity && !dm->is_linked &&
-	    !dm->adaptivity_enable) {
-		phydm_set_edcca_threshold(dm, 0x7f, 0x7f);
-		ODM_RT_TRACE(
-			dm, PHYDM_COMP_ADAPTIVITY,
-			"In DynamicLink mode(noisy) and No link, Turn off EDCCA!!\n");
-		return;
-	}
-
-	if (dm->support_ic_type &
-	    (ODM_IC_11AC_GAIN_IDX_EDCCA | ODM_IC_11N_GAIN_IDX_EDCCA)) {
-		if (adaptivity->adajust_igi_level > IGI &&
-		    dm->adaptivity_enable)
-			diff = adaptivity->adajust_igi_level - IGI;
-
-		th_l2h_dmc = dm->th_l2h_ini - diff + igi_target;
-		th_h2l_dmc = th_l2h_dmc - dm->th_edcca_hl_diff;
-	} else {
-		diff = igi_target - (s8)IGI;
-		th_l2h_dmc = dm->th_l2h_ini + diff;
-		if (th_l2h_dmc > 10 && dm->adaptivity_enable)
-			th_l2h_dmc = 10;
-
-		th_h2l_dmc = th_l2h_dmc - dm->th_edcca_hl_diff;
-
-		/*replace lower bound to prevent EDCCA always equal 1*/
-		if (th_h2l_dmc < adaptivity->h2l_lb)
-			th_h2l_dmc = adaptivity->h2l_lb;
-		if (th_l2h_dmc < adaptivity->l2h_lb)
-			th_l2h_dmc = adaptivity->l2h_lb;
-	}
-	ODM_RT_TRACE(dm, PHYDM_COMP_ADAPTIVITY,
-		     "IGI=0x%x, th_l2h_dmc = %d, th_h2l_dmc = %d\n", IGI,
-		     th_l2h_dmc, th_h2l_dmc);
-	ODM_RT_TRACE(
-		dm, PHYDM_COMP_ADAPTIVITY,
-		"adaptivity_igi_upper=0x%x, h2l_lb = 0x%x, l2h_lb = 0x%x\n",
-		dm->adaptivity_igi_upper, adaptivity->h2l_lb,
-		adaptivity->l2h_lb);
-
-	phydm_set_edcca_threshold(dm, th_h2l_dmc, th_l2h_dmc);
-
-	if (dm->adaptivity_enable)
-		odm_set_mac_reg(dm, REG_RD_CTRL, BIT(11), 1);
-}
-
-/*This is for solving USB can't Tx problem due to USB3.0 interference in 2.4G*/
-void phydm_pause_edcca(void *dm_void, bool is_pasue_edcca)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct adaptivity_statistics *adaptivity =
-		(struct adaptivity_statistics *)phydm_get_structure(
-			dm, PHYDM_ADAPTIVITY);
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	u8 IGI = dig_tab->cur_ig_value;
-	s8 diff = 0;
-
-	if (is_pasue_edcca) {
-		adaptivity->is_stop_edcca = true;
-
-		if (dm->support_ic_type &
-		    (ODM_IC_11AC_GAIN_IDX_EDCCA | ODM_IC_11N_GAIN_IDX_EDCCA)) {
-			if (adaptivity->adajust_igi_level > IGI)
-				diff = adaptivity->adajust_igi_level - IGI;
-
-			adaptivity->backup_l2h =
-				dm->th_l2h_ini - diff + adaptivity->igi_target;
-			adaptivity->backup_h2l =
-				adaptivity->backup_l2h - dm->th_edcca_hl_diff;
-		} else {
-			diff = adaptivity->igi_target - (s8)IGI;
-			adaptivity->backup_l2h = dm->th_l2h_ini + diff;
-			if (adaptivity->backup_l2h > 10)
-				adaptivity->backup_l2h = 10;
-
-			adaptivity->backup_h2l =
-				adaptivity->backup_l2h - dm->th_edcca_hl_diff;
-
-			/*replace lower bound to prevent EDCCA always equal 1*/
-			if (adaptivity->backup_h2l < adaptivity->h2l_lb)
-				adaptivity->backup_h2l = adaptivity->h2l_lb;
-			if (adaptivity->backup_l2h < adaptivity->l2h_lb)
-				adaptivity->backup_l2h = adaptivity->l2h_lb;
-		}
-		ODM_RT_TRACE(
-			dm, PHYDM_COMP_ADAPTIVITY,
-			"pauseEDCCA : L2Hbak = 0x%x, H2Lbak = 0x%x, IGI = 0x%x\n",
-			adaptivity->backup_l2h, adaptivity->backup_h2l, IGI);
-
-		/*Disable EDCCA*/
-		phydm_pause_edcca_work_item_callback(dm);
-
-	} else {
-		adaptivity->is_stop_edcca = false;
-		ODM_RT_TRACE(
-			dm, PHYDM_COMP_ADAPTIVITY,
-			"resumeEDCCA : L2Hbak = 0x%x, H2Lbak = 0x%x, IGI = 0x%x\n",
-			adaptivity->backup_l2h, adaptivity->backup_h2l, IGI);
-		/*Resume EDCCA*/
-		phydm_resume_edcca_work_item_callback(dm);
-	}
-}
-
-void phydm_pause_edcca_work_item_callback(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		odm_set_bb_reg(dm, REG_OFDM_0_ECCA_THRESHOLD,
-			       MASKBYTE2 | MASKBYTE0, (u32)(0x7f | 0x7f << 16));
-	else if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		odm_set_bb_reg(dm, REG_FPGA0_XB_LSSI_READ_BACK, MASKLWORD,
-			       (u16)(0x7f | 0x7f << 8));
-}
-
-void phydm_resume_edcca_work_item_callback(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct adaptivity_statistics *adaptivity =
-		(struct adaptivity_statistics *)phydm_get_structure(
-			dm, PHYDM_ADAPTIVITY);
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		odm_set_bb_reg(dm, REG_OFDM_0_ECCA_THRESHOLD,
-			       MASKBYTE2 | MASKBYTE0,
-			       (u32)((u8)adaptivity->backup_l2h |
-				     (u8)adaptivity->backup_h2l << 16));
-	else if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		odm_set_bb_reg(dm, REG_FPGA0_XB_LSSI_READ_BACK, MASKLWORD,
-			       (u16)((u8)adaptivity->backup_l2h |
-				     (u8)adaptivity->backup_h2l << 8));
-}
-
-void phydm_set_edcca_threshold_api(void *dm_void, u8 IGI)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct adaptivity_statistics *adaptivity =
-		(struct adaptivity_statistics *)phydm_get_structure(
-			dm, PHYDM_ADAPTIVITY);
-	s8 th_l2h_dmc, th_h2l_dmc;
-	s8 diff = 0, igi_target = 0x32;
-
-	if (dm->support_ability & ODM_BB_ADAPTIVITY) {
-		if (dm->support_ic_type &
-		    (ODM_IC_11AC_GAIN_IDX_EDCCA | ODM_IC_11N_GAIN_IDX_EDCCA)) {
-			if (adaptivity->adajust_igi_level > IGI)
-				diff = adaptivity->adajust_igi_level - IGI;
-
-			th_l2h_dmc = dm->th_l2h_ini - diff + igi_target;
-			th_h2l_dmc = th_l2h_dmc - dm->th_edcca_hl_diff;
-		} else {
-			diff = igi_target - (s8)IGI;
-			th_l2h_dmc = dm->th_l2h_ini + diff;
-			if (th_l2h_dmc > 10)
-				th_l2h_dmc = 10;
-
-			th_h2l_dmc = th_l2h_dmc - dm->th_edcca_hl_diff;
-
-			/*replace lower bound to prevent EDCCA always equal 1*/
-			if (th_h2l_dmc < adaptivity->h2l_lb)
-				th_h2l_dmc = adaptivity->h2l_lb;
-			if (th_l2h_dmc < adaptivity->l2h_lb)
-				th_l2h_dmc = adaptivity->l2h_lb;
-		}
-		ODM_RT_TRACE(
-			dm, PHYDM_COMP_ADAPTIVITY,
-			"API :IGI=0x%x, th_l2h_dmc = %d, th_h2l_dmc = %d\n",
-			IGI, th_l2h_dmc, th_h2l_dmc);
-		ODM_RT_TRACE(
-			dm, PHYDM_COMP_ADAPTIVITY,
-			"API :adaptivity_igi_upper=0x%x, h2l_lb = 0x%x, l2h_lb = 0x%x\n",
-			dm->adaptivity_igi_upper, adaptivity->h2l_lb,
-			adaptivity->l2h_lb);
-
-		phydm_set_edcca_threshold(dm, th_h2l_dmc, th_l2h_dmc);
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_adaptivity.h b/drivers/staging/rtlwifi/phydm/phydm_adaptivity.h
deleted file mode 100644
index a88c34c..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_adaptivity.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMADAPTIVITY_H__
-#define __PHYDMADAPTIVITY_H__
-
-/*20160902 changed by Kevin, refine method for searching pwdb lower bound*/
-#define ADAPTIVITY_VERSION "9.3.5"
-
-#define pwdb_upper_bound 7
-#define dfir_loss 5
-
-enum phydm_adapinfo {
-	PHYDM_ADAPINFO_CARRIER_SENSE_ENABLE = 0,
-	PHYDM_ADAPINFO_DCBACKOFF,
-	PHYDM_ADAPINFO_DYNAMICLINKADAPTIVITY,
-	PHYDM_ADAPINFO_TH_L2H_INI,
-	PHYDM_ADAPINFO_TH_EDCCA_HL_DIFF,
-	PHYDM_ADAPINFO_AP_NUM_TH
-
-};
-
-enum phydm_set_lna {
-	phydm_disable_lna = 0,
-	phydm_enable_lna = 1,
-};
-
-enum phydm_trx_mux_type {
-	phydm_shutdown = 0,
-	phydm_standby_mode = 1,
-	phydm_tx_mode = 2,
-	phydm_rx_mode = 3
-};
-
-enum phydm_mac_edcca_type {
-	phydm_ignore_edcca = 0,
-	phydm_dont_ignore_edcca = 1
-};
-
-struct adaptivity_statistics {
-	s8 th_l2h_ini_backup;
-	s8 th_edcca_hl_diff_backup;
-	s8 igi_base;
-	u8 igi_target;
-	u8 nhm_wait;
-	s8 h2l_lb;
-	s8 l2h_lb;
-	bool is_first_link;
-	bool is_check;
-	bool dynamic_link_adaptivity;
-	u8 ap_num_th;
-	u8 adajust_igi_level;
-	bool acs_for_adaptivity;
-	s8 backup_l2h;
-	s8 backup_h2l;
-	bool is_stop_edcca;
-};
-
-void phydm_pause_edcca(void *dm_void, bool is_pasue_edcca);
-
-void phydm_check_adaptivity(void *dm_void);
-
-void phydm_check_environment(void *dm_void);
-
-void phydm_nhm_counter_statistics_init(void *dm_void);
-
-void phydm_nhm_counter_statistics(void *dm_void);
-
-void phydm_nhm_counter_statistics_reset(void *dm_void);
-
-void phydm_get_nhm_counter_statistics(void *dm_void);
-
-void phydm_mac_edcca_state(void *dm_void, enum phydm_mac_edcca_type state);
-
-void phydm_set_edcca_threshold(void *dm_void, s8 H2L, s8 L2H);
-
-void phydm_set_trx_mux(void *dm_void, enum phydm_trx_mux_type tx_mode,
-		       enum phydm_trx_mux_type rx_mode);
-
-bool phydm_cal_nhm_cnt(void *dm_void);
-
-void phydm_search_pwdb_lower_bound(void *dm_void);
-
-void phydm_adaptivity_info_init(void *dm_void, enum phydm_adapinfo cmn_info,
-				u32 value);
-
-void phydm_adaptivity_init(void *dm_void);
-
-void phydm_adaptivity(void *dm_void);
-
-void phydm_set_edcca_threshold_api(void *dm_void, u8 IGI);
-
-void phydm_pause_edcca_work_item_callback(void *dm_void);
-
-void phydm_resume_edcca_work_item_callback(void *dm_void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_adc_sampling.c b/drivers/staging/rtlwifi/phydm/phydm_adc_sampling.c
deleted file mode 100644
index d3e9ae3..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_adc_sampling.c
+++ /dev/null
@@ -1,616 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-static bool phydm_la_buffer_allocate(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	struct rt_adcsmp_string *adc_smp_buf = &adc_smp->adc_smp_buf;
-	bool ret = false;
-
-	ODM_RT_TRACE(dm, ODM_COMP_UNCOND, "[LA mode BufferAllocate]\n");
-
-	if (adc_smp_buf->length == 0) {
-		odm_allocate_memory(dm, (void **)&adc_smp_buf->octet,
-				    adc_smp_buf->buffer_size);
-		if (!adc_smp_buf->octet) {
-			ret = false;
-		} else {
-			adc_smp_buf->length = adc_smp_buf->buffer_size;
-			ret = true;
-		}
-	}
-
-	return ret;
-}
-
-static void phydm_la_get_tx_pkt_buf(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	struct rt_adcsmp_string *adc_smp_buf = &adc_smp->adc_smp_buf;
-	u32 i = 0, value32, data_l = 0, data_h = 0;
-	u32 addr, finish_addr;
-	u32 end_addr = (adc_smp_buf->start_pos + adc_smp_buf->buffer_size) -
-		       1; /*end_addr = 0x3ffff;*/
-	bool is_round_up;
-	static u32 page = 0xFF;
-	u32 smp_cnt = 0, smp_number = 0, addr_8byte = 0;
-
-	odm_memory_set(dm, adc_smp_buf->octet, 0, adc_smp_buf->length);
-	odm_write_1byte(dm, 0x0106, 0x69);
-
-	ODM_RT_TRACE(dm, ODM_COMP_UNCOND, "GetTxPktBuf\n");
-
-	value32 = odm_read_4byte(dm, 0x7c0);
-	is_round_up = (bool)((value32 & BIT(31)) >> 31);
-	/*Reg7C0[30:16]: finish addr (unit: 8byte)*/
-	finish_addr = (value32 & 0x7FFF0000) >> 16;
-
-	if (is_round_up) {
-		addr = (finish_addr + 1) << 3;
-		ODM_RT_TRACE(
-			dm, ODM_COMP_UNCOND,
-			"is_round_up = ((%d)), finish_addr=((0x%x)), 0x7c0=((0x%x))\n",
-			is_round_up, finish_addr, value32);
-		/*Byte to 64Byte*/
-		smp_number = (adc_smp_buf->buffer_size) >> 3;
-	} else {
-		addr = adc_smp_buf->start_pos;
-
-		addr_8byte = addr >> 3;
-		if (addr_8byte > finish_addr)
-			smp_number = addr_8byte - finish_addr;
-		else
-			smp_number = finish_addr - addr_8byte;
-
-		ODM_RT_TRACE(
-			dm, ODM_COMP_UNCOND,
-			"is_round_up = ((%d)), finish_addr=((0x%x * 8Byte)), Start_Addr = ((0x%x * 8Byte)), smp_number = ((%d))\n",
-			is_round_up, finish_addr, addr_8byte, smp_number);
-	}
-
-	if (dm->support_ic_type & ODM_RTL8197F) {
-		/*64K byte*/
-		for (addr = 0x0, i = 0; addr < end_addr; addr += 8, i += 2) {
-			if ((addr & 0xfff) == 0)
-				odm_set_bb_reg(dm, 0x0140, MASKLWORD,
-					       0x780 + (addr >> 12));
-			data_l = odm_get_bb_reg(dm, 0x8000 + (addr & 0xfff),
-						MASKDWORD);
-			data_h = odm_get_bb_reg(dm, 0x8000 + (addr & 0xfff) + 4,
-						MASKDWORD);
-
-			ODM_RT_TRACE(dm, ODM_COMP_UNCOND, "%08x%08x\n", data_h,
-				     data_l);
-		}
-	} else {
-		while (addr != (finish_addr << 3)) {
-			if (page != (addr >> 12)) {
-				/*Reg140=0x780+(addr>>12),
-				 *addr=0x30~0x3F, total 16 pages
-				 */
-				page = addr >> 12;
-			}
-			odm_set_bb_reg(dm, 0x0140, MASKLWORD, 0x780 + page);
-
-			/*pDataL = 0x8000+(addr&0xfff);*/
-			data_l = odm_get_bb_reg(dm, 0x8000 + (addr & 0xfff),
-						MASKDWORD);
-			data_h = odm_get_bb_reg(dm, 0x8000 + (addr & 0xfff) + 4,
-						MASKDWORD);
-
-			adc_smp_buf->octet[i] = data_h;
-			adc_smp_buf->octet[i + 1] = data_l;
-
-			ODM_RT_TRACE(dm, ODM_COMP_UNCOND, "%08x%08x\n", data_h,
-				     data_l);
-
-			i = i + 2;
-
-			if ((addr + 8) >= end_addr)
-				addr = adc_smp_buf->start_pos;
-			else
-				addr = addr + 8;
-
-			smp_cnt++;
-			if (smp_cnt >= (smp_number - 1))
-				break;
-		}
-		ODM_RT_TRACE(dm, ODM_COMP_UNCOND, "smp_cnt = ((%d))\n",
-			     smp_cnt);
-	}
-}
-
-static void phydm_la_mode_set_mac_iq_dump(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	u32 reg_value;
-
-	odm_write_1byte(dm, 0x7c0, 0); /*clear all 0x7c0*/
-	odm_set_mac_reg(dm, 0x7c0, BIT(0), 1); /*Enable LA mode HW block*/
-
-	if (adc_smp->la_trig_mode == PHYDM_MAC_TRIG) {
-		adc_smp->is_bb_trigger = 0;
-		odm_set_mac_reg(dm, 0x7c0, BIT(2),
-				1); /*polling bit for MAC mode*/
-		odm_set_mac_reg(
-			dm, 0x7c0, BIT(4) | BIT(3),
-			adc_smp->la_trigger_edge); /*trigger mode for MAC*/
-
-		ODM_RT_TRACE(
-			dm, ODM_COMP_UNCOND,
-			"[MAC_trig] ref_mask = ((0x%x)), ref_value = ((0x%x)), dbg_port = ((0x%x))\n",
-			adc_smp->la_mac_ref_mask, adc_smp->la_trig_sig_sel,
-			adc_smp->la_dbg_port);
-		/*[Set MAC Debug Port]*/
-		odm_set_mac_reg(dm, 0xF4, BIT(16), 1);
-		odm_set_mac_reg(dm, 0x38, 0xff0000, adc_smp->la_dbg_port);
-		odm_set_mac_reg(dm, 0x7c4, MASKDWORD, adc_smp->la_mac_ref_mask);
-		odm_set_mac_reg(dm, 0x7c8, MASKDWORD, adc_smp->la_trig_sig_sel);
-
-	} else {
-		adc_smp->is_bb_trigger = 1;
-		odm_set_mac_reg(dm, 0x7c0, BIT(1),
-				1); /*polling bit for BB ADC mode*/
-
-		if (adc_smp->la_trig_mode == PHYDM_ADC_MAC_TRIG) {
-			odm_set_mac_reg(
-				dm, 0x7c0, BIT(3),
-				1); /*polling bit for MAC trigger event*/
-			odm_set_mac_reg(dm, 0x7c0, BIT(7) | BIT(6),
-					adc_smp->la_trig_sig_sel);
-
-			if (adc_smp->la_trig_sig_sel == ADCSMP_TRIG_REG)
-				odm_set_mac_reg(
-					dm, 0x7c0, BIT(5),
-					1); /* manual trigger 0x7C0[5] = 0->1*/
-		}
-	}
-
-	reg_value = odm_get_bb_reg(dm, 0x7c0, 0xff);
-	ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-		     "4. [Set MAC IQ dump] 0x7c0[7:0] = ((0x%x))\n", reg_value);
-}
-
-static void phydm_la_mode_set_dma_type(void *dm_void, u8 la_dma_type)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-		     "2. [LA mode DMA setting] Dma_type = ((%d))\n",
-		     la_dma_type);
-
-	if (dm->support_ic_type & ODM_N_ANTDIV_SUPPORT)
-		odm_set_bb_reg(dm, 0x9a0, 0xf00, la_dma_type); /*0x9A0[11:8]*/
-	else
-		odm_set_bb_reg(dm, odm_adc_trigger_jaguar2, 0xf00,
-			       la_dma_type); /*0x95C[11:8]*/
-}
-
-static void phydm_adc_smp_start(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	u8 tmp_u1b;
-	u8 while_cnt = 0;
-	u8 polling_ok = false, target_polling_bit;
-
-	phydm_la_mode_bb_setting(dm);
-	phydm_la_mode_set_dma_type(dm, adc_smp->la_dma_type);
-	phydm_la_mode_set_trigger_time(dm, adc_smp->la_trigger_time);
-
-	if (dm->support_ic_type & ODM_RTL8197F) {
-		odm_set_bb_reg(dm, 0xd00, BIT(26), 0x1);
-	} else { /*for 8814A and 8822B?*/
-		odm_write_1byte(dm, 0x198c, 0x7);
-		odm_write_1byte(dm, 0x8b4, 0x80);
-		/* odm_set_bb_reg(dm, 0x8b4, BIT(7), 1); */
-	}
-
-	phydm_la_mode_set_mac_iq_dump(dm);
-	/* return; */
-
-	target_polling_bit = (adc_smp->is_bb_trigger) ? BIT(1) : BIT(2);
-	do { /*Poll time always use 100ms, when it exceed 2s, break while loop*/
-		tmp_u1b = odm_read_1byte(dm, 0x7c0);
-
-		if (adc_smp->adc_smp_state != ADCSMP_STATE_SET) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_UNCOND,
-				"[state Error] adc_smp_state != ADCSMP_STATE_SET\n");
-			break;
-
-		} else if (tmp_u1b & target_polling_bit) {
-			ODM_delay_ms(100);
-			while_cnt = while_cnt + 1;
-			continue;
-		} else {
-			ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-				     "[LA Query OK] polling_bit=((0x%x))\n",
-				     target_polling_bit);
-			polling_ok = true;
-			if (dm->support_ic_type & ODM_RTL8197F)
-				odm_set_bb_reg(dm, 0x7c0, BIT(0), 0x0);
-			break;
-		}
-	} while (while_cnt < 20);
-
-	if (adc_smp->adc_smp_state == ADCSMP_STATE_SET) {
-		if (polling_ok)
-			phydm_la_get_tx_pkt_buf(dm);
-		else
-			ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-				     "[Polling timeout]\n");
-	}
-
-	if (adc_smp->adc_smp_state == ADCSMP_STATE_SET)
-		adc_smp->adc_smp_state = ADCSMP_STATE_QUERY;
-
-	ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-		     "[LA mode] LA_pattern_count = ((%d))\n",
-		     adc_smp->la_count);
-
-	adc_smp_stop(dm);
-
-	if (adc_smp->la_count == 0) {
-		ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-			     "LA Dump finished ---------->\n\n\n");
-		/**/
-	} else {
-		adc_smp->la_count--;
-		ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-			     "LA Dump more ---------->\n\n\n");
-		adc_smp_set(dm, adc_smp->la_trig_mode, adc_smp->la_trig_sig_sel,
-			    adc_smp->la_dma_type, adc_smp->la_trigger_time, 0);
-	}
-}
-
-void adc_smp_set(void *dm_void, u8 trig_mode, u32 trig_sig_sel,
-		 u8 dma_data_sig_sel, u32 trigger_time, u16 polling_time)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	bool is_set_success = true;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-
-	adc_smp->la_trig_mode = trig_mode;
-	adc_smp->la_trig_sig_sel = trig_sig_sel;
-	adc_smp->la_dma_type = dma_data_sig_sel;
-	adc_smp->la_trigger_time = trigger_time;
-
-	if (adc_smp->adc_smp_state != ADCSMP_STATE_IDLE)
-		is_set_success = false;
-	else if (adc_smp->adc_smp_buf.length == 0)
-		is_set_success = phydm_la_buffer_allocate(dm);
-
-	if (is_set_success) {
-		adc_smp->adc_smp_state = ADCSMP_STATE_SET;
-
-		ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-			     "[LA Set Success] LA_State=((%d))\n",
-			     adc_smp->adc_smp_state);
-
-		phydm_adc_smp_start(dm);
-	} else {
-		ODM_RT_TRACE(dm, ODM_COMP_UNCOND,
-			     "[LA Set Fail] LA_State=((%d))\n",
-			     adc_smp->adc_smp_state);
-	}
-}
-
-void adc_smp_query(void *dm_void, void *output, u32 out_len, u32 *pused)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	struct rt_adcsmp_string *adc_smp_buf = &adc_smp->adc_smp_buf;
-	u32 used = *pused;
-	u32 i;
-
-	ODM_RT_TRACE(dm, ODM_COMP_UNCOND, "%s adc_smp_state %d", __func__,
-		     adc_smp->adc_smp_state);
-
-	for (i = 0; i < (adc_smp_buf->length >> 2) - 2; i += 2) {
-		PHYDM_SNPRINTF(output + used, out_len - used, "%08x%08x\n",
-			       adc_smp_buf->octet[i],
-			       adc_smp_buf->octet[i + 1]);
-	}
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\n");
-	*pused = used;
-}
-
-s32 adc_smp_get_sample_counts(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	struct rt_adcsmp_string *adc_smp_buf = &adc_smp->adc_smp_buf;
-
-	return (adc_smp_buf->length >> 2) - 2;
-}
-
-s32 adc_smp_query_single_data(void *dm_void, void *output, u32 out_len,
-			      u32 index)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	struct rt_adcsmp_string *adc_smp_buf = &adc_smp->adc_smp_buf;
-	u32 used = 0;
-
-	if (adc_smp->adc_smp_state != ADCSMP_STATE_QUERY) {
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "Error: la data is not ready yet ...\n");
-		return -1;
-	}
-
-	if (index < ((adc_smp_buf->length >> 2) - 2)) {
-		PHYDM_SNPRINTF(output + used, out_len - used, "%08x%08x\n",
-			       adc_smp_buf->octet[index],
-			       adc_smp_buf->octet[index + 1]);
-	}
-	return 0;
-}
-
-void adc_smp_stop(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-
-	adc_smp->adc_smp_state = ADCSMP_STATE_IDLE;
-	ODM_RT_TRACE(dm, ODM_COMP_UNCOND, "[LA_Stop] LA_state = ((%d))\n",
-		     adc_smp->adc_smp_state);
-}
-
-void adc_smp_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	struct rt_adcsmp_string *adc_smp_buf = &adc_smp->adc_smp_buf;
-
-	adc_smp->adc_smp_state = ADCSMP_STATE_IDLE;
-
-	if (dm->support_ic_type & ODM_RTL8814A) {
-		adc_smp_buf->start_pos = 0x30000;
-		adc_smp_buf->buffer_size = 0x10000;
-	} else if (dm->support_ic_type & ODM_RTL8822B) {
-		adc_smp_buf->start_pos = 0x20000;
-		adc_smp_buf->buffer_size = 0x20000;
-	} else if (dm->support_ic_type & ODM_RTL8197F) {
-		adc_smp_buf->start_pos = 0x00000;
-		adc_smp_buf->buffer_size = 0x10000;
-	} else if (dm->support_ic_type & ODM_RTL8821C) {
-		adc_smp_buf->start_pos = 0x8000;
-		adc_smp_buf->buffer_size = 0x8000;
-	}
-}
-
-void adc_smp_de_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	struct rt_adcsmp_string *adc_smp_buf = &adc_smp->adc_smp_buf;
-
-	adc_smp_stop(dm);
-
-	if (adc_smp_buf->length != 0x0) {
-		odm_free_memory(dm, adc_smp_buf->octet, adc_smp_buf->length);
-		adc_smp_buf->length = 0x0;
-	}
-}
-
-void phydm_la_mode_bb_setting(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-
-	u8 trig_mode = adc_smp->la_trig_mode;
-	u32 trig_sig_sel = adc_smp->la_trig_sig_sel;
-	u32 dbg_port = adc_smp->la_dbg_port;
-	u8 is_trigger_edge = adc_smp->la_trigger_edge;
-	u8 sampling_rate = adc_smp->la_smp_rate;
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_UNCOND,
-		"1. [LA mode bb_setting] trig_mode = ((%d)), dbg_port = ((0x%x)), Trig_Edge = ((%d)), smp_rate = ((%d)), Trig_Sel = ((0x%x))\n",
-		trig_mode, dbg_port, is_trigger_edge, sampling_rate,
-		trig_sig_sel);
-
-	if (trig_mode == PHYDM_MAC_TRIG)
-		trig_sig_sel = 0; /*ignore this setting*/
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		if (trig_mode == PHYDM_ADC_RF0_TRIG) {
-			/*DBGOUT_RFC_a[31:0]*/
-			odm_set_bb_reg(dm, 0x8f8,
-				       BIT(25) | BIT(24) | BIT(23) | BIT(22),
-				       9);
-		} else if (trig_mode == PHYDM_ADC_RF1_TRIG) {
-			/*DBGOUT_RFC_b[31:0]*/
-			odm_set_bb_reg(dm, 0x8f8,
-				       BIT(25) | BIT(24) | BIT(23) | BIT(22),
-				       8);
-		} else {
-			odm_set_bb_reg(dm, 0x8f8,
-				       BIT(25) | BIT(24) | BIT(23) | BIT(22),
-				       0);
-		}
-		/*
-		 *	(0:) '{ofdm_dbg[31:0]}'
-		 *	(1:) '{cca,crc32_fail,dbg_ofdm[29:0]}'
-		 *	(2:) '{vbon,crc32_fail,dbg_ofdm[29:0]}'
-		 *	(3:) '{cca,crc32_ok,dbg_ofdm[29:0]}'
-		 *	(4:) '{vbon,crc32_ok,dbg_ofdm[29:0]}'
-		 *	(5:) '{dbg_iqk_anta}'
-		 *	(6:) '{cca,ofdm_crc_ok,dbg_dp_anta[29:0]}'
-		 *	(7:) '{dbg_iqk_antb}'
-		 *	(8:) '{DBGOUT_RFC_b[31:0]}'
-		 *	(9:) '{DBGOUT_RFC_a[31:0]}'
-		 *	(a:) '{dbg_ofdm}'
-		 *	(b:) '{dbg_cck}'
-		 */
-
-		/*disable dbg clk gating*/
-		odm_set_bb_reg(dm, 0x198C, BIT(2) | BIT(1) | BIT(0), 7);
-
-		/*0x95C[4:0], BB debug port bit*/
-		odm_set_bb_reg(dm, 0x95C, 0x1f, trig_sig_sel);
-		odm_set_bb_reg(dm, 0x8FC, MASKDWORD, dbg_port);
-		/*0: posedge, 1: negedge*/
-		odm_set_bb_reg(dm, 0x95C, BIT(31), is_trigger_edge);
-		odm_set_bb_reg(dm, 0x95c, 0xe0, sampling_rate);
-		/*	(0:) '80MHz'
-		 *	(1:) '40MHz'
-		 *	(2:) '20MHz'
-		 *	(3:) '10MHz'
-		 *	(4:) '5MHz'
-		 *	(5:) '2.5MHz'
-		 *	(6:) '1.25MHz'
-		 *	(7:) '160MHz (for BW160 ic)'
-		 */
-	} else {
-		/*0x9A0[4:0], BB debug port bit*/
-		odm_set_bb_reg(dm, 0x9a0, 0x1f, trig_sig_sel);
-		odm_set_bb_reg(dm, 0x908, MASKDWORD, dbg_port);
-		/*0: posedge, 1: negedge*/
-		odm_set_bb_reg(dm, 0x9A0, BIT(31), is_trigger_edge);
-		odm_set_bb_reg(dm, 0x9A0, 0xe0, sampling_rate);
-		/*	(0:) '80MHz'
-		 *	(1:) '40MHz'
-		 *	(2:) '20MHz'
-		 *	(3:) '10MHz'
-		 *	(4:) '5MHz'
-		 *	(5:) '2.5MHz'
-		 *	(6:) '1.25MHz'
-		 *	(7:) '160MHz (for BW160 ic)'
-		 */
-	}
-}
-
-void phydm_la_mode_set_trigger_time(void *dm_void, u32 trigger_time_mu_sec)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 trigger_time_unit_num;
-	u32 time_unit = 0;
-
-	if (trigger_time_mu_sec < 128)
-		time_unit = 0; /*unit: 1mu sec*/
-	else if (trigger_time_mu_sec < 256)
-		time_unit = 1; /*unit: 2mu sec*/
-	else if (trigger_time_mu_sec < 512)
-		time_unit = 2; /*unit: 4mu sec*/
-	else if (trigger_time_mu_sec < 1024)
-		time_unit = 3; /*unit: 8mu sec*/
-	else if (trigger_time_mu_sec < 2048)
-		time_unit = 4; /*unit: 16mu sec*/
-	else if (trigger_time_mu_sec < 4096)
-		time_unit = 5; /*unit: 32mu sec*/
-	else if (trigger_time_mu_sec < 8192)
-		time_unit = 6; /*unit: 64mu sec*/
-
-	trigger_time_unit_num = (u8)(trigger_time_mu_sec >> time_unit);
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_UNCOND,
-		"3. [Set Trigger Time] Trig_Time = ((%d)) * unit = ((2^%d us))\n",
-		trigger_time_unit_num, time_unit);
-
-	odm_set_mac_reg(dm, 0x7cc, BIT(20) | BIT(19) | BIT(18), time_unit);
-	odm_set_mac_reg(dm, 0x7c0, 0x7f00, (trigger_time_unit_num & 0x7f));
-}
-
-void phydm_lamode_trigger_setting(void *dm_void, char input[][16], u32 *_used,
-				  char *output, u32 *_out_len, u32 input_num)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	u8 trig_mode, dma_data_sig_sel;
-	u32 trig_sig_sel;
-	bool is_enable_la_mode;
-	u32 trigger_time_mu_sec;
-	char help[] = "-h";
-	u32 var1[10] = {0};
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	if (dm->support_ic_type & PHYDM_IC_SUPPORT_LA_MODE) {
-		PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
-		is_enable_la_mode = (bool)var1[0];
-		/*dbg_print("echo cmd input_num = %d\n", input_num);*/
-
-		if ((strcmp(input[1], help) == 0)) {
-			PHYDM_SNPRINTF(output + used,
-				       out_len - used,
-				       "{En} {0:BB,1:BB_MAC,2:RF0,3:RF1,4:MAC}\n {BB:dbg_port[bit],BB_MAC:0-ok/1-fail/2-cca,MAC:ref} {DMA type} {TrigTime}\n {polling_time/ref_mask} {dbg_port} {0:P_Edge, 1:N_Edge} {SpRate:0-80M,1-40M,2-20M} {Capture num}\n");
-		} else if (is_enable_la_mode) {
-			PHYDM_SSCANF(input[2], DCMD_DECIMAL, &var1[1]);
-
-			trig_mode = (u8)var1[1];
-
-			if (trig_mode == PHYDM_MAC_TRIG)
-				PHYDM_SSCANF(input[3], DCMD_HEX, &var1[2]);
-			else
-				PHYDM_SSCANF(input[3], DCMD_DECIMAL, &var1[2]);
-			trig_sig_sel = var1[2];
-
-			PHYDM_SSCANF(input[4], DCMD_DECIMAL, &var1[3]);
-			PHYDM_SSCANF(input[5], DCMD_DECIMAL, &var1[4]);
-			PHYDM_SSCANF(input[6], DCMD_HEX, &var1[5]);
-			PHYDM_SSCANF(input[7], DCMD_HEX, &var1[6]);
-			PHYDM_SSCANF(input[8], DCMD_DECIMAL, &var1[7]);
-			PHYDM_SSCANF(input[9], DCMD_DECIMAL, &var1[8]);
-			PHYDM_SSCANF(input[10], DCMD_DECIMAL, &var1[9]);
-
-			dma_data_sig_sel = (u8)var1[3];
-			trigger_time_mu_sec = var1[4]; /* unit: us */
-
-			adc_smp->la_mac_ref_mask = var1[5];
-			adc_smp->la_dbg_port = var1[6];
-			adc_smp->la_trigger_edge = (u8)var1[7];
-			adc_smp->la_smp_rate = (u8)(var1[8] & 0x7);
-			adc_smp->la_count = var1[9];
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_UNCOND,
-				"echo lamode %d %d %d %d %d %d %x %d %d %d\n",
-				var1[0], var1[1], var1[2], var1[3], var1[4],
-				var1[5], var1[6], var1[7], var1[8], var1[9]);
-
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"a.En= ((1)),  b.mode = ((%d)), c.Trig_Sel = ((0x%x)), d.Dma_type = ((%d))\n",
-				trig_mode, trig_sig_sel, dma_data_sig_sel);
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"e.Trig_Time = ((%dus)), f.mac_ref_mask = ((0x%x)), g.dbg_port = ((0x%x))\n",
-				trigger_time_mu_sec, adc_smp->la_mac_ref_mask,
-				adc_smp->la_dbg_port);
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"h.Trig_edge = ((%d)), i.smp rate = ((%d MHz)), j.Cap_num = ((%d))\n",
-				adc_smp->la_trigger_edge,
-				(80 >> adc_smp->la_smp_rate),
-				adc_smp->la_count);
-
-			adc_smp_set(dm, trig_mode, trig_sig_sel,
-				    dma_data_sig_sel, trigger_time_mu_sec, 0);
-
-		} else {
-			adc_smp_stop(dm);
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "Disable LA mode\n");
-		}
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_adc_sampling.h b/drivers/staging/rtlwifi/phydm/phydm_adc_sampling.h
deleted file mode 100644
index 300a22b..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_adc_sampling.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __INC_ADCSMP_H
-#define __INC_ADCSMP_H
-
-#define DYNAMIC_LA_MODE "1.0" /*2016.07.15  Dino */
-
-struct rt_adcsmp_string {
-	u32 *octet;
-	u32 length;
-	u32 buffer_size;
-	u32 start_pos;
-};
-
-enum rt_adcsmp_trig_sel {
-	PHYDM_ADC_BB_TRIG = 0,
-	PHYDM_ADC_MAC_TRIG = 1,
-	PHYDM_ADC_RF0_TRIG = 2,
-	PHYDM_ADC_RF1_TRIG = 3,
-	PHYDM_MAC_TRIG = 4
-};
-
-enum rt_adcsmp_trig_sig_sel {
-	ADCSMP_TRIG_CRCOK = 0,
-	ADCSMP_TRIG_CRCFAIL = 1,
-	ADCSMP_TRIG_CCA = 2,
-	ADCSMP_TRIG_REG = 3
-};
-
-enum rt_adcsmp_state {
-	ADCSMP_STATE_IDLE = 0,
-	ADCSMP_STATE_SET = 1,
-	ADCSMP_STATE_QUERY = 2
-};
-
-struct rt_adcsmp {
-	struct rt_adcsmp_string adc_smp_buf;
-	enum rt_adcsmp_state adc_smp_state;
-	u8 la_trig_mode;
-	u32 la_trig_sig_sel;
-	u8 la_dma_type;
-	u32 la_trigger_time;
-	u32 la_mac_ref_mask;
-	u32 la_dbg_port;
-	u8 la_trigger_edge;
-	u8 la_smp_rate;
-	u32 la_count;
-	u8 is_bb_trigger;
-	u8 la_work_item_index;
-};
-
-void adc_smp_set(void *dm_void, u8 trig_mode, u32 trig_sig_sel,
-		 u8 dma_data_sig_sel, u32 trigger_time, u16 polling_time);
-
-void adc_smp_query(void *dm_void, void *output, u32 out_len, u32 *pused);
-
-s32 adc_smp_get_sample_counts(void *dm_void);
-
-s32 adc_smp_query_single_data(void *dm_void, void *output, u32 out_len,
-			      u32 index);
-
-void adc_smp_stop(void *dm_void);
-
-void adc_smp_init(void *dm_void);
-
-void adc_smp_de_init(void *dm_void);
-
-void phydm_la_mode_bb_setting(void *dm_void);
-
-void phydm_la_mode_set_trigger_time(void *dm_void, u32 trigger_time_mu_sec);
-
-void phydm_lamode_trigger_setting(void *dm_void, char input[][16], u32 *_used,
-				  char *output, u32 *_out_len, u32 input_num);
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_antdiv.c b/drivers/staging/rtlwifi/phydm/phydm_antdiv.c
deleted file mode 100644
index 5a62e6b7..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_antdiv.c
+++ /dev/null
@@ -1,72 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-/* ******************************************************
- * when antenna test utility is on or some testing need to disable antenna
- * diversity, call this function to disable all ODM related mechanisms which
- * will switch antenna.
- * *******************************************************/
-void odm_stop_antenna_switch_dm(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	/* disable ODM antenna diversity */
-	dm->support_ability &= ~ODM_BB_ANT_DIV;
-	ODM_RT_TRACE(dm, ODM_COMP_ANT_DIV, "STOP Antenna Diversity\n");
-}
-
-void phydm_enable_antenna_diversity(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	dm->support_ability |= ODM_BB_ANT_DIV;
-	ODM_RT_TRACE(dm, ODM_COMP_ANT_DIV,
-		     "AntDiv is enabled & Re-Init AntDiv\n");
-	odm_antenna_diversity_init(dm);
-}
-
-void odm_set_ant_config(void *dm_void, u8 ant_setting /* 0=A, 1=B, 2=C, .... */
-			)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type == ODM_RTL8723B) {
-		if (ant_setting == 0) /* ant A*/
-			odm_set_bb_reg(dm, 0x948, MASKDWORD, 0x00000000);
-		else if (ant_setting == 1)
-			odm_set_bb_reg(dm, 0x948, MASKDWORD, 0x00000280);
-	} else if (dm->support_ic_type == ODM_RTL8723D) {
-		if (ant_setting == 0) /* ant A*/
-			odm_set_bb_reg(dm, 0x948, MASKLWORD, 0x0000);
-		else if (ant_setting == 1)
-			odm_set_bb_reg(dm, 0x948, MASKLWORD, 0x0280);
-	}
-}
-
-/* ****************************************************** */
-
-void odm_sw_ant_div_rest_after_link(void *dm_void) {}
-
-void odm_ant_div_reset(void *dm_void) {}
-
-void odm_antenna_diversity_init(void *dm_void) {}
-
-void odm_antenna_diversity(void *dm_void) {}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_antdiv.h b/drivers/staging/rtlwifi/phydm/phydm_antdiv.h
deleted file mode 100644
index 4a58163..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_antdiv.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMANTDIV_H__
-#define __PHYDMANTDIV_H__
-
-/* 2.0 2014.11.04
- * 2.1 2015.01.13 Dino
- * 2.2 2015.01.16 Dino
- * 3.1 2015.07.29 YuChen, remove 92c 92d 8723a
- * 3.2 2015.08.11 Stanley, disable antenna diversity when BT is enable for 8723B
- * 3.3 2015.08.12 Stanley. 8723B does not need to check the antenna is control
- *		  by BT, because antenna diversity only works when BT is disable
- *		  or radio off
- * 3.4 2015.08.28 Dino  1.Add 8821A Smart Antenna 2. Add 8188F SW S0S1 Antenna
- *		  Diversity
- * 3.5 2015.10.07 Stanley  Always check antenna detection result from BT-coex.
- *		  for 8723B, not from PHYDM
- * 3.6 2015.11.16 Stanley
- * 3.7 2015.11.20 Dino Add SmartAnt FAT Patch
- * 3.8 2015.12.21 Dino, Add SmartAnt dynamic training packet num
- * 3.9 2016.01.05 Dino, Add SmartAnt cmd for converting single & two smtant, and
- *		  add cmd for adjust truth table
- */
-#define ANTDIV_VERSION "3.9"
-
-/* 1 ============================================================
- * 1  Definition
- * 1 ============================================================
- */
-
-#define ANTDIV_INIT 0xff
-#define MAIN_ANT 1 /*ant A or ant Main   or S1*/
-#define AUX_ANT 2 /*AntB or ant Aux   or S0*/
-#define MAX_ANT 3 /* 3 for AP using*/
-
-#define ANT1_2G 0 /* = ANT2_5G	for 8723D  BTG S1 RX S0S1 diversity for 8723D,
-		   * TX fixed at S1
-		   */
-#define ANT2_2G 1 /* = ANT1_5G	for 8723D  BTG S0  RX S0S1 diversity for 8723D,
-		   * TX fixed at S1
-		   */
-/*smart antenna*/
-#define SUPPORT_RF_PATH_NUM 4
-#define SUPPORT_BEAM_PATTERN_NUM 4
-#define NUM_ANTENNA_8821A 2
-
-#define SUPPORT_BEAM_SET_PATTERN_NUM 8
-
-#define NO_FIX_TX_ANT 0
-#define FIX_TX_AT_MAIN 1
-#define FIX_AUX_AT_MAIN 2
-
-/* Antenna Diversty Control type */
-#define ODM_AUTO_ANT 0
-#define ODM_FIX_MAIN_ANT 1
-#define ODM_FIX_AUX_ANT 2
-
-#define ODM_N_ANTDIV_SUPPORT                                                   \
-	(ODM_RTL8188E | ODM_RTL8192E | ODM_RTL8723B | ODM_RTL8188F |           \
-	 ODM_RTL8723D | ODM_RTL8195A)
-#define ODM_AC_ANTDIV_SUPPORT                                                  \
-	(ODM_RTL8821 | ODM_RTL8881A | ODM_RTL8812 | ODM_RTL8821C |             \
-	 ODM_RTL8822B | ODM_RTL8814B)
-#define ODM_ANTDIV_SUPPORT (ODM_N_ANTDIV_SUPPORT | ODM_AC_ANTDIV_SUPPORT)
-#define ODM_SMART_ANT_SUPPORT (ODM_RTL8188E | ODM_RTL8192E)
-#define ODM_HL_SMART_ANT_TYPE1_SUPPORT (ODM_RTL8821 | ODM_RTL8822B)
-
-#define ODM_ANTDIV_2G_SUPPORT_IC                                               \
-	(ODM_RTL8188E | ODM_RTL8192E | ODM_RTL8723B | ODM_RTL8881A |           \
-	 ODM_RTL8188F | ODM_RTL8723D)
-#define ODM_ANTDIV_5G_SUPPORT_IC                                               \
-	(ODM_RTL8821 | ODM_RTL8881A | ODM_RTL8812 | ODM_RTL8821C)
-
-#define ODM_EVM_ENHANCE_ANTDIV_SUPPORT_IC (ODM_RTL8192E)
-
-#define ODM_ANTDIV_2G BIT(0)
-#define ODM_ANTDIV_5G BIT(1)
-
-#define ANTDIV_ON 1
-#define ANTDIV_OFF 0
-
-#define FAT_ON 1
-#define FAT_OFF 0
-
-#define TX_BY_DESC 1
-#define TX_BY_REG 0
-
-#define RSSI_METHOD 0
-#define EVM_METHOD 1
-#define CRC32_METHOD 2
-
-#define INIT_ANTDIV_TIMMER 0
-#define CANCEL_ANTDIV_TIMMER 1
-#define RELEASE_ANTDIV_TIMMER 2
-
-#define CRC32_FAIL 1
-#define CRC32_OK 0
-
-#define evm_rssi_th_high 25
-#define evm_rssi_th_low 20
-
-#define NORMAL_STATE_MIAN 1
-#define NORMAL_STATE_AUX 2
-#define TRAINING_STATE 3
-
-#define FORCE_RSSI_DIFF 10
-
-#define CSI_ON 1
-#define CSI_OFF 0
-
-#define DIVON_CSIOFF 1
-#define DIVOFF_CSION 2
-
-#define BDC_DIV_TRAIN_STATE 0
-#define bdc_bfer_train_state 1
-#define BDC_DECISION_STATE 2
-#define BDC_BF_HOLD_STATE 3
-#define BDC_DIV_HOLD_STATE 4
-
-#define BDC_MODE_1 1
-#define BDC_MODE_2 2
-#define BDC_MODE_3 3
-#define BDC_MODE_4 4
-#define BDC_MODE_NULL 0xff
-
-/*SW S0S1 antenna diversity*/
-#define SWAW_STEP_INIT 0xff
-#define SWAW_STEP_PEEK 0
-#define SWAW_STEP_DETERMINE 1
-
-#define RSSI_CHECK_RESET_PERIOD 10
-#define RSSI_CHECK_THRESHOLD 50
-
-/*Hong Lin Smart antenna*/
-#define HL_SMTANT_2WIRE_DATA_LEN 24
-
-/* 1 ============================================================
- * 1  structure
- * 1 ============================================================
- */
-
-struct sw_antenna_switch {
-	u8 double_chk_flag; /*If current antenna RSSI > "RSSI_CHECK_THRESHOLD",
-			     *than check this antenna again
-			     */
-	u8 try_flag;
-	s32 pre_rssi;
-	u8 cur_antenna;
-	u8 pre_antenna;
-	u8 rssi_trying;
-	u8 reset_idx;
-	u8 train_time;
-	u8 train_time_flag; /*base on RSSI difference between two antennas*/
-	struct timer_list phydm_sw_antenna_switch_timer;
-	u32 pkt_cnt_sw_ant_div_by_ctrl_frame;
-	bool is_sw_ant_div_by_ctrl_frame;
-
-	/* AntDect (Before link Antenna Switch check) need to be moved*/
-	u16 single_ant_counter;
-	u16 dual_ant_counter;
-	u16 aux_fail_detec_counter;
-	u16 retry_counter;
-	u8 swas_no_link_state;
-	u32 swas_no_link_bk_reg948;
-	bool ANTA_ON; /*To indicate ant A is or not*/
-	bool ANTB_ON; /*To indicate ant B is on or not*/
-	bool pre_aux_fail_detec;
-	bool rssi_ant_dect_result;
-	u8 ant_5g;
-	u8 ant_2g;
-};
-
-struct fast_antenna_training {
-	u8 bssid[6];
-	u8 antsel_rx_keep_0;
-	u8 antsel_rx_keep_1;
-	u8 antsel_rx_keep_2;
-	u8 antsel_rx_keep_3;
-	u32 ant_sum_rssi[7];
-	u32 ant_rssi_cnt[7];
-	u32 ant_ave_rssi[7];
-	u8 fat_state;
-	u32 train_idx;
-	u8 antsel_a[ODM_ASSOCIATE_ENTRY_NUM];
-	u8 antsel_b[ODM_ASSOCIATE_ENTRY_NUM];
-	u8 antsel_c[ODM_ASSOCIATE_ENTRY_NUM];
-	u16 main_ant_sum[ODM_ASSOCIATE_ENTRY_NUM];
-	u16 aux_ant_sum[ODM_ASSOCIATE_ENTRY_NUM];
-	u16 main_ant_cnt[ODM_ASSOCIATE_ENTRY_NUM];
-	u16 aux_ant_cnt[ODM_ASSOCIATE_ENTRY_NUM];
-	u16 main_ant_sum_cck[ODM_ASSOCIATE_ENTRY_NUM];
-	u16 aux_ant_sum_cck[ODM_ASSOCIATE_ENTRY_NUM];
-	u16 main_ant_cnt_cck[ODM_ASSOCIATE_ENTRY_NUM];
-	u16 aux_ant_cnt_cck[ODM_ASSOCIATE_ENTRY_NUM];
-	u8 rx_idle_ant;
-	u8 ant_div_on_off;
-	bool is_become_linked;
-	u32 min_max_rssi;
-	u8 idx_ant_div_counter_2g;
-	u8 idx_ant_div_counter_5g;
-	u8 ant_div_2g_5g;
-
-	u32 cck_ctrl_frame_cnt_main;
-	u32 cck_ctrl_frame_cnt_aux;
-	u32 ofdm_ctrl_frame_cnt_main;
-	u32 ofdm_ctrl_frame_cnt_aux;
-	u32 main_ant_ctrl_frame_sum;
-	u32 aux_ant_ctrl_frame_sum;
-	u32 main_ant_ctrl_frame_cnt;
-	u32 aux_ant_ctrl_frame_cnt;
-	u8 b_fix_tx_ant;
-	bool fix_ant_bfee;
-	bool enable_ctrl_frame_antdiv;
-	bool use_ctrl_frame_antdiv;
-	u8 hw_antsw_occur;
-	u8 *p_force_tx_ant_by_desc;
-	u8 force_tx_ant_by_desc; /*A temp value, will hook to driver team's
-				  *outer parameter later
-				  */
-	u8 *p_default_s0_s1;
-	u8 default_s0_s1;
-};
-
-/* 1 ============================================================
- * 1  enumeration
- * 1 ============================================================
- */
-
-/*Fast antenna training*/
-enum fat_state {
-	FAT_BEFORE_LINK_STATE = 0,
-	FAT_PREPARE_STATE = 1,
-	FAT_TRAINING_STATE = 2,
-	FAT_DECISION_STATE = 3
-};
-
-enum ant_div_type {
-	NO_ANTDIV = 0xFF,
-	CG_TRX_HW_ANTDIV = 0x01,
-	CGCS_RX_HW_ANTDIV = 0x02,
-	FIXED_HW_ANTDIV = 0x03,
-	CG_TRX_SMART_ANTDIV = 0x04,
-	CGCS_RX_SW_ANTDIV = 0x05,
-	/*8723B intrnal switch S0 S1*/
-	S0S1_SW_ANTDIV = 0x06,
-	/*TRX S0S1 diversity for 8723D*/
-	S0S1_TRX_HW_ANTDIV = 0x07,
-	/*Hong-Lin Smart antenna use for 8821AE which is a 2 ant. entitys, and
-	 *each ant. is equipped with 4 antenna patterns
-	 */
-	HL_SW_SMART_ANT_TYPE1 = 0x10,
-	/*Hong-Bo Smart antenna use for 8822B which is a 2 ant. entitys*/
-	HL_SW_SMART_ANT_TYPE2 = 0x11,
-};
-
-/* 1 ============================================================
- * 1  function prototype
- * 1 ============================================================
- */
-
-void odm_stop_antenna_switch_dm(void *dm_void);
-
-void phydm_enable_antenna_diversity(void *dm_void);
-
-void odm_set_ant_config(void *dm_void, u8 ant_setting /* 0=A, 1=B, 2=C, .... */
-			);
-
-#define sw_ant_div_rest_after_link odm_sw_ant_div_rest_after_link
-
-void odm_sw_ant_div_rest_after_link(void *dm_void);
-
-void odm_ant_div_reset(void *dm_void);
-
-void odm_antenna_diversity_init(void *dm_void);
-
-void odm_antenna_diversity(void *dm_void);
-
-#endif /*#ifndef	__ODMANTDIV_H__*/
diff --git a/drivers/staging/rtlwifi/phydm/phydm_beamforming.h b/drivers/staging/rtlwifi/phydm/phydm_beamforming.h
deleted file mode 100644
index a0bcdb6..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_beamforming.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __INC_PHYDM_BEAMFORMING_H
-#define __INC_PHYDM_BEAMFORMING_H
-
-/*Beamforming Related*/
-#include "txbf/halcomtxbf.h"
-#include "txbf/haltxbfjaguar.h"
-#include "txbf/haltxbf8822b.h"
-#include "txbf/haltxbfinterface.h"
-
-#define beamforming_gid_paid(adapter, tcb)
-#define phydm_acting_determine(dm, type) false
-#define beamforming_enter(dm, sta_idx)
-#define beamforming_leave(dm, RA)
-#define beamforming_end_fw(dm)
-#define beamforming_control_v1(dm, RA, AID, mode, BW, rate) true
-#define beamforming_control_v2(dm, idx, mode, BW, period) true
-#define phydm_beamforming_end_sw(dm, _status)
-#define beamforming_timer_callback(dm)
-#define phydm_beamforming_init(dm)
-#define phydm_beamforming_control_v2(dm, _idx, _mode, _BW, _period) false
-#define beamforming_watchdog(dm)
-#define phydm_beamforming_watchdog(dm)
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_ccx.c b/drivers/staging/rtlwifi/phydm/phydm_ccx.c
deleted file mode 100644
index 5e01ea8..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_ccx.c
+++ /dev/null
@@ -1,447 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-/*Set NHM period, threshold, disable ignore cca or not,
- *disable ignore txon or not
- */
-void phydm_nhm_setting(void *dm_void, u8 nhm_setting)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ccx_info *ccx_info = &dm->dm_ccx_info;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		if (nhm_setting == SET_NHM_SETTING) {
-			/*Set inexclude_cca, inexclude_txon*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(9),
-				       ccx_info->nhm_inexclude_cca);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(10),
-				       ccx_info->nhm_inexclude_txon);
-
-			/*Set NHM period*/
-			odm_set_bb_reg(dm, ODM_REG_CCX_PERIOD_11AC, MASKHWORD,
-				       ccx_info->NHM_period);
-
-			/*Set NHM threshold*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11AC,
-				       MASKBYTE0, ccx_info->NHM_th[0]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11AC,
-				       MASKBYTE1, ccx_info->NHM_th[1]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11AC,
-				       MASKBYTE2, ccx_info->NHM_th[2]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11AC,
-				       MASKBYTE3, ccx_info->NHM_th[3]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11AC,
-				       MASKBYTE0, ccx_info->NHM_th[4]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11AC,
-				       MASKBYTE1, ccx_info->NHM_th[5]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11AC,
-				       MASKBYTE2, ccx_info->NHM_th[6]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11AC,
-				       MASKBYTE3, ccx_info->NHM_th[7]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH8_11AC, MASKBYTE0,
-				       ccx_info->NHM_th[8]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, MASKBYTE2,
-				       ccx_info->NHM_th[9]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, MASKBYTE3,
-				       ccx_info->NHM_th[10]);
-
-			/*CCX EN*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(8),
-				       CCX_EN);
-		} else if (nhm_setting == STORE_NHM_SETTING) {
-			/*Store prev. disable_ignore_cca, disable_ignore_txon*/
-			ccx_info->NHM_inexclude_cca_restore =
-				(enum nhm_inexclude_cca)odm_get_bb_reg(
-					dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(9));
-			ccx_info->NHM_inexclude_txon_restore =
-				(enum nhm_inexclude_txon)odm_get_bb_reg(
-					dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(10));
-
-			/*Store pervious NHM period*/
-			ccx_info->NHM_period_restore = (u16)odm_get_bb_reg(
-				dm, ODM_REG_CCX_PERIOD_11AC, MASKHWORD);
-
-			/*Store NHM threshold*/
-			ccx_info->NHM_th_restore[0] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH3_TO_TH0_11AC, MASKBYTE0);
-			ccx_info->NHM_th_restore[1] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH3_TO_TH0_11AC, MASKBYTE1);
-			ccx_info->NHM_th_restore[2] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH3_TO_TH0_11AC, MASKBYTE2);
-			ccx_info->NHM_th_restore[3] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH3_TO_TH0_11AC, MASKBYTE3);
-			ccx_info->NHM_th_restore[4] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH7_TO_TH4_11AC, MASKBYTE0);
-			ccx_info->NHM_th_restore[5] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH7_TO_TH4_11AC, MASKBYTE1);
-			ccx_info->NHM_th_restore[6] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH7_TO_TH4_11AC, MASKBYTE2);
-			ccx_info->NHM_th_restore[7] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH7_TO_TH4_11AC, MASKBYTE3);
-			ccx_info->NHM_th_restore[8] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH8_11AC, MASKBYTE0);
-			ccx_info->NHM_th_restore[9] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH9_TH10_11AC, MASKBYTE2);
-			ccx_info->NHM_th_restore[10] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH9_TH10_11AC, MASKBYTE3);
-		} else if (nhm_setting == RESTORE_NHM_SETTING) {
-			/*Set disable_ignore_cca, disable_ignore_txon*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(9),
-				       ccx_info->NHM_inexclude_cca_restore);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(10),
-				       ccx_info->NHM_inexclude_txon_restore);
-
-			/*Set NHM period*/
-			odm_set_bb_reg(dm, ODM_REG_CCX_PERIOD_11AC, MASKHWORD,
-				       ccx_info->NHM_period);
-
-			/*Set NHM threshold*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11AC,
-				       MASKBYTE0, ccx_info->NHM_th_restore[0]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11AC,
-				       MASKBYTE1, ccx_info->NHM_th_restore[1]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11AC,
-				       MASKBYTE2, ccx_info->NHM_th_restore[2]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11AC,
-				       MASKBYTE3, ccx_info->NHM_th_restore[3]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11AC,
-				       MASKBYTE0, ccx_info->NHM_th_restore[4]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11AC,
-				       MASKBYTE1, ccx_info->NHM_th_restore[5]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11AC,
-				       MASKBYTE2, ccx_info->NHM_th_restore[6]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11AC,
-				       MASKBYTE3, ccx_info->NHM_th_restore[7]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH8_11AC, MASKBYTE0,
-				       ccx_info->NHM_th_restore[8]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, MASKBYTE2,
-				       ccx_info->NHM_th_restore[9]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, MASKBYTE3,
-				       ccx_info->NHM_th_restore[10]);
-		} else {
-			return;
-		}
-	}
-
-	else if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		if (nhm_setting == SET_NHM_SETTING) {
-			/*Set disable_ignore_cca, disable_ignore_txon*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, BIT(9),
-				       ccx_info->nhm_inexclude_cca);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, BIT(10),
-				       ccx_info->nhm_inexclude_txon);
-
-			/*Set NHM period*/
-			odm_set_bb_reg(dm, ODM_REG_CCX_PERIOD_11N, MASKHWORD,
-				       ccx_info->NHM_period);
-
-			/*Set NHM threshold*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11N,
-				       MASKBYTE0, ccx_info->NHM_th[0]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11N,
-				       MASKBYTE1, ccx_info->NHM_th[1]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11N,
-				       MASKBYTE2, ccx_info->NHM_th[2]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11N,
-				       MASKBYTE3, ccx_info->NHM_th[3]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11N,
-				       MASKBYTE0, ccx_info->NHM_th[4]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11N,
-				       MASKBYTE1, ccx_info->NHM_th[5]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11N,
-				       MASKBYTE2, ccx_info->NHM_th[6]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11N,
-				       MASKBYTE3, ccx_info->NHM_th[7]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH8_11N, MASKBYTE0,
-				       ccx_info->NHM_th[8]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, MASKBYTE2,
-				       ccx_info->NHM_th[9]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, MASKBYTE3,
-				       ccx_info->NHM_th[10]);
-
-			/*CCX EN*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, BIT(8),
-				       CCX_EN);
-		} else if (nhm_setting == STORE_NHM_SETTING) {
-			/*Store prev. disable_ignore_cca, disable_ignore_txon*/
-			ccx_info->NHM_inexclude_cca_restore =
-				(enum nhm_inexclude_cca)odm_get_bb_reg(
-					dm, ODM_REG_NHM_TH9_TH10_11N, BIT(9));
-			ccx_info->NHM_inexclude_txon_restore =
-				(enum nhm_inexclude_txon)odm_get_bb_reg(
-					dm, ODM_REG_NHM_TH9_TH10_11N, BIT(10));
-
-			/*Store pervious NHM period*/
-			ccx_info->NHM_period_restore = (u16)odm_get_bb_reg(
-				dm, ODM_REG_CCX_PERIOD_11N, MASKHWORD);
-
-			/*Store NHM threshold*/
-			ccx_info->NHM_th_restore[0] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH3_TO_TH0_11N, MASKBYTE0);
-			ccx_info->NHM_th_restore[1] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH3_TO_TH0_11N, MASKBYTE1);
-			ccx_info->NHM_th_restore[2] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH3_TO_TH0_11N, MASKBYTE2);
-			ccx_info->NHM_th_restore[3] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH3_TO_TH0_11N, MASKBYTE3);
-			ccx_info->NHM_th_restore[4] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH7_TO_TH4_11N, MASKBYTE0);
-			ccx_info->NHM_th_restore[5] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH7_TO_TH4_11N, MASKBYTE1);
-			ccx_info->NHM_th_restore[6] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH7_TO_TH4_11N, MASKBYTE2);
-			ccx_info->NHM_th_restore[7] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH7_TO_TH4_11N, MASKBYTE3);
-			ccx_info->NHM_th_restore[8] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH8_11N, MASKBYTE0);
-			ccx_info->NHM_th_restore[9] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH9_TH10_11N, MASKBYTE2);
-			ccx_info->NHM_th_restore[10] = (u8)odm_get_bb_reg(
-				dm, ODM_REG_NHM_TH9_TH10_11N, MASKBYTE3);
-		} else if (nhm_setting == RESTORE_NHM_SETTING) {
-			/*Set disable_ignore_cca, disable_ignore_txon*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, BIT(9),
-				       ccx_info->NHM_inexclude_cca_restore);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, BIT(10),
-				       ccx_info->NHM_inexclude_txon_restore);
-
-			/*Set NHM period*/
-			odm_set_bb_reg(dm, ODM_REG_CCX_PERIOD_11N, MASKHWORD,
-				       ccx_info->NHM_period_restore);
-
-			/*Set NHM threshold*/
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11N,
-				       MASKBYTE0, ccx_info->NHM_th_restore[0]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11N,
-				       MASKBYTE1, ccx_info->NHM_th_restore[1]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11N,
-				       MASKBYTE2, ccx_info->NHM_th_restore[2]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH3_TO_TH0_11N,
-				       MASKBYTE3, ccx_info->NHM_th_restore[3]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11N,
-				       MASKBYTE0, ccx_info->NHM_th_restore[4]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11N,
-				       MASKBYTE1, ccx_info->NHM_th_restore[5]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11N,
-				       MASKBYTE2, ccx_info->NHM_th_restore[6]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH7_TO_TH4_11N,
-				       MASKBYTE3, ccx_info->NHM_th_restore[7]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH8_11N, MASKBYTE0,
-				       ccx_info->NHM_th_restore[8]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, MASKBYTE2,
-				       ccx_info->NHM_th_restore[9]);
-			odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, MASKBYTE3,
-				       ccx_info->NHM_th_restore[10]);
-		} else {
-			return;
-		}
-	}
-}
-
-void phydm_nhm_trigger(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		/*Trigger NHM*/
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(1), 0);
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11AC, BIT(1), 1);
-	} else if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		/*Trigger NHM*/
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, BIT(1), 0);
-		odm_set_bb_reg(dm, ODM_REG_NHM_TH9_TH10_11N, BIT(1), 1);
-	}
-}
-
-void phydm_get_nhm_result(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 value32;
-	struct ccx_info *ccx_info = &dm->dm_ccx_info;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		value32 = odm_read_4byte(dm, ODM_REG_NHM_CNT_11AC);
-		ccx_info->NHM_result[0] = (u8)(value32 & MASKBYTE0);
-		ccx_info->NHM_result[1] = (u8)((value32 & MASKBYTE1) >> 8);
-		ccx_info->NHM_result[2] = (u8)((value32 & MASKBYTE2) >> 16);
-		ccx_info->NHM_result[3] = (u8)((value32 & MASKBYTE3) >> 24);
-
-		value32 = odm_read_4byte(dm, ODM_REG_NHM_CNT7_TO_CNT4_11AC);
-		ccx_info->NHM_result[4] = (u8)(value32 & MASKBYTE0);
-		ccx_info->NHM_result[5] = (u8)((value32 & MASKBYTE1) >> 8);
-		ccx_info->NHM_result[6] = (u8)((value32 & MASKBYTE2) >> 16);
-		ccx_info->NHM_result[7] = (u8)((value32 & MASKBYTE3) >> 24);
-
-		value32 = odm_read_4byte(dm, ODM_REG_NHM_CNT11_TO_CNT8_11AC);
-		ccx_info->NHM_result[8] = (u8)(value32 & MASKBYTE0);
-		ccx_info->NHM_result[9] = (u8)((value32 & MASKBYTE1) >> 8);
-		ccx_info->NHM_result[10] = (u8)((value32 & MASKBYTE2) >> 16);
-		ccx_info->NHM_result[11] = (u8)((value32 & MASKBYTE3) >> 24);
-
-		/*Get NHM duration*/
-		value32 = odm_read_4byte(dm, ODM_REG_NHM_DUR_READY_11AC);
-		ccx_info->NHM_duration = (u16)(value32 & MASKLWORD);
-	}
-
-	else if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		value32 = odm_read_4byte(dm, ODM_REG_NHM_CNT_11N);
-		ccx_info->NHM_result[0] = (u8)(value32 & MASKBYTE0);
-		ccx_info->NHM_result[1] = (u8)((value32 & MASKBYTE1) >> 8);
-		ccx_info->NHM_result[2] = (u8)((value32 & MASKBYTE2) >> 16);
-		ccx_info->NHM_result[3] = (u8)((value32 & MASKBYTE3) >> 24);
-
-		value32 = odm_read_4byte(dm, ODM_REG_NHM_CNT7_TO_CNT4_11N);
-		ccx_info->NHM_result[4] = (u8)(value32 & MASKBYTE0);
-		ccx_info->NHM_result[5] = (u8)((value32 & MASKBYTE1) >> 8);
-		ccx_info->NHM_result[6] = (u8)((value32 & MASKBYTE2) >> 16);
-		ccx_info->NHM_result[7] = (u8)((value32 & MASKBYTE3) >> 24);
-
-		value32 = odm_read_4byte(dm, ODM_REG_NHM_CNT9_TO_CNT8_11N);
-		ccx_info->NHM_result[8] = (u8)((value32 & MASKBYTE2) >> 16);
-		ccx_info->NHM_result[9] = (u8)((value32 & MASKBYTE3) >> 24);
-
-		value32 = odm_read_4byte(dm, ODM_REG_NHM_CNT10_TO_CNT11_11N);
-		ccx_info->NHM_result[10] = (u8)((value32 & MASKBYTE2) >> 16);
-		ccx_info->NHM_result[11] = (u8)((value32 & MASKBYTE3) >> 24);
-
-		/* Get NHM duration */
-		value32 = odm_read_4byte(dm, ODM_REG_NHM_CNT10_TO_CNT11_11N);
-		ccx_info->NHM_duration = (u16)(value32 & MASKLWORD);
-	}
-}
-
-bool phydm_check_nhm_ready(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 value32 = 0;
-	u8 i;
-	bool ret = false;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		value32 = odm_get_bb_reg(dm,
-					 ODM_REG_CLM_RESULT_11AC,
-					 MASKDWORD);
-
-		for (i = 0; i < 200; i++) {
-			ODM_delay_ms(1);
-			if (odm_get_bb_reg(dm, ODM_REG_NHM_DUR_READY_11AC,
-					   BIT(17))) {
-				ret = true;
-				break;
-			}
-		}
-	}
-
-	else if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		value32 = odm_get_bb_reg(dm, ODM_REG_CLM_READY_11N, MASKDWORD);
-
-		for (i = 0; i < 200; i++) {
-			ODM_delay_ms(1);
-			if (odm_get_bb_reg(dm, ODM_REG_NHM_DUR_READY_11AC,
-					   BIT(17))) {
-				ret = true;
-				break;
-			}
-		}
-	}
-	return ret;
-}
-
-void phydm_clm_setting(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ccx_info *ccx_info = &dm->dm_ccx_info;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		odm_set_bb_reg(dm, ODM_REG_CCX_PERIOD_11AC, MASKLWORD,
-			       ccx_info->CLM_period); /*4us sample 1 time*/
-		odm_set_bb_reg(dm, ODM_REG_CLM_11AC, BIT(8),
-			       0x1); /*Enable CCX for CLM*/
-
-	} else if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		odm_set_bb_reg(dm, ODM_REG_CCX_PERIOD_11N, MASKLWORD,
-			       ccx_info->CLM_period); /*4us sample 1 time*/
-		odm_set_bb_reg(dm, ODM_REG_CLM_11N, BIT(8),
-			       0x1); /*Enable CCX for CLM*/
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_CCX, "[%s] : CLM period = %dus\n", __func__,
-		     ccx_info->CLM_period * 4);
-}
-
-void phydm_clm_trigger(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		odm_set_bb_reg(dm, ODM_REG_CLM_11AC, BIT(0),
-			       0x0); /*Trigger CLM*/
-		odm_set_bb_reg(dm, ODM_REG_CLM_11AC, BIT(0), 0x1);
-	} else if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		odm_set_bb_reg(dm, ODM_REG_CLM_11N, BIT(0),
-			       0x0); /*Trigger CLM*/
-		odm_set_bb_reg(dm, ODM_REG_CLM_11N, BIT(0), 0x1);
-	}
-}
-
-bool phydm_check_cl_mready(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 value32 = 0;
-	bool ret = false;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		value32 = odm_get_bb_reg(
-			dm, ODM_REG_CLM_RESULT_11AC,
-			MASKDWORD); /*make sure CLM calc is ready*/
-	else if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		value32 = odm_get_bb_reg(
-			dm, ODM_REG_CLM_READY_11N,
-			MASKDWORD); /*make sure CLM calc is ready*/
-
-	if ((dm->support_ic_type & ODM_IC_11AC_SERIES) && (value32 & BIT(16)))
-		ret = true;
-	else if ((dm->support_ic_type & ODM_IC_11N_SERIES) &&
-		 (value32 & BIT(16)))
-		ret = true;
-	else
-		ret = false;
-
-	ODM_RT_TRACE(dm, ODM_COMP_CCX, "[%s] : CLM ready = %d\n", __func__,
-		     ret);
-
-	return ret;
-}
-
-void phydm_get_cl_mresult(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ccx_info *ccx_info = &dm->dm_ccx_info;
-
-	u32 value32 = 0;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		value32 = odm_get_bb_reg(dm, ODM_REG_CLM_RESULT_11AC,
-					 MASKDWORD); /*read CLM calc result*/
-	else if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		value32 = odm_get_bb_reg(dm, ODM_REG_CLM_RESULT_11N,
-					 MASKDWORD); /*read CLM calc result*/
-
-	ccx_info->CLM_result = (u16)(value32 & MASKLWORD);
-
-	ODM_RT_TRACE(dm, ODM_COMP_CCX, "[%s] : CLM result = %dus\n", __func__,
-		     ccx_info->CLM_result * 4);
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_ccx.h b/drivers/staging/rtlwifi/phydm/phydm_ccx.h
deleted file mode 100644
index b3e3e0b..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_ccx.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __PHYDMCCX_H__
-#define __PHYDMCCX_H__
-
-#define CCX_EN 1
-
-#define SET_NHM_SETTING 0
-#define STORE_NHM_SETTING 1
-#define RESTORE_NHM_SETTING 2
-
-enum nhm_inexclude_cca { NHM_EXCLUDE_CCA, NHM_INCLUDE_CCA };
-
-enum nhm_inexclude_txon { NHM_EXCLUDE_TXON, NHM_INCLUDE_TXON };
-
-struct ccx_info {
-	/*Settings*/
-	u8 NHM_th[11];
-	u16 NHM_period; /* 4us per unit */
-	u16 CLM_period; /* 4us per unit */
-	enum nhm_inexclude_txon nhm_inexclude_txon;
-	enum nhm_inexclude_cca nhm_inexclude_cca;
-
-	/*Previous Settings*/
-	u8 NHM_th_restore[11];
-	u16 NHM_period_restore; /* 4us per unit */
-	u16 CLM_period_restore; /* 4us per unit */
-	enum nhm_inexclude_txon NHM_inexclude_txon_restore;
-	enum nhm_inexclude_cca NHM_inexclude_cca_restore;
-
-	/*Report*/
-	u8 NHM_result[12];
-	u16 NHM_duration;
-	u16 CLM_result;
-
-	bool echo_NHM_en;
-	bool echo_CLM_en;
-	u8 echo_IGI;
-};
-
-/*NHM*/
-
-void phydm_nhm_setting(void *dm_void, u8 nhm_setting);
-
-void phydm_nhm_trigger(void *dm_void);
-
-void phydm_get_nhm_result(void *dm_void);
-
-bool phydm_check_nhm_ready(void *dm_void);
-
-/*CLM*/
-
-void phydm_clm_setting(void *dm_void);
-
-void phydm_clm_trigger(void *dm_void);
-
-bool phydm_check_cl_mready(void *dm_void);
-
-void phydm_get_cl_mresult(void *dm_void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_cfotracking.c b/drivers/staging/rtlwifi/phydm/phydm_cfotracking.c
deleted file mode 100644
index cf35601..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_cfotracking.c
+++ /dev/null
@@ -1,332 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-static void odm_set_crystal_cap(void *dm_void, u8 crystal_cap)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct cfo_tracking *cfo_track =
-		(struct cfo_tracking *)phydm_get_structure(dm, PHYDM_CFOTRACK);
-
-	if (cfo_track->crystal_cap == crystal_cap)
-		return;
-
-	cfo_track->crystal_cap = crystal_cap;
-
-	if (dm->support_ic_type & (ODM_RTL8188E | ODM_RTL8188F)) {
-		/* write 0x24[22:17] = 0x24[16:11] = crystal_cap */
-		crystal_cap = crystal_cap & 0x3F;
-		odm_set_bb_reg(dm, REG_AFE_XTAL_CTRL, 0x007ff800,
-			       (crystal_cap | (crystal_cap << 6)));
-	} else if (dm->support_ic_type & ODM_RTL8812) {
-		/* write 0x2C[30:25] = 0x2C[24:19] = crystal_cap */
-		crystal_cap = crystal_cap & 0x3F;
-		odm_set_bb_reg(dm, REG_MAC_PHY_CTRL, 0x7FF80000,
-			       (crystal_cap | (crystal_cap << 6)));
-	} else if ((dm->support_ic_type & (ODM_RTL8703B | ODM_RTL8723B |
-					   ODM_RTL8192E | ODM_RTL8821))) {
-		/* 0x2C[23:18] = 0x2C[17:12] = crystal_cap */
-		crystal_cap = crystal_cap & 0x3F;
-		odm_set_bb_reg(dm, REG_MAC_PHY_CTRL, 0x00FFF000,
-			       (crystal_cap | (crystal_cap << 6)));
-	} else if (dm->support_ic_type & ODM_RTL8814A) {
-		/* write 0x2C[26:21] = 0x2C[20:15] = crystal_cap */
-		crystal_cap = crystal_cap & 0x3F;
-		odm_set_bb_reg(dm, REG_MAC_PHY_CTRL, 0x07FF8000,
-			       (crystal_cap | (crystal_cap << 6)));
-	} else if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8821C)) {
-		/* write 0x24[30:25] = 0x28[6:1] = crystal_cap */
-		crystal_cap = crystal_cap & 0x3F;
-		odm_set_bb_reg(dm, REG_AFE_XTAL_CTRL, 0x7e000000, crystal_cap);
-		odm_set_bb_reg(dm, REG_AFE_PLL_CTRL, 0x7e, crystal_cap);
-	} else {
-		ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-			     "%s(): Use default setting.\n", __func__);
-		odm_set_bb_reg(dm, REG_MAC_PHY_CTRL, 0xFFF000,
-			       (crystal_cap | (crystal_cap << 6)));
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING, "%s(): crystal_cap = 0x%x\n",
-		     __func__, crystal_cap);
-
-	/* JJ modified 20161115 */
-}
-
-static u8 odm_get_default_crytaltal_cap(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 crystal_cap = 0x20;
-
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtlpriv);
-
-	crystal_cap = rtlefuse->crystalcap;
-
-	crystal_cap = crystal_cap & 0x3f;
-
-	return crystal_cap;
-}
-
-static void odm_set_atc_status(void *dm_void, bool atc_status)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct cfo_tracking *cfo_track =
-		(struct cfo_tracking *)phydm_get_structure(dm, PHYDM_CFOTRACK);
-
-	if (cfo_track->is_atc_status == atc_status)
-		return;
-
-	odm_set_bb_reg(dm, ODM_REG(BB_ATC, dm), ODM_BIT(BB_ATC, dm),
-		       atc_status);
-	cfo_track->is_atc_status = atc_status;
-}
-
-static bool odm_get_atc_status(void *dm_void)
-{
-	bool atc_status;
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	atc_status = (bool)odm_get_bb_reg(dm, ODM_REG(BB_ATC, dm),
-					  ODM_BIT(BB_ATC, dm));
-	return atc_status;
-}
-
-void odm_cfo_tracking_reset(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct cfo_tracking *cfo_track =
-		(struct cfo_tracking *)phydm_get_structure(dm, PHYDM_CFOTRACK);
-
-	cfo_track->def_x_cap = odm_get_default_crytaltal_cap(dm);
-	cfo_track->is_adjust = true;
-
-	if (cfo_track->crystal_cap > cfo_track->def_x_cap) {
-		odm_set_crystal_cap(dm, cfo_track->crystal_cap - 1);
-		ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-			     "%s(): approch default value (0x%x)\n", __func__,
-			     cfo_track->crystal_cap);
-	} else if (cfo_track->crystal_cap < cfo_track->def_x_cap) {
-		odm_set_crystal_cap(dm, cfo_track->crystal_cap + 1);
-		ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-			     "%s(): approch default value (0x%x)\n", __func__,
-			     cfo_track->crystal_cap);
-	}
-
-	odm_set_atc_status(dm, true);
-}
-
-void odm_cfo_tracking_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct cfo_tracking *cfo_track =
-		(struct cfo_tracking *)phydm_get_structure(dm, PHYDM_CFOTRACK);
-
-	cfo_track->crystal_cap = odm_get_default_crytaltal_cap(dm);
-	cfo_track->def_x_cap = cfo_track->crystal_cap;
-	cfo_track->is_atc_status = odm_get_atc_status(dm);
-	cfo_track->is_adjust = true;
-	ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING, "%s()=========>\n", __func__);
-	ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-		     "%s(): is_atc_status = %d, crystal_cap = 0x%x\n", __func__,
-		     cfo_track->is_atc_status, cfo_track->def_x_cap);
-
-	/* Crystal cap. control by WiFi */
-	if (dm->support_ic_type & ODM_RTL8822B)
-		odm_set_bb_reg(dm, 0x10, 0x40, 0x1);
-}
-
-void odm_cfo_tracking(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct cfo_tracking *cfo_track =
-		(struct cfo_tracking *)phydm_get_structure(dm, PHYDM_CFOTRACK);
-	s32 cfo_ave = 0;
-	u32 cfo_rpt_sum, cfo_khz_avg[4] = {0};
-	s32 cfo_ave_diff;
-	s8 crystal_cap = cfo_track->crystal_cap;
-	u8 adjust_xtal = 1, i, valid_path_cnt = 0;
-
-	/* 4 Support ability */
-	if (!(dm->support_ability & ODM_BB_CFO_TRACKING)) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_CFO_TRACKING,
-			"%s(): Return: support_ability ODM_BB_CFO_TRACKING is disabled\n",
-			__func__);
-		return;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING, "%s()=========>\n", __func__);
-
-	if (!dm->is_linked || !dm->is_one_entry_only) {
-		/* 4 No link or more than one entry */
-		odm_cfo_tracking_reset(dm);
-		ODM_RT_TRACE(
-			dm, ODM_COMP_CFO_TRACKING,
-			"%s(): Reset: is_linked = %d, is_one_entry_only = %d\n",
-			__func__, dm->is_linked, dm->is_one_entry_only);
-	} else {
-		/* 3 1. CFO Tracking */
-		/* 4 1.1 No new packet */
-		if (cfo_track->packet_count == cfo_track->packet_count_pre) {
-			ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-				     "%s(): packet counter doesn't change\n",
-				     __func__);
-			return;
-		}
-		cfo_track->packet_count_pre = cfo_track->packet_count;
-
-		/* 4 1.2 Calculate CFO */
-		for (i = 0; i < dm->num_rf_path; i++) {
-			if (cfo_track->CFO_cnt[i] == 0)
-				continue;
-
-			valid_path_cnt++;
-			cfo_rpt_sum =
-				(u32)((cfo_track->CFO_tail[i] < 0) ?
-					      (0 - cfo_track->CFO_tail[i]) :
-					      cfo_track->CFO_tail[i]);
-			cfo_khz_avg[i] = CFO_HW_RPT_2_MHZ(cfo_rpt_sum) /
-					 cfo_track->CFO_cnt[i];
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CFO_TRACKING,
-				"[path %d] cfo_rpt_sum = (( %d )), CFO_cnt = (( %d )) , CFO_avg= (( %s%d )) kHz\n",
-				i, cfo_rpt_sum, cfo_track->CFO_cnt[i],
-				((cfo_track->CFO_tail[i] < 0) ? "-" : " "),
-				cfo_khz_avg[i]);
-		}
-
-		for (i = 0; i < valid_path_cnt; i++) {
-			if (cfo_track->CFO_tail[i] < 0) {
-				/* */
-				cfo_ave += (0 - (s32)cfo_khz_avg[i]);
-			} else {
-				cfo_ave += (s32)cfo_khz_avg[i];
-			}
-		}
-
-		if (valid_path_cnt >= 2)
-			cfo_ave = cfo_ave / valid_path_cnt;
-
-		ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-			     "valid_path_cnt = ((%d)), cfo_ave = ((%d kHz))\n",
-			     valid_path_cnt, cfo_ave);
-
-		/*reset counter*/
-		for (i = 0; i < dm->num_rf_path; i++) {
-			cfo_track->CFO_tail[i] = 0;
-			cfo_track->CFO_cnt[i] = 0;
-		}
-
-		/* 4 1.3 Avoid abnormal large CFO */
-		cfo_ave_diff = (cfo_track->CFO_ave_pre >= cfo_ave) ?
-				       (cfo_track->CFO_ave_pre - cfo_ave) :
-				       (cfo_ave - cfo_track->CFO_ave_pre);
-		if (cfo_ave_diff > 20 && cfo_track->large_cfo_hit == 0 &&
-		    !cfo_track->is_adjust) {
-			ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-				     "%s(): first large CFO hit\n", __func__);
-			cfo_track->large_cfo_hit = 1;
-			return;
-		}
-
-		cfo_track->large_cfo_hit = 0;
-		cfo_track->CFO_ave_pre = cfo_ave;
-
-		/* 4 1.4 Dynamic Xtal threshold */
-		if (!cfo_track->is_adjust) {
-			if (cfo_ave > CFO_TH_XTAL_HIGH ||
-			    cfo_ave < (-CFO_TH_XTAL_HIGH))
-				cfo_track->is_adjust = true;
-		} else {
-			if (cfo_ave < CFO_TH_XTAL_LOW &&
-			    cfo_ave > (-CFO_TH_XTAL_LOW))
-				cfo_track->is_adjust = false;
-		}
-
-		/* 4 1.5 BT case: Disable CFO tracking */
-		if (dm->is_bt_enabled) {
-			cfo_track->is_adjust = false;
-			odm_set_crystal_cap(dm, cfo_track->def_x_cap);
-			ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-				     "%s(): Disable CFO tracking for BT!!\n",
-				     __func__);
-		}
-
-		/* 4 1.7 Adjust Crystal Cap. */
-		if (cfo_track->is_adjust) {
-			if (cfo_ave > CFO_TH_XTAL_LOW)
-				crystal_cap = crystal_cap + adjust_xtal;
-			else if (cfo_ave < (-CFO_TH_XTAL_LOW))
-				crystal_cap = crystal_cap - adjust_xtal;
-
-			if (crystal_cap > 0x3f)
-				crystal_cap = 0x3f;
-			else if (crystal_cap < 0)
-				crystal_cap = 0;
-
-			odm_set_crystal_cap(dm, (u8)crystal_cap);
-		}
-		ODM_RT_TRACE(
-			dm, ODM_COMP_CFO_TRACKING,
-			"%s(): Crystal cap = 0x%x, Default Crystal cap = 0x%x\n",
-			__func__, cfo_track->crystal_cap, cfo_track->def_x_cap);
-
-		if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-			return;
-
-		/* 3 2. Dynamic ATC switch */
-		if (cfo_ave < CFO_TH_ATC && cfo_ave > -CFO_TH_ATC) {
-			odm_set_atc_status(dm, false);
-			ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-				     "%s(): Disable ATC!!\n", __func__);
-		} else {
-			odm_set_atc_status(dm, true);
-			ODM_RT_TRACE(dm, ODM_COMP_CFO_TRACKING,
-				     "%s(): Enable ATC!!\n", __func__);
-		}
-	}
-}
-
-void odm_parsing_cfo(void *dm_void, void *pktinfo_void, s8 *pcfotail, u8 num_ss)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_per_pkt_info *pktinfo =
-		(struct dm_per_pkt_info *)pktinfo_void;
-	struct cfo_tracking *cfo_track =
-		(struct cfo_tracking *)phydm_get_structure(dm, PHYDM_CFOTRACK);
-	u8 i;
-
-	if (!(dm->support_ability & ODM_BB_CFO_TRACKING))
-		return;
-
-	if (pktinfo->is_packet_match_bssid) {
-		if (num_ss > dm->num_rf_path) /*For fool proof*/
-			num_ss = dm->num_rf_path;
-
-		/* 3 Update CFO report for path-A & path-B */
-		/* Only paht-A and path-B have CFO tail and short CFO */
-		for (i = 0; i < num_ss; i++) {
-			cfo_track->CFO_tail[i] += pcfotail[i];
-			cfo_track->CFO_cnt[i]++;
-		}
-
-		/* 3 Update packet counter */
-		if (cfo_track->packet_count == 0xffffffff)
-			cfo_track->packet_count = 0;
-		else
-			cfo_track->packet_count++;
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_cfotracking.h b/drivers/staging/rtlwifi/phydm/phydm_cfotracking.h
deleted file mode 100644
index 1ab0156..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_cfotracking.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMCFOTRACK_H__
-#define __PHYDMCFOTRACK_H__
-
-#define CFO_TRACKING_VERSION "1.4" /*2015.10.01	Stanley, Modify for 8822B*/
-
-#define CFO_TH_XTAL_HIGH 20 /* kHz */
-#define CFO_TH_XTAL_LOW 10 /* kHz */
-#define CFO_TH_ATC 80 /* kHz */
-
-struct cfo_tracking {
-	bool is_atc_status;
-	bool large_cfo_hit;
-	bool is_adjust;
-	u8 crystal_cap;
-	u8 def_x_cap;
-	s32 CFO_tail[4];
-	u32 CFO_cnt[4];
-	s32 CFO_ave_pre;
-	u32 packet_count;
-	u32 packet_count_pre;
-
-	bool is_force_xtal_cap;
-	bool is_reset;
-};
-
-void odm_cfo_tracking_reset(void *dm_void);
-
-void odm_cfo_tracking_init(void *dm_void);
-
-void odm_cfo_tracking(void *dm_void);
-
-void odm_parsing_cfo(void *dm_void, void *pktinfo_void, s8 *pcfotail,
-		     u8 num_ss);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_debug.c b/drivers/staging/rtlwifi/phydm/phydm_debug.c
deleted file mode 100644
index 5e01510..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_debug.c
+++ /dev/null
@@ -1,2884 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-#include <linux/kernel.h>
-
-bool phydm_api_set_txagc(struct phy_dm_struct *, u32, enum odm_rf_radio_path,
-			 u8, bool);
-static inline void phydm_check_dmval_txagc(struct phy_dm_struct *dm, u32 used,
-					   u32 out_len, u32 *const dm_value,
-					   char *output)
-{
-	if ((u8)dm_value[2] != 0xff) {
-		if (phydm_api_set_txagc(dm, dm_value[3],
-					(enum odm_rf_radio_path)dm_value[1],
-					(u8)dm_value[2], true))
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "  %s%d   %s%x%s%x\n", "Write path-",
-				       dm_value[1], "rate index-0x",
-				       dm_value[2], " = 0x", dm_value[3]);
-		else
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "  %s%d   %s%x%s\n", "Write path-",
-				       (dm_value[1] & 0x1), "rate index-0x",
-				       (dm_value[2] & 0x7f), " fail");
-	} else {
-		u8 i;
-		u32 power_index;
-		bool status = true;
-
-		power_index = (dm_value[3] & 0x3f);
-
-		if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8821C)) {
-			power_index = (power_index << 24) |
-				      (power_index << 16) | (power_index << 8) |
-				      (power_index);
-			for (i = 0; i < ODM_RATEVHTSS2MCS9; i += 4)
-				status &= phydm_api_set_txagc(dm, power_index,
-						  (enum odm_rf_radio_path)
-							  dm_value[1],
-						  i, false);
-		} else if (dm->support_ic_type & ODM_RTL8197F) {
-			for (i = 0; i <= ODM_RATEMCS15; i++)
-				status &= phydm_api_set_txagc(dm, power_index,
-						  (enum odm_rf_radio_path)
-							  dm_value[1],
-						  i, false);
-		}
-
-		if (status)
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "  %s%d   %s%x\n",
-				       "Write all TXAGC of path-", dm_value[1],
-				       " = 0x", dm_value[3]);
-		else
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "  %s%d   %s\n",
-				       "Write all TXAGC of path-", dm_value[1],
-				       " fail");
-	}
-}
-
-static inline void phydm_print_nhm_trigger(char *output, u32 used, u32 out_len,
-					   struct ccx_info *ccx_info)
-{
-	int i;
-
-	for (i = 0; i <= 10; i++) {
-		if (i == 5)
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"\r\n NHM_th[%d] = 0x%x, echo_IGI = 0x%x", i,
-				ccx_info->NHM_th[i], ccx_info->echo_IGI);
-		else if (i == 10)
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n NHM_th[%d] = 0x%x\n", i,
-				       ccx_info->NHM_th[i]);
-		else
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n NHM_th[%d] = 0x%x", i,
-				       ccx_info->NHM_th[i]);
-	}
-}
-
-static inline void phydm_print_nhm_result(char *output, u32 used, u32 out_len,
-					  struct ccx_info *ccx_info)
-{
-	int i;
-
-	for (i = 0; i <= 11; i++) {
-		if (i == 5)
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"\r\n nhm_result[%d] = %d, echo_IGI = 0x%x", i,
-				ccx_info->NHM_result[i], ccx_info->echo_IGI);
-		else if (i == 11)
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n nhm_result[%d] = %d\n", i,
-				       ccx_info->NHM_result[i]);
-		else
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n nhm_result[%d] = %d", i,
-				       ccx_info->NHM_result[i]);
-	}
-}
-
-static inline void phydm_print_csi(struct phy_dm_struct *dm, u32 used,
-				   u32 out_len, char *output)
-{
-	int index, ptr;
-	u32 dword_h, dword_l;
-
-	for (index = 0; index < 80; index++) {
-		ptr = index + 256;
-
-		if (ptr > 311)
-			ptr -= 312;
-
-		odm_set_bb_reg(dm, 0x1910, 0x03FF0000, ptr); /*Select Address*/
-		dword_h = odm_get_bb_reg(dm, 0xF74, MASKDWORD);
-		dword_l = odm_get_bb_reg(dm, 0xF5C, MASKDWORD);
-
-		PHYDM_SNPRINTF(output + used,
-			       out_len - used,
-			       "%02x  %02x  %02x  %02x  %02x  %02x  %02x  %02x\n",
-			       dword_l & MASKBYTE0,
-			       (dword_l & MASKBYTE1) >> 8,
-			       (dword_l & MASKBYTE2) >> 16,
-			       (dword_l & MASKBYTE3) >> 24,
-			       dword_h & MASKBYTE0,
-			       (dword_h & MASKBYTE1) >> 8,
-			       (dword_h & MASKBYTE2) >> 16,
-			       (dword_h & MASKBYTE3) >> 24);
-	}
-}
-
-void phydm_init_debug_setting(struct phy_dm_struct *dm)
-{
-	dm->debug_level = ODM_DBG_TRACE;
-
-	dm->fw_debug_components = 0;
-	dm->debug_components = 0;
-
-	dm->fw_buff_is_enpty = true;
-	dm->pre_c2h_seq = 0;
-}
-
-u8 phydm_set_bb_dbg_port(void *dm_void, u8 curr_dbg_priority, u32 debug_port)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 dbg_port_result = false;
-
-	if (curr_dbg_priority > dm->pre_dbg_priority) {
-		if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-			odm_set_bb_reg(dm, 0x8fc, MASKDWORD, debug_port);
-			/**/
-		} else /*if (dm->support_ic_type & ODM_IC_11N_SERIES)*/ {
-			odm_set_bb_reg(dm, 0x908, MASKDWORD, debug_port);
-			/**/
-		}
-		ODM_RT_TRACE(
-			dm, ODM_COMP_API,
-			"DbgPort set success, Reg((0x%x)), Cur_priority=((%d)), Pre_priority=((%d))\n",
-			debug_port, curr_dbg_priority, dm->pre_dbg_priority);
-		dm->pre_dbg_priority = curr_dbg_priority;
-		dbg_port_result = true;
-	}
-
-	return dbg_port_result;
-}
-
-void phydm_release_bb_dbg_port(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	dm->pre_dbg_priority = BB_DBGPORT_RELEASE;
-	ODM_RT_TRACE(dm, ODM_COMP_API, "Release BB dbg_port\n");
-}
-
-u32 phydm_get_bb_dbg_port_value(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 dbg_port_value = 0;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		dbg_port_value = odm_get_bb_reg(dm, 0xfa0, MASKDWORD);
-		/**/
-	} else /*if (dm->support_ic_type & ODM_IC_11N_SERIES)*/ {
-		dbg_port_value = odm_get_bb_reg(dm, 0xdf4, MASKDWORD);
-		/**/
-	}
-	ODM_RT_TRACE(dm, ODM_COMP_API, "dbg_port_value = 0x%x\n",
-		     dbg_port_value);
-	return dbg_port_value;
-}
-
-static void phydm_bb_rx_hang_info(void *dm_void, u32 *_used, char *output,
-				  u32 *_out_len)
-{
-	u32 value32 = 0;
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		return;
-
-	value32 = odm_get_bb_reg(dm, 0xF80, MASKDWORD);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = 0x%x",
-		       "rptreg of sc/bw/ht/...", value32);
-
-	if (dm->support_ic_type & ODM_RTL8822B)
-		odm_set_bb_reg(dm, 0x198c, BIT(2) | BIT(1) | BIT(0), 7);
-
-	/* dbg_port = basic state machine */
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x000);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "basic state machine",
-			       value32);
-	}
-
-	/* dbg_port = state machine */
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x007);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "state machine", value32);
-	}
-
-	/* dbg_port = CCA-related*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x204);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "CCA-related", value32);
-	}
-
-	/* dbg_port = edcca/rxd*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x278);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "edcca/rxd", value32);
-	}
-
-	/* dbg_port = rx_state/mux_state/ADC_MASK_OFDM*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x290);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x",
-			       "rx_state/mux_state/ADC_MASK_OFDM", value32);
-	}
-
-	/* dbg_port = bf-related*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x2B2);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "bf-related", value32);
-	}
-
-	/* dbg_port = bf-related*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x2B8);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "bf-related", value32);
-	}
-
-	/* dbg_port = txon/rxd*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0xA03);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "txon/rxd", value32);
-	}
-
-	/* dbg_port = l_rate/l_length*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0xA0B);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "l_rate/l_length", value32);
-	}
-
-	/* dbg_port = rxd/rxd_hit*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0xA0D);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "rxd/rxd_hit", value32);
-	}
-
-	/* dbg_port = dis_cca*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0xAA0);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "dis_cca", value32);
-	}
-
-	/* dbg_port = tx*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0xAB0);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "tx", value32);
-	}
-
-	/* dbg_port = rx plcp*/
-	{
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0xAD0);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "rx plcp", value32);
-
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0xAD1);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "rx plcp", value32);
-
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0xAD2);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "rx plcp", value32);
-
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0xAD3);
-		value32 = odm_get_bb_reg(dm, ODM_REG_DBG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "0x8fc", value32);
-
-		value32 = odm_get_bb_reg(dm, ODM_REG_RPT_11AC, MASKDWORD);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = 0x%x", "rx plcp", value32);
-	}
-}
-
-static void phydm_bb_debug_info_n_series(void *dm_void, u32 *_used,
-					 char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	u32 value32 = 0, value32_1 = 0;
-	u8 rf_gain_a = 0, rf_gain_b = 0, rf_gain_c = 0, rf_gain_d = 0;
-	u8 rx_snr_a = 0, rx_snr_b = 0, rx_snr_c = 0, rx_snr_d = 0;
-
-	s8 rxevm_0 = 0, rxevm_1 = 0;
-	s32 short_cfo_a = 0, short_cfo_b = 0, long_cfo_a = 0, long_cfo_b = 0;
-	s32 scfo_a = 0, scfo_b = 0, avg_cfo_a = 0, avg_cfo_b = 0;
-	s32 cfo_end_a = 0, cfo_end_b = 0, acq_cfo_a = 0, acq_cfo_b = 0;
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s\n",
-		       "BB Report Info");
-
-	/*AGC result*/
-	value32 = odm_get_bb_reg(dm, 0xdd0, MASKDWORD);
-	rf_gain_a = (u8)(value32 & 0x3f);
-	rf_gain_a = rf_gain_a << 1;
-
-	rf_gain_b = (u8)((value32 >> 8) & 0x3f);
-	rf_gain_b = rf_gain_b << 1;
-
-	rf_gain_c = (u8)((value32 >> 16) & 0x3f);
-	rf_gain_c = rf_gain_c << 1;
-
-	rf_gain_d = (u8)((value32 >> 24) & 0x3f);
-	rf_gain_d = rf_gain_d << 1;
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d / %d",
-		       "OFDM RX RF Gain(A/B/C/D)", rf_gain_a, rf_gain_b,
-		       rf_gain_c, rf_gain_d);
-
-	/*SNR report*/
-	value32 = odm_get_bb_reg(dm, 0xdd4, MASKDWORD);
-	rx_snr_a = (u8)(value32 & 0xff);
-	rx_snr_a = rx_snr_a >> 1;
-
-	rx_snr_b = (u8)((value32 >> 8) & 0xff);
-	rx_snr_b = rx_snr_b >> 1;
-
-	rx_snr_c = (u8)((value32 >> 16) & 0xff);
-	rx_snr_c = rx_snr_c >> 1;
-
-	rx_snr_d = (u8)((value32 >> 24) & 0xff);
-	rx_snr_d = rx_snr_d >> 1;
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d / %d", "RXSNR(A/B/C/D, dB)",
-		       rx_snr_a, rx_snr_b, rx_snr_c, rx_snr_d);
-
-	/* PostFFT related info*/
-	value32 = odm_get_bb_reg(dm, 0xdd8, MASKDWORD);
-
-	rxevm_0 = (s8)((value32 & MASKBYTE2) >> 16);
-	rxevm_0 /= 2;
-	if (rxevm_0 < -63)
-		rxevm_0 = 0;
-
-	rxevm_1 = (s8)((value32 & MASKBYTE3) >> 24);
-	rxevm_1 /= 2;
-	if (rxevm_1 < -63)
-		rxevm_1 = 0;
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "RXEVM (1ss/2ss)", rxevm_0, rxevm_1);
-
-	/*CFO Report Info*/
-	odm_set_bb_reg(dm, 0xd00, BIT(26), 1);
-
-	/*Short CFO*/
-	value32 = odm_get_bb_reg(dm, 0xdac, MASKDWORD);
-	value32_1 = odm_get_bb_reg(dm, 0xdb0, MASKDWORD);
-
-	short_cfo_b = (s32)(value32 & 0xfff); /*S(12,11)*/
-	short_cfo_a = (s32)((value32 & 0x0fff0000) >> 16);
-
-	long_cfo_b = (s32)(value32_1 & 0x1fff); /*S(13,12)*/
-	long_cfo_a = (s32)((value32_1 & 0x1fff0000) >> 16);
-
-	/*SFO 2's to dec*/
-	if (short_cfo_a > 2047)
-		short_cfo_a = short_cfo_a - 4096;
-	if (short_cfo_b > 2047)
-		short_cfo_b = short_cfo_b - 4096;
-
-	short_cfo_a = (short_cfo_a * 312500) / 2048;
-	short_cfo_b = (short_cfo_b * 312500) / 2048;
-
-	/*LFO 2's to dec*/
-
-	if (long_cfo_a > 4095)
-		long_cfo_a = long_cfo_a - 8192;
-
-	if (long_cfo_b > 4095)
-		long_cfo_b = long_cfo_b - 8192;
-
-	long_cfo_a = long_cfo_a * 312500 / 4096;
-	long_cfo_b = long_cfo_b * 312500 / 4096;
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s",
-		       "CFO Report Info");
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "Short CFO(Hz) <A/B>", short_cfo_a, short_cfo_b);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "Long CFO(Hz) <A/B>", long_cfo_a, long_cfo_b);
-
-	/*SCFO*/
-	value32 = odm_get_bb_reg(dm, 0xdb8, MASKDWORD);
-	value32_1 = odm_get_bb_reg(dm, 0xdb4, MASKDWORD);
-
-	scfo_b = (s32)(value32 & 0x7ff); /*S(11,10)*/
-	scfo_a = (s32)((value32 & 0x07ff0000) >> 16);
-
-	if (scfo_a > 1023)
-		scfo_a = scfo_a - 2048;
-
-	if (scfo_b > 1023)
-		scfo_b = scfo_b - 2048;
-
-	scfo_a = scfo_a * 312500 / 1024;
-	scfo_b = scfo_b * 312500 / 1024;
-
-	avg_cfo_b = (s32)(value32_1 & 0x1fff); /*S(13,12)*/
-	avg_cfo_a = (s32)((value32_1 & 0x1fff0000) >> 16);
-
-	if (avg_cfo_a > 4095)
-		avg_cfo_a = avg_cfo_a - 8192;
-
-	if (avg_cfo_b > 4095)
-		avg_cfo_b = avg_cfo_b - 8192;
-
-	avg_cfo_a = avg_cfo_a * 312500 / 4096;
-	avg_cfo_b = avg_cfo_b * 312500 / 4096;
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "value SCFO(Hz) <A/B>", scfo_a, scfo_b);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "Avg CFO(Hz) <A/B>", avg_cfo_a, avg_cfo_b);
-
-	value32 = odm_get_bb_reg(dm, 0xdbc, MASKDWORD);
-	value32_1 = odm_get_bb_reg(dm, 0xde0, MASKDWORD);
-
-	cfo_end_b = (s32)(value32 & 0x1fff); /*S(13,12)*/
-	cfo_end_a = (s32)((value32 & 0x1fff0000) >> 16);
-
-	if (cfo_end_a > 4095)
-		cfo_end_a = cfo_end_a - 8192;
-
-	if (cfo_end_b > 4095)
-		cfo_end_b = cfo_end_b - 8192;
-
-	cfo_end_a = cfo_end_a * 312500 / 4096;
-	cfo_end_b = cfo_end_b * 312500 / 4096;
-
-	acq_cfo_b = (s32)(value32_1 & 0x1fff); /*S(13,12)*/
-	acq_cfo_a = (s32)((value32_1 & 0x1fff0000) >> 16);
-
-	if (acq_cfo_a > 4095)
-		acq_cfo_a = acq_cfo_a - 8192;
-
-	if (acq_cfo_b > 4095)
-		acq_cfo_b = acq_cfo_b - 8192;
-
-	acq_cfo_a = acq_cfo_a * 312500 / 4096;
-	acq_cfo_b = acq_cfo_b * 312500 / 4096;
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "End CFO(Hz) <A/B>", cfo_end_a, cfo_end_b);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "ACQ CFO(Hz) <A/B>", acq_cfo_a, acq_cfo_b);
-}
-
-static void phydm_bb_debug_info(void *dm_void, u32 *_used, char *output,
-				u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	char *tmp_string = NULL;
-
-	u8 rx_ht_bw, rx_vht_bw, rxsc, rx_ht, rx_bw;
-	static u8 v_rx_bw;
-	u32 value32, value32_1, value32_2, value32_3;
-	s32 sfo_a, sfo_b, sfo_c, sfo_d;
-	s32 lfo_a, lfo_b, lfo_c, lfo_d;
-	static u8 MCSS, tail, parity, rsv, vrsv, idx, smooth, htsound, agg,
-		stbc, vstbc, fec, fecext, sgi, sgiext, htltf, vgid, v_nsts,
-		vtxops, vrsv2, vbrsv, bf, vbcrc;
-	static u16 h_length, htcrc8, length;
-	static u16 vpaid;
-	static u16 v_length, vhtcrc8, v_mcss, v_tail, vb_tail;
-	static u8 hmcss, hrx_bw;
-
-	u8 pwdb;
-	s8 rxevm_0, rxevm_1, rxevm_2;
-	u8 rf_gain_path_a, rf_gain_path_b, rf_gain_path_c, rf_gain_path_d;
-	u8 rx_snr_path_a, rx_snr_path_b, rx_snr_path_c, rx_snr_path_d;
-	s32 sig_power;
-
-	const char *L_rate[8] = {"6M",  "9M",  "12M", "18M",
-				 "24M", "36M", "48M", "54M"};
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		phydm_bb_debug_info_n_series(dm, &used, output, &out_len);
-		return;
-	}
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s\n",
-		       "BB Report Info");
-
-	/*BW & mode Detection*/
-
-	value32 = odm_get_bb_reg(dm, 0xf80, MASKDWORD);
-	value32_2 = value32;
-	rx_ht_bw = (u8)(value32 & 0x1);
-	rx_vht_bw = (u8)((value32 >> 1) & 0x3);
-	rxsc = (u8)(value32 & 0x78);
-	value32_1 = (value32 & 0x180) >> 7;
-	rx_ht = (u8)(value32_1);
-
-	rx_bw = 0;
-
-	if (rx_ht == 2) {
-		if (rx_vht_bw == 0)
-			tmp_string = "20M";
-		else if (rx_vht_bw == 1)
-			tmp_string = "40M";
-		else
-			tmp_string = "80M";
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s %s %s", "mode", "VHT", tmp_string);
-		rx_bw = rx_vht_bw;
-	} else if (rx_ht == 1) {
-		if (rx_ht_bw == 0)
-			tmp_string = "20M";
-		else if (rx_ht_bw == 1)
-			tmp_string = "40M";
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s %s %s", "mode", "HT", tmp_string);
-		rx_bw = rx_ht_bw;
-	} else {
-		PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s %s",
-			       "mode", "Legacy");
-	}
-	if (rx_ht != 0) {
-		if (rxsc == 0)
-			tmp_string = "duplicate/full bw";
-		else if (rxsc == 1)
-			tmp_string = "usc20-1";
-		else if (rxsc == 2)
-			tmp_string = "lsc20-1";
-		else if (rxsc == 3)
-			tmp_string = "usc20-2";
-		else if (rxsc == 4)
-			tmp_string = "lsc20-2";
-		else if (rxsc == 9)
-			tmp_string = "usc40";
-		else if (rxsc == 10)
-			tmp_string = "lsc40";
-		PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s",
-			       tmp_string);
-	}
-
-	/* RX signal power and AGC related info*/
-
-	value32 = odm_get_bb_reg(dm, 0xF90, MASKDWORD);
-	pwdb = (u8)((value32 & MASKBYTE1) >> 8);
-	pwdb = pwdb >> 1;
-	sig_power = -110 + pwdb;
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d",
-		       "OFDM RX Signal Power(dB)", sig_power);
-
-	value32 = odm_get_bb_reg(dm, 0xd14, MASKDWORD);
-	rx_snr_path_a = (u8)(value32 & 0xFF) >> 1;
-	rf_gain_path_a = (s8)((value32 & MASKBYTE1) >> 8);
-	rf_gain_path_a *= 2;
-	value32 = odm_get_bb_reg(dm, 0xd54, MASKDWORD);
-	rx_snr_path_b = (u8)(value32 & 0xFF) >> 1;
-	rf_gain_path_b = (s8)((value32 & MASKBYTE1) >> 8);
-	rf_gain_path_b *= 2;
-	value32 = odm_get_bb_reg(dm, 0xd94, MASKDWORD);
-	rx_snr_path_c = (u8)(value32 & 0xFF) >> 1;
-	rf_gain_path_c = (s8)((value32 & MASKBYTE1) >> 8);
-	rf_gain_path_c *= 2;
-	value32 = odm_get_bb_reg(dm, 0xdd4, MASKDWORD);
-	rx_snr_path_d = (u8)(value32 & 0xFF) >> 1;
-	rf_gain_path_d = (s8)((value32 & MASKBYTE1) >> 8);
-	rf_gain_path_d *= 2;
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d / %d",
-		       "OFDM RX RF Gain(A/B/C/D)", rf_gain_path_a,
-		       rf_gain_path_b, rf_gain_path_c, rf_gain_path_d);
-
-	/* RX counter related info*/
-
-	value32 = odm_get_bb_reg(dm, 0xF08, MASKDWORD);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d",
-		       "OFDM CCA counter", ((value32 & 0xFFFF0000) >> 16));
-
-	value32 = odm_get_bb_reg(dm, 0xFD0, MASKDWORD);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d",
-		       "OFDM SBD Fail counter", value32 & 0xFFFF);
-
-	value32 = odm_get_bb_reg(dm, 0xFC4, MASKDWORD);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "VHT SIGA/SIGB CRC8 Fail counter", value32 & 0xFFFF,
-		       ((value32 & 0xFFFF0000) >> 16));
-
-	value32 = odm_get_bb_reg(dm, 0xFCC, MASKDWORD);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d",
-		       "CCK CCA counter", value32 & 0xFFFF);
-
-	value32 = odm_get_bb_reg(dm, 0xFBC, MASKDWORD);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "LSIG (parity Fail/rate Illegal) counter",
-		       value32 & 0xFFFF, ((value32 & 0xFFFF0000) >> 16));
-
-	value32_1 = odm_get_bb_reg(dm, 0xFC8, MASKDWORD);
-	value32_2 = odm_get_bb_reg(dm, 0xFC0, MASKDWORD);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "HT/VHT MCS NOT SUPPORT counter",
-		       ((value32_2 & 0xFFFF0000) >> 16), value32_1 & 0xFFFF);
-
-	/* PostFFT related info*/
-	value32 = odm_get_bb_reg(dm, 0xF8c, MASKDWORD);
-	rxevm_0 = (s8)((value32 & MASKBYTE2) >> 16);
-	rxevm_0 /= 2;
-	if (rxevm_0 < -63)
-		rxevm_0 = 0;
-
-	rxevm_1 = (s8)((value32 & MASKBYTE3) >> 24);
-	rxevm_1 /= 2;
-	value32 = odm_get_bb_reg(dm, 0xF88, MASKDWORD);
-	rxevm_2 = (s8)((value32 & MASKBYTE2) >> 16);
-	rxevm_2 /= 2;
-
-	if (rxevm_1 < -63)
-		rxevm_1 = 0;
-	if (rxevm_2 < -63)
-		rxevm_2 = 0;
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d", "RXEVM (1ss/2ss/3ss)",
-		       rxevm_0, rxevm_1, rxevm_2);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d / %d", "RXSNR(A/B/C/D, dB)",
-		       rx_snr_path_a, rx_snr_path_b, rx_snr_path_c,
-		       rx_snr_path_d);
-
-	value32 = odm_get_bb_reg(dm, 0xF8C, MASKDWORD);
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s = %d / %d",
-		       "CSI_1st /CSI_2nd", value32 & 0xFFFF,
-		       ((value32 & 0xFFFF0000) >> 16));
-
-	/*BW & mode Detection*/
-
-	/*Reset Page F counter*/
-	odm_set_bb_reg(dm, 0xB58, BIT(0), 1);
-	odm_set_bb_reg(dm, 0xB58, BIT(0), 0);
-
-	/*CFO Report Info*/
-	/*Short CFO*/
-	value32 = odm_get_bb_reg(dm, 0xd0c, MASKDWORD);
-	value32_1 = odm_get_bb_reg(dm, 0xd4c, MASKDWORD);
-	value32_2 = odm_get_bb_reg(dm, 0xd8c, MASKDWORD);
-	value32_3 = odm_get_bb_reg(dm, 0xdcc, MASKDWORD);
-
-	sfo_a = (s32)(value32 & 0xfff);
-	sfo_b = (s32)(value32_1 & 0xfff);
-	sfo_c = (s32)(value32_2 & 0xfff);
-	sfo_d = (s32)(value32_3 & 0xfff);
-
-	lfo_a = (s32)(value32 >> 16);
-	lfo_b = (s32)(value32_1 >> 16);
-	lfo_c = (s32)(value32_2 >> 16);
-	lfo_d = (s32)(value32_3 >> 16);
-
-	/*SFO 2's to dec*/
-	if (sfo_a > 2047)
-		sfo_a = sfo_a - 4096;
-	sfo_a = (sfo_a * 312500) / 2048;
-	if (sfo_b > 2047)
-		sfo_b = sfo_b - 4096;
-	sfo_b = (sfo_b * 312500) / 2048;
-	if (sfo_c > 2047)
-		sfo_c = sfo_c - 4096;
-	sfo_c = (sfo_c * 312500) / 2048;
-	if (sfo_d > 2047)
-		sfo_d = sfo_d - 4096;
-	sfo_d = (sfo_d * 312500) / 2048;
-
-	/*LFO 2's to dec*/
-
-	if (lfo_a > 4095)
-		lfo_a = lfo_a - 8192;
-
-	if (lfo_b > 4095)
-		lfo_b = lfo_b - 8192;
-
-	if (lfo_c > 4095)
-		lfo_c = lfo_c - 8192;
-
-	if (lfo_d > 4095)
-		lfo_d = lfo_d - 8192;
-	lfo_a = lfo_a * 312500 / 4096;
-	lfo_b = lfo_b * 312500 / 4096;
-	lfo_c = lfo_c * 312500 / 4096;
-	lfo_d = lfo_d * 312500 / 4096;
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s",
-		       "CFO Report Info");
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d /%d",
-		       "Short CFO(Hz) <A/B/C/D>", sfo_a, sfo_b, sfo_c, sfo_d);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d /%d",
-		       "Long CFO(Hz) <A/B/C/D>", lfo_a, lfo_b, lfo_c, lfo_d);
-
-	/*SCFO*/
-	value32 = odm_get_bb_reg(dm, 0xd10, MASKDWORD);
-	value32_1 = odm_get_bb_reg(dm, 0xd50, MASKDWORD);
-	value32_2 = odm_get_bb_reg(dm, 0xd90, MASKDWORD);
-	value32_3 = odm_get_bb_reg(dm, 0xdd0, MASKDWORD);
-
-	sfo_a = (s32)(value32 & 0x7ff);
-	sfo_b = (s32)(value32_1 & 0x7ff);
-	sfo_c = (s32)(value32_2 & 0x7ff);
-	sfo_d = (s32)(value32_3 & 0x7ff);
-
-	if (sfo_a > 1023)
-		sfo_a = sfo_a - 2048;
-
-	if (sfo_b > 2047)
-		sfo_b = sfo_b - 4096;
-
-	if (sfo_c > 2047)
-		sfo_c = sfo_c - 4096;
-
-	if (sfo_d > 2047)
-		sfo_d = sfo_d - 4096;
-
-	sfo_a = sfo_a * 312500 / 1024;
-	sfo_b = sfo_b * 312500 / 1024;
-	sfo_c = sfo_c * 312500 / 1024;
-	sfo_d = sfo_d * 312500 / 1024;
-
-	lfo_a = (s32)(value32 >> 16);
-	lfo_b = (s32)(value32_1 >> 16);
-	lfo_c = (s32)(value32_2 >> 16);
-	lfo_d = (s32)(value32_3 >> 16);
-
-	if (lfo_a > 4095)
-		lfo_a = lfo_a - 8192;
-
-	if (lfo_b > 4095)
-		lfo_b = lfo_b - 8192;
-
-	if (lfo_c > 4095)
-		lfo_c = lfo_c - 8192;
-
-	if (lfo_d > 4095)
-		lfo_d = lfo_d - 8192;
-	lfo_a = lfo_a * 312500 / 4096;
-	lfo_b = lfo_b * 312500 / 4096;
-	lfo_c = lfo_c * 312500 / 4096;
-	lfo_d = lfo_d * 312500 / 4096;
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d /%d",
-		       "value SCFO(Hz) <A/B/C/D>", sfo_a, sfo_b, sfo_c, sfo_d);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d /%d", "ACQ CFO(Hz) <A/B/C/D>",
-		       lfo_a, lfo_b, lfo_c, lfo_d);
-
-	value32 = odm_get_bb_reg(dm, 0xd14, MASKDWORD);
-	value32_1 = odm_get_bb_reg(dm, 0xd54, MASKDWORD);
-	value32_2 = odm_get_bb_reg(dm, 0xd94, MASKDWORD);
-	value32_3 = odm_get_bb_reg(dm, 0xdd4, MASKDWORD);
-
-	lfo_a = (s32)(value32 >> 16);
-	lfo_b = (s32)(value32_1 >> 16);
-	lfo_c = (s32)(value32_2 >> 16);
-	lfo_d = (s32)(value32_3 >> 16);
-
-	if (lfo_a > 4095)
-		lfo_a = lfo_a - 8192;
-
-	if (lfo_b > 4095)
-		lfo_b = lfo_b - 8192;
-
-	if (lfo_c > 4095)
-		lfo_c = lfo_c - 8192;
-
-	if (lfo_d > 4095)
-		lfo_d = lfo_d - 8192;
-
-	lfo_a = lfo_a * 312500 / 4096;
-	lfo_b = lfo_b * 312500 / 4096;
-	lfo_c = lfo_c * 312500 / 4096;
-	lfo_d = lfo_d * 312500 / 4096;
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %d / %d / %d /%d", "End CFO(Hz) <A/B/C/D>",
-		       lfo_a, lfo_b, lfo_c, lfo_d);
-
-	value32 = odm_get_bb_reg(dm, 0xf20, MASKDWORD); /*L SIG*/
-
-	tail = (u8)((value32 & 0xfc0000) >> 16);
-	parity = (u8)((value32 & 0x20000) >> 16);
-	length = (u16)((value32 & 0x1ffe00) >> 8);
-	rsv = (u8)(value32 & 0x10);
-	MCSS = (u8)(value32 & 0x0f);
-
-	switch (MCSS) {
-	case 0x0b:
-		idx = 0;
-		break;
-	case 0x0f:
-		idx = 1;
-		break;
-	case 0x0a:
-		idx = 2;
-		break;
-	case 0x0e:
-		idx = 3;
-		break;
-	case 0x09:
-		idx = 4;
-		break;
-	case 0x08:
-		idx = 5;
-		break;
-	case 0x0c:
-		idx = 6;
-		break;
-	default:
-		idx = 6;
-		break;
-	}
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s", "L-SIG");
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s : %s", "rate",
-		       L_rate[idx]);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %x / %x / %x", "Rsv/length/parity", rsv,
-		       rx_bw, length);
-
-	value32 = odm_get_bb_reg(dm, 0xf2c, MASKDWORD); /*HT SIG*/
-	if (rx_ht == 1) {
-		hmcss = (u8)(value32 & 0x7F);
-		hrx_bw = (u8)(value32 & 0x80);
-		h_length = (u16)((value32 >> 8) & 0xffff);
-	}
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s", "HT-SIG1");
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %x / %x / %x", "MCS/BW/length", hmcss,
-		       hrx_bw, h_length);
-
-	value32 = odm_get_bb_reg(dm, 0xf30, MASKDWORD); /*HT SIG*/
-
-	if (rx_ht == 1) {
-		smooth = (u8)(value32 & 0x01);
-		htsound = (u8)(value32 & 0x02);
-		rsv = (u8)(value32 & 0x04);
-		agg = (u8)(value32 & 0x08);
-		stbc = (u8)(value32 & 0x30);
-		fec = (u8)(value32 & 0x40);
-		sgi = (u8)(value32 & 0x80);
-		htltf = (u8)((value32 & 0x300) >> 8);
-		htcrc8 = (u16)((value32 & 0x3fc00) >> 8);
-		tail = (u8)((value32 & 0xfc0000) >> 16);
-	}
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s", "HT-SIG2");
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %x / %x / %x / %x / %x / %x",
-		       "Smooth/NoSound/Rsv/Aggregate/STBC/LDPC", smooth,
-		       htsound, rsv, agg, stbc, fec);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %x / %x / %x / %x",
-		       "SGI/E-HT-LTFs/CRC/tail", sgi, htltf, htcrc8, tail);
-
-	value32 = odm_get_bb_reg(dm, 0xf2c, MASKDWORD); /*VHT SIG A1*/
-	if (rx_ht == 2) {
-		/* value32 = odm_get_bb_reg(dm, 0xf2c,MASKDWORD);*/
-		v_rx_bw = (u8)(value32 & 0x03);
-		vrsv = (u8)(value32 & 0x04);
-		vstbc = (u8)(value32 & 0x08);
-		vgid = (u8)((value32 & 0x3f0) >> 4);
-		v_nsts = (u8)(((value32 & 0x1c00) >> 8) + 1);
-		vpaid = (u16)(value32 & 0x3fe);
-		vtxops = (u8)((value32 & 0x400000) >> 20);
-		vrsv2 = (u8)((value32 & 0x800000) >> 20);
-	}
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s",
-		       "VHT-SIG-A1");
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %x / %x / %x / %x / %x / %x / %x / %x",
-		       "BW/Rsv1/STBC/GID/Nsts/PAID/TXOPPS/Rsv2", v_rx_bw, vrsv,
-		       vstbc, vgid, v_nsts, vpaid, vtxops, vrsv2);
-
-	value32 = odm_get_bb_reg(dm, 0xf30, MASKDWORD); /*VHT SIG*/
-
-	if (rx_ht == 2) {
-		/*value32 = odm_get_bb_reg(dm, 0xf30,MASKDWORD); */ /*VHT SIG*/
-
-		/* sgi=(u8)(value32&0x01); */
-		sgiext = (u8)(value32 & 0x03);
-		/* fec = (u8)(value32&0x04); */
-		fecext = (u8)(value32 & 0x0C);
-
-		v_mcss = (u8)(value32 & 0xf0);
-		bf = (u8)((value32 & 0x100) >> 8);
-		vrsv = (u8)((value32 & 0x200) >> 8);
-		vhtcrc8 = (u16)((value32 & 0x3fc00) >> 8);
-		v_tail = (u8)((value32 & 0xfc0000) >> 16);
-	}
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s",
-		       "VHT-SIG-A2");
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %x / %x / %x / %x / %x / %x / %x",
-		       "SGI/FEC/MCS/BF/Rsv/CRC/tail", sgiext, fecext, v_mcss,
-		       bf, vrsv, vhtcrc8, v_tail);
-
-	value32 = odm_get_bb_reg(dm, 0xf34, MASKDWORD); /*VHT SIG*/
-	{
-		v_length = (u16)(value32 & 0x1fffff);
-		vbrsv = (u8)((value32 & 0x600000) >> 20);
-		vb_tail = (u16)((value32 & 0x1f800000) >> 20);
-		vbcrc = (u8)((value32 & 0x80000000) >> 28);
-	}
-	PHYDM_SNPRINTF(output + used, out_len - used, "\r\n %-35s",
-		       "VHT-SIG-B");
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "\r\n %-35s = %x / %x / %x / %x", "length/Rsv/tail/CRC",
-		       v_length, vbrsv, vb_tail, vbcrc);
-
-	/*for Condition number*/
-	if (dm->support_ic_type & ODM_RTL8822B) {
-		s32 condition_num = 0;
-		char *factor = NULL;
-
-		/*enable report condition number*/
-		odm_set_bb_reg(dm, 0x1988, BIT(22), 0x1);
-
-		condition_num = odm_get_bb_reg(dm, 0xf84, MASKDWORD);
-		condition_num = (condition_num & 0x3ffff) >> 4;
-
-		if (*dm->band_width == ODM_BW80M) {
-			factor = "256/234";
-		} else if (*dm->band_width == ODM_BW40M) {
-			factor = "128/108";
-		} else if (*dm->band_width == ODM_BW20M) {
-			if (rx_ht == 2 || rx_ht == 1)
-				factor = "64/52"; /*HT or VHT*/
-			else
-				factor = "64/48"; /*legacy*/
-		}
-
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n %-35s = %d (factor = %s)",
-			       "Condition number", condition_num, factor);
-	}
-}
-
-void phydm_basic_dbg_message(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct false_alarm_stat *false_alm_cnt =
-		(struct false_alarm_stat *)phydm_get_structure(
-			dm, PHYDM_FALSEALMCNT);
-	struct cfo_tracking *cfo_track =
-		(struct cfo_tracking *)phydm_get_structure(dm, PHYDM_CFOTRACK);
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-	u16 macid, phydm_macid, client_cnt = 0;
-	struct rtl_sta_info *entry;
-	s32 tmp_val = 0;
-	u8 tmp_val_u1 = 0;
-
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-		     "[PHYDM Common MSG] System up time: ((%d sec))----->\n",
-		     dm->phydm_sys_up_time);
-
-	if (dm->is_linked) {
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-			     "ID=%d, BW=((%d)), CH=((%d))\n",
-			     dm->curr_station_id, 20 << *dm->band_width,
-			     *dm->channel);
-
-		/*Print RX rate*/
-		if (dm->rx_rate <= ODM_RATE11M)
-			ODM_RT_TRACE(
-				dm, ODM_COMP_COMMON,
-				"[CCK AGC Report] LNA_idx = 0x%x, VGA_idx = 0x%x\n",
-				dm->cck_lna_idx, dm->cck_vga_idx);
-		else
-			ODM_RT_TRACE(
-				dm, ODM_COMP_COMMON,
-				"[OFDM AGC Report] { 0x%x, 0x%x, 0x%x, 0x%x }\n",
-				dm->ofdm_agc_idx[0], dm->ofdm_agc_idx[1],
-				dm->ofdm_agc_idx[2], dm->ofdm_agc_idx[3]);
-
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-			     "RSSI: { %d,  %d,  %d,  %d },    rx_rate:",
-			     (dm->rssi_a == 0xff) ? 0 : dm->rssi_a,
-			     (dm->rssi_b == 0xff) ? 0 : dm->rssi_b,
-			     (dm->rssi_c == 0xff) ? 0 : dm->rssi_c,
-			     (dm->rssi_d == 0xff) ? 0 : dm->rssi_d);
-
-		phydm_print_rate(dm, dm->rx_rate, ODM_COMP_COMMON);
-
-		/*Print TX rate*/
-		for (macid = 0; macid < ODM_ASSOCIATE_ENTRY_NUM; macid++) {
-			entry = dm->odm_sta_info[macid];
-			if (!IS_STA_VALID(entry))
-				continue;
-
-			phydm_macid = (dm->platform2phydm_macid_table[macid]);
-			ODM_RT_TRACE(dm, ODM_COMP_COMMON, "TXRate [%d]:",
-				     macid);
-			phydm_print_rate(dm, ra_tab->link_tx_rate[macid],
-					 ODM_COMP_COMMON);
-
-			client_cnt++;
-
-			if (client_cnt == dm->number_linked_client)
-				break;
-		}
-
-		ODM_RT_TRACE(
-			dm, ODM_COMP_COMMON,
-			"TP { TX, RX, total} = {%d, %d, %d }Mbps, traffic_load = (%d))\n",
-			dm->tx_tp, dm->rx_tp, dm->total_tp, dm->traffic_load);
-
-		tmp_val_u1 =
-			(cfo_track->crystal_cap > cfo_track->def_x_cap) ?
-				(cfo_track->crystal_cap -
-				 cfo_track->def_x_cap) :
-				(cfo_track->def_x_cap - cfo_track->crystal_cap);
-		ODM_RT_TRACE(
-			dm, ODM_COMP_COMMON,
-			"CFO_avg = ((%d kHz)) , CrystalCap_tracking = ((%s%d))\n",
-			cfo_track->CFO_ave_pre,
-			((cfo_track->crystal_cap > cfo_track->def_x_cap) ? "+" :
-									   "-"),
-			tmp_val_u1);
-
-		/* Condition number */
-		if (dm->support_ic_type == ODM_RTL8822B) {
-			tmp_val = phydm_get_condition_number_8822B(dm);
-			ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-				     "Condition number = ((%d))\n", tmp_val);
-		}
-
-		/*STBC or LDPC pkt*/
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON, "LDPC = %s, STBC = %s\n",
-			     (dm->phy_dbg_info.is_ldpc_pkt) ? "Y" : "N",
-			     (dm->phy_dbg_info.is_stbc_pkt) ? "Y" : "N");
-	} else {
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON, "No Link !!!\n");
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-		     "[CCA Cnt] {CCK, OFDM, Total} = {%d, %d, %d}\n",
-		     false_alm_cnt->cnt_cck_cca, false_alm_cnt->cnt_ofdm_cca,
-		     false_alm_cnt->cnt_cca_all);
-
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-		     "[FA Cnt] {CCK, OFDM, Total} = {%d, %d, %d}\n",
-		     false_alm_cnt->cnt_cck_fail, false_alm_cnt->cnt_ofdm_fail,
-		     false_alm_cnt->cnt_all);
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		ODM_RT_TRACE(
-			dm, ODM_COMP_COMMON,
-			"[OFDM FA Detail] Parity_Fail = (( %d )), Rate_Illegal = (( %d )), CRC8_fail = (( %d )), Mcs_fail = (( %d )), Fast_Fsync = (( %d )), SB_Search_fail = (( %d ))\n",
-			false_alm_cnt->cnt_parity_fail,
-			false_alm_cnt->cnt_rate_illegal,
-			false_alm_cnt->cnt_crc8_fail,
-			false_alm_cnt->cnt_mcs_fail,
-			false_alm_cnt->cnt_fast_fsync,
-			false_alm_cnt->cnt_sb_search_fail);
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_COMMON,
-		"is_linked = %d, Num_client = %d, rssi_min = %d, current_igi = 0x%x, bNoisy=%d\n\n",
-		dm->is_linked, dm->number_linked_client, dm->rssi_min,
-		dig_tab->cur_ig_value, dm->noisy_decision);
-}
-
-void phydm_basic_profile(void *dm_void, u32 *_used, char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	char *cut = NULL;
-	char *ic_type = NULL;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-	u32 date = 0;
-	char *commit_by = NULL;
-	u32 release_ver = 0;
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "%-35s\n",
-		       "% Basic Profile %");
-
-	if (dm->support_ic_type == ODM_RTL8188E) {
-	} else if (dm->support_ic_type == ODM_RTL8822B) {
-		ic_type = "RTL8822B";
-		date = RELEASE_DATE_8822B;
-		commit_by = COMMIT_BY_8822B;
-		release_ver = RELEASE_VERSION_8822B;
-	}
-
-	/* JJ ADD 20161014 */
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "  %-35s: %s (MP Chip: %s)\n", "IC type", ic_type,
-		       dm->is_mp_chip ? "Yes" : "No");
-
-	if (dm->cut_version == ODM_CUT_A)
-		cut = "A";
-	else if (dm->cut_version == ODM_CUT_B)
-		cut = "B";
-	else if (dm->cut_version == ODM_CUT_C)
-		cut = "C";
-	else if (dm->cut_version == ODM_CUT_D)
-		cut = "D";
-	else if (dm->cut_version == ODM_CUT_E)
-		cut = "E";
-	else if (dm->cut_version == ODM_CUT_F)
-		cut = "F";
-	else if (dm->cut_version == ODM_CUT_I)
-		cut = "I";
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "cut version", cut);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %d\n",
-		       "PHY Parameter version", odm_get_hw_img_version(dm));
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %d\n",
-		       "PHY Parameter Commit date", date);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "PHY Parameter Commit by", commit_by);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %d\n",
-		       "PHY Parameter Release version", release_ver);
-
-	{
-		struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-		struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "  %-35s: %d (Subversion: %d)\n", "FW version",
-			       rtlhal->fw_version, rtlhal->fw_subversion);
-	}
-	/* 1 PHY DM version List */
-	PHYDM_SNPRINTF(output + used, out_len - used, "%-35s\n",
-		       "% PHYDM version %");
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "Code base", PHYDM_CODE_BASE);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "Release Date", PHYDM_RELEASE_DATE);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "adaptivity", ADAPTIVITY_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n", "DIG",
-		       DIG_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "Dynamic BB PowerSaving", DYNAMIC_BBPWRSAV_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "CFO Tracking", CFO_TRACKING_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "Antenna Diversity", ANTDIV_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "Power Tracking", POWRTRACKING_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "Dynamic TxPower", DYNAMIC_TXPWR_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "RA Info", RAINFO_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "Auto channel Selection", ACS_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "EDCA Turbo", EDCATURBO_VERSION);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "LA mode", DYNAMIC_LA_MODE);
-	PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-		       "Dynamic RX path", DYNAMIC_RX_PATH_VERSION);
-
-	if (dm->support_ic_type & ODM_RTL8822B)
-		PHYDM_SNPRINTF(output + used, out_len - used, "  %-35s: %s\n",
-			       "PHY config 8822B", PHY_CONFIG_VERSION_8822B);
-
-	*_used = used;
-	*_out_len = out_len;
-}
-
-void phydm_fw_trace_en_h2c(void *dm_void, bool enable, u32 fw_debug_component,
-			   u32 monitor_mode, u32 macid)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 h2c_parameter[7] = {0};
-	u8 cmd_length;
-
-	if (dm->support_ic_type & PHYDM_IC_3081_SERIES) {
-		h2c_parameter[0] = enable;
-		h2c_parameter[1] = (u8)(fw_debug_component & MASKBYTE0);
-		h2c_parameter[2] = (u8)((fw_debug_component & MASKBYTE1) >> 8);
-		h2c_parameter[3] = (u8)((fw_debug_component & MASKBYTE2) >> 16);
-		h2c_parameter[4] = (u8)((fw_debug_component & MASKBYTE3) >> 24);
-		h2c_parameter[5] = (u8)monitor_mode;
-		h2c_parameter[6] = (u8)macid;
-		cmd_length = 7;
-
-	} else {
-		h2c_parameter[0] = enable;
-		h2c_parameter[1] = (u8)monitor_mode;
-		h2c_parameter[2] = (u8)macid;
-		cmd_length = 3;
-	}
-
-	ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "---->\n");
-	if (monitor_mode == 0)
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-			     "[H2C] FW_debug_en: (( %d ))\n", enable);
-	else
-		ODM_RT_TRACE(
-			dm, ODM_FW_DEBUG_TRACE,
-			"[H2C] FW_debug_en: (( %d )), mode: (( %d )), macid: (( %d ))\n",
-			enable, monitor_mode, macid);
-	odm_fill_h2c_cmd(dm, PHYDM_H2C_FW_TRACE_EN, cmd_length, h2c_parameter);
-}
-
-bool phydm_api_set_txagc(struct phy_dm_struct *dm, u32 power_index,
-			 enum odm_rf_radio_path path, u8 hw_rate,
-			 bool is_single_rate)
-{
-	bool ret = false;
-
-	if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8821C)) {
-		if (is_single_rate) {
-			if (dm->support_ic_type == ODM_RTL8822B)
-				ret = phydm_write_txagc_1byte_8822b(
-					dm, power_index, path, hw_rate);
-
-		} else {
-			if (dm->support_ic_type == ODM_RTL8822B)
-				ret = config_phydm_write_txagc_8822b(
-					dm, power_index, path, hw_rate);
-		}
-	}
-
-	return ret;
-}
-
-static u8 phydm_api_get_txagc(struct phy_dm_struct *dm,
-			      enum odm_rf_radio_path path, u8 hw_rate)
-{
-	u8 ret = 0;
-
-	if (dm->support_ic_type & ODM_RTL8822B)
-		ret = config_phydm_read_txagc_8822b(dm, path, hw_rate);
-
-	return ret;
-}
-
-static bool phydm_api_switch_bw_channel(struct phy_dm_struct *dm, u8 central_ch,
-					u8 primary_ch_idx,
-					enum odm_bw bandwidth)
-{
-	bool ret = false;
-
-	if (dm->support_ic_type & ODM_RTL8822B)
-		ret = config_phydm_switch_channel_bw_8822b(
-			dm, central_ch, primary_ch_idx, bandwidth);
-
-	return ret;
-}
-
-bool phydm_api_trx_mode(struct phy_dm_struct *dm, enum odm_rf_path tx_path,
-			enum odm_rf_path rx_path, bool is_tx2_path)
-{
-	bool ret = false;
-
-	if (dm->support_ic_type & ODM_RTL8822B)
-		ret = config_phydm_trx_mode_8822b(dm, tx_path, rx_path,
-						  is_tx2_path);
-
-	return ret;
-}
-
-static void phydm_get_per_path_txagc(void *dm_void, u8 path, u32 *_used,
-				     char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 rate_idx;
-	u8 txagc;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	if (((dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F)) &&
-	     path <= ODM_RF_PATH_B) ||
-	    ((dm->support_ic_type & (ODM_RTL8821C)) &&
-	     path <= ODM_RF_PATH_A)) {
-		for (rate_idx = 0; rate_idx <= 0x53; rate_idx++) {
-			if (rate_idx == ODM_RATE1M)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "  %-35s\n", "CCK====>");
-			else if (rate_idx == ODM_RATE6M)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "\n  %-35s\n", "OFDM====>");
-			else if (rate_idx == ODM_RATEMCS0)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "\n  %-35s\n", "HT 1ss====>");
-			else if (rate_idx == ODM_RATEMCS8)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "\n  %-35s\n", "HT 2ss====>");
-			else if (rate_idx == ODM_RATEMCS16)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "\n  %-35s\n", "HT 3ss====>");
-			else if (rate_idx == ODM_RATEMCS24)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "\n  %-35s\n", "HT 4ss====>");
-			else if (rate_idx == ODM_RATEVHTSS1MCS0)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "\n  %-35s\n", "VHT 1ss====>");
-			else if (rate_idx == ODM_RATEVHTSS2MCS0)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "\n  %-35s\n", "VHT 2ss====>");
-			else if (rate_idx == ODM_RATEVHTSS3MCS0)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "\n  %-35s\n", "VHT 3ss====>");
-			else if (rate_idx == ODM_RATEVHTSS4MCS0)
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "\n  %-35s\n", "VHT 4ss====>");
-
-			txagc = phydm_api_get_txagc(
-				dm, (enum odm_rf_radio_path)path, rate_idx);
-			if (config_phydm_read_txagc_check(txagc))
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "  0x%02x    ", txagc);
-			else
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "  0x%s    ", "xx");
-		}
-	}
-}
-
-static void phydm_get_txagc(void *dm_void, u32 *_used, char *output,
-			    u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	/* path-A */
-	PHYDM_SNPRINTF(output + used, out_len - used, "%-35s\n",
-		       "path-A====================");
-	phydm_get_per_path_txagc(dm, ODM_RF_PATH_A, _used, output, _out_len);
-
-	/* path-B */
-	PHYDM_SNPRINTF(output + used, out_len - used, "\n%-35s\n",
-		       "path-B====================");
-	phydm_get_per_path_txagc(dm, ODM_RF_PATH_B, _used, output, _out_len);
-
-	/* path-C */
-	PHYDM_SNPRINTF(output + used, out_len - used, "\n%-35s\n",
-		       "path-C====================");
-	phydm_get_per_path_txagc(dm, ODM_RF_PATH_C, _used, output, _out_len);
-
-	/* path-D */
-	PHYDM_SNPRINTF(output + used, out_len - used, "\n%-35s\n",
-		       "path-D====================");
-	phydm_get_per_path_txagc(dm, ODM_RF_PATH_D, _used, output, _out_len);
-}
-
-static void phydm_set_txagc(void *dm_void, u32 *const dm_value, u32 *_used,
-			    char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	/*dm_value[1] = path*/
-	/*dm_value[2] = hw_rate*/
-	/*dm_value[3] = power_index*/
-
-	if (dm->support_ic_type &
-	    (ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C)) {
-		if (dm_value[1] <= 1) {
-			phydm_check_dmval_txagc(dm, used, out_len, dm_value,
-						output);
-		} else {
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "  %s%d   %s%x%s\n", "Write path-",
-				       (dm_value[1] & 0x1), "rate index-0x",
-				       (dm_value[2] & 0x7f), " fail");
-		}
-	}
-}
-
-static void phydm_debug_trace(void *dm_void, u32 *const dm_value, u32 *_used,
-			      char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 pre_debug_components, one = 1;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	pre_debug_components = dm->debug_components;
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\n%s\n",
-		       "================================");
-	if (dm_value[0] == 100) {
-		PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-			       "[Debug Message] PhyDM Selection");
-		PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-			       "================================");
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "00. (( %s ))DIG\n",
-			       ((dm->debug_components & ODM_COMP_DIG) ? ("V") :
-									(".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "01. (( %s ))RA_MASK\n",
-			((dm->debug_components & ODM_COMP_RA_MASK) ? ("V") :
-								     (".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used,
-			"02. (( %s ))DYNAMIC_TXPWR\n",
-			((dm->debug_components & ODM_COMP_DYNAMIC_TXPWR) ?
-				 ("V") :
-				 (".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "03. (( %s ))FA_CNT\n",
-			((dm->debug_components & ODM_COMP_FA_CNT) ? ("V") :
-								    (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "04. (( %s ))RSSI_MONITOR\n",
-			       ((dm->debug_components & ODM_COMP_RSSI_MONITOR) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "05. (( %s ))SNIFFER\n",
-			((dm->debug_components & ODM_COMP_SNIFFER) ? ("V") :
-								     (".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "06. (( %s ))ANT_DIV\n",
-			((dm->debug_components & ODM_COMP_ANT_DIV) ? ("V") :
-								     (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "07. (( %s ))DFS\n",
-			       ((dm->debug_components & ODM_COMP_DFS) ? ("V") :
-									(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "08. (( %s ))NOISY_DETECT\n",
-			       ((dm->debug_components & ODM_COMP_NOISY_DETECT) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used,
-			"09. (( %s ))RATE_ADAPTIVE\n",
-			((dm->debug_components & ODM_COMP_RATE_ADAPTIVE) ?
-				 ("V") :
-				 (".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "10. (( %s ))PATH_DIV\n",
-			((dm->debug_components & ODM_COMP_PATH_DIV) ? ("V") :
-								      (".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used,
-			"12. (( %s ))DYNAMIC_PRICCA\n",
-			((dm->debug_components & ODM_COMP_DYNAMIC_PRICCA) ?
-				 ("V") :
-				 (".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "14. (( %s ))MP\n",
-			((dm->debug_components & ODM_COMP_MP) ? ("V") : (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "15. (( %s ))struct cfo_tracking\n",
-			       ((dm->debug_components & ODM_COMP_CFO_TRACKING) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "16. (( %s ))struct acs_info\n",
-			       ((dm->debug_components & ODM_COMP_ACS) ? ("V") :
-									(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "17. (( %s ))ADAPTIVITY\n",
-			       ((dm->debug_components & PHYDM_COMP_ADAPTIVITY) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "18. (( %s ))RA_DBG\n",
-			((dm->debug_components & PHYDM_COMP_RA_DBG) ? ("V") :
-								      (".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "19. (( %s ))TXBF\n",
-			((dm->debug_components & PHYDM_COMP_TXBF) ? ("V") :
-								    (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "20. (( %s ))EDCA_TURBO\n",
-			       ((dm->debug_components & ODM_COMP_EDCA_TURBO) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "22. (( %s ))FW_DEBUG_TRACE\n",
-			       ((dm->debug_components & ODM_FW_DEBUG_TRACE) ?
-					("V") :
-					(".")));
-
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "24. (( %s ))TX_PWR_TRACK\n",
-			       ((dm->debug_components & ODM_COMP_TX_PWR_TRACK) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "26. (( %s ))CALIBRATION\n",
-			       ((dm->debug_components & ODM_COMP_CALIBRATION) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "28. (( %s ))PHY_CONFIG\n",
-			       ((dm->debug_components & ODM_PHY_CONFIG) ?
-					("V") :
-					(".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "29. (( %s ))INIT\n",
-			((dm->debug_components & ODM_COMP_INIT) ? ("V") :
-								  (".")));
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "30. (( %s ))COMMON\n",
-			((dm->debug_components & ODM_COMP_COMMON) ? ("V") :
-								    (".")));
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "31. (( %s ))API\n",
-			       ((dm->debug_components & ODM_COMP_API) ? ("V") :
-									(".")));
-		PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-			       "================================");
-
-	} else if (dm_value[0] == 101) {
-		dm->debug_components = 0;
-		PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-			       "Disable all debug components");
-	} else {
-		if (dm_value[1] == 1) /*enable*/
-			dm->debug_components |= (one << dm_value[0]);
-		else if (dm_value[1] == 2) /*disable*/
-			dm->debug_components &= ~(one << dm_value[0]);
-		else
-			PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-				       "[Warning!!!]  1:enable,  2:disable");
-	}
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "pre-DbgComponents = 0x%x\n", pre_debug_components);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "Curr-DbgComponents = 0x%x\n", dm->debug_components);
-	PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-		       "================================");
-}
-
-static void phydm_fw_debug_trace(void *dm_void, u32 *const dm_value, u32 *_used,
-				 char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 pre_fw_debug_components, one = 1;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	pre_fw_debug_components = dm->fw_debug_components;
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\n%s\n",
-		       "================================");
-	if (dm_value[0] == 100) {
-		PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-			       "[FW Debug Component]");
-		PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-			       "================================");
-		PHYDM_SNPRINTF(
-			output + used, out_len - used, "00. (( %s ))RA\n",
-			((dm->fw_debug_components & PHYDM_FW_COMP_RA) ? ("V") :
-									(".")));
-
-		if (dm->support_ic_type & PHYDM_IC_3081_SERIES) {
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"01. (( %s ))MU\n",
-				((dm->fw_debug_components & PHYDM_FW_COMP_MU) ?
-					 ("V") :
-					 (".")));
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "02. (( %s ))path Div\n",
-				       ((dm->fw_debug_components &
-					 PHYDM_FW_COMP_PHY_CONFIG) ?
-						("V") :
-						(".")));
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "03. (( %s ))Phy Config\n",
-				       ((dm->fw_debug_components &
-					 PHYDM_FW_COMP_PHY_CONFIG) ?
-						("V") :
-						(".")));
-		}
-		PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-			       "================================");
-
-	} else {
-		if (dm_value[0] == 101) {
-			dm->fw_debug_components = 0;
-			PHYDM_SNPRINTF(output + used, out_len - used, "%s\n",
-				       "Clear all fw debug components");
-		} else {
-			if (dm_value[1] == 1) /*enable*/
-				dm->fw_debug_components |= (one << dm_value[0]);
-			else if (dm_value[1] == 2) /*disable*/
-				dm->fw_debug_components &=
-					~(one << dm_value[0]);
-			else
-				PHYDM_SNPRINTF(
-					output + used, out_len - used, "%s\n",
-					"[Warning!!!]  1:enable,  2:disable");
-		}
-
-		if (dm->fw_debug_components == 0) {
-			dm->debug_components &= ~ODM_FW_DEBUG_TRACE;
-			phydm_fw_trace_en_h2c(
-				dm, false, dm->fw_debug_components, dm_value[2],
-				dm_value[3]); /*H2C to enable C2H Msg*/
-		} else {
-			dm->debug_components |= ODM_FW_DEBUG_TRACE;
-			phydm_fw_trace_en_h2c(
-				dm, true, dm->fw_debug_components, dm_value[2],
-				dm_value[3]); /*H2C to enable C2H Msg*/
-		}
-	}
-}
-
-static void phydm_dump_bb_reg(void *dm_void, u32 *_used, char *output,
-			      u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 addr = 0;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	/* For Nseries IC we only need to dump page8 to pageF using 3 digits*/
-	for (addr = 0x800; addr < 0xfff; addr += 4) {
-		if (dm->support_ic_type & ODM_IC_11N_SERIES)
-			PHYDM_VAST_INFO_SNPRINTF(
-				output + used, out_len - used,
-				"0x%03x 0x%08x\n", addr,
-				odm_get_bb_reg(dm, addr, MASKDWORD));
-		else
-			PHYDM_VAST_INFO_SNPRINTF(
-				output + used, out_len - used,
-				"0x%04x 0x%08x\n", addr,
-				odm_get_bb_reg(dm, addr, MASKDWORD));
-	}
-
-	if (dm->support_ic_type &
-	    (ODM_RTL8822B | ODM_RTL8814A | ODM_RTL8821C)) {
-		if (dm->rf_type > ODM_2T2R) {
-			for (addr = 0x1800; addr < 0x18ff; addr += 4)
-				PHYDM_VAST_INFO_SNPRINTF(
-					output + used, out_len - used,
-					"0x%04x 0x%08x\n", addr,
-					odm_get_bb_reg(dm, addr, MASKDWORD));
-		}
-
-		if (dm->rf_type > ODM_3T3R) {
-			for (addr = 0x1a00; addr < 0x1aff; addr += 4)
-				PHYDM_VAST_INFO_SNPRINTF(
-					output + used, out_len - used,
-					"0x%04x 0x%08x\n", addr,
-					odm_get_bb_reg(dm, addr, MASKDWORD));
-		}
-
-		for (addr = 0x1900; addr < 0x19ff; addr += 4)
-			PHYDM_VAST_INFO_SNPRINTF(
-				output + used, out_len - used,
-				"0x%04x 0x%08x\n", addr,
-				odm_get_bb_reg(dm, addr, MASKDWORD));
-
-		for (addr = 0x1c00; addr < 0x1cff; addr += 4)
-			PHYDM_VAST_INFO_SNPRINTF(
-				output + used, out_len - used,
-				"0x%04x 0x%08x\n", addr,
-				odm_get_bb_reg(dm, addr, MASKDWORD));
-
-		for (addr = 0x1f00; addr < 0x1fff; addr += 4)
-			PHYDM_VAST_INFO_SNPRINTF(
-				output + used, out_len - used,
-				"0x%04x 0x%08x\n", addr,
-				odm_get_bb_reg(dm, addr, MASKDWORD));
-	}
-}
-
-static void phydm_dump_all_reg(void *dm_void, u32 *_used, char *output,
-			       u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 addr = 0;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	/* dump MAC register */
-	PHYDM_VAST_INFO_SNPRINTF(output + used, out_len - used,
-				 "MAC==========\n");
-	for (addr = 0; addr < 0x7ff; addr += 4)
-		PHYDM_VAST_INFO_SNPRINTF(output + used, out_len - used,
-					 "0x%04x 0x%08x\n", addr,
-					 odm_get_bb_reg(dm, addr, MASKDWORD));
-
-	for (addr = 0x1000; addr < 0x17ff; addr += 4)
-		PHYDM_VAST_INFO_SNPRINTF(output + used, out_len - used,
-					 "0x%04x 0x%08x\n", addr,
-					 odm_get_bb_reg(dm, addr, MASKDWORD));
-
-	/* dump BB register */
-	PHYDM_VAST_INFO_SNPRINTF(output + used, out_len - used,
-				 "BB==========\n");
-	phydm_dump_bb_reg(dm, &used, output, &out_len);
-
-	/* dump RF register */
-	PHYDM_VAST_INFO_SNPRINTF(output + used, out_len - used,
-				 "RF-A==========\n");
-	for (addr = 0; addr < 0xFF; addr++)
-		PHYDM_VAST_INFO_SNPRINTF(output + used, out_len - used,
-					 "0x%02x 0x%05x\n", addr,
-					 odm_get_rf_reg(dm, ODM_RF_PATH_A, addr,
-							RFREGOFFSETMASK));
-
-	if (dm->rf_type > ODM_1T1R) {
-		PHYDM_VAST_INFO_SNPRINTF(output + used, out_len - used,
-					 "RF-B==========\n");
-		for (addr = 0; addr < 0xFF; addr++)
-			PHYDM_VAST_INFO_SNPRINTF(
-				output + used, out_len - used,
-				"0x%02x 0x%05x\n", addr,
-				odm_get_rf_reg(dm, ODM_RF_PATH_B, addr,
-					       RFREGOFFSETMASK));
-	}
-
-	if (dm->rf_type > ODM_2T2R) {
-		PHYDM_VAST_INFO_SNPRINTF(output + used, out_len - used,
-					 "RF-C==========\n");
-		for (addr = 0; addr < 0xFF; addr++)
-			PHYDM_VAST_INFO_SNPRINTF(
-				output + used, out_len - used,
-				"0x%02x 0x%05x\n", addr,
-				odm_get_rf_reg(dm, ODM_RF_PATH_C, addr,
-					       RFREGOFFSETMASK));
-	}
-
-	if (dm->rf_type > ODM_3T3R) {
-		PHYDM_VAST_INFO_SNPRINTF(output + used, out_len - used,
-					 "RF-D==========\n");
-		for (addr = 0; addr < 0xFF; addr++)
-			PHYDM_VAST_INFO_SNPRINTF(
-				output + used, out_len - used,
-				"0x%02x 0x%05x\n", addr,
-				odm_get_rf_reg(dm, ODM_RF_PATH_D, addr,
-					       RFREGOFFSETMASK));
-	}
-}
-
-static void phydm_enable_big_jump(struct phy_dm_struct *dm, bool state)
-{
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-
-	if (!state) {
-		dm->dm_dig_table.enable_adjust_big_jump = false;
-		odm_set_bb_reg(dm, 0x8c8, 0xfe,
-			       ((dig_tab->big_jump_step3 << 5) |
-				(dig_tab->big_jump_step2 << 3) |
-				dig_tab->big_jump_step1));
-	} else {
-		dm->dm_dig_table.enable_adjust_big_jump = true;
-	}
-}
-
-static void phydm_show_rx_rate(struct phy_dm_struct *dm, u32 *_used,
-			       char *output, u32 *_out_len)
-{
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "=====Rx SU rate Statistics=====\n");
-	PHYDM_SNPRINTF(
-		output + used, out_len - used,
-		"1SS MCS0 = %d, 1SS MCS1 = %d, 1SS MCS2 = %d, 1SS MCS 3 = %d\n",
-		dm->phy_dbg_info.num_qry_vht_pkt[0],
-		dm->phy_dbg_info.num_qry_vht_pkt[1],
-		dm->phy_dbg_info.num_qry_vht_pkt[2],
-		dm->phy_dbg_info.num_qry_vht_pkt[3]);
-	PHYDM_SNPRINTF(
-		output + used, out_len - used,
-		"1SS MCS4 = %d, 1SS MCS5 = %d, 1SS MCS6 = %d, 1SS MCS 7 = %d\n",
-		dm->phy_dbg_info.num_qry_vht_pkt[4],
-		dm->phy_dbg_info.num_qry_vht_pkt[5],
-		dm->phy_dbg_info.num_qry_vht_pkt[6],
-		dm->phy_dbg_info.num_qry_vht_pkt[7]);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "1SS MCS8 = %d, 1SS MCS9 = %d\n",
-		       dm->phy_dbg_info.num_qry_vht_pkt[8],
-		       dm->phy_dbg_info.num_qry_vht_pkt[9]);
-	PHYDM_SNPRINTF(
-		output + used, out_len - used,
-		"2SS MCS0 = %d, 2SS MCS1 = %d, 2SS MCS2 = %d, 2SS MCS 3 = %d\n",
-		dm->phy_dbg_info.num_qry_vht_pkt[10],
-		dm->phy_dbg_info.num_qry_vht_pkt[11],
-		dm->phy_dbg_info.num_qry_vht_pkt[12],
-		dm->phy_dbg_info.num_qry_vht_pkt[13]);
-	PHYDM_SNPRINTF(
-		output + used, out_len - used,
-		"2SS MCS4 = %d, 2SS MCS5 = %d, 2SS MCS6 = %d, 2SS MCS 7 = %d\n",
-		dm->phy_dbg_info.num_qry_vht_pkt[14],
-		dm->phy_dbg_info.num_qry_vht_pkt[15],
-		dm->phy_dbg_info.num_qry_vht_pkt[16],
-		dm->phy_dbg_info.num_qry_vht_pkt[17]);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "2SS MCS8 = %d, 2SS MCS9 = %d\n",
-		       dm->phy_dbg_info.num_qry_vht_pkt[18],
-		       dm->phy_dbg_info.num_qry_vht_pkt[19]);
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "=====Rx MU rate Statistics=====\n");
-	PHYDM_SNPRINTF(
-		output + used, out_len - used,
-		"1SS MCS0 = %d, 1SS MCS1 = %d, 1SS MCS2 = %d, 1SS MCS 3 = %d\n",
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[0],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[1],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[2],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[3]);
-	PHYDM_SNPRINTF(
-		output + used, out_len - used,
-		"1SS MCS4 = %d, 1SS MCS5 = %d, 1SS MCS6 = %d, 1SS MCS 7 = %d\n",
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[4],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[5],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[6],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[7]);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "1SS MCS8 = %d, 1SS MCS9 = %d\n",
-		       dm->phy_dbg_info.num_qry_mu_vht_pkt[8],
-		       dm->phy_dbg_info.num_qry_mu_vht_pkt[9]);
-	PHYDM_SNPRINTF(
-		output + used, out_len - used,
-		"2SS MCS0 = %d, 2SS MCS1 = %d, 2SS MCS2 = %d, 2SS MCS 3 = %d\n",
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[10],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[11],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[12],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[13]);
-	PHYDM_SNPRINTF(
-		output + used, out_len - used,
-		"2SS MCS4 = %d, 2SS MCS5 = %d, 2SS MCS6 = %d, 2SS MCS 7 = %d\n",
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[14],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[15],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[16],
-		dm->phy_dbg_info.num_qry_mu_vht_pkt[17]);
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "2SS MCS8 = %d, 2SS MCS9 = %d\n",
-		       dm->phy_dbg_info.num_qry_mu_vht_pkt[18],
-		       dm->phy_dbg_info.num_qry_mu_vht_pkt[19]);
-}
-
-struct phydm_command {
-	char name[16];
-	u8 id;
-};
-
-enum PHYDM_CMD_ID {
-	PHYDM_HELP,
-	PHYDM_DEMO,
-	PHYDM_RA,
-	PHYDM_PROFILE,
-	PHYDM_ANTDIV,
-	PHYDM_PATHDIV,
-	PHYDM_DEBUG,
-	PHYDM_FW_DEBUG,
-	PHYDM_SUPPORT_ABILITY,
-	PHYDM_GET_TXAGC,
-	PHYDM_SET_TXAGC,
-	PHYDM_SMART_ANT,
-	PHYDM_API,
-	PHYDM_TRX_PATH,
-	PHYDM_LA_MODE,
-	PHYDM_DUMP_REG,
-	PHYDM_MU_MIMO,
-	PHYDM_HANG,
-	PHYDM_BIG_JUMP,
-	PHYDM_SHOW_RXRATE,
-	PHYDM_NBI_EN,
-	PHYDM_CSI_MASK_EN,
-	PHYDM_DFS,
-	PHYDM_IQK,
-	PHYDM_NHM,
-	PHYDM_CLM,
-	PHYDM_BB_INFO,
-	PHYDM_TXBF,
-	PHYDM_PAUSE_DIG_EN,
-	PHYDM_H2C,
-	PHYDM_ANT_SWITCH,
-	PHYDM_DYNAMIC_RA_PATH,
-	PHYDM_PSD,
-	PHYDM_DEBUG_PORT
-};
-
-static struct phydm_command phy_dm_ary[] = {
-	{"-h", PHYDM_HELP}, /*do not move this element to other position*/
-	{"demo", PHYDM_DEMO}, /*do not move this element to other position*/
-	{"ra", PHYDM_RA},
-	{"profile", PHYDM_PROFILE},
-	{"antdiv", PHYDM_ANTDIV},
-	{"pathdiv", PHYDM_PATHDIV},
-	{"dbg", PHYDM_DEBUG},
-	{"fw_dbg", PHYDM_FW_DEBUG},
-	{"ability", PHYDM_SUPPORT_ABILITY},
-	{"get_txagc", PHYDM_GET_TXAGC},
-	{"set_txagc", PHYDM_SET_TXAGC},
-	{"smtant", PHYDM_SMART_ANT},
-	{"api", PHYDM_API},
-	{"trxpath", PHYDM_TRX_PATH},
-	{"lamode", PHYDM_LA_MODE},
-	{"dumpreg", PHYDM_DUMP_REG},
-	{"mu", PHYDM_MU_MIMO},
-	{"hang", PHYDM_HANG},
-	{"bigjump", PHYDM_BIG_JUMP},
-	{"rxrate", PHYDM_SHOW_RXRATE},
-	{"nbi", PHYDM_NBI_EN},
-	{"csi_mask", PHYDM_CSI_MASK_EN},
-	{"dfs", PHYDM_DFS},
-	{"iqk", PHYDM_IQK},
-	{"nhm", PHYDM_NHM},
-	{"clm", PHYDM_CLM},
-	{"bbinfo", PHYDM_BB_INFO},
-	{"txbf", PHYDM_TXBF},
-	{"pause_dig", PHYDM_PAUSE_DIG_EN},
-	{"h2c", PHYDM_H2C},
-	{"ant_switch", PHYDM_ANT_SWITCH},
-	{"drp", PHYDM_DYNAMIC_RA_PATH},
-	{"psd", PHYDM_PSD},
-	{"dbgport", PHYDM_DEBUG_PORT},
-};
-
-void phydm_cmd_parser(struct phy_dm_struct *dm, char input[][MAX_ARGV],
-		      u32 input_num, u8 flag, char *output, u32 out_len)
-{
-	u32 used = 0;
-	u8 id = 0;
-	int var1[10] = {0};
-	int i, input_idx = 0, phydm_ary_size;
-	char help[] = "-h";
-
-	bool is_enable_dbg_mode;
-	u8 central_ch, primary_ch_idx, bandwidth;
-
-	if (flag == 0) {
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "GET, nothing to print\n");
-		return;
-	}
-
-	PHYDM_SNPRINTF(output + used, out_len - used, "\n");
-
-	/* Parsing Cmd ID */
-	if (input_num) {
-		phydm_ary_size = ARRAY_SIZE(phy_dm_ary);
-		for (i = 0; i < phydm_ary_size; i++) {
-			if (strcmp(phy_dm_ary[i].name, input[0]) == 0) {
-				id = phy_dm_ary[i].id;
-				break;
-			}
-		}
-		if (i == phydm_ary_size) {
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "SET, command not found!\n");
-			return;
-		}
-	}
-
-	switch (id) {
-	case PHYDM_HELP: {
-		PHYDM_SNPRINTF(output + used, out_len - used, "BB cmd ==>\n");
-		for (i = 0; i < phydm_ary_size - 2; i++) {
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "  %-5d: %s\n", i,
-				       phy_dm_ary[i + 2].name);
-			/**/
-		}
-	} break;
-
-	case PHYDM_DEMO: { /*echo demo 10 0x3a z abcde >cmd*/
-		u32 directory = 0;
-
-		char char_temp;
-
-		PHYDM_SSCANF(input[1], DCMD_DECIMAL, &directory);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "Decimal value = %d\n", directory);
-		PHYDM_SSCANF(input[2], DCMD_HEX, &directory);
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "Hex value = 0x%x\n", directory);
-		PHYDM_SSCANF(input[3], DCMD_CHAR, &char_temp);
-		PHYDM_SNPRINTF(output + used, out_len - used, "Char = %c\n",
-			       char_temp);
-		PHYDM_SNPRINTF(output + used, out_len - used, "String = %s\n",
-			       input[4]);
-	} break;
-
-	case PHYDM_RA:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-
-				input_idx++;
-			}
-		}
-
-		if (input_idx >= 1) {
-			phydm_RA_debug_PCR(dm, (u32 *)var1, &used, output,
-					   &out_len);
-		}
-
-		break;
-
-	case PHYDM_ANTDIV:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]);
-
-				input_idx++;
-			}
-		}
-
-		break;
-
-	case PHYDM_PATHDIV:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]);
-
-				input_idx++;
-			}
-		}
-
-		break;
-
-	case PHYDM_DEBUG:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-
-				input_idx++;
-			}
-		}
-
-		if (input_idx >= 1) {
-			phydm_debug_trace(dm, (u32 *)var1, &used, output,
-					  &out_len);
-		}
-
-		break;
-
-	case PHYDM_FW_DEBUG:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-				input_idx++;
-			}
-		}
-
-		if (input_idx >= 1)
-			phydm_fw_debug_trace(dm, (u32 *)var1, &used, output,
-					     &out_len);
-
-		break;
-
-	case PHYDM_SUPPORT_ABILITY:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-
-				input_idx++;
-			}
-		}
-
-		if (input_idx >= 1) {
-			phydm_support_ability_debug(dm, (u32 *)var1, &used,
-						    output, &out_len);
-		}
-
-		break;
-
-	case PHYDM_SMART_ANT:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]);
-				input_idx++;
-			}
-		}
-
-		break;
-
-	case PHYDM_API:
-		if (!(dm->support_ic_type &
-		      (ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C))) {
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"This IC doesn't support PHYDM API function\n");
-		}
-
-		for (i = 0; i < 4; i++) {
-			if (input[i + 1])
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-		}
-
-		is_enable_dbg_mode = (bool)var1[0];
-		central_ch = (u8)var1[1];
-		primary_ch_idx = (u8)var1[2];
-		bandwidth = (enum odm_bw)var1[3];
-
-		if (is_enable_dbg_mode) {
-			dm->is_disable_phy_api = false;
-			phydm_api_switch_bw_channel(dm, central_ch,
-						    primary_ch_idx,
-						    (enum odm_bw)bandwidth);
-			dm->is_disable_phy_api = true;
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"central_ch = %d, primary_ch_idx = %d, bandwidth = %d\n",
-				central_ch, primary_ch_idx, bandwidth);
-		} else {
-			dm->is_disable_phy_api = false;
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "Disable API debug mode\n");
-		}
-		break;
-
-	case PHYDM_PROFILE: /*echo profile, >cmd*/
-		phydm_basic_profile(dm, &used, output, &out_len);
-		break;
-
-	case PHYDM_GET_TXAGC:
-		phydm_get_txagc(dm, &used, output, &out_len);
-		break;
-
-	case PHYDM_SET_TXAGC: {
-		bool is_enable_dbg_mode;
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]);
-				input_idx++;
-			}
-		}
-
-		if ((strcmp(input[1], help) == 0)) {
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"{En} {pathA~D(0~3)} {rate_idx(Hex), All_rate:0xff} {txagc_idx (Hex)}\n");
-			/**/
-
-		} else {
-			is_enable_dbg_mode = (bool)var1[0];
-			if (is_enable_dbg_mode) {
-				dm->is_disable_phy_api = false;
-				phydm_set_txagc(dm, (u32 *)var1, &used, output,
-						&out_len);
-				dm->is_disable_phy_api = true;
-			} else {
-				dm->is_disable_phy_api = false;
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "Disable API debug mode\n");
-			}
-		}
-	} break;
-
-	case PHYDM_TRX_PATH:
-
-		for (i = 0; i < 4; i++) {
-			if (input[i + 1])
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-		}
-		if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F)) {
-			u8 tx_path, rx_path;
-			bool is_enable_dbg_mode, is_tx2_path;
-
-			is_enable_dbg_mode = (bool)var1[0];
-			tx_path = (u8)var1[1];
-			rx_path = (u8)var1[2];
-			is_tx2_path = (bool)var1[3];
-
-			if (is_enable_dbg_mode) {
-				dm->is_disable_phy_api = false;
-				phydm_api_trx_mode(
-					dm, (enum odm_rf_path)tx_path,
-					(enum odm_rf_path)rx_path, is_tx2_path);
-				dm->is_disable_phy_api = true;
-				PHYDM_SNPRINTF(
-					output + used, out_len - used,
-					"tx_path = 0x%x, rx_path = 0x%x, is_tx2_path = %d\n",
-					tx_path, rx_path, is_tx2_path);
-			} else {
-				dm->is_disable_phy_api = false;
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "Disable API debug mode\n");
-			}
-		} else {
-			phydm_config_trx_path(dm, (u32 *)var1, &used, output,
-					      &out_len);
-		}
-		break;
-
-	case PHYDM_LA_MODE:
-
-		dm->support_ability &= ~(ODM_BB_FA_CNT);
-		phydm_lamode_trigger_setting(dm, &input[0], &used, output,
-					     &out_len, input_num);
-		dm->support_ability |= ODM_BB_FA_CNT;
-
-		break;
-
-	case PHYDM_DUMP_REG: {
-		u8 type = 0;
-
-		if (input[1]) {
-			PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
-			type = (u8)var1[0];
-		}
-
-		if (type == 0)
-			phydm_dump_bb_reg(dm, &used, output, &out_len);
-		else if (type == 1)
-			phydm_dump_all_reg(dm, &used, output, &out_len);
-	} break;
-
-	case PHYDM_MU_MIMO:
-
-		if (input[1])
-			PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
-		else
-			var1[0] = 0;
-
-		if (var1[0] == 1) {
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "Get MU BFee CSI\n");
-			odm_set_bb_reg(dm, 0x9e8, BIT(17) | BIT(16),
-				       2); /*Read BFee*/
-			odm_set_bb_reg(dm, 0x1910, BIT(15),
-				       1); /*Select BFee's CSI report*/
-			odm_set_bb_reg(dm, 0x19b8, BIT(6),
-				       1); /*set as CSI report*/
-			odm_set_bb_reg(dm, 0x19a8, 0xFFFF,
-				       0xFFFF); /*disable gated_clk*/
-			phydm_print_csi(dm, used, out_len, output);
-
-		} else if (var1[0] == 2) {
-			PHYDM_SSCANF(input[2], DCMD_DECIMAL, &var1[1]);
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "Get MU BFer's STA%d CSI\n", var1[1]);
-			odm_set_bb_reg(dm, 0x9e8, BIT(24), 0); /*Read BFer*/
-			odm_set_bb_reg(dm, 0x9e8, BIT(25),
-				       1); /*enable Read/Write RAM*/
-			odm_set_bb_reg(dm, 0x9e8, BIT(30) | BIT(29) | BIT(28),
-				       var1[1]); /*read which STA's CSI report*/
-			odm_set_bb_reg(dm, 0x1910, BIT(15),
-				       0); /*select BFer's CSI*/
-			odm_set_bb_reg(dm, 0x19e0, 0x00003FC0,
-				       0xFF); /*disable gated_clk*/
-			phydm_print_csi(dm, used, out_len, output);
-		}
-		break;
-
-	case PHYDM_BIG_JUMP: {
-		if (input[1]) {
-			PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
-			phydm_enable_big_jump(dm, (bool)(var1[0]));
-		} else {
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "unknown command!\n");
-		}
-		break;
-	}
-
-	case PHYDM_HANG:
-		phydm_bb_rx_hang_info(dm, &used, output, &out_len);
-		break;
-
-	case PHYDM_SHOW_RXRATE: {
-		u8 rate_idx;
-
-		if (input[1])
-			PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
-
-		if (var1[0] == 1) {
-			phydm_show_rx_rate(dm, &used, output, &out_len);
-		} else {
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "Reset Rx rate counter\n");
-
-			for (rate_idx = 0; rate_idx < 40; rate_idx++) {
-				dm->phy_dbg_info.num_qry_vht_pkt[rate_idx] = 0;
-				dm->phy_dbg_info.num_qry_mu_vht_pkt[rate_idx] =
-					0;
-			}
-		}
-	} break;
-
-	case PHYDM_NBI_EN:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-				input_idx++;
-			}
-		}
-
-		if (input_idx >= 1) {
-			phydm_api_debug(dm, PHYDM_API_NBI, (u32 *)var1, &used,
-					output, &out_len);
-			/**/
-		}
-
-		break;
-
-	case PHYDM_CSI_MASK_EN:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-				input_idx++;
-			}
-		}
-
-		if (input_idx >= 1) {
-			phydm_api_debug(dm, PHYDM_API_CSI_MASK, (u32 *)var1,
-					&used, output, &out_len);
-			/**/
-		}
-
-		break;
-
-	case PHYDM_DFS:
-		break;
-
-	case PHYDM_IQK:
-		break;
-
-	case PHYDM_NHM: {
-		u8 target_rssi;
-		u16 nhm_period = 0xC350; /* 200ms */
-		u8 IGI;
-		struct ccx_info *ccx_info = &dm->dm_ccx_info;
-
-		PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
-
-		if (input_num == 1) {
-			ccx_info->echo_NHM_en = false;
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n Trigger NHM: echo nhm 1\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r (Exclude CCA)\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r Trigger NHM: echo nhm 2\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r (Include CCA)\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r Get NHM results: echo nhm 3\n");
-
-			return;
-		}
-
-		/* NMH trigger */
-		if (var1[0] <= 2 && var1[0] != 0) {
-			ccx_info->echo_NHM_en = true;
-			ccx_info->echo_IGI =
-				(u8)odm_get_bb_reg(dm, 0xC50, MASKBYTE0);
-
-			target_rssi = ccx_info->echo_IGI - 10;
-
-			ccx_info->NHM_th[0] = (target_rssi - 15 + 10) * 2;
-
-			for (i = 1; i <= 10; i++)
-				ccx_info->NHM_th[i] =
-					ccx_info->NHM_th[0] + 6 * i;
-
-			/* 4 1. store previous NHM setting */
-			phydm_nhm_setting(dm, STORE_NHM_SETTING);
-
-			/* 4 2. Set NHM period, 0x990[31:16]=0xC350,
-			 * Time duration for NHM unit: 4us, 0xC350=200ms
-			 */
-			ccx_info->NHM_period = nhm_period;
-
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n Monitor NHM for %d us",
-				       nhm_period * 4);
-
-			/* 4 3. Set NHM inexclude_txon, inexclude_cca, ccx_en */
-
-			ccx_info->nhm_inexclude_cca = (var1[0] == 1) ?
-							      NHM_EXCLUDE_CCA :
-							      NHM_INCLUDE_CCA;
-			ccx_info->nhm_inexclude_txon = NHM_EXCLUDE_TXON;
-
-			phydm_nhm_setting(dm, SET_NHM_SETTING);
-			phydm_print_nhm_trigger(output, used, out_len,
-						ccx_info);
-
-			/* 4 4. Trigger NHM */
-			phydm_nhm_trigger(dm);
-		}
-
-		/*Get NHM results*/
-		else if (var1[0] == 3) {
-			IGI = (u8)odm_get_bb_reg(dm, 0xC50, MASKBYTE0);
-
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n Cur_IGI = 0x%x", IGI);
-
-			phydm_get_nhm_result(dm);
-
-			/* 4 Resotre NHM setting */
-			phydm_nhm_setting(dm, RESTORE_NHM_SETTING);
-			phydm_print_nhm_result(output, used, out_len, ccx_info);
-
-			ccx_info->echo_NHM_en = false;
-		} else {
-			ccx_info->echo_NHM_en = false;
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n Trigger NHM: echo nhm 1\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r (Exclude CCA)\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r Trigger NHM: echo nhm 2\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r (Include CCA)\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r Get NHM results: echo nhm 3\n");
-
-			return;
-		}
-	} break;
-
-	case PHYDM_CLM: {
-		struct ccx_info *ccx_info = &dm->dm_ccx_info;
-
-		PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
-
-		if (input_num == 1) {
-			ccx_info->echo_CLM_en = false;
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n Trigger CLM: echo clm 1\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r Get CLM results: echo clm 2\n");
-			return;
-		}
-
-		/* Set & trigger CLM */
-		if (var1[0] == 1) {
-			ccx_info->echo_CLM_en = true;
-			ccx_info->CLM_period = 0xC350; /*100ms*/
-			phydm_clm_setting(dm);
-			phydm_clm_trigger(dm);
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n Monitor CLM for 200ms\n");
-		}
-
-		/* Get CLM results */
-		else if (var1[0] == 2) {
-			ccx_info->echo_CLM_en = false;
-			phydm_get_cl_mresult(dm);
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r\n CLM_result = %d us\n",
-				       ccx_info->CLM_result * 4);
-
-		} else {
-			ccx_info->echo_CLM_en = false;
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\n\r Error command !\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r Trigger CLM: echo clm 1\n");
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "\r Get CLM results: echo clm 2\n");
-		}
-	} break;
-
-	case PHYDM_BB_INFO: {
-		s32 value32 = 0;
-
-		phydm_bb_debug_info(dm, &used, output, &out_len);
-
-		if (dm->support_ic_type & ODM_RTL8822B && input[1]) {
-			PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
-			odm_set_bb_reg(dm, 0x1988, 0x003fff00, var1[0]);
-			value32 = odm_get_bb_reg(dm, 0xf84, MASKDWORD);
-			value32 = (value32 & 0xff000000) >> 24;
-			PHYDM_SNPRINTF(
-				output + used, out_len - used,
-				"\r\n %-35s = condition num = %d, subcarriers = %d\n",
-				"Over condition num subcarrier", var1[0],
-				value32);
-			odm_set_bb_reg(dm, 0x1988, BIT(22),
-				       0x0); /*disable report condition number*/
-		}
-	} break;
-
-	case PHYDM_TXBF: {
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "\r\n no TxBF !!\n");
-	} break;
-
-	case PHYDM_PAUSE_DIG_EN:
-
-		for (i = 0; i < 5; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]);
-				input_idx++;
-			}
-		}
-
-		if (input_idx >= 1) {
-			if (var1[0] == 0) {
-				odm_pause_dig(dm, PHYDM_PAUSE,
-					      PHYDM_PAUSE_LEVEL_7, (u8)var1[1]);
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "Set IGI_value = ((%x))\n",
-					       var1[1]);
-			} else if (var1[0] == 1) {
-				odm_pause_dig(dm, PHYDM_RESUME,
-					      PHYDM_PAUSE_LEVEL_7, (u8)var1[1]);
-				PHYDM_SNPRINTF(output + used, out_len - used,
-					       "Resume IGI_value\n");
-			} else {
-				PHYDM_SNPRINTF(
-					output + used, out_len - used,
-					"echo  (1:pause, 2resume)  (IGI_value)\n");
-			}
-		}
-		break;
-	case PHYDM_H2C:
-
-		for (i = 0; i < 8; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]);
-				input_idx++;
-			}
-		}
-
-		if (input_idx >= 1)
-			phydm_h2C_debug(dm, (u32 *)var1, &used, output,
-					&out_len);
-
-		break;
-
-	case PHYDM_ANT_SWITCH:
-
-		for (i = 0; i < 8; i++) {
-			if (input[i + 1]) {
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-				input_idx++;
-			}
-		}
-
-		if (input_idx >= 1) {
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "Not Support IC");
-		}
-
-		break;
-
-	case PHYDM_DYNAMIC_RA_PATH:
-
-		PHYDM_SNPRINTF(output + used, out_len - used, "Not Support IC");
-
-		break;
-
-	case PHYDM_PSD:
-
-		phydm_psd_debug(dm, &input[0], &used, output, &out_len,
-				input_num);
-
-		break;
-
-	case PHYDM_DEBUG_PORT: {
-		u32 dbg_port_value;
-
-		PHYDM_SSCANF(input[1], DCMD_HEX, &var1[0]);
-
-		if (phydm_set_bb_dbg_port(dm, BB_DBGPORT_PRIORITY_3,
-					  var1[0])) { /*set debug port to 0x0*/
-
-			dbg_port_value = phydm_get_bb_dbg_port_value(dm);
-			phydm_release_bb_dbg_port(dm);
-
-			PHYDM_SNPRINTF(output + used, out_len - used,
-				       "Debug Port[0x%x] = ((0x%x))\n", var1[1],
-				       dbg_port_value);
-		}
-	} break;
-
-	default:
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "SET, unknown command!\n");
-		break;
-	}
-}
-
-s32 phydm_cmd(struct phy_dm_struct *dm, char *input, u32 in_len, u8 flag,
-	      char *output, u32 out_len)
-{
-	char *token;
-	u32 argc = 0;
-	char argv[MAX_ARGC][MAX_ARGV];
-
-	do {
-		token = strsep(&input, ", ");
-		if (token) {
-			strcpy(argv[argc], token);
-			argc++;
-		} else {
-			break;
-		}
-	} while (argc < MAX_ARGC);
-
-	if (argc == 1)
-		argv[0][strlen(argv[0]) - 1] = '\0';
-
-	phydm_cmd_parser(dm, argv, argc, flag, output, out_len);
-
-	return 0;
-}
-
-void phydm_fw_trace_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	/*u8	debug_trace_11byte[60];*/
-	u8 freg_num, c2h_seq, buf_0 = 0;
-
-	if (!(dm->support_ic_type & PHYDM_IC_3081_SERIES))
-		return;
-
-	if (cmd_len > 12)
-		return;
-
-	buf_0 = cmd_buf[0];
-	freg_num = (buf_0 & 0xf);
-	c2h_seq = (buf_0 & 0xf0) >> 4;
-
-	if (c2h_seq != dm->pre_c2h_seq && !dm->fw_buff_is_enpty) {
-		dm->fw_debug_trace[dm->c2h_cmd_start] = '\0';
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-			     "[FW Dbg Queue Overflow] %s\n",
-			     dm->fw_debug_trace);
-		dm->c2h_cmd_start = 0;
-	}
-
-	if ((cmd_len - 1) > (60 - dm->c2h_cmd_start)) {
-		dm->fw_debug_trace[dm->c2h_cmd_start] = '\0';
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-			     "[FW Dbg Queue error: wrong C2H length] %s\n",
-			     dm->fw_debug_trace);
-		dm->c2h_cmd_start = 0;
-		return;
-	}
-
-	strncpy((char *)&dm->fw_debug_trace[dm->c2h_cmd_start],
-		(char *)&cmd_buf[1], (cmd_len - 1));
-	dm->c2h_cmd_start += (cmd_len - 1);
-	dm->fw_buff_is_enpty = false;
-
-	if (freg_num == 0 || dm->c2h_cmd_start >= 60) {
-		if (dm->c2h_cmd_start < 60)
-			dm->fw_debug_trace[dm->c2h_cmd_start] = '\0';
-		else
-			dm->fw_debug_trace[59] = '\0';
-
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "[FW DBG Msg] %s\n",
-			     dm->fw_debug_trace);
-		/*dbg_print("[FW DBG Msg] %s\n", dm->fw_debug_trace);*/
-		dm->c2h_cmd_start = 0;
-		dm->fw_buff_is_enpty = true;
-	}
-
-	dm->pre_c2h_seq = c2h_seq;
-}
-
-void phydm_fw_trace_handler_code(void *dm_void, u8 *buffer, u8 cmd_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 function = buffer[0];
-	u8 dbg_num = buffer[1];
-	u16 content_0 = (((u16)buffer[3]) << 8) | ((u16)buffer[2]);
-	u16 content_1 = (((u16)buffer[5]) << 8) | ((u16)buffer[4]);
-	u16 content_2 = (((u16)buffer[7]) << 8) | ((u16)buffer[6]);
-	u16 content_3 = (((u16)buffer[9]) << 8) | ((u16)buffer[8]);
-	u16 content_4 = (((u16)buffer[11]) << 8) | ((u16)buffer[10]);
-
-	if (cmd_len > 12)
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-			     "[FW Msg] Invalid cmd length (( %d )) >12\n",
-			     cmd_len);
-
-	/*--------------------------------------------*/
-	ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-		     "[FW][general][%d, %d, %d] = {%d, %d, %d, %d}\n", function,
-		     dbg_num, content_0, content_1, content_2, content_3,
-		     content_4);
-	/*--------------------------------------------*/
-}
-
-void phydm_fw_trace_handler_8051(void *dm_void, u8 *buffer, u8 cmd_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	int i = 0;
-	u8 extend_c2h_sub_id = 0, extend_c2h_dbg_len = 0,
-	   extend_c2h_dbg_seq = 0;
-	u8 fw_debug_trace[128];
-	u8 *extend_c2h_dbg_content = NULL;
-
-	if (cmd_len > 127)
-		return;
-
-	extend_c2h_sub_id = buffer[0];
-	extend_c2h_dbg_len = buffer[1];
-	extend_c2h_dbg_content = buffer + 2; /*DbgSeq+DbgContent  for show HEX*/
-
-go_backfor_aggre_dbg_pkt:
-	i = 0;
-	extend_c2h_dbg_seq = buffer[2];
-	extend_c2h_dbg_content = buffer + 3;
-
-	for (;; i++) {
-		fw_debug_trace[i] = extend_c2h_dbg_content[i];
-		if (extend_c2h_dbg_content[i + 1] == '\0') {
-			fw_debug_trace[i + 1] = '\0';
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "[FW DBG Msg] %s",
-				     &fw_debug_trace[0]);
-			break;
-		} else if (extend_c2h_dbg_content[i] == '\n') {
-			fw_debug_trace[i + 1] = '\0';
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "[FW DBG Msg] %s",
-				     &fw_debug_trace[0]);
-			buffer = extend_c2h_dbg_content + i + 3;
-			goto go_backfor_aggre_dbg_pkt;
-		}
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_debug.h b/drivers/staging/rtlwifi/phydm/phydm_debug.h
deleted file mode 100644
index 1010bf6..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_debug.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __ODM_DBG_H__
-#define __ODM_DBG_H__
-
-/*#define DEBUG_VERSION	"1.1"*/ /*2015.07.29 YuChen*/
-/*#define DEBUG_VERSION	"1.2"*/ /*2015.08.28 Dino*/
-#define DEBUG_VERSION "1.3" /*2016.04.28 YuChen*/
-#define ODM_DBG_TRACE 5
-
-/*FW DBG MSG*/
-#define RATE_DECISION BIT(0)
-#define INIT_RA_TABLE BIT(1)
-#define RATE_UP BIT(2)
-#define RATE_DOWN BIT(3)
-#define TRY_DONE BIT(4)
-#define RA_H2C BIT(5)
-#define F_RATE_AP_RPT BIT(7)
-
-/* -----------------------------------------------------------------------------
- * Define the tracing components
- *
- * -----------------------------------------------------------------------------
- */
-/*BB FW Functions*/
-#define PHYDM_FW_COMP_RA BIT(0)
-#define PHYDM_FW_COMP_MU BIT(1)
-#define PHYDM_FW_COMP_PATH_DIV BIT(2)
-#define PHYDM_FW_COMP_PHY_CONFIG BIT(3)
-
-/*BB Driver Functions*/
-#define ODM_COMP_DIG BIT(0)
-#define ODM_COMP_RA_MASK BIT(1)
-#define ODM_COMP_DYNAMIC_TXPWR BIT(2)
-#define ODM_COMP_FA_CNT BIT(3)
-#define ODM_COMP_RSSI_MONITOR BIT(4)
-#define ODM_COMP_SNIFFER BIT(5)
-#define ODM_COMP_ANT_DIV BIT(6)
-#define ODM_COMP_DFS BIT(7)
-#define ODM_COMP_NOISY_DETECT BIT(8)
-#define ODM_COMP_RATE_ADAPTIVE BIT(9)
-#define ODM_COMP_PATH_DIV BIT(10)
-#define ODM_COMP_CCX BIT(11)
-
-#define ODM_COMP_DYNAMIC_PRICCA BIT(12)
-/*BIT13 TBD*/
-#define ODM_COMP_MP BIT(14)
-#define ODM_COMP_CFO_TRACKING BIT(15)
-#define ODM_COMP_ACS BIT(16)
-#define PHYDM_COMP_ADAPTIVITY BIT(17)
-#define PHYDM_COMP_RA_DBG BIT(18)
-#define PHYDM_COMP_TXBF BIT(19)
-/* MAC Functions */
-#define ODM_COMP_EDCA_TURBO BIT(20)
-#define ODM_COMP_DYNAMIC_RX_PATH BIT(21)
-#define ODM_FW_DEBUG_TRACE BIT(22)
-/* RF Functions */
-/*BIT23 TBD*/
-#define ODM_COMP_TX_PWR_TRACK BIT(24)
-/*BIT25 TBD*/
-#define ODM_COMP_CALIBRATION BIT(26)
-/* Common Functions */
-/*BIT27 TBD*/
-#define ODM_PHY_CONFIG BIT(28)
-#define ODM_COMP_INIT BIT(29)
-#define ODM_COMP_COMMON BIT(30)
-#define ODM_COMP_API BIT(31)
-
-#define ODM_COMP_UNCOND 0xFFFFFFFF
-
-/*------------------------Export Marco Definition---------------------------*/
-
-#define config_phydm_read_txagc_check(data) (data != INVALID_TXAGC_DATA)
-
-#define ODM_RT_TRACE(dm, comp, fmt, ...)                                       \
-	do {                                                                   \
-		if (((comp) & dm->debug_components) ||                         \
-		    ((comp) == ODM_COMP_UNCOND))                               \
-			RT_TRACE(dm->adapter, COMP_PHYDM, DBG_DMESG, fmt,      \
-				 ##__VA_ARGS__);                               \
-	} while (0)
-
-#define BB_DBGPORT_PRIORITY_3 3 /*Debug function (the highest priority)*/
-#define BB_DBGPORT_PRIORITY_2 2 /*Check hang function & Strong function*/
-#define BB_DBGPORT_PRIORITY_1 1 /*Watch dog function*/
-#define BB_DBGPORT_RELEASE 0 /*Init value (the lowest priority)*/
-
-void phydm_init_debug_setting(struct phy_dm_struct *dm);
-
-u8 phydm_set_bb_dbg_port(void *dm_void, u8 curr_dbg_priority, u32 debug_port);
-
-void phydm_release_bb_dbg_port(void *dm_void);
-
-u32 phydm_get_bb_dbg_port_value(void *dm_void);
-
-void phydm_basic_dbg_message(void *dm_void);
-
-#define PHYDM_DBGPRINT 0
-#define MAX_ARGC 20
-#define MAX_ARGV 16
-#define DCMD_DECIMAL "%d"
-#define DCMD_CHAR "%c"
-#define DCMD_HEX "%x"
-
-#define PHYDM_SSCANF(x, y, z)                                                  \
-	do {                                                                   \
-		if (sscanf(x, y, z) != 1)                                      \
-			ODM_RT_TRACE(dm, ODM_COMP_UNCOND,                      \
-				     "%s:%d sscanf fail!", __func__,           \
-				     __LINE__);                                \
-	} while (0)
-
-#define PHYDM_VAST_INFO_SNPRINTF(msg, ...)                                     \
-	do {                                                                   \
-		snprintf(msg, ##__VA_ARGS__);                                  \
-		ODM_RT_TRACE(dm, ODM_COMP_UNCOND, output);                     \
-	} while (0)
-
-#if (PHYDM_DBGPRINT == 1)
-#define PHYDM_SNPRINTF(msg, ...)                                               \
-	do {                                                                   \
-		snprintf(msg, ##__VA_ARGS__);                                  \
-		ODM_RT_TRACE(dm, ODM_COMP_UNCOND, output);                     \
-	} while (0)
-#else
-#define PHYDM_SNPRINTF(msg, ...)                                               \
-	do {                                                                   \
-		if (out_len > used)                                            \
-			used += snprintf(msg, ##__VA_ARGS__);                  \
-	} while (0)
-#endif
-
-void phydm_basic_profile(void *dm_void, u32 *_used, char *output,
-			 u32 *_out_len);
-s32 phydm_cmd(struct phy_dm_struct *dm, char *input, u32 in_len, u8 flag,
-	      char *output, u32 out_len);
-void phydm_cmd_parser(struct phy_dm_struct *dm, char input[][16], u32 input_num,
-		      u8 flag, char *output, u32 out_len);
-
-bool phydm_api_trx_mode(struct phy_dm_struct *dm, enum odm_rf_path tx_path,
-			enum odm_rf_path rx_path, bool is_tx2_path);
-
-void phydm_fw_trace_en_h2c(void *dm_void, bool enable, u32 fw_debug_component,
-			   u32 monitor_mode, u32 macid);
-
-void phydm_fw_trace_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len);
-
-void phydm_fw_trace_handler_code(void *dm_void, u8 *buffer, u8 cmd_len);
-
-void phydm_fw_trace_handler_8051(void *dm_void, u8 *cmd_buf, u8 cmd_len);
-
-#endif /* __ODM_DBG_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/phydm_dfs.h b/drivers/staging/rtlwifi/phydm/phydm_dfs.h
deleted file mode 100644
index c035825..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_dfs.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDM_DFS_H__
-#define __PHYDM_DFS_H__
-
-#define DFS_VERSION "0.0"
-
-/* ============================================================
- *  Definition
- * ============================================================
- */
-
-/* ============================================================
- * 1  structure
- * ============================================================
- */
-
-/* ============================================================
- *  enumeration
- * ============================================================
- */
-
-enum phydm_dfs_region_domain {
-	PHYDM_DFS_DOMAIN_UNKNOWN = 0,
-	PHYDM_DFS_DOMAIN_FCC = 1,
-	PHYDM_DFS_DOMAIN_MKK = 2,
-	PHYDM_DFS_DOMAIN_ETSI = 3,
-};
-
-/* ============================================================
- *  function prototype
- * ============================================================
- */
-#define phydm_dfs_master_enabled(dm) false
-
-#endif /*#ifndef __PHYDM_DFS_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/phydm_dig.c b/drivers/staging/rtlwifi/phydm/phydm_dig.c
deleted file mode 100644
index 99c805c..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_dig.c
+++ /dev/null
@@ -1,1521 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-static int get_igi_for_diff(int);
-
-static inline void phydm_check_ap_write_dig(struct phy_dm_struct *dm,
-					    u8 current_igi)
-{
-	switch (*dm->one_path_cca) {
-	case ODM_CCA_2R:
-		odm_set_bb_reg(dm, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm),
-			       current_igi);
-
-		if (dm->rf_type > ODM_1T1R)
-			odm_set_bb_reg(dm, ODM_REG(IGI_B, dm), ODM_BIT(IGI, dm),
-				       current_igi);
-		break;
-	case ODM_CCA_1R_A:
-		odm_set_bb_reg(dm, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm),
-			       current_igi);
-		if (dm->rf_type != ODM_1T1R)
-			odm_set_bb_reg(dm, ODM_REG(IGI_B, dm), ODM_BIT(IGI, dm),
-				       get_igi_for_diff(current_igi));
-		break;
-	case ODM_CCA_1R_B:
-		odm_set_bb_reg(dm, ODM_REG(IGI_B, dm), ODM_BIT(IGI, dm),
-			       get_igi_for_diff(current_igi));
-		if (dm->rf_type != ODM_1T1R)
-			odm_set_bb_reg(dm, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm),
-				       current_igi);
-		break;
-	}
-}
-
-static inline u8 phydm_get_current_igi(u8 dig_max_of_min, u8 rssi_min,
-				       u8 current_igi)
-{
-	if (rssi_min < dig_max_of_min) {
-		if (current_igi < rssi_min)
-			return rssi_min;
-	} else {
-		if (current_igi < dig_max_of_min)
-			return dig_max_of_min;
-	}
-	return current_igi;
-}
-
-void odm_change_dynamic_init_gain_thresh(void *dm_void, u32 dm_type,
-					 u32 dm_value)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-
-	if (dm_type == DIG_TYPE_THRESH_HIGH) {
-		dig_tab->rssi_high_thresh = dm_value;
-	} else if (dm_type == DIG_TYPE_THRESH_LOW) {
-		dig_tab->rssi_low_thresh = dm_value;
-	} else if (dm_type == DIG_TYPE_ENABLE) {
-		dig_tab->dig_enable_flag = true;
-	} else if (dm_type == DIG_TYPE_DISABLE) {
-		dig_tab->dig_enable_flag = false;
-	} else if (dm_type == DIG_TYPE_BACKOFF) {
-		if (dm_value > 30)
-			dm_value = 30;
-		dig_tab->backoff_val = (u8)dm_value;
-	} else if (dm_type == DIG_TYPE_RX_GAIN_MIN) {
-		if (dm_value == 0)
-			dm_value = 0x1;
-		dig_tab->rx_gain_range_min = (u8)dm_value;
-	} else if (dm_type == DIG_TYPE_RX_GAIN_MAX) {
-		if (dm_value > 0x50)
-			dm_value = 0x50;
-		dig_tab->rx_gain_range_max = (u8)dm_value;
-	}
-} /* dm_change_dynamic_init_gain_thresh */
-
-static int get_igi_for_diff(int value_IGI)
-{
-#define ONERCCA_LOW_TH 0x30
-#define ONERCCA_LOW_DIFF 8
-
-	if (value_IGI < ONERCCA_LOW_TH) {
-		if ((ONERCCA_LOW_TH - value_IGI) < ONERCCA_LOW_DIFF)
-			return ONERCCA_LOW_TH;
-		else
-			return value_IGI + ONERCCA_LOW_DIFF;
-	}
-
-	return value_IGI;
-}
-
-static void odm_fa_threshold_check(void *dm_void, bool is_dfs_band,
-				   bool is_performance, u32 rx_tp, u32 tx_tp,
-				   u32 *dm_FA_thres)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->is_linked && (is_performance || is_dfs_band)) {
-		/*For NIC*/
-		dm_FA_thres[0] = DM_DIG_FA_TH0;
-		dm_FA_thres[1] = DM_DIG_FA_TH1;
-		dm_FA_thres[2] = DM_DIG_FA_TH2;
-	} else {
-		if (is_dfs_band) {
-			/* For DFS band and no link */
-			dm_FA_thres[0] = 250;
-			dm_FA_thres[1] = 1000;
-			dm_FA_thres[2] = 2000;
-		} else {
-			dm_FA_thres[0] = 2000;
-			dm_FA_thres[1] = 4000;
-			dm_FA_thres[2] = 5000;
-		}
-	}
-}
-
-static u8 odm_forbidden_igi_check(void *dm_void, u8 dig_dynamic_min,
-				  u8 current_igi)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	struct false_alarm_stat *fa_cnt =
-		(struct false_alarm_stat *)phydm_get_structure(
-			dm, PHYDM_FALSEALMCNT);
-	u8 rx_gain_range_min = dig_tab->rx_gain_range_min;
-
-	if (dig_tab->large_fa_timeout) {
-		if (--dig_tab->large_fa_timeout == 0)
-			dig_tab->large_fa_hit = 0;
-	}
-
-	if (fa_cnt->cnt_all > 10000) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG,
-			     "%s(): Abnormally false alarm case.\n", __func__);
-
-		if (dig_tab->large_fa_hit != 3)
-			dig_tab->large_fa_hit++;
-
-		if (dig_tab->forbidden_igi < current_igi) {
-			dig_tab->forbidden_igi = current_igi;
-			dig_tab->large_fa_hit = 1;
-			dig_tab->large_fa_timeout = LARGE_FA_TIMEOUT;
-		}
-
-		if (dig_tab->large_fa_hit >= 3) {
-			if ((dig_tab->forbidden_igi + 2) >
-			    dig_tab->rx_gain_range_max)
-				rx_gain_range_min = dig_tab->rx_gain_range_max;
-			else
-				rx_gain_range_min =
-					(dig_tab->forbidden_igi + 2);
-			dig_tab->recover_cnt = 1800;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"%s(): Abnormally false alarm case: recover_cnt = %d\n",
-				__func__, dig_tab->recover_cnt);
-		}
-	}
-
-	else if (fa_cnt->cnt_all > 2000) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG,
-			     "Abnormally false alarm case.\n");
-		ODM_RT_TRACE(
-			dm, ODM_COMP_DIG,
-			"cnt_all=%d, cnt_all_pre=%d, current_igi=0x%x, pre_ig_value=0x%x\n",
-			fa_cnt->cnt_all, fa_cnt->cnt_all_pre, current_igi,
-			dig_tab->pre_ig_value);
-
-		/* fa_cnt->cnt_all = 1.1875*fa_cnt->cnt_all_pre */
-		if ((fa_cnt->cnt_all >
-		     (fa_cnt->cnt_all_pre + (fa_cnt->cnt_all_pre >> 3) +
-		      (fa_cnt->cnt_all_pre >> 4))) &&
-		    current_igi < dig_tab->pre_ig_value) {
-			if (dig_tab->large_fa_hit != 3)
-				dig_tab->large_fa_hit++;
-
-			if (dig_tab->forbidden_igi < current_igi) {
-				ODM_RT_TRACE(
-					dm, ODM_COMP_DIG,
-					"Updating forbidden_igi by current_igi, forbidden_igi=0x%x, current_igi=0x%x\n",
-					dig_tab->forbidden_igi, current_igi);
-
-				dig_tab->forbidden_igi = current_igi;
-				dig_tab->large_fa_hit = 1;
-				dig_tab->large_fa_timeout = LARGE_FA_TIMEOUT;
-			}
-		}
-
-		if (dig_tab->large_fa_hit >= 3) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"FaHit is greater than 3, rx_gain_range_max=0x%x, rx_gain_range_min=0x%x, forbidden_igi=0x%x\n",
-				dig_tab->rx_gain_range_max, rx_gain_range_min,
-				dig_tab->forbidden_igi);
-
-			if ((dig_tab->forbidden_igi + 1) >
-			    dig_tab->rx_gain_range_max)
-				rx_gain_range_min = dig_tab->rx_gain_range_max;
-			else
-				rx_gain_range_min =
-					(dig_tab->forbidden_igi + 1);
-
-			dig_tab->recover_cnt = 1200;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"Abnormally false alarm case: recover_cnt = %d,  rx_gain_range_min = 0x%x\n",
-				dig_tab->recover_cnt, rx_gain_range_min);
-		}
-	} else {
-		if (dig_tab->recover_cnt != 0) {
-			dig_tab->recover_cnt--;
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "%s(): Normal Case: recover_cnt = %d\n",
-				     __func__, dig_tab->recover_cnt);
-			return rx_gain_range_min;
-		}
-
-		if (dig_tab->large_fa_hit >= 3) {
-			dig_tab->large_fa_hit = 0;
-			return rx_gain_range_min;
-		}
-
-		if ((dig_tab->forbidden_igi - 2) <
-		    dig_dynamic_min) { /* DM_DIG_MIN) */
-			dig_tab->forbidden_igi =
-				dig_dynamic_min; /* DM_DIG_MIN; */
-			rx_gain_range_min = dig_dynamic_min; /* DM_DIG_MIN; */
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "%s(): Normal Case: At Lower Bound\n",
-				     __func__);
-		} else {
-			if (dig_tab->large_fa_hit == 0) {
-				dig_tab->forbidden_igi -= 2;
-				rx_gain_range_min =
-					(dig_tab->forbidden_igi + 2);
-				ODM_RT_TRACE(
-					dm, ODM_COMP_DIG,
-					"%s(): Normal Case: Approach Lower Bound\n",
-					__func__);
-			}
-		}
-	}
-
-	return rx_gain_range_min;
-}
-
-static void phydm_set_big_jump_step(void *dm_void, u8 current_igi)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	u8 step1[8] = {24, 30, 40, 50, 60, 70, 80, 90};
-	u8 i;
-
-	if (dig_tab->enable_adjust_big_jump == 0)
-		return;
-
-	for (i = 0; i <= dig_tab->big_jump_step1; i++) {
-		if ((current_igi + step1[i]) >
-		    dig_tab->big_jump_lmt[dig_tab->agc_table_idx]) {
-			if (i != 0)
-				i = i - 1;
-			break;
-		} else if (i == dig_tab->big_jump_step1) {
-			break;
-		}
-	}
-	if (dm->support_ic_type & ODM_RTL8822B)
-		odm_set_bb_reg(dm, 0x8c8, 0xe, i);
-	else if (dm->support_ic_type & ODM_RTL8197F)
-		odm_set_bb_reg(dm, ODM_REG_BB_AGC_SET_2_11N, 0xe, i);
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG,
-		     "%s(): bigjump = %d (ori = 0x%x), LMT=0x%x\n", __func__, i,
-		     dig_tab->big_jump_step1,
-		     dig_tab->big_jump_lmt[dig_tab->agc_table_idx]);
-}
-
-void odm_write_dig(void *dm_void, u8 current_igi)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-
-	if (dig_tab->is_stop_dig) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): Stop Writing IGI\n",
-			     __func__);
-		return;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG,
-		     "%s(): ODM_REG(IGI_A,dm)=0x%x, ODM_BIT(IGI,dm)=0x%x\n",
-		     __func__, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm));
-
-	/* 1 Check initial gain by upper bound */
-	if (!dig_tab->is_psd_in_progress && dm->is_linked) {
-		if (current_igi > dig_tab->rx_gain_range_max) {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"%s(): current_igi(0x%02x) is larger than upper bound !!\n",
-				__func__, current_igi);
-			current_igi = dig_tab->rx_gain_range_max;
-		}
-		if (dm->support_ability & ODM_BB_ADAPTIVITY &&
-		    dm->adaptivity_flag) {
-			if (current_igi > dm->adaptivity_igi_upper)
-				current_igi = dm->adaptivity_igi_upper;
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"%s(): adaptivity case: Force upper bound to 0x%x !!!!!!\n",
-				__func__, current_igi);
-		}
-	}
-
-	if (dig_tab->cur_ig_value != current_igi) {
-		/* Modify big jump step for 8822B and 8197F */
-		if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F))
-			phydm_set_big_jump_step(dm, current_igi);
-
-		/* Set IGI value of CCK for new CCK AGC */
-		if (dm->cck_new_agc) {
-			if (dm->support_ic_type & ODM_IC_PHY_STATUE_NEW_TYPE)
-				odm_set_bb_reg(dm, 0xa0c, 0x00003f00,
-					       (current_igi >> 1));
-		}
-
-		/*Add by YuChen for USB IO too slow issue*/
-		if ((dm->support_ability & ODM_BB_ADAPTIVITY) &&
-		    current_igi > dig_tab->cur_ig_value) {
-			dig_tab->cur_ig_value = current_igi;
-			phydm_adaptivity(dm);
-		}
-
-		/* 1 Set IGI value */
-		if (dm->support_platform & (ODM_WIN | ODM_CE)) {
-			odm_set_bb_reg(dm, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm),
-				       current_igi);
-
-			if (dm->rf_type > ODM_1T1R)
-				odm_set_bb_reg(dm, ODM_REG(IGI_B, dm),
-					       ODM_BIT(IGI, dm), current_igi);
-
-		} else if (dm->support_platform & (ODM_AP)) {
-			phydm_check_ap_write_dig(dm, current_igi);
-		}
-
-		dig_tab->cur_ig_value = current_igi;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): current_igi(0x%02x).\n", __func__,
-		     current_igi);
-}
-
-void odm_pause_dig(void *dm_void, enum phydm_pause_type pause_type,
-		   enum phydm_pause_level pause_level, u8 igi_value)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	s8 max_level;
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s()=========> level = %d\n", __func__,
-		     pause_level);
-
-	if (dig_tab->pause_dig_level == 0 &&
-	    (!(dm->support_ability & ODM_BB_DIG) ||
-	     !(dm->support_ability & ODM_BB_FA_CNT))) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_DIG,
-			"%s(): Return: support_ability DIG or FA is disabled !!\n",
-			__func__);
-		return;
-	}
-
-	if (pause_level > DM_DIG_MAX_PAUSE_TYPE) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG,
-			     "%s(): Return: Wrong pause level !!\n", __func__);
-		return;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG,
-		     "%s(): pause level = 0x%x, Current value = 0x%x\n",
-		     __func__, dig_tab->pause_dig_level, igi_value);
-	ODM_RT_TRACE(
-		dm, ODM_COMP_DIG,
-		"%s(): pause value = 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
-		__func__, dig_tab->pause_dig_value[7],
-		dig_tab->pause_dig_value[6], dig_tab->pause_dig_value[5],
-		dig_tab->pause_dig_value[4], dig_tab->pause_dig_value[3],
-		dig_tab->pause_dig_value[2], dig_tab->pause_dig_value[1],
-		dig_tab->pause_dig_value[0]);
-
-	switch (pause_type) {
-	/* Pause DIG */
-	case PHYDM_PAUSE: {
-		/* Disable DIG */
-		odm_cmn_info_update(dm, ODM_CMNINFO_ABILITY,
-				    dm->support_ability & (~ODM_BB_DIG));
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): Pause DIG !!\n",
-			     __func__);
-
-		/* Backup IGI value */
-		if (dig_tab->pause_dig_level == 0) {
-			dig_tab->igi_backup = dig_tab->cur_ig_value;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"%s(): Backup IGI  = 0x%x, new IGI = 0x%x\n",
-				__func__, dig_tab->igi_backup, igi_value);
-		}
-
-		/* Record IGI value */
-		dig_tab->pause_dig_value[pause_level] = igi_value;
-
-		/* Update pause level */
-		dig_tab->pause_dig_level =
-			(dig_tab->pause_dig_level | BIT(pause_level));
-
-		/* Write new IGI value */
-		if (BIT(pause_level + 1) > dig_tab->pause_dig_level) {
-			odm_write_dig(dm, igi_value);
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "%s(): IGI of higher level = 0x%x\n",
-				     __func__, igi_value);
-		}
-		break;
-	}
-	/* Resume DIG */
-	case PHYDM_RESUME: {
-		/* check if the level is illegal or not */
-		if ((dig_tab->pause_dig_level & (BIT(pause_level))) != 0) {
-			dig_tab->pause_dig_level = dig_tab->pause_dig_level &
-						   (~(BIT(pause_level)));
-			dig_tab->pause_dig_value[pause_level] = 0;
-			ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): Resume DIG !!\n",
-				     __func__);
-		} else {
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "%s(): Wrong resume level !!\n", __func__);
-			break;
-		}
-
-		/* Resume DIG */
-		if (dig_tab->pause_dig_level == 0) {
-			/* Write backup IGI value */
-			odm_write_dig(dm, dig_tab->igi_backup);
-			dig_tab->is_ignore_dig = true;
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "%s(): Write original IGI = 0x%x\n",
-				     __func__, dig_tab->igi_backup);
-
-			/* Enable DIG */
-			odm_cmn_info_update(dm, ODM_CMNINFO_ABILITY,
-					    dm->support_ability | ODM_BB_DIG);
-			break;
-		}
-
-		if (BIT(pause_level) <= dig_tab->pause_dig_level)
-			break;
-
-		/* Calculate the maximum level now */
-		for (max_level = (pause_level - 1); max_level >= 0;
-		     max_level--) {
-			if ((dig_tab->pause_dig_level & BIT(max_level)) > 0)
-				break;
-		}
-
-		/* pin max_level to be >= 0 */
-		max_level = max_t(s8, 0, max_level);
-		/* write IGI of lower level */
-		odm_write_dig(dm, dig_tab->pause_dig_value[max_level]);
-		ODM_RT_TRACE(dm, ODM_COMP_DIG,
-			     "%s(): Write IGI (0x%x) of level (%d)\n", __func__,
-			     dig_tab->pause_dig_value[max_level], max_level);
-		break;
-	}
-	default:
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): Wrong  type !!\n",
-			     __func__);
-		break;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG,
-		     "%s(): pause level = 0x%x, Current value = 0x%x\n",
-		     __func__, dig_tab->pause_dig_level, igi_value);
-	ODM_RT_TRACE(
-		dm, ODM_COMP_DIG,
-		"%s(): pause value = 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
-		__func__, dig_tab->pause_dig_value[7],
-		dig_tab->pause_dig_value[6], dig_tab->pause_dig_value[5],
-		dig_tab->pause_dig_value[4], dig_tab->pause_dig_value[3],
-		dig_tab->pause_dig_value[2], dig_tab->pause_dig_value[1],
-		dig_tab->pause_dig_value[0]);
-}
-
-static bool odm_dig_abort(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-
-	/* support_ability */
-	if (!(dm->support_ability & ODM_BB_FA_CNT)) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_DIG,
-			"%s(): Return: support_ability ODM_BB_FA_CNT is disabled\n",
-			__func__);
-		return true;
-	}
-
-	/* support_ability */
-	if (!(dm->support_ability & ODM_BB_DIG)) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_DIG,
-			"%s(): Return: support_ability ODM_BB_DIG is disabled\n",
-			__func__);
-		return true;
-	}
-
-	/* ScanInProcess */
-	if (*dm->is_scan_in_process) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG,
-			     "%s(): Return: In Scan Progress\n", __func__);
-		return true;
-	}
-
-	if (dig_tab->is_ignore_dig) {
-		dig_tab->is_ignore_dig = false;
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): Return: Ignore DIG\n",
-			     __func__);
-		return true;
-	}
-
-	/* add by Neil Chen to avoid PSD is processing */
-	if (!dm->is_dm_initial_gain_enable) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG,
-			     "%s(): Return: PSD is Processing\n", __func__);
-		return true;
-	}
-
-	return false;
-}
-
-void odm_dig_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	u32 ret_value;
-	u8 i;
-
-	dig_tab->is_stop_dig = false;
-	dig_tab->is_ignore_dig = false;
-	dig_tab->is_psd_in_progress = false;
-	dig_tab->cur_ig_value =
-		(u8)odm_get_bb_reg(dm, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm));
-	dig_tab->pre_ig_value = 0;
-	dig_tab->rssi_low_thresh = DM_DIG_THRESH_LOW;
-	dig_tab->rssi_high_thresh = DM_DIG_THRESH_HIGH;
-	dig_tab->fa_low_thresh = DM_FALSEALARM_THRESH_LOW;
-	dig_tab->fa_high_thresh = DM_FALSEALARM_THRESH_HIGH;
-	dig_tab->backoff_val = DM_DIG_BACKOFF_DEFAULT;
-	dig_tab->backoff_val_range_max = DM_DIG_BACKOFF_MAX;
-	dig_tab->backoff_val_range_min = DM_DIG_BACKOFF_MIN;
-	dig_tab->pre_cck_cca_thres = 0xFF;
-	dig_tab->cur_cck_cca_thres = 0x83;
-	dig_tab->forbidden_igi = DM_DIG_MIN_NIC;
-	dig_tab->large_fa_hit = 0;
-	dig_tab->large_fa_timeout = 0;
-	dig_tab->recover_cnt = 0;
-	dig_tab->is_media_connect_0 = false;
-	dig_tab->is_media_connect_1 = false;
-
-	/*To initialize dm->is_dm_initial_gain_enable==false to avoid DIG err*/
-	dm->is_dm_initial_gain_enable = true;
-
-	dig_tab->dig_dynamic_min_0 = DM_DIG_MIN_NIC;
-	dig_tab->dig_dynamic_min_1 = DM_DIG_MIN_NIC;
-
-	/* To Initi BT30 IGI */
-	dig_tab->bt30_cur_igi = 0x32;
-
-	odm_memory_set(dm, dig_tab->pause_dig_value, 0,
-		       (DM_DIG_MAX_PAUSE_TYPE + 1));
-	dig_tab->pause_dig_level = 0;
-	odm_memory_set(dm, dig_tab->pause_cckpd_value, 0,
-		       (DM_DIG_MAX_PAUSE_TYPE + 1));
-	dig_tab->pause_cckpd_level = 0;
-
-	dig_tab->rx_gain_range_max = DM_DIG_MAX_NIC;
-	dig_tab->rx_gain_range_min = DM_DIG_MIN_NIC;
-
-	dig_tab->enable_adjust_big_jump = 1;
-	if (dm->support_ic_type & ODM_RTL8822B) {
-		ret_value = odm_get_bb_reg(dm, 0x8c8, MASKLWORD);
-		dig_tab->big_jump_step1 = (u8)(ret_value & 0xe) >> 1;
-		dig_tab->big_jump_step2 = (u8)(ret_value & 0x30) >> 4;
-		dig_tab->big_jump_step3 = (u8)(ret_value & 0xc0) >> 6;
-
-	} else if (dm->support_ic_type & ODM_RTL8197F) {
-		ret_value =
-			odm_get_bb_reg(dm, ODM_REG_BB_AGC_SET_2_11N, MASKLWORD);
-		dig_tab->big_jump_step1 = (u8)(ret_value & 0xe) >> 1;
-		dig_tab->big_jump_step2 = (u8)(ret_value & 0x30) >> 4;
-		dig_tab->big_jump_step3 = (u8)(ret_value & 0xc0) >> 6;
-	}
-	if (dm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F)) {
-		for (i = 0; i < sizeof(dig_tab->big_jump_lmt); i++) {
-			if (dig_tab->big_jump_lmt[i] == 0)
-				dig_tab->big_jump_lmt[i] =
-					0x64; /* Set -10dBm as default value */
-		}
-	}
-}
-
-void odm_DIG(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	/* Common parameters */
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	struct false_alarm_stat *fa_cnt =
-		(struct false_alarm_stat *)phydm_get_structure(
-			dm, PHYDM_FALSEALMCNT);
-	bool first_connect, first_dis_connect;
-	u8 dig_max_of_min, dig_dynamic_min;
-	u8 dm_dig_max, dm_dig_min;
-	u8 current_igi = dig_tab->cur_ig_value;
-	u8 offset;
-	u32 dm_FA_thres[3];
-	u32 tx_tp = 0, rx_tp = 0;
-	bool is_dfs_band = false;
-	bool is_performance = true, is_first_tp_target = false,
-	     is_first_coverage = false;
-
-	if (odm_dig_abort(dm))
-		return;
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "DIG Start===>\n");
-
-	/* 1 Update status */
-	{
-		dig_dynamic_min = dig_tab->dig_dynamic_min_0;
-		first_connect = (dm->is_linked) && !dig_tab->is_media_connect_0;
-		first_dis_connect =
-			(!dm->is_linked) && dig_tab->is_media_connect_0;
-	}
-
-	/* 1 Boundary Decision */
-	{
-		/* 2 For WIN\CE */
-		if (dm->support_ic_type >= ODM_RTL8188E)
-			dm_dig_max = 0x5A;
-		else
-			dm_dig_max = DM_DIG_MAX_NIC;
-
-		if (dm->support_ic_type != ODM_RTL8821)
-			dm_dig_min = DM_DIG_MIN_NIC;
-		else
-			dm_dig_min = 0x1C;
-
-		dig_max_of_min = DM_DIG_MAX_AP;
-
-		/* Modify lower bound for DFS band */
-		if ((((*dm->channel >= 52) && (*dm->channel <= 64)) ||
-		     ((*dm->channel >= 100) && (*dm->channel <= 140))) &&
-		    phydm_dfs_master_enabled(dm)) {
-			is_dfs_band = true;
-			if (*dm->band_width == ODM_BW20M)
-				dm_dig_min = DM_DIG_MIN_AP_DFS + 2;
-			else
-				dm_dig_min = DM_DIG_MIN_AP_DFS;
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "DIG: ====== In DFS band ======\n");
-		}
-	}
-	ODM_RT_TRACE(dm, ODM_COMP_DIG,
-		     "DIG: Absolutly upper bound = 0x%x, lower bound = 0x%x\n",
-		     dm_dig_max, dm_dig_min);
-
-	if (dm->pu1_forced_igi_lb && (*dm->pu1_forced_igi_lb > 0)) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "DIG: Force IGI lb to: 0x%02x\n",
-			     *dm->pu1_forced_igi_lb);
-		dm_dig_min = *dm->pu1_forced_igi_lb;
-		dm_dig_max = (dm_dig_min <= dm_dig_max) ? (dm_dig_max) :
-							  (dm_dig_min + 1);
-	}
-
-	/* 1 Adjust boundary by RSSI */
-	if (dm->is_linked && is_performance) {
-		/* 2 Modify DIG upper bound */
-		/* 4 Modify DIG upper bound for 92E, 8723A\B, 8821 & 8812 BT */
-		if ((dm->support_ic_type & (ODM_RTL8192E | ODM_RTL8723B |
-					    ODM_RTL8812 | ODM_RTL8821)) &&
-		    dm->is_bt_limited_dig == 1) {
-			offset = 10;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"DIG: Coex. case: Force upper bound to RSSI + %d\n",
-				offset);
-		} else {
-			offset = 15;
-		}
-
-		if ((dm->rssi_min + offset) > dm_dig_max)
-			dig_tab->rx_gain_range_max = dm_dig_max;
-		else if ((dm->rssi_min + offset) < dm_dig_min)
-			dig_tab->rx_gain_range_max = dm_dig_min;
-		else
-			dig_tab->rx_gain_range_max = dm->rssi_min + offset;
-
-		/* 2 Modify DIG lower bound */
-		/* if(dm->is_one_entry_only) */
-		{
-			if (dm->rssi_min < dm_dig_min)
-				dig_dynamic_min = dm_dig_min;
-			else if (dm->rssi_min > dig_max_of_min)
-				dig_dynamic_min = dig_max_of_min;
-			else
-				dig_dynamic_min = dm->rssi_min;
-
-			if (is_dfs_band) {
-				dig_dynamic_min = dm_dig_min;
-				ODM_RT_TRACE(
-					dm, ODM_COMP_DIG,
-					"DIG: DFS band: Force lower bound to 0x%x after link\n",
-					dm_dig_min);
-			}
-		}
-	} else {
-		if (is_performance && is_dfs_band) {
-			dig_tab->rx_gain_range_max = 0x28;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"DIG: DFS band: Force upper bound to 0x%x before link\n",
-				dig_tab->rx_gain_range_max);
-		} else {
-			if (is_performance)
-				dig_tab->rx_gain_range_max = DM_DIG_MAX_OF_MIN;
-			else
-				dig_tab->rx_gain_range_max = dm_dig_max;
-		}
-		dig_dynamic_min = dm_dig_min;
-	}
-
-	/* 1 Force Lower Bound for AntDiv */
-	if (dm->is_linked && !dm->is_one_entry_only &&
-	    (dm->support_ic_type & ODM_ANTDIV_SUPPORT) &&
-	    (dm->support_ability & ODM_BB_ANT_DIV)) {
-		if (dm->ant_div_type == CG_TRX_HW_ANTDIV ||
-		    dm->ant_div_type == CG_TRX_SMART_ANTDIV) {
-			if (dig_tab->ant_div_rssi_max > dig_max_of_min)
-				dig_dynamic_min = dig_max_of_min;
-			else
-				dig_dynamic_min = (u8)dig_tab->ant_div_rssi_max;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"DIG: AntDiv case: Force lower bound to 0x%x\n",
-				dig_dynamic_min);
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "DIG: AntDiv case: rssi_max = 0x%x\n",
-				     dig_tab->ant_div_rssi_max);
-		}
-	}
-	ODM_RT_TRACE(
-		dm, ODM_COMP_DIG,
-		"DIG: Adjust boundary by RSSI Upper bound = 0x%x, Lower bound = 0x%x\n",
-		dig_tab->rx_gain_range_max, dig_dynamic_min);
-	ODM_RT_TRACE(
-		dm, ODM_COMP_DIG,
-		"DIG: Link status: is_linked = %d, RSSI = %d, bFirstConnect = %d, bFirsrDisConnect = %d\n",
-		dm->is_linked, dm->rssi_min, first_connect, first_dis_connect);
-
-	/* 1 Modify DIG lower bound, deal with abnormal case */
-	/* 2 Abnormal false alarm case */
-	if (is_dfs_band) {
-		dig_tab->rx_gain_range_min = dig_dynamic_min;
-	} else {
-		if (!dm->is_linked) {
-			dig_tab->rx_gain_range_min = dig_dynamic_min;
-
-			if (first_dis_connect)
-				dig_tab->forbidden_igi = dig_dynamic_min;
-		} else {
-			dig_tab->rx_gain_range_min = odm_forbidden_igi_check(
-				dm, dig_dynamic_min, current_igi);
-		}
-	}
-
-	/* 2 Abnormal # beacon case */
-	if (dm->is_linked && !first_connect) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "Beacon Num (%d)\n",
-			     dm->phy_dbg_info.num_qry_beacon_pkt);
-		if (dm->phy_dbg_info.num_qry_beacon_pkt < 5 &&
-		    dm->bsta_state) {
-			dig_tab->rx_gain_range_min = 0x1c;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"DIG: Abnormal #beacon (%d) case in STA mode: Force lower bound to 0x%x\n",
-				dm->phy_dbg_info.num_qry_beacon_pkt,
-				dig_tab->rx_gain_range_min);
-		}
-	}
-
-	/* 2 Abnormal lower bound case */
-	if (dig_tab->rx_gain_range_min > dig_tab->rx_gain_range_max) {
-		dig_tab->rx_gain_range_min = dig_tab->rx_gain_range_max;
-		ODM_RT_TRACE(
-			dm, ODM_COMP_DIG,
-			"DIG: Abnormal lower bound case: Force lower bound to 0x%x\n",
-			dig_tab->rx_gain_range_min);
-	}
-
-	/* 1 False alarm threshold decision */
-	odm_fa_threshold_check(dm, is_dfs_band, is_performance, rx_tp, tx_tp,
-			       dm_FA_thres);
-	ODM_RT_TRACE(dm, ODM_COMP_DIG,
-		     "DIG: False alarm threshold = %d, %d, %d\n",
-		     dm_FA_thres[0], dm_FA_thres[1], dm_FA_thres[2]);
-
-	/* 1 Adjust initial gain by false alarm */
-	if (dm->is_linked && is_performance) {
-		/* 2 After link */
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "DIG: Adjust IGI after link\n");
-
-		if (is_first_tp_target || (first_connect && is_performance)) {
-			dig_tab->large_fa_hit = 0;
-
-			if (is_dfs_band) {
-				u8 rssi = dm->rssi_min;
-
-				current_igi =
-					(dm->rssi_min > 0x28) ? 0x28 : rssi;
-				ODM_RT_TRACE(
-					dm, ODM_COMP_DIG,
-					"DIG: DFS band: One-shot to 0x28 upmost\n");
-			} else {
-				current_igi = phydm_get_current_igi(
-					dig_max_of_min, dm->rssi_min,
-					current_igi);
-			}
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"DIG: First connect case: IGI does on-shot to 0x%x\n",
-				current_igi);
-
-		} else {
-			if (fa_cnt->cnt_all > dm_FA_thres[2])
-				current_igi = current_igi + 4;
-			else if (fa_cnt->cnt_all > dm_FA_thres[1])
-				current_igi = current_igi + 2;
-			else if (fa_cnt->cnt_all < dm_FA_thres[0])
-				current_igi = current_igi - 2;
-
-			/* 4 Abnormal # beacon case */
-			if (dm->phy_dbg_info.num_qry_beacon_pkt < 5 &&
-			    fa_cnt->cnt_all < DM_DIG_FA_TH1 &&
-			    dm->bsta_state) {
-				current_igi = dig_tab->rx_gain_range_min;
-				ODM_RT_TRACE(
-					dm, ODM_COMP_DIG,
-					"DIG: Abnormal #beacon (%d) case: IGI does one-shot to 0x%x\n",
-					dm->phy_dbg_info.num_qry_beacon_pkt,
-					current_igi);
-			}
-		}
-	} else {
-		/* 2 Before link */
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "DIG: Adjust IGI before link\n");
-
-		if (first_dis_connect || is_first_coverage) {
-			current_igi = dm_dig_min;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"DIG: First disconnect case: IGI does on-shot to lower bound\n");
-		} else {
-			if (fa_cnt->cnt_all > dm_FA_thres[2])
-				current_igi = current_igi + 4;
-			else if (fa_cnt->cnt_all > dm_FA_thres[1])
-				current_igi = current_igi + 2;
-			else if (fa_cnt->cnt_all < dm_FA_thres[0])
-				current_igi = current_igi - 2;
-		}
-	}
-
-	/* 1 Check initial gain by upper/lower bound */
-	if (current_igi < dig_tab->rx_gain_range_min)
-		current_igi = dig_tab->rx_gain_range_min;
-
-	if (current_igi > dig_tab->rx_gain_range_max)
-		current_igi = dig_tab->rx_gain_range_max;
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "DIG: cur_ig_value=0x%x, TotalFA = %d\n",
-		     current_igi, fa_cnt->cnt_all);
-
-	/* 1 Update status */
-	if (dm->is_bt_hs_operation) {
-		if (dm->is_linked) {
-			if (dig_tab->bt30_cur_igi > (current_igi))
-				odm_write_dig(dm, current_igi);
-			else
-				odm_write_dig(dm, dig_tab->bt30_cur_igi);
-
-			dig_tab->is_media_connect_0 = dm->is_linked;
-			dig_tab->dig_dynamic_min_0 = dig_dynamic_min;
-		} else {
-			if (dm->is_link_in_process)
-				odm_write_dig(dm, 0x1c);
-			else if (dm->is_bt_connect_process)
-				odm_write_dig(dm, 0x28);
-			else
-				odm_write_dig(dm, dig_tab->bt30_cur_igi);
-		}
-	} else { /* BT is not using */
-		odm_write_dig(dm, current_igi);
-		dig_tab->is_media_connect_0 = dm->is_linked;
-		dig_tab->dig_dynamic_min_0 = dig_dynamic_min;
-	}
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "DIG end\n");
-}
-
-void odm_dig_by_rssi_lps(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct false_alarm_stat *fa_cnt =
-		(struct false_alarm_stat *)phydm_get_structure(
-			dm, PHYDM_FALSEALMCNT);
-
-	u8 rssi_lower = DM_DIG_MIN_NIC; /* 0x1E or 0x1C */
-	u8 current_igi = dm->rssi_min;
-
-	if (odm_dig_abort(dm))
-		return;
-
-	current_igi = current_igi + RSSI_OFFSET_DIG;
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s()==>\n", __func__);
-
-	/* Using FW PS mode to make IGI */
-	/* Adjust by  FA in LPS MODE */
-	if (fa_cnt->cnt_all > DM_DIG_FA_TH2_LPS)
-		current_igi = current_igi + 4;
-	else if (fa_cnt->cnt_all > DM_DIG_FA_TH1_LPS)
-		current_igi = current_igi + 2;
-	else if (fa_cnt->cnt_all < DM_DIG_FA_TH0_LPS)
-		current_igi = current_igi - 2;
-
-	/* Lower bound checking */
-
-	/* RSSI Lower bound check */
-	if ((dm->rssi_min - 10) > DM_DIG_MIN_NIC)
-		rssi_lower = (dm->rssi_min - 10);
-	else
-		rssi_lower = DM_DIG_MIN_NIC;
-
-	/* Upper and Lower Bound checking */
-	if (current_igi > DM_DIG_MAX_NIC)
-		current_igi = DM_DIG_MAX_NIC;
-	else if (current_igi < rssi_lower)
-		current_igi = rssi_lower;
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): fa_cnt->cnt_all = %d\n", __func__,
-		     fa_cnt->cnt_all);
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): dm->rssi_min = %d\n", __func__,
-		     dm->rssi_min);
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): current_igi = 0x%x\n", __func__,
-		     current_igi);
-
-	odm_write_dig(
-		dm,
-		current_igi); /* odm_write_dig(dm, dig_tab->cur_ig_value); */
-}
-
-/* 3============================================================
- * 3 FASLE ALARM CHECK
- * 3============================================================
- */
-
-void odm_false_alarm_counter_statistics(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct false_alarm_stat *false_alm_cnt =
-		(struct false_alarm_stat *)phydm_get_structure(
-			dm, PHYDM_FALSEALMCNT);
-	struct rt_adcsmp *adc_smp = &dm->adcsmp;
-	u32 ret_value;
-
-	if (!(dm->support_ability & ODM_BB_FA_CNT))
-		return;
-
-	ODM_RT_TRACE(dm, ODM_COMP_FA_CNT, "%s()======>\n", __func__);
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES) {
-		/* hold ofdm counter */
-		odm_set_bb_reg(dm, ODM_REG_OFDM_FA_HOLDC_11N, BIT(31),
-			       1); /* hold page C counter */
-		odm_set_bb_reg(dm, ODM_REG_OFDM_FA_RSTD_11N, BIT(31),
-			       1); /* hold page D counter */
-
-		ret_value = odm_get_bb_reg(dm, ODM_REG_OFDM_FA_TYPE1_11N,
-					   MASKDWORD);
-		false_alm_cnt->cnt_fast_fsync = (ret_value & 0xffff);
-		false_alm_cnt->cnt_sb_search_fail =
-			((ret_value & 0xffff0000) >> 16);
-
-		ret_value = odm_get_bb_reg(dm, ODM_REG_OFDM_FA_TYPE2_11N,
-					   MASKDWORD);
-		false_alm_cnt->cnt_ofdm_cca = (ret_value & 0xffff);
-		false_alm_cnt->cnt_parity_fail =
-			((ret_value & 0xffff0000) >> 16);
-
-		ret_value = odm_get_bb_reg(dm, ODM_REG_OFDM_FA_TYPE3_11N,
-					   MASKDWORD);
-		false_alm_cnt->cnt_rate_illegal = (ret_value & 0xffff);
-		false_alm_cnt->cnt_crc8_fail = ((ret_value & 0xffff0000) >> 16);
-
-		ret_value = odm_get_bb_reg(dm, ODM_REG_OFDM_FA_TYPE4_11N,
-					   MASKDWORD);
-		false_alm_cnt->cnt_mcs_fail = (ret_value & 0xffff);
-
-		false_alm_cnt->cnt_ofdm_fail =
-			false_alm_cnt->cnt_parity_fail +
-			false_alm_cnt->cnt_rate_illegal +
-			false_alm_cnt->cnt_crc8_fail +
-			false_alm_cnt->cnt_mcs_fail +
-			false_alm_cnt->cnt_fast_fsync +
-			false_alm_cnt->cnt_sb_search_fail;
-
-		/* read CCK CRC32 counter */
-		false_alm_cnt->cnt_cck_crc32_error = odm_get_bb_reg(
-			dm, ODM_REG_CCK_CRC32_ERROR_CNT_11N, MASKDWORD);
-		false_alm_cnt->cnt_cck_crc32_ok = odm_get_bb_reg(
-			dm, ODM_REG_CCK_CRC32_OK_CNT_11N, MASKDWORD);
-
-		/* read OFDM CRC32 counter */
-		ret_value = odm_get_bb_reg(dm, ODM_REG_OFDM_CRC32_CNT_11N,
-					   MASKDWORD);
-		false_alm_cnt->cnt_ofdm_crc32_error =
-			(ret_value & 0xffff0000) >> 16;
-		false_alm_cnt->cnt_ofdm_crc32_ok = ret_value & 0xffff;
-
-		/* read HT CRC32 counter */
-		ret_value =
-			odm_get_bb_reg(dm, ODM_REG_HT_CRC32_CNT_11N, MASKDWORD);
-		false_alm_cnt->cnt_ht_crc32_error =
-			(ret_value & 0xffff0000) >> 16;
-		false_alm_cnt->cnt_ht_crc32_ok = ret_value & 0xffff;
-
-		/* read VHT CRC32 counter */
-		false_alm_cnt->cnt_vht_crc32_error = 0;
-		false_alm_cnt->cnt_vht_crc32_ok = 0;
-
-		{
-			/* hold cck counter */
-			odm_set_bb_reg(dm, ODM_REG_CCK_FA_RST_11N, BIT(12), 1);
-			odm_set_bb_reg(dm, ODM_REG_CCK_FA_RST_11N, BIT(14), 1);
-
-			ret_value = odm_get_bb_reg(dm, ODM_REG_CCK_FA_LSB_11N,
-						   MASKBYTE0);
-			false_alm_cnt->cnt_cck_fail = ret_value;
-
-			ret_value = odm_get_bb_reg(dm, ODM_REG_CCK_FA_MSB_11N,
-						   MASKBYTE3);
-			false_alm_cnt->cnt_cck_fail += (ret_value & 0xff) << 8;
-
-			ret_value = odm_get_bb_reg(dm, ODM_REG_CCK_CCA_CNT_11N,
-						   MASKDWORD);
-			false_alm_cnt->cnt_cck_cca =
-				((ret_value & 0xFF) << 8) |
-				((ret_value & 0xFF00) >> 8);
-		}
-
-		false_alm_cnt->cnt_all_pre = false_alm_cnt->cnt_all;
-
-		false_alm_cnt->cnt_all = (false_alm_cnt->cnt_fast_fsync +
-					  false_alm_cnt->cnt_sb_search_fail +
-					  false_alm_cnt->cnt_parity_fail +
-					  false_alm_cnt->cnt_rate_illegal +
-					  false_alm_cnt->cnt_crc8_fail +
-					  false_alm_cnt->cnt_mcs_fail +
-					  false_alm_cnt->cnt_cck_fail);
-
-		false_alm_cnt->cnt_cca_all = false_alm_cnt->cnt_ofdm_cca +
-					     false_alm_cnt->cnt_cck_cca;
-
-		if (dm->support_ic_type >= ODM_RTL8188E) {
-			/*reset false alarm counter registers*/
-			odm_set_bb_reg(dm, ODM_REG_OFDM_FA_RSTC_11N, BIT(31),
-				       1);
-			odm_set_bb_reg(dm, ODM_REG_OFDM_FA_RSTC_11N, BIT(31),
-				       0);
-			odm_set_bb_reg(dm, ODM_REG_OFDM_FA_RSTD_11N, BIT(27),
-				       1);
-			odm_set_bb_reg(dm, ODM_REG_OFDM_FA_RSTD_11N, BIT(27),
-				       0);
-
-			/*update ofdm counter*/
-			odm_set_bb_reg(dm, ODM_REG_OFDM_FA_HOLDC_11N, BIT(31),
-				       0); /*update page C counter*/
-			odm_set_bb_reg(dm, ODM_REG_OFDM_FA_RSTD_11N, BIT(31),
-				       0); /*update page D counter*/
-
-			/*reset CCK CCA counter*/
-			odm_set_bb_reg(dm, ODM_REG_CCK_FA_RST_11N,
-				       BIT(13) | BIT(12), 0);
-			odm_set_bb_reg(dm, ODM_REG_CCK_FA_RST_11N,
-				       BIT(13) | BIT(12), 2);
-
-			/*reset CCK FA counter*/
-			odm_set_bb_reg(dm, ODM_REG_CCK_FA_RST_11N,
-				       BIT(15) | BIT(14), 0);
-			odm_set_bb_reg(dm, ODM_REG_CCK_FA_RST_11N,
-				       BIT(15) | BIT(14), 2);
-
-			/*reset CRC32 counter*/
-			odm_set_bb_reg(dm, ODM_REG_PAGE_F_RST_11N, BIT(16), 1);
-			odm_set_bb_reg(dm, ODM_REG_PAGE_F_RST_11N, BIT(16), 0);
-		}
-
-		/* Get debug port 0 */
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x0);
-		false_alm_cnt->dbg_port0 =
-			odm_get_bb_reg(dm, ODM_REG_RPT_11N, MASKDWORD);
-
-		/* Get EDCCA flag */
-		odm_set_bb_reg(dm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x208);
-		false_alm_cnt->edcca_flag =
-			(bool)odm_get_bb_reg(dm, ODM_REG_RPT_11N, BIT(30));
-
-		ODM_RT_TRACE(
-			dm, ODM_COMP_FA_CNT,
-			"[OFDM FA Detail] Parity_Fail = (( %d )), Rate_Illegal = (( %d )), CRC8_fail = (( %d )), Mcs_fail = (( %d )), Fast_Fsync = (( %d )), SB_Search_fail = (( %d ))\n",
-			false_alm_cnt->cnt_parity_fail,
-			false_alm_cnt->cnt_rate_illegal,
-			false_alm_cnt->cnt_crc8_fail,
-			false_alm_cnt->cnt_mcs_fail,
-			false_alm_cnt->cnt_fast_fsync,
-			false_alm_cnt->cnt_sb_search_fail);
-	}
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		u32 cck_enable;
-
-		/* read OFDM FA counter */
-		false_alm_cnt->cnt_ofdm_fail =
-			odm_get_bb_reg(dm, ODM_REG_OFDM_FA_11AC, MASKLWORD);
-
-		/* Read CCK FA counter */
-		false_alm_cnt->cnt_cck_fail =
-			odm_get_bb_reg(dm, ODM_REG_CCK_FA_11AC, MASKLWORD);
-
-		/* read CCK/OFDM CCA counter */
-		ret_value =
-			odm_get_bb_reg(dm, ODM_REG_CCK_CCA_CNT_11AC, MASKDWORD);
-		false_alm_cnt->cnt_ofdm_cca = (ret_value & 0xffff0000) >> 16;
-		false_alm_cnt->cnt_cck_cca = ret_value & 0xffff;
-
-		/* read CCK CRC32 counter */
-		ret_value = odm_get_bb_reg(dm, ODM_REG_CCK_CRC32_CNT_11AC,
-					   MASKDWORD);
-		false_alm_cnt->cnt_cck_crc32_error =
-			(ret_value & 0xffff0000) >> 16;
-		false_alm_cnt->cnt_cck_crc32_ok = ret_value & 0xffff;
-
-		/* read OFDM CRC32 counter */
-		ret_value = odm_get_bb_reg(dm, ODM_REG_OFDM_CRC32_CNT_11AC,
-					   MASKDWORD);
-		false_alm_cnt->cnt_ofdm_crc32_error =
-			(ret_value & 0xffff0000) >> 16;
-		false_alm_cnt->cnt_ofdm_crc32_ok = ret_value & 0xffff;
-
-		/* read HT CRC32 counter */
-		ret_value = odm_get_bb_reg(dm, ODM_REG_HT_CRC32_CNT_11AC,
-					   MASKDWORD);
-		false_alm_cnt->cnt_ht_crc32_error =
-			(ret_value & 0xffff0000) >> 16;
-		false_alm_cnt->cnt_ht_crc32_ok = ret_value & 0xffff;
-
-		/* read VHT CRC32 counter */
-		ret_value = odm_get_bb_reg(dm, ODM_REG_VHT_CRC32_CNT_11AC,
-					   MASKDWORD);
-		false_alm_cnt->cnt_vht_crc32_error =
-			(ret_value & 0xffff0000) >> 16;
-		false_alm_cnt->cnt_vht_crc32_ok = ret_value & 0xffff;
-
-		/* reset OFDM FA counter */
-		odm_set_bb_reg(dm, ODM_REG_OFDM_FA_RST_11AC, BIT(17), 1);
-		odm_set_bb_reg(dm, ODM_REG_OFDM_FA_RST_11AC, BIT(17), 0);
-
-		/* reset CCK FA counter */
-		odm_set_bb_reg(dm, ODM_REG_CCK_FA_RST_11AC, BIT(15), 0);
-		odm_set_bb_reg(dm, ODM_REG_CCK_FA_RST_11AC, BIT(15), 1);
-
-		/* reset CCA counter */
-		odm_set_bb_reg(dm, ODM_REG_RST_RPT_11AC, BIT(0), 1);
-		odm_set_bb_reg(dm, ODM_REG_RST_RPT_11AC, BIT(0), 0);
-
-		cck_enable =
-			odm_get_bb_reg(dm, ODM_REG_BB_RX_PATH_11AC, BIT(28));
-		if (cck_enable) { /* if(*dm->band_type == ODM_BAND_2_4G) */
-			false_alm_cnt->cnt_all = false_alm_cnt->cnt_ofdm_fail +
-						 false_alm_cnt->cnt_cck_fail;
-			false_alm_cnt->cnt_cca_all =
-				false_alm_cnt->cnt_cck_cca +
-				false_alm_cnt->cnt_ofdm_cca;
-		} else {
-			false_alm_cnt->cnt_all = false_alm_cnt->cnt_ofdm_fail;
-			false_alm_cnt->cnt_cca_all =
-				false_alm_cnt->cnt_ofdm_cca;
-		}
-
-		if (adc_smp->adc_smp_state == ADCSMP_STATE_IDLE) {
-			if (phydm_set_bb_dbg_port(
-				    dm, BB_DBGPORT_PRIORITY_1,
-				    0x0)) { /*set debug port to 0x0*/
-				false_alm_cnt->dbg_port0 =
-					phydm_get_bb_dbg_port_value(dm);
-				phydm_release_bb_dbg_port(dm);
-			}
-
-			if (phydm_set_bb_dbg_port(
-				    dm, BB_DBGPORT_PRIORITY_1,
-				    0x209)) { /*set debug port to 0x0*/
-				false_alm_cnt->edcca_flag =
-					(bool)((phydm_get_bb_dbg_port_value(
-							dm) &
-						BIT(30)) >>
-					       30);
-				phydm_release_bb_dbg_port(dm);
-			}
-		}
-	}
-
-	false_alm_cnt->cnt_crc32_error_all =
-		false_alm_cnt->cnt_vht_crc32_error +
-		false_alm_cnt->cnt_ht_crc32_error +
-		false_alm_cnt->cnt_ofdm_crc32_error +
-		false_alm_cnt->cnt_cck_crc32_error;
-	false_alm_cnt->cnt_crc32_ok_all = false_alm_cnt->cnt_vht_crc32_ok +
-					  false_alm_cnt->cnt_ht_crc32_ok +
-					  false_alm_cnt->cnt_ofdm_crc32_ok +
-					  false_alm_cnt->cnt_cck_crc32_ok;
-
-	ODM_RT_TRACE(dm, ODM_COMP_FA_CNT,
-		     "[CCA Cnt] {CCK, OFDM, Total} = {%d, %d, %d}\n",
-		     false_alm_cnt->cnt_cck_cca, false_alm_cnt->cnt_ofdm_cca,
-		     false_alm_cnt->cnt_cca_all);
-
-	ODM_RT_TRACE(dm, ODM_COMP_FA_CNT,
-		     "[FA Cnt] {CCK, OFDM, Total} = {%d, %d, %d}\n",
-		     false_alm_cnt->cnt_cck_fail, false_alm_cnt->cnt_ofdm_fail,
-		     false_alm_cnt->cnt_all);
-
-	ODM_RT_TRACE(dm, ODM_COMP_FA_CNT,
-		     "[CCK]  CRC32 {error, ok}= {%d, %d}\n",
-		     false_alm_cnt->cnt_cck_crc32_error,
-		     false_alm_cnt->cnt_cck_crc32_ok);
-	ODM_RT_TRACE(dm, ODM_COMP_FA_CNT, "[OFDM]CRC32 {error, ok}= {%d, %d}\n",
-		     false_alm_cnt->cnt_ofdm_crc32_error,
-		     false_alm_cnt->cnt_ofdm_crc32_ok);
-	ODM_RT_TRACE(dm, ODM_COMP_FA_CNT,
-		     "[ HT ]  CRC32 {error, ok}= {%d, %d}\n",
-		     false_alm_cnt->cnt_ht_crc32_error,
-		     false_alm_cnt->cnt_ht_crc32_ok);
-	ODM_RT_TRACE(dm, ODM_COMP_FA_CNT,
-		     "[VHT]  CRC32 {error, ok}= {%d, %d}\n",
-		     false_alm_cnt->cnt_vht_crc32_error,
-		     false_alm_cnt->cnt_vht_crc32_ok);
-	ODM_RT_TRACE(dm, ODM_COMP_FA_CNT,
-		     "[VHT]  CRC32 {error, ok}= {%d, %d}\n",
-		     false_alm_cnt->cnt_crc32_error_all,
-		     false_alm_cnt->cnt_crc32_ok_all);
-	ODM_RT_TRACE(dm, ODM_COMP_FA_CNT,
-		     "FA_Cnt: Dbg port 0x0 = 0x%x, EDCCA = %d\n\n",
-		     false_alm_cnt->dbg_port0, false_alm_cnt->edcca_flag);
-}
-
-/* 3============================================================
- * 3 CCK Packet Detect threshold
- * 3============================================================
- */
-
-void odm_pause_cck_packet_detection(void *dm_void,
-				    enum phydm_pause_type pause_type,
-				    enum phydm_pause_level pause_level,
-				    u8 cck_pd_threshold)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	s8 max_level;
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s()=========> level = %d\n", __func__,
-		     pause_level);
-
-	if (dig_tab->pause_cckpd_level == 0 &&
-	    (!(dm->support_ability & ODM_BB_CCK_PD) ||
-	     !(dm->support_ability & ODM_BB_FA_CNT))) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_DIG,
-			"Return: support_ability ODM_BB_CCK_PD or ODM_BB_FA_CNT is disabled\n");
-		return;
-	}
-
-	if (pause_level > DM_DIG_MAX_PAUSE_TYPE) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG,
-			     "%s(): Return: Wrong pause level !!\n", __func__);
-		return;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG,
-		     "%s(): pause level = 0x%x, Current value = 0x%x\n",
-		     __func__, dig_tab->pause_cckpd_level, cck_pd_threshold);
-	ODM_RT_TRACE(
-		dm, ODM_COMP_DIG,
-		"%s(): pause value = 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
-		__func__, dig_tab->pause_cckpd_value[7],
-		dig_tab->pause_cckpd_value[6], dig_tab->pause_cckpd_value[5],
-		dig_tab->pause_cckpd_value[4], dig_tab->pause_cckpd_value[3],
-		dig_tab->pause_cckpd_value[2], dig_tab->pause_cckpd_value[1],
-		dig_tab->pause_cckpd_value[0]);
-
-	switch (pause_type) {
-	/* Pause CCK Packet Detection threshold */
-	case PHYDM_PAUSE: {
-		/* Disable CCK PD */
-		odm_cmn_info_update(dm, ODM_CMNINFO_ABILITY,
-				    dm->support_ability & (~ODM_BB_CCK_PD));
-		ODM_RT_TRACE(dm, ODM_COMP_DIG,
-			     "%s(): Pause CCK packet detection threshold !!\n",
-			     __func__);
-
-		/*Backup original CCK PD threshold decided by CCK PD mechanism*/
-		if (dig_tab->pause_cckpd_level == 0) {
-			dig_tab->cck_pd_backup = dig_tab->cur_cck_cca_thres;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"%s(): Backup CCKPD  = 0x%x, new CCKPD = 0x%x\n",
-				__func__, dig_tab->cck_pd_backup,
-				cck_pd_threshold);
-		}
-
-		/* Update pause level */
-		dig_tab->pause_cckpd_level =
-			(dig_tab->pause_cckpd_level | BIT(pause_level));
-
-		/* Record CCK PD threshold */
-		dig_tab->pause_cckpd_value[pause_level] = cck_pd_threshold;
-
-		/* Write new CCK PD threshold */
-		if (BIT(pause_level + 1) > dig_tab->pause_cckpd_level) {
-			odm_write_cck_cca_thres(dm, cck_pd_threshold);
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "%s(): CCKPD of higher level = 0x%x\n",
-				     __func__, cck_pd_threshold);
-		}
-		break;
-	}
-	/* Resume CCK Packet Detection threshold */
-	case PHYDM_RESUME: {
-		/* check if the level is illegal or not */
-		if ((dig_tab->pause_cckpd_level & (BIT(pause_level))) != 0) {
-			dig_tab->pause_cckpd_level =
-				dig_tab->pause_cckpd_level &
-				(~(BIT(pause_level)));
-			dig_tab->pause_cckpd_value[pause_level] = 0;
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "%s(): Resume CCK PD !!\n", __func__);
-		} else {
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "%s(): Wrong resume level !!\n", __func__);
-			break;
-		}
-
-		/* Resume DIG */
-		if (dig_tab->pause_cckpd_level == 0) {
-			/* Write backup IGI value */
-			odm_write_cck_cca_thres(dm, dig_tab->cck_pd_backup);
-			/* dig_tab->is_ignore_dig = true; */
-			ODM_RT_TRACE(dm, ODM_COMP_DIG,
-				     "%s(): Write original CCKPD = 0x%x\n",
-				     __func__, dig_tab->cck_pd_backup);
-
-			/* Enable DIG */
-			odm_cmn_info_update(dm, ODM_CMNINFO_ABILITY,
-					    dm->support_ability |
-						    ODM_BB_CCK_PD);
-			break;
-		}
-
-		if (BIT(pause_level) <= dig_tab->pause_cckpd_level)
-			break;
-
-		/* Calculate the maximum level now */
-		for (max_level = (pause_level - 1); max_level >= 0;
-		     max_level--) {
-			if ((dig_tab->pause_cckpd_level & BIT(max_level)) > 0)
-				break;
-		}
-
-		/* write CCKPD of lower level */
-		odm_write_cck_cca_thres(dm,
-					dig_tab->pause_cckpd_value[max_level]);
-		ODM_RT_TRACE(dm, ODM_COMP_DIG,
-			     "%s(): Write CCKPD (0x%x) of level (%d)\n",
-			     __func__, dig_tab->pause_cckpd_value[max_level],
-			     max_level);
-		break;
-	}
-	default:
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "%s(): Wrong  type !!\n",
-			     __func__);
-		break;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG,
-		     "%s(): pause level = 0x%x, Current value = 0x%x\n",
-		     __func__, dig_tab->pause_cckpd_level, cck_pd_threshold);
-	ODM_RT_TRACE(
-		dm, ODM_COMP_DIG,
-		"%s(): pause value = 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
-		__func__, dig_tab->pause_cckpd_value[7],
-		dig_tab->pause_cckpd_value[6], dig_tab->pause_cckpd_value[5],
-		dig_tab->pause_cckpd_value[4], dig_tab->pause_cckpd_value[3],
-		dig_tab->pause_cckpd_value[2], dig_tab->pause_cckpd_value[1],
-		dig_tab->pause_cckpd_value[0]);
-}
-
-void odm_cck_packet_detection_thresh(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	struct false_alarm_stat *false_alm_cnt =
-		(struct false_alarm_stat *)phydm_get_structure(
-			dm, PHYDM_FALSEALMCNT);
-	u8 cur_cck_cca_thres = dig_tab->cur_cck_cca_thres, rssi_thd = 35;
-
-	if ((!(dm->support_ability & ODM_BB_CCK_PD)) ||
-	    (!(dm->support_ability & ODM_BB_FA_CNT))) {
-		ODM_RT_TRACE(dm, ODM_COMP_DIG, "CCK_PD: return==========\n");
-		return;
-	}
-
-	if (dm->ext_lna)
-		return;
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "CCK_PD: ==========>\n");
-
-	if (dig_tab->cck_fa_ma == 0xffffffff)
-		dig_tab->cck_fa_ma = false_alm_cnt->cnt_cck_fail;
-	else
-		dig_tab->cck_fa_ma =
-			((dig_tab->cck_fa_ma << 1) + dig_tab->cck_fa_ma +
-			 false_alm_cnt->cnt_cck_fail) >>
-			2;
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "CCK_PD: CCK FA moving average = %d\n",
-		     dig_tab->cck_fa_ma);
-
-	if (dm->is_linked) {
-		if (dm->rssi_min > rssi_thd) {
-			cur_cck_cca_thres = 0xcd;
-		} else if (dm->rssi_min > 20) {
-			if (dig_tab->cck_fa_ma >
-			    ((DM_DIG_FA_TH1 >> 1) + (DM_DIG_FA_TH1 >> 3)))
-				cur_cck_cca_thres = 0xcd;
-			else if (dig_tab->cck_fa_ma < (DM_DIG_FA_TH0 >> 1))
-				cur_cck_cca_thres = 0x83;
-		} else if (dm->rssi_min > 7) {
-			cur_cck_cca_thres = 0x83;
-		} else {
-			cur_cck_cca_thres = 0x40;
-		}
-
-	} else {
-		if (dig_tab->cck_fa_ma > 0x400)
-			cur_cck_cca_thres = 0x83;
-		else if (dig_tab->cck_fa_ma < 0x200)
-			cur_cck_cca_thres = 0x40;
-	}
-
-	{
-		odm_write_cck_cca_thres(dm, cur_cck_cca_thres);
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_DIG, "CCK_PD: cck_cca_th=((0x%x))\n\n",
-		     cur_cck_cca_thres);
-}
-
-void odm_write_cck_cca_thres(void *dm_void, u8 cur_cck_cca_thres)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-
-	if (dig_tab->cur_cck_cca_thres !=
-	    cur_cck_cca_thres) { /* modify by Guo.Mingzhi 2012-01-03 */
-		odm_write_1byte(dm, ODM_REG(CCK_CCA, dm), cur_cck_cca_thres);
-		dig_tab->cck_fa_ma = 0xffffffff;
-	}
-	dig_tab->pre_cck_cca_thres = dig_tab->cur_cck_cca_thres;
-	dig_tab->cur_cck_cca_thres = cur_cck_cca_thres;
-}
-
-bool phydm_dig_go_up_check(void *dm_void)
-{
-	bool ret = true;
-
-	return ret;
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_dig.h b/drivers/staging/rtlwifi/phydm/phydm_dig.h
deleted file mode 100644
index f618b4d..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_dig.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMDIG_H__
-#define __PHYDMDIG_H__
-
-#define DIG_VERSION "1.32" /* 2016.09.02  YuChen. add CCK PD for 8197F*/
-
-/* Pause DIG & CCKPD */
-#define DM_DIG_MAX_PAUSE_TYPE 0x7
-
-enum dig_goupcheck_level {
-	DIG_GOUPCHECK_LEVEL_0,
-	DIG_GOUPCHECK_LEVEL_1,
-	DIG_GOUPCHECK_LEVEL_2
-
-};
-
-struct dig_thres {
-	bool is_stop_dig; /* for debug */
-	bool is_ignore_dig;
-	bool is_psd_in_progress;
-
-	u8 dig_enable_flag;
-	u8 dig_ext_port_stage;
-
-	int rssi_low_thresh;
-	int rssi_high_thresh;
-
-	u32 fa_low_thresh;
-	u32 fa_high_thresh;
-
-	u8 cur_sta_connect_state;
-	u8 pre_sta_connect_state;
-	u8 cur_multi_sta_connect_state;
-
-	u8 pre_ig_value;
-	u8 cur_ig_value;
-	u8 backup_ig_value; /* MP DIG */
-	u8 bt30_cur_igi;
-	u8 igi_backup;
-
-	s8 backoff_val;
-	s8 backoff_val_range_max;
-	s8 backoff_val_range_min;
-	u8 rx_gain_range_max;
-	u8 rx_gain_range_min;
-	u8 rssi_val_min;
-
-	u8 pre_cck_cca_thres;
-	u8 cur_cck_cca_thres;
-	u8 pre_cck_pd_state;
-	u8 cur_cck_pd_state;
-	u8 cck_pd_backup;
-	u8 pause_cckpd_level;
-	u8 pause_cckpd_value[DM_DIG_MAX_PAUSE_TYPE + 1];
-
-	u8 large_fa_hit;
-	u8 large_fa_timeout; /*if (large_fa_hit), monitor "large_fa_timeout"
-			      *sec, if timeout, large_fa_hit=0
-			      */
-	u8 forbidden_igi;
-	u32 recover_cnt;
-
-	u8 dig_dynamic_min_0;
-	u8 dig_dynamic_min_1;
-	bool is_media_connect_0;
-	bool is_media_connect_1;
-
-	u32 ant_div_rssi_max;
-	u32 rssi_max;
-
-	u8 *is_p2p_in_process;
-
-	u8 pause_dig_level;
-	u8 pause_dig_value[DM_DIG_MAX_PAUSE_TYPE + 1];
-
-	u32 cck_fa_ma;
-	enum dig_goupcheck_level dig_go_up_check_level;
-	u8 aaa_default;
-
-	u8 rf_gain_idx;
-	u8 agc_table_idx;
-	u8 big_jump_lmt[16];
-	u8 enable_adjust_big_jump : 1;
-	u8 big_jump_step1 : 3;
-	u8 big_jump_step2 : 2;
-	u8 big_jump_step3 : 2;
-};
-
-struct false_alarm_stat {
-	u32 cnt_parity_fail;
-	u32 cnt_rate_illegal;
-	u32 cnt_crc8_fail;
-	u32 cnt_mcs_fail;
-	u32 cnt_ofdm_fail;
-	u32 cnt_ofdm_fail_pre; /* For RTL8881A */
-	u32 cnt_cck_fail;
-	u32 cnt_all;
-	u32 cnt_all_pre;
-	u32 cnt_fast_fsync;
-	u32 cnt_sb_search_fail;
-	u32 cnt_ofdm_cca;
-	u32 cnt_cck_cca;
-	u32 cnt_cca_all;
-	u32 cnt_bw_usc; /* Gary */
-	u32 cnt_bw_lsc; /* Gary */
-	u32 cnt_cck_crc32_error;
-	u32 cnt_cck_crc32_ok;
-	u32 cnt_ofdm_crc32_error;
-	u32 cnt_ofdm_crc32_ok;
-	u32 cnt_ht_crc32_error;
-	u32 cnt_ht_crc32_ok;
-	u32 cnt_vht_crc32_error;
-	u32 cnt_vht_crc32_ok;
-	u32 cnt_crc32_error_all;
-	u32 cnt_crc32_ok_all;
-	bool cck_block_enable;
-	bool ofdm_block_enable;
-	u32 dbg_port0;
-	bool edcca_flag;
-};
-
-enum dm_dig_op {
-	DIG_TYPE_THRESH_HIGH = 0,
-	DIG_TYPE_THRESH_LOW = 1,
-	DIG_TYPE_BACKOFF = 2,
-	DIG_TYPE_RX_GAIN_MIN = 3,
-	DIG_TYPE_RX_GAIN_MAX = 4,
-	DIG_TYPE_ENABLE = 5,
-	DIG_TYPE_DISABLE = 6,
-	DIG_OP_TYPE_MAX
-};
-
-enum phydm_pause_type { PHYDM_PAUSE = BIT(0), PHYDM_RESUME = BIT(1) };
-
-enum phydm_pause_level {
-	/* number of pause level can't exceed DM_DIG_MAX_PAUSE_TYPE */
-	PHYDM_PAUSE_LEVEL_0 = 0,
-	PHYDM_PAUSE_LEVEL_1 = 1,
-	PHYDM_PAUSE_LEVEL_2 = 2,
-	PHYDM_PAUSE_LEVEL_3 = 3,
-	PHYDM_PAUSE_LEVEL_4 = 4,
-	PHYDM_PAUSE_LEVEL_5 = 5,
-	PHYDM_PAUSE_LEVEL_6 = 6,
-	PHYDM_PAUSE_LEVEL_7 = DM_DIG_MAX_PAUSE_TYPE /* maximum level */
-};
-
-#define DM_DIG_THRESH_HIGH 40
-#define DM_DIG_THRESH_LOW 35
-
-#define DM_FALSEALARM_THRESH_LOW 400
-#define DM_FALSEALARM_THRESH_HIGH 1000
-
-#define DM_DIG_MAX_NIC 0x3e
-#define DM_DIG_MIN_NIC 0x20
-#define DM_DIG_MAX_OF_MIN_NIC 0x3e
-
-#define DM_DIG_MAX_AP 0x3e
-#define DM_DIG_MIN_AP 0x20
-#define DM_DIG_MAX_OF_MIN 0x2A /* 0x32 */
-#define DM_DIG_MIN_AP_DFS 0x20
-
-#define DM_DIG_MAX_NIC_HP 0x46
-#define DM_DIG_MIN_NIC_HP 0x2e
-
-#define DM_DIG_MAX_AP_HP 0x42
-#define DM_DIG_MIN_AP_HP 0x30
-
-/* vivi 92c&92d has different definition, 20110504
- * this is for 92c
- */
-#define DM_DIG_FA_TH0 0x200 /* 0x20 */
-
-#define DM_DIG_FA_TH1 0x300
-#define DM_DIG_FA_TH2 0x400
-/* this is for 92d */
-#define DM_DIG_FA_TH0_92D 0x100
-#define DM_DIG_FA_TH1_92D 0x400
-#define DM_DIG_FA_TH2_92D 0x600
-
-#define DM_DIG_BACKOFF_MAX 12
-#define DM_DIG_BACKOFF_MIN -4
-#define DM_DIG_BACKOFF_DEFAULT 10
-
-#define DM_DIG_FA_TH0_LPS 4 /* -> 4 in lps */
-#define DM_DIG_FA_TH1_LPS 15 /* -> 15 lps */
-#define DM_DIG_FA_TH2_LPS 30 /* -> 30 lps */
-#define RSSI_OFFSET_DIG 0x05
-#define LARGE_FA_TIMEOUT 60
-
-void odm_change_dynamic_init_gain_thresh(void *dm_void, u32 dm_type,
-					 u32 dm_value);
-
-void odm_write_dig(void *dm_void, u8 current_igi);
-
-void odm_pause_dig(void *dm_void, enum phydm_pause_type pause_type,
-		   enum phydm_pause_level pause_level, u8 igi_value);
-
-void odm_dig_init(void *dm_void);
-
-void odm_DIG(void *dm_void);
-
-void odm_dig_by_rssi_lps(void *dm_void);
-
-void odm_false_alarm_counter_statistics(void *dm_void);
-
-void odm_pause_cck_packet_detection(void *dm_void,
-				    enum phydm_pause_type pause_type,
-				    enum phydm_pause_level pause_level,
-				    u8 cck_pd_threshold);
-
-void odm_cck_packet_detection_thresh(void *dm_void);
-
-void odm_write_cck_cca_thres(void *dm_void, u8 cur_cck_cca_thres);
-
-bool phydm_dig_go_up_check(void *dm_void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_dynamic_rx_path.h b/drivers/staging/rtlwifi/phydm/phydm_dynamic_rx_path.h
deleted file mode 100644
index 61e29df..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_dynamic_rx_path.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMDYMICRXPATH_H__
-#define __PHYDMDYMICRXPATH_H__
-
-#define DYNAMIC_RX_PATH_VERSION "1.0" /*2016.07.15  Dino */
-
-#define DRP_RSSI_TH 35
-
-#define INIT_DRP_TIMMER 0
-#define CANCEL_DRP_TIMMER 1
-#define RELEASE_DRP_TIMMER 2
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_dynamicbbpowersaving.c b/drivers/staging/rtlwifi/phydm/phydm_dynamicbbpowersaving.c
deleted file mode 100644
index d3f74d1..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_dynamicbbpowersaving.c
+++ /dev/null
@@ -1,118 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-static inline void phydm_update_rf_state(struct phy_dm_struct *dm,
-					 struct dyn_pwr_saving *dm_ps_table,
-					 int _rssi_up_bound,
-					 int _rssi_low_bound,
-					 int _is_force_in_normal)
-{
-	if (_is_force_in_normal) {
-		dm_ps_table->cur_rf_state = rf_normal;
-		return;
-	}
-
-	if (dm->rssi_min == 0xFF) {
-		dm_ps_table->cur_rf_state = RF_MAX;
-		return;
-	}
-
-	if (dm_ps_table->pre_rf_state == rf_normal) {
-		if (dm->rssi_min >= _rssi_up_bound)
-			dm_ps_table->cur_rf_state = rf_save;
-		else
-			dm_ps_table->cur_rf_state = rf_normal;
-	} else {
-		if (dm->rssi_min <= _rssi_low_bound)
-			dm_ps_table->cur_rf_state = rf_normal;
-		else
-			dm_ps_table->cur_rf_state = rf_save;
-	}
-}
-
-void odm_dynamic_bb_power_saving_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dyn_pwr_saving *dm_ps_table = &dm->dm_ps_table;
-
-	dm_ps_table->pre_cca_state = CCA_MAX;
-	dm_ps_table->cur_cca_state = CCA_MAX;
-	dm_ps_table->pre_rf_state = RF_MAX;
-	dm_ps_table->cur_rf_state = RF_MAX;
-	dm_ps_table->rssi_val_min = 0;
-	dm_ps_table->initialize = 0;
-}
-
-void odm_rf_saving(void *dm_void, u8 is_force_in_normal)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dyn_pwr_saving *dm_ps_table = &dm->dm_ps_table;
-	u8 rssi_up_bound = 30;
-	u8 rssi_low_bound = 25;
-
-	if (dm->patch_id == 40) { /* RT_CID_819x_FUNAI_TV */
-		rssi_up_bound = 50;
-		rssi_low_bound = 45;
-	}
-	if (dm_ps_table->initialize == 0) {
-		dm_ps_table->reg874 =
-			(odm_get_bb_reg(dm, 0x874, MASKDWORD) & 0x1CC000) >> 14;
-		dm_ps_table->regc70 =
-			(odm_get_bb_reg(dm, 0xc70, MASKDWORD) & BIT(3)) >> 3;
-		dm_ps_table->reg85c =
-			(odm_get_bb_reg(dm, 0x85c, MASKDWORD) & 0xFF000000) >>
-			24;
-		dm_ps_table->rega74 =
-			(odm_get_bb_reg(dm, 0xa74, MASKDWORD) & 0xF000) >> 12;
-		/* Reg818 = phy_query_bb_reg(adapter, 0x818, MASKDWORD); */
-		dm_ps_table->initialize = 1;
-	}
-
-	phydm_update_rf_state(dm, dm_ps_table, rssi_up_bound, rssi_low_bound,
-			      is_force_in_normal);
-
-	if (dm_ps_table->pre_rf_state != dm_ps_table->cur_rf_state) {
-		if (dm_ps_table->cur_rf_state == rf_save) {
-			odm_set_bb_reg(dm, 0x874, 0x1C0000,
-				       0x2); /* reg874[20:18]=3'b010 */
-			odm_set_bb_reg(dm, 0xc70, BIT(3),
-				       0); /* regc70[3]=1'b0 */
-			odm_set_bb_reg(dm, 0x85c, 0xFF000000,
-				       0x63); /* reg85c[31:24]=0x63 */
-			odm_set_bb_reg(dm, 0x874, 0xC000,
-				       0x2); /* reg874[15:14]=2'b10 */
-			odm_set_bb_reg(dm, 0xa74, 0xF000,
-				       0x3); /* RegA75[7:4]=0x3 */
-			odm_set_bb_reg(dm, 0x818, BIT(28),
-				       0x0); /* Reg818[28]=1'b0 */
-			odm_set_bb_reg(dm, 0x818, BIT(28),
-				       0x1); /* Reg818[28]=1'b1 */
-		} else {
-			odm_set_bb_reg(dm, 0x874, 0x1CC000,
-				       dm_ps_table->reg874);
-			odm_set_bb_reg(dm, 0xc70, BIT(3), dm_ps_table->regc70);
-			odm_set_bb_reg(dm, 0x85c, 0xFF000000,
-				       dm_ps_table->reg85c);
-			odm_set_bb_reg(dm, 0xa74, 0xF000, dm_ps_table->rega74);
-			odm_set_bb_reg(dm, 0x818, BIT(28), 0x0);
-		}
-		dm_ps_table->pre_rf_state = dm_ps_table->cur_rf_state;
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_dynamicbbpowersaving.h b/drivers/staging/rtlwifi/phydm/phydm_dynamicbbpowersaving.h
deleted file mode 100644
index 3ea6806..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_dynamicbbpowersaving.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMDYNAMICBBPOWERSAVING_H__
-#define __PHYDMDYNAMICBBPOWERSAVING_H__
-
-#define DYNAMIC_BBPWRSAV_VERSION "1.1"
-
-struct dyn_pwr_saving {
-	u8 pre_cca_state;
-	u8 cur_cca_state;
-
-	u8 pre_rf_state;
-	u8 cur_rf_state;
-
-	int rssi_val_min;
-
-	u8 initialize;
-	u32 reg874, regc70, reg85c, rega74;
-};
-
-#define dm_rf_saving odm_rf_saving
-
-void odm_rf_saving(void *dm_void, u8 is_force_in_normal);
-
-void odm_dynamic_bb_power_saving_init(void *dm_void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_dynamictxpower.c b/drivers/staging/rtlwifi/phydm/phydm_dynamictxpower.c
deleted file mode 100644
index afe650e..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_dynamictxpower.c
+++ /dev/null
@@ -1,91 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-void odm_dynamic_tx_power_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	dm->last_dtp_lvl = tx_high_pwr_level_normal;
-	dm->dynamic_tx_high_power_lvl = tx_high_pwr_level_normal;
-	dm->tx_agc_ofdm_18_6 =
-		odm_get_bb_reg(dm, 0xC24, MASKDWORD); /*TXAGC {18M 12M 9M 6M}*/
-}
-
-void odm_dynamic_tx_power_save_power_index(void *dm_void) {}
-
-void odm_dynamic_tx_power_restore_power_index(void *dm_void) {}
-
-void odm_dynamic_tx_power_write_power_index(void *dm_void, u8 value)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 index;
-	u32 power_index_reg[6] = {0xc90, 0xc91, 0xc92, 0xc98, 0xc99, 0xc9a};
-
-	for (index = 0; index < 6; index++)
-		odm_write_1byte(dm, power_index_reg[index], value);
-}
-
-static void odm_dynamic_tx_power_nic_ce(void *dm_void) {}
-
-void odm_dynamic_tx_power(void *dm_void)
-{
-	/*  */
-	/* For AP/ADSL use struct rtl8192cd_priv* */
-	/* For CE/NIC use struct void* */
-	/*  */
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (!(dm->support_ability & ODM_BB_DYNAMIC_TXPWR))
-		return;
-	/* 2011/09/29 MH In HW integration first stage, we provide 4 different
-	 * handle to operate at the same time.
-	 * In the stage2/3, we need to prive universal interface and merge all
-	 * HW dynamic mechanism.
-	 */
-	switch (dm->support_platform) {
-	case ODM_WIN:
-		odm_dynamic_tx_power_nic(dm);
-		break;
-	case ODM_CE:
-		odm_dynamic_tx_power_nic_ce(dm);
-		break;
-	case ODM_AP:
-		odm_dynamic_tx_power_ap(dm);
-		break;
-	default:
-		break;
-	}
-}
-
-void odm_dynamic_tx_power_nic(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (!(dm->support_ability & ODM_BB_DYNAMIC_TXPWR))
-		return;
-}
-
-void odm_dynamic_tx_power_ap(void *dm_void
-
-			     )
-{
-}
-
-void odm_dynamic_tx_power_8821(void *dm_void, u8 *desc, u8 mac_id) {}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_dynamictxpower.h b/drivers/staging/rtlwifi/phydm/phydm_dynamictxpower.h
deleted file mode 100644
index afde69d..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_dynamictxpower.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMDYNAMICTXPOWER_H__
-#define __PHYDMDYNAMICTXPOWER_H__
-
-/*#define DYNAMIC_TXPWR_VERSION	"1.0"*/
-/*#define DYNAMIC_TXPWR_VERSION	"1.3" */ /*2015.08.26, Add 8814 Dynamic TX pwr*/
-#define DYNAMIC_TXPWR_VERSION "1.4" /*2015.11.06,Add CE 8821A Dynamic TX pwr*/
-
-#define TX_POWER_NEAR_FIELD_THRESH_LVL2 74
-#define TX_POWER_NEAR_FIELD_THRESH_LVL1 60
-
-#define tx_high_pwr_level_normal 0
-#define tx_high_pwr_level_level1 1
-#define tx_high_pwr_level_level2 2
-
-#define tx_high_pwr_level_bt1 3
-#define tx_high_pwr_level_bt2 4
-#define tx_high_pwr_level_15 5
-#define tx_high_pwr_level_35 6
-#define tx_high_pwr_level_50 7
-#define tx_high_pwr_level_70 8
-#define tx_high_pwr_level_100 9
-
-void odm_dynamic_tx_power_init(void *dm_void);
-
-void odm_dynamic_tx_power_restore_power_index(void *dm_void);
-
-void odm_dynamic_tx_power_nic(void *dm_void);
-
-void odm_dynamic_tx_power_save_power_index(void *dm_void);
-
-void odm_dynamic_tx_power_write_power_index(void *dm_void, u8 value);
-
-void odm_dynamic_tx_power_8821(void *dm_void, u8 *desc, u8 mac_id);
-
-void odm_dynamic_tx_power(void *dm_void);
-
-void odm_dynamic_tx_power_ap(void *dm_void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_edcaturbocheck.c b/drivers/staging/rtlwifi/phydm/phydm_edcaturbocheck.c
deleted file mode 100644
index b5bd4fb..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_edcaturbocheck.c
+++ /dev/null
@@ -1,128 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-void odm_edca_turbo_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	dm->dm_edca_table.is_current_turbo_edca = false;
-	dm->dm_edca_table.is_cur_rdl_state = false;
-
-	ODM_RT_TRACE(dm, ODM_COMP_EDCA_TURBO, "Original VO PARAM: 0x%x\n",
-		     odm_read_4byte(dm, ODM_EDCA_VO_PARAM));
-	ODM_RT_TRACE(dm, ODM_COMP_EDCA_TURBO, "Original VI PARAM: 0x%x\n",
-		     odm_read_4byte(dm, ODM_EDCA_VI_PARAM));
-	ODM_RT_TRACE(dm, ODM_COMP_EDCA_TURBO, "Original BE PARAM: 0x%x\n",
-		     odm_read_4byte(dm, ODM_EDCA_BE_PARAM));
-	ODM_RT_TRACE(dm, ODM_COMP_EDCA_TURBO, "Original BK PARAM: 0x%x\n",
-		     odm_read_4byte(dm, ODM_EDCA_BK_PARAM));
-
-} /* ODM_InitEdcaTurbo */
-
-void odm_edca_turbo_check(void *dm_void)
-{
-	/* For AP/ADSL use struct rtl8192cd_priv* */
-	/* For CE/NIC use struct void* */
-
-	/* 2011/09/29 MH In HW integration first stage, we provide 4 different
-	 * handle to operate at the same time.
-	 * In the stage2/3, we need to prive universal interface and merge all
-	 * HW dynamic mechanism.
-	 */
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	ODM_RT_TRACE(dm, ODM_COMP_EDCA_TURBO,
-		     "%s========================>\n", __func__);
-
-	if (!(dm->support_ability & ODM_MAC_EDCA_TURBO))
-		return;
-
-	switch (dm->support_platform) {
-	case ODM_WIN:
-
-		break;
-
-	case ODM_CE:
-		odm_edca_turbo_check_ce(dm);
-		break;
-	}
-	ODM_RT_TRACE(dm, ODM_COMP_EDCA_TURBO,
-		     "<========================%s\n", __func__);
-
-} /* odm_CheckEdcaTurbo */
-
-void odm_edca_turbo_check_ce(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-	u64 cur_txok_cnt = 0;
-	u64 cur_rxok_cnt = 0;
-	u32 edca_be_ul = 0x5ea42b;
-	u32 edca_be_dl = 0x5ea42b;
-	u32 edca_be = 0x5ea42b;
-	bool is_cur_rdlstate;
-	bool edca_turbo_on = false;
-
-	if (dm->wifi_test)
-		return;
-
-	if (!dm->is_linked) {
-		rtlpriv->dm.is_any_nonbepkts = false;
-		return;
-	}
-
-	if (rtlpriv->dm.dbginfo.num_non_be_pkt > 0x100)
-		rtlpriv->dm.is_any_nonbepkts = true;
-	rtlpriv->dm.dbginfo.num_non_be_pkt = 0;
-
-	cur_txok_cnt = rtlpriv->stats.txbytesunicast_inperiod;
-	cur_rxok_cnt = rtlpriv->stats.rxbytesunicast_inperiod;
-
-	/*b_bias_on_rx = false;*/
-	edca_turbo_on = ((!rtlpriv->dm.is_any_nonbepkts) &&
-			 (!rtlpriv->dm.disable_framebursting)) ?
-				true :
-				false;
-
-	if (rtlpriv->mac80211.mode == WIRELESS_MODE_B)
-		goto label_exit;
-
-	if (edca_turbo_on) {
-		is_cur_rdlstate =
-			(cur_rxok_cnt > cur_txok_cnt * 4) ? true : false;
-
-		edca_be = is_cur_rdlstate ? edca_be_dl : edca_be_ul;
-		rtl_write_dword(rtlpriv, REG_EDCA_BE_PARAM_8822B, edca_be);
-		rtlpriv->dm.is_cur_rdlstate = is_cur_rdlstate;
-		rtlpriv->dm.current_turbo_edca = true;
-	} else {
-		if (rtlpriv->dm.current_turbo_edca) {
-			u8 tmp = AC0_BE;
-
-			rtlpriv->cfg->ops->set_hw_reg(rtlpriv->hw,
-						      HW_VAR_AC_PARAM,
-						      (u8 *)(&tmp));
-			rtlpriv->dm.current_turbo_edca = false;
-		}
-	}
-
-label_exit:
-	rtlpriv->dm.is_any_nonbepkts = false;
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_edcaturbocheck.h b/drivers/staging/rtlwifi/phydm/phydm_edcaturbocheck.h
deleted file mode 100644
index c10b5fc..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_edcaturbocheck.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMEDCATURBOCHECK_H__
-#define __PHYDMEDCATURBOCHECK_H__
-
-/*#define EDCATURBO_VERSION	"2.1"*/
-#define EDCATURBO_VERSION "2.3" /*2015.07.29 by YuChen*/
-
-struct edca_turbo {
-	bool is_current_turbo_edca;
-	bool is_cur_rdl_state;
-
-	u32 prv_traffic_idx; /* edca turbo */
-};
-
-void odm_edca_turbo_check(void *dm_void);
-void odm_edca_turbo_init(void *dm_void);
-
-void odm_edca_turbo_check_ce(void *dm_void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_features.h b/drivers/staging/rtlwifi/phydm/phydm_features.h
deleted file mode 100644
index b4ff293..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_features.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDM_FEATURES_H__
-#define __PHYDM_FEATURES_H__
-
-/*phydm debyg report & tools*/
-
-/*Antenna Diversity*/
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_hwconfig.c b/drivers/staging/rtlwifi/phydm/phydm_hwconfig.c
deleted file mode 100644
index bdf3b74..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_hwconfig.c
+++ /dev/null
@@ -1,1848 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-#define READ_AND_CONFIG_MP(ic, txt) (odm_read_and_config_mp_##ic##txt(dm))
-#define READ_AND_CONFIG_TC(ic, txt) (odm_read_and_config_tc_##ic##txt(dm))
-
-#define READ_AND_CONFIG READ_AND_CONFIG_MP
-
-#define READ_FIRMWARE_MP(ic, txt)                                              \
-	(odm_read_firmware_mp_##ic##txt(dm, p_firmware, size))
-#define READ_FIRMWARE_TC(ic, txt)                                              \
-	(odm_read_firmware_tc_##ic##txt(dm, p_firmware, size))
-
-#define READ_FIRMWARE READ_FIRMWARE_MP
-
-#define GET_VERSION_MP(ic, txt) (odm_get_version_mp_##ic##txt())
-#define GET_VERSION_TC(ic, txt) (odm_get_version_tc_##ic##txt())
-
-#define GET_VERSION(ic, txt) GET_VERSION_MP(ic, txt)
-
-static u32 phydm_process_rssi_pwdb(struct phy_dm_struct *dm,
-				   struct rtl_sta_info *entry,
-				   struct dm_per_pkt_info *pktinfo,
-				   u32 undecorated_smoothed_ofdm,
-				   u32 undecorated_smoothed_cck)
-{
-	u32 weighting = 0, undecorated_smoothed_pwdb;
-	/* 2011.07.28 LukeLee: modified to prevent unstable CCK RSSI */
-
-	if (entry->rssi_stat.ofdm_pkt == 64) {
-		/* speed up when all packets are OFDM */
-		undecorated_smoothed_pwdb = undecorated_smoothed_ofdm;
-		ODM_RT_TRACE(dm, ODM_COMP_RSSI_MONITOR,
-			     "PWDB_0[%d] = (( %d ))\n", pktinfo->station_id,
-			     undecorated_smoothed_cck);
-	} else {
-		if (entry->rssi_stat.valid_bit < 64)
-			entry->rssi_stat.valid_bit++;
-
-		if (entry->rssi_stat.valid_bit == 64) {
-			weighting = ((entry->rssi_stat.ofdm_pkt) > 4) ?
-					    64 :
-					    (entry->rssi_stat.ofdm_pkt << 4);
-			undecorated_smoothed_pwdb =
-				(weighting * undecorated_smoothed_ofdm +
-				 (64 - weighting) * undecorated_smoothed_cck) >>
-				6;
-			ODM_RT_TRACE(dm, ODM_COMP_RSSI_MONITOR,
-				     "PWDB_1[%d] = (( %d )), W = (( %d ))\n",
-				     pktinfo->station_id,
-				     undecorated_smoothed_cck, weighting);
-		} else {
-			if (entry->rssi_stat.valid_bit != 0)
-				undecorated_smoothed_pwdb =
-					(entry->rssi_stat.ofdm_pkt *
-						 undecorated_smoothed_ofdm +
-					 (entry->rssi_stat.valid_bit -
-					  entry->rssi_stat.ofdm_pkt) *
-						 undecorated_smoothed_cck) /
-					entry->rssi_stat.valid_bit;
-			else
-				undecorated_smoothed_pwdb = 0;
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_RSSI_MONITOR,
-				"PWDB_2[%d] = (( %d )), ofdm_pkt = (( %d )), Valid_Bit = (( %d ))\n",
-				pktinfo->station_id, undecorated_smoothed_cck,
-				entry->rssi_stat.ofdm_pkt,
-				entry->rssi_stat.valid_bit);
-		}
-	}
-
-	return undecorated_smoothed_pwdb;
-}
-
-static u32 phydm_process_rssi_cck(struct phy_dm_struct *dm,
-				  struct dm_phy_status_info *phy_info,
-				  struct rtl_sta_info *entry,
-				  u32 undecorated_smoothed_cck)
-{
-	u32 rssi_ave;
-	u8 i;
-
-	rssi_ave = phy_info->rx_pwdb_all;
-	dm->rssi_a = (u8)phy_info->rx_pwdb_all;
-	dm->rssi_b = 0xFF;
-	dm->rssi_c = 0xFF;
-	dm->rssi_d = 0xFF;
-
-	if (entry->rssi_stat.cck_pkt <= 63)
-		entry->rssi_stat.cck_pkt++;
-
-	/* 1 Process CCK RSSI */
-	if (undecorated_smoothed_cck <= 0) { /* initialize */
-		undecorated_smoothed_cck = phy_info->rx_pwdb_all;
-		entry->rssi_stat.cck_sum_power =
-			(u16)phy_info->rx_pwdb_all; /*reset*/
-		entry->rssi_stat.cck_pkt = 1; /*reset*/
-		ODM_RT_TRACE(dm, ODM_COMP_RSSI_MONITOR, "CCK_INIT: (( %d ))\n",
-			     undecorated_smoothed_cck);
-	} else if (entry->rssi_stat.cck_pkt <= CCK_RSSI_INIT_COUNT) {
-		entry->rssi_stat.cck_sum_power =
-			entry->rssi_stat.cck_sum_power +
-			(u16)phy_info->rx_pwdb_all;
-		undecorated_smoothed_cck = entry->rssi_stat.cck_sum_power /
-					   entry->rssi_stat.cck_pkt;
-
-		ODM_RT_TRACE(
-			dm, ODM_COMP_RSSI_MONITOR,
-			"CCK_0: (( %d )), SumPow = (( %d )), cck_pkt = (( %d ))\n",
-			undecorated_smoothed_cck,
-			entry->rssi_stat.cck_sum_power,
-			entry->rssi_stat.cck_pkt);
-	} else {
-		if (phy_info->rx_pwdb_all > (u32)undecorated_smoothed_cck) {
-			undecorated_smoothed_cck =
-				(((undecorated_smoothed_cck) *
-				  (RX_SMOOTH_FACTOR - 1)) +
-				 (phy_info->rx_pwdb_all)) /
-				(RX_SMOOTH_FACTOR);
-			undecorated_smoothed_cck = undecorated_smoothed_cck + 1;
-			ODM_RT_TRACE(dm, ODM_COMP_RSSI_MONITOR,
-				     "CCK_1: (( %d ))\n",
-				     undecorated_smoothed_cck);
-		} else {
-			undecorated_smoothed_cck =
-				(((undecorated_smoothed_cck) *
-				  (RX_SMOOTH_FACTOR - 1)) +
-				 (phy_info->rx_pwdb_all)) /
-				(RX_SMOOTH_FACTOR);
-			ODM_RT_TRACE(dm, ODM_COMP_RSSI_MONITOR,
-				     "CCK_2: (( %d ))\n",
-				     undecorated_smoothed_cck);
-		}
-	}
-
-	i = 63;
-	entry->rssi_stat.ofdm_pkt -=
-		(u8)((entry->rssi_stat.packet_map >> i) & BIT(0));
-	entry->rssi_stat.packet_map = entry->rssi_stat.packet_map << 1;
-	return undecorated_smoothed_cck;
-}
-
-static u32 phydm_process_rssi_ofdm(struct phy_dm_struct *dm,
-				   struct dm_phy_status_info *phy_info,
-				   struct rtl_sta_info *entry,
-				   u32 undecorated_smoothed_ofdm)
-{
-	u32 rssi_ave;
-	u8 rssi_max, rssi_min, i;
-
-	if (dm->support_ic_type & (ODM_RTL8814A | ODM_RTL8822B)) {
-		u8 rx_count = 0;
-		u32 rssi_linear = 0;
-
-		if (dm->rx_ant_status & ODM_RF_A) {
-			dm->rssi_a = phy_info->rx_mimo_signal_strength
-					     [ODM_RF_PATH_A];
-			rx_count++;
-			rssi_linear += odm_convert_to_linear(
-				phy_info->rx_mimo_signal_strength
-					[ODM_RF_PATH_A]);
-		} else {
-			dm->rssi_a = 0;
-		}
-
-		if (dm->rx_ant_status & ODM_RF_B) {
-			dm->rssi_b = phy_info->rx_mimo_signal_strength
-					     [ODM_RF_PATH_B];
-			rx_count++;
-			rssi_linear += odm_convert_to_linear(
-				phy_info->rx_mimo_signal_strength
-					[ODM_RF_PATH_B]);
-		} else {
-			dm->rssi_b = 0;
-		}
-
-		if (dm->rx_ant_status & ODM_RF_C) {
-			dm->rssi_c = phy_info->rx_mimo_signal_strength
-					     [ODM_RF_PATH_C];
-			rx_count++;
-			rssi_linear += odm_convert_to_linear(
-				phy_info->rx_mimo_signal_strength
-					[ODM_RF_PATH_C]);
-		} else {
-			dm->rssi_c = 0;
-		}
-
-		if (dm->rx_ant_status & ODM_RF_D) {
-			dm->rssi_d = phy_info->rx_mimo_signal_strength
-					     [ODM_RF_PATH_D];
-			rx_count++;
-			rssi_linear += odm_convert_to_linear(
-				phy_info->rx_mimo_signal_strength
-					[ODM_RF_PATH_D]);
-		} else {
-			dm->rssi_d = 0;
-		}
-
-		/* Calculate average RSSI */
-		switch (rx_count) {
-		case 2:
-			rssi_linear = rssi_linear >> 1;
-			break;
-		case 3:
-			/* rssi_linear/3 ~ rssi_linear*11/32 */
-			rssi_linear = ((rssi_linear) + (rssi_linear << 1) +
-				       (rssi_linear << 3)) >>
-				      5;
-			break;
-		case 4:
-			rssi_linear = rssi_linear >> 2;
-			break;
-		}
-
-		rssi_ave = odm_convert_to_db(rssi_linear);
-	} else {
-		if (phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B] == 0) {
-			rssi_ave = phy_info->rx_mimo_signal_strength
-					   [ODM_RF_PATH_A];
-			dm->rssi_a = phy_info->rx_mimo_signal_strength
-					     [ODM_RF_PATH_A];
-			dm->rssi_b = 0;
-		} else {
-			dm->rssi_a = phy_info->rx_mimo_signal_strength
-					     [ODM_RF_PATH_A];
-			dm->rssi_b = phy_info->rx_mimo_signal_strength
-					     [ODM_RF_PATH_B];
-
-			if (phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A] >
-			    phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B]) {
-				rssi_max = phy_info->rx_mimo_signal_strength
-						   [ODM_RF_PATH_A];
-				rssi_min = phy_info->rx_mimo_signal_strength
-						   [ODM_RF_PATH_B];
-			} else {
-				rssi_max = phy_info->rx_mimo_signal_strength
-						   [ODM_RF_PATH_B];
-				rssi_min = phy_info->rx_mimo_signal_strength
-						   [ODM_RF_PATH_A];
-			}
-			if ((rssi_max - rssi_min) < 3)
-				rssi_ave = rssi_max;
-			else if ((rssi_max - rssi_min) < 6)
-				rssi_ave = rssi_max - 1;
-			else if ((rssi_max - rssi_min) < 10)
-				rssi_ave = rssi_max - 2;
-			else
-				rssi_ave = rssi_max - 3;
-		}
-	}
-
-	/* 1 Process OFDM RSSI */
-	if (undecorated_smoothed_ofdm <= 0) { /* initialize */
-		undecorated_smoothed_ofdm = phy_info->rx_pwdb_all;
-		ODM_RT_TRACE(dm, ODM_COMP_RSSI_MONITOR, "OFDM_INIT: (( %d ))\n",
-			     undecorated_smoothed_ofdm);
-	} else {
-		if (phy_info->rx_pwdb_all > (u32)undecorated_smoothed_ofdm) {
-			undecorated_smoothed_ofdm =
-				(((undecorated_smoothed_ofdm) *
-				  (RX_SMOOTH_FACTOR - 1)) +
-				 (rssi_ave)) /
-				(RX_SMOOTH_FACTOR);
-			undecorated_smoothed_ofdm =
-				undecorated_smoothed_ofdm + 1;
-			ODM_RT_TRACE(dm, ODM_COMP_RSSI_MONITOR,
-				     "OFDM_1: (( %d ))\n",
-				     undecorated_smoothed_ofdm);
-		} else {
-			undecorated_smoothed_ofdm =
-				(((undecorated_smoothed_ofdm) *
-				  (RX_SMOOTH_FACTOR - 1)) +
-				 (rssi_ave)) /
-				(RX_SMOOTH_FACTOR);
-			ODM_RT_TRACE(dm, ODM_COMP_RSSI_MONITOR,
-				     "OFDM_2: (( %d ))\n",
-				     undecorated_smoothed_ofdm);
-		}
-	}
-
-	if (entry->rssi_stat.ofdm_pkt != 64) {
-		i = 63;
-		entry->rssi_stat.ofdm_pkt -=
-			(u8)(((entry->rssi_stat.packet_map >> i) & BIT(0)) - 1);
-	}
-
-	entry->rssi_stat.packet_map =
-		(entry->rssi_stat.packet_map << 1) | BIT(0);
-	return undecorated_smoothed_ofdm;
-}
-
-static u8 odm_evm_db_to_percentage(s8);
-static u8 odm_evm_dbm_jaguar_series(s8);
-
-static inline u32 phydm_get_rssi_average(struct phy_dm_struct *dm,
-					 struct dm_phy_status_info *phy_info)
-{
-	u8 rssi_max = 0, rssi_min = 0;
-
-	dm->rssi_a = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A];
-	dm->rssi_b = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B];
-
-	if (phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A] >
-	    phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B]) {
-		rssi_max = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A];
-		rssi_min = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B];
-	} else {
-		rssi_max = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B];
-		rssi_min = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A];
-	}
-	if ((rssi_max - rssi_min) < 3)
-		return rssi_max;
-	else if ((rssi_max - rssi_min) < 6)
-		return rssi_max - 1;
-	else if ((rssi_max - rssi_min) < 10)
-		return rssi_max - 2;
-	else
-		return rssi_max - 3;
-}
-
-static inline u8 phydm_get_evm_dbm(u8 i, u8 EVM,
-				   struct phy_status_rpt_8812 *phy_sta_rpt,
-				   struct dm_phy_status_info *phy_info)
-{
-	if (i < ODM_RF_PATH_C)
-		return odm_evm_dbm_jaguar_series(phy_sta_rpt->rxevm[i]);
-	else
-		return odm_evm_dbm_jaguar_series(phy_sta_rpt->rxevm_cd[i - 2]);
-	/*RT_DISP(FRX, RX_PHY_SQ, ("RXRATE=%x RXEVM=%x EVM=%s%d\n",*/
-	/*pktinfo->data_rate, phy_sta_rpt->rxevm[i], "%", EVM));*/
-}
-
-static inline u8 phydm_get_odm_evm(u8 i, struct dm_per_pkt_info *pktinfo,
-				   struct phy_status_rpt_8812 *phy_sta_rpt)
-{
-	u8 evm = 0;
-
-	if (pktinfo->data_rate >= ODM_RATE6M &&
-	    pktinfo->data_rate <= ODM_RATE54M) {
-		if (i == ODM_RF_PATH_A) {
-			evm = odm_evm_db_to_percentage(
-				(phy_sta_rpt->sigevm)); /*dbm*/
-			evm += 20;
-			if (evm > 100)
-				evm = 100;
-		}
-	} else {
-		if (i < ODM_RF_PATH_C) {
-			if (phy_sta_rpt->rxevm[i] == -128)
-				phy_sta_rpt->rxevm[i] = -25;
-			evm = odm_evm_db_to_percentage(
-				(phy_sta_rpt->rxevm[i])); /*dbm*/
-		} else {
-			if (phy_sta_rpt->rxevm_cd[i - 2] == -128)
-				phy_sta_rpt->rxevm_cd[i - 2] = -25;
-			evm = odm_evm_db_to_percentage(
-				(phy_sta_rpt->rxevm_cd[i - 2])); /*dbm*/
-		}
-	}
-
-	return evm;
-}
-
-static inline s8 phydm_get_rx_pwr(u8 LNA_idx, u8 VGA_idx, u8 cck_highpwr)
-{
-	switch (LNA_idx) {
-	case 7:
-		if (VGA_idx <= 27)
-			return -100 + 2 * (27 - VGA_idx); /*VGA_idx = 27~2*/
-		else
-			return -100;
-		break;
-	case 6:
-		return -48 + 2 * (2 - VGA_idx); /*VGA_idx = 2~0*/
-	case 5:
-		return -42 + 2 * (7 - VGA_idx); /*VGA_idx = 7~5*/
-	case 4:
-		return -36 + 2 * (7 - VGA_idx); /*VGA_idx = 7~4*/
-	case 3:
-		return -24 + 2 * (7 - VGA_idx); /*VGA_idx = 7~0*/
-	case 2:
-		if (cck_highpwr)
-			return -12 + 2 * (5 - VGA_idx); /*VGA_idx = 5~0*/
-		else
-			return -6 + 2 * (5 - VGA_idx);
-		break;
-	case 1:
-		return 8 - 2 * VGA_idx;
-	case 0:
-		return 14 - 2 * VGA_idx;
-	default:
-		break;
-	}
-	return 0;
-}
-
-static inline u8 phydm_adjust_pwdb(u8 cck_highpwr, u8 pwdb_all)
-{
-	if (!cck_highpwr) {
-		if (pwdb_all >= 80)
-			return ((pwdb_all - 80) << 1) + ((pwdb_all - 80) >> 1) +
-			       80;
-		else if ((pwdb_all <= 78) && (pwdb_all >= 20))
-			return pwdb_all + 3;
-		if (pwdb_all > 100)
-			return 100;
-	}
-	return pwdb_all;
-}
-
-static inline u8
-phydm_get_signal_quality_8812(struct dm_phy_status_info *phy_info,
-			      struct phy_dm_struct *dm,
-			      struct phy_status_rpt_8812 *phy_sta_rpt)
-{
-	u8 sq_rpt;
-
-	if (phy_info->rx_pwdb_all > 40 && !dm->is_in_hct_test)
-		return 100;
-
-	sq_rpt = phy_sta_rpt->pwdb_all;
-
-	if (sq_rpt > 64)
-		return 0;
-	else if (sq_rpt < 20)
-		return 100;
-	else
-		return ((64 - sq_rpt) * 100) / 44;
-}
-
-static inline u8
-phydm_get_signal_quality_8192(struct dm_phy_status_info *phy_info,
-			      struct phy_dm_struct *dm,
-			      struct phy_status_rpt_8192cd *phy_sta_rpt)
-{
-	u8 sq_rpt;
-
-	if (phy_info->rx_pwdb_all > 40 && !dm->is_in_hct_test)
-		return 100;
-
-	sq_rpt = phy_sta_rpt->cck_sig_qual_ofdm_pwdb_all;
-
-	if (sq_rpt > 64)
-		return 0;
-	else if (sq_rpt < 20)
-		return 100;
-	else
-		return ((64 - sq_rpt) * 100) / 44;
-}
-
-static u8 odm_query_rx_pwr_percentage(s8 ant_power)
-{
-	if ((ant_power <= -100) || (ant_power >= 20))
-		return 0;
-	else if (ant_power >= 0)
-		return 100;
-	else
-		return 100 + ant_power;
-}
-
-static u8 odm_evm_db_to_percentage(s8 value)
-{
-	/* -33dB~0dB to 0%~99% */
-	s8 ret_val;
-
-	ret_val = value;
-	ret_val /= 2;
-
-	if (ret_val >= 0)
-		ret_val = 0;
-
-	if (ret_val <= -33)
-		ret_val = -33;
-
-	ret_val = 0 - ret_val;
-	ret_val *= 3;
-
-	if (ret_val == 99)
-		ret_val = 100;
-
-	return (u8)ret_val;
-}
-
-static u8 odm_evm_dbm_jaguar_series(s8 value)
-{
-	s8 ret_val = value;
-
-	/* -33dB~0dB to 33dB ~ 0dB */
-	if (ret_val == -128)
-		ret_val = 127;
-	else if (ret_val < 0)
-		ret_val = 0 - ret_val;
-
-	ret_val = ret_val >> 1;
-	return (u8)ret_val;
-}
-
-static s16 odm_cfo(s8 value)
-{
-	s16 ret_val;
-
-	if (value < 0) {
-		ret_val = 0 - value;
-		ret_val = (ret_val << 1) + (ret_val >> 1); /* *2.5~=312.5/2^7 */
-		ret_val =
-			ret_val | BIT(12); /* set bit12 as 1 for negative cfo */
-	} else {
-		ret_val = value;
-		ret_val = (ret_val << 1) + (ret_val >> 1); /* *2.5~=312.5/2^7 */
-	}
-	return ret_val;
-}
-
-static u8 phydm_rate_to_num_ss(struct phy_dm_struct *dm, u8 data_rate)
-{
-	u8 num_ss = 1;
-
-	if (data_rate <= ODM_RATE54M)
-		num_ss = 1;
-	else if (data_rate <= ODM_RATEMCS31)
-		num_ss = ((data_rate - ODM_RATEMCS0) >> 3) + 1;
-	else if (data_rate <= ODM_RATEVHTSS1MCS9)
-		num_ss = 1;
-	else if (data_rate <= ODM_RATEVHTSS2MCS9)
-		num_ss = 2;
-	else if (data_rate <= ODM_RATEVHTSS3MCS9)
-		num_ss = 3;
-	else if (data_rate <= ODM_RATEVHTSS4MCS9)
-		num_ss = 4;
-
-	return num_ss;
-}
-
-static void odm_rx_phy_status92c_series_parsing(
-	struct phy_dm_struct *dm, struct dm_phy_status_info *phy_info,
-	u8 *phy_status, struct dm_per_pkt_info *pktinfo)
-{
-	u8 i, max_spatial_stream;
-	s8 rx_pwr[4], rx_pwr_all = 0;
-	u8 EVM, pwdb_all = 0, pwdb_all_bt;
-	u8 RSSI, total_rssi = 0;
-	bool is_cck_rate = false;
-	u8 rf_rx_num = 0;
-	u8 LNA_idx = 0;
-	u8 VGA_idx = 0;
-	u8 cck_agc_rpt;
-	u8 num_ss;
-	struct phy_status_rpt_8192cd *phy_sta_rpt =
-		(struct phy_status_rpt_8192cd *)phy_status;
-
-	is_cck_rate = (pktinfo->data_rate <= ODM_RATE11M) ? true : false;
-
-	if (pktinfo->is_to_self)
-		dm->curr_station_id = pktinfo->station_id;
-
-	phy_info->rx_mimo_signal_quality[ODM_RF_PATH_A] = -1;
-	phy_info->rx_mimo_signal_quality[ODM_RF_PATH_B] = -1;
-
-	if (is_cck_rate) {
-		dm->phy_dbg_info.num_qry_phy_status_cck++;
-		cck_agc_rpt = phy_sta_rpt->cck_agc_rpt_ofdm_cfosho_a;
-
-		if (dm->support_ic_type & (ODM_RTL8703B)) {
-		} else { /*3 bit LNA*/
-
-			LNA_idx = ((cck_agc_rpt & 0xE0) >> 5);
-			VGA_idx = (cck_agc_rpt & 0x1F);
-		}
-
-		ODM_RT_TRACE(
-			dm, ODM_COMP_RSSI_MONITOR,
-			"ext_lna_gain (( %d )), LNA_idx: (( 0x%x )), VGA_idx: (( 0x%x )), rx_pwr_all: (( %d ))\n",
-			dm->ext_lna_gain, LNA_idx, VGA_idx, rx_pwr_all);
-
-		if (dm->board_type & ODM_BOARD_EXT_LNA)
-			rx_pwr_all -= dm->ext_lna_gain;
-
-		pwdb_all = odm_query_rx_pwr_percentage(rx_pwr_all);
-
-		if (pktinfo->is_to_self) {
-			dm->cck_lna_idx = LNA_idx;
-			dm->cck_vga_idx = VGA_idx;
-		}
-		phy_info->rx_pwdb_all = pwdb_all;
-
-		phy_info->bt_rx_rssi_percentage = pwdb_all;
-		phy_info->recv_signal_power = rx_pwr_all;
-		/* (3) Get Signal Quality (EVM) */
-		{
-			u8 sq;
-
-			sq = phydm_get_signal_quality_8192(phy_info, dm,
-							   phy_sta_rpt);
-			phy_info->signal_quality = sq;
-			phy_info->rx_mimo_signal_quality[ODM_RF_PATH_A] = sq;
-			phy_info->rx_mimo_signal_quality[ODM_RF_PATH_B] = -1;
-		}
-
-		for (i = ODM_RF_PATH_A; i < ODM_RF_PATH_MAX; i++) {
-			if (i == 0)
-				phy_info->rx_mimo_signal_strength[0] = pwdb_all;
-			else
-				phy_info->rx_mimo_signal_strength[1] = 0;
-		}
-	} else { /* 2 is OFDM rate */
-		dm->phy_dbg_info.num_qry_phy_status_ofdm++;
-
-		/*  */
-		/* (1)Get RSSI for HT rate */
-		/*  */
-
-		for (i = ODM_RF_PATH_A; i < ODM_RF_PATH_MAX; i++) {
-			/* 2008/01/30 MH we will judge RF RX path now. */
-			if (dm->rf_path_rx_enable & BIT(i))
-				rf_rx_num++;
-			/* else */
-			/* continue; */
-
-			rx_pwr[i] =
-				((phy_sta_rpt->path_agc[i].gain & 0x3F) * 2) -
-				110;
-
-			if (pktinfo->is_to_self) {
-				dm->ofdm_agc_idx[i] =
-					(phy_sta_rpt->path_agc[i].gain & 0x3F);
-				/**/
-			}
-
-			phy_info->rx_pwr[i] = rx_pwr[i];
-
-			/* Translate DBM to percentage. */
-			RSSI = odm_query_rx_pwr_percentage(rx_pwr[i]);
-			total_rssi += RSSI;
-
-			phy_info->rx_mimo_signal_strength[i] = (u8)RSSI;
-
-			/* Get Rx snr value in DB */
-			dm->phy_dbg_info.rx_snr_db[i] =
-				(s32)(phy_sta_rpt->path_rxsnr[i] / 2);
-			phy_info->rx_snr[i] = dm->phy_dbg_info.rx_snr_db[i];
-
-			/* Record Signal Strength for next packet */
-			/* if(pktinfo->is_packet_match_bssid) */
-			{
-			}
-		}
-
-		/*  */
-		/* (2)PWDB, Average PWDB calcuated by hardware (for RA) */
-		/*  */
-		rx_pwr_all = (((phy_sta_rpt->cck_sig_qual_ofdm_pwdb_all) >> 1) &
-			      0x7f) -
-			     110;
-
-		pwdb_all = odm_query_rx_pwr_percentage(rx_pwr_all);
-		pwdb_all_bt = pwdb_all;
-
-		phy_info->rx_pwdb_all = pwdb_all;
-		phy_info->bt_rx_rssi_percentage = pwdb_all_bt;
-		phy_info->rx_power = rx_pwr_all;
-		phy_info->recv_signal_power = rx_pwr_all;
-
-		if ((dm->support_platform == ODM_WIN) && (dm->patch_id == 19)) {
-			/* do nothing */
-		} else if ((dm->support_platform == ODM_WIN) &&
-			   (dm->patch_id == 25)) {
-			/* do nothing */
-		} else { /* mgnt_info->customer_id != RT_CID_819X_LENOVO */
-			/*  */
-			/* (3)EVM of HT rate */
-			/*  */
-			if (pktinfo->data_rate >= ODM_RATEMCS8 &&
-			    pktinfo->data_rate <= ODM_RATEMCS15) {
-				/* both spatial stream make sense */
-				max_spatial_stream = 2;
-			} else {
-				/* only spatial stream 1 makes sense */
-				max_spatial_stream = 1;
-			}
-
-			for (i = 0; i < max_spatial_stream; i++) {
-				/*Don't use shift operation like "rx_evmX >>= 1"
-				 *because the compilor of free build environment
-				 *fill most significant bit to "zero" when doing
-				 *shifting operation which may change a negative
-				 *value to positive one, then the dbm value
-				 *(which is supposed to be negative)  is not
-				 *correct anymore.
-				 */
-				EVM = odm_evm_db_to_percentage(
-					(phy_sta_rpt
-						 ->stream_rxevm[i])); /* dbm */
-
-				/* Fill value in RFD, Get the first spatial
-				 * stream only
-				 */
-				if (i == ODM_RF_PATH_A)
-					phy_info->signal_quality =
-						(u8)(EVM & 0xff);
-				phy_info->rx_mimo_signal_quality[i] =
-					(u8)(EVM & 0xff);
-			}
-		}
-
-		num_ss = phydm_rate_to_num_ss(dm, pktinfo->data_rate);
-		odm_parsing_cfo(dm, pktinfo, phy_sta_rpt->path_cfotail, num_ss);
-	}
-	/* UI BSS List signal strength(in percentage), make it good looking,
-	 * from 0~100.
-	 */
-	/* It is assigned to the BSS List in GetValueFromBeaconOrProbeRsp(). */
-	if (is_cck_rate)
-		phy_info->signal_strength = pwdb_all;
-	else if (rf_rx_num != 0)
-		phy_info->signal_strength = (total_rssi /= rf_rx_num);
-
-	/* For 92C/92D HW (Hybrid) Antenna Diversity */
-}
-
-static void
-odm_rx_phy_bw_jaguar_series_parsing(struct dm_phy_status_info *phy_info,
-				    struct dm_per_pkt_info *pktinfo,
-				    struct phy_status_rpt_8812 *phy_sta_rpt)
-{
-	if (pktinfo->data_rate <= ODM_RATE54M) {
-		switch (phy_sta_rpt->r_RFMOD) {
-		case 1:
-			if (phy_sta_rpt->sub_chnl == 0)
-				phy_info->band_width = 1;
-			else
-				phy_info->band_width = 0;
-			break;
-
-		case 2:
-			if (phy_sta_rpt->sub_chnl == 0)
-				phy_info->band_width = 2;
-			else if (phy_sta_rpt->sub_chnl == 9 ||
-				 phy_sta_rpt->sub_chnl == 10)
-				phy_info->band_width = 1;
-			else
-				phy_info->band_width = 0;
-			break;
-
-		default:
-		case 0:
-			phy_info->band_width = 0;
-			break;
-		}
-	}
-}
-
-static void odm_rx_phy_status_jaguar_series_parsing(
-	struct phy_dm_struct *dm, struct dm_phy_status_info *phy_info,
-	u8 *phy_status, struct dm_per_pkt_info *pktinfo)
-{
-	u8 i, max_spatial_stream;
-	s8 rx_pwr[4], rx_pwr_all = 0;
-	u8 EVM = 0, evm_dbm, pwdb_all = 0, pwdb_all_bt;
-	u8 RSSI, avg_rssi = 0, best_rssi = 0, second_rssi = 0;
-	u8 is_cck_rate = 0;
-	u8 rf_rx_num = 0;
-	u8 cck_highpwr = 0;
-	u8 LNA_idx, VGA_idx;
-	struct phy_status_rpt_8812 *phy_sta_rpt =
-		(struct phy_status_rpt_8812 *)phy_status;
-	struct fast_antenna_training *fat_tab = &dm->dm_fat_table;
-	u8 num_ss;
-
-	odm_rx_phy_bw_jaguar_series_parsing(phy_info, pktinfo, phy_sta_rpt);
-
-	if (pktinfo->data_rate <= ODM_RATE11M)
-		is_cck_rate = true;
-	else
-		is_cck_rate = false;
-
-	if (pktinfo->is_to_self)
-		dm->curr_station_id = pktinfo->station_id;
-	else
-		dm->curr_station_id = 0xff;
-
-	phy_info->rx_mimo_signal_quality[ODM_RF_PATH_A] = -1;
-	phy_info->rx_mimo_signal_quality[ODM_RF_PATH_B] = -1;
-	phy_info->rx_mimo_signal_quality[ODM_RF_PATH_C] = -1;
-	phy_info->rx_mimo_signal_quality[ODM_RF_PATH_D] = -1;
-
-	if (is_cck_rate) {
-		u8 cck_agc_rpt;
-
-		dm->phy_dbg_info.num_qry_phy_status_cck++;
-
-		/*(1)Hardware does not provide RSSI for CCK*/
-		/*(2)PWDB, Average PWDB calculated by hardware (for RA)*/
-
-		cck_highpwr = dm->is_cck_high_power;
-
-		cck_agc_rpt = phy_sta_rpt->cfosho[0];
-		LNA_idx = (cck_agc_rpt & 0xE0) >> 5;
-		VGA_idx = cck_agc_rpt & 0x1F;
-
-		if (dm->support_ic_type == ODM_RTL8812) {
-			rx_pwr_all =
-				phydm_get_rx_pwr(LNA_idx, VGA_idx, cck_highpwr);
-			rx_pwr_all += 6;
-			pwdb_all = odm_query_rx_pwr_percentage(rx_pwr_all);
-			pwdb_all = phydm_adjust_pwdb(cck_highpwr, pwdb_all);
-
-		} else if (dm->support_ic_type & (ODM_RTL8821 | ODM_RTL8881A)) {
-			s8 pout = -6;
-
-			switch (LNA_idx) {
-			case 5:
-				rx_pwr_all = pout - 32 - (2 * VGA_idx);
-				break;
-			case 4:
-				rx_pwr_all = pout - 24 - (2 * VGA_idx);
-				break;
-			case 2:
-				rx_pwr_all = pout - 11 - (2 * VGA_idx);
-				break;
-			case 1:
-				rx_pwr_all = pout + 5 - (2 * VGA_idx);
-				break;
-			case 0:
-				rx_pwr_all = pout + 21 - (2 * VGA_idx);
-				break;
-			}
-			pwdb_all = odm_query_rx_pwr_percentage(rx_pwr_all);
-		} else if (dm->support_ic_type == ODM_RTL8814A ||
-			   dm->support_ic_type == ODM_RTL8822B) {
-			s8 pout = -6;
-
-			switch (LNA_idx) {
-			/*CCK only use LNA: 2, 3, 5, 7*/
-			case 7:
-				rx_pwr_all = pout - 32 - (2 * VGA_idx);
-				break;
-			case 5:
-				rx_pwr_all = pout - 22 - (2 * VGA_idx);
-				break;
-			case 3:
-				rx_pwr_all = pout - 2 - (2 * VGA_idx);
-				break;
-			case 2:
-				rx_pwr_all = pout + 5 - (2 * VGA_idx);
-				break;
-			default:
-				break;
-			}
-			pwdb_all = odm_query_rx_pwr_percentage(rx_pwr_all);
-		}
-
-		dm->cck_lna_idx = LNA_idx;
-		dm->cck_vga_idx = VGA_idx;
-		phy_info->rx_pwdb_all = pwdb_all;
-		phy_info->bt_rx_rssi_percentage = pwdb_all;
-		phy_info->recv_signal_power = rx_pwr_all;
-		/*(3) Get Signal Quality (EVM)*/
-		{
-			u8 sq = 0;
-
-			if (!(dm->support_platform == ODM_WIN &&
-			      dm->patch_id == RT_CID_819X_LENOVO))
-				sq = phydm_get_signal_quality_8812(phy_info, dm,
-								   phy_sta_rpt);
-
-			phy_info->signal_quality = sq;
-			phy_info->rx_mimo_signal_quality[ODM_RF_PATH_A] = sq;
-		}
-
-		for (i = ODM_RF_PATH_A; i < ODM_RF_PATH_MAX_JAGUAR; i++) {
-			if (i == 0)
-				phy_info->rx_mimo_signal_strength[0] = pwdb_all;
-			else
-				phy_info->rx_mimo_signal_strength[i] = 0;
-		}
-	} else {
-		/*is OFDM rate*/
-		fat_tab->hw_antsw_occur = phy_sta_rpt->hw_antsw_occur;
-
-		dm->phy_dbg_info.num_qry_phy_status_ofdm++;
-
-		/*(1)Get RSSI for OFDM rate*/
-
-		for (i = ODM_RF_PATH_A; i < ODM_RF_PATH_MAX_JAGUAR; i++) {
-			/*2008/01/30 MH we will judge RF RX path now.*/
-			if (dm->rf_path_rx_enable & BIT(i))
-				rf_rx_num++;
-			/*2012.05.25 LukeLee: Testchip AGC report is wrong,
-			 *it should be restored back to old formula in MP chip
-			 */
-			if (i < ODM_RF_PATH_C)
-				rx_pwr[i] = (phy_sta_rpt->gain_trsw[i] & 0x7F) -
-					    110;
-			else
-				rx_pwr[i] = (phy_sta_rpt->gain_trsw_cd[i - 2] &
-					     0x7F) -
-					    110;
-
-			phy_info->rx_pwr[i] = rx_pwr[i];
-
-			/* Translate DBM to percentage. */
-			RSSI = odm_query_rx_pwr_percentage(rx_pwr[i]);
-
-			/*total_rssi += RSSI;*/
-			/*Get the best two RSSI*/
-			if (RSSI > best_rssi && RSSI > second_rssi) {
-				second_rssi = best_rssi;
-				best_rssi = RSSI;
-			} else if (RSSI > second_rssi && RSSI <= best_rssi) {
-				second_rssi = RSSI;
-			}
-
-			phy_info->rx_mimo_signal_strength[i] = (u8)RSSI;
-
-			/*Get Rx snr value in DB*/
-			if (i < ODM_RF_PATH_C)
-				phy_info->rx_snr[i] =
-					dm->phy_dbg_info.rx_snr_db[i] =
-						phy_sta_rpt->rxsnr[i] / 2;
-			else if (dm->support_ic_type &
-				 (ODM_RTL8814A | ODM_RTL8822B))
-				phy_info->rx_snr[i] = dm->phy_dbg_info
-							      .rx_snr_db[i] =
-					phy_sta_rpt->csi_current[i - 2] / 2;
-
-			/*(2) CFO_short  & CFO_tail*/
-			if (i < ODM_RF_PATH_C) {
-				phy_info->cfo_short[i] =
-					odm_cfo((phy_sta_rpt->cfosho[i]));
-				phy_info->cfo_tail[i] =
-					odm_cfo((phy_sta_rpt->cfotail[i]));
-			}
-		}
-
-		/*(3)PWDB, Average PWDB calculated by hardware (for RA)*/
-
-		/*2012.05.25 LukeLee: Testchip AGC report is wrong, it should be
-		 *restored back to old formula in MP chip
-		 */
-		if ((dm->support_ic_type &
-		     (ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8881A)) &&
-		    (!dm->is_mp_chip))
-			rx_pwr_all = (phy_sta_rpt->pwdb_all & 0x7f) - 110;
-		else
-			rx_pwr_all = (((phy_sta_rpt->pwdb_all) >> 1) & 0x7f) -
-				     110; /*OLD FORMULA*/
-
-		pwdb_all = odm_query_rx_pwr_percentage(rx_pwr_all);
-		pwdb_all_bt = pwdb_all;
-
-		phy_info->rx_pwdb_all = pwdb_all;
-		phy_info->bt_rx_rssi_percentage = pwdb_all_bt;
-		phy_info->rx_power = rx_pwr_all;
-		phy_info->recv_signal_power = rx_pwr_all;
-
-		if ((dm->support_platform == ODM_WIN) && (dm->patch_id == 19)) {
-			/*do nothing*/
-		} else {
-			/*mgnt_info->customer_id != RT_CID_819X_LENOVO*/
-
-			/*(4)EVM of OFDM rate*/
-
-			if ((pktinfo->data_rate >= ODM_RATEMCS8) &&
-			    (pktinfo->data_rate <= ODM_RATEMCS15))
-				max_spatial_stream = 2;
-			else if ((pktinfo->data_rate >= ODM_RATEVHTSS2MCS0) &&
-				 (pktinfo->data_rate <= ODM_RATEVHTSS2MCS9))
-				max_spatial_stream = 2;
-			else if ((pktinfo->data_rate >= ODM_RATEMCS16) &&
-				 (pktinfo->data_rate <= ODM_RATEMCS23))
-				max_spatial_stream = 3;
-			else if ((pktinfo->data_rate >= ODM_RATEVHTSS3MCS0) &&
-				 (pktinfo->data_rate <= ODM_RATEVHTSS3MCS9))
-				max_spatial_stream = 3;
-			else
-				max_spatial_stream = 1;
-
-			for (i = 0; i < max_spatial_stream; i++) {
-				/*Don't use shift operation like "rx_evmX >>= 1"
-				 *because the compilor of free build environment
-				 *fill most significant bit to "zero" when doing
-				 *shifting operation which may change a negative
-				 *value to positive one, then the dbm value
-				 *(which is supposed to be negative) is not
-				 *correct anymore.
-				 */
-
-				EVM = phydm_get_odm_evm(i, pktinfo,
-							phy_sta_rpt);
-				evm_dbm = phydm_get_evm_dbm(i, EVM, phy_sta_rpt,
-							    phy_info);
-				phy_info->rx_mimo_signal_quality[i] = EVM;
-				phy_info->rx_mimo_evm_dbm[i] = evm_dbm;
-			}
-		}
-
-		num_ss = phydm_rate_to_num_ss(dm, pktinfo->data_rate);
-		odm_parsing_cfo(dm, pktinfo, phy_sta_rpt->cfotail, num_ss);
-	}
-
-	/*UI BSS List signal strength(in percentage), make it good looking,
-	 *from 0~100.
-	 */
-	/*It is assigned to the BSS List in GetValueFromBeaconOrProbeRsp().*/
-	if (is_cck_rate) {
-		phy_info->signal_strength = pwdb_all;
-	} else if (rf_rx_num != 0) {
-		/* 2015/01 Sean, use the best two RSSI only,
-		 * suggested by Ynlin and ChenYu.
-		 */
-		if (rf_rx_num == 1)
-			avg_rssi = best_rssi;
-		else
-			avg_rssi = (best_rssi + second_rssi) / 2;
-
-		phy_info->signal_strength = avg_rssi;
-	}
-
-	dm->rx_pwdb_ave = dm->rx_pwdb_ave + phy_info->rx_pwdb_all;
-
-	dm->dm_fat_table.antsel_rx_keep_0 = phy_sta_rpt->antidx_anta;
-	dm->dm_fat_table.antsel_rx_keep_1 = phy_sta_rpt->antidx_antb;
-	dm->dm_fat_table.antsel_rx_keep_2 = phy_sta_rpt->antidx_antc;
-	dm->dm_fat_table.antsel_rx_keep_3 = phy_sta_rpt->antidx_antd;
-}
-
-void phydm_reset_rssi_for_dm(struct phy_dm_struct *dm, u8 station_id)
-{
-	struct rtl_sta_info *entry;
-
-	entry = dm->odm_sta_info[station_id];
-
-	if (!IS_STA_VALID(entry))
-		return;
-
-	ODM_RT_TRACE(dm, ODM_COMP_RSSI_MONITOR,
-		     "Reset RSSI for macid = (( %d ))\n", station_id);
-
-	entry->rssi_stat.undecorated_smoothed_cck = -1;
-	entry->rssi_stat.undecorated_smoothed_ofdm = -1;
-	entry->rssi_stat.undecorated_smoothed_pwdb = -1;
-	entry->rssi_stat.ofdm_pkt = 0;
-	entry->rssi_stat.cck_pkt = 0;
-	entry->rssi_stat.cck_sum_power = 0;
-	entry->rssi_stat.is_send_rssi = RA_RSSI_STATE_INIT;
-	entry->rssi_stat.packet_map = 0;
-	entry->rssi_stat.valid_bit = 0;
-}
-
-void odm_init_rssi_for_dm(struct phy_dm_struct *dm) {}
-
-static void odm_process_rssi_for_dm(struct phy_dm_struct *dm,
-				    struct dm_phy_status_info *phy_info,
-				    struct dm_per_pkt_info *pktinfo)
-{
-	s32 undecorated_smoothed_pwdb, undecorated_smoothed_cck,
-		undecorated_smoothed_ofdm;
-	u8 is_cck_rate = 0;
-	u8 send_rssi_2_fw = 0;
-	struct rtl_sta_info *entry;
-
-	if (pktinfo->station_id >= ODM_ASSOCIATE_ENTRY_NUM)
-		return;
-
-	/* 2012/05/30 MH/Luke.Lee Add some description */
-	/* In windows driver: AP/IBSS mode STA */
-	entry = dm->odm_sta_info[pktinfo->station_id];
-
-	if (!IS_STA_VALID(entry))
-		return;
-
-	{
-		if ((!pktinfo->is_packet_match_bssid)) /*data frame only*/
-			return;
-	}
-
-	if (pktinfo->is_packet_beacon)
-		dm->phy_dbg_info.num_qry_beacon_pkt++;
-
-	is_cck_rate = (pktinfo->data_rate <= ODM_RATE11M) ? true : false;
-	dm->rx_rate = pktinfo->data_rate;
-
-	/* --------------Statistic for antenna/path diversity---------------- */
-
-	/* -----------------Smart Antenna Debug Message------------------ */
-
-	undecorated_smoothed_cck = entry->rssi_stat.undecorated_smoothed_cck;
-	undecorated_smoothed_ofdm = entry->rssi_stat.undecorated_smoothed_ofdm;
-	undecorated_smoothed_pwdb = entry->rssi_stat.undecorated_smoothed_pwdb;
-
-	if (pktinfo->is_packet_to_self || pktinfo->is_packet_beacon) {
-		if (!is_cck_rate) /* ofdm rate */
-			undecorated_smoothed_ofdm = phydm_process_rssi_ofdm(
-				dm, phy_info, entry, undecorated_smoothed_ofdm);
-		else
-			undecorated_smoothed_cck = phydm_process_rssi_cck(
-				dm, phy_info, entry, undecorated_smoothed_cck);
-
-		undecorated_smoothed_pwdb = phydm_process_rssi_pwdb(
-			dm, entry, pktinfo, undecorated_smoothed_ofdm,
-			undecorated_smoothed_cck);
-
-		if ((entry->rssi_stat.ofdm_pkt >= 1 ||
-		     entry->rssi_stat.cck_pkt >= 5) &&
-		    (entry->rssi_stat.is_send_rssi == RA_RSSI_STATE_INIT)) {
-			send_rssi_2_fw = 1;
-			entry->rssi_stat.is_send_rssi = RA_RSSI_STATE_SEND;
-		}
-
-		entry->rssi_stat.undecorated_smoothed_cck =
-			undecorated_smoothed_cck;
-		entry->rssi_stat.undecorated_smoothed_ofdm =
-			undecorated_smoothed_ofdm;
-		entry->rssi_stat.undecorated_smoothed_pwdb =
-			undecorated_smoothed_pwdb;
-
-		if (send_rssi_2_fw) { /* Trigger init rate by RSSI */
-
-			if (entry->rssi_stat.ofdm_pkt != 0)
-				entry->rssi_stat.undecorated_smoothed_pwdb =
-					undecorated_smoothed_ofdm;
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_RSSI_MONITOR,
-				"[Send to FW] PWDB = (( %d )), ofdm_pkt = (( %d )), cck_pkt = (( %d ))\n",
-				undecorated_smoothed_pwdb,
-				entry->rssi_stat.ofdm_pkt,
-				entry->rssi_stat.cck_pkt);
-		}
-	}
-}
-
-/*
- * Endianness before calling this API
- */
-static void odm_phy_status_query_92c_series(struct phy_dm_struct *dm,
-					    struct dm_phy_status_info *phy_info,
-					    u8 *phy_status,
-					    struct dm_per_pkt_info *pktinfo)
-{
-	odm_rx_phy_status92c_series_parsing(dm, phy_info, phy_status, pktinfo);
-	odm_process_rssi_for_dm(dm, phy_info, pktinfo);
-}
-
-/*
- * Endianness before calling this API
- */
-
-static void odm_phy_status_query_jaguar_series(
-	struct phy_dm_struct *dm, struct dm_phy_status_info *phy_info,
-	u8 *phy_status, struct dm_per_pkt_info *pktinfo)
-{
-	odm_rx_phy_status_jaguar_series_parsing(dm, phy_info, phy_status,
-						pktinfo);
-	odm_process_rssi_for_dm(dm, phy_info, pktinfo);
-}
-
-void odm_phy_status_query(struct phy_dm_struct *dm,
-			  struct dm_phy_status_info *phy_info, u8 *phy_status,
-			  struct dm_per_pkt_info *pktinfo)
-{
-	if (dm->support_ic_type & ODM_IC_PHY_STATUE_NEW_TYPE) {
-		phydm_rx_phy_status_new_type(dm, phy_status, pktinfo, phy_info);
-		return;
-	}
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		odm_phy_status_query_jaguar_series(dm, phy_info, phy_status,
-						   pktinfo);
-
-	if (dm->support_ic_type & ODM_IC_11N_SERIES)
-		odm_phy_status_query_92c_series(dm, phy_info, phy_status,
-						pktinfo);
-}
-
-/* For future use. */
-void odm_mac_status_query(struct phy_dm_struct *dm, u8 *mac_status, u8 mac_id,
-			  bool is_packet_match_bssid, bool is_packet_to_self,
-			  bool is_packet_beacon)
-{
-	/* 2011/10/19 Driver team will handle in the future. */
-}
-
-/*
- * If you want to add a new IC, Please follow below template and generate
- * a new one.
- */
-
-enum hal_status
-odm_config_rf_with_header_file(struct phy_dm_struct *dm,
-			       enum odm_rf_config_type config_type,
-			       enum odm_rf_radio_path e_rf_path)
-{
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===>%s (%s)\n", __func__,
-		     (dm->is_mp_chip) ? "MPChip" : "TestChip");
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"dm->support_platform: 0x%X, dm->support_interface: 0x%X, dm->board_type: 0x%X\n",
-		dm->support_platform, dm->support_interface, dm->board_type);
-
-	/* 1 AP doesn't use PHYDM power tracking table in these ICs */
-	/* JJ ADD 20161014 */
-
-	/* 1 All platforms support */
-	if (dm->support_ic_type == ODM_RTL8822B) {
-		if (config_type == CONFIG_RF_RADIO) {
-			if (e_rf_path == ODM_RF_PATH_A)
-				READ_AND_CONFIG_MP(8822b, _radioa);
-			else if (e_rf_path == ODM_RF_PATH_B)
-				READ_AND_CONFIG_MP(8822b, _radiob);
-		} else if (config_type == CONFIG_RF_TXPWR_LMT) {
-			if (dm->rfe_type == 5)
-				READ_AND_CONFIG_MP(8822b, _txpwr_lmt_type5);
-			else
-				READ_AND_CONFIG_MP(8822b, _txpwr_lmt);
-		}
-	}
-
-	return HAL_STATUS_SUCCESS;
-}
-
-enum hal_status
-odm_config_rf_with_tx_pwr_track_header_file(struct phy_dm_struct *dm)
-{
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===>%s (%s)\n", __func__,
-		     (dm->is_mp_chip) ? "MPChip" : "TestChip");
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"dm->support_platform: 0x%X, dm->support_interface: 0x%X, dm->board_type: 0x%X\n",
-		dm->support_platform, dm->support_interface, dm->board_type);
-
-	/* 1 AP doesn't use PHYDM power tracking table in these ICs */
-	/* JJ ADD 20161014 */
-
-	/* 1 All platforms support */
-
-	if (dm->support_ic_type == ODM_RTL8822B) {
-		if (dm->rfe_type == 0)
-			READ_AND_CONFIG_MP(8822b, _txpowertrack_type0);
-		else if (dm->rfe_type == 1)
-			READ_AND_CONFIG_MP(8822b, _txpowertrack_type1);
-		else if (dm->rfe_type == 2)
-			READ_AND_CONFIG_MP(8822b, _txpowertrack_type2);
-		else if ((dm->rfe_type == 3) || (dm->rfe_type == 5))
-			READ_AND_CONFIG_MP(8822b, _txpowertrack_type3_type5);
-		else if (dm->rfe_type == 4)
-			READ_AND_CONFIG_MP(8822b, _txpowertrack_type4);
-		else if (dm->rfe_type == 6)
-			READ_AND_CONFIG_MP(8822b, _txpowertrack_type6);
-		else if (dm->rfe_type == 7)
-			READ_AND_CONFIG_MP(8822b, _txpowertrack_type7);
-		else if (dm->rfe_type == 8)
-			READ_AND_CONFIG_MP(8822b, _txpowertrack_type8);
-		else if (dm->rfe_type == 9)
-			READ_AND_CONFIG_MP(8822b, _txpowertrack_type9);
-		else
-			READ_AND_CONFIG_MP(8822b, _txpowertrack);
-	}
-
-	return HAL_STATUS_SUCCESS;
-}
-
-enum hal_status
-odm_config_bb_with_header_file(struct phy_dm_struct *dm,
-			       enum odm_bb_config_type config_type)
-{
-	/* 1 AP doesn't use PHYDM initialization in these ICs */
-	/* JJ ADD 20161014 */
-
-	/* 1 All platforms support */
-	if (dm->support_ic_type == ODM_RTL8822B) {
-		if (config_type == CONFIG_BB_PHY_REG)
-			READ_AND_CONFIG_MP(8822b, _phy_reg);
-		else if (config_type == CONFIG_BB_AGC_TAB)
-			READ_AND_CONFIG_MP(8822b, _agc_tab);
-		else if (config_type == CONFIG_BB_PHY_REG_PG)
-			READ_AND_CONFIG_MP(8822b, _phy_reg_pg);
-		/*else if (config_type == CONFIG_BB_PHY_REG_MP)*/
-		/*READ_AND_CONFIG_MP(8822b, _phy_reg_mp);*/
-	}
-
-	return HAL_STATUS_SUCCESS;
-}
-
-enum hal_status odm_config_mac_with_header_file(struct phy_dm_struct *dm)
-{
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===>%s (%s)\n", __func__,
-		     (dm->is_mp_chip) ? "MPChip" : "TestChip");
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"dm->support_platform: 0x%X, dm->support_interface: 0x%X, dm->board_type: 0x%X\n",
-		dm->support_platform, dm->support_interface, dm->board_type);
-
-	/* 1 AP doesn't use PHYDM initialization in these ICs */
-	/* JJ ADD 20161014 */
-
-	/* 1 All platforms support */
-	if (dm->support_ic_type == ODM_RTL8822B)
-		READ_AND_CONFIG_MP(8822b, _mac_reg);
-
-	return HAL_STATUS_SUCCESS;
-}
-
-enum hal_status
-odm_config_fw_with_header_file(struct phy_dm_struct *dm,
-			       enum odm_fw_config_type config_type,
-			       u8 *p_firmware, u32 *size)
-{
-	return HAL_STATUS_SUCCESS;
-}
-
-u32 odm_get_hw_img_version(struct phy_dm_struct *dm)
-{
-	u32 version = 0;
-
-	/* 1 AP doesn't use PHYDM initialization in these ICs */
-	/* JJ ADD 20161014 */
-
-	/*1 All platforms support*/
-	if (dm->support_ic_type == ODM_RTL8822B)
-		version = GET_VERSION_MP(8822b, _mac_reg);
-
-	return version;
-}
-
-/* For 8822B only!! need to move to FW finally */
-/*==============================================*/
-
-bool phydm_query_is_mu_api(struct phy_dm_struct *phydm, u8 ppdu_idx,
-			   u8 *p_data_rate, u8 *p_gid)
-{
-	u8 data_rate = 0, gid = 0;
-	bool is_mu = false;
-
-	data_rate = phydm->phy_dbg_info.num_of_ppdu[ppdu_idx];
-	gid = phydm->phy_dbg_info.gid_num[ppdu_idx];
-
-	if (data_rate & BIT(7)) {
-		is_mu = true;
-		data_rate = data_rate & ~(BIT(7));
-	} else {
-		is_mu = false;
-	}
-
-	*p_data_rate = data_rate;
-	*p_gid = gid;
-
-	return is_mu;
-}
-
-static void phydm_rx_statistic_cal(struct phy_dm_struct *phydm, u8 *phy_status,
-				   struct dm_per_pkt_info *pktinfo)
-{
-	struct phy_status_rpt_jaguar2_type1 *phy_sta_rpt =
-		(struct phy_status_rpt_jaguar2_type1 *)phy_status;
-	u8 date_rate = pktinfo->data_rate & ~(BIT(7));
-
-	if ((phy_sta_rpt->gid != 0) && (phy_sta_rpt->gid != 63)) {
-		if (date_rate >= ODM_RATEVHTSS1MCS0) {
-			phydm->phy_dbg_info
-				.num_qry_mu_vht_pkt[date_rate - 0x2C]++;
-			phydm->phy_dbg_info.num_of_ppdu[pktinfo->ppdu_cnt] =
-				date_rate | BIT(7);
-			phydm->phy_dbg_info.gid_num[pktinfo->ppdu_cnt] =
-				phy_sta_rpt->gid;
-		}
-
-	} else {
-		if (date_rate >= ODM_RATEVHTSS1MCS0) {
-			phydm->phy_dbg_info.num_qry_vht_pkt[date_rate - 0x2C]++;
-			phydm->phy_dbg_info.num_of_ppdu[pktinfo->ppdu_cnt] =
-				date_rate;
-			phydm->phy_dbg_info.gid_num[pktinfo->ppdu_cnt] =
-				phy_sta_rpt->gid;
-		}
-	}
-}
-
-static void phydm_reset_phy_info(struct phy_dm_struct *phydm,
-				 struct dm_phy_status_info *phy_info)
-{
-	phy_info->rx_pwdb_all = 0;
-	phy_info->signal_quality = 0;
-	phy_info->band_width = 0;
-	phy_info->rx_count = 0;
-	odm_memory_set(phydm, phy_info->rx_mimo_signal_quality, 0, 4);
-	odm_memory_set(phydm, phy_info->rx_mimo_signal_strength, 0, 4);
-	odm_memory_set(phydm, phy_info->rx_snr, 0, 4);
-
-	phy_info->rx_power = -110;
-	phy_info->recv_signal_power = -110;
-	phy_info->bt_rx_rssi_percentage = 0;
-	phy_info->signal_strength = 0;
-	phy_info->bt_coex_pwr_adjust = 0;
-	phy_info->channel = 0;
-	phy_info->is_mu_packet = 0;
-	phy_info->is_beamformed = 0;
-	phy_info->rxsc = 0;
-	odm_memory_set(phydm, phy_info->rx_pwr, -110, 4);
-	odm_memory_set(phydm, phy_info->rx_mimo_evm_dbm, 0, 4);
-	odm_memory_set(phydm, phy_info->cfo_short, 0, 8);
-	odm_memory_set(phydm, phy_info->cfo_tail, 0, 8);
-}
-
-static void phydm_set_per_path_phy_info(u8 rx_path, s8 rx_pwr, s8 rx_evm,
-					s8 cfo_tail, s8 rx_snr,
-					struct dm_phy_status_info *phy_info)
-{
-	u8 evm_dbm = 0;
-	u8 evm_percentage = 0;
-
-	/* SNR is S(8,1), EVM is S(8,1), CFO is S(8,7) */
-
-	if (rx_evm < 0) {
-		/* Calculate EVM in dBm */
-		evm_dbm = (u8)(0 - rx_evm) >> 1;
-
-		/* Calculate EVM in percentage */
-		if (evm_dbm >= 33)
-			evm_percentage = 100;
-		else
-			evm_percentage = (evm_dbm << 1) + (evm_dbm);
-	}
-
-	phy_info->rx_pwr[rx_path] = rx_pwr;
-	phy_info->rx_mimo_evm_dbm[rx_path] = evm_dbm;
-
-	/* CFO = CFO_tail * 312.5 / 2^7 ~= CFO tail * 39/512 (kHz)*/
-	phy_info->cfo_tail[rx_path] = cfo_tail;
-	phy_info->cfo_tail[rx_path] = ((phy_info->cfo_tail[rx_path] << 5) +
-				       (phy_info->cfo_tail[rx_path] << 2) +
-				       (phy_info->cfo_tail[rx_path] << 1) +
-				       (phy_info->cfo_tail[rx_path])) >>
-				      9;
-
-	phy_info->rx_mimo_signal_strength[rx_path] =
-		odm_query_rx_pwr_percentage(rx_pwr);
-	phy_info->rx_mimo_signal_quality[rx_path] = evm_percentage;
-	phy_info->rx_snr[rx_path] = rx_snr >> 1;
-}
-
-static void phydm_set_common_phy_info(s8 rx_power, u8 channel,
-				      bool is_beamformed, bool is_mu_packet,
-				      u8 bandwidth, u8 signal_quality, u8 rxsc,
-				      struct dm_phy_status_info *phy_info)
-{
-	phy_info->rx_power = rx_power; /* RSSI in dB */
-	phy_info->recv_signal_power = rx_power; /* RSSI in dB */
-	phy_info->channel = channel; /* channel number */
-	phy_info->is_beamformed = is_beamformed; /* apply BF */
-	phy_info->is_mu_packet = is_mu_packet; /* MU packet */
-	phy_info->rxsc = rxsc;
-	phy_info->rx_pwdb_all =
-		odm_query_rx_pwr_percentage(rx_power); /* RSSI in percentage */
-	phy_info->signal_quality = signal_quality; /* signal quality */
-	phy_info->band_width = bandwidth; /* bandwidth */
-}
-
-static void phydm_get_rx_phy_status_type0(struct phy_dm_struct *dm,
-					  u8 *phy_status,
-					  struct dm_per_pkt_info *pktinfo,
-					  struct dm_phy_status_info *phy_info)
-{
-	/* type 0 is used for cck packet */
-
-	struct phy_status_rpt_jaguar2_type0 *phy_sta_rpt =
-		(struct phy_status_rpt_jaguar2_type0 *)phy_status;
-	u8 sq = 0;
-	s8 rx_power = phy_sta_rpt->pwdb - 110;
-
-	/* JJ ADD 20161014 */
-
-	/* Calculate Signal Quality*/
-	if (pktinfo->is_packet_match_bssid) {
-		if (phy_sta_rpt->signal_quality >= 64) {
-			sq = 0;
-		} else if (phy_sta_rpt->signal_quality <= 20) {
-			sq = 100;
-		} else {
-			/* mapping to 2~99% */
-			sq = 64 - phy_sta_rpt->signal_quality;
-			sq = ((sq << 3) + sq) >> 2;
-		}
-	}
-
-	/* Modify CCK PWDB if old AGC */
-	if (!dm->cck_new_agc) {
-		u8 lna_idx, vga_idx;
-
-		lna_idx = (phy_sta_rpt->lna_h << 3) | phy_sta_rpt->lna_l;
-		vga_idx = phy_sta_rpt->vga;
-
-		/* JJ ADD 20161014 */
-
-		/* Need to do !! */
-		/*if (dm->support_ic_type & ODM_RTL8822B) */
-		/*rx_power = odm_CCKRSSI_8822B(LNA_idx, VGA_idx);*/
-	}
-
-	/* Update CCK packet counter */
-	dm->phy_dbg_info.num_qry_phy_status_cck++;
-
-	/*CCK no STBC and LDPC*/
-	dm->phy_dbg_info.is_ldpc_pkt = false;
-	dm->phy_dbg_info.is_stbc_pkt = false;
-
-	/* Update Common information */
-	phydm_set_common_phy_info(rx_power, phy_sta_rpt->channel, false, false,
-				  ODM_BW20M, sq, phy_sta_rpt->rxsc, phy_info);
-
-	/* Update CCK pwdb */
-	/* Update per-path information */
-	phydm_set_per_path_phy_info(ODM_RF_PATH_A, rx_power, 0, 0, 0, phy_info);
-
-	dm->dm_fat_table.antsel_rx_keep_0 = phy_sta_rpt->antidx_a;
-	dm->dm_fat_table.antsel_rx_keep_1 = phy_sta_rpt->antidx_b;
-	dm->dm_fat_table.antsel_rx_keep_2 = phy_sta_rpt->antidx_c;
-	dm->dm_fat_table.antsel_rx_keep_3 = phy_sta_rpt->antidx_d;
-}
-
-static void phydm_get_rx_phy_status_type1(struct phy_dm_struct *dm,
-					  u8 *phy_status,
-					  struct dm_per_pkt_info *pktinfo,
-					  struct dm_phy_status_info *phy_info)
-{
-	/* type 1 is used for ofdm packet */
-
-	struct phy_status_rpt_jaguar2_type1 *phy_sta_rpt =
-		(struct phy_status_rpt_jaguar2_type1 *)phy_status;
-	s8 rx_pwr_db = -120;
-	u8 i, rxsc, bw = ODM_BW20M, rx_count = 0;
-	bool is_mu;
-	u8 num_ss;
-
-	/* Update OFDM packet counter */
-	dm->phy_dbg_info.num_qry_phy_status_ofdm++;
-
-	/* Update per-path information */
-	for (i = ODM_RF_PATH_A; i < ODM_RF_PATH_MAX_JAGUAR; i++) {
-		if (dm->rx_ant_status & BIT(i)) {
-			s8 rx_path_pwr_db;
-
-			/* RX path counter */
-			rx_count++;
-
-			/* Update per-path information
-			 * (RSSI_dB RSSI_percentage EVM SNR CFO sq)
-			 */
-			/* EVM report is reported by stream, not path */
-			rx_path_pwr_db = phy_sta_rpt->pwdb[i] -
-					 110; /* per-path pwdb in dB domain */
-			phydm_set_per_path_phy_info(
-				i, rx_path_pwr_db,
-				phy_sta_rpt->rxevm[rx_count - 1],
-				phy_sta_rpt->cfo_tail[i], phy_sta_rpt->rxsnr[i],
-				phy_info);
-
-			/* search maximum pwdb */
-			if (rx_path_pwr_db > rx_pwr_db)
-				rx_pwr_db = rx_path_pwr_db;
-		}
-	}
-
-	/* mapping RX counter from 1~4 to 0~3 */
-	if (rx_count > 0)
-		phy_info->rx_count = rx_count - 1;
-
-	/* Check if MU packet or not */
-	if ((phy_sta_rpt->gid != 0) && (phy_sta_rpt->gid != 63)) {
-		is_mu = true;
-		dm->phy_dbg_info.num_qry_mu_pkt++;
-	} else {
-		is_mu = false;
-	}
-
-	/* count BF packet */
-	dm->phy_dbg_info.num_qry_bf_pkt =
-		dm->phy_dbg_info.num_qry_bf_pkt + phy_sta_rpt->beamformed;
-
-	/*STBC or LDPC pkt*/
-	dm->phy_dbg_info.is_ldpc_pkt = phy_sta_rpt->ldpc;
-	dm->phy_dbg_info.is_stbc_pkt = phy_sta_rpt->stbc;
-
-	/* Check sub-channel */
-	if ((pktinfo->data_rate > ODM_RATE11M) &&
-	    (pktinfo->data_rate < ODM_RATEMCS0))
-		rxsc = phy_sta_rpt->l_rxsc;
-	else
-		rxsc = phy_sta_rpt->ht_rxsc;
-
-	/* Check RX bandwidth */
-	if (dm->support_ic_type & ODM_RTL8822B) {
-		if ((rxsc >= 1) && (rxsc <= 8))
-			bw = ODM_BW20M;
-		else if ((rxsc >= 9) && (rxsc <= 12))
-			bw = ODM_BW40M;
-		else if (rxsc >= 13)
-			bw = ODM_BW80M;
-		else
-			bw = phy_sta_rpt->rf_mode;
-	} else if (dm->support_ic_type & (ODM_RTL8197F | ODM_RTL8723D |
-					  ODM_RTL8710B)) { /* JJ ADD 20161014 */
-		if (phy_sta_rpt->rf_mode == 0)
-			bw = ODM_BW20M;
-		else if ((rxsc == 1) || (rxsc == 2))
-			bw = ODM_BW20M;
-		else
-			bw = ODM_BW40M;
-	}
-
-	/* Update packet information */
-	phydm_set_common_phy_info(
-		rx_pwr_db, phy_sta_rpt->channel, (bool)phy_sta_rpt->beamformed,
-		is_mu, bw, odm_evm_db_to_percentage(phy_sta_rpt->rxevm[0]),
-		rxsc, phy_info);
-
-	num_ss = phydm_rate_to_num_ss(dm, pktinfo->data_rate);
-
-	odm_parsing_cfo(dm, pktinfo, phy_sta_rpt->cfo_tail, num_ss);
-	dm->dm_fat_table.antsel_rx_keep_0 = phy_sta_rpt->antidx_a;
-	dm->dm_fat_table.antsel_rx_keep_1 = phy_sta_rpt->antidx_b;
-	dm->dm_fat_table.antsel_rx_keep_2 = phy_sta_rpt->antidx_c;
-	dm->dm_fat_table.antsel_rx_keep_3 = phy_sta_rpt->antidx_d;
-
-	if (pktinfo->is_packet_match_bssid) {
-		/* */
-		phydm_rx_statistic_cal(dm, phy_status, pktinfo);
-	}
-}
-
-static void phydm_get_rx_phy_status_type2(struct phy_dm_struct *dm,
-					  u8 *phy_status,
-					  struct dm_per_pkt_info *pktinfo,
-					  struct dm_phy_status_info *phy_info)
-{
-	struct phy_status_rpt_jaguar2_type2 *phy_sta_rpt =
-		(struct phy_status_rpt_jaguar2_type2 *)phy_status;
-	s8 rx_pwr_db = -120;
-	u8 i, rxsc, bw = ODM_BW20M, rx_count = 0;
-
-	/* Update OFDM packet counter */
-	dm->phy_dbg_info.num_qry_phy_status_ofdm++;
-
-	/* Update per-path information */
-	for (i = ODM_RF_PATH_A; i < ODM_RF_PATH_MAX_JAGUAR; i++) {
-		if (dm->rx_ant_status & BIT(i)) {
-			s8 rx_path_pwr_db;
-
-			/* RX path counter */
-			rx_count++;
-
-			/* Update per-path information
-			 * (RSSI_dB RSSI_percentage EVM SNR CFO sq)
-			 */
-			rx_path_pwr_db = phy_sta_rpt->pwdb[i] -
-					 110; /* per-path pwdb in dB domain */
-
-			phydm_set_per_path_phy_info(i, rx_path_pwr_db, 0, 0, 0,
-						    phy_info);
-
-			/* search maximum pwdb */
-			if (rx_path_pwr_db > rx_pwr_db)
-				rx_pwr_db = rx_path_pwr_db;
-		}
-	}
-
-	/* mapping RX counter from 1~4 to 0~3 */
-	if (rx_count > 0)
-		phy_info->rx_count = rx_count - 1;
-
-	/* Check RX sub-channel */
-	if ((pktinfo->data_rate > ODM_RATE11M) &&
-	    (pktinfo->data_rate < ODM_RATEMCS0))
-		rxsc = phy_sta_rpt->l_rxsc;
-	else
-		rxsc = phy_sta_rpt->ht_rxsc;
-
-	/*STBC or LDPC pkt*/
-	dm->phy_dbg_info.is_ldpc_pkt = phy_sta_rpt->ldpc;
-	dm->phy_dbg_info.is_stbc_pkt = phy_sta_rpt->stbc;
-
-	/* Check RX bandwidth */
-	/* the BW information of sc=0 is useless, because there is
-	 * no information of RF mode
-	 */
-
-	if (dm->support_ic_type & ODM_RTL8822B) {
-		if ((rxsc >= 1) && (rxsc <= 8))
-			bw = ODM_BW20M;
-		else if ((rxsc >= 9) && (rxsc <= 12))
-			bw = ODM_BW40M;
-		else if (rxsc >= 13)
-			bw = ODM_BW80M;
-		else
-			bw = ODM_BW20M;
-	} else if (dm->support_ic_type & (ODM_RTL8197F | ODM_RTL8723D |
-					  ODM_RTL8710B)) { /* JJ ADD 20161014 */
-		if (rxsc == 3)
-			bw = ODM_BW40M;
-		else
-			bw = ODM_BW20M;
-	}
-
-	/* Update packet information */
-	phydm_set_common_phy_info(rx_pwr_db, phy_sta_rpt->channel,
-				  (bool)phy_sta_rpt->beamformed, false, bw, 0,
-				  rxsc, phy_info);
-}
-
-static void
-phydm_process_rssi_for_dm_new_type(struct phy_dm_struct *dm,
-				   struct dm_phy_status_info *phy_info,
-				   struct dm_per_pkt_info *pktinfo)
-{
-	s32 undecorated_smoothed_pwdb, accumulate_pwdb;
-	u32 rssi_ave;
-	u8 i;
-	struct rtl_sta_info *entry;
-	u8 scaling_factor = 4;
-
-	if (pktinfo->station_id >= ODM_ASSOCIATE_ENTRY_NUM)
-		return;
-
-	entry = dm->odm_sta_info[pktinfo->station_id];
-
-	if (!IS_STA_VALID(entry))
-		return;
-
-	if ((!pktinfo->is_packet_match_bssid)) /*data frame only*/
-		return;
-
-	if (pktinfo->is_packet_beacon)
-		dm->phy_dbg_info.num_qry_beacon_pkt++;
-
-	if (pktinfo->is_packet_to_self || pktinfo->is_packet_beacon) {
-		u32 rssi_linear = 0;
-
-		dm->rx_rate = pktinfo->data_rate;
-		undecorated_smoothed_pwdb =
-			entry->rssi_stat.undecorated_smoothed_pwdb;
-		accumulate_pwdb = dm->accumulate_pwdb[pktinfo->station_id];
-		dm->rssi_a = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A];
-		dm->rssi_b = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B];
-		dm->rssi_c = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_C];
-		dm->rssi_d = phy_info->rx_mimo_signal_strength[ODM_RF_PATH_D];
-
-		for (i = ODM_RF_PATH_A; i < ODM_RF_PATH_MAX_JAGUAR; i++) {
-			if (phy_info->rx_mimo_signal_strength[i] != 0)
-				rssi_linear += odm_convert_to_linear(
-					phy_info->rx_mimo_signal_strength[i]);
-		}
-
-		switch (phy_info->rx_count + 1) {
-		case 2:
-			rssi_linear = rssi_linear >> 1;
-			break;
-		case 3:
-			/* rssi_linear/3 ~ rssi_linear*11/32 */
-			rssi_linear = ((rssi_linear) + (rssi_linear << 1) +
-				       (rssi_linear << 3)) >>
-				      5;
-			break;
-		case 4:
-			rssi_linear = rssi_linear >> 2;
-			break;
-		}
-		rssi_ave = odm_convert_to_db(rssi_linear);
-
-		if (undecorated_smoothed_pwdb <= 0) {
-			accumulate_pwdb =
-				phy_info->rx_pwdb_all << scaling_factor;
-			undecorated_smoothed_pwdb = phy_info->rx_pwdb_all;
-		} else {
-			accumulate_pwdb = accumulate_pwdb -
-					  (accumulate_pwdb >> scaling_factor) +
-					  rssi_ave;
-			undecorated_smoothed_pwdb =
-				(accumulate_pwdb +
-				 (1 << (scaling_factor - 1))) >>
-				scaling_factor;
-		}
-
-		entry->rssi_stat.undecorated_smoothed_pwdb =
-			undecorated_smoothed_pwdb;
-		dm->accumulate_pwdb[pktinfo->station_id] = accumulate_pwdb;
-	}
-}
-
-void phydm_rx_phy_status_new_type(struct phy_dm_struct *phydm, u8 *phy_status,
-				  struct dm_per_pkt_info *pktinfo,
-				  struct dm_phy_status_info *phy_info)
-{
-	u8 phy_status_type = (*phy_status & 0xf);
-
-	/* Memory reset */
-	phydm_reset_phy_info(phydm, phy_info);
-
-	/* Phy status parsing */
-	switch (phy_status_type) {
-	case 0: {
-		phydm_get_rx_phy_status_type0(phydm, phy_status, pktinfo,
-					      phy_info);
-		break;
-	}
-	case 1: {
-		phydm_get_rx_phy_status_type1(phydm, phy_status, pktinfo,
-					      phy_info);
-		break;
-	}
-	case 2: {
-		phydm_get_rx_phy_status_type2(phydm, phy_status, pktinfo,
-					      phy_info);
-		break;
-	}
-	default:
-		return;
-	}
-
-	/* Update signal strength to UI, and phy_info->rx_pwdb_all is the
-	 * maximum RSSI of all path
-	 */
-	phy_info->signal_strength = phy_info->rx_pwdb_all;
-
-	/* Calculate average RSSI and smoothed RSSI */
-	phydm_process_rssi_for_dm_new_type(phydm, phy_info, pktinfo);
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_hwconfig.h b/drivers/staging/rtlwifi/phydm/phydm_hwconfig.h
deleted file mode 100644
index ee4b9f0..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_hwconfig.h
+++ /dev/null
@@ -1,487 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __HALHWOUTSRC_H__
-#define __HALHWOUTSRC_H__
-
-/*--------------------------Define -------------------------------------------*/
-#define CCK_RSSI_INIT_COUNT 5
-
-#define RA_RSSI_STATE_INIT 0
-#define RA_RSSI_STATE_SEND 1
-#define RA_RSSI_STATE_HOLD 2
-
-#define CFO_HW_RPT_2_MHZ(val) ((val << 1) + (val >> 1))
-/* ((X* 3125)  / 10)>>7 = (X*10)>>2 = X*2.5 = X<<1 + X>>1  */
-
-#define AGC_DIFF_CONFIG_MP(ic, band)                                           \
-	(odm_read_and_config_mp_##ic##_agc_tab_diff(                           \
-		dm, array_mp_##ic##_agc_tab_diff_##band,                       \
-		sizeof(array_mp_##ic##_agc_tab_diff_##band) / sizeof(u32)))
-#define AGC_DIFF_CONFIG_TC(ic, band)                                           \
-	(odm_read_and_config_tc_##ic##_agc_tab_diff(                           \
-		dm, array_tc_##ic##_agc_tab_diff_##band,                       \
-		sizeof(array_tc_##ic##_agc_tab_diff_##band) / sizeof(u32)))
-
-#define AGC_DIFF_CONFIG(ic, band)                                              \
-	do {                                                                   \
-		if (dm->is_mp_chip)                                            \
-			AGC_DIFF_CONFIG_MP(ic, band);                          \
-		else                                                           \
-			AGC_DIFF_CONFIG_TC(ic, band);                          \
-	} while (0)
-
-/* ************************************************************
- * structure and define
- * *************************************************************/
-
-struct phy_rx_agc_info {
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 gain : 7, trsw : 1;
-#else
-	u8 trsw : 1, gain : 7;
-#endif
-};
-
-struct phy_status_rpt_8192cd {
-	struct phy_rx_agc_info path_agc[2];
-	u8 ch_corr[2];
-	u8 cck_sig_qual_ofdm_pwdb_all;
-	u8 cck_agc_rpt_ofdm_cfosho_a;
-	u8 cck_rpt_b_ofdm_cfosho_b;
-	u8 rsvd_1; /*ch_corr_msb;*/
-	u8 noise_power_db_msb;
-	s8 path_cfotail[2];
-	u8 pcts_mask[2];
-	s8 stream_rxevm[2];
-	u8 path_rxsnr[2];
-	u8 noise_power_db_lsb;
-	u8 rsvd_2[3];
-	u8 stream_csi[2];
-	u8 stream_target_csi[2];
-	s8 sig_evm;
-	u8 rsvd_3;
-
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 antsel_rx_keep_2 : 1; /*ex_intf_flg:1;*/
-	u8 sgi_en : 1;
-	u8 rxsc : 2;
-	u8 idle_long : 1;
-	u8 r_ant_train_en : 1;
-	u8 ant_sel_b : 1;
-	u8 ant_sel : 1;
-#else /*_BIG_ENDIAN_	*/
-	u8 ant_sel : 1;
-	u8 ant_sel_b : 1;
-	u8 r_ant_train_en : 1;
-	u8 idle_long : 1;
-	u8 rxsc : 2;
-	u8 sgi_en : 1;
-	u8 antsel_rx_keep_2 : 1; /*ex_intf_flg:1;*/
-#endif
-};
-
-struct phy_status_rpt_8812 {
-	/*	DWORD 0*/
-	u8 gain_trsw[2]; /*path-A and path-B {TRSW, gain[6:0] }*/
-	u8 chl_num_LSB; /*channel number[7:0]*/
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 chl_num_MSB : 2; /*channel number[9:8]*/
-	u8 sub_chnl : 4; /*sub-channel location[3:0]*/
-	u8 r_RFMOD : 2; /*RF mode[1:0]*/
-#else /*_BIG_ENDIAN_	*/
-	u8 r_RFMOD : 2;
-	u8 sub_chnl : 4;
-	u8 chl_num_MSB : 2;
-#endif
-
-	/*	DWORD 1*/
-	u8 pwdb_all; /*CCK signal quality / OFDM pwdb all*/
-	s8 cfosho[2]; /*DW1 byte 1 DW1 byte2 */
-/*CCK AGC report and CCK_BB_Power / OFDM path-A and path-B short CFO*/
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	/*this should be checked again
-	 *because the definition of 8812 and 8814 is different
-	 */
-	u8 resvd_0 : 6;
-	u8 bt_RF_ch_MSB : 2; /*8812A:2'b0, 8814A: bt rf channel keep[7:6]*/
-#else /*_BIG_ENDIAN_*/
-	u8 bt_RF_ch_MSB : 2;
-	u8 resvd_0 : 6;
-#endif
-
-/*	DWORD 2*/
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 ant_div_sw_a : 1; /*8812A: ant_div_sw_a, 8814A: 1'b0*/
-	u8 ant_div_sw_b : 1; /*8812A: ant_div_sw_b, 8814A: 1'b0*/
-	u8 bt_RF_ch_LSB : 6; /*8812A: 6'b0, 8814A: bt rf channel keep[5:0]*/
-#else /*_BIG_ENDIAN_	*/
-	u8 bt_RF_ch_LSB : 6;
-	u8 ant_div_sw_b : 1;
-	u8 ant_div_sw_a : 1;
-#endif
-	s8 cfotail[2]; /*DW2 byte 1 DW2 byte 2	path-A and path-B CFO tail*/
-	u8 PCTS_MSK_RPT_0; /*PCTS mask report[7:0]*/
-	u8 PCTS_MSK_RPT_1; /*PCTS mask report[15:8]*/
-
-	/*	DWORD 3*/
-	s8 rxevm[2]; /*DW3 byte 1 DW3 byte 2	stream 1 and stream 2 RX EVM*/
-	s8 rxsnr[2]; /*DW3 byte 3 DW4 byte 0	path-A and path-B RX SNR*/
-
-	/*	DWORD 4*/
-	u8 PCTS_MSK_RPT_2; /*PCTS mask report[23:16]*/
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 PCTS_MSK_RPT_3 : 6; /*PCTS mask report[29:24]*/
-	u8 pcts_rpt_valid : 1; /*pcts_rpt_valid*/
-	u8 resvd_1 : 1; /*1'b0*/
-#else /*_BIG_ENDIAN_*/
-	u8 resvd_1 : 1;
-	u8 pcts_rpt_valid : 1;
-	u8 PCTS_MSK_RPT_3 : 6;
-#endif
-	s8 rxevm_cd[2]; /*DW 4 byte 3 DW5 byte 0 */
-	/* 8812A: 16'b0, 8814A: stream 3 and stream 4 RX EVM*/
-
-	/*	DWORD 5*/
-	u8 csi_current[2]; /*DW5 byte 1 DW5 byte 2 */
-	/* 8812A: stream 1 and 2 CSI, 8814A: path-C and path-D RX SNR*/
-	u8 gain_trsw_cd[2]; /*DW5 byte 3 DW6 byte 0 */
-	/* path-C and path-D {TRSW, gain[6:0] }*/
-
-	/*	DWORD 6*/
-	s8 sigevm; /*signal field EVM*/
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 antidx_antc : 3; /*8812A: 3'b0	8814A: antidx_antc[2:0]*/
-	u8 antidx_antd : 3; /*8812A: 3'b0	8814A: antidx_antd[2:0]*/
-	u8 dpdt_ctrl_keep : 1; /*8812A: 1'b0	8814A: dpdt_ctrl_keep*/
-	u8 GNT_BT_keep : 1; /*8812A: 1'b0	8814A: GNT_BT_keep*/
-#else /*_BIG_ENDIAN_*/
-	u8 GNT_BT_keep : 1;
-	u8 dpdt_ctrl_keep : 1;
-	u8 antidx_antd : 3;
-	u8 antidx_antc : 3;
-#endif
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 antidx_anta : 3; /*antidx_anta[2:0]*/
-	u8 antidx_antb : 3; /*antidx_antb[2:0]*/
-	u8 hw_antsw_occur : 2; /*1'b0*/
-#else /*_BIG_ENDIAN_*/
-	u8 hw_antsw_occur : 2;
-	u8 antidx_antb : 3;
-	u8 antidx_anta : 3;
-#endif
-};
-
-void phydm_reset_rssi_for_dm(struct phy_dm_struct *dm, u8 station_id);
-
-void odm_init_rssi_for_dm(struct phy_dm_struct *dm);
-
-void odm_phy_status_query(struct phy_dm_struct *dm,
-			  struct dm_phy_status_info *phy_info, u8 *phy_status,
-			  struct dm_per_pkt_info *pktinfo);
-
-void odm_mac_status_query(struct phy_dm_struct *dm, u8 *mac_status, u8 mac_id,
-			  bool is_packet_match_bssid, bool is_packet_to_self,
-			  bool is_packet_beacon);
-
-enum hal_status
-odm_config_rf_with_tx_pwr_track_header_file(struct phy_dm_struct *dm);
-
-enum hal_status
-odm_config_rf_with_header_file(struct phy_dm_struct *dm,
-			       enum odm_rf_config_type config_type,
-			       enum odm_rf_radio_path e_rf_path);
-
-enum hal_status
-odm_config_bb_with_header_file(struct phy_dm_struct *dm,
-			       enum odm_bb_config_type config_type);
-
-enum hal_status odm_config_mac_with_header_file(struct phy_dm_struct *dm);
-
-enum hal_status
-odm_config_fw_with_header_file(struct phy_dm_struct *dm,
-			       enum odm_fw_config_type config_type,
-			       u8 *p_firmware, u32 *size);
-
-u32 odm_get_hw_img_version(struct phy_dm_struct *dm);
-
-/*For 8822B only!! need to move to FW finally */
-/*==============================================*/
-void phydm_rx_phy_status_new_type(struct phy_dm_struct *phydm, u8 *phy_status,
-				  struct dm_per_pkt_info *pktinfo,
-				  struct dm_phy_status_info *phy_info);
-
-bool phydm_query_is_mu_api(struct phy_dm_struct *phydm, u8 ppdu_idx,
-			   u8 *p_data_rate, u8 *p_gid);
-
-struct phy_status_rpt_jaguar2_type0 {
-	/* DW0 */
-	u8 page_num;
-	u8 pwdb;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 gain : 6;
-	u8 rsvd_0 : 1;
-	u8 trsw : 1;
-#else
-	u8 trsw : 1;
-	u8 rsvd_0 : 1;
-	u8 gain : 6;
-#endif
-	u8 rsvd_1;
-
-	/* DW1 */
-	u8 rsvd_2;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 rxsc : 4;
-	u8 agc_table : 4;
-#else
-	u8 agc_table : 4;
-	u8 rxsc : 4;
-#endif
-	u8 channel;
-	u8 band;
-
-	/* DW2 */
-	u16 length;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 antidx_a : 3;
-	u8 antidx_b : 3;
-	u8 rsvd_3 : 2;
-	u8 antidx_c : 3;
-	u8 antidx_d : 3;
-	u8 rsvd_4 : 2;
-#else
-	u8 rsvd_3 : 2;
-	u8 antidx_b : 3;
-	u8 antidx_a : 3;
-	u8 rsvd_4 : 2;
-	u8 antidx_d : 3;
-	u8 antidx_c : 3;
-#endif
-
-	/* DW3 */
-	u8 signal_quality;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 vga : 5;
-	u8 lna_l : 3;
-	u8 bb_power : 6;
-	u8 rsvd_9 : 1;
-	u8 lna_h : 1;
-#else
-	u8 lna_l : 3;
-	u8 vga : 5;
-	u8 lna_h : 1;
-	u8 rsvd_9 : 1;
-	u8 bb_power : 6;
-#endif
-	u8 rsvd_5;
-
-	/* DW4 */
-	u32 rsvd_6;
-
-	/* DW5 */
-	u32 rsvd_7;
-
-	/* DW6 */
-	u32 rsvd_8;
-};
-
-struct phy_status_rpt_jaguar2_type1 {
-	/* DW0 and DW1 */
-	u8 page_num;
-	u8 pwdb[4];
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 l_rxsc : 4;
-	u8 ht_rxsc : 4;
-#else
-	u8 ht_rxsc : 4;
-	u8 l_rxsc : 4;
-#endif
-	u8 channel;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 band : 2;
-	u8 rsvd_0 : 1;
-	u8 hw_antsw_occu : 1;
-	u8 gnt_bt : 1;
-	u8 ldpc : 1;
-	u8 stbc : 1;
-	u8 beamformed : 1;
-#else
-	u8 beamformed : 1;
-	u8 stbc : 1;
-	u8 ldpc : 1;
-	u8 gnt_bt : 1;
-	u8 hw_antsw_occu : 1;
-	u8 rsvd_0 : 1;
-	u8 band : 2;
-#endif
-
-	/* DW2 */
-	u16 lsig_length;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 antidx_a : 3;
-	u8 antidx_b : 3;
-	u8 rsvd_1 : 2;
-	u8 antidx_c : 3;
-	u8 antidx_d : 3;
-	u8 rsvd_2 : 2;
-#else
-	u8 rsvd_1 : 2;
-	u8 antidx_b : 3;
-	u8 antidx_a : 3;
-	u8 rsvd_2 : 2;
-	u8 antidx_d : 3;
-	u8 antidx_c : 3;
-#endif
-
-	/* DW3 */
-	u8 paid;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 paid_msb : 1;
-	u8 gid : 6;
-	u8 rsvd_3 : 1;
-#else
-	u8 rsvd_3 : 1;
-	u8 gid : 6;
-	u8 paid_msb : 1;
-#endif
-	u8 intf_pos;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 intf_pos_msb : 1;
-	u8 rsvd_4 : 2;
-	u8 nb_intf_flag : 1;
-	u8 rf_mode : 2;
-	u8 rsvd_5 : 2;
-#else
-	u8 rsvd_5 : 2;
-	u8 rf_mode : 2;
-	u8 nb_intf_flag : 1;
-	u8 rsvd_4 : 2;
-	u8 intf_pos_msb : 1;
-#endif
-
-	/* DW4 */
-	s8 rxevm[4]; /* s(8,1) */
-
-	/* DW5 */
-	s8 cfo_tail[4]; /* s(8,7) */
-
-	/* DW6 */
-	s8 rxsnr[4]; /* s(8,1) */
-};
-
-struct phy_status_rpt_jaguar2_type2 {
-	/* DW0 ane DW1 */
-	u8 page_num;
-	u8 pwdb[4];
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 l_rxsc : 4;
-	u8 ht_rxsc : 4;
-#else
-	u8 ht_rxsc : 4;
-	u8 l_rxsc : 4;
-#endif
-	u8 channel;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 band : 2;
-	u8 rsvd_0 : 1;
-	u8 hw_antsw_occu : 1;
-	u8 gnt_bt : 1;
-	u8 ldpc : 1;
-	u8 stbc : 1;
-	u8 beamformed : 1;
-#else
-	u8 beamformed : 1;
-	u8 stbc : 1;
-	u8 ldpc : 1;
-	u8 gnt_bt : 1;
-	u8 hw_antsw_occu : 1;
-	u8 rsvd_0 : 1;
-	u8 band : 2;
-#endif
-
-/* DW2 */
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 shift_l_map : 6;
-	u8 rsvd_1 : 2;
-#else
-	u8 rsvd_1 : 2;
-	u8 shift_l_map : 6;
-#endif
-	u8 cnt_pw2cca;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 agc_table_a : 4;
-	u8 agc_table_b : 4;
-	u8 agc_table_c : 4;
-	u8 agc_table_d : 4;
-#else
-	u8 agc_table_b : 4;
-	u8 agc_table_a : 4;
-	u8 agc_table_d : 4;
-	u8 agc_table_c : 4;
-#endif
-
-	/* DW3 ~ DW6*/
-	u8 cnt_cca2agc_rdy;
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 gain_a : 6;
-	u8 rsvd_2 : 1;
-	u8 trsw_a : 1;
-	u8 gain_b : 6;
-	u8 rsvd_3 : 1;
-	u8 trsw_b : 1;
-	u8 gain_c : 6;
-	u8 rsvd_4 : 1;
-	u8 trsw_c : 1;
-	u8 gain_d : 6;
-	u8 rsvd_5 : 1;
-	u8 trsw_d : 1;
-	u8 aagc_step_a : 2;
-	u8 aagc_step_b : 2;
-	u8 aagc_step_c : 2;
-	u8 aagc_step_d : 2;
-#else
-	u8 trsw_a : 1;
-	u8 rsvd_2 : 1;
-	u8 gain_a : 6;
-	u8 trsw_b : 1;
-	u8 rsvd_3 : 1;
-	u8 gain_b : 6;
-	u8 trsw_c : 1;
-	u8 rsvd_4 : 1;
-	u8 gain_c : 6;
-	u8 trsw_d : 1;
-	u8 rsvd_5 : 1;
-	u8 gain_d : 6;
-	u8 aagc_step_d : 2;
-	u8 aagc_step_c : 2;
-	u8 aagc_step_b : 2;
-	u8 aagc_step_a : 2;
-#endif
-	u8 ht_aagc_gain[4];
-	u8 dagc_gain[4];
-#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
-	u8 counter : 6;
-	u8 rsvd_6 : 2;
-	u8 syn_count : 5;
-	u8 rsvd_7 : 3;
-#else
-	u8 rsvd_6 : 2;
-	u8 counter : 6;
-	u8 rsvd_7 : 3;
-	u8 syn_count : 5;
-#endif
-};
-
-#endif /*#ifndef	__HALHWOUTSRC_H__*/
diff --git a/drivers/staging/rtlwifi/phydm/phydm_interface.c b/drivers/staging/rtlwifi/phydm/phydm_interface.c
deleted file mode 100644
index f5ecde5..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_interface.c
+++ /dev/null
@@ -1,307 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-/*
- * ODM IO Relative API.
- */
-
-u8 odm_read_1byte(struct phy_dm_struct *dm, u32 reg_addr)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	return rtl_read_byte(rtlpriv, reg_addr);
-}
-
-u16 odm_read_2byte(struct phy_dm_struct *dm, u32 reg_addr)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	return rtl_read_word(rtlpriv, reg_addr);
-}
-
-u32 odm_read_4byte(struct phy_dm_struct *dm, u32 reg_addr)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	return rtl_read_dword(rtlpriv, reg_addr);
-}
-
-void odm_write_1byte(struct phy_dm_struct *dm, u32 reg_addr, u8 data)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	rtl_write_byte(rtlpriv, reg_addr, data);
-}
-
-void odm_write_2byte(struct phy_dm_struct *dm, u32 reg_addr, u16 data)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	rtl_write_word(rtlpriv, reg_addr, data);
-}
-
-void odm_write_4byte(struct phy_dm_struct *dm, u32 reg_addr, u32 data)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	rtl_write_dword(rtlpriv, reg_addr, data);
-}
-
-void odm_set_mac_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask,
-		     u32 data)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	rtl_set_bbreg(rtlpriv->hw, reg_addr, bit_mask, data);
-}
-
-u32 odm_get_mac_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	return rtl_get_bbreg(rtlpriv->hw, reg_addr, bit_mask);
-}
-
-void odm_set_bb_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask,
-		    u32 data)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	rtl_set_bbreg(rtlpriv->hw, reg_addr, bit_mask, data);
-}
-
-u32 odm_get_bb_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	return rtl_get_bbreg(rtlpriv->hw, reg_addr, bit_mask);
-}
-
-void odm_set_rf_reg(struct phy_dm_struct *dm, enum odm_rf_radio_path e_rf_path,
-		    u32 reg_addr, u32 bit_mask, u32 data)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	rtl_set_rfreg(rtlpriv->hw, (enum radio_path)e_rf_path, reg_addr,
-		      bit_mask, data);
-}
-
-u32 odm_get_rf_reg(struct phy_dm_struct *dm, enum odm_rf_radio_path e_rf_path,
-		   u32 reg_addr, u32 bit_mask)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-
-	return rtl_get_rfreg(rtlpriv->hw, (enum radio_path)e_rf_path, reg_addr,
-			     bit_mask);
-}
-
-/*
- * ODM Memory relative API.
- */
-void odm_allocate_memory(struct phy_dm_struct *dm, void **ptr, u32 length)
-{
-	*ptr = kmalloc(length, GFP_ATOMIC);
-}
-
-/* length could be ignored, used to detect memory leakage. */
-void odm_free_memory(struct phy_dm_struct *dm, void *ptr, u32 length)
-{
-	kfree(ptr);
-}
-
-void odm_move_memory(struct phy_dm_struct *dm, void *p_dest, void *src,
-		     u32 length)
-{
-	memcpy(p_dest, src, length);
-}
-
-void odm_memory_set(struct phy_dm_struct *dm, void *pbuf, s8 value, u32 length)
-{
-	memset(pbuf, value, length);
-}
-
-s32 odm_compare_memory(struct phy_dm_struct *dm, void *p_buf1, void *buf2,
-		       u32 length)
-{
-	return memcmp(p_buf1, buf2, length);
-}
-
-/*
- * ODM MISC relative API.
- */
-void odm_acquire_spin_lock(struct phy_dm_struct *dm, enum rt_spinlock_type type)
-{
-}
-
-void odm_release_spin_lock(struct phy_dm_struct *dm, enum rt_spinlock_type type)
-{
-}
-
-/*
- * ODM Timer relative API.
- */
-void odm_stall_execution(u32 us_delay) { udelay(us_delay); }
-
-void ODM_delay_ms(u32 ms) { mdelay(ms); }
-
-void ODM_delay_us(u32 us) { udelay(us); }
-
-void ODM_sleep_ms(u32 ms) { msleep(ms); }
-
-void ODM_sleep_us(u32 us) { usleep_range(us, us + 1); }
-
-static u8 phydm_trans_h2c_id(struct phy_dm_struct *dm, u8 phydm_h2c_id)
-{
-	u8 platform_h2c_id = phydm_h2c_id;
-
-	switch (phydm_h2c_id) {
-	/* 1 [0] */
-	case ODM_H2C_RSSI_REPORT:
-
-		break;
-
-	/* 1 [3] */
-	case ODM_H2C_WIFI_CALIBRATION:
-
-		break;
-
-	/* 1 [4] */
-	case ODM_H2C_IQ_CALIBRATION:
-
-		break;
-	/* 1 [5] */
-	case ODM_H2C_RA_PARA_ADJUST:
-
-		break;
-
-	/* 1 [6] */
-	case PHYDM_H2C_DYNAMIC_TX_PATH:
-
-		break;
-
-	/* [7]*/
-	case PHYDM_H2C_FW_TRACE_EN:
-
-		platform_h2c_id = 0x49;
-
-		break;
-
-	case PHYDM_H2C_TXBF:
-		break;
-
-	case PHYDM_H2C_MU:
-		platform_h2c_id = 0x4a; /*H2C_MU*/
-		break;
-
-	default:
-		platform_h2c_id = phydm_h2c_id;
-		break;
-	}
-
-	return platform_h2c_id;
-}
-
-/*ODM FW relative API.*/
-
-void odm_fill_h2c_cmd(struct phy_dm_struct *dm, u8 phydm_h2c_id, u32 cmd_len,
-		      u8 *cmd_buffer)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-	u8 platform_h2c_id;
-
-	platform_h2c_id = phydm_trans_h2c_id(dm, phydm_h2c_id);
-
-	ODM_RT_TRACE(dm, PHYDM_COMP_RA_DBG,
-		     "[H2C]  platform_h2c_id = ((0x%x))\n", platform_h2c_id);
-
-	rtlpriv->cfg->ops->fill_h2c_cmd(rtlpriv->hw, platform_h2c_id, cmd_len,
-					cmd_buffer);
-}
-
-u8 phydm_c2H_content_parsing(void *dm_void, u8 c2h_cmd_id, u8 c2h_cmd_len,
-			     u8 *tmp_buf)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 extend_c2h_sub_id = 0;
-	u8 find_c2h_cmd = true;
-
-	switch (c2h_cmd_id) {
-	case PHYDM_C2H_DBG:
-		phydm_fw_trace_handler(dm, tmp_buf, c2h_cmd_len);
-		break;
-
-	case PHYDM_C2H_RA_RPT:
-		phydm_c2h_ra_report_handler(dm, tmp_buf, c2h_cmd_len);
-		break;
-
-	case PHYDM_C2H_RA_PARA_RPT:
-		odm_c2h_ra_para_report_handler(dm, tmp_buf, c2h_cmd_len);
-		break;
-
-	case PHYDM_C2H_DYNAMIC_TX_PATH_RPT:
-		break;
-
-	case PHYDM_C2H_IQK_FINISH:
-		break;
-
-	case PHYDM_C2H_DBG_CODE:
-		phydm_fw_trace_handler_code(dm, tmp_buf, c2h_cmd_len);
-		break;
-
-	case PHYDM_C2H_EXTEND:
-		extend_c2h_sub_id = tmp_buf[0];
-		if (extend_c2h_sub_id == PHYDM_EXTEND_C2H_DBG_PRINT)
-			phydm_fw_trace_handler_8051(dm, tmp_buf, c2h_cmd_len);
-
-		break;
-
-	default:
-		find_c2h_cmd = false;
-		break;
-	}
-
-	return find_c2h_cmd;
-}
-
-u64 odm_get_current_time(struct phy_dm_struct *dm) { return jiffies; }
-
-u64 odm_get_progressing_time(struct phy_dm_struct *dm, u64 start_time)
-{
-	return jiffies_to_msecs(jiffies - (u32)start_time);
-}
-
-void odm_set_tx_power_index_by_rate_section(struct phy_dm_struct *dm,
-					    u8 rf_path, u8 channel,
-					    u8 rate_section)
-{
-	void *adapter = dm->adapter;
-
-	phy_set_tx_power_index_by_rs(adapter, channel, rf_path, rate_section);
-}
-
-u8 odm_get_tx_power_index(struct phy_dm_struct *dm, u8 rf_path, u8 tx_rate,
-			  u8 band_width, u8 channel)
-{
-	void *adapter = dm->adapter;
-
-	return phy_get_tx_power_index(adapter, (enum odm_rf_radio_path)rf_path,
-				      tx_rate, band_width, channel);
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_interface.h b/drivers/staging/rtlwifi/phydm/phydm_interface.h
deleted file mode 100644
index 6ef2892..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_interface.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __ODM_INTERFACE_H__
-#define __ODM_INTERFACE_H__
-
-#define INTERFACE_VERSION "1.1" /*2015.07.29  YuChen*/
-
-/*
- * =========== Constant/Structure/Enum/... Define
- */
-
-/*
- * =========== Macro Define
- */
-
-#define _reg_all(_name) ODM_##_name
-#define _reg_ic(_name, _ic) ODM_##_name##_ic
-#define _bit_all(_name) BIT_##_name
-#define _bit_ic(_name, _ic) BIT_##_name##_ic
-
-/* _cat: implemented by Token-Pasting Operator. */
-
-/*===================================
- *
- * #define ODM_REG_DIG_11N	0xC50
- * #define ODM_REG_DIG_11AC	0xDDD
- *
- * ODM_REG(DIG,_pdm_odm)
- * ===================================
- */
-
-#define _reg_11N(_name) ODM_REG_##_name##_11N
-#define _reg_11AC(_name) ODM_REG_##_name##_11AC
-#define _bit_11N(_name) ODM_BIT_##_name##_11N
-#define _bit_11AC(_name) ODM_BIT_##_name##_11AC
-
-#define _cat(_name, _ic_type, _func)                                           \
-	(((_ic_type) & ODM_IC_11N_SERIES) ? _func##_11N(_name) :               \
-					    _func##_11AC(_name))
-
-/* _name: name of register or bit.
- * Example: "ODM_REG(R_A_AGC_CORE1, dm)"
- * gets "ODM_R_A_AGC_CORE1" or "ODM_R_A_AGC_CORE1_8192C",
- * depends on support_ic_type.
- */
-#define ODM_REG(_name, _pdm_odm) _cat(_name, _pdm_odm->support_ic_type, _reg)
-#define ODM_BIT(_name, _pdm_odm) _cat(_name, _pdm_odm->support_ic_type, _bit)
-enum phydm_h2c_cmd {
-	PHYDM_H2C_TXBF = 0x41,
-	ODM_H2C_RSSI_REPORT = 0x42,
-	ODM_H2C_IQ_CALIBRATION = 0x45,
-	ODM_H2C_RA_PARA_ADJUST = 0x47,
-	PHYDM_H2C_DYNAMIC_TX_PATH = 0x48,
-	PHYDM_H2C_FW_TRACE_EN = 0x49,
-	ODM_H2C_WIFI_CALIBRATION = 0x6d,
-	PHYDM_H2C_MU = 0x4a,
-	ODM_MAX_H2CCMD
-};
-
-enum phydm_c2h_evt {
-	PHYDM_C2H_DBG = 0,
-	PHYDM_C2H_LB = 1,
-	PHYDM_C2H_XBF = 2,
-	PHYDM_C2H_TX_REPORT = 3,
-	PHYDM_C2H_INFO = 9,
-	PHYDM_C2H_BT_MP = 11,
-	PHYDM_C2H_RA_RPT = 12,
-	PHYDM_C2H_RA_PARA_RPT = 14,
-	PHYDM_C2H_DYNAMIC_TX_PATH_RPT = 15,
-	PHYDM_C2H_IQK_FINISH = 17, /*0x11*/
-	PHYDM_C2H_DBG_CODE = 0xFE,
-	PHYDM_C2H_EXTEND = 0xFF,
-};
-
-enum phydm_extend_c2h_evt {
-	PHYDM_EXTEND_C2H_DBG_PRINT = 0
-
-};
-
-/*
- * =========== Extern Variable ??? It should be forbidden.
- */
-
-/*
- * =========== EXtern Function Prototype
- */
-
-u8 odm_read_1byte(struct phy_dm_struct *dm, u32 reg_addr);
-
-u16 odm_read_2byte(struct phy_dm_struct *dm, u32 reg_addr);
-
-u32 odm_read_4byte(struct phy_dm_struct *dm, u32 reg_addr);
-
-void odm_write_1byte(struct phy_dm_struct *dm, u32 reg_addr, u8 data);
-
-void odm_write_2byte(struct phy_dm_struct *dm, u32 reg_addr, u16 data);
-
-void odm_write_4byte(struct phy_dm_struct *dm, u32 reg_addr, u32 data);
-
-void odm_set_mac_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask,
-		     u32 data);
-
-u32 odm_get_mac_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask);
-
-void odm_set_bb_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask,
-		    u32 data);
-
-u32 odm_get_bb_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask);
-
-void odm_set_rf_reg(struct phy_dm_struct *dm, enum odm_rf_radio_path e_rf_path,
-		    u32 reg_addr, u32 bit_mask, u32 data);
-
-u32 odm_get_rf_reg(struct phy_dm_struct *dm, enum odm_rf_radio_path e_rf_path,
-		   u32 reg_addr, u32 bit_mask);
-
-/*
- * Memory Relative Function.
- */
-void odm_allocate_memory(struct phy_dm_struct *dm, void **ptr, u32 length);
-void odm_free_memory(struct phy_dm_struct *dm, void *ptr, u32 length);
-
-void odm_move_memory(struct phy_dm_struct *dm, void *p_dest, void *src,
-		     u32 length);
-
-s32 odm_compare_memory(struct phy_dm_struct *dm, void *p_buf1, void *buf2,
-		       u32 length);
-
-void odm_memory_set(struct phy_dm_struct *dm, void *pbuf, s8 value, u32 length);
-
-/*
- * ODM MISC-spin lock relative API.
- */
-void odm_acquire_spin_lock(struct phy_dm_struct *dm,
-			   enum rt_spinlock_type type);
-
-void odm_release_spin_lock(struct phy_dm_struct *dm,
-			   enum rt_spinlock_type type);
-
-/*
- * ODM Timer relative API.
- */
-void odm_stall_execution(u32 us_delay);
-
-void ODM_delay_ms(u32 ms);
-
-void ODM_delay_us(u32 us);
-
-void ODM_sleep_ms(u32 ms);
-
-void ODM_sleep_us(u32 us);
-
-/*
- * ODM FW relative API.
- */
-void odm_fill_h2c_cmd(struct phy_dm_struct *dm, u8 element_id, u32 cmd_len,
-		      u8 *cmd_buffer);
-
-u8 phydm_c2H_content_parsing(void *dm_void, u8 c2h_cmd_id, u8 c2h_cmd_len,
-			     u8 *tmp_buf);
-
-u64 odm_get_current_time(struct phy_dm_struct *dm);
-u64 odm_get_progressing_time(struct phy_dm_struct *dm, u64 start_time);
-
-void odm_set_tx_power_index_by_rate_section(struct phy_dm_struct *dm,
-					    u8 rf_path, u8 channel,
-					    u8 rate_section);
-
-u8 odm_get_tx_power_index(struct phy_dm_struct *dm, u8 rf_path, u8 tx_rate,
-			  u8 band_width, u8 channel);
-
-#endif /* __ODM_INTERFACE_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/phydm_iqk.h b/drivers/staging/rtlwifi/phydm/phydm_iqk.h
deleted file mode 100644
index 0ed21e0..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_iqk.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMIQK_H__
-#define __PHYDMIQK_H__
-
-/*--------------------------Define Parameters-------------------------------*/
-#define LOK_delay 1
-#define WBIQK_delay 10
-#define TX_IQK 0
-#define RX_IQK 1
-#define TXIQK 0
-#define RXIQK1 1
-#define RXIQK2 2
-#define GSRXK1 0
-#define GSRXK2 1
-#define kcount_limit_80m 2
-#define kcount_limit_others 4
-#define rxiqk_gs_limit 4
-
-#define NUM 4
-/*----------------------End Define Parameters-------------------------------*/
-
-struct dm_iqk_info {
-	bool lok_fail[NUM];
-	bool iqk_fail[2][NUM];
-	u32 iqc_matrix[2][NUM];
-	u8 iqk_times;
-	u32 rf_reg18;
-	u32 lna_idx;
-	u8 rxiqk_step;
-	u8 tmp1bcc;
-	u8 kcount;
-
-	u32 iqk_channel[2];
-	bool iqk_fail_report[2][4][2]; /*channel/path/TRX(TX:0, RX:1) */
-	u32 iqk_cfir_real[2][4][2]
-			 [8]; /*channel / path / TRX(TX:0, RX:1) / CFIR_real*/
-	u32 iqk_cfir_imag[2][4][2]
-			 [8]; /*channel / path / TRX(TX:0, RX:1) / CFIR_imag*/
-	u8 retry_count[2][4][3]; /* channel / path / (TXK:0, RXK1:1, RXK2:2) */
-	u8 gs_retry_count[2][4][2]; /* channel / path / (GSRXK1:0, GSRXK2:1) */
-	u8 rxiqk_fail_code[2][4]; /* channel / path
-				   * 0:SRXK1 fail, 1:RXK1 fail 2:RXK2 fail
-				   */
-	u32 lok_idac[2][4]; /*channel / path*/
-	u16 rxiqk_agc[2][4]; /*channel / path*/
-	u32 bypass_iqk[2][4]; /*channel / 0xc94/0xe94*/
-	u32 tmp_gntwl;
-	bool is_btg;
-	bool isbnd;
-};
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_kfree.c b/drivers/staging/rtlwifi/phydm/phydm_kfree.c
deleted file mode 100644
index 1a52500..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_kfree.c
+++ /dev/null
@@ -1,217 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/*============================================================*/
-/*include files*/
-/*============================================================*/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-/*<YuChen, 150720> Add for KFree Feature Requested by RF David.*/
-/*This is a phydm API*/
-
-static void phydm_set_kfree_to_rf_8814a(void *dm_void, u8 e_rf_path, u8 data)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-	bool is_odd;
-
-	if ((data % 2) != 0) { /*odd->positive*/
-		data = data - 1;
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(19),
-			       1);
-		is_odd = true;
-	} else { /*even->negative*/
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(19),
-			       0);
-		is_odd = false;
-	}
-	ODM_RT_TRACE(dm, ODM_COMP_MP, "%s(): RF_0x55[19]= %d\n", __func__,
-		     is_odd);
-	switch (data) {
-	case 0:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       0);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 0);
-		cali_info->kfree_offset[e_rf_path] = 0;
-		break;
-	case 2:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       1);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 0);
-		cali_info->kfree_offset[e_rf_path] = 0;
-		break;
-	case 4:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       0);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 1);
-		cali_info->kfree_offset[e_rf_path] = 1;
-		break;
-	case 6:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       1);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 1);
-		cali_info->kfree_offset[e_rf_path] = 1;
-		break;
-	case 8:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       0);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 2);
-		cali_info->kfree_offset[e_rf_path] = 2;
-		break;
-	case 10:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       1);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 2);
-		cali_info->kfree_offset[e_rf_path] = 2;
-		break;
-	case 12:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       0);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 3);
-		cali_info->kfree_offset[e_rf_path] = 3;
-		break;
-	case 14:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       1);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 3);
-		cali_info->kfree_offset[e_rf_path] = 3;
-		break;
-	case 16:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       0);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 4);
-		cali_info->kfree_offset[e_rf_path] = 4;
-		break;
-	case 18:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       1);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 4);
-		cali_info->kfree_offset[e_rf_path] = 4;
-		break;
-	case 20:
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET, BIT(14),
-			       0);
-		odm_set_rf_reg(dm, e_rf_path, REG_RF_TX_GAIN_OFFSET,
-			       BIT(17) | BIT(16) | BIT(15), 5);
-		cali_info->kfree_offset[e_rf_path] = 5;
-		break;
-
-	default:
-		break;
-	}
-
-	if (!is_odd) {
-		/*that means Kfree offset is negative, we need to record it.*/
-		cali_info->kfree_offset[e_rf_path] =
-			(-1) * cali_info->kfree_offset[e_rf_path];
-		ODM_RT_TRACE(dm, ODM_COMP_MP, "%s(): kfree_offset = %d\n",
-			     __func__, cali_info->kfree_offset[e_rf_path]);
-	} else {
-		ODM_RT_TRACE(dm, ODM_COMP_MP, "%s(): kfree_offset = %d\n",
-			     __func__, cali_info->kfree_offset[e_rf_path]);
-	}
-}
-
-static void phydm_set_kfree_to_rf(void *dm_void, u8 e_rf_path, u8 data)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_RTL8814A)
-		phydm_set_kfree_to_rf_8814a(dm, e_rf_path, data);
-}
-
-void phydm_config_kfree(void *dm_void, u8 channel_to_sw, u8 *kfree_table)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-	u8 rfpath = 0, max_rf_path = 0;
-	u8 channel_idx = 0;
-
-	if (dm->support_ic_type & ODM_RTL8814A)
-		max_rf_path = 4; /*0~3*/
-	else if (dm->support_ic_type &
-		 (ODM_RTL8812 | ODM_RTL8192E | ODM_RTL8822B))
-		max_rf_path = 2; /*0~1*/
-	else
-		max_rf_path = 1;
-
-	ODM_RT_TRACE(dm, ODM_COMP_MP, "===>%s()\n", __func__);
-
-	if (cali_info->reg_rf_kfree_enable == 2) {
-		ODM_RT_TRACE(dm, ODM_COMP_MP,
-			     "%s(): reg_rf_kfree_enable == 2, Disable\n",
-			     __func__);
-		return;
-	}
-
-	if (cali_info->reg_rf_kfree_enable != 1 &&
-	    cali_info->reg_rf_kfree_enable != 0) {
-		ODM_RT_TRACE(dm, ODM_COMP_MP, "<===%s()\n", __func__);
-		return;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_MP, "%s(): reg_rf_kfree_enable == true\n",
-		     __func__);
-	/*Make sure the targetval is defined*/
-	if (((cali_info->reg_rf_kfree_enable == 1) &&
-	     (kfree_table[0] != 0xFF)) ||
-	    cali_info->rf_kfree_enable) {
-		/*if kfree_table[0] == 0xff, means no Kfree*/
-		if (*dm->band_type == ODM_BAND_2_4G) {
-			if (channel_to_sw <= 14 && channel_to_sw >= 1)
-				channel_idx = PHYDM_2G;
-		} else if (*dm->band_type == ODM_BAND_5G) {
-			if (channel_to_sw >= 36 && channel_to_sw <= 48)
-				channel_idx = PHYDM_5GLB1;
-			if (channel_to_sw >= 52 && channel_to_sw <= 64)
-				channel_idx = PHYDM_5GLB2;
-			if (channel_to_sw >= 100 && channel_to_sw <= 120)
-				channel_idx = PHYDM_5GMB1;
-			if (channel_to_sw >= 124 && channel_to_sw <= 144)
-				channel_idx = PHYDM_5GMB2;
-			if (channel_to_sw >= 149 && channel_to_sw <= 177)
-				channel_idx = PHYDM_5GHB;
-		}
-
-		for (rfpath = ODM_RF_PATH_A; rfpath < max_rf_path; rfpath++) {
-			ODM_RT_TRACE(dm, ODM_COMP_MP, "%s(): PATH_%d: %#x\n",
-				     __func__, rfpath,
-				     kfree_table[channel_idx * max_rf_path +
-						 rfpath]);
-			phydm_set_kfree_to_rf(
-				dm, rfpath,
-				kfree_table[channel_idx * max_rf_path +
-					    rfpath]);
-		}
-	} else {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_MP,
-			"%s(): targetval not defined, Don't execute KFree Process.\n",
-			__func__);
-		return;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_MP, "<===%s()\n", __func__);
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_kfree.h b/drivers/staging/rtlwifi/phydm/phydm_kfree.h
deleted file mode 100644
index feeeb69..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_kfree.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMKFREE_H__
-#define __PHYDMKFREE_H__
-
-#define KFREE_VERSION "1.0"
-
-enum phydm_kfree_channeltosw {
-	PHYDM_2G = 0,
-	PHYDM_5GLB1 = 1,
-	PHYDM_5GLB2 = 2,
-	PHYDM_5GMB1 = 3,
-	PHYDM_5GMB2 = 4,
-	PHYDM_5GHB = 5,
-};
-
-void phydm_config_kfree(void *dm_void, u8 channel_to_sw, u8 *kfree_table);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_noisemonitor.c b/drivers/staging/rtlwifi/phydm/phydm_noisemonitor.c
deleted file mode 100644
index 63f5262..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_noisemonitor.c
+++ /dev/null
@@ -1,319 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-#include "phydm_noisemonitor.h"
-
-/* *************************************************
- * This function is for inband noise test utility only
- * To obtain the inband noise level(dbm), do the following.
- * 1. disable DIG and Power Saving
- * 2. Set initial gain = 0x1a
- * 3. Stop updating idle time pwer report (for driver read)
- *	- 0x80c[25]
- *
- * **************************************************/
-
-#define VALID_MIN -35
-#define VALID_MAX 10
-#define VALID_CNT 5
-
-static inline void phydm_set_noise_data_sum(struct noise_level *noise_data,
-					    u8 max_rf_path)
-{
-	u8 rf_path;
-
-	for (rf_path = ODM_RF_PATH_A; rf_path < max_rf_path; rf_path++) {
-		if (noise_data->valid_cnt[rf_path])
-			noise_data->sum[rf_path] /=
-				noise_data->valid_cnt[rf_path];
-		else
-			noise_data->sum[rf_path] = 0;
-	}
-}
-
-static s16 odm_inband_noise_monitor_n_series(struct phy_dm_struct *dm,
-					     u8 is_pause_dig, u8 igi_value,
-					     u32 max_time)
-{
-	u32 tmp4b;
-	u8 max_rf_path = 0, rf_path;
-	u8 reg_c50, reg_c58, valid_done = 0;
-	struct noise_level noise_data;
-	u64 start = 0, func_start = 0, func_end = 0;
-
-	func_start = odm_get_current_time(dm);
-	dm->noise_level.noise_all = 0;
-
-	if ((dm->rf_type == ODM_1T2R) || (dm->rf_type == ODM_2T2R))
-		max_rf_path = 2;
-	else
-		max_rf_path = 1;
-
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON, "%s() ==>\n", __func__);
-
-	odm_memory_set(dm, &noise_data, 0, sizeof(struct noise_level));
-
-	/*  */
-	/* step 1. Disable DIG && Set initial gain. */
-	/*  */
-
-	if (is_pause_dig)
-		odm_pause_dig(dm, PHYDM_PAUSE, PHYDM_PAUSE_LEVEL_1, igi_value);
-	/*  */
-	/* step 2. Disable all power save for read registers */
-	/*  */
-	/* dcmd_DebugControlPowerSave(adapter, PSDisable); */
-
-	/*  */
-	/* step 3. Get noise power level */
-	/*  */
-	start = odm_get_current_time(dm);
-	while (1) {
-		/* Stop updating idle time pwer report (for driver read) */
-		odm_set_bb_reg(dm, REG_FPGA0_TX_GAIN_STAGE, BIT(25), 1);
-
-		/* Read Noise Floor Report */
-		tmp4b = odm_get_bb_reg(dm, 0x8f8, MASKDWORD);
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-			     "Noise Floor Report (0x8f8) = 0x%08x\n", tmp4b);
-
-		/* update idle time pwer report per 5us */
-		odm_set_bb_reg(dm, REG_FPGA0_TX_GAIN_STAGE, BIT(25), 0);
-
-		noise_data.value[ODM_RF_PATH_A] = (u8)(tmp4b & 0xff);
-		noise_data.value[ODM_RF_PATH_B] = (u8)((tmp4b & 0xff00) >> 8);
-
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-			     "value_a = 0x%x(%d), value_b = 0x%x(%d)\n",
-			     noise_data.value[ODM_RF_PATH_A],
-			     noise_data.value[ODM_RF_PATH_A],
-			     noise_data.value[ODM_RF_PATH_B],
-			     noise_data.value[ODM_RF_PATH_B]);
-
-		for (rf_path = ODM_RF_PATH_A; rf_path < max_rf_path;
-		     rf_path++) {
-			noise_data.sval[rf_path] =
-				(s8)noise_data.value[rf_path];
-			noise_data.sval[rf_path] /= 2;
-		}
-
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON, "sval_a = %d, sval_b = %d\n",
-			     noise_data.sval[ODM_RF_PATH_A],
-			     noise_data.sval[ODM_RF_PATH_B]);
-
-		for (rf_path = ODM_RF_PATH_A; rf_path < max_rf_path;
-		     rf_path++) {
-			if (!(noise_data.valid_cnt[rf_path] < VALID_CNT) ||
-			    !(noise_data.sval[rf_path] < VALID_MAX &&
-			      noise_data.sval[rf_path] >= VALID_MIN)) {
-				continue;
-			}
-
-			noise_data.valid_cnt[rf_path]++;
-			noise_data.sum[rf_path] += noise_data.sval[rf_path];
-			ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-				     "rf_path:%d Valid sval = %d\n", rf_path,
-				     noise_data.sval[rf_path]);
-			ODM_RT_TRACE(dm, ODM_COMP_COMMON, "Sum of sval = %d,\n",
-				     noise_data.sum[rf_path]);
-			if (noise_data.valid_cnt[rf_path] == VALID_CNT) {
-				valid_done++;
-				ODM_RT_TRACE(
-					dm, ODM_COMP_COMMON,
-					"After divided, rf_path:%d,sum = %d\n",
-					rf_path, noise_data.sum[rf_path]);
-			}
-		}
-
-		if ((valid_done == max_rf_path) ||
-		    (odm_get_progressing_time(dm, start) > max_time)) {
-			phydm_set_noise_data_sum(&noise_data, max_rf_path);
-			break;
-		}
-	}
-	reg_c50 = (u8)odm_get_bb_reg(dm, REG_OFDM_0_XA_AGC_CORE1, MASKBYTE0);
-	reg_c50 &= ~BIT(7);
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON, "0x%x = 0x%02x(%d)\n",
-		     REG_OFDM_0_XA_AGC_CORE1, reg_c50, reg_c50);
-	dm->noise_level.noise[ODM_RF_PATH_A] =
-		(u8)(-110 + reg_c50 + noise_data.sum[ODM_RF_PATH_A]);
-	dm->noise_level.noise_all += dm->noise_level.noise[ODM_RF_PATH_A];
-
-	if (max_rf_path == 2) {
-		reg_c58 = (u8)odm_get_bb_reg(dm, REG_OFDM_0_XB_AGC_CORE1,
-					     MASKBYTE0);
-		reg_c58 &= ~BIT(7);
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON, "0x%x = 0x%02x(%d)\n",
-			     REG_OFDM_0_XB_AGC_CORE1, reg_c58, reg_c58);
-		dm->noise_level.noise[ODM_RF_PATH_B] =
-			(u8)(-110 + reg_c58 + noise_data.sum[ODM_RF_PATH_B]);
-		dm->noise_level.noise_all +=
-			dm->noise_level.noise[ODM_RF_PATH_B];
-	}
-	dm->noise_level.noise_all /= max_rf_path;
-
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON, "noise_a = %d, noise_b = %d\n",
-		     dm->noise_level.noise[ODM_RF_PATH_A],
-		     dm->noise_level.noise[ODM_RF_PATH_B]);
-
-	/*  */
-	/* step 4. Recover the Dig */
-	/*  */
-	if (is_pause_dig)
-		odm_pause_dig(dm, PHYDM_RESUME, PHYDM_PAUSE_LEVEL_1, igi_value);
-	func_end = odm_get_progressing_time(dm, func_start);
-
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON, "%s() <==\n", __func__);
-	return dm->noise_level.noise_all;
-}
-
-static s16 odm_inband_noise_monitor_ac_series(struct phy_dm_struct *dm,
-					      u8 is_pause_dig, u8 igi_value,
-					      u32 max_time)
-{
-	s32 rxi_buf_anta, rxq_buf_anta; /*rxi_buf_antb, rxq_buf_antb;*/
-	s32 value32, pwdb_A = 0, sval, noise, sum;
-	bool pd_flag;
-	u8 valid_cnt;
-	u64 start = 0, func_start = 0, func_end = 0;
-
-	if (!(dm->support_ic_type & (ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8814A)))
-		return 0;
-
-	func_start = odm_get_current_time(dm);
-	dm->noise_level.noise_all = 0;
-
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON, "%s() ==>\n", __func__);
-
-	/* step 1. Disable DIG && Set initial gain. */
-	if (is_pause_dig)
-		odm_pause_dig(dm, PHYDM_PAUSE, PHYDM_PAUSE_LEVEL_1, igi_value);
-
-	/* step 2. Disable all power save for read registers */
-	/*dcmd_DebugControlPowerSave(adapter, PSDisable); */
-
-	/* step 3. Get noise power level */
-	start = odm_get_current_time(dm);
-
-	/* reset counters */
-	sum = 0;
-	valid_cnt = 0;
-
-	/* step 3. Get noise power level */
-	while (1) {
-		/*Set IGI=0x1C */
-		odm_write_dig(dm, 0x1C);
-		/*stop CK320&CK88 */
-		odm_set_bb_reg(dm, 0x8B4, BIT(6), 1);
-		/*Read path-A */
-		odm_set_bb_reg(dm, 0x8FC, MASKDWORD, 0x200); /*set debug port*/
-		value32 = odm_get_bb_reg(dm, 0xFA0,
-					 MASKDWORD); /*read debug port*/
-
-		rxi_buf_anta = (value32 & 0xFFC00) >>
-			       10; /*rxi_buf_anta=RegFA0[19:10]*/
-		rxq_buf_anta = value32 & 0x3FF; /*rxq_buf_anta=RegFA0[19:10]*/
-
-		pd_flag = (bool)((value32 & BIT(31)) >> 31);
-
-		/*Not in packet detection period or Tx state */
-		if ((!pd_flag) || (rxi_buf_anta != 0x200)) {
-			/*sign conversion*/
-			rxi_buf_anta = odm_sign_conversion(rxi_buf_anta, 10);
-			rxq_buf_anta = odm_sign_conversion(rxq_buf_anta, 10);
-
-			pwdb_A = odm_pwdb_conversion(
-				rxi_buf_anta * rxi_buf_anta +
-					rxq_buf_anta * rxq_buf_anta,
-				20, 18); /*S(10,9)*S(10,9)=S(20,18)*/
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_COMMON,
-				"pwdb_A= %d dB, rxi_buf_anta= 0x%x, rxq_buf_anta= 0x%x\n",
-				pwdb_A, rxi_buf_anta & 0x3FF,
-				rxq_buf_anta & 0x3FF);
-		}
-		/*Start CK320&CK88*/
-		odm_set_bb_reg(dm, 0x8B4, BIT(6), 0);
-		/*BB Reset*/
-		odm_write_1byte(dm, 0x02, odm_read_1byte(dm, 0x02) & (~BIT(0)));
-		odm_write_1byte(dm, 0x02, odm_read_1byte(dm, 0x02) | BIT(0));
-		/*PMAC Reset*/
-		odm_write_1byte(dm, 0xB03,
-				odm_read_1byte(dm, 0xB03) & (~BIT(0)));
-		odm_write_1byte(dm, 0xB03, odm_read_1byte(dm, 0xB03) | BIT(0));
-		/*CCK Reset*/
-		if (odm_read_1byte(dm, 0x80B) & BIT(4)) {
-			odm_write_1byte(dm, 0x80B,
-					odm_read_1byte(dm, 0x80B) & (~BIT(4)));
-			odm_write_1byte(dm, 0x80B,
-					odm_read_1byte(dm, 0x80B) | BIT(4));
-		}
-
-		sval = pwdb_A;
-
-		if ((sval < 0 && sval >= -27) && (valid_cnt < VALID_CNT)) {
-			valid_cnt++;
-			sum += sval;
-			ODM_RT_TRACE(dm, ODM_COMP_COMMON, "Valid sval = %d\n",
-				     sval);
-			ODM_RT_TRACE(dm, ODM_COMP_COMMON, "Sum of sval = %d,\n",
-				     sum);
-			if ((valid_cnt >= VALID_CNT) ||
-			    (odm_get_progressing_time(dm, start) > max_time)) {
-				sum /= VALID_CNT;
-				ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-					     "After divided, sum = %d\n", sum);
-				break;
-			}
-		}
-	}
-
-	/*ADC backoff is 12dB,*/
-	/*Ptarget=0x1C-110=-82dBm*/
-	noise = sum + 12 + 0x1C - 110;
-
-	/*Offset*/
-	noise = noise - 3;
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON, "noise = %d\n", noise);
-	dm->noise_level.noise_all = (s16)noise;
-
-	/* step 4. Recover the Dig*/
-	if (is_pause_dig)
-		odm_pause_dig(dm, PHYDM_RESUME, PHYDM_PAUSE_LEVEL_1, igi_value);
-
-	func_end = odm_get_progressing_time(dm, func_start);
-
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON, "%s() <==\n", __func__);
-
-	return dm->noise_level.noise_all;
-}
-
-s16 odm_inband_noise_monitor(void *dm_void, u8 is_pause_dig, u8 igi_value,
-			     u32 max_time)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES)
-		return odm_inband_noise_monitor_ac_series(dm, is_pause_dig,
-							  igi_value, max_time);
-	else
-		return odm_inband_noise_monitor_n_series(dm, is_pause_dig,
-							 igi_value, max_time);
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_noisemonitor.h b/drivers/staging/rtlwifi/phydm/phydm_noisemonitor.h
deleted file mode 100644
index 7bce088..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_noisemonitor.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __ODMNOISEMONITOR_H__
-#define __ODMNOISEMONITOR_H__
-
-#define ODM_MAX_CHANNEL_NUM 38 /* 14+24 */
-struct noise_level {
-	u8 value[MAX_RF_PATH];
-	s8 sval[MAX_RF_PATH];
-
-	s32 sum[MAX_RF_PATH];
-	u8 valid[MAX_RF_PATH];
-	u8 valid_cnt[MAX_RF_PATH];
-};
-
-struct odm_noise_monitor {
-	s8 noise[MAX_RF_PATH];
-	s16 noise_all;
-};
-
-s16 odm_inband_noise_monitor(void *dm_void, u8 is_pause_dig, u8 igi_value,
-			     u32 max_time);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_powertracking_ce.c b/drivers/staging/rtlwifi/phydm/phydm_powertracking_ce.c
deleted file mode 100644
index c98de4b..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_powertracking_ce.c
+++ /dev/null
@@ -1,633 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/*============================================================	*/
-/* include files						*/
-/*============================================================	*/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-/* ************************************************************
- * Global var
- * *************************************************************/
-
-u32 ofdm_swing_table[OFDM_TABLE_SIZE] = {
-	0x7f8001fe, /* 0, +6.0dB */
-	0x788001e2, /* 1, +5.5dB */
-	0x71c001c7, /* 2, +5.0dB*/
-	0x6b8001ae, /* 3, +4.5dB*/
-	0x65400195, /* 4, +4.0dB*/
-	0x5fc0017f, /* 5, +3.5dB*/
-	0x5a400169, /* 6, +3.0dB*/
-	0x55400155, /* 7, +2.5dB*/
-	0x50800142, /* 8, +2.0dB*/
-	0x4c000130, /* 9, +1.5dB*/
-	0x47c0011f, /* 10, +1.0dB*/
-	0x43c0010f, /* 11, +0.5dB*/
-	0x40000100, /* 12, +0dB*/
-	0x3c8000f2, /* 13, -0.5dB*/
-	0x390000e4, /* 14, -1.0dB*/
-	0x35c000d7, /* 15, -1.5dB*/
-	0x32c000cb, /* 16, -2.0dB*/
-	0x300000c0, /* 17, -2.5dB*/
-	0x2d4000b5, /* 18, -3.0dB*/
-	0x2ac000ab, /* 19, -3.5dB*/
-	0x288000a2, /* 20, -4.0dB*/
-	0x26000098, /* 21, -4.5dB*/
-	0x24000090, /* 22, -5.0dB*/
-	0x22000088, /* 23, -5.5dB*/
-	0x20000080, /* 24, -6.0dB*/
-	0x1e400079, /* 25, -6.5dB*/
-	0x1c800072, /* 26, -7.0dB*/
-	0x1b00006c, /* 27. -7.5dB*/
-	0x19800066, /* 28, -8.0dB*/
-	0x18000060, /* 29, -8.5dB*/
-	0x16c0005b, /* 30, -9.0dB*/
-	0x15800056, /* 31, -9.5dB*/
-	0x14400051, /* 32, -10.0dB*/
-	0x1300004c, /* 33, -10.5dB*/
-	0x12000048, /* 34, -11.0dB*/
-	0x11000044, /* 35, -11.5dB*/
-	0x10000040, /* 36, -12.0dB*/
-};
-
-u8 cck_swing_table_ch1_ch13[CCK_TABLE_SIZE][8] = {
-	{0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04}, /* 0, +0dB */
-	{0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04}, /* 1, -0.5dB */
-	{0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03}, /* 2, -1.0dB*/
-	{0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03}, /* 3, -1.5dB*/
-	{0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03}, /* 4, -2.0dB */
-	{0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03}, /* 5, -2.5dB*/
-	{0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03}, /* 6, -3.0dB*/
-	{0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03}, /* 7, -3.5dB*/
-	{0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02}, /* 8, -4.0dB */
-	{0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02}, /* 9, -4.5dB*/
-	{0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02}, /* 10, -5.0dB */
-	{0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02}, /* 11, -5.5dB*/
-	{0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04,
-	 0x02}, /* 12, -6.0dB <== default */
-	{0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02}, /* 13, -6.5dB*/
-	{0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02}, /* 14, -7.0dB */
-	{0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02}, /* 15, -7.5dB*/
-	{0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01}, /* 16, -8.0dB */
-	{0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02}, /* 17, -8.5dB*/
-	{0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01}, /* 18, -9.0dB */
-	{0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, /* 19, -9.5dB*/
-	{0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, /* 20, -10.0dB*/
-	{0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01}, /* 21, -10.5dB*/
-	{0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01}, /* 22, -11.0dB*/
-	{0x0e, 0x0e, 0x0c, 0x0a, 0x08, 0x05, 0x02, 0x01}, /* 23, -11.5dB*/
-	{0x0d, 0x0d, 0x0c, 0x0a, 0x07, 0x05, 0x02, 0x01}, /* 24, -12.0dB*/
-	{0x0d, 0x0c, 0x0b, 0x09, 0x07, 0x04, 0x02, 0x01}, /* 25, -12.5dB*/
-	{0x0c, 0x0c, 0x0a, 0x09, 0x06, 0x04, 0x02, 0x01}, /* 26, -13.0dB*/
-	{0x0b, 0x0b, 0x0a, 0x08, 0x06, 0x04, 0x02, 0x01}, /* 27, -13.5dB*/
-	{0x0b, 0x0a, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01}, /* 28, -14.0dB*/
-	{0x0a, 0x0a, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01}, /* 29, -14.5dB*/
-	{0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01}, /* 30, -15.0dB*/
-	{0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01}, /* 31, -15.5dB*/
-	{0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01} /* 32, -16.0dB*/
-};
-
-u8 cck_swing_table_ch14[CCK_TABLE_SIZE][8] = {
-	{0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00}, /* 0, +0dB */
-	{0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00}, /* 1, -0.5dB */
-	{0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00}, /* 2, -1.0dB */
-	{0x2d, 0x2d, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00}, /* 3, -1.5dB*/
-	{0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00}, /* 4, -2.0dB */
-	{0x28, 0x28, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00}, /* 5, -2.5dB*/
-	{0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00}, /* 6, -3.0dB */
-	{0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00}, /* 7, -3.5dB */
-	{0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00}, /* 8, -4.0dB */
-	{0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00}, /* 9, -4.5dB*/
-	{0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00}, /* 10, -5.0dB */
-	{0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00}, /* 11, -5.5dB*/
-	{0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00,
-	 0x00}, /* 12, -6.0dB  <== default*/
-	{0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00}, /* 13, -6.5dB */
-	{0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00}, /* 14, -7.0dB */
-	{0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00}, /* 15, -7.5dB*/
-	{0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00}, /* 16, -8.0dB */
-	{0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00}, /* 17, -8.5dB*/
-	{0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00}, /* 18, -9.0dB */
-	{0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, /* 19, -9.5dB*/
-	{0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, /* 20, -10.0dB*/
-	{0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00}, /* 21, -10.5dB*/
-	{0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00}, /* 22, -11.0dB*/
-	{0x0e, 0x0e, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, /* 23, -11.5dB*/
-	{0x0d, 0x0d, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, /* 24, -12.0dB*/
-	{0x0d, 0x0c, 0x0b, 0x06, 0x00, 0x00, 0x00, 0x00}, /* 25, -12.5dB*/
-	{0x0c, 0x0c, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, /* 26, -13.0dB*/
-	{0x0b, 0x0b, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, /* 27, -13.5dB*/
-	{0x0b, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 28, -14.0dB*/
-	{0x0a, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 29, -14.5dB*/
-	{0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 30, -15.0dB*/
-	{0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 31, -15.5dB*/
-	{0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} /* 32, -16.0dB*/
-};
-
-u32 ofdm_swing_table_new[OFDM_TABLE_SIZE] = {
-	0x0b40002d, /* 0,  -15.0dB	*/
-	0x0c000030, /* 1,  -14.5dB*/
-	0x0cc00033, /* 2,  -14.0dB*/
-	0x0d800036, /* 3,  -13.5dB*/
-	0x0e400039, /* 4,  -13.0dB */
-	0x0f00003c, /* 5,  -12.5dB*/
-	0x10000040, /* 6,  -12.0dB*/
-	0x11000044, /* 7,  -11.5dB*/
-	0x12000048, /* 8,  -11.0dB*/
-	0x1300004c, /* 9,  -10.5dB*/
-	0x14400051, /* 10, -10.0dB*/
-	0x15800056, /* 11, -9.5dB*/
-	0x16c0005b, /* 12, -9.0dB*/
-	0x18000060, /* 13, -8.5dB*/
-	0x19800066, /* 14, -8.0dB*/
-	0x1b00006c, /* 15, -7.5dB*/
-	0x1c800072, /* 16, -7.0dB*/
-	0x1e400079, /* 17, -6.5dB*/
-	0x20000080, /* 18, -6.0dB*/
-	0x22000088, /* 19, -5.5dB*/
-	0x24000090, /* 20, -5.0dB*/
-	0x26000098, /* 21, -4.5dB*/
-	0x288000a2, /* 22, -4.0dB*/
-	0x2ac000ab, /* 23, -3.5dB*/
-	0x2d4000b5, /* 24, -3.0dB*/
-	0x300000c0, /* 25, -2.5dB*/
-	0x32c000cb, /* 26, -2.0dB*/
-	0x35c000d7, /* 27, -1.5dB*/
-	0x390000e4, /* 28, -1.0dB*/
-	0x3c8000f2, /* 29, -0.5dB*/
-	0x40000100, /* 30, +0dB*/
-	0x43c0010f, /* 31, +0.5dB*/
-	0x47c0011f, /* 32, +1.0dB*/
-	0x4c000130, /* 33, +1.5dB*/
-	0x50800142, /* 34, +2.0dB*/
-	0x55400155, /* 35, +2.5dB*/
-	0x5a400169, /* 36, +3.0dB*/
-	0x5fc0017f, /* 37, +3.5dB*/
-	0x65400195, /* 38, +4.0dB*/
-	0x6b8001ae, /* 39, +4.5dB*/
-	0x71c001c7, /* 40, +5.0dB*/
-	0x788001e2, /* 41, +5.5dB*/
-	0x7f8001fe /* 42, +6.0dB*/
-};
-
-u8 cck_swing_table_ch1_ch14_88f[CCK_TABLE_SIZE_88F][16] = {
-	{0x44, 0x42, 0x3C, 0x33, 0x28, 0x1C, 0x13, 0x0B, 0x05, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-16dB*/
-	{0x48, 0x46, 0x3F, 0x36, 0x2A, 0x1E, 0x14, 0x0B, 0x05, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-15.5dB*/
-	{0x4D, 0x4A, 0x43, 0x39, 0x2C, 0x20, 0x15, 0x0C, 0x06, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-15dB*/
-	{0x51, 0x4F, 0x47, 0x3C, 0x2F, 0x22, 0x16, 0x0D, 0x06, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-14.5dB*/
-	{0x56, 0x53, 0x4B, 0x40, 0x32, 0x24, 0x17, 0x0E, 0x06, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-14dB*/
-	{0x5B, 0x58, 0x50, 0x43, 0x35, 0x26, 0x19, 0x0E, 0x07, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-13.5dB*/
-	{0x60, 0x5D, 0x54, 0x47, 0x38, 0x28, 0x1A, 0x0F, 0x07, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-13dB*/
-	{0x66, 0x63, 0x59, 0x4C, 0x3B, 0x2B, 0x1C, 0x10, 0x08, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-12.5dB*/
-	{0x6C, 0x69, 0x5F, 0x50, 0x3F, 0x2D, 0x1E, 0x11, 0x08, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-12dB*/
-	{0x73, 0x6F, 0x64, 0x55, 0x42, 0x30, 0x1F, 0x12, 0x08, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-11.5dB*/
-	{0x79, 0x76, 0x6A, 0x5A, 0x46, 0x33, 0x21, 0x13, 0x09, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-11dB*/
-	{0x81, 0x7C, 0x71, 0x5F, 0x4A, 0x36, 0x23, 0x14, 0x0A, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-10.5dB*/
-	{0x88, 0x84, 0x77, 0x65, 0x4F, 0x39, 0x25, 0x15, 0x0A, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-10dB*/
-	{0x90, 0x8C, 0x7E, 0x6B, 0x54, 0x3C, 0x27, 0x17, 0x0B, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-9.5dB*/
-	{0x99, 0x94, 0x86, 0x71, 0x58, 0x40, 0x2A, 0x18, 0x0B, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-9dB*/
-	{0xA2, 0x9D, 0x8E, 0x78, 0x5E, 0x43, 0x2C, 0x19, 0x0C, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-8.5dB*/
-	{0xAC, 0xA6, 0x96, 0x7F, 0x63, 0x47, 0x2F, 0x1B, 0x0D, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-8dB*/
-	{0xB6, 0xB0, 0x9F, 0x87, 0x69, 0x4C, 0x32, 0x1D, 0x0D, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-7.5dB*/
-	{0xC1, 0xBA, 0xA8, 0x8F, 0x6F, 0x50, 0x35, 0x1E, 0x0E, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-7dB*/
-	{0xCC, 0xC5, 0xB2, 0x97, 0x76, 0x55, 0x38, 0x20, 0x0F, 0x05, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-6.5dB*/
-	{0xD8, 0xD1, 0xBD, 0xA0, 0x7D, 0x5A, 0x3B, 0x22, 0x10, 0x05, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00} /*-6dB*/
-};
-
-u8 cck_swing_table_ch1_ch13_88f[CCK_TABLE_SIZE_88F][16] = {
-	{0x44, 0x42, 0x3C, 0x33, 0x28, 0x1C, 0x13, 0x0B, 0x05, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-16dB*/
-	{0x48, 0x46, 0x3F, 0x36, 0x2A, 0x1E, 0x14, 0x0B, 0x05, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-15.5dB*/
-	{0x4D, 0x4A, 0x43, 0x39, 0x2C, 0x20, 0x15, 0x0C, 0x06, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-15dB*/
-	{0x51, 0x4F, 0x47, 0x3C, 0x2F, 0x22, 0x16, 0x0D, 0x06, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-14.5dB*/
-	{0x56, 0x53, 0x4B, 0x40, 0x32, 0x24, 0x17, 0x0E, 0x06, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-14dB*/
-	{0x5B, 0x58, 0x50, 0x43, 0x35, 0x26, 0x19, 0x0E, 0x07, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-13.5dB*/
-	{0x60, 0x5D, 0x54, 0x47, 0x38, 0x28, 0x1A, 0x0F, 0x07, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-13dB*/
-	{0x66, 0x63, 0x59, 0x4C, 0x3B, 0x2B, 0x1C, 0x10, 0x08, 0x02, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-12.5dB*/
-	{0x6C, 0x69, 0x5F, 0x50, 0x3F, 0x2D, 0x1E, 0x11, 0x08, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-12dB*/
-	{0x73, 0x6F, 0x64, 0x55, 0x42, 0x30, 0x1F, 0x12, 0x08, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-11.5dB*/
-	{0x79, 0x76, 0x6A, 0x5A, 0x46, 0x33, 0x21, 0x13, 0x09, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-11dB*/
-	{0x81, 0x7C, 0x71, 0x5F, 0x4A, 0x36, 0x23, 0x14, 0x0A, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-10.5dB*/
-	{0x88, 0x84, 0x77, 0x65, 0x4F, 0x39, 0x25, 0x15, 0x0A, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-10dB*/
-	{0x90, 0x8C, 0x7E, 0x6B, 0x54, 0x3C, 0x27, 0x17, 0x0B, 0x03, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-9.5dB*/
-	{0x99, 0x94, 0x86, 0x71, 0x58, 0x40, 0x2A, 0x18, 0x0B, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-9dB*/
-	{0xA2, 0x9D, 0x8E, 0x78, 0x5E, 0x43, 0x2C, 0x19, 0x0C, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-8.5dB*/
-	{0xAC, 0xA6, 0x96, 0x7F, 0x63, 0x47, 0x2F, 0x1B, 0x0D, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-8dB*/
-	{0xB6, 0xB0, 0x9F, 0x87, 0x69, 0x4C, 0x32, 0x1D, 0x0D, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-7.5dB*/
-	{0xC1, 0xBA, 0xA8, 0x8F, 0x6F, 0x50, 0x35, 0x1E, 0x0E, 0x04, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-7dB*/
-	{0xCC, 0xC5, 0xB2, 0x97, 0x76, 0x55, 0x38, 0x20, 0x0F, 0x05, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-6.5dB*/
-	{0xD8, 0xD1, 0xBD, 0xA0, 0x7D, 0x5A, 0x3B, 0x22, 0x10, 0x05, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00} /*-6dB*/
-};
-
-u8 cck_swing_table_ch14_88f[CCK_TABLE_SIZE_88F][16] = {
-	{0x44, 0x42, 0x3C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-16dB*/
-	{0x48, 0x46, 0x3F, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-15.5dB*/
-	{0x4D, 0x4A, 0x43, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-15dB*/
-	{0x51, 0x4F, 0x47, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-14.5dB*/
-	{0x56, 0x53, 0x4B, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-14dB*/
-	{0x5B, 0x58, 0x50, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-13.5dB*/
-	{0x60, 0x5D, 0x54, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-13dB*/
-	{0x66, 0x63, 0x59, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-12.5dB*/
-	{0x6C, 0x69, 0x5F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-12dB*/
-	{0x73, 0x6F, 0x64, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-11.5dB*/
-	{0x79, 0x76, 0x6A, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-11dB*/
-	{0x81, 0x7C, 0x71, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-10.5dB*/
-	{0x88, 0x84, 0x77, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-10dB*/
-	{0x90, 0x8C, 0x7E, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-9.5dB*/
-	{0x99, 0x94, 0x86, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-9dB*/
-	{0xA2, 0x9D, 0x8E, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-8.5dB*/
-	{0xAC, 0xA6, 0x96, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-8dB*/
-	{0xB6, 0xB0, 0x9F, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-7.5dB*/
-	{0xC1, 0xBA, 0xA8, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-7dB*/
-	{0xCC, 0xC5, 0xB2, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00}, /*-6.5dB*/
-	{0xD8, 0xD1, 0xBD, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	 0x00, 0x00, 0x00, 0x00} /*-6dB*/
-};
-
-u8 cck_swing_table_ch1_ch13_new[CCK_TABLE_SIZE][8] = {
-	{0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01}, /*  0, -16.0dB*/
-	{0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01}, /*   1, -15.5dB*/
-	{0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01}, /*  2, -15.0dB*/
-	{0x0a, 0x0a, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01}, /*   3, -14.5dB*/
-	{0x0b, 0x0a, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01}, /*   4, -14.0dB*/
-	{0x0b, 0x0b, 0x0a, 0x08, 0x06, 0x04, 0x02, 0x01}, /*   5, -13.5dB*/
-	{0x0c, 0x0c, 0x0a, 0x09, 0x06, 0x04, 0x02, 0x01}, /*   6, -13.0dB*/
-	{0x0d, 0x0c, 0x0b, 0x09, 0x07, 0x04, 0x02, 0x01}, /*   7, -12.5dB*/
-	{0x0d, 0x0d, 0x0c, 0x0a, 0x07, 0x05, 0x02, 0x01}, /*  8, -12.0dB*/
-	{0x0e, 0x0e, 0x0c, 0x0a, 0x08, 0x05, 0x02, 0x01}, /*   9, -11.5dB*/
-	{0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01}, /*  10, -11.0dB*/
-	{0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01}, /*  11, -10.5dB*/
-	{0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, /*  12, -10.0dB*/
-	{0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, /*  13, -9.5dB*/
-	{0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01}, /*  14, -9.0dB */
-	{0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02}, /*  15, -8.5dB*/
-	{0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01}, /*  16, -8.0dB */
-	{0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02}, /*  17, -7.5dB*/
-	{0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02}, /*  18, -7.0dB */
-	{0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02}, /*  19, -6.5dB*/
-	{0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02}, /*20, -6.0dB */
-	{0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02}, /*  21, -5.5dB*/
-	{0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02}, /* 22, -5.0dB */
-	{0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02}, /*  23, -4.5dB*/
-	{0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02}, /*  24, -4.0dB */
-	{0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03}, /*  25, -3.5dB*/
-	{0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03}, /*  26, -3.0dB*/
-	{0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03}, /*  27, -2.5dB*/
-	{0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03}, /*  28, -2.0dB */
-	{0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03}, /*  29, -1.5dB*/
-	{0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03}, /*  30, -1.0dB*/
-	{0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04}, /*  31, -0.5dB*/
-	{0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04} /*  32, +0dB*/
-};
-
-u8 cck_swing_table_ch14_new[CCK_TABLE_SIZE][8] = {
-	{0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00}, /*  0, -16.0dB*/
-	{0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 1, -15.5dB*/
-	{0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, /*  2, -15.0dB*/
-	{0x0a, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 3, -14.5dB*/
-	{0x0b, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, /*  4, -14.0dB*/
-	{0x0b, 0x0b, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, /*5, -13.5dB*/
-	{0x0c, 0x0c, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, /* 6, -13.0dB*/
-	{0x0d, 0x0c, 0x0b, 0x06, 0x00, 0x00, 0x00, 0x00}, /*  7, -12.5dB*/
-	{0x0d, 0x0d, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, /* 8, -12.0dB*/
-	{0x0e, 0x0e, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, /* 9, -11.5dB*/
-	{0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00}, /* 10, -11.0dB*/
-	{0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00}, /*11, -10.5dB*/
-	{0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, /* 12, -10.0dB*/
-	{0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, /* 13, -9.5dB*/
-	{0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00}, /*14, -9.0dB */
-	{0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00}, /* 15, -8.5dB*/
-	{0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00}, /* 16, -8.0dB */
-	{0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00}, /* 17, -7.5dB*/
-	{0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00}, /* 18, -7.0dB */
-	{0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00}, /* 19, -6.5dB */
-	{0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00}, /* 20, -6.0dB */
-	{0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00}, /* 21, -5.5dB*/
-	{0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00}, /* 22, -5.0dB */
-	{0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00}, /*23, -4.5dB*/
-	{0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00}, /* 24, -4.0dB */
-	{0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00}, /* 25, -3.5dB */
-	{0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00}, /* 26, -3.0dB */
-	{0x28, 0x28, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00}, /*27, -2.5dB*/
-	{0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00}, /* 28, -2.0dB */
-	{0x2d, 0x2d, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00}, /*29, -1.5dB*/
-	{0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00}, /* 30, -1.0dB */
-	{0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00}, /* 31, -0.5dB */
-	{0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00} /* 32, +0dB	*/
-};
-
-u32 cck_swing_table_ch1_ch14_8723d[CCK_TABLE_SIZE_8723D] = {
-	0x0CD, /*0 ,    -20dB*/
-	0x0D9, 0x0E6, 0x0F3, 0x102, 0x111, 0x121, 0x132, 0x144, 0x158, 0x16C,
-	0x182, 0x198, 0x1B1, 0x1CA, 0x1E5, 0x202, 0x221, 0x241, 0x263, 0x287,
-	0x2AE, 0x2D6, 0x301, 0x32F, 0x35F, 0x392, 0x3C9, 0x402, 0x43F, 0x47F,
-	0x4C3, 0x50C, 0x558, 0x5A9, 0x5FF, 0x65A, 0x6BA, 0x720, 0x78C, 0x7FF,
-};
-
-/* JJ ADD 20161014 */
-u32 cck_swing_table_ch1_ch14_8710b[CCK_TABLE_SIZE_8710B] = {
-	0x0CD, /*0 ,    -20dB*/
-	0x0D9, 0x0E6, 0x0F3, 0x102, 0x111, 0x121, 0x132, 0x144, 0x158, 0x16C,
-	0x182, 0x198, 0x1B1, 0x1CA, 0x1E5, 0x202, 0x221, 0x241, 0x263, 0x287,
-	0x2AE, 0x2D6, 0x301, 0x32F, 0x35F, 0x392, 0x3C9, 0x402, 0x43F, 0x47F,
-	0x4C3, 0x50C, 0x558, 0x5A9, 0x5FF, 0x65A, 0x6BA, 0x720, 0x78C, 0x7FF,
-};
-
-u32 tx_scaling_table_jaguar[TXSCALE_TABLE_SIZE] = {
-	0x081, /* 0,  -12.0dB*/
-	0x088, /* 1,  -11.5dB*/
-	0x090, /* 2,  -11.0dB*/
-	0x099, /* 3,  -10.5dB*/
-	0x0A2, /* 4,  -10.0dB*/
-	0x0AC, /* 5,  -9.5dB*/
-	0x0B6, /* 6,  -9.0dB*/
-	0x0C0, /*7,  -8.5dB*/
-	0x0CC, /* 8,  -8.0dB*/
-	0x0D8, /* 9,  -7.5dB*/
-	0x0E5, /* 10, -7.0dB*/
-	0x0F2, /* 11, -6.5dB*/
-	0x101, /* 12, -6.0dB*/
-	0x110, /* 13, -5.5dB*/
-	0x120, /* 14, -5.0dB*/
-	0x131, /* 15, -4.5dB*/
-	0x143, /* 16, -4.0dB*/
-	0x156, /* 17, -3.5dB*/
-	0x16A, /* 18, -3.0dB*/
-	0x180, /* 19, -2.5dB*/
-	0x197, /* 20, -2.0dB*/
-	0x1AF, /* 21, -1.5dB*/
-	0x1C8, /* 22, -1.0dB*/
-	0x1E3, /* 23, -0.5dB*/
-	0x200, /* 24, +0  dB*/
-	0x21E, /* 25, +0.5dB*/
-	0x23E, /* 26, +1.0dB*/
-	0x261, /* 27, +1.5dB*/
-	0x285, /* 28, +2.0dB*/
-	0x2AB, /* 29, +2.5dB*/
-	0x2D3, /*30, +3.0dB*/
-	0x2FE, /* 31, +3.5dB*/
-	0x32B, /* 32, +4.0dB*/
-	0x35C, /* 33, +4.5dB*/
-	0x38E, /* 34, +5.0dB*/
-	0x3C4, /* 35, +5.5dB*/
-	0x3FE /* 36, +6.0dB	*/
-};
-
-void odm_txpowertracking_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	odm_txpowertracking_thermal_meter_init(dm);
-}
-
-static u8 get_swing_index(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 i = 0;
-	u32 bb_swing;
-	u32 swing_table_size;
-	u32 *swing_table;
-
-	if (dm->support_ic_type == ODM_RTL8188E ||
-	    dm->support_ic_type == ODM_RTL8723B ||
-	    dm->support_ic_type == ODM_RTL8192E ||
-	    dm->support_ic_type == ODM_RTL8188F ||
-	    dm->support_ic_type == ODM_RTL8703B) {
-		bb_swing = odm_get_bb_reg(dm, REG_OFDM_0_XA_TX_IQ_IMBALANCE,
-					  0xFFC00000);
-
-		swing_table = ofdm_swing_table_new;
-		swing_table_size = OFDM_TABLE_SIZE;
-	} else {
-		{
-			bb_swing = 0;
-			swing_table = ofdm_swing_table;
-			swing_table_size = OFDM_TABLE_SIZE;
-		}
-	}
-
-	for (i = 0; i < swing_table_size; ++i) {
-		u32 table_value = swing_table[i];
-
-		if (table_value >= 0x100000)
-			table_value >>= 22;
-		if (bb_swing == table_value)
-			break;
-	}
-	return i;
-}
-
-void odm_txpowertracking_thermal_meter_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 default_swing_index = get_swing_index(dm);
-	u8 p = 0;
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-	struct rtl_efuse *rtlefu = rtl_efuse(rtlpriv);
-
-	cali_info->is_txpowertracking = true;
-	cali_info->tx_powercount = 0;
-	cali_info->is_txpowertracking_init = false;
-
-	if (!dm->mp_mode)
-		cali_info->txpowertrack_control = true;
-	else
-		cali_info->txpowertrack_control = false;
-
-	if (!dm->mp_mode)
-		cali_info->txpowertrack_control = true;
-
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION, "dm txpowertrack_control = %d\n",
-		     cali_info->txpowertrack_control);
-
-	/* dm->rf_calibrate_info.txpowertrack_control = true; */
-	cali_info->thermal_value = rtlefu->eeprom_thermalmeter;
-	cali_info->thermal_value_iqk = rtlefu->eeprom_thermalmeter;
-	cali_info->thermal_value_lck = rtlefu->eeprom_thermalmeter;
-
-	if (!cali_info->default_bb_swing_index_flag) {
-		/*The index of "0 dB" in SwingTable.*/
-		if (dm->support_ic_type == ODM_RTL8188E ||
-		    dm->support_ic_type == ODM_RTL8723B ||
-		    dm->support_ic_type == ODM_RTL8192E ||
-		    dm->support_ic_type == ODM_RTL8703B) {
-			cali_info->default_ofdm_index =
-				(default_swing_index >= OFDM_TABLE_SIZE) ?
-					30 :
-					default_swing_index;
-			cali_info->default_cck_index = 20;
-		} else if (dm->support_ic_type ==
-			   ODM_RTL8188F) { /*add by Mingzhi.Guo  2015-03-23*/
-			cali_info->default_ofdm_index = 28; /*OFDM: -1dB*/
-			cali_info->default_cck_index = 20; /*CCK:-6dB*/
-		} else if (dm->support_ic_type ==
-			   ODM_RTL8723D) { /*add by zhaohe  2015-10-27*/
-			cali_info->default_ofdm_index = 28; /*OFDM: -1dB*/
-			cali_info->default_cck_index = 28; /*CCK:   -6dB*/
-		} else if (dm->support_ic_type ==
-			   ODM_RTL8710B) { /* JJ ADD 20161014 */
-			cali_info->default_ofdm_index = 28; /*OFDM: -1dB*/
-			cali_info->default_cck_index = 28; /*CCK:   -6dB*/
-		} else {
-			cali_info->default_ofdm_index =
-				(default_swing_index >= TXSCALE_TABLE_SIZE) ?
-					24 :
-					default_swing_index;
-			cali_info->default_cck_index = 24;
-		}
-		cali_info->default_bb_swing_index_flag = true;
-	}
-
-	cali_info->bb_swing_idx_cck_base = cali_info->default_cck_index;
-	cali_info->CCK_index = cali_info->default_cck_index;
-
-	for (p = ODM_RF_PATH_A; p < MAX_RF_PATH; ++p) {
-		cali_info->bb_swing_idx_ofdm_base[p] =
-			cali_info->default_ofdm_index;
-		cali_info->OFDM_index[p] = cali_info->default_ofdm_index;
-		cali_info->delta_power_index[p] = 0;
-		cali_info->delta_power_index_last[p] = 0;
-		cali_info->power_index_offset[p] = 0;
-	}
-	cali_info->modify_tx_agc_value_ofdm = 0;
-	cali_info->modify_tx_agc_value_cck = 0;
-}
-
-void odm_txpowertracking_check(void *dm_void)
-{
-	/* 2011/09/29 MH In HW integration first stage, we provide 4 different
-	 * handle to operate at the same time.
-	 * In the stage2/3, we need to prive universal interface and merge all
-	 * HW dynamic mechanism.
-	 */
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	switch (dm->support_platform) {
-	case ODM_WIN:
-		odm_txpowertracking_check_mp(dm);
-		break;
-
-	case ODM_CE:
-		odm_txpowertracking_check_ce(dm);
-		break;
-
-	case ODM_AP:
-		odm_txpowertracking_check_ap(dm);
-		break;
-
-	default:
-		break;
-	}
-}
-
-void odm_txpowertracking_check_ce(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	void *adapter = dm->adapter;
-
-	if (!(dm->support_ability & ODM_RF_TX_PWR_TRACK))
-		return;
-
-	if (!dm->rf_calibrate_info.tm_trigger) {
-		if (IS_HARDWARE_TYPE_8188E(adapter) ||
-		    IS_HARDWARE_TYPE_8188F(adapter) ||
-		    IS_HARDWARE_TYPE_8192E(adapter) ||
-		    IS_HARDWARE_TYPE_8723B(adapter) ||
-		    IS_HARDWARE_TYPE_JAGUAR(adapter) ||
-		    IS_HARDWARE_TYPE_8814A(adapter) ||
-		    IS_HARDWARE_TYPE_8703B(adapter) ||
-		    IS_HARDWARE_TYPE_8723D(adapter) ||
-		    IS_HARDWARE_TYPE_8822B(adapter) ||
-		    IS_HARDWARE_TYPE_8821C(adapter) ||
-		    (dm->support_ic_type == ODM_RTL8710B)) /* JJ ADD 20161014 */
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, RF_T_METER_NEW,
-				       (BIT(17) | BIT(16)), 0x03);
-		else
-			odm_set_rf_reg(dm, ODM_RF_PATH_A, RF_T_METER_OLD,
-				       RFREGOFFSETMASK, 0x60);
-
-		dm->rf_calibrate_info.tm_trigger = 1;
-		return;
-	}
-
-	odm_txpowertracking_callback_thermal_meter(dm);
-	dm->rf_calibrate_info.tm_trigger = 0;
-}
-
-void odm_txpowertracking_check_mp(void *dm_void) {}
-
-void odm_txpowertracking_check_ap(void *dm_void) {}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_powertracking_ce.h b/drivers/staging/rtlwifi/phydm/phydm_powertracking_ce.h
deleted file mode 100644
index eb635de..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_powertracking_ce.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMPOWERTRACKING_H__
-#define __PHYDMPOWERTRACKING_H__
-
-#define POWRTRACKING_VERSION "1.1"
-
-#define DPK_DELTA_MAPPING_NUM 13
-#define index_mapping_HP_NUM 15
-#define OFDM_TABLE_SIZE 43
-#define CCK_TABLE_SIZE 33
-#define CCK_TABLE_SIZE_88F 21
-#define TXSCALE_TABLE_SIZE 37
-#define CCK_TABLE_SIZE_8723D 41
-/* JJ ADD 20161014 */
-#define CCK_TABLE_SIZE_8710B 41
-
-#define TXPWR_TRACK_TABLE_SIZE 30
-#define DELTA_SWINGIDX_SIZE 30
-#define DELTA_SWINTSSI_SIZE 61
-#define BAND_NUM 4
-
-#define AVG_THERMAL_NUM 8
-#define HP_THERMAL_NUM 8
-#define IQK_MAC_REG_NUM 4
-#define IQK_ADDA_REG_NUM 16
-#define IQK_BB_REG_NUM_MAX 10
-
-#define IQK_BB_REG_NUM 9
-
-#define iqk_matrix_reg_num 8
-
-extern u32 ofdm_swing_table[OFDM_TABLE_SIZE];
-extern u8 cck_swing_table_ch1_ch13[CCK_TABLE_SIZE][8];
-extern u8 cck_swing_table_ch14[CCK_TABLE_SIZE][8];
-
-extern u32 ofdm_swing_table_new[OFDM_TABLE_SIZE];
-extern u8 cck_swing_table_ch1_ch13_new[CCK_TABLE_SIZE][8];
-extern u8 cck_swing_table_ch14_new[CCK_TABLE_SIZE][8];
-extern u8 cck_swing_table_ch1_ch14_88f[CCK_TABLE_SIZE_88F][16];
-extern u8 cck_swing_table_ch1_ch13_88f[CCK_TABLE_SIZE_88F][16];
-extern u8 cck_swing_table_ch14_88f[CCK_TABLE_SIZE_88F][16];
-extern u32 cck_swing_table_ch1_ch14_8723d[CCK_TABLE_SIZE_8723D];
-/* JJ ADD 20161014 */
-extern u32 cck_swing_table_ch1_ch14_8710b[CCK_TABLE_SIZE_8710B];
-
-extern u32 tx_scaling_table_jaguar[TXSCALE_TABLE_SIZE];
-
-/* <20121018, Kordan> In case fail to read TxPowerTrack.txt,
- * we use the table of 88E as the default table.
- */
-
-#define dm_check_txpowertracking odm_txpowertracking_check
-
-struct iqk_matrix_regs_setting {
-	bool is_iqk_done;
-	s32 value[3][iqk_matrix_reg_num];
-	bool is_bw_iqk_result_saved[3];
-};
-
-struct dm_rf_calibration_struct {
-	/* for tx power tracking */
-
-	u32 rega24; /* for TempCCK */
-	s32 rege94;
-	s32 rege9c;
-	s32 regeb4;
-	s32 regebc;
-
-	u8 tx_powercount;
-	bool is_txpowertracking_init;
-	bool is_txpowertracking;
-	/* for mp mode, turn off txpwrtracking as default */
-	u8 txpowertrack_control;
-	u8 tm_trigger;
-	u8 internal_pa_5g[2]; /* pathA / pathB */
-
-	u8 thermal_meter
-		[2]; /* thermal_meter, index 0 for RFIC0, and 1 for RFIC1 */
-	u8 thermal_value;
-	u8 thermal_value_lck;
-	u8 thermal_value_iqk;
-	s8 thermal_value_delta; /* delta of thermal_value and efuse thermal */
-	u8 thermal_value_dpk;
-	u8 thermal_value_avg[AVG_THERMAL_NUM];
-	u8 thermal_value_avg_index;
-	u8 thermal_value_rx_gain;
-	u8 thermal_value_crystal;
-	u8 thermal_value_dpk_store;
-	u8 thermal_value_dpk_track;
-	bool txpowertracking_in_progress;
-
-	bool is_reloadtxpowerindex;
-	u8 is_rf_pi_enable;
-	u32 txpowertracking_callback_cnt; /* cosa add for debug */
-
-	/* ---------------------- Tx power Tracking ------------------------- */
-	u8 is_cck_in_ch14;
-	u8 CCK_index;
-	u8 OFDM_index[MAX_RF_PATH];
-	s8 power_index_offset[MAX_RF_PATH];
-	s8 delta_power_index[MAX_RF_PATH];
-	s8 delta_power_index_last[MAX_RF_PATH];
-	bool is_tx_power_changed;
-	s8 xtal_offset;
-	s8 xtal_offset_last;
-
-	u8 thermal_value_hp[HP_THERMAL_NUM];
-	u8 thermal_value_hp_index;
-	struct iqk_matrix_regs_setting
-		iqk_matrix_reg_setting[IQK_MATRIX_SETTINGS_NUM];
-	u8 delta_lck;
-	s8 bb_swing_diff_2g, bb_swing_diff_5g; /* Unit: dB */
-	u8 delta_swing_table_idx_2g_cck_a_p[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2g_cck_a_n[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2g_cck_b_p[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2g_cck_b_n[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2g_cck_c_p[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2g_cck_c_n[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2g_cck_d_p[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2g_cck_d_n[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2ga_p[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2ga_n[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2gb_p[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2gb_n[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2gc_p[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2gc_n[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2gd_p[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2gd_n[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_5ga_p[BAND_NUM][DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_5ga_n[BAND_NUM][DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_5gb_p[BAND_NUM][DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_5gb_n[BAND_NUM][DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_5gc_p[BAND_NUM][DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_5gc_n[BAND_NUM][DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_5gd_p[BAND_NUM][DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_5gd_n[BAND_NUM][DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_tssi_table_2g_cck_a[DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_2g_cck_b[DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_2g_cck_c[DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_2g_cck_d[DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_2ga[DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_2gb[DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_2gc[DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_2gd[DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_5ga[BAND_NUM][DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_5gb[BAND_NUM][DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_5gc[BAND_NUM][DELTA_SWINTSSI_SIZE];
-	u8 delta_swing_tssi_table_5gd[BAND_NUM][DELTA_SWINTSSI_SIZE];
-	s8 delta_swing_table_xtal_p[DELTA_SWINGIDX_SIZE];
-	s8 delta_swing_table_xtal_n[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2ga_p_8188e[DELTA_SWINGIDX_SIZE];
-	u8 delta_swing_table_idx_2ga_n_8188e[DELTA_SWINGIDX_SIZE];
-
-	u8 bb_swing_idx_ofdm[MAX_RF_PATH];
-	u8 bb_swing_idx_ofdm_current;
-	u8 bb_swing_idx_ofdm_base[MAX_RF_PATH];
-	bool default_bb_swing_index_flag;
-	bool bb_swing_flag_ofdm;
-	u8 bb_swing_idx_cck;
-	u8 bb_swing_idx_cck_current;
-	u8 bb_swing_idx_cck_base;
-	u8 default_ofdm_index;
-	u8 default_cck_index;
-	bool bb_swing_flag_cck;
-
-	s8 absolute_ofdm_swing_idx[MAX_RF_PATH];
-	s8 remnant_ofdm_swing_idx[MAX_RF_PATH];
-	s8 absolute_cck_swing_idx[MAX_RF_PATH];
-	s8 remnant_cck_swing_idx;
-	s8 modify_tx_agc_value; /*Remnat compensate value at tx_agc */
-	bool modify_tx_agc_flag_path_a;
-	bool modify_tx_agc_flag_path_b;
-	bool modify_tx_agc_flag_path_c;
-	bool modify_tx_agc_flag_path_d;
-	bool modify_tx_agc_flag_path_a_cck;
-
-	s8 kfree_offset[MAX_RF_PATH];
-
-	/* ------------------------------------------------------------------ */
-
-	/* for IQK */
-	u32 regc04;
-	u32 reg874;
-	u32 regc08;
-	u32 regb68;
-	u32 regb6c;
-	u32 reg870;
-	u32 reg860;
-	u32 reg864;
-
-	bool is_iqk_initialized;
-	bool is_lck_in_progress;
-	bool is_antenna_detected;
-	bool is_need_iqk;
-	bool is_iqk_in_progress;
-	bool is_iqk_pa_off;
-	u8 delta_iqk;
-	u32 ADDA_backup[IQK_ADDA_REG_NUM];
-	u32 IQK_MAC_backup[IQK_MAC_REG_NUM];
-	u32 IQK_BB_backup_recover[9];
-	/* { {S1: 0xc94, 0xc80, 0xc4c} , {S0: 0xc9c, 0xc88, 0xc4c}} */
-	u32 IQK_BB_backup[IQK_BB_REG_NUM];
-	u32 tx_iqc_8723b[2][3][2];
-	/* { {S1: 0xc14, 0xca0} ,           {S0: 0xc14, 0xca0}} */
-	u32 rx_iqc_8723b[2][2][2];
-	/* { {S1: 0xc94, 0xc80, 0xc4c} , {S0: 0xc9c, 0xc88, 0xc4c}}*/
-	u32 tx_iqc_8703b[3][2];
-	/* { {S1: 0xc14, 0xca0} ,           {S0: 0xc14, 0xca0}}*/
-	u32 rx_iqc_8703b[2][2];
-	/* { {S1: 0xc94, 0xc80, 0xc4c} , {S0: 0xc9c, 0xc88, 0xc4c}}*/
-	u32 tx_iqc_8723d[2][3][2];
-	/* { {S1: 0xc14, 0xca0} ,           {S0: 0xc14, 0xca0}}*/
-	u32 rx_iqc_8723d[2][2][2];
-	/* JJ ADD 20161014 */
-	/* { {S1: 0xc94, 0xc80, 0xc4c} , {S0: 0xc9c, 0xc88, 0xc4c}}*/
-	u32 tx_iqc_8710b[2][3][2];
-	/* { {S1: 0xc14, 0xca0} ,           {S0: 0xc14, 0xca0}}*/
-	u32 rx_iqc_8710b[2][2][2];
-
-	u8 iqk_step;
-	u8 kcount;
-	u8 retry_count[4][2]; /* [4]: path ABCD, [2] TXK, RXK */
-	bool is_mp_mode;
-
-	/* <James> IQK time measurement */
-	u64 iqk_start_time;
-	u64 iqk_progressing_time;
-	u64 iqk_total_progressing_time;
-
-	u32 lok_result;
-
-	/* for APK */
-	u32 ap_koutput[2][2]; /* path A/B; output1_1a/output1_2a */
-	u8 is_ap_kdone;
-	u8 is_apk_thermal_meter_ignore;
-
-	/* DPK */
-	bool is_dpk_fail;
-	u8 is_dp_done;
-	u8 is_dp_path_aok;
-	u8 is_dp_path_bok;
-
-	u32 tx_lok[2];
-	u32 dpk_tx_agc;
-	s32 dpk_gain;
-	u32 dpk_thermal[4];
-	s8 modify_tx_agc_value_ofdm;
-	s8 modify_tx_agc_value_cck;
-
-	/*Add by Yuchen for Kfree Phydm*/
-	u8 reg_rf_kfree_enable; /*for registry*/
-	u8 rf_kfree_enable; /*for efuse enable check*/
-};
-
-void odm_txpowertracking_check(void *dm_void);
-
-void odm_txpowertracking_init(void *dm_void);
-
-void odm_txpowertracking_check_ap(void *dm_void);
-
-void odm_txpowertracking_thermal_meter_init(void *dm_void);
-
-void odm_txpowertracking_init(void *dm_void);
-
-void odm_txpowertracking_check_mp(void *dm_void);
-
-void odm_txpowertracking_check_ce(void *dm_void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_pre_define.h b/drivers/staging/rtlwifi/phydm/phydm_pre_define.h
deleted file mode 100644
index ce9a076..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_pre_define.h
+++ /dev/null
@@ -1,602 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMPREDEFINE_H__
-#define __PHYDMPREDEFINE_H__
-
-/* 1 ============================================================
- * 1  Definition
- * 1 ============================================================
- */
-
-#define PHYDM_CODE_BASE "PHYDM_TRUNK"
-#define PHYDM_RELEASE_DATE "00000000"
-
-/* Max path of IC */
-#define MAX_PATH_NUM_8188E 1
-#define MAX_PATH_NUM_8192E 2
-#define MAX_PATH_NUM_8723B 1
-#define MAX_PATH_NUM_8812A 2
-#define MAX_PATH_NUM_8821A 1
-#define MAX_PATH_NUM_8814A 4
-#define MAX_PATH_NUM_8822B 2
-#define MAX_PATH_NUM_8821B 2
-#define MAX_PATH_NUM_8703B 1
-#define MAX_PATH_NUM_8188F 1
-#define MAX_PATH_NUM_8723D 1
-#define MAX_PATH_NUM_8197F 2
-#define MAX_PATH_NUM_8821C 1
-/* JJ ADD 20161014 */
-#define MAX_PATH_NUM_8710B 1
-
-/* Max RF path */
-#define ODM_RF_PATH_MAX 2
-#define ODM_RF_PATH_MAX_JAGUAR 4
-
-/*Bit define path*/
-#define PHYDM_A BIT(0)
-#define PHYDM_B BIT(1)
-#define PHYDM_C BIT(2)
-#define PHYDM_D BIT(3)
-#define PHYDM_AB (BIT(0) | BIT(1))
-#define PHYDM_AC (BIT(0) | BIT(2))
-#define PHYDM_AD (BIT(0) | BIT(3))
-#define PHYDM_BC (BIT(1) | BIT(2))
-#define PHYDM_BD (BIT(1) | BIT(3))
-#define PHYDM_CD (BIT(2) | BIT(3))
-#define PHYDM_ABC (BIT(0) | BIT(1) | BIT(2))
-#define PHYDM_ABD (BIT(0) | BIT(1) | BIT(3))
-#define PHYDM_ACD (BIT(0) | BIT(2) | BIT(3))
-#define PHYDM_BCD (BIT(1) | BIT(2) | BIT(3))
-#define PHYDM_ABCD (BIT(0) | BIT(1) | BIT(2) | BIT(3))
-
-/* number of entry */
-/* defined in wifi.h (32+1) */
-#define ODM_ASSOCIATE_ENTRY_NUM ASSOCIATE_ENTRY_NUM
-
-#define RX_SMOOTH_FACTOR 20
-
-/* -----MGN rate--------------------------------- */
-
-enum ODM_MGN_RATE {
-	ODM_MGN_1M = 0x02,
-	ODM_MGN_2M = 0x04,
-	ODM_MGN_5_5M = 0x0B,
-	ODM_MGN_6M = 0x0C,
-	ODM_MGN_9M = 0x12,
-	ODM_MGN_11M = 0x16,
-	ODM_MGN_12M = 0x18,
-	ODM_MGN_18M = 0x24,
-	ODM_MGN_24M = 0x30,
-	ODM_MGN_36M = 0x48,
-	ODM_MGN_48M = 0x60,
-	ODM_MGN_54M = 0x6C,
-	ODM_MGN_MCS32 = 0x7F,
-	ODM_MGN_MCS0,
-	ODM_MGN_MCS1,
-	ODM_MGN_MCS2,
-	ODM_MGN_MCS3,
-	ODM_MGN_MCS4,
-	ODM_MGN_MCS5,
-	ODM_MGN_MCS6,
-	ODM_MGN_MCS7,
-	ODM_MGN_MCS8,
-	ODM_MGN_MCS9,
-	ODM_MGN_MCS10,
-	ODM_MGN_MCS11,
-	ODM_MGN_MCS12,
-	ODM_MGN_MCS13,
-	ODM_MGN_MCS14,
-	ODM_MGN_MCS15,
-	ODM_MGN_MCS16,
-	ODM_MGN_MCS17,
-	ODM_MGN_MCS18,
-	ODM_MGN_MCS19,
-	ODM_MGN_MCS20,
-	ODM_MGN_MCS21,
-	ODM_MGN_MCS22,
-	ODM_MGN_MCS23,
-	ODM_MGN_MCS24,
-	ODM_MGN_MCS25,
-	ODM_MGN_MCS26,
-	ODM_MGN_MCS27,
-	ODM_MGN_MCS28,
-	ODM_MGN_MCS29,
-	ODM_MGN_MCS30,
-	ODM_MGN_MCS31,
-	ODM_MGN_VHT1SS_MCS0,
-	ODM_MGN_VHT1SS_MCS1,
-	ODM_MGN_VHT1SS_MCS2,
-	ODM_MGN_VHT1SS_MCS3,
-	ODM_MGN_VHT1SS_MCS4,
-	ODM_MGN_VHT1SS_MCS5,
-	ODM_MGN_VHT1SS_MCS6,
-	ODM_MGN_VHT1SS_MCS7,
-	ODM_MGN_VHT1SS_MCS8,
-	ODM_MGN_VHT1SS_MCS9,
-	ODM_MGN_VHT2SS_MCS0,
-	ODM_MGN_VHT2SS_MCS1,
-	ODM_MGN_VHT2SS_MCS2,
-	ODM_MGN_VHT2SS_MCS3,
-	ODM_MGN_VHT2SS_MCS4,
-	ODM_MGN_VHT2SS_MCS5,
-	ODM_MGN_VHT2SS_MCS6,
-	ODM_MGN_VHT2SS_MCS7,
-	ODM_MGN_VHT2SS_MCS8,
-	ODM_MGN_VHT2SS_MCS9,
-	ODM_MGN_VHT3SS_MCS0,
-	ODM_MGN_VHT3SS_MCS1,
-	ODM_MGN_VHT3SS_MCS2,
-	ODM_MGN_VHT3SS_MCS3,
-	ODM_MGN_VHT3SS_MCS4,
-	ODM_MGN_VHT3SS_MCS5,
-	ODM_MGN_VHT3SS_MCS6,
-	ODM_MGN_VHT3SS_MCS7,
-	ODM_MGN_VHT3SS_MCS8,
-	ODM_MGN_VHT3SS_MCS9,
-	ODM_MGN_VHT4SS_MCS0,
-	ODM_MGN_VHT4SS_MCS1,
-	ODM_MGN_VHT4SS_MCS2,
-	ODM_MGN_VHT4SS_MCS3,
-	ODM_MGN_VHT4SS_MCS4,
-	ODM_MGN_VHT4SS_MCS5,
-	ODM_MGN_VHT4SS_MCS6,
-	ODM_MGN_VHT4SS_MCS7,
-	ODM_MGN_VHT4SS_MCS8,
-	ODM_MGN_VHT4SS_MCS9,
-	ODM_MGN_UNKNOWN
-};
-
-#define ODM_MGN_MCS0_SG 0xc0
-#define ODM_MGN_MCS1_SG 0xc1
-#define ODM_MGN_MCS2_SG 0xc2
-#define ODM_MGN_MCS3_SG 0xc3
-#define ODM_MGN_MCS4_SG 0xc4
-#define ODM_MGN_MCS5_SG 0xc5
-#define ODM_MGN_MCS6_SG 0xc6
-#define ODM_MGN_MCS7_SG 0xc7
-#define ODM_MGN_MCS8_SG 0xc8
-#define ODM_MGN_MCS9_SG 0xc9
-#define ODM_MGN_MCS10_SG 0xca
-#define ODM_MGN_MCS11_SG 0xcb
-#define ODM_MGN_MCS12_SG 0xcc
-#define ODM_MGN_MCS13_SG 0xcd
-#define ODM_MGN_MCS14_SG 0xce
-#define ODM_MGN_MCS15_SG 0xcf
-
-/* -----DESC rate--------------------------------- */
-
-#define ODM_RATEMCS15_SG 0x1c
-#define ODM_RATEMCS32 0x20
-
-/* CCK Rates, TxHT = 0 */
-#define ODM_RATE1M 0x00
-#define ODM_RATE2M 0x01
-#define ODM_RATE5_5M 0x02
-#define ODM_RATE11M 0x03
-/* OFDM Rates, TxHT = 0 */
-#define ODM_RATE6M 0x04
-#define ODM_RATE9M 0x05
-#define ODM_RATE12M 0x06
-#define ODM_RATE18M 0x07
-#define ODM_RATE24M 0x08
-#define ODM_RATE36M 0x09
-#define ODM_RATE48M 0x0A
-#define ODM_RATE54M 0x0B
-/* MCS Rates, TxHT = 1 */
-#define ODM_RATEMCS0 0x0C
-#define ODM_RATEMCS1 0x0D
-#define ODM_RATEMCS2 0x0E
-#define ODM_RATEMCS3 0x0F
-#define ODM_RATEMCS4 0x10
-#define ODM_RATEMCS5 0x11
-#define ODM_RATEMCS6 0x12
-#define ODM_RATEMCS7 0x13
-#define ODM_RATEMCS8 0x14
-#define ODM_RATEMCS9 0x15
-#define ODM_RATEMCS10 0x16
-#define ODM_RATEMCS11 0x17
-#define ODM_RATEMCS12 0x18
-#define ODM_RATEMCS13 0x19
-#define ODM_RATEMCS14 0x1A
-#define ODM_RATEMCS15 0x1B
-#define ODM_RATEMCS16 0x1C
-#define ODM_RATEMCS17 0x1D
-#define ODM_RATEMCS18 0x1E
-#define ODM_RATEMCS19 0x1F
-#define ODM_RATEMCS20 0x20
-#define ODM_RATEMCS21 0x21
-#define ODM_RATEMCS22 0x22
-#define ODM_RATEMCS23 0x23
-#define ODM_RATEMCS24 0x24
-#define ODM_RATEMCS25 0x25
-#define ODM_RATEMCS26 0x26
-#define ODM_RATEMCS27 0x27
-#define ODM_RATEMCS28 0x28
-#define ODM_RATEMCS29 0x29
-#define ODM_RATEMCS30 0x2A
-#define ODM_RATEMCS31 0x2B
-#define ODM_RATEVHTSS1MCS0 0x2C
-#define ODM_RATEVHTSS1MCS1 0x2D
-#define ODM_RATEVHTSS1MCS2 0x2E
-#define ODM_RATEVHTSS1MCS3 0x2F
-#define ODM_RATEVHTSS1MCS4 0x30
-#define ODM_RATEVHTSS1MCS5 0x31
-#define ODM_RATEVHTSS1MCS6 0x32
-#define ODM_RATEVHTSS1MCS7 0x33
-#define ODM_RATEVHTSS1MCS8 0x34
-#define ODM_RATEVHTSS1MCS9 0x35
-#define ODM_RATEVHTSS2MCS0 0x36
-#define ODM_RATEVHTSS2MCS1 0x37
-#define ODM_RATEVHTSS2MCS2 0x38
-#define ODM_RATEVHTSS2MCS3 0x39
-#define ODM_RATEVHTSS2MCS4 0x3A
-#define ODM_RATEVHTSS2MCS5 0x3B
-#define ODM_RATEVHTSS2MCS6 0x3C
-#define ODM_RATEVHTSS2MCS7 0x3D
-#define ODM_RATEVHTSS2MCS8 0x3E
-#define ODM_RATEVHTSS2MCS9 0x3F
-#define ODM_RATEVHTSS3MCS0 0x40
-#define ODM_RATEVHTSS3MCS1 0x41
-#define ODM_RATEVHTSS3MCS2 0x42
-#define ODM_RATEVHTSS3MCS3 0x43
-#define ODM_RATEVHTSS3MCS4 0x44
-#define ODM_RATEVHTSS3MCS5 0x45
-#define ODM_RATEVHTSS3MCS6 0x46
-#define ODM_RATEVHTSS3MCS7 0x47
-#define ODM_RATEVHTSS3MCS8 0x48
-#define ODM_RATEVHTSS3MCS9 0x49
-#define ODM_RATEVHTSS4MCS0 0x4A
-#define ODM_RATEVHTSS4MCS1 0x4B
-#define ODM_RATEVHTSS4MCS2 0x4C
-#define ODM_RATEVHTSS4MCS3 0x4D
-#define ODM_RATEVHTSS4MCS4 0x4E
-#define ODM_RATEVHTSS4MCS5 0x4F
-#define ODM_RATEVHTSS4MCS6 0x50
-#define ODM_RATEVHTSS4MCS7 0x51
-#define ODM_RATEVHTSS4MCS8 0x52
-#define ODM_RATEVHTSS4MCS9 0x53
-
-#define ODM_NUM_RATE_IDX (ODM_RATEVHTSS4MCS9 + 1)
-
-/* 1 ============================================================
- * 1  enumeration
- * 1 ============================================================
- */
-
-/*	ODM_CMNINFO_INTERFACE */
-enum odm_interface {
-	ODM_ITRF_PCIE = 0x1,
-	ODM_ITRF_USB = 0x2,
-	ODM_ITRF_SDIO = 0x4,
-	ODM_ITRF_ALL = 0x7,
-};
-
-/* ODM_CMNINFO_IC_TYPE */
-enum odm_ic_type {
-	ODM_RTL8188E = BIT(0),
-	ODM_RTL8812 = BIT(1),
-	ODM_RTL8821 = BIT(2),
-	ODM_RTL8192E = BIT(3),
-	ODM_RTL8723B = BIT(4),
-	ODM_RTL8814A = BIT(5),
-	ODM_RTL8881A = BIT(6),
-	ODM_RTL8822B = BIT(7),
-	ODM_RTL8703B = BIT(8),
-	ODM_RTL8195A = BIT(9),
-	ODM_RTL8188F = BIT(10),
-	ODM_RTL8723D = BIT(11),
-	ODM_RTL8197F = BIT(12),
-	ODM_RTL8821C = BIT(13),
-	ODM_RTL8814B = BIT(14),
-	ODM_RTL8198F = BIT(15),
-	/* JJ ADD 20161014 */
-	ODM_RTL8710B = BIT(16),
-};
-
-/* JJ ADD 20161014 */
-#define ODM_IC_1SS                                                             \
-	(ODM_RTL8188E | ODM_RTL8188F | ODM_RTL8723B | ODM_RTL8703B |           \
-	 ODM_RTL8723D | ODM_RTL8881A | ODM_RTL8821 | ODM_RTL8821C |            \
-	 ODM_RTL8195A | ODM_RTL8710B)
-#define ODM_IC_2SS (ODM_RTL8192E | ODM_RTL8197F | ODM_RTL8812 | ODM_RTL8822B)
-#define ODM_IC_3SS (ODM_RTL8814A)
-#define ODM_IC_4SS (ODM_RTL8814B | ODM_RTL8198F)
-
-/* JJ ADD 20161014 */
-#define ODM_IC_11N_SERIES                                                      \
-	(ODM_RTL8188E | ODM_RTL8192E | ODM_RTL8723B | ODM_RTL8703B |           \
-	 ODM_RTL8188F | ODM_RTL8723D | ODM_RTL8197F | ODM_RTL8710B)
-#define ODM_IC_11AC_SERIES                                                     \
-	(ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8814A | ODM_RTL8881A |             \
-	 ODM_RTL8822B | ODM_RTL8821C)
-#define ODM_IC_11AC_1_SERIES (ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8881A)
-#define ODM_IC_11AC_2_SERIES (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8821C)
-#define ODM_IC_TXBF_SUPPORT                                                    \
-	(ODM_RTL8192E | ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8814A |             \
-	 ODM_RTL8881A | ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C)
-#define ODM_IC_11N_GAIN_IDX_EDCCA                                              \
-	(ODM_RTL8195A | ODM_RTL8703B | ODM_RTL8188F | ODM_RTL8723D |           \
-	 ODM_RTL8197F | ODM_RTL8710B)
-#define ODM_IC_11AC_GAIN_IDX_EDCCA (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8821C)
-#define ODM_IC_PHY_STATUE_NEW_TYPE                                             \
-	(ODM_RTL8197F | ODM_RTL8822B | ODM_RTL8723D | ODM_RTL8821C |           \
-	 ODM_RTL8710B)
-
-#define PHYDM_IC_8051_SERIES                                                   \
-	(ODM_RTL8881A | ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8188E |             \
-	 ODM_RTL8192E | ODM_RTL8723B | ODM_RTL8703B | ODM_RTL8188F)
-#define PHYDM_IC_3081_SERIES                                                   \
-	(ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C)
-
-#define PHYDM_IC_SUPPORT_LA_MODE                                               \
-	(ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C)
-
-/* JJ ADD 20161014 */
-
-/* ODM_CMNINFO_CUT_VER */
-enum odm_cut_version {
-	ODM_CUT_A = 0,
-	ODM_CUT_B = 1,
-	ODM_CUT_C = 2,
-	ODM_CUT_D = 3,
-	ODM_CUT_E = 4,
-	ODM_CUT_F = 5,
-
-	ODM_CUT_I = 8,
-	ODM_CUT_J = 9,
-	ODM_CUT_K = 10,
-	ODM_CUT_TEST = 15,
-};
-
-/* ODM_CMNINFO_FAB_VER */
-enum odm_fab {
-	ODM_TSMC = 0,
-	ODM_UMC = 1,
-};
-
-/* ODM_CMNINFO_RF_TYPE
- *
- * For example 1T2R (A+AB = BIT(0)|BIT(4)|BIT(5))
- */
-enum odm_rf_path {
-	ODM_RF_A = BIT(0),
-	ODM_RF_B = BIT(1),
-	ODM_RF_C = BIT(2),
-	ODM_RF_D = BIT(3),
-};
-
-enum odm_rf_tx_num {
-	ODM_1T = 1,
-	ODM_2T = 2,
-	ODM_3T = 3,
-	ODM_4T = 4,
-};
-
-enum odm_rf_type {
-	ODM_1T1R,
-	ODM_1T2R,
-	ODM_2T2R,
-	ODM_2T2R_GREEN,
-	ODM_2T3R,
-	ODM_2T4R,
-	ODM_3T3R,
-	ODM_3T4R,
-	ODM_4T4R,
-	ODM_XTXR
-};
-
-enum odm_mac_phy_mode {
-	ODM_SMSP = 0,
-	ODM_DMSP = 1,
-	ODM_DMDP = 2,
-};
-
-enum odm_bt_coexist {
-	ODM_BT_BUSY = 1,
-	ODM_BT_ON = 2,
-	ODM_BT_OFF = 3,
-	ODM_BT_NONE = 4,
-};
-
-/* ODM_CMNINFO_OP_MODE */
-enum odm_operation_mode {
-	ODM_NO_LINK = BIT(0),
-	ODM_LINK = BIT(1),
-	ODM_SCAN = BIT(2),
-	ODM_POWERSAVE = BIT(3),
-	ODM_AP_MODE = BIT(4),
-	ODM_CLIENT_MODE = BIT(5),
-	ODM_AD_HOC = BIT(6),
-	ODM_WIFI_DIRECT = BIT(7),
-	ODM_WIFI_DISPLAY = BIT(8),
-};
-
-/* ODM_CMNINFO_WM_MODE */
-enum odm_wireless_mode {
-	ODM_WM_UNKNOWN = 0x0,
-	ODM_WM_B = BIT(0),
-	ODM_WM_G = BIT(1),
-	ODM_WM_A = BIT(2),
-	ODM_WM_N24G = BIT(3),
-	ODM_WM_N5G = BIT(4),
-	ODM_WM_AUTO = BIT(5),
-	ODM_WM_AC = BIT(6),
-};
-
-/* ODM_CMNINFO_BAND */
-enum odm_band_type {
-	ODM_BAND_2_4G = 0,
-	ODM_BAND_5G,
-	ODM_BAND_ON_BOTH,
-	ODM_BANDMAX
-};
-
-/* ODM_CMNINFO_SEC_CHNL_OFFSET */
-enum phydm_sec_chnl_offset {
-	PHYDM_DONT_CARE = 0,
-	PHYDM_BELOW = 1,
-	PHYDM_ABOVE = 2
-};
-
-/* ODM_CMNINFO_SEC_MODE */
-enum odm_security {
-	ODM_SEC_OPEN = 0,
-	ODM_SEC_WEP40 = 1,
-	ODM_SEC_TKIP = 2,
-	ODM_SEC_RESERVE = 3,
-	ODM_SEC_AESCCMP = 4,
-	ODM_SEC_WEP104 = 5,
-	ODM_WEP_WPA_MIXED = 6, /* WEP + WPA */
-	ODM_SEC_SMS4 = 7,
-};
-
-/* ODM_CMNINFO_BW */
-enum odm_bw {
-	ODM_BW20M = 0,
-	ODM_BW40M = 1,
-	ODM_BW80M = 2,
-	ODM_BW160M = 3,
-	ODM_BW5M = 4,
-	ODM_BW10M = 5,
-	ODM_BW_MAX = 6
-};
-
-/* ODM_CMNINFO_CHNL */
-
-/* ODM_CMNINFO_BOARD_TYPE */
-enum odm_board_type {
-	ODM_BOARD_DEFAULT = 0, /* The DEFAULT case. */
-	ODM_BOARD_MINICARD = BIT(0), /* 0 = non-mini card, 1= mini card. */
-	ODM_BOARD_SLIM = BIT(1), /* 0 = non-slim card, 1 = slim card */
-	ODM_BOARD_BT = BIT(2), /* 0 = without BT card, 1 = with BT */
-	ODM_BOARD_EXT_PA =
-		BIT(3), /* 0 = no 2G ext-PA, 1 = existing 2G ext-PA */
-	ODM_BOARD_EXT_LNA =
-		BIT(4), /* 0 = no 2G ext-LNA, 1 = existing 2G ext-LNA */
-	ODM_BOARD_EXT_TRSW =
-		BIT(5), /* 0 = no ext-TRSW, 1 = existing ext-TRSW */
-	ODM_BOARD_EXT_PA_5G =
-		BIT(6), /* 0 = no 5G ext-PA, 1 = existing 5G ext-PA */
-	ODM_BOARD_EXT_LNA_5G =
-		BIT(7), /* 0 = no 5G ext-LNA, 1 = existing 5G ext-LNA */
-};
-
-enum odm_package_type {
-	ODM_PACKAGE_DEFAULT = 0,
-	ODM_PACKAGE_QFN68 = BIT(0),
-	ODM_PACKAGE_TFBGA90 = BIT(1),
-	ODM_PACKAGE_TFBGA79 = BIT(2),
-};
-
-enum odm_type_gpa {
-	TYPE_GPA0 = 0x0000,
-	TYPE_GPA1 = 0x0055,
-	TYPE_GPA2 = 0x00AA,
-	TYPE_GPA3 = 0x00FF,
-	TYPE_GPA4 = 0x5500,
-	TYPE_GPA5 = 0x5555,
-	TYPE_GPA6 = 0x55AA,
-	TYPE_GPA7 = 0x55FF,
-	TYPE_GPA8 = 0xAA00,
-	TYPE_GPA9 = 0xAA55,
-	TYPE_GPA10 = 0xAAAA,
-	TYPE_GPA11 = 0xAAFF,
-	TYPE_GPA12 = 0xFF00,
-	TYPE_GPA13 = 0xFF55,
-	TYPE_GPA14 = 0xFFAA,
-	TYPE_GPA15 = 0xFFFF,
-};
-
-enum odm_type_apa {
-	TYPE_APA0 = 0x0000,
-	TYPE_APA1 = 0x0055,
-	TYPE_APA2 = 0x00AA,
-	TYPE_APA3 = 0x00FF,
-	TYPE_APA4 = 0x5500,
-	TYPE_APA5 = 0x5555,
-	TYPE_APA6 = 0x55AA,
-	TYPE_APA7 = 0x55FF,
-	TYPE_APA8 = 0xAA00,
-	TYPE_APA9 = 0xAA55,
-	TYPE_APA10 = 0xAAAA,
-	TYPE_APA11 = 0xAAFF,
-	TYPE_APA12 = 0xFF00,
-	TYPE_APA13 = 0xFF55,
-	TYPE_APA14 = 0xFFAA,
-	TYPE_APA15 = 0xFFFF,
-};
-
-enum odm_type_glna {
-	TYPE_GLNA0 = 0x0000,
-	TYPE_GLNA1 = 0x0055,
-	TYPE_GLNA2 = 0x00AA,
-	TYPE_GLNA3 = 0x00FF,
-	TYPE_GLNA4 = 0x5500,
-	TYPE_GLNA5 = 0x5555,
-	TYPE_GLNA6 = 0x55AA,
-	TYPE_GLNA7 = 0x55FF,
-	TYPE_GLNA8 = 0xAA00,
-	TYPE_GLNA9 = 0xAA55,
-	TYPE_GLNA10 = 0xAAAA,
-	TYPE_GLNA11 = 0xAAFF,
-	TYPE_GLNA12 = 0xFF00,
-	TYPE_GLNA13 = 0xFF55,
-	TYPE_GLNA14 = 0xFFAA,
-	TYPE_GLNA15 = 0xFFFF,
-};
-
-enum odm_type_alna {
-	TYPE_ALNA0 = 0x0000,
-	TYPE_ALNA1 = 0x0055,
-	TYPE_ALNA2 = 0x00AA,
-	TYPE_ALNA3 = 0x00FF,
-	TYPE_ALNA4 = 0x5500,
-	TYPE_ALNA5 = 0x5555,
-	TYPE_ALNA6 = 0x55AA,
-	TYPE_ALNA7 = 0x55FF,
-	TYPE_ALNA8 = 0xAA00,
-	TYPE_ALNA9 = 0xAA55,
-	TYPE_ALNA10 = 0xAAAA,
-	TYPE_ALNA11 = 0xAAFF,
-	TYPE_ALNA12 = 0xFF00,
-	TYPE_ALNA13 = 0xFF55,
-	TYPE_ALNA14 = 0xFFAA,
-	TYPE_ALNA15 = 0xFFFF,
-};
-
-enum odm_rf_radio_path {
-	ODM_RF_PATH_A = 0, /* Radio path A */
-	ODM_RF_PATH_B = 1, /* Radio path B */
-	ODM_RF_PATH_C = 2, /* Radio path C */
-	ODM_RF_PATH_D = 3, /* Radio path D */
-	ODM_RF_PATH_AB,
-	ODM_RF_PATH_AC,
-	ODM_RF_PATH_AD,
-	ODM_RF_PATH_BC,
-	ODM_RF_PATH_BD,
-	ODM_RF_PATH_CD,
-	ODM_RF_PATH_ABC,
-	ODM_RF_PATH_ACD,
-	ODM_RF_PATH_BCD,
-	ODM_RF_PATH_ABCD,
-	/* ODM_RF_PATH_MAX,    */ /* Max RF number 90 support */
-};
-
-enum odm_parameter_init {
-	ODM_PRE_SETTING = 0,
-	ODM_POST_SETTING = 1,
-};
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_precomp.h b/drivers/staging/rtlwifi/phydm/phydm_precomp.h
deleted file mode 100644
index 39988d5..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_precomp.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __ODM_PRECOMP_H__
-#define __ODM_PRECOMP_H__
-
-#include "phydm_types.h"
-
-/* 2 Config Flags and Structs - defined by each ODM type */
-
-#include "../wifi.h"
-#include "rtl_phydm.h"
-
-/* 2 OutSrc Header Files */
-
-#include "phydm.h"
-#include "phydm_hwconfig.h"
-#include "phydm_debug.h"
-#include "phydm_regdefine11ac.h"
-#include "phydm_regdefine11n.h"
-#include "phydm_interface.h"
-#include "phydm_reg.h"
-
-#include "phydm_adc_sampling.h"
-
-/* JJ ADD 20161014 */
-
-#include "../halmac/halmac_reg2.h"
-
-#define LDPC_HT_ENABLE_RX BIT(0)
-#define LDPC_HT_ENABLE_TX BIT(1)
-#define LDPC_HT_TEST_TX_ENABLE BIT(2)
-#define LDPC_HT_CAP_TX BIT(3)
-
-#define STBC_HT_ENABLE_RX BIT(0)
-#define STBC_HT_ENABLE_TX BIT(1)
-#define STBC_HT_TEST_TX_ENABLE BIT(2)
-#define STBC_HT_CAP_TX BIT(3)
-
-#define LDPC_VHT_ENABLE_RX BIT(0)
-#define LDPC_VHT_ENABLE_TX BIT(1)
-#define LDPC_VHT_TEST_TX_ENABLE BIT(2)
-#define LDPC_VHT_CAP_TX BIT(3)
-
-#define STBC_VHT_ENABLE_RX BIT(0)
-#define STBC_VHT_ENABLE_TX BIT(1)
-#define STBC_VHT_TEST_TX_ENABLE BIT(2)
-#define STBC_VHT_CAP_TX BIT(3)
-
-#include "rtl8822b/halhwimg8822b_mac.h"
-#include "rtl8822b/halhwimg8822b_rf.h"
-#include "rtl8822b/halhwimg8822b_bb.h"
-#include "rtl8822b/phydm_regconfig8822b.h"
-#include "rtl8822b/halphyrf_8822b.h"
-#include "rtl8822b/phydm_rtl8822b.h"
-#include "rtl8822b/phydm_hal_api8822b.h"
-#include "rtl8822b/version_rtl8822b.h"
-
-#include "../halmac/halmac_reg_8822b.h"
-
-/* JJ ADD 20161014 */
-
-#endif /* __ODM_PRECOMP_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/phydm_psd.c b/drivers/staging/rtlwifi/phydm/phydm_psd.c
deleted file mode 100644
index c93d871..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_psd.c
+++ /dev/null
@@ -1,406 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/*============================================================
- * include files
- *============================================================
- */
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-u32 phydm_get_psd_data(void *dm_void, u32 psd_tone_idx, u32 igi)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct psd_info *dm_psd_table = &dm->dm_psd_table;
-	u32 psd_report = 0;
-
-	odm_set_bb_reg(dm, dm_psd_table->psd_reg, 0x3ff, psd_tone_idx);
-
-	odm_set_bb_reg(dm, dm_psd_table->psd_reg, BIT(22),
-		       1); /*PSD trigger start*/
-	ODM_delay_us(10);
-	odm_set_bb_reg(dm, dm_psd_table->psd_reg, BIT(22),
-		       0); /*PSD trigger stop*/
-
-	psd_report = odm_get_bb_reg(dm, dm_psd_table->psd_report_reg, 0xffff);
-	psd_report = odm_convert_to_db(psd_report) + igi;
-
-	return psd_report;
-}
-
-static u8 phydm_psd_stop_trx(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u32 i;
-	u8 trx_idle_success = false;
-	u32 dbg_port_value = 0;
-
-	/*[Stop TRX]----------------------------------------------------------*/
-	if (!phydm_set_bb_dbg_port(dm, BB_DBGPORT_PRIORITY_3,
-				   0x0)) /*set debug port to 0x0*/
-		return STOP_TRX_FAIL;
-
-	for (i = 0; i < 10000; i++) {
-		dbg_port_value = phydm_get_bb_dbg_port_value(dm);
-		if ((dbg_port_value & (BIT(17) | BIT(3))) ==
-		    0) /* PHYTXON && CCA_all */ {
-			ODM_RT_TRACE(dm, ODM_COMP_API,
-				     "PSD wait for ((%d)) times\n", i);
-
-			trx_idle_success = true;
-			break;
-		}
-	}
-
-	if (trx_idle_success) {
-		/*pause all TX queue*/
-		odm_set_bb_reg(dm, 0x520, 0xff0000, 0xff);
-
-		if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-			/*disable CCK block*/
-			odm_set_bb_reg(dm, 0x808, BIT(28), 0);
-			/*disable OFDM RX CCA*/
-			odm_set_bb_reg(dm, 0x838, BIT(1), 1);
-		} else {
-			/*TBD*/
-			/* disable whole CCK block */
-			odm_set_bb_reg(dm, 0x800, BIT(24), 0);
-			/*[ Set IQK Matrix = 0 ] equivalent to [ Turn off CCA]*/
-			odm_set_bb_reg(dm, 0xC14, MASKDWORD, 0x0);
-		}
-
-	} else {
-		return STOP_TRX_FAIL;
-	}
-
-	phydm_release_bb_dbg_port(dm);
-
-	return STOP_TRX_SUCCESS;
-}
-
-static u8 psd_result_cali_tone_8821[7] = {21, 28, 33, 93, 98, 105, 127};
-static u8 psd_result_cali_val_8821[7] = {67, 69, 71, 72, 71, 69, 67};
-
-void phydm_psd(void *dm_void, u32 igi, u16 start_point, u16 stop_point)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct psd_info *dm_psd_table = &dm->dm_psd_table;
-	u32 i = 0, mod_tone_idx;
-	u32 t = 0;
-	u16 fft_max_half_bw;
-	u32 psd_igi_a_reg;
-	u32 psd_igi_b_reg;
-	u16 psd_fc_channel = dm_psd_table->psd_fc_channel;
-	u8 ag_rf_mode_reg = 0;
-	u8 rf_reg18_9_8 = 0;
-	u32 psd_result_tmp = 0;
-	u8 psd_result = 0;
-	u8 psd_result_cali_tone[7] = {0};
-	u8 psd_result_cali_val[7] = {0};
-	u8 noise_table_idx = 0;
-
-	if (dm->support_ic_type == ODM_RTL8821) {
-		odm_move_memory(dm, psd_result_cali_tone,
-				psd_result_cali_tone_8821, 7);
-		odm_move_memory(dm, psd_result_cali_val,
-				psd_result_cali_val_8821, 7);
-	}
-
-	dm_psd_table->psd_in_progress = 1;
-
-	/*[Stop DIG]*/
-	dm->support_ability &= ~(ODM_BB_DIG);
-	dm->support_ability &= ~(ODM_BB_FA_CNT);
-
-	ODM_RT_TRACE(dm, ODM_COMP_API, "PSD Start =>\n");
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		psd_igi_a_reg = 0xc50;
-		psd_igi_b_reg = 0xe50;
-	} else {
-		psd_igi_a_reg = 0xc50;
-		psd_igi_b_reg = 0xc58;
-	}
-
-	/*[back up IGI]*/
-	dm_psd_table->initial_gain_backup =
-		odm_get_bb_reg(dm, psd_igi_a_reg, 0xff);
-	odm_set_bb_reg(dm, psd_igi_a_reg, 0xff,
-		       0x6e); /*IGI target at 0dBm & make it can't CCA*/
-	odm_set_bb_reg(dm, psd_igi_b_reg, 0xff,
-		       0x6e); /*IGI target at 0dBm & make it can't CCA*/
-	ODM_delay_us(10);
-
-	if (phydm_psd_stop_trx(dm) == STOP_TRX_FAIL) {
-		ODM_RT_TRACE(dm, ODM_COMP_API, "STOP_TRX_FAIL\n");
-		return;
-	}
-
-	/*[Set IGI]*/
-	odm_set_bb_reg(dm, psd_igi_a_reg, 0xff, igi);
-	odm_set_bb_reg(dm, psd_igi_b_reg, 0xff, igi);
-
-	/*[Backup RF Reg]*/
-	dm_psd_table->rf_0x18_bkp =
-		odm_get_rf_reg(dm, ODM_RF_PATH_A, 0x18, RFREGOFFSETMASK);
-
-	if (psd_fc_channel > 14) {
-		rf_reg18_9_8 = 1;
-
-		if (psd_fc_channel >= 36 && psd_fc_channel <= 64)
-			ag_rf_mode_reg = 0x1;
-		else if (psd_fc_channel >= 100 && psd_fc_channel <= 140)
-			ag_rf_mode_reg = 0x3;
-		else if (psd_fc_channel > 140)
-			ag_rf_mode_reg = 0x5;
-	}
-
-	/* Set RF fc*/
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x18, 0xff, psd_fc_channel);
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x18, 0x300, rf_reg18_9_8);
-	/*2b'11: 20MHz, 2b'10: 40MHz, 2b'01: 80MHz */
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x18, 0xc00,
-		       dm_psd_table->psd_bw_rf_reg);
-	/* Set RF ag fc mode*/
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x18, 0xf0000, ag_rf_mode_reg);
-
-	ODM_RT_TRACE(dm, ODM_COMP_API, "0xc50=((0x%x))\n",
-		     odm_get_bb_reg(dm, 0xc50, MASKDWORD));
-	ODM_RT_TRACE(dm, ODM_COMP_API, "RF0x18=((0x%x))\n",
-		     odm_get_rf_reg(dm, ODM_RF_PATH_A, 0x18, RFREGOFFSETMASK));
-
-	/*[Stop 3-wires]*/
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		odm_set_bb_reg(dm, 0xc00, 0xf, 0x4); /*	hardware 3-wire off */
-		odm_set_bb_reg(dm, 0xe00, 0xf, 0x4); /*	hardware 3-wire off */
-	} else {
-		odm_set_bb_reg(dm, 0x88c, 0xf00000,
-			       0xf); /* 3 wire Disable    88c[23:20]=0xf */
-	}
-	ODM_delay_us(10);
-
-	if (stop_point > (dm_psd_table->fft_smp_point - 1))
-		stop_point = (dm_psd_table->fft_smp_point - 1);
-
-	if (start_point > (dm_psd_table->fft_smp_point - 1))
-		start_point = (dm_psd_table->fft_smp_point - 1);
-
-	if (start_point > stop_point)
-		stop_point = start_point;
-
-	if (stop_point > 127) /* limit of psd_result[128] */
-		stop_point = 127;
-
-	for (i = start_point; i <= stop_point; i++) {
-		fft_max_half_bw = (dm_psd_table->fft_smp_point) >> 1;
-
-		if (i < fft_max_half_bw)
-			mod_tone_idx = i + fft_max_half_bw;
-		else
-			mod_tone_idx = i - fft_max_half_bw;
-
-		psd_result_tmp = 0;
-		for (t = 0; t < dm_psd_table->sw_avg_time; t++)
-			psd_result_tmp +=
-				phydm_get_psd_data(dm, mod_tone_idx, igi);
-		psd_result =
-			(u8)((psd_result_tmp / dm_psd_table->sw_avg_time)) -
-			dm_psd_table->psd_pwr_common_offset;
-
-		if (dm_psd_table->fft_smp_point == 128 &&
-		    (dm_psd_table->noise_k_en)) {
-			if (i > psd_result_cali_tone[noise_table_idx])
-				noise_table_idx++;
-
-			if (noise_table_idx > 6)
-				noise_table_idx = 6;
-
-			if (psd_result >= psd_result_cali_val[noise_table_idx])
-				psd_result =
-					psd_result -
-					psd_result_cali_val[noise_table_idx];
-			else
-				psd_result = 0;
-
-			dm_psd_table->psd_result[i] = psd_result;
-		}
-
-		ODM_RT_TRACE(dm, ODM_COMP_API, "[%d] N_cali = %d, PSD = %d\n",
-			     mod_tone_idx, psd_result_cali_val[noise_table_idx],
-			     psd_result);
-	}
-
-	/*[Start 3-wires]*/
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		odm_set_bb_reg(dm, 0xc00, 0xf, 0x7); /*	hardware 3-wire on */
-		odm_set_bb_reg(dm, 0xe00, 0xf, 0x7); /*	hardware 3-wire on */
-	} else {
-		odm_set_bb_reg(dm, 0x88c, 0xf00000,
-			       0x0); /* 3 wire enable    88c[23:20]=0x0 */
-	}
-	ODM_delay_us(10);
-
-	/*[Revert Reg]*/
-	odm_set_bb_reg(dm, 0x520, 0xff0000, 0x0); /*start all TX queue*/
-	odm_set_bb_reg(dm, 0x808, BIT(28), 1); /*enable CCK block*/
-	odm_set_bb_reg(dm, 0x838, BIT(1), 0); /*enable OFDM RX CCA*/
-
-	odm_set_bb_reg(dm, psd_igi_a_reg, 0xff,
-		       dm_psd_table->initial_gain_backup);
-	odm_set_bb_reg(dm, psd_igi_b_reg, 0xff,
-		       dm_psd_table->initial_gain_backup);
-
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x18, RFREGOFFSETMASK,
-		       dm_psd_table->rf_0x18_bkp);
-
-	ODM_RT_TRACE(dm, ODM_COMP_API, "PSD finished\n\n");
-
-	dm->support_ability |= ODM_BB_DIG;
-	dm->support_ability |= ODM_BB_FA_CNT;
-	dm_psd_table->psd_in_progress = 0;
-}
-
-void phydm_psd_para_setting(void *dm_void, u8 sw_avg_time, u8 hw_avg_time,
-			    u8 i_q_setting, u16 fft_smp_point, u8 ant_sel,
-			    u8 psd_input, u8 channel, u8 noise_k_en)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct psd_info *dm_psd_table = &dm->dm_psd_table;
-	u8 fft_smp_point_idx = 0;
-
-	dm_psd_table->fft_smp_point = fft_smp_point;
-
-	if (sw_avg_time == 0)
-		sw_avg_time = 1;
-
-	dm_psd_table->sw_avg_time = sw_avg_time;
-	dm_psd_table->psd_fc_channel = channel;
-	dm_psd_table->noise_k_en = noise_k_en;
-
-	if (fft_smp_point == 128)
-		fft_smp_point_idx = 0;
-	else if (fft_smp_point == 256)
-		fft_smp_point_idx = 1;
-	else if (fft_smp_point == 512)
-		fft_smp_point_idx = 2;
-	else if (fft_smp_point == 1024)
-		fft_smp_point_idx = 3;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		odm_set_bb_reg(dm, 0x910, BIT(11) | BIT(10), i_q_setting);
-		odm_set_bb_reg(dm, 0x910, BIT(13) | BIT(12), hw_avg_time);
-		odm_set_bb_reg(dm, 0x910, BIT(15) | BIT(14), fft_smp_point_idx);
-		odm_set_bb_reg(dm, 0x910, BIT(17) | BIT(16), ant_sel);
-		odm_set_bb_reg(dm, 0x910, BIT(23), psd_input);
-	}
-
-	/*bw = (*dm->band_width); //ODM_BW20M */
-	/*channel = *(dm->channel);*/
-}
-
-void phydm_psd_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct psd_info *dm_psd_table = &dm->dm_psd_table;
-
-	ODM_RT_TRACE(dm, ODM_COMP_API, "PSD para init\n");
-
-	dm_psd_table->psd_in_progress = false;
-
-	if (dm->support_ic_type & ODM_IC_11AC_SERIES) {
-		dm_psd_table->psd_reg = 0x910;
-		dm_psd_table->psd_report_reg = 0xF44;
-
-		if (ODM_IC_11AC_2_SERIES)
-			dm_psd_table->psd_bw_rf_reg =
-				1; /*2b'11: 20MHz, 2b'10: 40MHz, 2b'01: 80MHz */
-		else
-			dm_psd_table->psd_bw_rf_reg =
-				2; /*2b'11: 20MHz, 2b'10: 40MHz, 2b'01: 80MHz */
-
-	} else {
-		dm_psd_table->psd_reg = 0x808;
-		dm_psd_table->psd_report_reg = 0x8B4;
-		dm_psd_table->psd_bw_rf_reg =
-			2; /*2b'11: 20MHz, 2b'10: 40MHz, 2b'01: 80MHz */
-	}
-
-	dm_psd_table->psd_pwr_common_offset = 0;
-
-	phydm_psd_para_setting(dm, 1, 2, 3, 128, 0, 0, 7, 0);
-	/*phydm_psd(dm, 0x3c, 0, 127);*/ /* target at -50dBm */
-}
-
-void phydm_psd_debug(void *dm_void, char input[][16], u32 *_used, char *output,
-		     u32 *_out_len, u32 input_num)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	char help[] = "-h";
-	u32 var1[10] = {0};
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-	u8 i;
-
-	if ((strcmp(input[1], help) == 0)) {
-		PHYDM_SNPRINTF(
-			output + used, out_len - used,
-			"{0} {sw_avg} {hw_avg 0:3} {1:I,2:Q,3:IQ} {fft_point: 128*(1:4)} {path_sel 0~3} {0:ADC, 1:RXIQC} {CH} {noise_k}\n");
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "{1} {IGI(hex)} {start_point} {stop_point}\n");
-		return;
-	}
-
-	PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
-
-	if (var1[0] == 0) {
-		for (i = 1; i < 10; i++) {
-			if (input[i + 1])
-				PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
-					     &var1[i]);
-		}
-
-		PHYDM_SNPRINTF(
-			output + used, out_len - used,
-			"sw_avg_time=((%d)), hw_avg_time=((%d)), IQ=((%d)), fft=((%d)), path=((%d)), input =((%d)) ch=((%d)), noise_k=((%d))\n",
-			var1[1], var1[2], var1[3], var1[4], var1[5], var1[6],
-			(u8)var1[7], (u8)var1[8]);
-		phydm_psd_para_setting(dm, (u8)var1[1], (u8)var1[2],
-				       (u8)var1[3], (u16)var1[4], (u8)var1[5],
-				       (u8)var1[6], (u8)var1[7], (u8)var1[8]);
-
-	} else if (var1[0] == 1) {
-		PHYDM_SSCANF(input[2], DCMD_HEX, &var1[1]);
-		PHYDM_SSCANF(input[3], DCMD_DECIMAL, &var1[2]);
-		PHYDM_SSCANF(input[4], DCMD_DECIMAL, &var1[3]);
-		PHYDM_SNPRINTF(
-			output + used, out_len - used,
-			"IGI=((0x%x)), start_point=((%d)), stop_point=((%d))\n",
-			var1[1], var1[2], var1[3]);
-		dm->debug_components |= ODM_COMP_API;
-		phydm_psd(dm, var1[1], (u16)var1[2], (u16)var1[3]);
-		dm->debug_components &= (~ODM_COMP_API);
-	}
-}
-
-u8 phydm_get_psd_result_table(void *dm_void, int index)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct psd_info *dm_psd_table = &dm->dm_psd_table;
-	u8 temp_result = 0;
-
-	if (index < 128)
-		temp_result = dm_psd_table->psd_result[index];
-
-	return temp_result;
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_psd.h b/drivers/staging/rtlwifi/phydm/phydm_psd.h
deleted file mode 100644
index 0fd45c1..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_psd.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMPSD_H__
-#define __PHYDMPSD_H__
-
-/*#define PSD_VERSION	"1.0"*/ /*2016.09.22  Dino*/
-#define PSD_VERSION "1.1" /*2016.10.07  Dino, Add Option for PSD Tone index
-			   *Selection
-			   */
-
-#define STOP_TRX_SUCCESS 1
-#define STOP_TRX_FAIL 0
-
-struct psd_info {
-	u8 psd_in_progress;
-	u32 psd_reg;
-	u32 psd_report_reg;
-	u8 psd_pwr_common_offset;
-	u16 sw_avg_time;
-	u16 fft_smp_point;
-	u32 initial_gain_backup;
-	u32 rf_0x18_bkp;
-	u16 psd_fc_channel;
-	u32 psd_bw_rf_reg;
-	u8 psd_result[128];
-	u8 noise_k_en;
-};
-
-u32 phydm_get_psd_data(void *dm_void, u32 psd_tone_idx, u32 igi);
-
-void phydm_psd_debug(void *dm_void, char input[][16], u32 *_used, char *output,
-		     u32 *_out_len, u32 input_num);
-
-void phydm_psd(void *dm_void, u32 igi, u16 start_point, u16 stop_point);
-
-void phydm_psd_para_setting(void *dm_void, u8 sw_avg_time, u8 hw_avg_time,
-			    u8 i_q_setting, u16 fft_smp_point, u8 ant_sel,
-			    u8 psd_input, u8 channel, u8 noise_k_en);
-
-void phydm_psd_init(void *dm_void);
-
-u8 phydm_get_psd_result_table(void *dm_void, int index);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_rainfo.c b/drivers/staging/rtlwifi/phydm/phydm_rainfo.c
deleted file mode 100644
index 0f24bb2..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_rainfo.c
+++ /dev/null
@@ -1,1193 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/* ************************************************************
- * include files
- * *************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-
-void phydm_h2C_debug(void *dm_void, u32 *const dm_value, u32 *_used,
-		     char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 h2c_parameter[H2C_MAX_LENGTH] = {0};
-	u8 phydm_h2c_id = (u8)dm_value[0];
-	u8 i;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	PHYDM_SNPRINTF(output + used, out_len - used,
-		       "Phydm Send H2C_ID (( 0x%x))\n", phydm_h2c_id);
-	for (i = 0; i < H2C_MAX_LENGTH; i++) {
-		h2c_parameter[i] = (u8)dm_value[i + 1];
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "H2C: Byte[%d] = ((0x%x))\n", i,
-			       h2c_parameter[i]);
-	}
-
-	odm_fill_h2c_cmd(dm, phydm_h2c_id, H2C_MAX_LENGTH, h2c_parameter);
-}
-
-void phydm_RA_debug_PCR(void *dm_void, u32 *const dm_value, u32 *_used,
-			char *output, u32 *_out_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-	u32 used = *_used;
-	u32 out_len = *_out_len;
-
-	if (dm_value[0] == 100) {
-		PHYDM_SNPRINTF(
-			output + used, out_len - used,
-			"[Get] PCR RA_threshold_offset = (( %s%d ))\n",
-			((ra_tab->RA_threshold_offset == 0) ?
-				 " " :
-				 ((ra_tab->RA_offset_direction) ? "+" : "-")),
-			ra_tab->RA_threshold_offset);
-		/**/
-	} else if (dm_value[0] == 0) {
-		ra_tab->RA_offset_direction = 0;
-		ra_tab->RA_threshold_offset = (u8)dm_value[1];
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "[Set] PCR RA_threshold_offset = (( -%d ))\n",
-			       ra_tab->RA_threshold_offset);
-	} else if (dm_value[0] == 1) {
-		ra_tab->RA_offset_direction = 1;
-		ra_tab->RA_threshold_offset = (u8)dm_value[1];
-		PHYDM_SNPRINTF(output + used, out_len - used,
-			       "[Set] PCR RA_threshold_offset = (( +%d ))\n",
-			       ra_tab->RA_threshold_offset);
-	} else {
-		PHYDM_SNPRINTF(output + used, out_len - used, "[Set] Error\n");
-		/**/
-	}
-}
-
-void odm_c2h_ra_para_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	u8 para_idx = cmd_buf[0]; /*Retry Penalty, NH, NL*/
-	u8 i;
-
-	ODM_RT_TRACE(dm, PHYDM_COMP_RA_DBG,
-		     "[ From FW C2H RA Para ]  cmd_buf[0]= (( %d ))\n",
-		     cmd_buf[0]);
-
-	if (para_idx == RADBG_DEBUG_MONITOR1) {
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-			     "-------------------------------\n");
-		if (dm->support_ic_type & PHYDM_IC_3081_SERIES) {
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "RSSI =", cmd_buf[1]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-				     "rate =", cmd_buf[2] & 0x7f);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "SGI =", (cmd_buf[2] & 0x80) >> 7);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "BW =", cmd_buf[3]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "BW_max =", cmd_buf[4]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-				     "multi_rate0 =", cmd_buf[5]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-				     "multi_rate1 =", cmd_buf[6]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "DISRA =", cmd_buf[7]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "VHT_EN =", cmd_buf[8]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "SGI_support =", cmd_buf[9]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "try_ness =", cmd_buf[10]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-				     "pre_rate =", cmd_buf[11]);
-		} else {
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "RSSI =", cmd_buf[1]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %x\n",
-				     "BW =", cmd_buf[2]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "DISRA =", cmd_buf[3]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "VHT_EN =", cmd_buf[4]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "Highest rate =", cmd_buf[5]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-				     "Lowest rate =", cmd_buf[6]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-				     "SGI_support =", cmd_buf[7]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "Rate_ID =", cmd_buf[8]);
-		}
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-			     "-------------------------------\n");
-	} else if (para_idx == RADBG_DEBUG_MONITOR2) {
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-			     "-------------------------------\n");
-		if (dm->support_ic_type & PHYDM_IC_3081_SERIES) {
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-				     "rate_id =", cmd_buf[1]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-				     "highest_rate =", cmd_buf[2]);
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-				     "lowest_rate =", cmd_buf[3]);
-
-			for (i = 4; i <= 11; i++)
-				ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-					     "RAMASK =  0x%x\n", cmd_buf[i]);
-		} else {
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-				     "%5s  %x%x  %x%x  %x%x  %x%x\n",
-				     "RA Mask:", cmd_buf[8], cmd_buf[7],
-				     cmd_buf[6], cmd_buf[5], cmd_buf[4],
-				     cmd_buf[3], cmd_buf[2], cmd_buf[1]);
-		}
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-			     "-------------------------------\n");
-	} else if (para_idx == RADBG_DEBUG_MONITOR3) {
-		for (i = 0; i < (cmd_len - 1); i++)
-			ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE,
-				     "content[%d] = %d\n", i, cmd_buf[1 + i]);
-	} else if (para_idx == RADBG_DEBUG_MONITOR4) {
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  {%d.%d}\n",
-			     "RA version =", cmd_buf[1], cmd_buf[2]);
-	} else if (para_idx == RADBG_DEBUG_MONITOR5) {
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-			     "Current rate =", cmd_buf[1]);
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-			     "Retry ratio =", cmd_buf[2]);
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  %d\n",
-			     "rate down ratio =", cmd_buf[3]);
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x\n",
-			     "highest rate =", cmd_buf[4]);
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  {0x%x 0x%x}\n",
-			     "Muti-try =", cmd_buf[5], cmd_buf[6]);
-		ODM_RT_TRACE(dm, ODM_FW_DEBUG_TRACE, "%5s  0x%x%x%x%x%x\n",
-			     "RA mask =", cmd_buf[11], cmd_buf[10], cmd_buf[9],
-			     cmd_buf[8], cmd_buf[7]);
-	}
-}
-
-void phydm_ra_dynamic_retry_count(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (!(dm->support_ability & ODM_BB_DYNAMIC_ARFR))
-		return;
-
-	if (dm->pre_b_noisy != dm->noisy_decision) {
-		if (dm->noisy_decision) {
-			ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE,
-				     "->Noisy Env. RA fallback value\n");
-			odm_set_mac_reg(dm, 0x430, MASKDWORD, 0x0);
-			odm_set_mac_reg(dm, 0x434, MASKDWORD, 0x04030201);
-		} else {
-			ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE,
-				     "->Clean Env. RA fallback value\n");
-			odm_set_mac_reg(dm, 0x430, MASKDWORD, 0x01000000);
-			odm_set_mac_reg(dm, 0x434, MASKDWORD, 0x06050402);
-		}
-		dm->pre_b_noisy = dm->noisy_decision;
-	}
-}
-
-void phydm_ra_dynamic_retry_limit(void *dm_void) {}
-
-void phydm_print_rate(void *dm_void, u8 rate, u32 dbg_component)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 legacy_table[12] = {1, 2, 5, 11, 6, 9, 12, 18, 24, 36, 48, 54};
-	u8 rate_idx = rate & 0x7f; /*remove bit7 SGI*/
-	u8 vht_en = (rate_idx >= ODM_RATEVHTSS1MCS0) ? 1 : 0;
-	u8 b_sgi = (rate & 0x80) >> 7;
-
-	ODM_RT_TRACE(dm, dbg_component, "( %s%s%s%s%d%s%s)\n",
-		     ((rate_idx >= ODM_RATEVHTSS1MCS0) &&
-		      (rate_idx <= ODM_RATEVHTSS1MCS9)) ?
-			     "VHT 1ss  " :
-			     "",
-		     ((rate_idx >= ODM_RATEVHTSS2MCS0) &&
-		      (rate_idx <= ODM_RATEVHTSS2MCS9)) ?
-			     "VHT 2ss " :
-			     "",
-		     ((rate_idx >= ODM_RATEVHTSS3MCS0) &&
-		      (rate_idx <= ODM_RATEVHTSS3MCS9)) ?
-			     "VHT 3ss " :
-			     "",
-		     (rate_idx >= ODM_RATEMCS0) ? "MCS " : "",
-		     (vht_en) ? ((rate_idx - ODM_RATEVHTSS1MCS0) % 10) :
-				((rate_idx >= ODM_RATEMCS0) ?
-					 (rate_idx - ODM_RATEMCS0) :
-					 ((rate_idx <= ODM_RATE54M) ?
-						  legacy_table[rate_idx] :
-						  0)),
-		     (b_sgi) ? "-S" : "  ",
-		     (rate_idx >= ODM_RATEMCS0) ? "" : "M");
-}
-
-void phydm_c2h_ra_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-	u8 macid = cmd_buf[1];
-	u8 rate = cmd_buf[0];
-	u8 rate_idx = rate & 0x7f; /*remove bit7 SGI*/
-	u8 rate_order;
-
-	if (cmd_len >= 4) {
-		if (cmd_buf[3] == 0) {
-			ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE,
-				     "TX Init-rate Update[%d]:", macid);
-			/**/
-		} else if (cmd_buf[3] == 0xff) {
-			ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE,
-				     "FW Level: Fix rate[%d]:", macid);
-			/**/
-		} else if (cmd_buf[3] == 1) {
-			ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE,
-				     "Try Success[%d]:", macid);
-			/**/
-		} else if (cmd_buf[3] == 2) {
-			ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE,
-				     "Try Fail & Try Again[%d]:", macid);
-			/**/
-		} else if (cmd_buf[3] == 3) {
-			ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE,
-				     "rate Back[%d]:", macid);
-			/**/
-		} else if (cmd_buf[3] == 4) {
-			ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE,
-				     "start rate by RSSI[%d]:", macid);
-			/**/
-		} else if (cmd_buf[3] == 5) {
-			ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE,
-				     "Try rate[%d]:", macid);
-			/**/
-		}
-	} else {
-		ODM_RT_TRACE(dm, ODM_COMP_RATE_ADAPTIVE, "Tx rate Update[%d]:",
-			     macid);
-		/**/
-	}
-
-	phydm_print_rate(dm, rate, ODM_COMP_RATE_ADAPTIVE);
-
-	ra_tab->link_tx_rate[macid] = rate;
-
-	/*trigger power training*/
-
-	rate_order = phydm_rate_order_compute(dm, rate_idx);
-
-	if ((dm->is_one_entry_only) ||
-	    ((rate_order > ra_tab->highest_client_tx_order) &&
-	     (ra_tab->power_tracking_flag == 1))) {
-		phydm_update_pwr_track(dm, rate_idx);
-		ra_tab->power_tracking_flag = 0;
-	}
-
-	/*trigger dynamic rate ID*/
-}
-
-void odm_rssi_monitor_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-
-	ra_tab->firstconnect = false;
-}
-
-void odm_ra_post_action_on_assoc(void *dm_void) {}
-
-void phydm_init_ra_info(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (dm->support_ic_type == ODM_RTL8822B) {
-		u32 ret_value;
-
-		ret_value = odm_get_bb_reg(dm, 0x4c8, MASKBYTE2);
-		odm_set_bb_reg(dm, 0x4cc, MASKBYTE3, (ret_value - 1));
-	}
-}
-
-void phydm_modify_RA_PCR_threshold(void *dm_void, u8 RA_offset_direction,
-				   u8 RA_threshold_offset
-
-				   )
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-
-	ra_tab->RA_offset_direction = RA_offset_direction;
-	ra_tab->RA_threshold_offset = RA_threshold_offset;
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-		     "Set RA_threshold_offset = (( %s%d ))\n",
-		     ((RA_threshold_offset == 0) ?
-			      " " :
-			      ((RA_offset_direction) ? "+" : "-")),
-		     RA_threshold_offset);
-}
-
-static void odm_rssi_monitor_check_mp(void *dm_void) {}
-
-static void odm_rssi_monitor_check_ce(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	struct rtl_sta_info *entry;
-	int i;
-	int tmp_entry_min_pwdb = 0xff;
-	unsigned long cur_tx_ok_cnt = 0, cur_rx_ok_cnt = 0;
-	u8 UL_DL_STATE = 0, STBC_TX = 0, tx_bf_en = 0;
-	u8 h2c_parameter[H2C_0X42_LENGTH] = {0};
-	u8 cmdlen = H2C_0X42_LENGTH;
-	u8 macid = 0;
-
-	if (!dm->is_linked)
-		return;
-
-	for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) {
-		entry = (struct rtl_sta_info *)dm->odm_sta_info[i];
-		if (!IS_STA_VALID(entry))
-			continue;
-
-		if (is_multicast_ether_addr(entry->mac_addr) ||
-		    is_broadcast_ether_addr(entry->mac_addr))
-			continue;
-
-		if (entry->rssi_stat.undecorated_smoothed_pwdb == (-1))
-			continue;
-
-		/* calculate min_pwdb */
-		if (entry->rssi_stat.undecorated_smoothed_pwdb <
-		    tmp_entry_min_pwdb)
-			tmp_entry_min_pwdb =
-				entry->rssi_stat.undecorated_smoothed_pwdb;
-
-		/* report RSSI */
-		cur_tx_ok_cnt = rtlpriv->stats.txbytesunicast_inperiod;
-		cur_rx_ok_cnt = rtlpriv->stats.rxbytesunicast_inperiod;
-
-		if (cur_rx_ok_cnt > (cur_tx_ok_cnt * 6))
-			UL_DL_STATE = 1;
-		else
-			UL_DL_STATE = 0;
-
-		if (mac->opmode == NL80211_IFTYPE_AP ||
-		    mac->opmode == NL80211_IFTYPE_ADHOC) {
-			struct ieee80211_sta *sta = container_of(
-				(void *)entry, struct ieee80211_sta, drv_priv);
-			macid = sta->aid + 1;
-		}
-
-		h2c_parameter[0] = macid;
-		h2c_parameter[2] =
-			entry->rssi_stat.undecorated_smoothed_pwdb & 0x7F;
-
-		if (UL_DL_STATE)
-			h2c_parameter[3] |= RAINFO_BE_RX_STATE;
-
-		if (tx_bf_en)
-			h2c_parameter[3] |= RAINFO_BF_STATE;
-		if (STBC_TX)
-			h2c_parameter[3] |= RAINFO_STBC_STATE;
-		if (dm->noisy_decision)
-			h2c_parameter[3] |= RAINFO_NOISY_STATE;
-
-		if (entry->rssi_stat.is_send_rssi == RA_RSSI_STATE_SEND) {
-			h2c_parameter[3] |= RAINFO_INIT_RSSI_RATE_STATE;
-			entry->rssi_stat.is_send_rssi = RA_RSSI_STATE_HOLD;
-		}
-
-		h2c_parameter[4] = (ra_tab->RA_threshold_offset & 0x7f) |
-				   (ra_tab->RA_offset_direction << 7);
-
-		odm_fill_h2c_cmd(dm, ODM_H2C_RSSI_REPORT, cmdlen,
-				 h2c_parameter);
-	}
-
-	if (tmp_entry_min_pwdb != 0xff)
-		dm->rssi_min = tmp_entry_min_pwdb;
-}
-
-static void odm_rssi_monitor_check_ap(void *dm_void) {}
-
-void odm_rssi_monitor_check(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	if (!(dm->support_ability & ODM_BB_RSSI_MONITOR))
-		return;
-
-	switch (dm->support_platform) {
-	case ODM_WIN:
-		odm_rssi_monitor_check_mp(dm);
-		break;
-
-	case ODM_CE:
-		odm_rssi_monitor_check_ce(dm);
-		break;
-
-	case ODM_AP:
-		odm_rssi_monitor_check_ap(dm);
-		break;
-
-	default:
-		break;
-	}
-}
-
-void odm_rate_adaptive_mask_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct odm_rate_adaptive *odm_ra = &dm->rate_adaptive;
-
-	odm_ra->type = dm_type_by_driver;
-	if (odm_ra->type == dm_type_by_driver)
-		dm->is_use_ra_mask = true;
-	else
-		dm->is_use_ra_mask = false;
-
-	odm_ra->ratr_state = DM_RATR_STA_INIT;
-
-	odm_ra->ldpc_thres = 35;
-	odm_ra->is_use_ldpc = false;
-
-	odm_ra->high_rssi_thresh = 50;
-	odm_ra->low_rssi_thresh = 20;
-}
-
-/*-----------------------------------------------------------------------------
- * Function:	odm_refresh_rate_adaptive_mask()
- *
- * Overview:	Update rate table mask according to rssi
- *
- * Input:		NONE
- *
- * Output:		NONE
- *
- * Return:		NONE
- *
- * Revised History:
- *	When		Who		Remark
- *	05/27/2009	hpfan	Create version 0.
- *
- *---------------------------------------------------------------------------
- */
-void odm_refresh_rate_adaptive_mask(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-
-	if (!dm->is_linked)
-		return;
-
-	if (!(dm->support_ability & ODM_BB_RA_MASK)) {
-		ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-			     "%s(): Return cos not supported\n", __func__);
-		return;
-	}
-
-	ra_tab->force_update_ra_mask_count++;
-	/* 2011/09/29 MH In HW integration first stage, we provide 4 different
-	 * handle to operate at the same time.
-	 * In the stage2/3, we need to prive universal interface and merge all
-	 * HW dynamic mechanism.
-	 */
-	switch (dm->support_platform) {
-	case ODM_WIN:
-		odm_refresh_rate_adaptive_mask_mp(dm);
-		break;
-
-	case ODM_CE:
-		odm_refresh_rate_adaptive_mask_ce(dm);
-		break;
-
-	case ODM_AP:
-		odm_refresh_rate_adaptive_mask_apadsl(dm);
-		break;
-	}
-}
-
-static u8 phydm_trans_platform_bw(void *dm_void, u8 BW)
-{
-	if (BW == HT_CHANNEL_WIDTH_20)
-		BW = PHYDM_BW_20;
-
-	else if (BW == HT_CHANNEL_WIDTH_20_40)
-		BW = PHYDM_BW_40;
-
-	else if (BW == HT_CHANNEL_WIDTH_80)
-		BW = PHYDM_BW_80;
-
-	return BW;
-}
-
-static u8 phydm_trans_platform_rf_type(void *dm_void, u8 rf_type)
-{
-	if (rf_type == RF_1T2R)
-		rf_type = PHYDM_RF_1T2R;
-
-	else if (rf_type == RF_2T4R)
-		rf_type = PHYDM_RF_2T4R;
-
-	else if (rf_type == RF_2T2R)
-		rf_type = PHYDM_RF_2T2R;
-
-	else if (rf_type == RF_1T1R)
-		rf_type = PHYDM_RF_1T1R;
-
-	else if (rf_type == RF_2T2R_GREEN)
-		rf_type = PHYDM_RF_2T2R_GREEN;
-
-	else if (rf_type == RF_3T3R)
-		rf_type = PHYDM_RF_3T3R;
-
-	else if (rf_type == RF_4T4R)
-		rf_type = PHYDM_RF_4T4R;
-
-	else if (rf_type == RF_2T3R)
-		rf_type = PHYDM_RF_1T2R;
-
-	else if (rf_type == RF_3T4R)
-		rf_type = PHYDM_RF_3T4R;
-
-	return rf_type;
-}
-
-static u32 phydm_trans_platform_wireless_mode(void *dm_void, u32 wireless_mode)
-{
-	return wireless_mode;
-}
-
-u8 phydm_vht_en_mapping(void *dm_void, u32 wireless_mode)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 vht_en_out = 0;
-
-	if ((wireless_mode == PHYDM_WIRELESS_MODE_AC_5G) ||
-	    (wireless_mode == PHYDM_WIRELESS_MODE_AC_24G) ||
-	    (wireless_mode == PHYDM_WIRELESS_MODE_AC_ONLY)) {
-		vht_en_out = 1;
-		/**/
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-		     "wireless_mode= (( 0x%x )), VHT_EN= (( %d ))\n",
-		     wireless_mode, vht_en_out);
-	return vht_en_out;
-}
-
-u8 phydm_rate_id_mapping(void *dm_void, u32 wireless_mode, u8 rf_type, u8 bw)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 rate_id_idx = 0;
-	u8 phydm_BW;
-	u8 phydm_rf_type;
-
-	phydm_BW = phydm_trans_platform_bw(dm, bw);
-	phydm_rf_type = phydm_trans_platform_rf_type(dm, rf_type);
-	wireless_mode = phydm_trans_platform_wireless_mode(dm, wireless_mode);
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_RA_MASK,
-		"wireless_mode= (( 0x%x )), rf_type = (( 0x%x )), BW = (( 0x%x ))\n",
-		wireless_mode, phydm_rf_type, phydm_BW);
-
-	switch (wireless_mode) {
-	case PHYDM_WIRELESS_MODE_N_24G: {
-		if (phydm_BW == PHYDM_BW_40) {
-			if (phydm_rf_type == PHYDM_RF_1T1R)
-				rate_id_idx = PHYDM_BGN_40M_1SS;
-			else if (phydm_rf_type == PHYDM_RF_2T2R)
-				rate_id_idx = PHYDM_BGN_40M_2SS;
-			else
-				rate_id_idx = PHYDM_ARFR5_N_3SS;
-
-		} else {
-			if (phydm_rf_type == PHYDM_RF_1T1R)
-				rate_id_idx = PHYDM_BGN_20M_1SS;
-			else if (phydm_rf_type == PHYDM_RF_2T2R)
-				rate_id_idx = PHYDM_BGN_20M_2SS;
-			else
-				rate_id_idx = PHYDM_ARFR5_N_3SS;
-		}
-	} break;
-
-	case PHYDM_WIRELESS_MODE_N_5G: {
-		if (phydm_rf_type == PHYDM_RF_1T1R)
-			rate_id_idx = PHYDM_GN_N1SS;
-		else if (phydm_rf_type == PHYDM_RF_2T2R)
-			rate_id_idx = PHYDM_GN_N2SS;
-		else
-			rate_id_idx = PHYDM_ARFR5_N_3SS;
-	}
-
-	break;
-
-	case PHYDM_WIRELESS_MODE_G:
-		rate_id_idx = PHYDM_BG;
-		break;
-
-	case PHYDM_WIRELESS_MODE_A:
-		rate_id_idx = PHYDM_G;
-		break;
-
-	case PHYDM_WIRELESS_MODE_B:
-		rate_id_idx = PHYDM_B_20M;
-		break;
-
-	case PHYDM_WIRELESS_MODE_AC_5G:
-	case PHYDM_WIRELESS_MODE_AC_ONLY: {
-		if (phydm_rf_type == PHYDM_RF_1T1R)
-			rate_id_idx = PHYDM_ARFR1_AC_1SS;
-		else if (phydm_rf_type == PHYDM_RF_2T2R)
-			rate_id_idx = PHYDM_ARFR0_AC_2SS;
-		else
-			rate_id_idx = PHYDM_ARFR4_AC_3SS;
-	} break;
-
-	case PHYDM_WIRELESS_MODE_AC_24G: {
-		/*Becareful to set "Lowest rate" while using PHYDM_ARFR4_AC_3SS
-		 *in 2.4G/5G
-		 */
-		if (phydm_BW >= PHYDM_BW_80) {
-			if (phydm_rf_type == PHYDM_RF_1T1R)
-				rate_id_idx = PHYDM_ARFR1_AC_1SS;
-			else if (phydm_rf_type == PHYDM_RF_2T2R)
-				rate_id_idx = PHYDM_ARFR0_AC_2SS;
-			else
-				rate_id_idx = PHYDM_ARFR4_AC_3SS;
-		} else {
-			if (phydm_rf_type == PHYDM_RF_1T1R)
-				rate_id_idx = PHYDM_ARFR2_AC_2G_1SS;
-			else if (phydm_rf_type == PHYDM_RF_2T2R)
-				rate_id_idx = PHYDM_ARFR3_AC_2G_2SS;
-			else
-				rate_id_idx = PHYDM_ARFR4_AC_3SS;
-		}
-	} break;
-
-	default:
-		rate_id_idx = 0;
-		break;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK, "RA rate ID = (( 0x%x ))\n",
-		     rate_id_idx);
-
-	return rate_id_idx;
-}
-
-void phydm_update_hal_ra_mask(void *dm_void, u32 wireless_mode, u8 rf_type,
-			      u8 BW, u8 mimo_ps_enable, u8 disable_cck_rate,
-			      u32 *ratr_bitmap_msb_in, u32 *ratr_bitmap_lsb_in,
-			      u8 tx_rate_level)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 phydm_rf_type;
-	u8 phydm_BW;
-	u32 ratr_bitmap = *ratr_bitmap_lsb_in,
-	    ratr_bitmap_msb = *ratr_bitmap_msb_in;
-
-	wireless_mode = phydm_trans_platform_wireless_mode(dm, wireless_mode);
-
-	phydm_rf_type = phydm_trans_platform_rf_type(dm, rf_type);
-	phydm_BW = phydm_trans_platform_bw(dm, BW);
-
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-		     "Platform original RA Mask = (( 0x %x | %x ))\n",
-		     ratr_bitmap_msb, ratr_bitmap);
-
-	switch (wireless_mode) {
-	case PHYDM_WIRELESS_MODE_B: {
-		ratr_bitmap &= 0x0000000f;
-	} break;
-
-	case PHYDM_WIRELESS_MODE_G: {
-		ratr_bitmap &= 0x00000ff5;
-	} break;
-
-	case PHYDM_WIRELESS_MODE_A: {
-		ratr_bitmap &= 0x00000ff0;
-	} break;
-
-	case PHYDM_WIRELESS_MODE_N_24G:
-	case PHYDM_WIRELESS_MODE_N_5G: {
-		if (mimo_ps_enable)
-			phydm_rf_type = PHYDM_RF_1T1R;
-
-		if (phydm_rf_type == PHYDM_RF_1T1R) {
-			if (phydm_BW == PHYDM_BW_40)
-				ratr_bitmap &= 0x000ff015;
-			else
-				ratr_bitmap &= 0x000ff005;
-		} else if (phydm_rf_type == PHYDM_RF_2T2R ||
-			   phydm_rf_type == PHYDM_RF_2T4R ||
-			   phydm_rf_type == PHYDM_RF_2T3R) {
-			if (phydm_BW == PHYDM_BW_40)
-				ratr_bitmap &= 0x0ffff015;
-			else
-				ratr_bitmap &= 0x0ffff005;
-		} else { /*3T*/
-
-			ratr_bitmap &= 0xfffff015;
-			ratr_bitmap_msb &= 0xf;
-		}
-	} break;
-
-	case PHYDM_WIRELESS_MODE_AC_24G: {
-		if (phydm_rf_type == PHYDM_RF_1T1R) {
-			ratr_bitmap &= 0x003ff015;
-		} else if (phydm_rf_type == PHYDM_RF_2T2R ||
-			   phydm_rf_type == PHYDM_RF_2T4R ||
-			   phydm_rf_type == PHYDM_RF_2T3R) {
-			ratr_bitmap &= 0xfffff015;
-		} else { /*3T*/
-
-			ratr_bitmap &= 0xfffff010;
-			ratr_bitmap_msb &= 0x3ff;
-		}
-
-		if (phydm_BW ==
-		    PHYDM_BW_20) { /* AC 20MHz doesn't support MCS9 */
-			ratr_bitmap &= 0x7fdfffff;
-			ratr_bitmap_msb &= 0x1ff;
-		}
-	} break;
-
-	case PHYDM_WIRELESS_MODE_AC_5G: {
-		if (phydm_rf_type == PHYDM_RF_1T1R) {
-			ratr_bitmap &= 0x003ff010;
-		} else if (phydm_rf_type == PHYDM_RF_2T2R ||
-			   phydm_rf_type == PHYDM_RF_2T4R ||
-			   phydm_rf_type == PHYDM_RF_2T3R) {
-			ratr_bitmap &= 0xfffff010;
-		} else { /*3T*/
-
-			ratr_bitmap &= 0xfffff010;
-			ratr_bitmap_msb &= 0x3ff;
-		}
-
-		if (phydm_BW ==
-		    PHYDM_BW_20) { /* AC 20MHz doesn't support MCS9 */
-			ratr_bitmap &= 0x7fdfffff;
-			ratr_bitmap_msb &= 0x1ff;
-		}
-	} break;
-
-	default:
-		break;
-	}
-
-	if (wireless_mode != PHYDM_WIRELESS_MODE_B) {
-		if (tx_rate_level == 0)
-			ratr_bitmap &= 0xffffffff;
-		else if (tx_rate_level == 1)
-			ratr_bitmap &= 0xfffffff0;
-		else if (tx_rate_level == 2)
-			ratr_bitmap &= 0xffffefe0;
-		else if (tx_rate_level == 3)
-			ratr_bitmap &= 0xffffcfc0;
-		else if (tx_rate_level == 4)
-			ratr_bitmap &= 0xffff8f80;
-		else if (tx_rate_level >= 5)
-			ratr_bitmap &= 0xffff0f00;
-	}
-
-	if (disable_cck_rate)
-		ratr_bitmap &= 0xfffffff0;
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_RA_MASK,
-		"wireless_mode= (( 0x%x )), rf_type = (( 0x%x )), BW = (( 0x%x )), MimoPs_en = (( %d )), tx_rate_level= (( 0x%x ))\n",
-		wireless_mode, phydm_rf_type, phydm_BW, mimo_ps_enable,
-		tx_rate_level);
-
-	*ratr_bitmap_lsb_in = ratr_bitmap;
-	*ratr_bitmap_msb_in = ratr_bitmap_msb;
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-		     "Phydm modified RA Mask = (( 0x %x | %x ))\n",
-		     *ratr_bitmap_msb_in, *ratr_bitmap_lsb_in);
-}
-
-u8 phydm_RA_level_decision(void *dm_void, u32 rssi, u8 ratr_state)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 ra_rate_floor_table[RA_FLOOR_TABLE_SIZE] = {
-		20, 34, 38, 42,
-		46, 50, 100}; /*MCS0 ~ MCS4 , VHT1SS MCS0 ~ MCS4 , G 6M~24M*/
-	u8 new_ratr_state = 0;
-	u8 i;
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_RA_MASK,
-		"curr RA level = ((%d)), Rate_floor_table ori [ %d , %d, %d , %d, %d, %d]\n",
-		ratr_state, ra_rate_floor_table[0], ra_rate_floor_table[1],
-		ra_rate_floor_table[2], ra_rate_floor_table[3],
-		ra_rate_floor_table[4], ra_rate_floor_table[5]);
-
-	for (i = 0; i < RA_FLOOR_TABLE_SIZE; i++) {
-		if (i >= (ratr_state))
-			ra_rate_floor_table[i] += RA_FLOOR_UP_GAP;
-	}
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_RA_MASK,
-		"RSSI = ((%d)), Rate_floor_table_mod [ %d , %d, %d , %d, %d, %d]\n",
-		rssi, ra_rate_floor_table[0], ra_rate_floor_table[1],
-		ra_rate_floor_table[2], ra_rate_floor_table[3],
-		ra_rate_floor_table[4], ra_rate_floor_table[5]);
-
-	for (i = 0; i < RA_FLOOR_TABLE_SIZE; i++) {
-		if (rssi < ra_rate_floor_table[i]) {
-			new_ratr_state = i;
-			break;
-		}
-	}
-
-	return new_ratr_state;
-}
-
-void odm_refresh_rate_adaptive_mask_mp(void *dm_void) {}
-
-void odm_refresh_rate_adaptive_mask_ce(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-	void *adapter = dm->adapter;
-	u32 i;
-	struct rtl_sta_info *entry;
-	u8 ratr_state_new;
-
-	if (!dm->is_use_ra_mask) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_RA_MASK,
-			"<---- %s(): driver does not control rate adaptive mask\n",
-			__func__);
-		return;
-	}
-
-	for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) {
-		entry = dm->odm_sta_info[i];
-
-		if (!IS_STA_VALID(entry))
-			continue;
-
-		if (is_multicast_ether_addr(entry->mac_addr))
-			continue;
-		else if (is_broadcast_ether_addr(entry->mac_addr))
-			continue;
-
-		ratr_state_new = phydm_RA_level_decision(
-			dm, entry->rssi_stat.undecorated_smoothed_pwdb,
-			entry->rssi_level);
-
-		if ((entry->rssi_level != ratr_state_new) ||
-		    (ra_tab->force_update_ra_mask_count >=
-		     FORCED_UPDATE_RAMASK_PERIOD)) {
-			ra_tab->force_update_ra_mask_count = 0;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_RA_MASK,
-				"Update Tx RA Level: ((%x)) -> ((%x)),  RSSI = ((%d))\n",
-				entry->rssi_level, ratr_state_new,
-				entry->rssi_stat.undecorated_smoothed_pwdb);
-
-			entry->rssi_level = ratr_state_new;
-			rtl_hal_update_ra_mask(adapter, entry,
-					       entry->rssi_level);
-		} else {
-			ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-				     "Stay in RA level  = (( %d ))\n\n",
-				     ratr_state_new);
-			/**/
-		}
-	}
-}
-
-void odm_refresh_rate_adaptive_mask_apadsl(void *dm_void) {}
-
-void odm_refresh_basic_rate_mask(void *dm_void) {}
-
-u8 phydm_rate_order_compute(void *dm_void, u8 rate_idx)
-{
-	if (rate_idx >= ODM_RATEVHTSS4MCS0) {
-		rate_idx -= ODM_RATEVHTSS4MCS0;
-		/**/
-	} else if (rate_idx >= ODM_RATEVHTSS3MCS0) {
-		rate_idx -= ODM_RATEVHTSS3MCS0;
-		/**/
-	} else if (rate_idx >= ODM_RATEVHTSS2MCS0) {
-		rate_idx -= ODM_RATEVHTSS2MCS0;
-		/**/
-	} else if (rate_idx >= ODM_RATEVHTSS1MCS0) {
-		rate_idx -= ODM_RATEVHTSS1MCS0;
-		/**/
-	} else if (rate_idx >= ODM_RATEMCS24) {
-		rate_idx -= ODM_RATEMCS24;
-		/**/
-	} else if (rate_idx >= ODM_RATEMCS16) {
-		rate_idx -= ODM_RATEMCS16;
-		/**/
-	} else if (rate_idx >= ODM_RATEMCS8) {
-		rate_idx -= ODM_RATEMCS8;
-		/**/
-	}
-
-	return rate_idx;
-}
-
-static void phydm_ra_common_info_update(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-	u16 macid;
-	u8 rate_order_tmp;
-	u8 cnt = 0;
-
-	ra_tab->highest_client_tx_order = 0;
-	ra_tab->power_tracking_flag = 1;
-
-	if (dm->number_linked_client != 0) {
-		for (macid = 0; macid < ODM_ASSOCIATE_ENTRY_NUM; macid++) {
-			rate_order_tmp = phydm_rate_order_compute(
-				dm, ((ra_tab->link_tx_rate[macid]) & 0x7f));
-
-			if (rate_order_tmp >=
-			    (ra_tab->highest_client_tx_order)) {
-				ra_tab->highest_client_tx_order =
-					rate_order_tmp;
-				ra_tab->highest_client_tx_rate_order = macid;
-			}
-
-			cnt++;
-
-			if (cnt == dm->number_linked_client)
-				break;
-		}
-		ODM_RT_TRACE(
-			dm, ODM_COMP_RATE_ADAPTIVE,
-			"MACID[%d], Highest Tx order Update for power tracking: %d\n",
-			(ra_tab->highest_client_tx_rate_order),
-			(ra_tab->highest_client_tx_order));
-	}
-}
-
-void phydm_ra_info_watchdog(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	phydm_ra_common_info_update(dm);
-	phydm_ra_dynamic_retry_limit(dm);
-	phydm_ra_dynamic_retry_count(dm);
-	odm_refresh_rate_adaptive_mask(dm);
-	odm_refresh_basic_rate_mask(dm);
-}
-
-void phydm_ra_info_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct ra_table *ra_tab = &dm->dm_ra_table;
-
-	ra_tab->highest_client_tx_rate_order = 0;
-	ra_tab->highest_client_tx_order = 0;
-	ra_tab->RA_threshold_offset = 0;
-	ra_tab->RA_offset_direction = 0;
-}
-
-u8 odm_find_rts_rate(void *dm_void, u8 tx_rate, bool is_erp_protect)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	u8 rts_ini_rate = ODM_RATE6M;
-
-	if (is_erp_protect) { /* use CCK rate as RTS*/
-		rts_ini_rate = ODM_RATE1M;
-	} else {
-		switch (tx_rate) {
-		case ODM_RATEVHTSS3MCS9:
-		case ODM_RATEVHTSS3MCS8:
-		case ODM_RATEVHTSS3MCS7:
-		case ODM_RATEVHTSS3MCS6:
-		case ODM_RATEVHTSS3MCS5:
-		case ODM_RATEVHTSS3MCS4:
-		case ODM_RATEVHTSS3MCS3:
-		case ODM_RATEVHTSS2MCS9:
-		case ODM_RATEVHTSS2MCS8:
-		case ODM_RATEVHTSS2MCS7:
-		case ODM_RATEVHTSS2MCS6:
-		case ODM_RATEVHTSS2MCS5:
-		case ODM_RATEVHTSS2MCS4:
-		case ODM_RATEVHTSS2MCS3:
-		case ODM_RATEVHTSS1MCS9:
-		case ODM_RATEVHTSS1MCS8:
-		case ODM_RATEVHTSS1MCS7:
-		case ODM_RATEVHTSS1MCS6:
-		case ODM_RATEVHTSS1MCS5:
-		case ODM_RATEVHTSS1MCS4:
-		case ODM_RATEVHTSS1MCS3:
-		case ODM_RATEMCS15:
-		case ODM_RATEMCS14:
-		case ODM_RATEMCS13:
-		case ODM_RATEMCS12:
-		case ODM_RATEMCS11:
-		case ODM_RATEMCS7:
-		case ODM_RATEMCS6:
-		case ODM_RATEMCS5:
-		case ODM_RATEMCS4:
-		case ODM_RATEMCS3:
-		case ODM_RATE54M:
-		case ODM_RATE48M:
-		case ODM_RATE36M:
-		case ODM_RATE24M:
-			rts_ini_rate = ODM_RATE24M;
-			break;
-		case ODM_RATEVHTSS3MCS2:
-		case ODM_RATEVHTSS3MCS1:
-		case ODM_RATEVHTSS2MCS2:
-		case ODM_RATEVHTSS2MCS1:
-		case ODM_RATEVHTSS1MCS2:
-		case ODM_RATEVHTSS1MCS1:
-		case ODM_RATEMCS10:
-		case ODM_RATEMCS9:
-		case ODM_RATEMCS2:
-		case ODM_RATEMCS1:
-		case ODM_RATE18M:
-		case ODM_RATE12M:
-			rts_ini_rate = ODM_RATE12M;
-			break;
-		case ODM_RATEVHTSS3MCS0:
-		case ODM_RATEVHTSS2MCS0:
-		case ODM_RATEVHTSS1MCS0:
-		case ODM_RATEMCS8:
-		case ODM_RATEMCS0:
-		case ODM_RATE9M:
-		case ODM_RATE6M:
-			rts_ini_rate = ODM_RATE6M;
-			break;
-		case ODM_RATE11M:
-		case ODM_RATE5_5M:
-		case ODM_RATE2M:
-		case ODM_RATE1M:
-			rts_ini_rate = ODM_RATE1M;
-			break;
-		default:
-			rts_ini_rate = ODM_RATE6M;
-			break;
-		}
-	}
-
-	if (*dm->band_type == 1) {
-		if (rts_ini_rate < ODM_RATE6M)
-			rts_ini_rate = ODM_RATE6M;
-	}
-	return rts_ini_rate;
-}
-
-static void odm_set_ra_dm_arfb_by_noisy(struct phy_dm_struct *dm) {}
-
-void odm_update_noisy_state(void *dm_void, bool is_noisy_state_from_c2h)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	/* JJ ADD 20161014 */
-	if (dm->support_ic_type == ODM_RTL8821 ||
-	    dm->support_ic_type == ODM_RTL8812 ||
-	    dm->support_ic_type == ODM_RTL8723B ||
-	    dm->support_ic_type == ODM_RTL8192E ||
-	    dm->support_ic_type == ODM_RTL8188E ||
-	    dm->support_ic_type == ODM_RTL8723D ||
-	    dm->support_ic_type == ODM_RTL8710B)
-		dm->is_noisy_state = is_noisy_state_from_c2h;
-	odm_set_ra_dm_arfb_by_noisy(dm);
-};
-
-void phydm_update_pwr_track(void *dm_void, u8 rate)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK, "Pwr Track Get rate=0x%x\n",
-		     rate);
-
-	dm->tx_rate = rate;
-}
-
-/* RA_MASK_PHYDMLIZE, will delete it later*/
-
-bool odm_ra_state_check(void *dm_void, s32 rssi, bool is_force_update,
-			u8 *ra_tr_state)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct odm_rate_adaptive *ra = &dm->rate_adaptive;
-	const u8 go_up_gap = 5;
-	u8 high_rssi_thresh_for_ra = ra->high_rssi_thresh;
-	u8 low_rssi_thresh_for_ra = ra->low_rssi_thresh;
-	u8 ratr_state;
-
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-		     "RSSI= (( %d )), Current_RSSI_level = (( %d ))\n", rssi,
-		     *ra_tr_state);
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-		     "[Ori RA RSSI Thresh]  High= (( %d )), Low = (( %d ))\n",
-		     high_rssi_thresh_for_ra, low_rssi_thresh_for_ra);
-	/* threshold Adjustment:
-	 * when RSSI state trends to go up one or two levels, make sure RSSI is
-	 * high enough. Here go_up_gap is added to solve the boundary's level
-	 * alternation issue.
-	 */
-
-	switch (*ra_tr_state) {
-	case DM_RATR_STA_INIT:
-	case DM_RATR_STA_HIGH:
-		break;
-
-	case DM_RATR_STA_MIDDLE:
-		high_rssi_thresh_for_ra += go_up_gap;
-		break;
-
-	case DM_RATR_STA_LOW:
-		high_rssi_thresh_for_ra += go_up_gap;
-		low_rssi_thresh_for_ra += go_up_gap;
-		break;
-
-	default:
-		WARN_ONCE(true, "wrong rssi level setting %d !", *ra_tr_state);
-		break;
-	}
-
-	/* Decide ratr_state by RSSI.*/
-	if (rssi > high_rssi_thresh_for_ra)
-		ratr_state = DM_RATR_STA_HIGH;
-	else if (rssi > low_rssi_thresh_for_ra)
-		ratr_state = DM_RATR_STA_MIDDLE;
-
-	else
-		ratr_state = DM_RATR_STA_LOW;
-	ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-		     "[Mod RA RSSI Thresh]  High= (( %d )), Low = (( %d ))\n",
-		     high_rssi_thresh_for_ra, low_rssi_thresh_for_ra);
-
-	if (*ra_tr_state != ratr_state || is_force_update) {
-		ODM_RT_TRACE(dm, ODM_COMP_RA_MASK,
-			     "[RSSI Level Update] %d->%d\n", *ra_tr_state,
-			     ratr_state);
-		*ra_tr_state = ratr_state;
-		return true;
-	}
-
-	return false;
-}
diff --git a/drivers/staging/rtlwifi/phydm/phydm_rainfo.h b/drivers/staging/rtlwifi/phydm/phydm_rainfo.h
deleted file mode 100644
index 6c1f30e..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_rainfo.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __PHYDMRAINFO_H__
-#define __PHYDMRAINFO_H__
-
-/*#define RAINFO_VERSION	"2.0"*/ /*2014.11.04*/
-/*#define RAINFO_VERSION	"3.0"*/ /*2015.01.13 Dino*/
-/*#define RAINFO_VERSION	"3.1"*/ /*2015.01.14 Dino*/
-/*#define RAINFO_VERSION	"3.3"*/ /*2015.07.29 YuChen*/
-/*#define RAINFO_VERSION	"3.4"*/ /*2015.12.15 Stanley*/
-/*#define RAINFO_VERSION	"4.0"*/ /*2016.03.24 Dino, Add more RA mask
-					  *state and Phydm-lize partial ra mask
-					  *function
-					  */
-/*#define RAINFO_VERSION	"4.1"*/ /*2016.04.20 Dino, Add new function to
-					  *adjust PCR RA threshold
-					  */
-/*#define RAINFO_VERSION	"4.2"*/ /*2016.05.17 Dino, Add H2C debug cmd */
-#define RAINFO_VERSION "4.3" /*2016.07.11 Dino, Fix RA hang in CCK 1M problem*/
-
-#define FORCED_UPDATE_RAMASK_PERIOD 5
-
-#define H2C_0X42_LENGTH 5
-#define H2C_MAX_LENGTH 7
-
-#define RA_FLOOR_UP_GAP 3
-#define RA_FLOOR_TABLE_SIZE 7
-
-#define ACTIVE_TP_THRESHOLD 150
-#define RA_RETRY_DESCEND_NUM 2
-#define RA_RETRY_LIMIT_LOW 4
-#define RA_RETRY_LIMIT_HIGH 32
-
-#define RAINFO_BE_RX_STATE BIT(0) /* 1:RX    */ /* ULDL */
-#define RAINFO_STBC_STATE BIT(1)
-/* #define RAINFO_LDPC_STATE			BIT2 */
-#define RAINFO_NOISY_STATE BIT(2) /* set by Noisy_Detection */
-#define RAINFO_SHURTCUT_STATE BIT(3)
-#define RAINFO_SHURTCUT_FLAG BIT(4)
-#define RAINFO_INIT_RSSI_RATE_STATE BIT(5)
-#define RAINFO_BF_STATE BIT(6)
-#define RAINFO_BE_TX_STATE BIT(7) /* 1:TX */
-
-#define RA_MASK_CCK 0xf
-#define RA_MASK_OFDM 0xff0
-#define RA_MASK_HT1SS 0xff000
-#define RA_MASK_HT2SS 0xff00000
-/*#define	RA_MASK_MCS3SS	*/
-#define RA_MASK_HT4SS 0xff0
-#define RA_MASK_VHT1SS 0x3ff000
-#define RA_MASK_VHT2SS 0xffc00000
-
-#define RA_FIRST_MACID 0
-
-#define ap_init_rate_adaptive_state odm_rate_adaptive_state_ap_init
-
-#define DM_RATR_STA_INIT 0
-#define DM_RATR_STA_HIGH 1
-#define DM_RATR_STA_MIDDLE 2
-#define DM_RATR_STA_LOW 3
-#define DM_RATR_STA_ULTRA_LOW 4
-
-enum phydm_ra_arfr_num {
-	ARFR_0_RATE_ID = 0x9,
-	ARFR_1_RATE_ID = 0xa,
-	ARFR_2_RATE_ID = 0xb,
-	ARFR_3_RATE_ID = 0xc,
-	ARFR_4_RATE_ID = 0xd,
-	ARFR_5_RATE_ID = 0xe
-};
-
-enum phydm_ra_dbg_para {
-	RADBG_PCR_TH_OFFSET = 0,
-	RADBG_RTY_PENALTY = 1,
-	RADBG_N_HIGH = 2,
-	RADBG_N_LOW = 3,
-	RADBG_TRATE_UP_TABLE = 4,
-	RADBG_TRATE_DOWN_TABLE = 5,
-	RADBG_TRYING_NECESSARY = 6,
-	RADBG_TDROPING_NECESSARY = 7,
-	RADBG_RATE_UP_RTY_RATIO = 8,
-	RADBG_RATE_DOWN_RTY_RATIO = 9, /* u8 */
-
-	RADBG_DEBUG_MONITOR1 = 0xc,
-	RADBG_DEBUG_MONITOR2 = 0xd,
-	RADBG_DEBUG_MONITOR3 = 0xe,
-	RADBG_DEBUG_MONITOR4 = 0xf,
-	RADBG_DEBUG_MONITOR5 = 0x10,
-	NUM_RA_PARA
-};
-
-enum phydm_wireless_mode {
-	PHYDM_WIRELESS_MODE_UNKNOWN = 0x00,
-	PHYDM_WIRELESS_MODE_A = 0x01,
-	PHYDM_WIRELESS_MODE_B = 0x02,
-	PHYDM_WIRELESS_MODE_G = 0x04,
-	PHYDM_WIRELESS_MODE_AUTO = 0x08,
-	PHYDM_WIRELESS_MODE_N_24G = 0x10,
-	PHYDM_WIRELESS_MODE_N_5G = 0x20,
-	PHYDM_WIRELESS_MODE_AC_5G = 0x40,
-	PHYDM_WIRELESS_MODE_AC_24G = 0x80,
-	PHYDM_WIRELESS_MODE_AC_ONLY = 0x100,
-	PHYDM_WIRELESS_MODE_MAX = 0x800,
-	PHYDM_WIRELESS_MODE_ALL = 0xFFFF
-};
-
-enum phydm_rateid_idx {
-	PHYDM_BGN_40M_2SS = 0,
-	PHYDM_BGN_40M_1SS = 1,
-	PHYDM_BGN_20M_2SS = 2,
-	PHYDM_BGN_20M_1SS = 3,
-	PHYDM_GN_N2SS = 4,
-	PHYDM_GN_N1SS = 5,
-	PHYDM_BG = 6,
-	PHYDM_G = 7,
-	PHYDM_B_20M = 8,
-	PHYDM_ARFR0_AC_2SS = 9,
-	PHYDM_ARFR1_AC_1SS = 10,
-	PHYDM_ARFR2_AC_2G_1SS = 11,
-	PHYDM_ARFR3_AC_2G_2SS = 12,
-	PHYDM_ARFR4_AC_3SS = 13,
-	PHYDM_ARFR5_N_3SS = 14
-};
-
-enum phydm_rf_type_def {
-	PHYDM_RF_1T1R = 0,
-	PHYDM_RF_1T2R,
-	PHYDM_RF_2T2R,
-	PHYDM_RF_2T2R_GREEN,
-	PHYDM_RF_2T3R,
-	PHYDM_RF_2T4R,
-	PHYDM_RF_3T3R,
-	PHYDM_RF_3T4R,
-	PHYDM_RF_4T4R,
-	PHYDM_RF_MAX_TYPE
-};
-
-enum phydm_bw {
-	PHYDM_BW_20 = 0,
-	PHYDM_BW_40,
-	PHYDM_BW_80,
-	PHYDM_BW_80_80,
-	PHYDM_BW_160,
-	PHYDM_BW_10,
-	PHYDM_BW_5
-};
-
-struct ra_table {
-	u8 firstconnect;
-
-	u8 link_tx_rate[ODM_ASSOCIATE_ENTRY_NUM];
-	u8 highest_client_tx_order;
-	u16 highest_client_tx_rate_order;
-	u8 power_tracking_flag;
-	u8 RA_threshold_offset;
-	u8 RA_offset_direction;
-	u8 force_update_ra_mask_count;
-};
-
-struct odm_rate_adaptive {
-	/* dm_type_by_fw/dm_type_by_driver */
-	u8 type;
-	/* if RSSI > high_rssi_thresh	=> ratr_state is DM_RATR_STA_HIGH */
-	u8 high_rssi_thresh;
-	/* if RSSI <= low_rssi_thresh	=> ratr_state is DM_RATR_STA_LOW */
-	u8 low_rssi_thresh;
-	/* Cur RSSI level, DM_RATR_STA_HIGH/DM_RATR_STA_MIDDLE/DM_RATR_STA_LOW*/
-	u8 ratr_state;
-
-	/* if RSSI > ldpc_thres => switch from LPDC to BCC */
-	u8 ldpc_thres;
-	bool is_lower_rts_rate;
-
-	bool is_use_ldpc;
-};
-
-void phydm_h2C_debug(void *dm_void, u32 *const dm_value, u32 *_used,
-		     char *output, u32 *_out_len);
-
-void phydm_RA_debug_PCR(void *dm_void, u32 *const dm_value, u32 *_used,
-			char *output, u32 *_out_len);
-
-void odm_c2h_ra_para_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len);
-
-void odm_ra_para_adjust(void *dm_void);
-
-void phydm_ra_dynamic_retry_count(void *dm_void);
-
-void phydm_ra_dynamic_retry_limit(void *dm_void);
-
-void phydm_ra_dynamic_rate_id_on_assoc(void *dm_void, u8 wireless_mode,
-				       u8 init_rate_id);
-
-void phydm_print_rate(void *dm_void, u8 rate, u32 dbg_component);
-
-void phydm_c2h_ra_report_handler(void *dm_void, u8 *cmd_buf, u8 cmd_len);
-
-u8 phydm_rate_order_compute(void *dm_void, u8 rate_idx);
-
-void phydm_ra_info_watchdog(void *dm_void);
-
-void phydm_ra_info_init(void *dm_void);
-
-void odm_rssi_monitor_init(void *dm_void);
-
-void phydm_modify_RA_PCR_threshold(void *dm_void, u8 RA_offset_direction,
-				   u8 RA_threshold_offset);
-
-void odm_rssi_monitor_check(void *dm_void);
-
-void phydm_init_ra_info(void *dm_void);
-
-u8 phydm_vht_en_mapping(void *dm_void, u32 wireless_mode);
-
-u8 phydm_rate_id_mapping(void *dm_void, u32 wireless_mode, u8 rf_type, u8 bw);
-
-void phydm_update_hal_ra_mask(void *dm_void, u32 wireless_mode, u8 rf_type,
-			      u8 BW, u8 mimo_ps_enable, u8 disable_cck_rate,
-			      u32 *ratr_bitmap_msb_in, u32 *ratr_bitmap_in,
-			      u8 tx_rate_level);
-
-void odm_rate_adaptive_mask_init(void *dm_void);
-
-void odm_refresh_rate_adaptive_mask(void *dm_void);
-
-void odm_refresh_rate_adaptive_mask_mp(void *dm_void);
-
-void odm_refresh_rate_adaptive_mask_ce(void *dm_void);
-
-void odm_refresh_rate_adaptive_mask_apadsl(void *dm_void);
-
-u8 phydm_RA_level_decision(void *dm_void, u32 rssi, u8 ratr_state);
-
-bool odm_ra_state_check(void *dm_void, s32 RSSI, bool is_force_update,
-			u8 *ra_tr_state);
-
-void odm_refresh_basic_rate_mask(void *dm_void);
-void odm_ra_post_action_on_assoc(void *dm);
-
-u8 odm_find_rts_rate(void *dm_void, u8 tx_rate, bool is_erp_protect);
-
-void odm_update_noisy_state(void *dm_void, bool is_noisy_state_from_c2h);
-
-void phydm_update_pwr_track(void *dm_void, u8 rate);
-
-#endif /*#ifndef	__ODMRAINFO_H__*/
diff --git a/drivers/staging/rtlwifi/phydm/phydm_regdefine11ac.h b/drivers/staging/rtlwifi/phydm/phydm_regdefine11ac.h
deleted file mode 100644
index 5b59dff..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_regdefine11ac.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __ODM_REGDEFINE11AC_H__
-#define __ODM_REGDEFINE11AC_H__
-
-/* 2 RF REG LIST */
-
-/* 2 BB REG LIST */
-/* PAGE 8 */
-#define ODM_REG_CCK_RPT_FORMAT_11AC 0x804
-#define ODM_REG_BB_RX_PATH_11AC 0x808
-#define ODM_REG_BB_TX_PATH_11AC 0x80c
-#define ODM_REG_BB_ATC_11AC 0x860
-#define ODM_REG_EDCCA_POWER_CAL 0x8dc
-#define ODM_REG_DBG_RPT_11AC 0x8fc
-/* PAGE 9 */
-#define ODM_REG_EDCCA_DOWN_OPT 0x900
-#define ODM_REG_ACBB_EDCCA_ENHANCE 0x944
-#define odm_adc_trigger_jaguar2 0x95C /*ADC sample mode*/
-#define ODM_REG_OFDM_FA_RST_11AC 0x9A4
-#define ODM_REG_CCX_PERIOD_11AC 0x990
-#define ODM_REG_NHM_TH9_TH10_11AC 0x994
-#define ODM_REG_CLM_11AC 0x994
-#define ODM_REG_NHM_TH3_TO_TH0_11AC 0x998
-#define ODM_REG_NHM_TH7_TO_TH4_11AC 0x99c
-#define ODM_REG_NHM_TH8_11AC 0x9a0
-#define ODM_REG_NHM_9E8_11AC 0x9e8
-#define ODM_REG_CSI_CONTENT_VALUE 0x9b4
-/* PAGE A */
-#define ODM_REG_CCK_CCA_11AC 0xA0A
-#define ODM_REG_CCK_FA_RST_11AC 0xA2C
-#define ODM_REG_CCK_FA_11AC 0xA5C
-/* PAGE B */
-#define ODM_REG_RST_RPT_11AC 0xB58
-/* PAGE C */
-#define ODM_REG_TRMUX_11AC 0xC08
-#define ODM_REG_IGI_A_11AC 0xC50
-/* PAGE E */
-#define ODM_REG_IGI_B_11AC 0xE50
-#define ODM_REG_TRMUX_11AC_B 0xE08
-/* PAGE F */
-#define ODM_REG_CCK_CRC32_CNT_11AC 0xF04
-#define ODM_REG_CCK_CCA_CNT_11AC 0xF08
-#define ODM_REG_VHT_CRC32_CNT_11AC 0xF0c
-#define ODM_REG_HT_CRC32_CNT_11AC 0xF10
-#define ODM_REG_OFDM_CRC32_CNT_11AC 0xF14
-#define ODM_REG_OFDM_FA_11AC 0xF48
-#define ODM_REG_RPT_11AC 0xfa0
-#define ODM_REG_CLM_RESULT_11AC 0xfa4
-#define ODM_REG_NHM_CNT_11AC 0xfa8
-#define ODM_REG_NHM_DUR_READY_11AC 0xfb4
-
-#define ODM_REG_NHM_CNT7_TO_CNT4_11AC 0xfac
-#define ODM_REG_NHM_CNT11_TO_CNT8_11AC 0xfb0
-#define ODM_REG_OFDM_FA_TYPE2_11AC 0xFD0
-/* PAGE 18 */
-#define ODM_REG_IGI_C_11AC 0x1850
-/* PAGE 1A */
-#define ODM_REG_IGI_D_11AC 0x1A50
-
-/* 2 MAC REG LIST */
-#define ODM_REG_RESP_TX_11AC 0x6D8
-
-/* DIG Related */
-#define ODM_BIT_IGI_11AC 0xFFFFFFFF
-#define ODM_BIT_CCK_RPT_FORMAT_11AC BIT(16)
-#define ODM_BIT_BB_RX_PATH_11AC 0xF
-#define ODM_BIT_BB_TX_PATH_11AC 0xF
-#define ODM_BIT_BB_ATC_11AC BIT(14)
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/phydm_types.h b/drivers/staging/rtlwifi/phydm/phydm_types.h
deleted file mode 100644
index 082bb03..0000000
--- a/drivers/staging/rtlwifi/phydm/phydm_types.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __ODM_TYPES_H__
-#define __ODM_TYPES_H__
-
-/*Define Different SW team support*/
-#define ODM_AP 0x01 /*BIT0*/
-#define ODM_CE 0x04 /*BIT2*/
-#define ODM_WIN 0x08 /*BIT3*/
-#define ODM_ADSL 0x10 /*BIT4*/
-#define ODM_IOT 0x20 /*BIT5*/
-
-/*Deifne HW endian support*/
-#define ODM_ENDIAN_BIG 0
-#define ODM_ENDIAN_LITTLE 1
-
-#define GET_PDM_ODM(__padapter)                                                \
-	((struct phy_dm_struct *)(&(GET_HAL_DATA(__padapter))->odmpriv))
-
-enum hal_status {
-	HAL_STATUS_SUCCESS,
-	HAL_STATUS_FAILURE,
-};
-
-/*
- * Declare for ODM spin lock definition temporarily fro compile pass.
- */
-enum rt_spinlock_type {
-	RT_TX_SPINLOCK = 1,
-	RT_RX_SPINLOCK = 2,
-	RT_RM_SPINLOCK = 3,
-	RT_CAM_SPINLOCK = 4,
-	RT_SCAN_SPINLOCK = 5,
-	RT_LOG_SPINLOCK = 7,
-	RT_BW_SPINLOCK = 8,
-	RT_CHNLOP_SPINLOCK = 9,
-	RT_RF_OPERATE_SPINLOCK = 10,
-	RT_INITIAL_SPINLOCK = 11,
-	RT_RF_STATE_SPINLOCK =
-		12, /* For RF state. Added by Bruce, 2007-10-30. */
-	/* Shall we define Ndis 6.2 SpinLock Here ? */
-	RT_PORT_SPINLOCK = 16,
-	RT_VNIC_SPINLOCK = 17,
-	RT_HVL_SPINLOCK = 18,
-	RT_H2C_SPINLOCK = 20, /* For H2C cmd. Added by tynli. 2009.11.09. */
-
-	rt_bt_data_spinlock = 25,
-
-	RT_WAPI_OPTION_SPINLOCK = 26,
-	RT_WAPI_RX_SPINLOCK = 27,
-
-	/* add for 92D CCK control issue */
-	RT_CCK_PAGEA_SPINLOCK = 28,
-	RT_BUFFER_SPINLOCK = 29,
-	RT_CHANNEL_AND_BANDWIDTH_SPINLOCK = 30,
-	RT_GEN_TEMP_BUF_SPINLOCK = 31,
-	RT_AWB_SPINLOCK = 32,
-	RT_FW_PS_SPINLOCK = 33,
-	RT_HW_TIMER_SPIN_LOCK = 34,
-	RT_MPT_WI_SPINLOCK = 35,
-	RT_P2P_SPIN_LOCK = 36, /* Protect P2P context */
-	RT_DBG_SPIN_LOCK = 37,
-	RT_IQK_SPINLOCK = 38,
-	RT_PENDED_OID_SPINLOCK = 39,
-	RT_CHNLLIST_SPINLOCK = 40,
-	RT_INDIC_SPINLOCK = 41, /* protect indication */
-	RT_RFD_SPINLOCK = 42,
-	RT_SYNC_IO_CNT_SPINLOCK = 43,
-	RT_LAST_SPINLOCK,
-};
-
-#include <asm/byteorder.h>
-
-#if defined(__LITTLE_ENDIAN)
-#define ODM_ENDIAN_TYPE ODM_ENDIAN_LITTLE
-#elif defined(__BIG_ENDIAN)
-#define ODM_ENDIAN_TYPE ODM_ENDIAN_BIG
-#else
-#error
-#endif
-
-#define COND_ELSE 2
-#define COND_ENDIF 3
-
-#define MASKBYTE0 0xff
-#define MASKBYTE1 0xff00
-#define MASKBYTE2 0xff0000
-#define MASKBYTE3 0xff000000
-#define MASKHWORD 0xffff0000
-#define MASKLWORD 0x0000ffff
-#define MASKDWORD 0xffffffff
-#define MASK7BITS 0x7f
-#define MASK12BITS 0xfff
-#define MASKH4BITS 0xf0000000
-#define MASK20BITS 0xfffff
-#define MASKOFDM_D 0xffc00000
-#define MASKCCK 0x3f3f3f3f
-#define RFREGOFFSETMASK 0xfffff
-#define MASKH3BYTES 0xffffff00
-#define MASKL3BYTES 0x00ffffff
-#define MASKBYTE2HIGHNIBBLE 0x00f00000
-#define MASKBYTE3LOWNIBBLE 0x0f000000
-#define MASKL3BYTES 0x00ffffff
-#define RFREGOFFSETMASK 0xfffff
-
-#include "phydm_features.h"
-
-#endif /* __ODM_TYPES_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_bb.c b/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_bb.c
deleted file mode 100644
index 52a113d..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_bb.c
+++ /dev/null
@@ -1,1956 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/*Image2HeaderVersion: 3.2*/
-#include "../mp_precomp.h"
-#include "../phydm_precomp.h"
-#include <linux/kernel.h>
-
-static bool check_positive(struct phy_dm_struct *dm, const u32 condition1,
-			   const u32 condition2, const u32 condition3,
-			   const u32 condition4)
-{
-	u8 _board_type = ((dm->board_type & BIT(4)) >> 4) << 0 | /* _GLNA*/
-			 ((dm->board_type & BIT(3)) >> 3) << 1 | /* _GPA*/
-			 ((dm->board_type & BIT(7)) >> 7) << 2 | /* _ALNA*/
-			 ((dm->board_type & BIT(6)) >> 6) << 3 | /* _APA */
-			 ((dm->board_type & BIT(2)) >> 2) << 4; /* _BT*/
-
-	u32 cond1 = condition1, cond2 = condition2, cond3 = condition3,
-	    cond4 = condition4;
-
-	u8 cut_version_for_para =
-		(dm->cut_version == ODM_CUT_A) ? 14 : dm->cut_version;
-	u8 pkg_type_for_para = (dm->package_type == 0) ? 14 : dm->package_type;
-
-	u32 driver1 = cut_version_for_para << 24 |
-		      (dm->support_interface & 0xF0) << 16 |
-		      dm->support_platform << 16 | pkg_type_for_para << 12 |
-		      (dm->support_interface & 0x0F) << 8 | _board_type;
-
-	u32 driver2 = (dm->type_glna & 0xFF) << 0 | (dm->type_gpa & 0xFF) << 8 |
-		      (dm->type_alna & 0xFF) << 16 |
-		      (dm->type_apa & 0xFF) << 24;
-
-	u32 driver3 = 0;
-
-	u32 driver4 = (dm->type_glna & 0xFF00) >> 8 | (dm->type_gpa & 0xFF00) |
-		      (dm->type_alna & 0xFF00) << 8 |
-		      (dm->type_apa & 0xFF00) << 16;
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"===> %s (cond1, cond2, cond3, cond4) = (0x%X 0x%X 0x%X 0x%X)\n",
-		__func__, cond1, cond2, cond3, cond4);
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"===> %s (driver1, driver2, driver3, driver4) = (0x%X 0x%X 0x%X 0x%X)\n",
-		__func__, driver1, driver2, driver3, driver4);
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "	(Platform, Interface) = (0x%X, 0x%X)\n",
-		     dm->support_platform, dm->support_interface);
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "	(Board, Package) = (0x%X, 0x%X)\n",
-		     dm->board_type, dm->package_type);
-
-	/*============== value Defined Check ===============*/
-	/*QFN type [15:12] and cut version [27:24] need to do value check*/
-
-	if (((cond1 & 0x0000F000) != 0) &&
-	    ((cond1 & 0x0000F000) != (driver1 & 0x0000F000)))
-		return false;
-	if (((cond1 & 0x0F000000) != 0) &&
-	    ((cond1 & 0x0F000000) != (driver1 & 0x0F000000)))
-		return false;
-
-	/*=============== Bit Defined Check ================*/
-	/* We don't care [31:28] */
-
-	cond1 &= 0x00FF0FFF;
-	driver1 &= 0x00FF0FFF;
-
-	if ((cond1 & driver1) == cond1) {
-		u32 bit_mask = 0;
-
-		if ((cond1 & 0x0F) == 0) /* board_type is DONTCARE*/
-			return true;
-
-		if ((cond1 & BIT(0)) != 0) /*GLNA*/
-			bit_mask |= 0x000000FF;
-		if ((cond1 & BIT(1)) != 0) /*GPA*/
-			bit_mask |= 0x0000FF00;
-		if ((cond1 & BIT(2)) != 0) /*ALNA*/
-			bit_mask |= 0x00FF0000;
-		if ((cond1 & BIT(3)) != 0) /*APA*/
-			bit_mask |= 0xFF000000;
-
-		if (((cond2 & bit_mask) == (driver2 & bit_mask)) &&
-		    ((cond4 & bit_mask) ==
-		     (driver4 &
-		      bit_mask))) /* board_type of each RF path is matched*/
-			return true;
-		else
-			return false;
-	} else {
-		return false;
-	}
-}
-
-/******************************************************************************
- *                           agc_tab.TXT
- ******************************************************************************/
-
-static u32 array_mp_8822b_agc_tab[] = {
-	0x8000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x81C,      0xFF000003,
-	0x81C,      0xF5000003, 0x81C,      0xF4020003, 0x81C,      0xF3040003,
-	0x81C,      0xF2060003, 0x81C,      0xF1080003, 0x81C,      0xF00A0003,
-	0x81C,      0xEF0C0003, 0x81C,      0xEE0E0003, 0x81C,      0xED100003,
-	0x81C,      0xEC120003, 0x81C,      0xEB140003, 0x81C,      0xEA160003,
-	0x81C,      0xE9180003, 0x81C,      0xE81A0003, 0x81C,      0xE71C0003,
-	0x81C,      0xE61E0003, 0x81C,      0xE5200003, 0x81C,      0xE4220003,
-	0x81C,      0xE3240003, 0x81C,      0xE2260003, 0x81C,      0xE1280003,
-	0x81C,      0xE02A0003, 0x81C,      0xC32C0003, 0x81C,      0xC22E0003,
-	0x81C,      0xC1300003, 0x81C,      0xC0320003, 0x81C,      0xA4340003,
-	0x81C,      0xA3360003, 0x81C,      0xA2380003, 0x81C,      0xA13A0003,
-	0x81C,      0xA03C0003, 0x81C,      0x823E0003, 0x81C,      0x81400003,
-	0x81C,      0x80420003, 0x81C,      0x64440003, 0x81C,      0x63460003,
-	0x81C,      0x62480003, 0x81C,      0x614A0003, 0x81C,      0x604C0003,
-	0x81C,      0x454E0003, 0x81C,      0x44500003, 0x81C,      0x43520003,
-	0x81C,      0x42540003, 0x81C,      0x41560003, 0x81C,      0x40580003,
-	0x81C,      0x055A0003, 0x81C,      0x045C0003, 0x81C,      0x035E0003,
-	0x81C,      0x02600003, 0x81C,      0x01620003, 0x81C,      0x00640003,
-	0x81C,      0x00660003, 0x81C,      0x00680003, 0x81C,      0x006A0003,
-	0x81C,      0x006C0003, 0x81C,      0x006E0003, 0x81C,      0x00700003,
-	0x81C,      0x00720003, 0x81C,      0x00740003, 0x81C,      0x00760003,
-	0x81C,      0x00780003, 0x81C,      0x007A0003, 0x81C,      0x007C0003,
-	0x81C,      0x007E0003, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x81C,      0xFF000003, 0x81C,      0xF5000003, 0x81C,      0xF4020003,
-	0x81C,      0xF3040003, 0x81C,      0xF2060003, 0x81C,      0xF1080003,
-	0x81C,      0xF00A0003, 0x81C,      0xEF0C0003, 0x81C,      0xEE0E0003,
-	0x81C,      0xED100003, 0x81C,      0xEC120003, 0x81C,      0xEB140003,
-	0x81C,      0xEA160003, 0x81C,      0xE9180003, 0x81C,      0xE81A0003,
-	0x81C,      0xE71C0003, 0x81C,      0xE61E0003, 0x81C,      0xE5200003,
-	0x81C,      0xE4220003, 0x81C,      0xE3240003, 0x81C,      0xE2260003,
-	0x81C,      0xE1280003, 0x81C,      0xE02A0003, 0x81C,      0xC32C0003,
-	0x81C,      0xC22E0003, 0x81C,      0xC1300003, 0x81C,      0xC0320003,
-	0x81C,      0xA4340003, 0x81C,      0xA3360003, 0x81C,      0xA2380003,
-	0x81C,      0xA13A0003, 0x81C,      0xA03C0003, 0x81C,      0x823E0003,
-	0x81C,      0x81400003, 0x81C,      0x80420003, 0x81C,      0x64440003,
-	0x81C,      0x63460003, 0x81C,      0x62480003, 0x81C,      0x614A0003,
-	0x81C,      0x604C0003, 0x81C,      0x454E0003, 0x81C,      0x44500003,
-	0x81C,      0x43520003, 0x81C,      0x42540003, 0x81C,      0x41560003,
-	0x81C,      0x40580003, 0x81C,      0x055A0003, 0x81C,      0x045C0003,
-	0x81C,      0x035E0003, 0x81C,      0x02600003, 0x81C,      0x01620003,
-	0x81C,      0x00640003, 0x81C,      0x00660003, 0x81C,      0x00680003,
-	0x81C,      0x006A0003, 0x81C,      0x006C0003, 0x81C,      0x006E0003,
-	0x81C,      0x00700003, 0x81C,      0x00720003, 0x81C,      0x00740003,
-	0x81C,      0x00760003, 0x81C,      0x00780003, 0x81C,      0x007A0003,
-	0x81C,      0x007C0003, 0x81C,      0x007E0003, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFF000003, 0x81C,      0xF5000003,
-	0x81C,      0xF4020003, 0x81C,      0xF3040003, 0x81C,      0xF2060003,
-	0x81C,      0xF1080003, 0x81C,      0xF00A0003, 0x81C,      0xEF0C0003,
-	0x81C,      0xEE0E0003, 0x81C,      0xED100003, 0x81C,      0xEC120003,
-	0x81C,      0xEB140003, 0x81C,      0xEA160003, 0x81C,      0xE9180003,
-	0x81C,      0xE81A0003, 0x81C,      0xE71C0003, 0x81C,      0xE61E0003,
-	0x81C,      0xE5200003, 0x81C,      0xE4220003, 0x81C,      0xE3240003,
-	0x81C,      0xE2260003, 0x81C,      0xE1280003, 0x81C,      0xE02A0003,
-	0x81C,      0xC32C0003, 0x81C,      0xC22E0003, 0x81C,      0xC1300003,
-	0x81C,      0xC0320003, 0x81C,      0xA4340003, 0x81C,      0xA3360003,
-	0x81C,      0xA2380003, 0x81C,      0xA13A0003, 0x81C,      0xA03C0003,
-	0x81C,      0x823E0003, 0x81C,      0x81400003, 0x81C,      0x80420003,
-	0x81C,      0x64440003, 0x81C,      0x63460003, 0x81C,      0x62480003,
-	0x81C,      0x614A0003, 0x81C,      0x604C0003, 0x81C,      0x454E0003,
-	0x81C,      0x44500003, 0x81C,      0x43520003, 0x81C,      0x42540003,
-	0x81C,      0x41560003, 0x81C,      0x40580003, 0x81C,      0x055A0003,
-	0x81C,      0x045C0003, 0x81C,      0x035E0003, 0x81C,      0x02600003,
-	0x81C,      0x01620003, 0x81C,      0x00640003, 0x81C,      0x00660003,
-	0x81C,      0x00680003, 0x81C,      0x006A0003, 0x81C,      0x006C0003,
-	0x81C,      0x006E0003, 0x81C,      0x00700003, 0x81C,      0x00720003,
-	0x81C,      0x00740003, 0x81C,      0x00760003, 0x81C,      0x00780003,
-	0x81C,      0x007A0003, 0x81C,      0x007C0003, 0x81C,      0x007E0003,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x81C,      0xFF000003,
-	0x81C,      0xF5000003, 0x81C,      0xF4020003, 0x81C,      0xF3040003,
-	0x81C,      0xF2060003, 0x81C,      0xF1080003, 0x81C,      0xF00A0003,
-	0x81C,      0xEF0C0003, 0x81C,      0xEE0E0003, 0x81C,      0xED100003,
-	0x81C,      0xEC120003, 0x81C,      0xEB140003, 0x81C,      0xEA160003,
-	0x81C,      0xE9180003, 0x81C,      0xE81A0003, 0x81C,      0xE71C0003,
-	0x81C,      0xE61E0003, 0x81C,      0xE5200003, 0x81C,      0xE4220003,
-	0x81C,      0xE3240003, 0x81C,      0xE2260003, 0x81C,      0xE1280003,
-	0x81C,      0xE02A0003, 0x81C,      0xC32C0003, 0x81C,      0xC22E0003,
-	0x81C,      0xC1300003, 0x81C,      0xC0320003, 0x81C,      0xA4340003,
-	0x81C,      0xA3360003, 0x81C,      0xA2380003, 0x81C,      0xA13A0003,
-	0x81C,      0xA03C0003, 0x81C,      0x823E0003, 0x81C,      0x81400003,
-	0x81C,      0x80420003, 0x81C,      0x64440003, 0x81C,      0x63460003,
-	0x81C,      0x62480003, 0x81C,      0x614A0003, 0x81C,      0x604C0003,
-	0x81C,      0x454E0003, 0x81C,      0x44500003, 0x81C,      0x43520003,
-	0x81C,      0x42540003, 0x81C,      0x41560003, 0x81C,      0x40580003,
-	0x81C,      0x055A0003, 0x81C,      0x045C0003, 0x81C,      0x035E0003,
-	0x81C,      0x02600003, 0x81C,      0x01620003, 0x81C,      0x00640003,
-	0x81C,      0x00660003, 0x81C,      0x00680003, 0x81C,      0x006A0003,
-	0x81C,      0x006C0003, 0x81C,      0x006E0003, 0x81C,      0x00700003,
-	0x81C,      0x00720003, 0x81C,      0x00740003, 0x81C,      0x00760003,
-	0x81C,      0x00780003, 0x81C,      0x007A0003, 0x81C,      0x007C0003,
-	0x81C,      0x007E0003, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x81C,      0xFF000003, 0x81C,      0xFD000003, 0x81C,      0xFC020003,
-	0x81C,      0xFB040003, 0x81C,      0xFA060003, 0x81C,      0xF9080003,
-	0x81C,      0xF80A0003, 0x81C,      0xF70C0003, 0x81C,      0xF60E0003,
-	0x81C,      0xF5100003, 0x81C,      0xF4120003, 0x81C,      0xF3140003,
-	0x81C,      0xF2160003, 0x81C,      0xF1180003, 0x81C,      0xF01A0003,
-	0x81C,      0xEF1C0003, 0x81C,      0xEE1E0003, 0x81C,      0xED200003,
-	0x81C,      0xEC220003, 0x81C,      0xEB240003, 0x81C,      0xEA260003,
-	0x81C,      0xE9280003, 0x81C,      0xE82A0003, 0x81C,      0xE72C0003,
-	0x81C,      0xE62E0003, 0x81C,      0xE5300003, 0x81C,      0xC8320003,
-	0x81C,      0xC7340003, 0x81C,      0xC6360003, 0x81C,      0xC5380003,
-	0x81C,      0xC43A0003, 0x81C,      0xC33C0003, 0x81C,      0xC23E0003,
-	0x81C,      0xC1400003, 0x81C,      0xC0420003, 0x81C,      0xA5440003,
-	0x81C,      0xA4460003, 0x81C,      0xA3480003, 0x81C,      0xA24A0003,
-	0x81C,      0xA14C0003, 0x81C,      0x834E0003, 0x81C,      0x82500003,
-	0x81C,      0x81520003, 0x81C,      0x80540003, 0x81C,      0x65560003,
-	0x81C,      0x64580003, 0x81C,      0x635A0003, 0x81C,      0x625C0003,
-	0x81C,      0x435E0003, 0x81C,      0x42600003, 0x81C,      0x41620003,
-	0x81C,      0x40640003, 0x81C,      0x06660003, 0x81C,      0x05680003,
-	0x81C,      0x046A0003, 0x81C,      0x036C0003, 0x81C,      0x026E0003,
-	0x81C,      0x01700003, 0x81C,      0x00720003, 0x81C,      0x00740003,
-	0x81C,      0x00760003, 0x81C,      0x00780003, 0x81C,      0x007A0003,
-	0x81C,      0x007C0003, 0x81C,      0x007E0003, 0x90012100, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFF000003, 0x81C,      0xFE000003,
-	0x81C,      0xFD020003, 0x81C,      0xFC040003, 0x81C,      0xFB060003,
-	0x81C,      0xFA080003, 0x81C,      0xF90A0003, 0x81C,      0xF80C0003,
-	0x81C,      0xF70E0003, 0x81C,      0xF6100003, 0x81C,      0xF5120003,
-	0x81C,      0xF4140003, 0x81C,      0xF3160003, 0x81C,      0xF2180003,
-	0x81C,      0xF11A0003, 0x81C,      0xF01C0003, 0x81C,      0xEF1E0003,
-	0x81C,      0xEE200003, 0x81C,      0xED220003, 0x81C,      0xEC240003,
-	0x81C,      0xEB260003, 0x81C,      0xEA280003, 0x81C,      0xE92A0003,
-	0x81C,      0xE82C0003, 0x81C,      0xE72E0003, 0x81C,      0xE6300003,
-	0x81C,      0xE5320003, 0x81C,      0xC8340003, 0x81C,      0xC7360003,
-	0x81C,      0xC6380003, 0x81C,      0xC53A0003, 0x81C,      0xC43C0003,
-	0x81C,      0xC33E0003, 0x81C,      0xC2400003, 0x81C,      0xC1420003,
-	0x81C,      0xC0440003, 0x81C,      0xA3460003, 0x81C,      0xA2480003,
-	0x81C,      0xA14A0003, 0x81C,      0xA04C0003, 0x81C,      0x824E0003,
-	0x81C,      0x81500003, 0x81C,      0x80520003, 0x81C,      0x64540003,
-	0x81C,      0x63560003, 0x81C,      0x62580003, 0x81C,      0x445A0003,
-	0x81C,      0x435C0003, 0x81C,      0x425E0003, 0x81C,      0x41600003,
-	0x81C,      0x40620003, 0x81C,      0x05640003, 0x81C,      0x04660003,
-	0x81C,      0x03680003, 0x81C,      0x026A0003, 0x81C,      0x016C0003,
-	0x81C,      0x006E0003, 0x81C,      0x00700003, 0x81C,      0x00720003,
-	0x81C,      0x00740003, 0x81C,      0x00760003, 0x81C,      0x00780003,
-	0x81C,      0x007A0003, 0x81C,      0x007C0003, 0x81C,      0x007E0003,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x81C,      0xFF000003,
-	0x81C,      0xF5000003, 0x81C,      0xF4020003, 0x81C,      0xF3040003,
-	0x81C,      0xF2060003, 0x81C,      0xF1080003, 0x81C,      0xF00A0003,
-	0x81C,      0xEF0C0003, 0x81C,      0xEE0E0003, 0x81C,      0xED100003,
-	0x81C,      0xEC120003, 0x81C,      0xEB140003, 0x81C,      0xEA160003,
-	0x81C,      0xE9180003, 0x81C,      0xE81A0003, 0x81C,      0xE71C0003,
-	0x81C,      0xE61E0003, 0x81C,      0xE5200003, 0x81C,      0xE4220003,
-	0x81C,      0xE3240003, 0x81C,      0xE2260003, 0x81C,      0xE1280003,
-	0x81C,      0xE02A0003, 0x81C,      0xC32C0003, 0x81C,      0xC22E0003,
-	0x81C,      0xC1300003, 0x81C,      0xC0320003, 0x81C,      0xA4340003,
-	0x81C,      0xA3360003, 0x81C,      0xA2380003, 0x81C,      0xA13A0003,
-	0x81C,      0xA03C0003, 0x81C,      0x823E0003, 0x81C,      0x81400003,
-	0x81C,      0x80420003, 0x81C,      0x64440003, 0x81C,      0x63460003,
-	0x81C,      0x62480003, 0x81C,      0x614A0003, 0x81C,      0x604C0003,
-	0x81C,      0x454E0003, 0x81C,      0x44500003, 0x81C,      0x43520003,
-	0x81C,      0x42540003, 0x81C,      0x41560003, 0x81C,      0x40580003,
-	0x81C,      0x055A0003, 0x81C,      0x045C0003, 0x81C,      0x035E0003,
-	0x81C,      0x02600003, 0x81C,      0x01620003, 0x81C,      0x00640003,
-	0x81C,      0x00660003, 0x81C,      0x00680003, 0x81C,      0x006A0003,
-	0x81C,      0x006C0003, 0x81C,      0x006E0003, 0x81C,      0x00700003,
-	0x81C,      0x00720003, 0x81C,      0x00740003, 0x81C,      0x00760003,
-	0x81C,      0x00780003, 0x81C,      0x007A0003, 0x81C,      0x007C0003,
-	0x81C,      0x007E0003, 0x90011000, 0x00000000, 0x40000000, 0x00000000,
-	0x81C,      0xFF000003, 0x81C,      0xFE000003, 0x81C,      0xFD020003,
-	0x81C,      0xFC040003, 0x81C,      0xFB060003, 0x81C,      0xFA080003,
-	0x81C,      0xF90A0003, 0x81C,      0xF80C0003, 0x81C,      0xF70E0003,
-	0x81C,      0xF6100003, 0x81C,      0xF5120003, 0x81C,      0xF4140003,
-	0x81C,      0xF3160003, 0x81C,      0xF2180003, 0x81C,      0xF11A0003,
-	0x81C,      0xF01C0003, 0x81C,      0xEF1E0003, 0x81C,      0xEE200003,
-	0x81C,      0xED220003, 0x81C,      0xEC240003, 0x81C,      0xEB260003,
-	0x81C,      0xEA280003, 0x81C,      0xE92A0003, 0x81C,      0xE82C0003,
-	0x81C,      0xE72E0003, 0x81C,      0xE6300003, 0x81C,      0xE5320003,
-	0x81C,      0xC8340003, 0x81C,      0xC7360003, 0x81C,      0xC6380003,
-	0x81C,      0xC53A0003, 0x81C,      0xC43C0003, 0x81C,      0xC33E0003,
-	0x81C,      0xC2400003, 0x81C,      0xC1420003, 0x81C,      0xC0440003,
-	0x81C,      0xA3460003, 0x81C,      0xA2480003, 0x81C,      0xA14A0003,
-	0x81C,      0xA04C0003, 0x81C,      0x824E0003, 0x81C,      0x81500003,
-	0x81C,      0x80520003, 0x81C,      0x64540003, 0x81C,      0x63560003,
-	0x81C,      0x62580003, 0x81C,      0x445A0003, 0x81C,      0x435C0003,
-	0x81C,      0x425E0003, 0x81C,      0x41600003, 0x81C,      0x40620003,
-	0x81C,      0x05640003, 0x81C,      0x04660003, 0x81C,      0x03680003,
-	0x81C,      0x026A0003, 0x81C,      0x016C0003, 0x81C,      0x006E0003,
-	0x81C,      0x00700003, 0x81C,      0x00720003, 0x81C,      0x00740003,
-	0x81C,      0x00760003, 0x81C,      0x00780003, 0x81C,      0x007A0003,
-	0x81C,      0x007C0003, 0x81C,      0x007E0003, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFF000003, 0x81C,      0xFD000003,
-	0x81C,      0xFC020003, 0x81C,      0xFB040003, 0x81C,      0xFA060003,
-	0x81C,      0xF9080003, 0x81C,      0xF80A0003, 0x81C,      0xF70C0003,
-	0x81C,      0xF60E0003, 0x81C,      0xF5100003, 0x81C,      0xF4120003,
-	0x81C,      0xF3140003, 0x81C,      0xF2160003, 0x81C,      0xF1180003,
-	0x81C,      0xF01A0003, 0x81C,      0xEF1C0003, 0x81C,      0xEE1E0003,
-	0x81C,      0xED200003, 0x81C,      0xEC220003, 0x81C,      0xEB240003,
-	0x81C,      0xEA260003, 0x81C,      0xE9280003, 0x81C,      0xE82A0003,
-	0x81C,      0xE72C0003, 0x81C,      0xE62E0003, 0x81C,      0xE5300003,
-	0x81C,      0xC8320003, 0x81C,      0xC7340003, 0x81C,      0xC6360003,
-	0x81C,      0xC5380003, 0x81C,      0xC43A0003, 0x81C,      0xC33C0003,
-	0x81C,      0xC23E0003, 0x81C,      0xC1400003, 0x81C,      0xC0420003,
-	0x81C,      0xA5440003, 0x81C,      0xA4460003, 0x81C,      0xA3480003,
-	0x81C,      0xA24A0003, 0x81C,      0xA14C0003, 0x81C,      0x834E0003,
-	0x81C,      0x82500003, 0x81C,      0x81520003, 0x81C,      0x80540003,
-	0x81C,      0x65560003, 0x81C,      0x64580003, 0x81C,      0x635A0003,
-	0x81C,      0x625C0003, 0x81C,      0x435E0003, 0x81C,      0x42600003,
-	0x81C,      0x41620003, 0x81C,      0x40640003, 0x81C,      0x06660003,
-	0x81C,      0x05680003, 0x81C,      0x046A0003, 0x81C,      0x036C0003,
-	0x81C,      0x026E0003, 0x81C,      0x01700003, 0x81C,      0x00720003,
-	0x81C,      0x00740003, 0x81C,      0x00760003, 0x81C,      0x00780003,
-	0x81C,      0x007A0003, 0x81C,      0x007C0003, 0x81C,      0x007E0003,
-	0x90002000, 0x00000000, 0x40000000, 0x00000000, 0x81C,      0xFF000003,
-	0x81C,      0xFD000003, 0x81C,      0xFC020003, 0x81C,      0xFB040003,
-	0x81C,      0xFA060003, 0x81C,      0xF9080003, 0x81C,      0xF80A0003,
-	0x81C,      0xF70C0003, 0x81C,      0xF60E0003, 0x81C,      0xF5100003,
-	0x81C,      0xF4120003, 0x81C,      0xF3140003, 0x81C,      0xF2160003,
-	0x81C,      0xF1180003, 0x81C,      0xF01A0003, 0x81C,      0xEF1C0003,
-	0x81C,      0xEE1E0003, 0x81C,      0xED200003, 0x81C,      0xEC220003,
-	0x81C,      0xEB240003, 0x81C,      0xEA260003, 0x81C,      0xE9280003,
-	0x81C,      0xE82A0003, 0x81C,      0xE72C0003, 0x81C,      0xE62E0003,
-	0x81C,      0xE5300003, 0x81C,      0xC8320003, 0x81C,      0xC7340003,
-	0x81C,      0xC6360003, 0x81C,      0xC5380003, 0x81C,      0xC43A0003,
-	0x81C,      0xC33C0003, 0x81C,      0xC23E0003, 0x81C,      0xC1400003,
-	0x81C,      0xC0420003, 0x81C,      0xA5440003, 0x81C,      0xA4460003,
-	0x81C,      0xA3480003, 0x81C,      0xA24A0003, 0x81C,      0xA14C0003,
-	0x81C,      0x834E0003, 0x81C,      0x82500003, 0x81C,      0x81520003,
-	0x81C,      0x80540003, 0x81C,      0x65560003, 0x81C,      0x64580003,
-	0x81C,      0x635A0003, 0x81C,      0x625C0003, 0x81C,      0x435E0003,
-	0x81C,      0x42600003, 0x81C,      0x41620003, 0x81C,      0x40640003,
-	0x81C,      0x06660003, 0x81C,      0x05680003, 0x81C,      0x046A0003,
-	0x81C,      0x036C0003, 0x81C,      0x026E0003, 0x81C,      0x01700003,
-	0x81C,      0x00720003, 0x81C,      0x00740003, 0x81C,      0x00760003,
-	0x81C,      0x00780003, 0x81C,      0x007A0003, 0x81C,      0x007C0003,
-	0x81C,      0x007E0003, 0xA0000000, 0x00000000, 0x81C,      0xFF000003,
-	0x81C,      0xFE000003, 0x81C,      0xFD020003, 0x81C,      0xFC040003,
-	0x81C,      0xFB060003, 0x81C,      0xFA080003, 0x81C,      0xF90A0003,
-	0x81C,      0xF80C0003, 0x81C,      0xF70E0003, 0x81C,      0xF6100003,
-	0x81C,      0xF5120003, 0x81C,      0xF4140003, 0x81C,      0xF3160003,
-	0x81C,      0xF2180003, 0x81C,      0xF11A0003, 0x81C,      0xF01C0003,
-	0x81C,      0xEF1E0003, 0x81C,      0xEE200003, 0x81C,      0xED220003,
-	0x81C,      0xEC240003, 0x81C,      0xEB260003, 0x81C,      0xEA280003,
-	0x81C,      0xE92A0003, 0x81C,      0xE82C0003, 0x81C,      0xE72E0003,
-	0x81C,      0xE6300003, 0x81C,      0xE5320003, 0x81C,      0xC8340003,
-	0x81C,      0xC7360003, 0x81C,      0xC6380003, 0x81C,      0xC53A0003,
-	0x81C,      0xC43C0003, 0x81C,      0xC33E0003, 0x81C,      0xC2400003,
-	0x81C,      0xC1420003, 0x81C,      0xC0440003, 0x81C,      0xA3460003,
-	0x81C,      0xA2480003, 0x81C,      0xA14A0003, 0x81C,      0xA04C0003,
-	0x81C,      0x824E0003, 0x81C,      0x81500003, 0x81C,      0x80520003,
-	0x81C,      0x64540003, 0x81C,      0x63560003, 0x81C,      0x62580003,
-	0x81C,      0x445A0003, 0x81C,      0x435C0003, 0x81C,      0x425E0003,
-	0x81C,      0x41600003, 0x81C,      0x40620003, 0x81C,      0x05640003,
-	0x81C,      0x04660003, 0x81C,      0x03680003, 0x81C,      0x026A0003,
-	0x81C,      0x016C0003, 0x81C,      0x006E0003, 0x81C,      0x00700003,
-	0x81C,      0x00720003, 0x81C,      0x00740003, 0x81C,      0x00760003,
-	0x81C,      0x00780003, 0x81C,      0x007A0003, 0x81C,      0x007C0003,
-	0x81C,      0x007E0003, 0xB0000000, 0x00000000, 0x8000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x81C,      0xF8000103, 0x81C,      0xF7020103,
-	0x81C,      0xF6040103, 0x81C,      0xF5060103, 0x81C,      0xF4080103,
-	0x81C,      0xF30A0103, 0x81C,      0xF20C0103, 0x81C,      0xF10E0103,
-	0x81C,      0xF0100103, 0x81C,      0xEF120103, 0x81C,      0xEE140103,
-	0x81C,      0xED160103, 0x81C,      0xEC180103, 0x81C,      0xEB1A0103,
-	0x81C,      0xEA1C0103, 0x81C,      0xE91E0103, 0x81C,      0xE8200103,
-	0x81C,      0xE7220103, 0x81C,      0xE6240103, 0x81C,      0xE5260103,
-	0x81C,      0xE4280103, 0x81C,      0xE32A0103, 0x81C,      0xE22C0103,
-	0x81C,      0xC32E0103, 0x81C,      0xC2300103, 0x81C,      0xC1320103,
-	0x81C,      0xA3340103, 0x81C,      0xA2360103, 0x81C,      0xA1380103,
-	0x81C,      0xA03A0103, 0x81C,      0x823C0103, 0x81C,      0x813E0103,
-	0x81C,      0x80400103, 0x81C,      0x64420103, 0x81C,      0x63440103,
-	0x81C,      0x62460103, 0x81C,      0x61480103, 0x81C,      0x434A0103,
-	0x81C,      0x424C0103, 0x81C,      0x414E0103, 0x81C,      0x40500103,
-	0x81C,      0x22520103, 0x81C,      0x21540103, 0x81C,      0x20560103,
-	0x81C,      0x04580103, 0x81C,      0x035A0103, 0x81C,      0x025C0103,
-	0x81C,      0x015E0103, 0x81C,      0x00600103, 0x81C,      0x00620103,
-	0x81C,      0x00640103, 0x81C,      0x00660103, 0x81C,      0x00680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x81C,      0xFA000103, 0x81C,      0xF9020103,
-	0x81C,      0xF8040103, 0x81C,      0xF7060103, 0x81C,      0xF6080103,
-	0x81C,      0xF50A0103, 0x81C,      0xF40C0103, 0x81C,      0xF30E0103,
-	0x81C,      0xF2100103, 0x81C,      0xF1120103, 0x81C,      0xF0140103,
-	0x81C,      0xEF160103, 0x81C,      0xEE180103, 0x81C,      0xED1A0103,
-	0x81C,      0xEC1C0103, 0x81C,      0xEB1E0103, 0x81C,      0xEA200103,
-	0x81C,      0xE9220103, 0x81C,      0xE8240103, 0x81C,      0xE7260103,
-	0x81C,      0xE6280103, 0x81C,      0xE52A0103, 0x81C,      0xC42C0103,
-	0x81C,      0xC32E0103, 0x81C,      0xC2300103, 0x81C,      0xC1320103,
-	0x81C,      0xA4340103, 0x81C,      0xA3360103, 0x81C,      0xA2380103,
-	0x81C,      0xA13A0103, 0x81C,      0x833C0103, 0x81C,      0x823E0103,
-	0x81C,      0x81400103, 0x81C,      0x63420103, 0x81C,      0x62440103,
-	0x81C,      0x61460103, 0x81C,      0x60480103, 0x81C,      0x424A0103,
-	0x81C,      0x414C0103, 0x81C,      0x404E0103, 0x81C,      0x22500103,
-	0x81C,      0x21520103, 0x81C,      0x20540103, 0x81C,      0x03560103,
-	0x81C,      0x02580103, 0x81C,      0x015A0103, 0x81C,      0x005C0103,
-	0x81C,      0x005E0103, 0x81C,      0x00600103, 0x81C,      0x00620103,
-	0x81C,      0x00640103, 0x81C,      0x00660103, 0x81C,      0x00680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF8000103, 0x81C,      0xF7020103,
-	0x81C,      0xF6040103, 0x81C,      0xF5060103, 0x81C,      0xF4080103,
-	0x81C,      0xF30A0103, 0x81C,      0xF20C0103, 0x81C,      0xF10E0103,
-	0x81C,      0xF0100103, 0x81C,      0xEF120103, 0x81C,      0xEE140103,
-	0x81C,      0xED160103, 0x81C,      0xEC180103, 0x81C,      0xEB1A0103,
-	0x81C,      0xEA1C0103, 0x81C,      0xE91E0103, 0x81C,      0xE8200103,
-	0x81C,      0xE7220103, 0x81C,      0xE6240103, 0x81C,      0xE5260103,
-	0x81C,      0xE4280103, 0x81C,      0xE32A0103, 0x81C,      0xC32C0103,
-	0x81C,      0xC22E0103, 0x81C,      0xC1300103, 0x81C,      0xC0320103,
-	0x81C,      0xA3340103, 0x81C,      0xA2360103, 0x81C,      0xA1380103,
-	0x81C,      0xA03A0103, 0x81C,      0x823C0103, 0x81C,      0x813E0103,
-	0x81C,      0x80400103, 0x81C,      0x63420103, 0x81C,      0x62440103,
-	0x81C,      0x61460103, 0x81C,      0x60480103, 0x81C,      0x424A0103,
-	0x81C,      0x414C0103, 0x81C,      0x404E0103, 0x81C,      0x06500103,
-	0x81C,      0x05520103, 0x81C,      0x04540103, 0x81C,      0x03560103,
-	0x81C,      0x02580103, 0x81C,      0x015A0103, 0x81C,      0x005C0103,
-	0x81C,      0x005E0103, 0x81C,      0x00600103, 0x81C,      0x00620103,
-	0x81C,      0x00640103, 0x81C,      0x00660103, 0x81C,      0x00680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF8000103, 0x81C,      0xF7020103,
-	0x81C,      0xF6040103, 0x81C,      0xF5060103, 0x81C,      0xF4080103,
-	0x81C,      0xF30A0103, 0x81C,      0xF20C0103, 0x81C,      0xF10E0103,
-	0x81C,      0xF0100103, 0x81C,      0xEF120103, 0x81C,      0xEE140103,
-	0x81C,      0xED160103, 0x81C,      0xEC180103, 0x81C,      0xEB1A0103,
-	0x81C,      0xEA1C0103, 0x81C,      0xE91E0103, 0x81C,      0xE8200103,
-	0x81C,      0xE7220103, 0x81C,      0xE6240103, 0x81C,      0xE5260103,
-	0x81C,      0xE4280103, 0x81C,      0xE32A0103, 0x81C,      0xC32C0103,
-	0x81C,      0xC22E0103, 0x81C,      0xC1300103, 0x81C,      0xC0320103,
-	0x81C,      0xA3340103, 0x81C,      0xA2360103, 0x81C,      0xA1380103,
-	0x81C,      0xA03A0103, 0x81C,      0x823C0103, 0x81C,      0x813E0103,
-	0x81C,      0x80400103, 0x81C,      0x63420103, 0x81C,      0x62440103,
-	0x81C,      0x61460103, 0x81C,      0x60480103, 0x81C,      0x424A0103,
-	0x81C,      0x414C0103, 0x81C,      0x404E0103, 0x81C,      0x22500103,
-	0x81C,      0x21520103, 0x81C,      0x20540103, 0x81C,      0x03560103,
-	0x81C,      0x02580103, 0x81C,      0x015A0103, 0x81C,      0x005C0103,
-	0x81C,      0x005E0103, 0x81C,      0x00600103, 0x81C,      0x00620103,
-	0x81C,      0x00640103, 0x81C,      0x00660103, 0x81C,      0x00680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF8000103, 0x81C,      0xF7020103,
-	0x81C,      0xF6040103, 0x81C,      0xF5060103, 0x81C,      0xF4080103,
-	0x81C,      0xF30A0103, 0x81C,      0xF20C0103, 0x81C,      0xF10E0103,
-	0x81C,      0xF0100103, 0x81C,      0xEF120103, 0x81C,      0xEE140103,
-	0x81C,      0xED160103, 0x81C,      0xEC180103, 0x81C,      0xEB1A0103,
-	0x81C,      0xEA1C0103, 0x81C,      0xE91E0103, 0x81C,      0xE8200103,
-	0x81C,      0xE7220103, 0x81C,      0xE6240103, 0x81C,      0xE5260103,
-	0x81C,      0xE4280103, 0x81C,      0xE32A0103, 0x81C,      0xC32C0103,
-	0x81C,      0xC22E0103, 0x81C,      0xC1300103, 0x81C,      0xC0320103,
-	0x81C,      0xA3340103, 0x81C,      0xA2360103, 0x81C,      0xA1380103,
-	0x81C,      0xA03A0103, 0x81C,      0x823C0103, 0x81C,      0x813E0103,
-	0x81C,      0x80400103, 0x81C,      0x63420103, 0x81C,      0x62440103,
-	0x81C,      0x61460103, 0x81C,      0x60480103, 0x81C,      0x424A0103,
-	0x81C,      0x414C0103, 0x81C,      0x404E0103, 0x81C,      0x22500103,
-	0x81C,      0x21520103, 0x81C,      0x20540103, 0x81C,      0x03560103,
-	0x81C,      0x02580103, 0x81C,      0x015A0103, 0x81C,      0x005C0103,
-	0x81C,      0x005E0103, 0x81C,      0x00600103, 0x81C,      0x00620103,
-	0x81C,      0x00640103, 0x81C,      0x00660103, 0x81C,      0x00680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0x90012100, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFD000103, 0x81C,      0xFC020103,
-	0x81C,      0xFB040103, 0x81C,      0xFA060103, 0x81C,      0xF9080103,
-	0x81C,      0xF80A0103, 0x81C,      0xF70C0103, 0x81C,      0xF60E0103,
-	0x81C,      0xF5100103, 0x81C,      0xF4120103, 0x81C,      0xF3140103,
-	0x81C,      0xF2160103, 0x81C,      0xF1180103, 0x81C,      0xF01A0103,
-	0x81C,      0xEF1C0103, 0x81C,      0xEE1E0103, 0x81C,      0xED200103,
-	0x81C,      0xEC220103, 0x81C,      0xEB240103, 0x81C,      0xEA260103,
-	0x81C,      0xE9280103, 0x81C,      0xE82A0103, 0x81C,      0xE72C0103,
-	0x81C,      0xE62E0103, 0x81C,      0xE5300103, 0x81C,      0xE4320103,
-	0x81C,      0xE3340103, 0x81C,      0xC6360103, 0x81C,      0xC5380103,
-	0x81C,      0xC43A0103, 0x81C,      0xC33C0103, 0x81C,      0xC23E0103,
-	0x81C,      0xA5400103, 0x81C,      0xA4420103, 0x81C,      0xA3440103,
-	0x81C,      0xA2460103, 0x81C,      0xA1480103, 0x81C,      0x834A0103,
-	0x81C,      0x824C0103, 0x81C,      0x814E0103, 0x81C,      0x63500103,
-	0x81C,      0x62520103, 0x81C,      0x61540103, 0x81C,      0x43560103,
-	0x81C,      0x42580103, 0x81C,      0x245A0103, 0x81C,      0x235C0103,
-	0x81C,      0x225E0103, 0x81C,      0x21600103, 0x81C,      0x04620103,
-	0x81C,      0x03640103, 0x81C,      0x02660103, 0x81C,      0x01680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF8000103, 0x81C,      0xF7020103,
-	0x81C,      0xF6040103, 0x81C,      0xF5060103, 0x81C,      0xF4080103,
-	0x81C,      0xF30A0103, 0x81C,      0xF20C0103, 0x81C,      0xF10E0103,
-	0x81C,      0xF0100103, 0x81C,      0xEF120103, 0x81C,      0xEE140103,
-	0x81C,      0xED160103, 0x81C,      0xEC180103, 0x81C,      0xEB1A0103,
-	0x81C,      0xEA1C0103, 0x81C,      0xE91E0103, 0x81C,      0xE8200103,
-	0x81C,      0xE7220103, 0x81C,      0xE6240103, 0x81C,      0xE5260103,
-	0x81C,      0xE4280103, 0x81C,      0xE32A0103, 0x81C,      0xE22C0103,
-	0x81C,      0xC32E0103, 0x81C,      0xC2300103, 0x81C,      0xC1320103,
-	0x81C,      0xA3340103, 0x81C,      0xA2360103, 0x81C,      0xA1380103,
-	0x81C,      0xA03A0103, 0x81C,      0x823C0103, 0x81C,      0x813E0103,
-	0x81C,      0x80400103, 0x81C,      0x64420103, 0x81C,      0x63440103,
-	0x81C,      0x62460103, 0x81C,      0x61480103, 0x81C,      0x434A0103,
-	0x81C,      0x424C0103, 0x81C,      0x414E0103, 0x81C,      0x40500103,
-	0x81C,      0x22520103, 0x81C,      0x21540103, 0x81C,      0x20560103,
-	0x81C,      0x04580103, 0x81C,      0x035A0103, 0x81C,      0x025C0103,
-	0x81C,      0x015E0103, 0x81C,      0x00600103, 0x81C,      0x00620103,
-	0x81C,      0x00640103, 0x81C,      0x00660103, 0x81C,      0x00680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0x90011000, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFD000103, 0x81C,      0xFC020103,
-	0x81C,      0xFB040103, 0x81C,      0xFA060103, 0x81C,      0xF9080103,
-	0x81C,      0xF80A0103, 0x81C,      0xF70C0103, 0x81C,      0xF60E0103,
-	0x81C,      0xF5100103, 0x81C,      0xF4120103, 0x81C,      0xF3140103,
-	0x81C,      0xF2160103, 0x81C,      0xF1180103, 0x81C,      0xF01A0103,
-	0x81C,      0xEE1C0103, 0x81C,      0xED1E0103, 0x81C,      0xEC200103,
-	0x81C,      0xEB220103, 0x81C,      0xEA240103, 0x81C,      0xE9260103,
-	0x81C,      0xE8280103, 0x81C,      0xE72A0103, 0x81C,      0xE62C0103,
-	0x81C,      0xE52E0103, 0x81C,      0xE4300103, 0x81C,      0xE3320103,
-	0x81C,      0xE2340103, 0x81C,      0xC5360103, 0x81C,      0xC4380103,
-	0x81C,      0xC33A0103, 0x81C,      0xC23C0103, 0x81C,      0xA53E0103,
-	0x81C,      0xA4400103, 0x81C,      0xA3420103, 0x81C,      0xA2440103,
-	0x81C,      0xA1460103, 0x81C,      0x83480103, 0x81C,      0x824A0103,
-	0x81C,      0x814C0103, 0x81C,      0x804E0103, 0x81C,      0x63500103,
-	0x81C,      0x62520103, 0x81C,      0x61540103, 0x81C,      0x43560103,
-	0x81C,      0x42580103, 0x81C,      0x415A0103, 0x81C,      0x405C0103,
-	0x81C,      0x225E0103, 0x81C,      0x21600103, 0x81C,      0x20620103,
-	0x81C,      0x03640103, 0x81C,      0x02660103, 0x81C,      0x01680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFD000103, 0x81C,      0xFC020103,
-	0x81C,      0xFB040103, 0x81C,      0xFA060103, 0x81C,      0xF9080103,
-	0x81C,      0xF80A0103, 0x81C,      0xF70C0103, 0x81C,      0xF60E0103,
-	0x81C,      0xF5100103, 0x81C,      0xF4120103, 0x81C,      0xF3140103,
-	0x81C,      0xF2160103, 0x81C,      0xF1180103, 0x81C,      0xF01A0103,
-	0x81C,      0xEF1C0103, 0x81C,      0xEE1E0103, 0x81C,      0xED200103,
-	0x81C,      0xEC220103, 0x81C,      0xEB240103, 0x81C,      0xEA260103,
-	0x81C,      0xE9280103, 0x81C,      0xE82A0103, 0x81C,      0xE72C0103,
-	0x81C,      0xE62E0103, 0x81C,      0xE5300103, 0x81C,      0xE4320103,
-	0x81C,      0xE3340103, 0x81C,      0xE2360103, 0x81C,      0xC5380103,
-	0x81C,      0xC43A0103, 0x81C,      0xC33C0103, 0x81C,      0xC23E0103,
-	0x81C,      0xA5400103, 0x81C,      0xA4420103, 0x81C,      0xA3440103,
-	0x81C,      0xA2460103, 0x81C,      0xA1480103, 0x81C,      0x834A0103,
-	0x81C,      0x824C0103, 0x81C,      0x814E0103, 0x81C,      0x64500103,
-	0x81C,      0x63520103, 0x81C,      0x62540103, 0x81C,      0x61560103,
-	0x81C,      0x42580103, 0x81C,      0x415A0103, 0x81C,      0x405C0103,
-	0x81C,      0x065E0103, 0x81C,      0x05600103, 0x81C,      0x04620103,
-	0x81C,      0x03640103, 0x81C,      0x02660103, 0x81C,      0x01680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFE000103, 0x81C,      0xFD020103,
-	0x81C,      0xFC040103, 0x81C,      0xFB060103, 0x81C,      0xFA080103,
-	0x81C,      0xF90A0103, 0x81C,      0xF80C0103, 0x81C,      0xF70E0103,
-	0x81C,      0xF6100103, 0x81C,      0xF5120103, 0x81C,      0xF4140103,
-	0x81C,      0xF3160103, 0x81C,      0xF2180103, 0x81C,      0xF11A0103,
-	0x81C,      0xF01C0103, 0x81C,      0xEF1E0103, 0x81C,      0xEE200103,
-	0x81C,      0xED220103, 0x81C,      0xEC240103, 0x81C,      0xEB260103,
-	0x81C,      0xEA280103, 0x81C,      0xE92A0103, 0x81C,      0xE82C0103,
-	0x81C,      0xE72E0103, 0x81C,      0xE6300103, 0x81C,      0xE5320103,
-	0x81C,      0xE4340103, 0x81C,      0xE3360103, 0x81C,      0xC6380103,
-	0x81C,      0xC53A0103, 0x81C,      0xC43C0103, 0x81C,      0xC33E0103,
-	0x81C,      0xA5400103, 0x81C,      0xA4420103, 0x81C,      0xA3440103,
-	0x81C,      0xA2460103, 0x81C,      0xA1480103, 0x81C,      0xA04A0103,
-	0x81C,      0x824C0103, 0x81C,      0x814E0103, 0x81C,      0x80500103,
-	0x81C,      0x64520103, 0x81C,      0x63540103, 0x81C,      0x62560103,
-	0x81C,      0x61580103, 0x81C,      0x605A0103, 0x81C,      0x235C0103,
-	0x81C,      0x225E0103, 0x81C,      0x21600103, 0x81C,      0x20620103,
-	0x81C,      0x03640103, 0x81C,      0x02660103, 0x81C,      0x01680103,
-	0x81C,      0x006A0103, 0x81C,      0x006C0103, 0x81C,      0x006E0103,
-	0x81C,      0x00700103, 0x81C,      0x00720103, 0x81C,      0x00740103,
-	0x81C,      0x00760103, 0x81C,      0x00780103, 0x81C,      0x007A0103,
-	0x81C,      0x007C0103, 0x81C,      0x007E0103, 0xA0000000, 0x00000000,
-	0x81C,      0xFE000103, 0x81C,      0xFD020103, 0x81C,      0xFC040103,
-	0x81C,      0xFB060103, 0x81C,      0xFA080103, 0x81C,      0xF90A0103,
-	0x81C,      0xF80C0103, 0x81C,      0xF70E0103, 0x81C,      0xF6100103,
-	0x81C,      0xF5120103, 0x81C,      0xF4140103, 0x81C,      0xF3160103,
-	0x81C,      0xF2180103, 0x81C,      0xF11A0103, 0x81C,      0xF01C0103,
-	0x81C,      0xEF1E0103, 0x81C,      0xEE200103, 0x81C,      0xED220103,
-	0x81C,      0xEC240103, 0x81C,      0xEB260103, 0x81C,      0xEA280103,
-	0x81C,      0xE92A0103, 0x81C,      0xE82C0103, 0x81C,      0xE72E0103,
-	0x81C,      0xE6300103, 0x81C,      0xE5320103, 0x81C,      0xE4340103,
-	0x81C,      0xE3360103, 0x81C,      0xC6380103, 0x81C,      0xC53A0103,
-	0x81C,      0xC43C0103, 0x81C,      0xC33E0103, 0x81C,      0xA5400103,
-	0x81C,      0xA4420103, 0x81C,      0xA3440103, 0x81C,      0xA2460103,
-	0x81C,      0xA1480103, 0x81C,      0xA04A0103, 0x81C,      0x824C0103,
-	0x81C,      0x814E0103, 0x81C,      0x80500103, 0x81C,      0x64520103,
-	0x81C,      0x63540103, 0x81C,      0x62560103, 0x81C,      0x61580103,
-	0x81C,      0x605A0103, 0x81C,      0x235C0103, 0x81C,      0x225E0103,
-	0x81C,      0x21600103, 0x81C,      0x20620103, 0x81C,      0x03640103,
-	0x81C,      0x02660103, 0x81C,      0x01680103, 0x81C,      0x006A0103,
-	0x81C,      0x006C0103, 0x81C,      0x006E0103, 0x81C,      0x00700103,
-	0x81C,      0x00720103, 0x81C,      0x00740103, 0x81C,      0x00760103,
-	0x81C,      0x00780103, 0x81C,      0x007A0103, 0x81C,      0x007C0103,
-	0x81C,      0x007E0103, 0xB0000000, 0x00000000, 0x8000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x81C,      0xF8000203, 0x81C,      0xF7020203,
-	0x81C,      0xF6040203, 0x81C,      0xF5060203, 0x81C,      0xF4080203,
-	0x81C,      0xF30A0203, 0x81C,      0xF20C0203, 0x81C,      0xF10E0203,
-	0x81C,      0xF0100203, 0x81C,      0xEF120203, 0x81C,      0xEE140203,
-	0x81C,      0xED160203, 0x81C,      0xEC180203, 0x81C,      0xEB1A0203,
-	0x81C,      0xEA1C0203, 0x81C,      0xE91E0203, 0x81C,      0xE8200203,
-	0x81C,      0xE7220203, 0x81C,      0xE6240203, 0x81C,      0xE5260203,
-	0x81C,      0xE4280203, 0x81C,      0xE32A0203, 0x81C,      0xC42C0203,
-	0x81C,      0xC32E0203, 0x81C,      0xC2300203, 0x81C,      0xC1320203,
-	0x81C,      0xA3340203, 0x81C,      0xA2360203, 0x81C,      0xA1380203,
-	0x81C,      0xA03A0203, 0x81C,      0x823C0203, 0x81C,      0x813E0203,
-	0x81C,      0x80400203, 0x81C,      0x65420203, 0x81C,      0x64440203,
-	0x81C,      0x63460203, 0x81C,      0x62480203, 0x81C,      0x614A0203,
-	0x81C,      0x424C0203, 0x81C,      0x414E0203, 0x81C,      0x40500203,
-	0x81C,      0x22520203, 0x81C,      0x21540203, 0x81C,      0x20560203,
-	0x81C,      0x04580203, 0x81C,      0x035A0203, 0x81C,      0x025C0203,
-	0x81C,      0x015E0203, 0x81C,      0x00600203, 0x81C,      0x00620203,
-	0x81C,      0x00640203, 0x81C,      0x00660203, 0x81C,      0x00680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x81C,      0xF9000203, 0x81C,      0xF8020203,
-	0x81C,      0xF7040203, 0x81C,      0xF6060203, 0x81C,      0xF5080203,
-	0x81C,      0xF40A0203, 0x81C,      0xF30C0203, 0x81C,      0xF20E0203,
-	0x81C,      0xF1100203, 0x81C,      0xF0120203, 0x81C,      0xEF140203,
-	0x81C,      0xEE160203, 0x81C,      0xED180203, 0x81C,      0xEC1A0203,
-	0x81C,      0xEB1C0203, 0x81C,      0xEA1E0203, 0x81C,      0xE9200203,
-	0x81C,      0xE8220203, 0x81C,      0xE7240203, 0x81C,      0xE6260203,
-	0x81C,      0xE5280203, 0x81C,      0xC42A0203, 0x81C,      0xC32C0203,
-	0x81C,      0xC22E0203, 0x81C,      0xC1300203, 0x81C,      0xC0320203,
-	0x81C,      0xA3340203, 0x81C,      0xA2360203, 0x81C,      0xA1380203,
-	0x81C,      0xA03A0203, 0x81C,      0x823C0203, 0x81C,      0x813E0203,
-	0x81C,      0x80400203, 0x81C,      0x64420203, 0x81C,      0x63440203,
-	0x81C,      0x62460203, 0x81C,      0x61480203, 0x81C,      0x604A0203,
-	0x81C,      0x414C0203, 0x81C,      0x404E0203, 0x81C,      0x22500203,
-	0x81C,      0x21520203, 0x81C,      0x20540203, 0x81C,      0x03560203,
-	0x81C,      0x02580203, 0x81C,      0x015A0203, 0x81C,      0x005C0203,
-	0x81C,      0x005E0203, 0x81C,      0x00600203, 0x81C,      0x00620203,
-	0x81C,      0x00640203, 0x81C,      0x00660203, 0x81C,      0x00680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF7000203, 0x81C,      0xF6020203,
-	0x81C,      0xF5040203, 0x81C,      0xF4060203, 0x81C,      0xF3080203,
-	0x81C,      0xF20A0203, 0x81C,      0xF10C0203, 0x81C,      0xF00E0203,
-	0x81C,      0xEF100203, 0x81C,      0xEE120203, 0x81C,      0xED140203,
-	0x81C,      0xEC160203, 0x81C,      0xEB180203, 0x81C,      0xEA1A0203,
-	0x81C,      0xE91C0203, 0x81C,      0xE81E0203, 0x81C,      0xE7200203,
-	0x81C,      0xE6220203, 0x81C,      0xE5240203, 0x81C,      0xE4260203,
-	0x81C,      0xE3280203, 0x81C,      0xC42A0203, 0x81C,      0xC32C0203,
-	0x81C,      0xC22E0203, 0x81C,      0xC1300203, 0x81C,      0xC0320203,
-	0x81C,      0xA3340203, 0x81C,      0xA2360203, 0x81C,      0xA1380203,
-	0x81C,      0xA03A0203, 0x81C,      0x823C0203, 0x81C,      0x813E0203,
-	0x81C,      0x80400203, 0x81C,      0x63420203, 0x81C,      0x62440203,
-	0x81C,      0x61460203, 0x81C,      0x60480203, 0x81C,      0x424A0203,
-	0x81C,      0x414C0203, 0x81C,      0x404E0203, 0x81C,      0x06500203,
-	0x81C,      0x05520203, 0x81C,      0x04540203, 0x81C,      0x03560203,
-	0x81C,      0x02580203, 0x81C,      0x015A0203, 0x81C,      0x005C0203,
-	0x81C,      0x005E0203, 0x81C,      0x00600203, 0x81C,      0x00620203,
-	0x81C,      0x00640203, 0x81C,      0x00660203, 0x81C,      0x00680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF7000203, 0x81C,      0xF6020203,
-	0x81C,      0xF5040203, 0x81C,      0xF4060203, 0x81C,      0xF3080203,
-	0x81C,      0xF20A0203, 0x81C,      0xF10C0203, 0x81C,      0xF00E0203,
-	0x81C,      0xEF100203, 0x81C,      0xEE120203, 0x81C,      0xED140203,
-	0x81C,      0xEC160203, 0x81C,      0xEB180203, 0x81C,      0xEA1A0203,
-	0x81C,      0xE91C0203, 0x81C,      0xE81E0203, 0x81C,      0xE7200203,
-	0x81C,      0xE6220203, 0x81C,      0xE5240203, 0x81C,      0xE4260203,
-	0x81C,      0xE3280203, 0x81C,      0xC42A0203, 0x81C,      0xC32C0203,
-	0x81C,      0xC22E0203, 0x81C,      0xC1300203, 0x81C,      0xC0320203,
-	0x81C,      0xA3340203, 0x81C,      0xA2360203, 0x81C,      0xA1380203,
-	0x81C,      0xA03A0203, 0x81C,      0x823C0203, 0x81C,      0x813E0203,
-	0x81C,      0x80400203, 0x81C,      0x64420203, 0x81C,      0x63440203,
-	0x81C,      0x62460203, 0x81C,      0x61480203, 0x81C,      0x604A0203,
-	0x81C,      0x414C0203, 0x81C,      0x404E0203, 0x81C,      0x22500203,
-	0x81C,      0x21520203, 0x81C,      0x20540203, 0x81C,      0x03560203,
-	0x81C,      0x02580203, 0x81C,      0x015A0203, 0x81C,      0x005C0203,
-	0x81C,      0x005E0203, 0x81C,      0x00600203, 0x81C,      0x00620203,
-	0x81C,      0x00640203, 0x81C,      0x00660203, 0x81C,      0x00680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF7000203, 0x81C,      0xF6020203,
-	0x81C,      0xF5040203, 0x81C,      0xF4060203, 0x81C,      0xF3080203,
-	0x81C,      0xF20A0203, 0x81C,      0xF10C0203, 0x81C,      0xF00E0203,
-	0x81C,      0xEF100203, 0x81C,      0xEE120203, 0x81C,      0xED140203,
-	0x81C,      0xEC160203, 0x81C,      0xEB180203, 0x81C,      0xEA1A0203,
-	0x81C,      0xE91C0203, 0x81C,      0xE81E0203, 0x81C,      0xE7200203,
-	0x81C,      0xE6220203, 0x81C,      0xE5240203, 0x81C,      0xE4260203,
-	0x81C,      0xE3280203, 0x81C,      0xC42A0203, 0x81C,      0xC32C0203,
-	0x81C,      0xC22E0203, 0x81C,      0xC1300203, 0x81C,      0xC0320203,
-	0x81C,      0xA3340203, 0x81C,      0xA2360203, 0x81C,      0xA1380203,
-	0x81C,      0xA03A0203, 0x81C,      0x823C0203, 0x81C,      0x813E0203,
-	0x81C,      0x80400203, 0x81C,      0x64420203, 0x81C,      0x63440203,
-	0x81C,      0x62460203, 0x81C,      0x61480203, 0x81C,      0x604A0203,
-	0x81C,      0x414C0203, 0x81C,      0x404E0203, 0x81C,      0x22500203,
-	0x81C,      0x21520203, 0x81C,      0x20540203, 0x81C,      0x03560203,
-	0x81C,      0x02580203, 0x81C,      0x015A0203, 0x81C,      0x005C0203,
-	0x81C,      0x005E0203, 0x81C,      0x00600203, 0x81C,      0x00620203,
-	0x81C,      0x00640203, 0x81C,      0x00660203, 0x81C,      0x00680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0x90012100, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFB000203, 0x81C,      0xFA020203,
-	0x81C,      0xF9040203, 0x81C,      0xF8060203, 0x81C,      0xF7080203,
-	0x81C,      0xF60A0203, 0x81C,      0xF50C0203, 0x81C,      0xF40E0203,
-	0x81C,      0xF3100203, 0x81C,      0xF2120203, 0x81C,      0xF1140203,
-	0x81C,      0xF0160203, 0x81C,      0xEF180203, 0x81C,      0xEE1A0203,
-	0x81C,      0xED1C0203, 0x81C,      0xEC1E0203, 0x81C,      0xEB200203,
-	0x81C,      0xEA220203, 0x81C,      0xE9240203, 0x81C,      0xE8260203,
-	0x81C,      0xE7280203, 0x81C,      0xE62A0203, 0x81C,      0xE52C0203,
-	0x81C,      0xE42E0203, 0x81C,      0xE3300203, 0x81C,      0xE2320203,
-	0x81C,      0xC6340203, 0x81C,      0xC5360203, 0x81C,      0xC4380203,
-	0x81C,      0xC33A0203, 0x81C,      0xC23C0203, 0x81C,      0xC13E0203,
-	0x81C,      0xC0400203, 0x81C,      0xA3420203, 0x81C,      0xA2440203,
-	0x81C,      0xA1460203, 0x81C,      0xA0480203, 0x81C,      0x824A0203,
-	0x81C,      0x814C0203, 0x81C,      0x804E0203, 0x81C,      0x63500203,
-	0x81C,      0x62520203, 0x81C,      0x61540203, 0x81C,      0x60560203,
-	0x81C,      0x24580203, 0x81C,      0x235A0203, 0x81C,      0x225C0203,
-	0x81C,      0x215E0203, 0x81C,      0x20600203, 0x81C,      0x03620203,
-	0x81C,      0x02640203, 0x81C,      0x01660203, 0x81C,      0x00680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF8000203, 0x81C,      0xF7020203,
-	0x81C,      0xF6040203, 0x81C,      0xF5060203, 0x81C,      0xF4080203,
-	0x81C,      0xF30A0203, 0x81C,      0xF20C0203, 0x81C,      0xF10E0203,
-	0x81C,      0xF0100203, 0x81C,      0xEF120203, 0x81C,      0xEE140203,
-	0x81C,      0xED160203, 0x81C,      0xEC180203, 0x81C,      0xEB1A0203,
-	0x81C,      0xEA1C0203, 0x81C,      0xE91E0203, 0x81C,      0xE8200203,
-	0x81C,      0xE7220203, 0x81C,      0xE6240203, 0x81C,      0xE5260203,
-	0x81C,      0xE4280203, 0x81C,      0xE32A0203, 0x81C,      0xC42C0203,
-	0x81C,      0xC32E0203, 0x81C,      0xC2300203, 0x81C,      0xC1320203,
-	0x81C,      0xA3340203, 0x81C,      0xA2360203, 0x81C,      0xA1380203,
-	0x81C,      0xA03A0203, 0x81C,      0x823C0203, 0x81C,      0x813E0203,
-	0x81C,      0x80400203, 0x81C,      0x65420203, 0x81C,      0x64440203,
-	0x81C,      0x63460203, 0x81C,      0x62480203, 0x81C,      0x614A0203,
-	0x81C,      0x424C0203, 0x81C,      0x414E0203, 0x81C,      0x40500203,
-	0x81C,      0x22520203, 0x81C,      0x21540203, 0x81C,      0x20560203,
-	0x81C,      0x04580203, 0x81C,      0x035A0203, 0x81C,      0x025C0203,
-	0x81C,      0x015E0203, 0x81C,      0x00600203, 0x81C,      0x00620203,
-	0x81C,      0x00640203, 0x81C,      0x00660203, 0x81C,      0x00680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0x90011000, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFC000203, 0x81C,      0xFB020203,
-	0x81C,      0xFA040203, 0x81C,      0xF9060203, 0x81C,      0xF8080203,
-	0x81C,      0xF70A0203, 0x81C,      0xF60C0203, 0x81C,      0xF50E0203,
-	0x81C,      0xF4100203, 0x81C,      0xF3120203, 0x81C,      0xF2140203,
-	0x81C,      0xF1160203, 0x81C,      0xF0180203, 0x81C,      0xEE1A0203,
-	0x81C,      0xED1C0203, 0x81C,      0xEC1E0203, 0x81C,      0xEB200203,
-	0x81C,      0xEA220203, 0x81C,      0xE9240203, 0x81C,      0xE8260203,
-	0x81C,      0xE7280203, 0x81C,      0xE62A0203, 0x81C,      0xE52C0203,
-	0x81C,      0xE42E0203, 0x81C,      0xE3300203, 0x81C,      0xE2320203,
-	0x81C,      0xC6340203, 0x81C,      0xC5360203, 0x81C,      0xC4380203,
-	0x81C,      0xC33A0203, 0x81C,      0xA63C0203, 0x81C,      0xA53E0203,
-	0x81C,      0xA4400203, 0x81C,      0xA3420203, 0x81C,      0xA2440203,
-	0x81C,      0xA1460203, 0x81C,      0x83480203, 0x81C,      0x824A0203,
-	0x81C,      0x814C0203, 0x81C,      0x804E0203, 0x81C,      0x63500203,
-	0x81C,      0x62520203, 0x81C,      0x61540203, 0x81C,      0x42560203,
-	0x81C,      0x41580203, 0x81C,      0x405A0203, 0x81C,      0x225C0203,
-	0x81C,      0x215E0203, 0x81C,      0x20600203, 0x81C,      0x04620203,
-	0x81C,      0x03640203, 0x81C,      0x02660203, 0x81C,      0x01680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFC000203, 0x81C,      0xFB020203,
-	0x81C,      0xFA040203, 0x81C,      0xF9060203, 0x81C,      0xF8080203,
-	0x81C,      0xF70A0203, 0x81C,      0xF60C0203, 0x81C,      0xF50E0203,
-	0x81C,      0xF4100203, 0x81C,      0xF3120203, 0x81C,      0xF2140203,
-	0x81C,      0xF1160203, 0x81C,      0xF0180203, 0x81C,      0xEF1A0203,
-	0x81C,      0xEE1C0203, 0x81C,      0xED1E0203, 0x81C,      0xEC200203,
-	0x81C,      0xEB220203, 0x81C,      0xEA240203, 0x81C,      0xE9260203,
-	0x81C,      0xE8280203, 0x81C,      0xE72A0203, 0x81C,      0xE62C0203,
-	0x81C,      0xE52E0203, 0x81C,      0xE4300203, 0x81C,      0xE3320203,
-	0x81C,      0xE2340203, 0x81C,      0xE1360203, 0x81C,      0xC5380203,
-	0x81C,      0xC43A0203, 0x81C,      0xC33C0203, 0x81C,      0xC23E0203,
-	0x81C,      0xC1400203, 0x81C,      0xA3420203, 0x81C,      0xA2440203,
-	0x81C,      0xA1460203, 0x81C,      0xA0480203, 0x81C,      0x834A0203,
-	0x81C,      0x824C0203, 0x81C,      0x814E0203, 0x81C,      0x64500203,
-	0x81C,      0x63520203, 0x81C,      0x62540203, 0x81C,      0x61560203,
-	0x81C,      0x25580203, 0x81C,      0x245A0203, 0x81C,      0x235C0203,
-	0x81C,      0x225E0203, 0x81C,      0x21600203, 0x81C,      0x04620203,
-	0x81C,      0x03640203, 0x81C,      0x02660203, 0x81C,      0x01680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFC000203, 0x81C,      0xFB020203,
-	0x81C,      0xFA040203, 0x81C,      0xF9060203, 0x81C,      0xF8080203,
-	0x81C,      0xF70A0203, 0x81C,      0xF60C0203, 0x81C,      0xF50E0203,
-	0x81C,      0xF4100203, 0x81C,      0xF3120203, 0x81C,      0xF2140203,
-	0x81C,      0xF1160203, 0x81C,      0xF0180203, 0x81C,      0xEF1A0203,
-	0x81C,      0xEE1C0203, 0x81C,      0xED1E0203, 0x81C,      0xEC200203,
-	0x81C,      0xEB220203, 0x81C,      0xEA240203, 0x81C,      0xE9260203,
-	0x81C,      0xE8280203, 0x81C,      0xE72A0203, 0x81C,      0xE62C0203,
-	0x81C,      0xE52E0203, 0x81C,      0xE4300203, 0x81C,      0xE3320203,
-	0x81C,      0xE2340203, 0x81C,      0xC6360203, 0x81C,      0xC5380203,
-	0x81C,      0xC43A0203, 0x81C,      0xC33C0203, 0x81C,      0xA63E0203,
-	0x81C,      0xA5400203, 0x81C,      0xA4420203, 0x81C,      0xA3440203,
-	0x81C,      0xA2460203, 0x81C,      0xA1480203, 0x81C,      0x834A0203,
-	0x81C,      0x824C0203, 0x81C,      0x814E0203, 0x81C,      0x64500203,
-	0x81C,      0x63520203, 0x81C,      0x62540203, 0x81C,      0x61560203,
-	0x81C,      0x60580203, 0x81C,      0x405A0203, 0x81C,      0x215C0203,
-	0x81C,      0x205E0203, 0x81C,      0x03600203, 0x81C,      0x02620203,
-	0x81C,      0x01640203, 0x81C,      0x00660203, 0x81C,      0x00680203,
-	0x81C,      0x006A0203, 0x81C,      0x006C0203, 0x81C,      0x006E0203,
-	0x81C,      0x00700203, 0x81C,      0x00720203, 0x81C,      0x00740203,
-	0x81C,      0x00760203, 0x81C,      0x00780203, 0x81C,      0x007A0203,
-	0x81C,      0x007C0203, 0x81C,      0x007E0203, 0xA0000000, 0x00000000,
-	0x81C,      0xFD000203, 0x81C,      0xFC020203, 0x81C,      0xFB040203,
-	0x81C,      0xFA060203, 0x81C,      0xF9080203, 0x81C,      0xF80A0203,
-	0x81C,      0xF70C0203, 0x81C,      0xF60E0203, 0x81C,      0xF5100203,
-	0x81C,      0xF4120203, 0x81C,      0xF3140203, 0x81C,      0xF2160203,
-	0x81C,      0xF1180203, 0x81C,      0xF01A0203, 0x81C,      0xEF1C0203,
-	0x81C,      0xEE1E0203, 0x81C,      0xED200203, 0x81C,      0xEC220203,
-	0x81C,      0xEB240203, 0x81C,      0xEA260203, 0x81C,      0xE9280203,
-	0x81C,      0xE82A0203, 0x81C,      0xE72C0203, 0x81C,      0xE62E0203,
-	0x81C,      0xE5300203, 0x81C,      0xE4320203, 0x81C,      0xE3340203,
-	0x81C,      0xC6360203, 0x81C,      0xC5380203, 0x81C,      0xC43A0203,
-	0x81C,      0xC33C0203, 0x81C,      0xA63E0203, 0x81C,      0xA5400203,
-	0x81C,      0xA4420203, 0x81C,      0xA3440203, 0x81C,      0xA2460203,
-	0x81C,      0xA1480203, 0x81C,      0x834A0203, 0x81C,      0x824C0203,
-	0x81C,      0x814E0203, 0x81C,      0x64500203, 0x81C,      0x63520203,
-	0x81C,      0x62540203, 0x81C,      0x61560203, 0x81C,      0x60580203,
-	0x81C,      0x235A0203, 0x81C,      0x225C0203, 0x81C,      0x215E0203,
-	0x81C,      0x20600203, 0x81C,      0x03620203, 0x81C,      0x02640203,
-	0x81C,      0x01660203, 0x81C,      0x00680203, 0x81C,      0x006A0203,
-	0x81C,      0x006C0203, 0x81C,      0x006E0203, 0x81C,      0x00700203,
-	0x81C,      0x00720203, 0x81C,      0x00740203, 0x81C,      0x00760203,
-	0x81C,      0x00780203, 0x81C,      0x007A0203, 0x81C,      0x007C0203,
-	0x81C,      0x007E0203, 0xB0000000, 0x00000000, 0x8000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x81C,      0xF8000303, 0x81C,      0xF7020303,
-	0x81C,      0xF6040303, 0x81C,      0xF5060303, 0x81C,      0xF4080303,
-	0x81C,      0xF30A0303, 0x81C,      0xF20C0303, 0x81C,      0xF10E0303,
-	0x81C,      0xF0100303, 0x81C,      0xEF120303, 0x81C,      0xEE140303,
-	0x81C,      0xED160303, 0x81C,      0xEC180303, 0x81C,      0xEB1A0303,
-	0x81C,      0xEA1C0303, 0x81C,      0xE91E0303, 0x81C,      0xCA200303,
-	0x81C,      0xC9220303, 0x81C,      0xC8240303, 0x81C,      0xC7260303,
-	0x81C,      0xC6280303, 0x81C,      0xC52A0303, 0x81C,      0xC42C0303,
-	0x81C,      0xC32E0303, 0x81C,      0xC2300303, 0x81C,      0xC1320303,
-	0x81C,      0xA3340303, 0x81C,      0xA2360303, 0x81C,      0xA1380303,
-	0x81C,      0xA03A0303, 0x81C,      0x823C0303, 0x81C,      0x813E0303,
-	0x81C,      0x80400303, 0x81C,      0x65420303, 0x81C,      0x64440303,
-	0x81C,      0x63460303, 0x81C,      0x62480303, 0x81C,      0x614A0303,
-	0x81C,      0x424C0303, 0x81C,      0x414E0303, 0x81C,      0x40500303,
-	0x81C,      0x22520303, 0x81C,      0x21540303, 0x81C,      0x20560303,
-	0x81C,      0x04580303, 0x81C,      0x035A0303, 0x81C,      0x025C0303,
-	0x81C,      0x015E0303, 0x81C,      0x00600303, 0x81C,      0x00620303,
-	0x81C,      0x00640303, 0x81C,      0x00660303, 0x81C,      0x00680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x81C,      0xF9000303, 0x81C,      0xF8020303,
-	0x81C,      0xF7040303, 0x81C,      0xF6060303, 0x81C,      0xF5080303,
-	0x81C,      0xF40A0303, 0x81C,      0xF30C0303, 0x81C,      0xF20E0303,
-	0x81C,      0xF1100303, 0x81C,      0xF0120303, 0x81C,      0xEF140303,
-	0x81C,      0xEE160303, 0x81C,      0xED180303, 0x81C,      0xEC1A0303,
-	0x81C,      0xEB1C0303, 0x81C,      0xEA1E0303, 0x81C,      0xC9200303,
-	0x81C,      0xC8220303, 0x81C,      0xC7240303, 0x81C,      0xC6260303,
-	0x81C,      0xC5280303, 0x81C,      0xC42A0303, 0x81C,      0xC32C0303,
-	0x81C,      0xC22E0303, 0x81C,      0xC1300303, 0x81C,      0xC0320303,
-	0x81C,      0xA3340303, 0x81C,      0xA2360303, 0x81C,      0xA1380303,
-	0x81C,      0xA03A0303, 0x81C,      0x823C0303, 0x81C,      0x813E0303,
-	0x81C,      0x80400303, 0x81C,      0x64420303, 0x81C,      0x63440303,
-	0x81C,      0x62460303, 0x81C,      0x61480303, 0x81C,      0x604A0303,
-	0x81C,      0x414C0303, 0x81C,      0x404E0303, 0x81C,      0x22500303,
-	0x81C,      0x21520303, 0x81C,      0x20540303, 0x81C,      0x03560303,
-	0x81C,      0x02580303, 0x81C,      0x015A0303, 0x81C,      0x005C0303,
-	0x81C,      0x005E0303, 0x81C,      0x00600303, 0x81C,      0x00620303,
-	0x81C,      0x00640303, 0x81C,      0x00660303, 0x81C,      0x00680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF7000303, 0x81C,      0xF6020303,
-	0x81C,      0xF5040303, 0x81C,      0xF4060303, 0x81C,      0xF3080303,
-	0x81C,      0xF20A0303, 0x81C,      0xF10C0303, 0x81C,      0xF00E0303,
-	0x81C,      0xEF100303, 0x81C,      0xEE120303, 0x81C,      0xED140303,
-	0x81C,      0xEC160303, 0x81C,      0xEB180303, 0x81C,      0xEA1A0303,
-	0x81C,      0xE91C0303, 0x81C,      0xCA1E0303, 0x81C,      0xC9200303,
-	0x81C,      0xC8220303, 0x81C,      0xC7240303, 0x81C,      0xC6260303,
-	0x81C,      0xC5280303, 0x81C,      0xC42A0303, 0x81C,      0xC32C0303,
-	0x81C,      0xC22E0303, 0x81C,      0xC1300303, 0x81C,      0xA4320303,
-	0x81C,      0xA3340303, 0x81C,      0xA2360303, 0x81C,      0xA1380303,
-	0x81C,      0xA03A0303, 0x81C,      0x823C0303, 0x81C,      0x813E0303,
-	0x81C,      0x80400303, 0x81C,      0x64420303, 0x81C,      0x63440303,
-	0x81C,      0x62460303, 0x81C,      0x61480303, 0x81C,      0x604A0303,
-	0x81C,      0x414C0303, 0x81C,      0x404E0303, 0x81C,      0x06500303,
-	0x81C,      0x05520303, 0x81C,      0x04540303, 0x81C,      0x03560303,
-	0x81C,      0x02580303, 0x81C,      0x015A0303, 0x81C,      0x005C0303,
-	0x81C,      0x005E0303, 0x81C,      0x00600303, 0x81C,      0x00620303,
-	0x81C,      0x00640303, 0x81C,      0x00660303, 0x81C,      0x00680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF7000303, 0x81C,      0xF6020303,
-	0x81C,      0xF5040303, 0x81C,      0xF4060303, 0x81C,      0xF3080303,
-	0x81C,      0xF20A0303, 0x81C,      0xF10C0303, 0x81C,      0xF00E0303,
-	0x81C,      0xEF100303, 0x81C,      0xEE120303, 0x81C,      0xED140303,
-	0x81C,      0xEC160303, 0x81C,      0xEB180303, 0x81C,      0xEA1A0303,
-	0x81C,      0xE91C0303, 0x81C,      0xCA1E0303, 0x81C,      0xC9200303,
-	0x81C,      0xC8220303, 0x81C,      0xC7240303, 0x81C,      0xC6260303,
-	0x81C,      0xC5280303, 0x81C,      0xC42A0303, 0x81C,      0xC32C0303,
-	0x81C,      0xC22E0303, 0x81C,      0xC1300303, 0x81C,      0xA4320303,
-	0x81C,      0xA3340303, 0x81C,      0xA2360303, 0x81C,      0xA1380303,
-	0x81C,      0xA03A0303, 0x81C,      0x823C0303, 0x81C,      0x813E0303,
-	0x81C,      0x80400303, 0x81C,      0x64420303, 0x81C,      0x63440303,
-	0x81C,      0x62460303, 0x81C,      0x61480303, 0x81C,      0x604A0303,
-	0x81C,      0x414C0303, 0x81C,      0x404E0303, 0x81C,      0x22500303,
-	0x81C,      0x21520303, 0x81C,      0x20540303, 0x81C,      0x03560303,
-	0x81C,      0x02580303, 0x81C,      0x015A0303, 0x81C,      0x005C0303,
-	0x81C,      0x005E0303, 0x81C,      0x00600303, 0x81C,      0x00620303,
-	0x81C,      0x00640303, 0x81C,      0x00660303, 0x81C,      0x00680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF7000303, 0x81C,      0xF6020303,
-	0x81C,      0xF5040303, 0x81C,      0xF4060303, 0x81C,      0xF3080303,
-	0x81C,      0xF20A0303, 0x81C,      0xF10C0303, 0x81C,      0xF00E0303,
-	0x81C,      0xEF100303, 0x81C,      0xEE120303, 0x81C,      0xED140303,
-	0x81C,      0xEC160303, 0x81C,      0xEB180303, 0x81C,      0xEA1A0303,
-	0x81C,      0xE91C0303, 0x81C,      0xCA1E0303, 0x81C,      0xC9200303,
-	0x81C,      0xC8220303, 0x81C,      0xC7240303, 0x81C,      0xC6260303,
-	0x81C,      0xC5280303, 0x81C,      0xC42A0303, 0x81C,      0xC32C0303,
-	0x81C,      0xC22E0303, 0x81C,      0xC1300303, 0x81C,      0xA4320303,
-	0x81C,      0xA3340303, 0x81C,      0xA2360303, 0x81C,      0xA1380303,
-	0x81C,      0xA03A0303, 0x81C,      0x823C0303, 0x81C,      0x813E0303,
-	0x81C,      0x80400303, 0x81C,      0x64420303, 0x81C,      0x63440303,
-	0x81C,      0x62460303, 0x81C,      0x61480303, 0x81C,      0x604A0303,
-	0x81C,      0x414C0303, 0x81C,      0x404E0303, 0x81C,      0x22500303,
-	0x81C,      0x21520303, 0x81C,      0x20540303, 0x81C,      0x03560303,
-	0x81C,      0x02580303, 0x81C,      0x015A0303, 0x81C,      0x005C0303,
-	0x81C,      0x005E0303, 0x81C,      0x00600303, 0x81C,      0x00620303,
-	0x81C,      0x00640303, 0x81C,      0x00660303, 0x81C,      0x00680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0x90012100, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFB000303, 0x81C,      0xFA020303,
-	0x81C,      0xF9040303, 0x81C,      0xF8060303, 0x81C,      0xF7080303,
-	0x81C,      0xF60A0303, 0x81C,      0xF50C0303, 0x81C,      0xF40E0303,
-	0x81C,      0xF3100303, 0x81C,      0xF2120303, 0x81C,      0xF1140303,
-	0x81C,      0xF0160303, 0x81C,      0xEF180303, 0x81C,      0xEE1A0303,
-	0x81C,      0xED1C0303, 0x81C,      0xEC1E0303, 0x81C,      0xEB200303,
-	0x81C,      0xEA220303, 0x81C,      0xE9240303, 0x81C,      0xE8260303,
-	0x81C,      0xE7280303, 0x81C,      0xE62A0303, 0x81C,      0xE52C0303,
-	0x81C,      0xE42E0303, 0x81C,      0xE3300303, 0x81C,      0xE2320303,
-	0x81C,      0xC6340303, 0x81C,      0xC5360303, 0x81C,      0xC4380303,
-	0x81C,      0xC33A0303, 0x81C,      0xC23C0303, 0x81C,      0xC13E0303,
-	0x81C,      0xA4400303, 0x81C,      0xA3420303, 0x81C,      0xA2440303,
-	0x81C,      0xA1460303, 0x81C,      0x83480303, 0x81C,      0x824A0303,
-	0x81C,      0x814C0303, 0x81C,      0x804E0303, 0x81C,      0x63500303,
-	0x81C,      0x62520303, 0x81C,      0x43540303, 0x81C,      0x42560303,
-	0x81C,      0x41580303, 0x81C,      0x235A0303, 0x81C,      0x225C0303,
-	0x81C,      0x215E0303, 0x81C,      0x20600303, 0x81C,      0x04620303,
-	0x81C,      0x03640303, 0x81C,      0x02660303, 0x81C,      0x01680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xF8000303, 0x81C,      0xF7020303,
-	0x81C,      0xF6040303, 0x81C,      0xF5060303, 0x81C,      0xF4080303,
-	0x81C,      0xF30A0303, 0x81C,      0xF20C0303, 0x81C,      0xF10E0303,
-	0x81C,      0xF0100303, 0x81C,      0xEF120303, 0x81C,      0xEE140303,
-	0x81C,      0xED160303, 0x81C,      0xEC180303, 0x81C,      0xEB1A0303,
-	0x81C,      0xEA1C0303, 0x81C,      0xE91E0303, 0x81C,      0xCA200303,
-	0x81C,      0xC9220303, 0x81C,      0xC8240303, 0x81C,      0xC7260303,
-	0x81C,      0xC6280303, 0x81C,      0xC52A0303, 0x81C,      0xC42C0303,
-	0x81C,      0xC32E0303, 0x81C,      0xC2300303, 0x81C,      0xC1320303,
-	0x81C,      0xA3340303, 0x81C,      0xA2360303, 0x81C,      0xA1380303,
-	0x81C,      0xA03A0303, 0x81C,      0x823C0303, 0x81C,      0x813E0303,
-	0x81C,      0x80400303, 0x81C,      0x65420303, 0x81C,      0x64440303,
-	0x81C,      0x63460303, 0x81C,      0x62480303, 0x81C,      0x614A0303,
-	0x81C,      0x424C0303, 0x81C,      0x414E0303, 0x81C,      0x40500303,
-	0x81C,      0x22520303, 0x81C,      0x21540303, 0x81C,      0x20560303,
-	0x81C,      0x04580303, 0x81C,      0x035A0303, 0x81C,      0x025C0303,
-	0x81C,      0x015E0303, 0x81C,      0x00600303, 0x81C,      0x00620303,
-	0x81C,      0x00640303, 0x81C,      0x00660303, 0x81C,      0x00680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0x90011000, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFB000303, 0x81C,      0xFA020303,
-	0x81C,      0xF9040303, 0x81C,      0xF8060303, 0x81C,      0xF7080303,
-	0x81C,      0xF60A0303, 0x81C,      0xF50C0303, 0x81C,      0xF40E0303,
-	0x81C,      0xF3100303, 0x81C,      0xF2120303, 0x81C,      0xF1140303,
-	0x81C,      0xF0160303, 0x81C,      0xEE180303, 0x81C,      0xED1A0303,
-	0x81C,      0xEC1C0303, 0x81C,      0xEB1E0303, 0x81C,      0xEA200303,
-	0x81C,      0xE9220303, 0x81C,      0xE8240303, 0x81C,      0xE7260303,
-	0x81C,      0xE6280303, 0x81C,      0xE52A0303, 0x81C,      0xE42C0303,
-	0x81C,      0xE32E0303, 0x81C,      0xE2300303, 0x81C,      0xE1320303,
-	0x81C,      0xC6340303, 0x81C,      0xC5360303, 0x81C,      0xC4380303,
-	0x81C,      0xC33A0303, 0x81C,      0xA63C0303, 0x81C,      0xA53E0303,
-	0x81C,      0xA4400303, 0x81C,      0xA3420303, 0x81C,      0xA2440303,
-	0x81C,      0xA1460303, 0x81C,      0x83480303, 0x81C,      0x824A0303,
-	0x81C,      0x814C0303, 0x81C,      0x804E0303, 0x81C,      0x63500303,
-	0x81C,      0x62520303, 0x81C,      0x61540303, 0x81C,      0x42560303,
-	0x81C,      0x41580303, 0x81C,      0x405A0303, 0x81C,      0x225C0303,
-	0x81C,      0x215E0303, 0x81C,      0x20600303, 0x81C,      0x04620303,
-	0x81C,      0x03640303, 0x81C,      0x02660303, 0x81C,      0x01680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFB000303, 0x81C,      0xFA020303,
-	0x81C,      0xF9040303, 0x81C,      0xF8060303, 0x81C,      0xF7080303,
-	0x81C,      0xF60A0303, 0x81C,      0xF50C0303, 0x81C,      0xF40E0303,
-	0x81C,      0xF3100303, 0x81C,      0xF2120303, 0x81C,      0xF1140303,
-	0x81C,      0xF0160303, 0x81C,      0xEF180303, 0x81C,      0xEE1A0303,
-	0x81C,      0xED1C0303, 0x81C,      0xEC1E0303, 0x81C,      0xEB200303,
-	0x81C,      0xEA220303, 0x81C,      0xE9240303, 0x81C,      0xE8260303,
-	0x81C,      0xE7280303, 0x81C,      0xE62A0303, 0x81C,      0xE52C0303,
-	0x81C,      0xE42E0303, 0x81C,      0xE3300303, 0x81C,      0xE2320303,
-	0x81C,      0xE1340303, 0x81C,      0xC5360303, 0x81C,      0xC4380303,
-	0x81C,      0xC33A0303, 0x81C,      0xC23C0303, 0x81C,      0xC13E0303,
-	0x81C,      0xA4400303, 0x81C,      0xA3420303, 0x81C,      0xA2440303,
-	0x81C,      0xA1460303, 0x81C,      0x83480303, 0x81C,      0x824A0303,
-	0x81C,      0x814C0303, 0x81C,      0x804E0303, 0x81C,      0x64500303,
-	0x81C,      0x63520303, 0x81C,      0x62540303, 0x81C,      0x61560303,
-	0x81C,      0x60580303, 0x81C,      0x235A0303, 0x81C,      0x225C0303,
-	0x81C,      0x215E0303, 0x81C,      0x20600303, 0x81C,      0x04620303,
-	0x81C,      0x03640303, 0x81C,      0x02660303, 0x81C,      0x01680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFC000303, 0x81C,      0xFB020303,
-	0x81C,      0xFA040303, 0x81C,      0xF9060303, 0x81C,      0xF8080303,
-	0x81C,      0xF70A0303, 0x81C,      0xF60C0303, 0x81C,      0xF50E0303,
-	0x81C,      0xF4100303, 0x81C,      0xF3120303, 0x81C,      0xF2140303,
-	0x81C,      0xF1160303, 0x81C,      0xF0180303, 0x81C,      0xEF1A0303,
-	0x81C,      0xEE1C0303, 0x81C,      0xED1E0303, 0x81C,      0xEC200303,
-	0x81C,      0xEB220303, 0x81C,      0xEA240303, 0x81C,      0xE9260303,
-	0x81C,      0xE8280303, 0x81C,      0xE72A0303, 0x81C,      0xE62C0303,
-	0x81C,      0xE52E0303, 0x81C,      0xE4300303, 0x81C,      0xE3320303,
-	0x81C,      0xE2340303, 0x81C,      0xC6360303, 0x81C,      0xC5380303,
-	0x81C,      0xC43A0303, 0x81C,      0xC33C0303, 0x81C,      0xA63E0303,
-	0x81C,      0xA5400303, 0x81C,      0xA4420303, 0x81C,      0xA3440303,
-	0x81C,      0xA2460303, 0x81C,      0x84480303, 0x81C,      0x834A0303,
-	0x81C,      0x824C0303, 0x81C,      0x814E0303, 0x81C,      0x80500303,
-	0x81C,      0x63520303, 0x81C,      0x62540303, 0x81C,      0x61560303,
-	0x81C,      0x60580303, 0x81C,      0x225A0303, 0x81C,      0x055C0303,
-	0x81C,      0x045E0303, 0x81C,      0x03600303, 0x81C,      0x02620303,
-	0x81C,      0x01640303, 0x81C,      0x00660303, 0x81C,      0x00680303,
-	0x81C,      0x006A0303, 0x81C,      0x006C0303, 0x81C,      0x006E0303,
-	0x81C,      0x00700303, 0x81C,      0x00720303, 0x81C,      0x00740303,
-	0x81C,      0x00760303, 0x81C,      0x00780303, 0x81C,      0x007A0303,
-	0x81C,      0x007C0303, 0x81C,      0x007E0303, 0xA0000000, 0x00000000,
-	0x81C,      0xFC000303, 0x81C,      0xFB020303, 0x81C,      0xFA040303,
-	0x81C,      0xF9060303, 0x81C,      0xF8080303, 0x81C,      0xF70A0303,
-	0x81C,      0xF60C0303, 0x81C,      0xF50E0303, 0x81C,      0xF4100303,
-	0x81C,      0xF3120303, 0x81C,      0xF2140303, 0x81C,      0xF1160303,
-	0x81C,      0xF0180303, 0x81C,      0xEF1A0303, 0x81C,      0xEE1C0303,
-	0x81C,      0xED1E0303, 0x81C,      0xEC200303, 0x81C,      0xEB220303,
-	0x81C,      0xEA240303, 0x81C,      0xE9260303, 0x81C,      0xE8280303,
-	0x81C,      0xE72A0303, 0x81C,      0xE62C0303, 0x81C,      0xE52E0303,
-	0x81C,      0xE4300303, 0x81C,      0xE3320303, 0x81C,      0xE2340303,
-	0x81C,      0xC6360303, 0x81C,      0xC5380303, 0x81C,      0xC43A0303,
-	0x81C,      0xC33C0303, 0x81C,      0xA63E0303, 0x81C,      0xA5400303,
-	0x81C,      0xA4420303, 0x81C,      0xA3440303, 0x81C,      0xA2460303,
-	0x81C,      0x84480303, 0x81C,      0x834A0303, 0x81C,      0x824C0303,
-	0x81C,      0x814E0303, 0x81C,      0x80500303, 0x81C,      0x63520303,
-	0x81C,      0x62540303, 0x81C,      0x61560303, 0x81C,      0x60580303,
-	0x81C,      0x235A0303, 0x81C,      0x225C0303, 0x81C,      0x215E0303,
-	0x81C,      0x20600303, 0x81C,      0x03620303, 0x81C,      0x02640303,
-	0x81C,      0x01660303, 0x81C,      0x00680303, 0x81C,      0x006A0303,
-	0x81C,      0x006C0303, 0x81C,      0x006E0303, 0x81C,      0x00700303,
-	0x81C,      0x00720303, 0x81C,      0x00740303, 0x81C,      0x00760303,
-	0x81C,      0x00780303, 0x81C,      0x007A0303, 0x81C,      0x007C0303,
-	0x81C,      0x007E0303, 0xB0000000, 0x00000000, 0x8000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x81C,      0xFF000403, 0x81C,      0xF5000403,
-	0x81C,      0xF4020403, 0x81C,      0xF3040403, 0x81C,      0xF2060403,
-	0x81C,      0xF1080403, 0x81C,      0xF00A0403, 0x81C,      0xEF0C0403,
-	0x81C,      0xEE0E0403, 0x81C,      0xED100403, 0x81C,      0xEC120403,
-	0x81C,      0xEB140403, 0x81C,      0xEA160403, 0x81C,      0xE9180403,
-	0x81C,      0xE81A0403, 0x81C,      0xE71C0403, 0x81C,      0xE61E0403,
-	0x81C,      0xE5200403, 0x81C,      0xE4220403, 0x81C,      0xE3240403,
-	0x81C,      0xE2260403, 0x81C,      0xE1280403, 0x81C,      0xE02A0403,
-	0x81C,      0xC32C0403, 0x81C,      0xC22E0403, 0x81C,      0xC1300403,
-	0x81C,      0xC0320403, 0x81C,      0xA4340403, 0x81C,      0xA3360403,
-	0x81C,      0xA2380403, 0x81C,      0xA13A0403, 0x81C,      0xA03C0403,
-	0x81C,      0x823E0403, 0x81C,      0x81400403, 0x81C,      0x80420403,
-	0x81C,      0x64440403, 0x81C,      0x63460403, 0x81C,      0x62480403,
-	0x81C,      0x614A0403, 0x81C,      0x604C0403, 0x81C,      0x454E0403,
-	0x81C,      0x44500403, 0x81C,      0x43520403, 0x81C,      0x42540403,
-	0x81C,      0x41560403, 0x81C,      0x40580403, 0x81C,      0x055A0403,
-	0x81C,      0x045C0403, 0x81C,      0x035E0403, 0x81C,      0x02600403,
-	0x81C,      0x01620403, 0x81C,      0x00640403, 0x81C,      0x00660403,
-	0x81C,      0x00680403, 0x81C,      0x006A0403, 0x81C,      0x006C0403,
-	0x81C,      0x006E0403, 0x81C,      0x00700403, 0x81C,      0x00720403,
-	0x81C,      0x00740403, 0x81C,      0x00760403, 0x81C,      0x00780403,
-	0x81C,      0x007A0403, 0x81C,      0x007C0403, 0x81C,      0x007E0403,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x81C,      0xFF000403,
-	0x81C,      0xF5000403, 0x81C,      0xF4020403, 0x81C,      0xF3040403,
-	0x81C,      0xF2060403, 0x81C,      0xF1080403, 0x81C,      0xF00A0403,
-	0x81C,      0xEF0C0403, 0x81C,      0xEE0E0403, 0x81C,      0xED100403,
-	0x81C,      0xEC120403, 0x81C,      0xEB140403, 0x81C,      0xEA160403,
-	0x81C,      0xE9180403, 0x81C,      0xE81A0403, 0x81C,      0xE71C0403,
-	0x81C,      0xE61E0403, 0x81C,      0xE5200403, 0x81C,      0xE4220403,
-	0x81C,      0xE3240403, 0x81C,      0xE2260403, 0x81C,      0xE1280403,
-	0x81C,      0xE02A0403, 0x81C,      0xC32C0403, 0x81C,      0xC22E0403,
-	0x81C,      0xC1300403, 0x81C,      0xC0320403, 0x81C,      0xA4340403,
-	0x81C,      0xA3360403, 0x81C,      0xA2380403, 0x81C,      0xA13A0403,
-	0x81C,      0xA03C0403, 0x81C,      0x823E0403, 0x81C,      0x81400403,
-	0x81C,      0x80420403, 0x81C,      0x64440403, 0x81C,      0x63460403,
-	0x81C,      0x62480403, 0x81C,      0x614A0403, 0x81C,      0x604C0403,
-	0x81C,      0x454E0403, 0x81C,      0x44500403, 0x81C,      0x43520403,
-	0x81C,      0x42540403, 0x81C,      0x41560403, 0x81C,      0x40580403,
-	0x81C,      0x055A0403, 0x81C,      0x045C0403, 0x81C,      0x035E0403,
-	0x81C,      0x02600403, 0x81C,      0x01620403, 0x81C,      0x00640403,
-	0x81C,      0x00660403, 0x81C,      0x00680403, 0x81C,      0x006A0403,
-	0x81C,      0x006C0403, 0x81C,      0x006E0403, 0x81C,      0x00700403,
-	0x81C,      0x00720403, 0x81C,      0x00740403, 0x81C,      0x00760403,
-	0x81C,      0x00780403, 0x81C,      0x007A0403, 0x81C,      0x007C0403,
-	0x81C,      0x007E0403, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x81C,      0xFF000403, 0x81C,      0xF5000403, 0x81C,      0xF4020403,
-	0x81C,      0xF3040403, 0x81C,      0xF2060403, 0x81C,      0xF1080403,
-	0x81C,      0xF00A0403, 0x81C,      0xEF0C0403, 0x81C,      0xEE0E0403,
-	0x81C,      0xED100403, 0x81C,      0xEC120403, 0x81C,      0xEB140403,
-	0x81C,      0xEA160403, 0x81C,      0xE9180403, 0x81C,      0xE81A0403,
-	0x81C,      0xE71C0403, 0x81C,      0xE61E0403, 0x81C,      0xE5200403,
-	0x81C,      0xE4220403, 0x81C,      0xE3240403, 0x81C,      0xE2260403,
-	0x81C,      0xE1280403, 0x81C,      0xE02A0403, 0x81C,      0xC32C0403,
-	0x81C,      0xC22E0403, 0x81C,      0xC1300403, 0x81C,      0xC0320403,
-	0x81C,      0xA4340403, 0x81C,      0xA3360403, 0x81C,      0xA2380403,
-	0x81C,      0xA13A0403, 0x81C,      0xA03C0403, 0x81C,      0x823E0403,
-	0x81C,      0x81400403, 0x81C,      0x80420403, 0x81C,      0x64440403,
-	0x81C,      0x63460403, 0x81C,      0x62480403, 0x81C,      0x614A0403,
-	0x81C,      0x604C0403, 0x81C,      0x454E0403, 0x81C,      0x44500403,
-	0x81C,      0x43520403, 0x81C,      0x42540403, 0x81C,      0x41560403,
-	0x81C,      0x40580403, 0x81C,      0x055A0403, 0x81C,      0x045C0403,
-	0x81C,      0x035E0403, 0x81C,      0x02600403, 0x81C,      0x01620403,
-	0x81C,      0x00640403, 0x81C,      0x00660403, 0x81C,      0x00680403,
-	0x81C,      0x006A0403, 0x81C,      0x006C0403, 0x81C,      0x006E0403,
-	0x81C,      0x00700403, 0x81C,      0x00720403, 0x81C,      0x00740403,
-	0x81C,      0x00760403, 0x81C,      0x00780403, 0x81C,      0x007A0403,
-	0x81C,      0x007C0403, 0x81C,      0x007E0403, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFF000403, 0x81C,      0xF5000403,
-	0x81C,      0xF4020403, 0x81C,      0xF3040403, 0x81C,      0xF2060403,
-	0x81C,      0xF1080403, 0x81C,      0xF00A0403, 0x81C,      0xEF0C0403,
-	0x81C,      0xEE0E0403, 0x81C,      0xED100403, 0x81C,      0xEC120403,
-	0x81C,      0xEB140403, 0x81C,      0xEA160403, 0x81C,      0xE9180403,
-	0x81C,      0xE81A0403, 0x81C,      0xE71C0403, 0x81C,      0xE61E0403,
-	0x81C,      0xE5200403, 0x81C,      0xE4220403, 0x81C,      0xE3240403,
-	0x81C,      0xE2260403, 0x81C,      0xE1280403, 0x81C,      0xE02A0403,
-	0x81C,      0xC32C0403, 0x81C,      0xC22E0403, 0x81C,      0xC1300403,
-	0x81C,      0xC0320403, 0x81C,      0xA4340403, 0x81C,      0xA3360403,
-	0x81C,      0xA2380403, 0x81C,      0xA13A0403, 0x81C,      0xA03C0403,
-	0x81C,      0x823E0403, 0x81C,      0x81400403, 0x81C,      0x80420403,
-	0x81C,      0x64440403, 0x81C,      0x63460403, 0x81C,      0x62480403,
-	0x81C,      0x614A0403, 0x81C,      0x604C0403, 0x81C,      0x454E0403,
-	0x81C,      0x44500403, 0x81C,      0x43520403, 0x81C,      0x42540403,
-	0x81C,      0x41560403, 0x81C,      0x40580403, 0x81C,      0x055A0403,
-	0x81C,      0x045C0403, 0x81C,      0x035E0403, 0x81C,      0x02600403,
-	0x81C,      0x01620403, 0x81C,      0x00640403, 0x81C,      0x00660403,
-	0x81C,      0x00680403, 0x81C,      0x006A0403, 0x81C,      0x006C0403,
-	0x81C,      0x006E0403, 0x81C,      0x00700403, 0x81C,      0x00720403,
-	0x81C,      0x00740403, 0x81C,      0x00760403, 0x81C,      0x00780403,
-	0x81C,      0x007A0403, 0x81C,      0x007C0403, 0x81C,      0x007E0403,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x81C,      0xFF000403,
-	0x81C,      0xFF000403, 0x81C,      0xFF020403, 0x81C,      0xFE040403,
-	0x81C,      0xFD060403, 0x81C,      0xFC080403, 0x81C,      0xFB0A0403,
-	0x81C,      0xFA0C0403, 0x81C,      0xF90E0403, 0x81C,      0xF8100403,
-	0x81C,      0xF7120403, 0x81C,      0xF6140403, 0x81C,      0xF5160403,
-	0x81C,      0xF4180403, 0x81C,      0xF31A0403, 0x81C,      0xF21C0403,
-	0x81C,      0xD51E0403, 0x81C,      0xD4200403, 0x81C,      0xD3220403,
-	0x81C,      0xD2240403, 0x81C,      0xB6260403, 0x81C,      0xB5280403,
-	0x81C,      0xB42A0403, 0x81C,      0xB32C0403, 0x81C,      0xB22E0403,
-	0x81C,      0xB1300403, 0x81C,      0xB0320403, 0x81C,      0xAF340403,
-	0x81C,      0xAE360403, 0x81C,      0xAD380403, 0x81C,      0xAC3A0403,
-	0x81C,      0xAB3C0403, 0x81C,      0xAA3E0403, 0x81C,      0xA9400403,
-	0x81C,      0xA8420403, 0x81C,      0xA7440403, 0x81C,      0xA6460403,
-	0x81C,      0xA5480403, 0x81C,      0xA44A0403, 0x81C,      0xA34C0403,
-	0x81C,      0x854E0403, 0x81C,      0x84500403, 0x81C,      0x83520403,
-	0x81C,      0x82540403, 0x81C,      0x81560403, 0x81C,      0x80580403,
-	0x81C,      0x485A0403, 0x81C,      0x475C0403, 0x81C,      0x465E0403,
-	0x81C,      0x45600403, 0x81C,      0x44620403, 0x81C,      0x0A640403,
-	0x81C,      0x09660403, 0x81C,      0x08680403, 0x81C,      0x076A0403,
-	0x81C,      0x066C0403, 0x81C,      0x056E0403, 0x81C,      0x04700403,
-	0x81C,      0x03720403, 0x81C,      0x02740403, 0x81C,      0x01760403,
-	0x81C,      0x00780403, 0x81C,      0x007A0403, 0x81C,      0x007C0403,
-	0x81C,      0x007E0403, 0x90012100, 0x00000000, 0x40000000, 0x00000000,
-	0x81C,      0xFF000403, 0x81C,      0xFF000403, 0x81C,      0xFF020403,
-	0x81C,      0xFE040403, 0x81C,      0xFD060403, 0x81C,      0xFC080403,
-	0x81C,      0xFB0A0403, 0x81C,      0xFA0C0403, 0x81C,      0xF90E0403,
-	0x81C,      0xF8100403, 0x81C,      0xF7120403, 0x81C,      0xF6140403,
-	0x81C,      0xF5160403, 0x81C,      0xF4180403, 0x81C,      0xF31A0403,
-	0x81C,      0xF21C0403, 0x81C,      0xD51E0403, 0x81C,      0xD4200403,
-	0x81C,      0xD3220403, 0x81C,      0xD2240403, 0x81C,      0xB6260403,
-	0x81C,      0xB5280403, 0x81C,      0xB42A0403, 0x81C,      0xB32C0403,
-	0x81C,      0xB22E0403, 0x81C,      0xB1300403, 0x81C,      0xB0320403,
-	0x81C,      0xAF340403, 0x81C,      0xAE360403, 0x81C,      0xAD380403,
-	0x81C,      0xAC3A0403, 0x81C,      0xAB3C0403, 0x81C,      0xAA3E0403,
-	0x81C,      0xA9400403, 0x81C,      0xA8420403, 0x81C,      0xA7440403,
-	0x81C,      0xA6460403, 0x81C,      0xA5480403, 0x81C,      0xA44A0403,
-	0x81C,      0xA34C0403, 0x81C,      0x854E0403, 0x81C,      0x84500403,
-	0x81C,      0x83520403, 0x81C,      0x82540403, 0x81C,      0x81560403,
-	0x81C,      0x80580403, 0x81C,      0x485A0403, 0x81C,      0x475C0403,
-	0x81C,      0x465E0403, 0x81C,      0x45600403, 0x81C,      0x44620403,
-	0x81C,      0x0A640403, 0x81C,      0x09660403, 0x81C,      0x08680403,
-	0x81C,      0x076A0403, 0x81C,      0x066C0403, 0x81C,      0x056E0403,
-	0x81C,      0x04700403, 0x81C,      0x03720403, 0x81C,      0x02740403,
-	0x81C,      0x01760403, 0x81C,      0x00780403, 0x81C,      0x007A0403,
-	0x81C,      0x007C0403, 0x81C,      0x007E0403, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFF000403, 0x81C,      0xF5000403,
-	0x81C,      0xF4020403, 0x81C,      0xF3040403, 0x81C,      0xF2060403,
-	0x81C,      0xF1080403, 0x81C,      0xF00A0403, 0x81C,      0xEF0C0403,
-	0x81C,      0xEE0E0403, 0x81C,      0xED100403, 0x81C,      0xEC120403,
-	0x81C,      0xEB140403, 0x81C,      0xEA160403, 0x81C,      0xE9180403,
-	0x81C,      0xE81A0403, 0x81C,      0xE71C0403, 0x81C,      0xE61E0403,
-	0x81C,      0xE5200403, 0x81C,      0xE4220403, 0x81C,      0xE3240403,
-	0x81C,      0xE2260403, 0x81C,      0xE1280403, 0x81C,      0xE02A0403,
-	0x81C,      0xC32C0403, 0x81C,      0xC22E0403, 0x81C,      0xC1300403,
-	0x81C,      0xC0320403, 0x81C,      0xA4340403, 0x81C,      0xA3360403,
-	0x81C,      0xA2380403, 0x81C,      0xA13A0403, 0x81C,      0xA03C0403,
-	0x81C,      0x823E0403, 0x81C,      0x81400403, 0x81C,      0x80420403,
-	0x81C,      0x64440403, 0x81C,      0x63460403, 0x81C,      0x62480403,
-	0x81C,      0x614A0403, 0x81C,      0x604C0403, 0x81C,      0x454E0403,
-	0x81C,      0x44500403, 0x81C,      0x43520403, 0x81C,      0x42540403,
-	0x81C,      0x41560403, 0x81C,      0x40580403, 0x81C,      0x055A0403,
-	0x81C,      0x045C0403, 0x81C,      0x035E0403, 0x81C,      0x02600403,
-	0x81C,      0x01620403, 0x81C,      0x00640403, 0x81C,      0x00660403,
-	0x81C,      0x00680403, 0x81C,      0x006A0403, 0x81C,      0x006C0403,
-	0x81C,      0x006E0403, 0x81C,      0x00700403, 0x81C,      0x00720403,
-	0x81C,      0x00740403, 0x81C,      0x00760403, 0x81C,      0x00780403,
-	0x81C,      0x007A0403, 0x81C,      0x007C0403, 0x81C,      0x007E0403,
-	0x90011000, 0x00000000, 0x40000000, 0x00000000, 0x81C,      0xFF000403,
-	0x81C,      0xFF000403, 0x81C,      0xFF020403, 0x81C,      0xFE040403,
-	0x81C,      0xFD060403, 0x81C,      0xFC080403, 0x81C,      0xFB0A0403,
-	0x81C,      0xFA0C0403, 0x81C,      0xF90E0403, 0x81C,      0xF8100403,
-	0x81C,      0xF7120403, 0x81C,      0xF6140403, 0x81C,      0xF5160403,
-	0x81C,      0xF4180403, 0x81C,      0xF31A0403, 0x81C,      0xF21C0403,
-	0x81C,      0xD51E0403, 0x81C,      0xD4200403, 0x81C,      0xD3220403,
-	0x81C,      0xD2240403, 0x81C,      0xB6260403, 0x81C,      0xB5280403,
-	0x81C,      0xB42A0403, 0x81C,      0xB32C0403, 0x81C,      0xB22E0403,
-	0x81C,      0xB1300403, 0x81C,      0xB0320403, 0x81C,      0xAF340403,
-	0x81C,      0xAE360403, 0x81C,      0xAD380403, 0x81C,      0xAC3A0403,
-	0x81C,      0xAB3C0403, 0x81C,      0xAA3E0403, 0x81C,      0xA9400403,
-	0x81C,      0xA8420403, 0x81C,      0xA7440403, 0x81C,      0xA6460403,
-	0x81C,      0xA5480403, 0x81C,      0xA44A0403, 0x81C,      0xA34C0403,
-	0x81C,      0x854E0403, 0x81C,      0x84500403, 0x81C,      0x83520403,
-	0x81C,      0x82540403, 0x81C,      0x81560403, 0x81C,      0x80580403,
-	0x81C,      0x485A0403, 0x81C,      0x475C0403, 0x81C,      0x465E0403,
-	0x81C,      0x45600403, 0x81C,      0x44620403, 0x81C,      0x0A640403,
-	0x81C,      0x09660403, 0x81C,      0x08680403, 0x81C,      0x076A0403,
-	0x81C,      0x066C0403, 0x81C,      0x056E0403, 0x81C,      0x04700403,
-	0x81C,      0x03720403, 0x81C,      0x02740403, 0x81C,      0x01760403,
-	0x81C,      0x00780403, 0x81C,      0x007A0403, 0x81C,      0x007C0403,
-	0x81C,      0x007E0403, 0x90002100, 0x00000000, 0x40000000, 0x00000000,
-	0x81C,      0xFF000403, 0x81C,      0xFF000403, 0x81C,      0xFF020403,
-	0x81C,      0xFE040403, 0x81C,      0xFD060403, 0x81C,      0xFC080403,
-	0x81C,      0xFB0A0403, 0x81C,      0xFA0C0403, 0x81C,      0xF90E0403,
-	0x81C,      0xF8100403, 0x81C,      0xF7120403, 0x81C,      0xF6140403,
-	0x81C,      0xF5160403, 0x81C,      0xF4180403, 0x81C,      0xF31A0403,
-	0x81C,      0xF21C0403, 0x81C,      0xD51E0403, 0x81C,      0xD4200403,
-	0x81C,      0xD3220403, 0x81C,      0xD2240403, 0x81C,      0xB6260403,
-	0x81C,      0xB5280403, 0x81C,      0xB42A0403, 0x81C,      0xB32C0403,
-	0x81C,      0xB22E0403, 0x81C,      0xB1300403, 0x81C,      0xB0320403,
-	0x81C,      0xAF340403, 0x81C,      0xAE360403, 0x81C,      0xAD380403,
-	0x81C,      0xAC3A0403, 0x81C,      0xAB3C0403, 0x81C,      0xAA3E0403,
-	0x81C,      0xA9400403, 0x81C,      0xA8420403, 0x81C,      0xA7440403,
-	0x81C,      0xA6460403, 0x81C,      0xA5480403, 0x81C,      0xA44A0403,
-	0x81C,      0xA34C0403, 0x81C,      0x854E0403, 0x81C,      0x84500403,
-	0x81C,      0x83520403, 0x81C,      0x82540403, 0x81C,      0x81560403,
-	0x81C,      0x80580403, 0x81C,      0x485A0403, 0x81C,      0x475C0403,
-	0x81C,      0x465E0403, 0x81C,      0x45600403, 0x81C,      0x44620403,
-	0x81C,      0x0A640403, 0x81C,      0x09660403, 0x81C,      0x08680403,
-	0x81C,      0x076A0403, 0x81C,      0x066C0403, 0x81C,      0x056E0403,
-	0x81C,      0x04700403, 0x81C,      0x03720403, 0x81C,      0x02740403,
-	0x81C,      0x01760403, 0x81C,      0x00780403, 0x81C,      0x007A0403,
-	0x81C,      0x007C0403, 0x81C,      0x007E0403, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x81C,      0xFF000403, 0x81C,      0xFF000403,
-	0x81C,      0xFF020403, 0x81C,      0xFE040403, 0x81C,      0xFD060403,
-	0x81C,      0xFC080403, 0x81C,      0xFB0A0403, 0x81C,      0xFA0C0403,
-	0x81C,      0xF90E0403, 0x81C,      0xF8100403, 0x81C,      0xF7120403,
-	0x81C,      0xF6140403, 0x81C,      0xF5160403, 0x81C,      0xF4180403,
-	0x81C,      0xF31A0403, 0x81C,      0xF21C0403, 0x81C,      0xD51E0403,
-	0x81C,      0xD4200403, 0x81C,      0xD3220403, 0x81C,      0xD2240403,
-	0x81C,      0xB6260403, 0x81C,      0xB5280403, 0x81C,      0xB42A0403,
-	0x81C,      0xB32C0403, 0x81C,      0xB22E0403, 0x81C,      0xB1300403,
-	0x81C,      0xB0320403, 0x81C,      0xAF340403, 0x81C,      0xAE360403,
-	0x81C,      0xAD380403, 0x81C,      0xAC3A0403, 0x81C,      0xAB3C0403,
-	0x81C,      0xAA3E0403, 0x81C,      0xA9400403, 0x81C,      0xA8420403,
-	0x81C,      0xA7440403, 0x81C,      0xA6460403, 0x81C,      0xA5480403,
-	0x81C,      0xA44A0403, 0x81C,      0xA34C0403, 0x81C,      0x854E0403,
-	0x81C,      0x84500403, 0x81C,      0x83520403, 0x81C,      0x82540403,
-	0x81C,      0x81560403, 0x81C,      0x80580403, 0x81C,      0x485A0403,
-	0x81C,      0x475C0403, 0x81C,      0x465E0403, 0x81C,      0x45600403,
-	0x81C,      0x44620403, 0x81C,      0x0A640403, 0x81C,      0x09660403,
-	0x81C,      0x08680403, 0x81C,      0x076A0403, 0x81C,      0x066C0403,
-	0x81C,      0x056E0403, 0x81C,      0x04700403, 0x81C,      0x03720403,
-	0x81C,      0x02740403, 0x81C,      0x01760403, 0x81C,      0x00780403,
-	0x81C,      0x007A0403, 0x81C,      0x007C0403, 0x81C,      0x007E0403,
-	0xA0000000, 0x00000000, 0x81C,      0xFF000403, 0x81C,      0xFF000403,
-	0x81C,      0xFF020403, 0x81C,      0xFE040403, 0x81C,      0xFD060403,
-	0x81C,      0xFC080403, 0x81C,      0xFB0A0403, 0x81C,      0xFA0C0403,
-	0x81C,      0xF90E0403, 0x81C,      0xF8100403, 0x81C,      0xF7120403,
-	0x81C,      0xF6140403, 0x81C,      0xF5160403, 0x81C,      0xF4180403,
-	0x81C,      0xF31A0403, 0x81C,      0xF21C0403, 0x81C,      0xD51E0403,
-	0x81C,      0xD4200403, 0x81C,      0xD3220403, 0x81C,      0xD2240403,
-	0x81C,      0xB6260403, 0x81C,      0xB5280403, 0x81C,      0xB42A0403,
-	0x81C,      0xB32C0403, 0x81C,      0xB22E0403, 0x81C,      0xB1300403,
-	0x81C,      0xB0320403, 0x81C,      0xAF340403, 0x81C,      0xAE360403,
-	0x81C,      0xAD380403, 0x81C,      0xAC3A0403, 0x81C,      0xAB3C0403,
-	0x81C,      0xAA3E0403, 0x81C,      0xA9400403, 0x81C,      0xA8420403,
-	0x81C,      0xA7440403, 0x81C,      0xA6460403, 0x81C,      0xA5480403,
-	0x81C,      0xA44A0403, 0x81C,      0xA34C0403, 0x81C,      0x854E0403,
-	0x81C,      0x84500403, 0x81C,      0x83520403, 0x81C,      0x82540403,
-	0x81C,      0x81560403, 0x81C,      0x80580403, 0x81C,      0x485A0403,
-	0x81C,      0x475C0403, 0x81C,      0x465E0403, 0x81C,      0x45600403,
-	0x81C,      0x44620403, 0x81C,      0x0A640403, 0x81C,      0x09660403,
-	0x81C,      0x08680403, 0x81C,      0x076A0403, 0x81C,      0x066C0403,
-	0x81C,      0x056E0403, 0x81C,      0x04700403, 0x81C,      0x03720403,
-	0x81C,      0x02740403, 0x81C,      0x01760403, 0x81C,      0x00780403,
-	0x81C,      0x007A0403, 0x81C,      0x007C0403, 0x81C,      0x007E0403,
-	0xB0000000, 0x00000000, 0xC50,      0x00000022, 0xC50,      0x00000020,
-	0xE50,      0x00000022, 0xE50,      0x00000020,
-
-};
-
-void odm_read_and_config_mp_8822b_agc_tab(struct phy_dm_struct *dm)
-{
-	u32 i = 0;
-	u8 c_cond;
-	bool is_matched = true, is_skipped = false;
-	u32 *array = array_mp_8822b_agc_tab;
-
-	u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===> %s\n", __func__);
-
-	for (; (i + 1) < ARRAY_SIZE(array_mp_8822b_agc_tab); i = i + 2) {
-		v1 = array[i];
-		v2 = array[i + 1];
-
-		if (v1 & BIT(31)) { /* positive condition*/
-			c_cond = (u8)((v1 & (BIT(29) | BIT(28))) >> 28);
-			if (c_cond == COND_ENDIF) { /*end*/
-				is_matched = true;
-				is_skipped = false;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ENDIF\n");
-			} else if (c_cond == COND_ELSE) { /*else*/
-				is_matched = is_skipped ? false : true;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ELSE\n");
-			} else { /*if , else if*/
-				pre_v1 = v1;
-				pre_v2 = v2;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT,
-					     "IF or ELSE IF\n");
-			}
-		} else if (v1 & BIT(30)) { /*negative condition*/
-			if (is_skipped) {
-				is_matched = false;
-				continue;
-			}
-
-			if (check_positive(dm, pre_v1, pre_v2, v1, v2)) {
-				is_matched = true;
-				is_skipped = true;
-			} else {
-				is_matched = false;
-				is_skipped = false;
-			}
-		} else if (is_matched) {
-			odm_config_bb_agc_8822b(dm, v1, MASKDWORD, v2);
-		}
-	}
-}
-
-u32 odm_get_version_mp_8822b_agc_tab(void) { return 67; }
-
-/******************************************************************************
- *                           phy_reg.TXT
- ******************************************************************************/
-
-static u32 array_mp_8822b_phy_reg[] = {
-	0x800,  0x9020D010, 0x804,  0x800181A0, 0x808,  0x0E028233,
-	0x80C,  0x10000013, 0x810,  0x21101263, 0x814,  0x020C3D10,
-	0x818,  0x84A10385, 0x81C,  0x1E1E081F, 0x820,  0x0001AAAA,
-	0x824,  0x00030FE0, 0x828,  0x0000CCCC, 0x82C,  0x75CB7010,
-	0x830,  0x79A0EA2A, 0x834,  0x072E6986, 0x838,  0x87766441,
-	0x83C,  0x9194B2B6, 0x840,  0x171740E0, 0x844,  0x4D3D7CDB,
-	0x848,  0x4AD0408B, 0x84C,  0x6AFBF7A5, 0x850,  0x28A74706,
-	0x854,  0x0001520C, 0x858,  0x4060C000, 0x85C,  0x74010160,
-	0x860,  0x68A7C321, 0x864,  0x79F27432, 0x868,  0x8CA7A314,
-	0x86C,  0x778C2878, 0x870,  0x77777777, 0x874,  0x27612C2E,
-	0x878,  0xC0003152, 0x87C,  0x5C8FC000, 0x880,  0x00000000,
-	0x884,  0x00000000, 0x888,  0x00000000, 0x88C,  0x00000000,
-	0x890,  0x00000000, 0x894,  0x00000000, 0x898,  0x00000000,
-	0x89C,  0x00000000, 0x8A0,  0x00000013, 0x8A4,  0x7F7F7F7F,
-	0x8A8,  0x2202033E, 0x8AC,  0xF00F000A, 0x8B0,  0x00000600,
-	0x8B4,  0x000FC080, 0x8B8,  0xEC0057F7, 0x8BC,  0xACB520A3,
-	0x8C0,  0xFFE04020, 0x8C4,  0x47C00000, 0x8C8,  0x000251A5,
-	0x8CC,  0x08108000, 0x8D0,  0x0000B800, 0x8D4,  0x860308A0,
-	0x8D8,  0x21095612, 0x8DC,  0x00000000, 0x8E0,  0x32D16777,
-	0x8E4,  0x4C098935, 0x8E8,  0xFFFFC42C, 0x8EC,  0x99999999,
-	0x8F0,  0x00009999, 0x8F4,  0x00D80FA1, 0x8F8,  0x40000080,
-	0x8FC,  0x00000130, 0x900,  0x00800000, 0x904,  0x00000000,
-	0x908,  0x00000000, 0x90C,  0xD3000000, 0x910,  0x0000FC00,
-	0x914,  0xC6380000, 0x918,  0x1C1028C0, 0x91C,  0x64B11A1C,
-	0x920,  0xE0767233, 0x924,  0x855A2500, 0x928,  0x4AB0E4E4,
-	0x92C,  0xFFFEB200, 0x930,  0xFFFFFFFE, 0x934,  0x001FFFFF,
-	0x938,  0x00008480, 0x93C,  0xE41C0642, 0x940,  0x0E470430,
-	0x944,  0x00000000, 0x948,  0xAC000000, 0x94C,  0x10000083,
-	0x950,  0x32010080, 0x954,  0x84510080, 0x958,  0x00000001,
-	0x95C,  0x04248000, 0x960,  0x00000000, 0x964,  0x00000000,
-	0x968,  0x00000000, 0x96C,  0x00000000, 0x970,  0x00001FFF,
-	0x974,  0x44000FFF, 0x978,  0x00000000, 0x97C,  0x00000000,
-	0x980,  0x00000000, 0x984,  0x00000000, 0x988,  0x00000000,
-	0x98C,  0x23440000, 0x990,  0x27100000, 0x994,  0xFFFF0100,
-	0x998,  0xFFFFFF5C, 0x99C,  0xFFFFFFFF, 0x9A0,  0x000000FF,
-	0x9A4,  0x80000088, 0x9A8,  0x0C2F0000, 0x9AC,  0x01560000,
-	0x9B0,  0x70000000, 0x9B4,  0x00000000, 0x9B8,  0x00000000,
-	0x9BC,  0x00000000, 0x9C0,  0x00000000, 0x9C4,  0x00000000,
-	0x9C8,  0x00000000, 0x9CC,  0x00000000, 0x9D0,  0x00000000,
-	0x9D4,  0x00000000, 0x9D8,  0x00000000, 0x9DC,  0x00000000,
-	0x9E0,  0x00000000, 0x9E4,  0x02000402, 0x9E8,  0x000022D4,
-	0x9EC,  0x00000000, 0x9F0,  0x00010080, 0x9F4,  0x00000000,
-	0x9F8,  0x00000000, 0x9FC,  0xEFFFF7F7, 0xA00,  0x00D047C8,
-	0xA04,  0x81FF800C, 0xA08,  0x8C838300, 0xA0C,  0x2E20100F,
-	0xA10,  0x9500BB78, 0xA14,  0x1114D028, 0xA18,  0x00881117,
-	0xA1C,  0x89140F00, 0xA20,  0x84880000, 0xA24,  0x384F6577,
-	0xA28,  0x00001525, 0xA2C,  0x00920000, 0xA70,  0x101FFF00,
-	0xA74,  0x00000148, 0xA78,  0x00000900, 0xA7C,  0x225B0606,
-	0xA80,  0x218675B2, 0xA84,  0x80208C00, 0xA88,  0x040C0000,
-	0xA8C,  0x12345678, 0xA90,  0xABCDEF00, 0xA94,  0x001B1B89,
-	0xA98,  0x030A0000, 0xA9C,  0x00060000, 0xAA0,  0x00000000,
-	0xAA4,  0x0004000F, 0xAA8,  0x00000200, 0xB00,  0xE1000440,
-	0xB04,  0x00800000, 0xB08,  0xFF02030B, 0xB0C,  0x01EAA406,
-	0xB10,  0x00030690, 0xB14,  0x006000FA, 0xB18,  0x00000002,
-	0xB1C,  0x00000002, 0xB20,  0x4B00001F, 0xB24,  0x4E8E3E40,
-	0xB28,  0x03020100, 0xB2C,  0x07060504, 0xB30,  0x0B0A0908,
-	0xB34,  0x0F0E0D0C, 0xB38,  0x13121110, 0xB3C,  0x0000003A,
-	0xB40,  0x00000000, 0xB44,  0x80000000, 0xB48,  0x3F0000FA,
-	0xB4C,  0x88C80020, 0xB50,  0x00000000, 0xB54,  0x00004241,
-	0xB58,  0xE0008208, 0xB5C,  0x41EFFFF9, 0xB60,  0x00000000,
-	0xB64,  0x00200063, 0xB68,  0x0000003A, 0xB6C,  0x00000102,
-	0xB70,  0x4E6D1870, 0xB74,  0x03020100, 0xB78,  0x07060504,
-	0xB7C,  0x0B0A0908, 0xB80,  0x0F0E0D0C, 0xB84,  0x13121110,
-	0xB88,  0x00000000, 0xB8C,  0x00000000, 0xC00,  0x00000007,
-	0xC04,  0x00000020, 0xC08,  0x60403231, 0xC0C,  0x00012345,
-	0xC10,  0x00000100, 0xC14,  0x01000000, 0xC18,  0x00000000,
-	0xC1C,  0x40040053, 0xC20,  0x40020103, 0xC24,  0x00000000,
-	0xC28,  0x00000000, 0xC2C,  0x00000000, 0xC30,  0x00000000,
-	0xC34,  0x00000000, 0xC38,  0x00000000, 0xC3C,  0x00000000,
-	0xC40,  0x00000000, 0xC44,  0x00000000, 0xC48,  0x00000000,
-	0xC4C,  0x00000000, 0xC50,  0x00000020, 0xC54,  0x00000000,
-	0xC58,  0xD8020402, 0xC5C,  0xDE000120, 0xC68,  0x5979993F,
-	0xC6C,  0x0000122A, 0xC70,  0x99795979, 0xC74,  0x99795979,
-	0xC78,  0x99799979, 0xC7C,  0x99791979, 0xC80,  0x19791979,
-	0xC84,  0x19791979, 0xC88,  0x00000000, 0xC8C,  0x07000000,
-	0xC94,  0x01000100, 0xC98,  0x201C8000, 0xC9C,  0x00000000,
-	0xCA0,  0x0000A555, 0xCA4,  0x08040201, 0xCA8,  0x80402010,
-	0xCAC,  0x00000000, 0xCB0,  0x77777777, 0xCB4,  0x00007777,
-	0xCB8,  0x00000000, 0xCBC,  0x00000000, 0xCC0,  0x00000000,
-	0xCC4,  0x00000000, 0xCC8,  0x00000000, 0xCCC,  0x00000000,
-	0xCD0,  0x00000000, 0xCD4,  0x00000000, 0xCD8,  0x00000000,
-	0xCDC,  0x00000000, 0xCE0,  0x00000000, 0xCE4,  0x00000000,
-	0xCE8,  0x00000000, 0xCEC,  0x00000000, 0xE00,  0x00000007,
-	0xE04,  0x00000020, 0xE08,  0x60403231, 0xE0C,  0x00012345,
-	0xE10,  0x00000100, 0xE14,  0x01000000, 0xE18,  0x00000000,
-	0xE1C,  0x40040053, 0xE20,  0x40020103, 0xE24,  0x00000000,
-	0xE28,  0x00000000, 0xE2C,  0x00000000, 0xE30,  0x00000000,
-	0xE34,  0x00000000, 0xE38,  0x00000000, 0xE3C,  0x00000000,
-	0xE40,  0x00000000, 0xE44,  0x00000000, 0xE48,  0x00000000,
-	0xE4C,  0x00000000, 0xE50,  0x00000020, 0xE54,  0x00000000,
-	0xE58,  0xD8020402, 0xE5C,  0xDE000120, 0xE68,  0x5979993F,
-	0xE6C,  0x0000122A, 0xE70,  0x99795979, 0xE74,  0x99795979,
-	0xE78,  0x99799979, 0xE7C,  0x99791979, 0xE80,  0x19791979,
-	0xE84,  0x19791979, 0xE88,  0x00000000, 0xE8C,  0x07000000,
-	0xE94,  0x01000100, 0xE98,  0x201C8000, 0xE9C,  0x00000000,
-	0xEA0,  0x0000A555, 0xEA4,  0x08040201, 0xEA8,  0x80402010,
-	0xEAC,  0x00000000, 0xEB0,  0x77777777, 0xEB4,  0x00007777,
-	0xEB8,  0x00000000, 0xEBC,  0x00000000, 0xEC0,  0x00000000,
-	0xEC4,  0x00000000, 0xEC8,  0x00000000, 0xECC,  0x00000000,
-	0xED0,  0x00000000, 0xED4,  0x00000000, 0xED8,  0x00000000,
-	0xEDC,  0x00000000, 0xEE0,  0x00000000, 0xEE4,  0x00000000,
-	0xEE8,  0x00000000, 0xEEC,  0x00000000, 0x1900, 0x00000000,
-	0x1904, 0x00238000, 0x1908, 0x00000000, 0x190C, 0x00000000,
-	0x1910, 0x00000000, 0x1914, 0x00000000, 0x1918, 0x00000000,
-	0x191C, 0x00000000, 0x1920, 0x00000000, 0x1924, 0x00000000,
-	0x1928, 0x00000000, 0x192C, 0x00000000, 0x1930, 0x00000000,
-	0x1934, 0x00000000, 0x1938, 0x00000000, 0x193C, 0x00000000,
-	0x1940, 0x00000000, 0x1944, 0x00000000, 0x1948, 0x00000000,
-	0x194C, 0x00000000, 0x1950, 0x00000000, 0x1954, 0x00000000,
-	0x1958, 0x00000000, 0x195C, 0x00000000, 0x1960, 0x00000000,
-	0x1964, 0x00000000, 0x1968, 0x00000000, 0x196C, 0x00000000,
-	0x1970, 0x00000000, 0x1974, 0x00000000, 0x1978, 0x00000000,
-	0x197C, 0x00000000, 0x1980, 0x00000000, 0x1984, 0x03000000,
-	0x1988, 0x21401E88, 0x198C, 0x00004000, 0x1990, 0x00000000,
-	0x1994, 0x00000000, 0x1998, 0x00000053, 0x199C, 0x00000000,
-	0x19A0, 0x00000000, 0x19A4, 0x00000000, 0x19A8, 0x00000000,
-	0x19AC, 0x0E47E47F, 0x19B0, 0x00000000, 0x19B4, 0x0E47E47F,
-	0x19B8, 0x00000000, 0x19BC, 0x00000000, 0x19C0, 0x00000000,
-	0x19C4, 0x00000000, 0x19C8, 0x00000000, 0x19CC, 0x00000000,
-	0x19D0, 0x00000000, 0x19D4, 0xAAAAAAAA, 0x19D8, 0x00000AAA,
-	0x19DC, 0x133E0F37, 0x19E0, 0x00000000, 0x19E4, 0x00000000,
-	0x19E8, 0x00000000, 0x19EC, 0x00000000, 0x19F0, 0x00000000,
-	0x19F4, 0x00000000, 0x19F8, 0x01A00000, 0x19FC, 0x00000000,
-	0x1C00, 0x00000100, 0x1C04, 0x01000000, 0x1C08, 0x00000100,
-	0x1C0C, 0x01000000, 0x1C10, 0x00000100, 0x1C14, 0x01000000,
-	0x1C18, 0x00000100, 0x1C1C, 0x01000000, 0x1C20, 0x00000100,
-	0x1C24, 0x01000000, 0x1C28, 0x00000100, 0x1C2C, 0x01000000,
-	0x1C30, 0x00000100, 0x1C34, 0x01000000, 0x1C38, 0x00000000,
-	0x1C3C, 0x00000000, 0x1C40, 0x000C0100, 0x1C44, 0x000000F3,
-	0x1C48, 0x1A8249A8, 0x1C4C, 0x1461C826, 0x1C50, 0x0001469E,
-	0x1C54, 0x58D158D1, 0x1C58, 0x04490088, 0x1C5C, 0x04004400,
-	0x1C60, 0x00000000, 0x1C64, 0x04004400, 0x1C68, 0x00000100,
-	0x1C6C, 0x01000000, 0x1C70, 0x00000100, 0x1C74, 0x01000000,
-	0x1C78, 0x00000000, 0x1C7C, 0x00000010, 0x1C80, 0x5FFF5FFF,
-	0x1C84, 0x5FFF5FFF, 0x1C88, 0x5FFF5FFF, 0x1C8C, 0x5FFF5FFF,
-	0x1C90, 0x5FFF5FFF, 0x1C94, 0x5FFF5FFF, 0x1C98, 0x5FFF5FFF,
-	0x1C9C, 0x5FFF5FFF, 0x1CA0, 0x00000100, 0x1CA4, 0x01000000,
-	0x1CA8, 0x00000100, 0x1CAC, 0x5FFF5FFF, 0x1CB0, 0x00000100,
-	0x1CB4, 0x01000000, 0x1CB8, 0x00000000, 0x1CBC, 0x00000000,
-	0x1CC0, 0x00000100, 0x1CC4, 0x01000000, 0x1CC8, 0x00000100,
-	0x1CCC, 0x01000000, 0x1CD0, 0x00000100, 0x1CD4, 0x01000000,
-	0x1CD8, 0x00000100, 0x1CDC, 0x01000000, 0x1CE0, 0x00000100,
-	0x1CE4, 0x01000000, 0x1CE8, 0x00000100, 0x1CEC, 0x01000000,
-	0x1CF0, 0x00000100, 0x1CF4, 0x01000000, 0x1CF8, 0x00000000,
-	0x1CFC, 0x00000000, 0xC60,  0x70038040, 0xC60,  0x70038040,
-	0xC60,  0x70146040, 0xC60,  0x70246040, 0xC60,  0x70346040,
-	0xC60,  0x70446040, 0xC60,  0x70532040, 0xC60,  0x70646040,
-	0xC60,  0x70738040, 0xC60,  0x70838040, 0xC60,  0x70938040,
-	0xC60,  0x70A38040, 0xC60,  0x70B36040, 0xC60,  0x70C06040,
-	0xC60,  0x70D06040, 0xC60,  0x70E76040, 0xC60,  0x70F06040,
-	0xE60,  0x70038040, 0xE60,  0x70038040, 0xE60,  0x70146040,
-	0xE60,  0x70246040, 0xE60,  0x70346040, 0xE60,  0x70446040,
-	0xE60,  0x70532040, 0xE60,  0x70646040, 0xE60,  0x70738040,
-	0xE60,  0x70838040, 0xE60,  0x70938040, 0xE60,  0x70A38040,
-	0xE60,  0x70B36040, 0xE60,  0x70C06040, 0xE60,  0x70D06040,
-	0xE60,  0x70E76040, 0xE60,  0x70F06040, 0xC64,  0x00800000,
-	0xC64,  0x08800001, 0xC64,  0x00800002, 0xC64,  0x00800003,
-	0xC64,  0x00800004, 0xC64,  0x00800005, 0xC64,  0x00800006,
-	0xC64,  0x08800007, 0xC64,  0x00004000, 0xE64,  0x00800000,
-	0xE64,  0x08800001, 0xE64,  0x00800002, 0xE64,  0x00800003,
-	0xE64,  0x00800004, 0xE64,  0x00800005, 0xE64,  0x00800006,
-	0xE64,  0x08800007, 0xE64,  0x00004000, 0x1B00, 0xF8000008,
-	0x1B00, 0xF80A7008, 0x1B00, 0xF8015008, 0x1B00, 0xF8000008,
-	0x1B04, 0xE24629D2, 0x1B08, 0x00000080, 0x1B0C, 0x00000000,
-	0x1B10, 0x00010C00, 0x1B14, 0x00000000, 0x1B18, 0x00292903,
-	0x1B1C, 0xA2193C32, 0x1B20, 0x01840008, 0x1B24, 0x01860008,
-	0x1B28, 0x80060300, 0x1B2C, 0x00000003, 0x1B30, 0x20000000,
-	0x1B34, 0x00000800, 0x1B3C, 0x20000000, 0x1BC0, 0x01000000,
-	0x1BCC, 0x00000000, 0x1B00, 0xF800000A, 0x1B1C, 0xA2193C32,
-	0x1B20, 0x01840008, 0x1B24, 0x01860008, 0x1B28, 0x80060300,
-	0x1B2C, 0x00000003, 0x1B30, 0x20000000, 0x1B34, 0x00000800,
-	0x1B3C, 0x20000000, 0x1BC0, 0x01000000, 0x1BCC, 0x00000000,
-	0x1B00, 0xF8000000, 0x1B80, 0x00000007, 0x1B80, 0x090A0005,
-	0x1B80, 0x090A0007, 0x1B80, 0x0FFE0015, 0x1B80, 0x0FFE0017,
-	0x1B80, 0x00220025, 0x1B80, 0x00220027, 0x1B80, 0x00040035,
-	0x1B80, 0x00040037, 0x1B80, 0x05C00045, 0x1B80, 0x05C00047,
-	0x1B80, 0x00070055, 0x1B80, 0x00070057, 0x1B80, 0x64000065,
-	0x1B80, 0x64000067, 0x1B80, 0x00020075, 0x1B80, 0x00020077,
-	0x1B80, 0x00080085, 0x1B80, 0x00080087, 0x1B80, 0x80000095,
-	0x1B80, 0x80000097, 0x1B80, 0x090800A5, 0x1B80, 0x090800A7,
-	0x1B80, 0x0F0200B5, 0x1B80, 0x0F0200B7, 0x1B80, 0x002200C5,
-	0x1B80, 0x002200C7, 0x1B80, 0x000400D5, 0x1B80, 0x000400D7,
-	0x1B80, 0x05C000E5, 0x1B80, 0x05C000E7, 0x1B80, 0x000700F5,
-	0x1B80, 0x000700F7, 0x1B80, 0x64020105, 0x1B80, 0x64020107,
-	0x1B80, 0x00020115, 0x1B80, 0x00020117, 0x1B80, 0x00040125,
-	0x1B80, 0x00040127, 0x1B80, 0x4A000135, 0x1B80, 0x4A000137,
-	0x1B80, 0x4B040145, 0x1B80, 0x4B040147, 0x1B80, 0x85030155,
-	0x1B80, 0x85030157, 0x1B80, 0x40090165, 0x1B80, 0x40090167,
-	0x1B80, 0xE0210175, 0x1B80, 0xE0210177, 0x1B80, 0x4B050185,
-	0x1B80, 0x4B050187, 0x1B80, 0x86030195, 0x1B80, 0x86030197,
-	0x1B80, 0x400B01A5, 0x1B80, 0x400B01A7, 0x1B80, 0xE02101B5,
-	0x1B80, 0xE02101B7, 0x1B80, 0x4B0001C5, 0x1B80, 0x4B0001C7,
-	0x1B80, 0x000701D5, 0x1B80, 0x000701D7, 0x1B80, 0x4C0001E5,
-	0x1B80, 0x4C0001E7, 0x1B80, 0x000401F5, 0x1B80, 0x000401F7,
-	0x1B80, 0x30000205, 0x1B80, 0x30000207, 0x1B80, 0xFE000215,
-	0x1B80, 0xFE000217, 0x1B80, 0xFF000225, 0x1B80, 0xFF000227,
-	0x1B80, 0xE1750235, 0x1B80, 0xE1750237, 0x1B80, 0xF00D0245,
-	0x1B80, 0xF00D0247, 0x1B80, 0xF10D0255, 0x1B80, 0xF10D0257,
-	0x1B80, 0xF20D0265, 0x1B80, 0xF20D0267, 0x1B80, 0xF30D0275,
-	0x1B80, 0xF30D0277, 0x1B80, 0xF40D0285, 0x1B80, 0xF40D0287,
-	0x1B80, 0xF50D0295, 0x1B80, 0xF50D0297, 0x1B80, 0xF60D02A5,
-	0x1B80, 0xF60D02A7, 0x1B80, 0xF70D02B5, 0x1B80, 0xF70D02B7,
-	0x1B80, 0xF80D02C5, 0x1B80, 0xF80D02C7, 0x1B80, 0xF90D02D5,
-	0x1B80, 0xF90D02D7, 0x1B80, 0xFA0D02E5, 0x1B80, 0xFA0D02E7,
-	0x1B80, 0xFB0D02F5, 0x1B80, 0xFB0D02F7, 0x1B80, 0x00010305,
-	0x1B80, 0x00010307, 0x1B80, 0x303D0315, 0x1B80, 0x303D0317,
-	0x1B80, 0x30550325, 0x1B80, 0x30550327, 0x1B80, 0x30A00335,
-	0x1B80, 0x30A00337, 0x1B80, 0x30A30345, 0x1B80, 0x30A30347,
-	0x1B80, 0x30570355, 0x1B80, 0x30570357, 0x1B80, 0x30620365,
-	0x1B80, 0x30620367, 0x1B80, 0x306D0375, 0x1B80, 0x306D0377,
-	0x1B80, 0x30AD0385, 0x1B80, 0x30AD0387, 0x1B80, 0x30A70395,
-	0x1B80, 0x30A70397, 0x1B80, 0x30BB03A5, 0x1B80, 0x30BB03A7,
-	0x1B80, 0x30C603B5, 0x1B80, 0x30C603B7, 0x1B80, 0x30D103C5,
-	0x1B80, 0x30D103C7, 0x1B80, 0xE11403D5, 0x1B80, 0xE11403D7,
-	0x1B80, 0x4D0403E5, 0x1B80, 0x4D0403E7, 0x1B80, 0x208003F5,
-	0x1B80, 0x208003F7, 0x1B80, 0x00000405, 0x1B80, 0x00000407,
-	0x1B80, 0x4D000415, 0x1B80, 0x4D000417, 0x1B80, 0x55070425,
-	0x1B80, 0x55070427, 0x1B80, 0xE10C0435, 0x1B80, 0xE10C0437,
-	0x1B80, 0xE10C0445, 0x1B80, 0xE10C0447, 0x1B80, 0x4D040455,
-	0x1B80, 0x4D040457, 0x1B80, 0x20880465, 0x1B80, 0x20880467,
-	0x1B80, 0x02000475, 0x1B80, 0x02000477, 0x1B80, 0x4D000485,
-	0x1B80, 0x4D000487, 0x1B80, 0x550F0495, 0x1B80, 0x550F0497,
-	0x1B80, 0xE10C04A5, 0x1B80, 0xE10C04A7, 0x1B80, 0x4F0204B5,
-	0x1B80, 0x4F0204B7, 0x1B80, 0x4E0004C5, 0x1B80, 0x4E0004C7,
-	0x1B80, 0x530204D5, 0x1B80, 0x530204D7, 0x1B80, 0x520104E5,
-	0x1B80, 0x520104E7, 0x1B80, 0xE11004F5, 0x1B80, 0xE11004F7,
-	0x1B80, 0x4D080505, 0x1B80, 0x4D080507, 0x1B80, 0x57100515,
-	0x1B80, 0x57100517, 0x1B80, 0x57000525, 0x1B80, 0x57000527,
-	0x1B80, 0x4D000535, 0x1B80, 0x4D000537, 0x1B80, 0x00010545,
-	0x1B80, 0x00010547, 0x1B80, 0xE1140555, 0x1B80, 0xE1140557,
-	0x1B80, 0x00010565, 0x1B80, 0x00010567, 0x1B80, 0x30770575,
-	0x1B80, 0x30770577, 0x1B80, 0x00230585, 0x1B80, 0x00230587,
-	0x1B80, 0xE1680595, 0x1B80, 0xE1680597, 0x1B80, 0x000205A5,
-	0x1B80, 0x000205A7, 0x1B80, 0x54E905B5, 0x1B80, 0x54E905B7,
-	0x1B80, 0x0BA605C5, 0x1B80, 0x0BA605C7, 0x1B80, 0x002305D5,
-	0x1B80, 0x002305D7, 0x1B80, 0xE16805E5, 0x1B80, 0xE16805E7,
-	0x1B80, 0x000205F5, 0x1B80, 0x000205F7, 0x1B80, 0x4D300605,
-	0x1B80, 0x4D300607, 0x1B80, 0x30900615, 0x1B80, 0x30900617,
-	0x1B80, 0x30730625, 0x1B80, 0x30730627, 0x1B80, 0x00220635,
-	0x1B80, 0x00220637, 0x1B80, 0xE1680645, 0x1B80, 0xE1680647,
-	0x1B80, 0x00020655, 0x1B80, 0x00020657, 0x1B80, 0x54E80665,
-	0x1B80, 0x54E80667, 0x1B80, 0x0BA60675, 0x1B80, 0x0BA60677,
-	0x1B80, 0x00220685, 0x1B80, 0x00220687, 0x1B80, 0xE1680695,
-	0x1B80, 0xE1680697, 0x1B80, 0x000206A5, 0x1B80, 0x000206A7,
-	0x1B80, 0x4D3006B5, 0x1B80, 0x4D3006B7, 0x1B80, 0x309006C5,
-	0x1B80, 0x309006C7, 0x1B80, 0x63F106D5, 0x1B80, 0x63F106D7,
-	0x1B80, 0xE11406E5, 0x1B80, 0xE11406E7, 0x1B80, 0xE16806F5,
-	0x1B80, 0xE16806F7, 0x1B80, 0x63F40705, 0x1B80, 0x63F40707,
-	0x1B80, 0xE1140715, 0x1B80, 0xE1140717, 0x1B80, 0xE1680725,
-	0x1B80, 0xE1680727, 0x1B80, 0x0BA80735, 0x1B80, 0x0BA80737,
-	0x1B80, 0x63F80745, 0x1B80, 0x63F80747, 0x1B80, 0xE1140755,
-	0x1B80, 0xE1140757, 0x1B80, 0xE1680765, 0x1B80, 0xE1680767,
-	0x1B80, 0x0BA90775, 0x1B80, 0x0BA90777, 0x1B80, 0x63FC0785,
-	0x1B80, 0x63FC0787, 0x1B80, 0xE1140795, 0x1B80, 0xE1140797,
-	0x1B80, 0xE16807A5, 0x1B80, 0xE16807A7, 0x1B80, 0x63FF07B5,
-	0x1B80, 0x63FF07B7, 0x1B80, 0xE11407C5, 0x1B80, 0xE11407C7,
-	0x1B80, 0xE16807D5, 0x1B80, 0xE16807D7, 0x1B80, 0x630007E5,
-	0x1B80, 0x630007E7, 0x1B80, 0xE11407F5, 0x1B80, 0xE11407F7,
-	0x1B80, 0xE1680805, 0x1B80, 0xE1680807, 0x1B80, 0x63030815,
-	0x1B80, 0x63030817, 0x1B80, 0xE1140825, 0x1B80, 0xE1140827,
-	0x1B80, 0xE1680835, 0x1B80, 0xE1680837, 0x1B80, 0xF4D40845,
-	0x1B80, 0xF4D40847, 0x1B80, 0x63070855, 0x1B80, 0x63070857,
-	0x1B80, 0xE1140865, 0x1B80, 0xE1140867, 0x1B80, 0xE1680875,
-	0x1B80, 0xE1680877, 0x1B80, 0xF5DB0885, 0x1B80, 0xF5DB0887,
-	0x1B80, 0x630B0895, 0x1B80, 0x630B0897, 0x1B80, 0xE11408A5,
-	0x1B80, 0xE11408A7, 0x1B80, 0xE16808B5, 0x1B80, 0xE16808B7,
-	0x1B80, 0x630E08C5, 0x1B80, 0x630E08C7, 0x1B80, 0xE11408D5,
-	0x1B80, 0xE11408D7, 0x1B80, 0xE16808E5, 0x1B80, 0xE16808E7,
-	0x1B80, 0x4D3008F5, 0x1B80, 0x4D3008F7, 0x1B80, 0x55010905,
-	0x1B80, 0x55010907, 0x1B80, 0x57040915, 0x1B80, 0x57040917,
-	0x1B80, 0x57000925, 0x1B80, 0x57000927, 0x1B80, 0x96000935,
-	0x1B80, 0x96000937, 0x1B80, 0x57080945, 0x1B80, 0x57080947,
-	0x1B80, 0x57000955, 0x1B80, 0x57000957, 0x1B80, 0x95000965,
-	0x1B80, 0x95000967, 0x1B80, 0x4D000975, 0x1B80, 0x4D000977,
-	0x1B80, 0x6C070985, 0x1B80, 0x6C070987, 0x1B80, 0x7B200995,
-	0x1B80, 0x7B200997, 0x1B80, 0x7A0009A5, 0x1B80, 0x7A0009A7,
-	0x1B80, 0x790009B5, 0x1B80, 0x790009B7, 0x1B80, 0x7F2009C5,
-	0x1B80, 0x7F2009C7, 0x1B80, 0x7E0009D5, 0x1B80, 0x7E0009D7,
-	0x1B80, 0x7D0009E5, 0x1B80, 0x7D0009E7, 0x1B80, 0x000109F5,
-	0x1B80, 0x000109F7, 0x1B80, 0x62850A05, 0x1B80, 0x62850A07,
-	0x1B80, 0xE1140A15, 0x1B80, 0xE1140A17, 0x1B80, 0x00010A25,
-	0x1B80, 0x00010A27, 0x1B80, 0x5C320A35, 0x1B80, 0x5C320A37,
-	0x1B80, 0xE1640A45, 0x1B80, 0xE1640A47, 0x1B80, 0xE1420A55,
-	0x1B80, 0xE1420A57, 0x1B80, 0x00010A65, 0x1B80, 0x00010A67,
-	0x1B80, 0x5C320A75, 0x1B80, 0x5C320A77, 0x1B80, 0x63F40A85,
-	0x1B80, 0x63F40A87, 0x1B80, 0x62850A95, 0x1B80, 0x62850A97,
-	0x1B80, 0x0BB00AA5, 0x1B80, 0x0BB00AA7, 0x1B80, 0xE1140AB5,
-	0x1B80, 0xE1140AB7, 0x1B80, 0xE1680AC5, 0x1B80, 0xE1680AC7,
-	0x1B80, 0x5C320AD5, 0x1B80, 0x5C320AD7, 0x1B80, 0x63FC0AE5,
-	0x1B80, 0x63FC0AE7, 0x1B80, 0x62850AF5, 0x1B80, 0x62850AF7,
-	0x1B80, 0x0BB10B05, 0x1B80, 0x0BB10B07, 0x1B80, 0xE1140B15,
-	0x1B80, 0xE1140B17, 0x1B80, 0xE1680B25, 0x1B80, 0xE1680B27,
-	0x1B80, 0x63030B35, 0x1B80, 0x63030B37, 0x1B80, 0xE1140B45,
-	0x1B80, 0xE1140B47, 0x1B80, 0xE1680B55, 0x1B80, 0xE1680B57,
-	0x1B80, 0xF7040B65, 0x1B80, 0xF7040B67, 0x1B80, 0x630B0B75,
-	0x1B80, 0x630B0B77, 0x1B80, 0xE1140B85, 0x1B80, 0xE1140B87,
-	0x1B80, 0xE1680B95, 0x1B80, 0xE1680B97, 0x1B80, 0x00010BA5,
-	0x1B80, 0x00010BA7, 0x1B80, 0x30DF0BB5, 0x1B80, 0x30DF0BB7,
-	0x1B80, 0x00230BC5, 0x1B80, 0x00230BC7, 0x1B80, 0xE16D0BD5,
-	0x1B80, 0xE16D0BD7, 0x1B80, 0x00020BE5, 0x1B80, 0x00020BE7,
-	0x1B80, 0x54E90BF5, 0x1B80, 0x54E90BF7, 0x1B80, 0x0BA60C05,
-	0x1B80, 0x0BA60C07, 0x1B80, 0x00230C15, 0x1B80, 0x00230C17,
-	0x1B80, 0xE16D0C25, 0x1B80, 0xE16D0C27, 0x1B80, 0x00020C35,
-	0x1B80, 0x00020C37, 0x1B80, 0x4D100C45, 0x1B80, 0x4D100C47,
-	0x1B80, 0x30900C55, 0x1B80, 0x30900C57, 0x1B80, 0x30D90C65,
-	0x1B80, 0x30D90C67, 0x1B80, 0x00220C75, 0x1B80, 0x00220C77,
-	0x1B80, 0xE16D0C85, 0x1B80, 0xE16D0C87, 0x1B80, 0x00020C95,
-	0x1B80, 0x00020C97, 0x1B80, 0x54E80CA5, 0x1B80, 0x54E80CA7,
-	0x1B80, 0x0BA60CB5, 0x1B80, 0x0BA60CB7, 0x1B80, 0x00220CC5,
-	0x1B80, 0x00220CC7, 0x1B80, 0xE16D0CD5, 0x1B80, 0xE16D0CD7,
-	0x1B80, 0x00020CE5, 0x1B80, 0x00020CE7, 0x1B80, 0x4D100CF5,
-	0x1B80, 0x4D100CF7, 0x1B80, 0x30900D05, 0x1B80, 0x30900D07,
-	0x1B80, 0x5C320D15, 0x1B80, 0x5C320D17, 0x1B80, 0x54F00D25,
-	0x1B80, 0x54F00D27, 0x1B80, 0x67F10D35, 0x1B80, 0x67F10D37,
-	0x1B80, 0xE1420D45, 0x1B80, 0xE1420D47, 0x1B80, 0xE16D0D55,
-	0x1B80, 0xE16D0D57, 0x1B80, 0x67F40D65, 0x1B80, 0x67F40D67,
-	0x1B80, 0xE1420D75, 0x1B80, 0xE1420D77, 0x1B80, 0xE16D0D85,
-	0x1B80, 0xE16D0D87, 0x1B80, 0x5C320D95, 0x1B80, 0x5C320D97,
-	0x1B80, 0x54F10DA5, 0x1B80, 0x54F10DA7, 0x1B80, 0x0BA80DB5,
-	0x1B80, 0x0BA80DB7, 0x1B80, 0x67F80DC5, 0x1B80, 0x67F80DC7,
-	0x1B80, 0xE1420DD5, 0x1B80, 0xE1420DD7, 0x1B80, 0xE16D0DE5,
-	0x1B80, 0xE16D0DE7, 0x1B80, 0x5C320DF5, 0x1B80, 0x5C320DF7,
-	0x1B80, 0x54F10E05, 0x1B80, 0x54F10E07, 0x1B80, 0x0BA90E15,
-	0x1B80, 0x0BA90E17, 0x1B80, 0x67FC0E25, 0x1B80, 0x67FC0E27,
-	0x1B80, 0xE1420E35, 0x1B80, 0xE1420E37, 0x1B80, 0xE16D0E45,
-	0x1B80, 0xE16D0E47, 0x1B80, 0x67FF0E55, 0x1B80, 0x67FF0E57,
-	0x1B80, 0xE1420E65, 0x1B80, 0xE1420E67, 0x1B80, 0xE16D0E75,
-	0x1B80, 0xE16D0E77, 0x1B80, 0x5C320E85, 0x1B80, 0x5C320E87,
-	0x1B80, 0x54F20E95, 0x1B80, 0x54F20E97, 0x1B80, 0x67000EA5,
-	0x1B80, 0x67000EA7, 0x1B80, 0xE1420EB5, 0x1B80, 0xE1420EB7,
-	0x1B80, 0xE16D0EC5, 0x1B80, 0xE16D0EC7, 0x1B80, 0x67030ED5,
-	0x1B80, 0x67030ED7, 0x1B80, 0xE1420EE5, 0x1B80, 0xE1420EE7,
-	0x1B80, 0xE16D0EF5, 0x1B80, 0xE16D0EF7, 0x1B80, 0xF9CC0F05,
-	0x1B80, 0xF9CC0F07, 0x1B80, 0x67070F15, 0x1B80, 0x67070F17,
-	0x1B80, 0xE1420F25, 0x1B80, 0xE1420F27, 0x1B80, 0xE16D0F35,
-	0x1B80, 0xE16D0F37, 0x1B80, 0xFAD30F45, 0x1B80, 0xFAD30F47,
-	0x1B80, 0x5C320F55, 0x1B80, 0x5C320F57, 0x1B80, 0x54F30F65,
-	0x1B80, 0x54F30F67, 0x1B80, 0x670B0F75, 0x1B80, 0x670B0F77,
-	0x1B80, 0xE1420F85, 0x1B80, 0xE1420F87, 0x1B80, 0xE16D0F95,
-	0x1B80, 0xE16D0F97, 0x1B80, 0x670E0FA5, 0x1B80, 0x670E0FA7,
-	0x1B80, 0xE1420FB5, 0x1B80, 0xE1420FB7, 0x1B80, 0xE16D0FC5,
-	0x1B80, 0xE16D0FC7, 0x1B80, 0x4D100FD5, 0x1B80, 0x4D100FD7,
-	0x1B80, 0x30900FE5, 0x1B80, 0x30900FE7, 0x1B80, 0x00010FF5,
-	0x1B80, 0x00010FF7, 0x1B80, 0x7B241005, 0x1B80, 0x7B241007,
-	0x1B80, 0x7A401015, 0x1B80, 0x7A401017, 0x1B80, 0x79001025,
-	0x1B80, 0x79001027, 0x1B80, 0x55031035, 0x1B80, 0x55031037,
-	0x1B80, 0x310C1045, 0x1B80, 0x310C1047, 0x1B80, 0x7B1C1055,
-	0x1B80, 0x7B1C1057, 0x1B80, 0x7A401065, 0x1B80, 0x7A401067,
-	0x1B80, 0x550B1075, 0x1B80, 0x550B1077, 0x1B80, 0x310C1085,
-	0x1B80, 0x310C1087, 0x1B80, 0x7B201095, 0x1B80, 0x7B201097,
-	0x1B80, 0x7A0010A5, 0x1B80, 0x7A0010A7, 0x1B80, 0x551310B5,
-	0x1B80, 0x551310B7, 0x1B80, 0x740110C5, 0x1B80, 0x740110C7,
-	0x1B80, 0x740010D5, 0x1B80, 0x740010D7, 0x1B80, 0x8E0010E5,
-	0x1B80, 0x8E0010E7, 0x1B80, 0x000110F5, 0x1B80, 0x000110F7,
-	0x1B80, 0x57021105, 0x1B80, 0x57021107, 0x1B80, 0x57001115,
-	0x1B80, 0x57001117, 0x1B80, 0x97001125, 0x1B80, 0x97001127,
-	0x1B80, 0x00011135, 0x1B80, 0x00011137, 0x1B80, 0x4F781145,
-	0x1B80, 0x4F781147, 0x1B80, 0x53881155, 0x1B80, 0x53881157,
-	0x1B80, 0xE1221165, 0x1B80, 0xE1221167, 0x1B80, 0x54801175,
-	0x1B80, 0x54801177, 0x1B80, 0x54001185, 0x1B80, 0x54001187,
-	0x1B80, 0xE1221195, 0x1B80, 0xE1221197, 0x1B80, 0x548111A5,
-	0x1B80, 0x548111A7, 0x1B80, 0x540011B5, 0x1B80, 0x540011B7,
-	0x1B80, 0xE12211C5, 0x1B80, 0xE12211C7, 0x1B80, 0x548211D5,
-	0x1B80, 0x548211D7, 0x1B80, 0x540011E5, 0x1B80, 0x540011E7,
-	0x1B80, 0xE12D11F5, 0x1B80, 0xE12D11F7, 0x1B80, 0xBF1D1205,
-	0x1B80, 0xBF1D1207, 0x1B80, 0x301D1215, 0x1B80, 0x301D1217,
-	0x1B80, 0xE1001225, 0x1B80, 0xE1001227, 0x1B80, 0xE1051235,
-	0x1B80, 0xE1051237, 0x1B80, 0xE1091245, 0x1B80, 0xE1091247,
-	0x1B80, 0xE1101255, 0x1B80, 0xE1101257, 0x1B80, 0xE1641265,
-	0x1B80, 0xE1641267, 0x1B80, 0x55131275, 0x1B80, 0x55131277,
-	0x1B80, 0xE10C1285, 0x1B80, 0xE10C1287, 0x1B80, 0x55151295,
-	0x1B80, 0x55151297, 0x1B80, 0xE11012A5, 0x1B80, 0xE11012A7,
-	0x1B80, 0xE16412B5, 0x1B80, 0xE16412B7, 0x1B80, 0x000112C5,
-	0x1B80, 0x000112C7, 0x1B80, 0x54BF12D5, 0x1B80, 0x54BF12D7,
-	0x1B80, 0x54C012E5, 0x1B80, 0x54C012E7, 0x1B80, 0x54A312F5,
-	0x1B80, 0x54A312F7, 0x1B80, 0x54C11305, 0x1B80, 0x54C11307,
-	0x1B80, 0x54A41315, 0x1B80, 0x54A41317, 0x1B80, 0x4C181325,
-	0x1B80, 0x4C181327, 0x1B80, 0xBF071335, 0x1B80, 0xBF071337,
-	0x1B80, 0x54C21345, 0x1B80, 0x54C21347, 0x1B80, 0x54A41355,
-	0x1B80, 0x54A41357, 0x1B80, 0xBF041365, 0x1B80, 0xBF041367,
-	0x1B80, 0x54C11375, 0x1B80, 0x54C11377, 0x1B80, 0x54A31385,
-	0x1B80, 0x54A31387, 0x1B80, 0xBF011395, 0x1B80, 0xBF011397,
-	0x1B80, 0xE17213A5, 0x1B80, 0xE17213A7, 0x1B80, 0x54DF13B5,
-	0x1B80, 0x54DF13B7, 0x1B80, 0x000113C5, 0x1B80, 0x000113C7,
-	0x1B80, 0x54BF13D5, 0x1B80, 0x54BF13D7, 0x1B80, 0x54E513E5,
-	0x1B80, 0x54E513E7, 0x1B80, 0x050A13F5, 0x1B80, 0x050A13F7,
-	0x1B80, 0x54DF1405, 0x1B80, 0x54DF1407, 0x1B80, 0x00011415,
-	0x1B80, 0x00011417, 0x1B80, 0x7F201425, 0x1B80, 0x7F201427,
-	0x1B80, 0x7E001435, 0x1B80, 0x7E001437, 0x1B80, 0x7D001445,
-	0x1B80, 0x7D001447, 0x1B80, 0x55011455, 0x1B80, 0x55011457,
-	0x1B80, 0x5C311465, 0x1B80, 0x5C311467, 0x1B80, 0xE10C1475,
-	0x1B80, 0xE10C1477, 0x1B80, 0xE1101485, 0x1B80, 0xE1101487,
-	0x1B80, 0x54801495, 0x1B80, 0x54801497, 0x1B80, 0x540014A5,
-	0x1B80, 0x540014A7, 0x1B80, 0xE10C14B5, 0x1B80, 0xE10C14B7,
-	0x1B80, 0xE11014C5, 0x1B80, 0xE11014C7, 0x1B80, 0x548114D5,
-	0x1B80, 0x548114D7, 0x1B80, 0x540014E5, 0x1B80, 0x540014E7,
-	0x1B80, 0xE10C14F5, 0x1B80, 0xE10C14F7, 0x1B80, 0xE1101505,
-	0x1B80, 0xE1101507, 0x1B80, 0x54821515, 0x1B80, 0x54821517,
-	0x1B80, 0x54001525, 0x1B80, 0x54001527, 0x1B80, 0xE12D1535,
-	0x1B80, 0xE12D1537, 0x1B80, 0xBFE91545, 0x1B80, 0xBFE91547,
-	0x1B80, 0x301D1555, 0x1B80, 0x301D1557, 0x1B80, 0x00231565,
-	0x1B80, 0x00231567, 0x1B80, 0x7B201575, 0x1B80, 0x7B201577,
-	0x1B80, 0x7A001585, 0x1B80, 0x7A001587, 0x1B80, 0x79001595,
-	0x1B80, 0x79001597, 0x1B80, 0xE16815A5, 0x1B80, 0xE16815A7,
-	0x1B80, 0x000215B5, 0x1B80, 0x000215B7, 0x1B80, 0x000115C5,
-	0x1B80, 0x000115C7, 0x1B80, 0x002215D5, 0x1B80, 0x002215D7,
-	0x1B80, 0x7B2015E5, 0x1B80, 0x7B2015E7, 0x1B80, 0x7A0015F5,
-	0x1B80, 0x7A0015F7, 0x1B80, 0x79001605, 0x1B80, 0x79001607,
-	0x1B80, 0xE1681615, 0x1B80, 0xE1681617, 0x1B80, 0x00021625,
-	0x1B80, 0x00021627, 0x1B80, 0x00011635, 0x1B80, 0x00011637,
-	0x1B80, 0x549F1645, 0x1B80, 0x549F1647, 0x1B80, 0x54FF1655,
-	0x1B80, 0x54FF1657, 0x1B80, 0x54001665, 0x1B80, 0x54001667,
-	0x1B80, 0x00011675, 0x1B80, 0x00011677, 0x1B80, 0x5C311685,
-	0x1B80, 0x5C311687, 0x1B80, 0x07141695, 0x1B80, 0x07141697,
-	0x1B80, 0x540016A5, 0x1B80, 0x540016A7, 0x1B80, 0x5C3216B5,
-	0x1B80, 0x5C3216B7, 0x1B80, 0x000116C5, 0x1B80, 0x000116C7,
-	0x1B80, 0x5C3216D5, 0x1B80, 0x5C3216D7, 0x1B80, 0x071416E5,
-	0x1B80, 0x071416E7, 0x1B80, 0x540016F5, 0x1B80, 0x540016F7,
-	0x1B80, 0x5C311705, 0x1B80, 0x5C311707, 0x1B80, 0x00011715,
-	0x1B80, 0x00011717, 0x1B80, 0x4C981725, 0x1B80, 0x4C981727,
-	0x1B80, 0x4C181735, 0x1B80, 0x4C181737, 0x1B80, 0x00011745,
-	0x1B80, 0x00011747, 0x1B80, 0x5C321755, 0x1B80, 0x5C321757,
-	0x1B80, 0x62841765, 0x1B80, 0x62841767, 0x1B80, 0x66861775,
-	0x1B80, 0x66861777, 0x1B80, 0x6C031785, 0x1B80, 0x6C031787,
-	0x1B80, 0x7B201795, 0x1B80, 0x7B201797, 0x1B80, 0x7A0017A5,
-	0x1B80, 0x7A0017A7, 0x1B80, 0x790017B5, 0x1B80, 0x790017B7,
-	0x1B80, 0x7F2017C5, 0x1B80, 0x7F2017C7, 0x1B80, 0x7E0017D5,
-	0x1B80, 0x7E0017D7, 0x1B80, 0x7D0017E5, 0x1B80, 0x7D0017E7,
-	0x1B80, 0x090117F5, 0x1B80, 0x090117F7, 0x1B80, 0x0C011805,
-	0x1B80, 0x0C011807, 0x1B80, 0x0BA61815, 0x1B80, 0x0BA61817,
-	0x1B80, 0x00011825, 0x1B80, 0x00011827, 0x1B80, 0x00000006,
-	0x1B80, 0x00000002,
-
-};
-
-void odm_read_and_config_mp_8822b_phy_reg(struct phy_dm_struct *dm)
-{
-	u32 i = 0;
-	u8 c_cond;
-	bool is_matched = true, is_skipped = false;
-	u32 *array = array_mp_8822b_phy_reg;
-
-	u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===> %s\n", __func__);
-
-	for (; (i + 1) < ARRAY_SIZE(array_mp_8822b_phy_reg); i = i + 2) {
-		v1 = array[i];
-		v2 = array[i + 1];
-
-		if (v1 & BIT(31)) { /* positive condition*/
-			c_cond = (u8)((v1 & (BIT(29) | BIT(28))) >> 28);
-			if (c_cond == COND_ENDIF) { /*end*/
-				is_matched = true;
-				is_skipped = false;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ENDIF\n");
-			} else if (c_cond == COND_ELSE) { /*else*/
-				is_matched = is_skipped ? false : true;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ELSE\n");
-			} else { /*if , else if*/
-				pre_v1 = v1;
-				pre_v2 = v2;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT,
-					     "IF or ELSE IF\n");
-			}
-		} else if (v1 & BIT(30)) { /*negative condition*/
-			if (is_skipped) {
-				is_matched = false;
-				continue;
-			}
-
-			if (check_positive(dm, pre_v1, pre_v2, v1, v2)) {
-				is_matched = true;
-				is_skipped = true;
-			} else {
-				is_matched = false;
-				is_skipped = false;
-			}
-		} else if (is_matched) {
-			odm_config_bb_phy_8822b(dm, v1, MASKDWORD, v2);
-		}
-	}
-}
-
-u32 odm_get_version_mp_8822b_phy_reg(void) { return 67; }
-
-/******************************************************************************
- *                           phy_reg_pg.TXT
- ******************************************************************************/
-
-static u32 array_mp_8822b_phy_reg_pg[] = {
-	0, 0, 0, 0x00000c20, 0xffffffff, 0x32343638,
-	0, 0, 0, 0x00000c24, 0xffffffff, 0x36384042,
-	0, 0, 0, 0x00000c28, 0xffffffff, 0x28303234,
-	0, 0, 0, 0x00000c2c, 0xffffffff, 0x34363840,
-	0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032,
-	0, 0, 1, 0x00000c34, 0xffffffff, 0x34363840,
-	0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032,
-	0, 0, 0, 0x00000c3c, 0xffffffff, 0x34363840,
-	0, 0, 0, 0x00000c40, 0xffffffff, 0x26283032,
-	0, 0, 0, 0x00000c44, 0xffffffff, 0x38402224,
-	0, 0, 1, 0x00000c48, 0xffffffff, 0x30323436,
-	0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628,
-	0, 1, 0, 0x00000e20, 0xffffffff, 0x32343638,
-	0, 1, 0, 0x00000e24, 0xffffffff, 0x36384042,
-	0, 1, 0, 0x00000e28, 0xffffffff, 0x28303234,
-	0, 1, 0, 0x00000e2c, 0xffffffff, 0x34363840,
-	0, 1, 0, 0x00000e30, 0xffffffff, 0x26283032,
-	0, 1, 1, 0x00000e34, 0xffffffff, 0x34363840,
-	0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032,
-	0, 1, 0, 0x00000e3c, 0xffffffff, 0x34363840,
-	0, 1, 0, 0x00000e40, 0xffffffff, 0x26283032,
-	0, 1, 0, 0x00000e44, 0xffffffff, 0x38402224,
-	0, 1, 1, 0x00000e48, 0xffffffff, 0x30323436,
-	0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628,
-	1, 0, 0, 0x00000c24, 0xffffffff, 0x34363840,
-	1, 0, 0, 0x00000c28, 0xffffffff, 0x26283032,
-	1, 0, 0, 0x00000c2c, 0xffffffff, 0x32343638,
-	1, 0, 0, 0x00000c30, 0xffffffff, 0x24262830,
-	1, 0, 1, 0x00000c34, 0xffffffff, 0x32343638,
-	1, 0, 1, 0x00000c38, 0xffffffff, 0x24262830,
-	1, 0, 0, 0x00000c3c, 0xffffffff, 0x32343638,
-	1, 0, 0, 0x00000c40, 0xffffffff, 0x24262830,
-	1, 0, 0, 0x00000c44, 0xffffffff, 0x36382022,
-	1, 0, 1, 0x00000c48, 0xffffffff, 0x28303234,
-	1, 0, 1, 0x00000c4c, 0xffffffff, 0x20222426,
-	1, 1, 0, 0x00000e24, 0xffffffff, 0x34363840,
-	1, 1, 0, 0x00000e28, 0xffffffff, 0x26283032,
-	1, 1, 0, 0x00000e2c, 0xffffffff, 0x32343638,
-	1, 1, 0, 0x00000e30, 0xffffffff, 0x24262830,
-	1, 1, 1, 0x00000e34, 0xffffffff, 0x32343638,
-	1, 1, 1, 0x00000e38, 0xffffffff, 0x24262830,
-	1, 1, 0, 0x00000e3c, 0xffffffff, 0x32343638,
-	1, 1, 0, 0x00000e40, 0xffffffff, 0x24262830,
-	1, 1, 0, 0x00000e44, 0xffffffff, 0x36382022,
-	1, 1, 1, 0x00000e48, 0xffffffff, 0x28303234,
-	1, 1, 1, 0x00000e4c, 0xffffffff, 0x20222426,
-};
-
-void odm_read_and_config_mp_8822b_phy_reg_pg(struct phy_dm_struct *dm)
-{
-	u32 i = 0;
-	u32 *array = array_mp_8822b_phy_reg_pg;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===> %s\n", __func__);
-
-	dm->phy_reg_pg_version = 1;
-	dm->phy_reg_pg_value_type = PHY_REG_PG_EXACT_VALUE;
-
-	for (i = 0; i < ARRAY_SIZE(array_mp_8822b_phy_reg_pg); i += 6) {
-		u32 v1 = array[i];
-		u32 v2 = array[i + 1];
-		u32 v3 = array[i + 2];
-		u32 v4 = array[i + 3];
-		u32 v5 = array[i + 4];
-		u32 v6 = array[i + 5];
-
-		odm_config_bb_phy_reg_pg_8822b(dm, v1, v2, v3, v4, v5, v6);
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_bb.h b/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_bb.h
deleted file mode 100644
index a127450..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_bb.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/*Image2HeaderVersion: 3.2*/
-#ifndef __INC_MP_BB_HW_IMG_8822B_H
-#define __INC_MP_BB_HW_IMG_8822B_H
-
-/******************************************************************************
- *                           agc_tab.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_agc_tab(/* tc: Test Chip, mp: mp Chip*/
-					  struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_agc_tab(void);
-
-/******************************************************************************
- *                           phy_reg.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_phy_reg(/* tc: Test Chip, mp: mp Chip*/
-					  struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_phy_reg(void);
-
-/******************************************************************************
- *                           phy_reg_pg.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_phy_reg_pg(/* tc: Test Chip, mp: mp Chip*/
-					     struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_phy_reg_pg(void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_mac.c b/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_mac.c
deleted file mode 100644
index aed97e4..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_mac.c
+++ /dev/null
@@ -1,211 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/*Image2HeaderVersion: 3.2*/
-#include "../mp_precomp.h"
-#include "../phydm_precomp.h"
-#include <linux/kernel.h>
-
-static bool check_positive(struct phy_dm_struct *dm, const u32 condition1,
-			   const u32 condition2, const u32 condition3,
-			   const u32 condition4)
-{
-	u8 _board_type = ((dm->board_type & BIT(4)) >> 4) << 0 | /* _GLNA*/
-			 ((dm->board_type & BIT(3)) >> 3) << 1 | /* _GPA*/
-			 ((dm->board_type & BIT(7)) >> 7) << 2 | /* _ALNA*/
-			 ((dm->board_type & BIT(6)) >> 6) << 3 | /* _APA */
-			 ((dm->board_type & BIT(2)) >> 2) << 4; /* _BT*/
-
-	u32 cond1 = condition1, cond2 = condition2, cond3 = condition3,
-	    cond4 = condition4;
-
-	u8 cut_version_for_para =
-		(dm->cut_version == ODM_CUT_A) ? 14 : dm->cut_version;
-	u8 pkg_type_for_para = (dm->package_type == 0) ? 14 : dm->package_type;
-
-	u32 driver1 = cut_version_for_para << 24 |
-		      (dm->support_interface & 0xF0) << 16 |
-		      dm->support_platform << 16 | pkg_type_for_para << 12 |
-		      (dm->support_interface & 0x0F) << 8 | _board_type;
-
-	u32 driver2 = (dm->type_glna & 0xFF) << 0 | (dm->type_gpa & 0xFF) << 8 |
-		      (dm->type_alna & 0xFF) << 16 |
-		      (dm->type_apa & 0xFF) << 24;
-
-	u32 driver3 = 0;
-
-	u32 driver4 = (dm->type_glna & 0xFF00) >> 8 | (dm->type_gpa & 0xFF00) |
-		      (dm->type_alna & 0xFF00) << 8 |
-		      (dm->type_apa & 0xFF00) << 16;
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"===> %s (cond1, cond2, cond3, cond4) = (0x%X 0x%X 0x%X 0x%X)\n",
-		__func__, cond1, cond2, cond3, cond4);
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"===> %s (driver1, driver2, driver3, driver4) = (0x%X 0x%X 0x%X 0x%X)\n",
-		__func__, driver1, driver2, driver3, driver4);
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "	(Platform, Interface) = (0x%X, 0x%X)\n",
-		     dm->support_platform, dm->support_interface);
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "	(Board, Package) = (0x%X, 0x%X)\n",
-		     dm->board_type, dm->package_type);
-
-	/*============== value Defined Check ===============*/
-	/*QFN type [15:12] and cut version [27:24] need to do value check*/
-
-	if (((cond1 & 0x0000F000) != 0) &&
-	    ((cond1 & 0x0000F000) != (driver1 & 0x0000F000)))
-		return false;
-	if (((cond1 & 0x0F000000) != 0) &&
-	    ((cond1 & 0x0F000000) != (driver1 & 0x0F000000)))
-		return false;
-
-	/*=============== Bit Defined Check ================*/
-	/* We don't care [31:28] */
-
-	cond1 &= 0x00FF0FFF;
-	driver1 &= 0x00FF0FFF;
-
-	if ((cond1 & driver1) == cond1) {
-		u32 bit_mask = 0;
-
-		if ((cond1 & 0x0F) == 0) /* board_type is DONTCARE*/
-			return true;
-
-		if ((cond1 & BIT(0)) != 0) /*GLNA*/
-			bit_mask |= 0x000000FF;
-		if ((cond1 & BIT(1)) != 0) /*GPA*/
-			bit_mask |= 0x0000FF00;
-		if ((cond1 & BIT(2)) != 0) /*ALNA*/
-			bit_mask |= 0x00FF0000;
-		if ((cond1 & BIT(3)) != 0) /*APA*/
-			bit_mask |= 0xFF000000;
-
-		if (((cond2 & bit_mask) == (driver2 & bit_mask)) &&
-		    ((cond4 & bit_mask) ==
-		     (driver4 &
-		      bit_mask))) /* board_type of each RF path is matched*/
-			return true;
-		else
-			return false;
-	} else {
-		return false;
-	}
-}
-
-/******************************************************************************
- *                           mac_reg.TXT
- ******************************************************************************/
-
-static u32 array_mp_8822b_mac_reg[] = {
-	0x029,  0x000000F9, 0x420,  0x00000080, 0x421,  0x0000000F,
-	0x428,  0x0000000A, 0x429,  0x00000010, 0x430,  0x00000000,
-	0x431,  0x00000000, 0x432,  0x00000000, 0x433,  0x00000001,
-	0x434,  0x00000004, 0x435,  0x00000005, 0x436,  0x00000007,
-	0x437,  0x00000008, 0x43C,  0x00000004, 0x43D,  0x00000005,
-	0x43E,  0x00000007, 0x43F,  0x00000008, 0x440,  0x0000005D,
-	0x441,  0x00000001, 0x442,  0x00000000, 0x444,  0x00000010,
-	0x445,  0x000000F0, 0x446,  0x00000001, 0x447,  0x000000FE,
-	0x448,  0x00000000, 0x449,  0x00000000, 0x44A,  0x00000000,
-	0x44B,  0x00000040, 0x44C,  0x00000010, 0x44D,  0x000000F0,
-	0x44E,  0x0000003F, 0x44F,  0x00000000, 0x450,  0x00000000,
-	0x451,  0x00000000, 0x452,  0x00000000, 0x453,  0x00000040,
-	0x455,  0x00000070, 0x45E,  0x00000004, 0x49C,  0x00000010,
-	0x49D,  0x000000F0, 0x49E,  0x00000000, 0x49F,  0x00000006,
-	0x4A0,  0x000000E0, 0x4A1,  0x00000003, 0x4A2,  0x00000000,
-	0x4A3,  0x00000040, 0x4A4,  0x00000015, 0x4A5,  0x000000F0,
-	0x4A6,  0x00000000, 0x4A7,  0x00000006, 0x4A8,  0x000000E0,
-	0x4A9,  0x00000000, 0x4AA,  0x00000000, 0x4AB,  0x00000000,
-	0x7DA,  0x00000008, 0x1448, 0x00000006, 0x144A, 0x00000006,
-	0x144C, 0x00000006, 0x144E, 0x00000006, 0x4C8,  0x000000FF,
-	0x4C9,  0x00000008, 0x4CA,  0x00000020, 0x4CB,  0x00000020,
-	0x4CC,  0x000000FF, 0x4CD,  0x000000FF, 0x4CE,  0x00000001,
-	0x4CF,  0x00000008, 0x500,  0x00000026, 0x501,  0x000000A2,
-	0x502,  0x0000002F, 0x503,  0x00000000, 0x504,  0x00000028,
-	0x505,  0x000000A3, 0x506,  0x0000005E, 0x507,  0x00000000,
-	0x508,  0x0000002B, 0x509,  0x000000A4, 0x50A,  0x0000005E,
-	0x50B,  0x00000000, 0x50C,  0x0000004F, 0x50D,  0x000000A4,
-	0x50E,  0x00000000, 0x50F,  0x00000000, 0x512,  0x0000001C,
-	0x514,  0x0000000A, 0x516,  0x0000000A, 0x521,  0x0000002F,
-	0x525,  0x0000004F, 0x551,  0x00000010, 0x559,  0x00000002,
-	0x55C,  0x00000050, 0x55D,  0x000000FF, 0x577,  0x0000000B,
-	0x5BE,  0x00000064, 0x605,  0x00000030, 0x608,  0x0000000E,
-	0x609,  0x00000022, 0x60C,  0x00000018, 0x6A0,  0x000000FF,
-	0x6A1,  0x000000FF, 0x6A2,  0x000000FF, 0x6A3,  0x000000FF,
-	0x6A4,  0x000000FF, 0x6A5,  0x000000FF, 0x6DE,  0x00000084,
-	0x620,  0x000000FF, 0x621,  0x000000FF, 0x622,  0x000000FF,
-	0x623,  0x000000FF, 0x624,  0x000000FF, 0x625,  0x000000FF,
-	0x626,  0x000000FF, 0x627,  0x000000FF, 0x638,  0x00000050,
-	0x63C,  0x0000000A, 0x63D,  0x0000000A, 0x63E,  0x0000000E,
-	0x63F,  0x0000000E, 0x640,  0x00000040, 0x642,  0x00000040,
-	0x643,  0x00000000, 0x652,  0x000000C8, 0x66E,  0x00000005,
-	0x718,  0x00000040, 0x7D4,  0x00000098,
-
-};
-
-void odm_read_and_config_mp_8822b_mac_reg(struct phy_dm_struct *dm)
-{
-	u32 i = 0;
-	u8 c_cond;
-	bool is_matched = true, is_skipped = false;
-	u32 *array = array_mp_8822b_mac_reg;
-
-	u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===> %s\n", __func__);
-
-	for (; (i + 1) < ARRAY_SIZE(array_mp_8822b_mac_reg); i = i + 2) {
-		v1 = array[i];
-		v2 = array[i + 1];
-
-		if (v1 & BIT(31)) { /* positive condition*/
-			c_cond = (u8)((v1 & (BIT(29) | BIT(28))) >> 28);
-			if (c_cond == COND_ENDIF) { /*end*/
-				is_matched = true;
-				is_skipped = false;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ENDIF\n");
-			} else if (c_cond == COND_ELSE) { /*else*/
-				is_matched = is_skipped ? false : true;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ELSE\n");
-			} else { /*if , else if*/
-				pre_v1 = v1;
-				pre_v2 = v2;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT,
-					     "IF or ELSE IF\n");
-			}
-		} else if (v1 & BIT(30)) { /*negative condition*/
-			if (is_skipped) {
-				is_matched = false;
-				continue;
-			}
-
-			if (check_positive(dm, pre_v1, pre_v2, v1, v2)) {
-				is_matched = true;
-				is_skipped = true;
-			} else {
-				is_matched = false;
-				is_skipped = false;
-			}
-		} else if (is_matched) {
-			odm_config_mac_8822b(dm, v1, (u8)v2);
-		}
-	}
-}
-
-u32 odm_get_version_mp_8822b_mac_reg(void) { return 67; }
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_mac.h b/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_mac.h
deleted file mode 100644
index 2f8107b..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_mac.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/*Image2HeaderVersion: 3.2*/
-#ifndef __INC_MP_MAC_HW_IMG_8822B_H
-#define __INC_MP_MAC_HW_IMG_8822B_H
-
-/******************************************************************************
- *                           mac_reg.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_mac_reg(/* tc: Test Chip, mp: mp Chip*/
-					  struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_mac_reg(void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_rf.c b/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_rf.c
deleted file mode 100644
index b8d33d7..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_rf.c
+++ /dev/null
@@ -1,4730 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/*Image2HeaderVersion: 3.2*/
-#include "../mp_precomp.h"
-#include "../phydm_precomp.h"
-#include <linux/kernel.h>
-
-static bool check_positive(struct phy_dm_struct *dm, const u32 condition1,
-			   const u32 condition2, const u32 condition3,
-			   const u32 condition4)
-{
-	u8 _board_type = ((dm->board_type & BIT(4)) >> 4) << 0 | /* _GLNA*/
-			 ((dm->board_type & BIT(3)) >> 3) << 1 | /* _GPA*/
-			 ((dm->board_type & BIT(7)) >> 7) << 2 | /* _ALNA*/
-			 ((dm->board_type & BIT(6)) >> 6) << 3 | /* _APA */
-			 ((dm->board_type & BIT(2)) >> 2) << 4; /* _BT*/
-
-	u32 cond1 = condition1, cond2 = condition2, cond3 = condition3,
-	    cond4 = condition4;
-
-	u8 cut_version_for_para =
-		(dm->cut_version == ODM_CUT_A) ? 14 : dm->cut_version;
-	u8 pkg_type_for_para = (dm->package_type == 0) ? 14 : dm->package_type;
-
-	u32 driver1 = cut_version_for_para << 24 |
-		      (dm->support_interface & 0xF0) << 16 |
-		      dm->support_platform << 16 | pkg_type_for_para << 12 |
-		      (dm->support_interface & 0x0F) << 8 | _board_type;
-
-	u32 driver2 = (dm->type_glna & 0xFF) << 0 | (dm->type_gpa & 0xFF) << 8 |
-		      (dm->type_alna & 0xFF) << 16 |
-		      (dm->type_apa & 0xFF) << 24;
-
-	u32 driver3 = 0;
-
-	u32 driver4 = (dm->type_glna & 0xFF00) >> 8 | (dm->type_gpa & 0xFF00) |
-		      (dm->type_alna & 0xFF00) << 8 |
-		      (dm->type_apa & 0xFF00) << 16;
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"===> %s (cond1, cond2, cond3, cond4) = (0x%X 0x%X 0x%X 0x%X)\n",
-		__func__, cond1, cond2, cond3, cond4);
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"===> %s (driver1, driver2, driver3, driver4) = (0x%X 0x%X 0x%X 0x%X)\n",
-		__func__, driver1, driver2, driver3, driver4);
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "	(Platform, Interface) = (0x%X, 0x%X)\n",
-		     dm->support_platform, dm->support_interface);
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "	(Board, Package) = (0x%X, 0x%X)\n",
-		     dm->board_type, dm->package_type);
-
-	/*============== value Defined Check ===============*/
-	/*QFN type [15:12] and cut version [27:24] need to do value check*/
-
-	if (((cond1 & 0x0000F000) != 0) &&
-	    ((cond1 & 0x0000F000) != (driver1 & 0x0000F000)))
-		return false;
-	if (((cond1 & 0x0F000000) != 0) &&
-	    ((cond1 & 0x0F000000) != (driver1 & 0x0F000000)))
-		return false;
-
-	/*=============== Bit Defined Check ================*/
-	/* We don't care [31:28] */
-
-	cond1 &= 0x00FF0FFF;
-	driver1 &= 0x00FF0FFF;
-
-	if ((cond1 & driver1) == cond1) {
-		u32 bit_mask = 0;
-
-		if ((cond1 & 0x0F) == 0) /* board_type is DONTCARE*/
-			return true;
-
-		if ((cond1 & BIT(0)) != 0) /*GLNA*/
-			bit_mask |= 0x000000FF;
-		if ((cond1 & BIT(1)) != 0) /*GPA*/
-			bit_mask |= 0x0000FF00;
-		if ((cond1 & BIT(2)) != 0) /*ALNA*/
-			bit_mask |= 0x00FF0000;
-		if ((cond1 & BIT(3)) != 0) /*APA*/
-			bit_mask |= 0xFF000000;
-
-		if (((cond2 & bit_mask) == (driver2 & bit_mask)) &&
-		    ((cond4 & bit_mask) ==
-		     (driver4 &
-		      bit_mask))) /* board_type of each RF path is matched*/
-			return true;
-		else
-			return false;
-	} else {
-		return false;
-	}
-}
-
-/******************************************************************************
- *                           radioa.TXT
- ******************************************************************************/
-
-static u32 array_mp_8822b_radioa[] = {
-	0x000,      0x00030000, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x90002100, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x90002000, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0xA0000000, 0x00000000, 0x001,      0x00040029,
-	0xB0000000, 0x00000000, 0x018,      0x00010D24, 0x0EF,      0x00080000,
-	0x033,      0x00000002, 0x03E,      0x0000003F, 0x03F,      0x000C0F4E,
-	0x033,      0x00000001, 0x03E,      0x00000034, 0x03F,      0x0004080E,
-	0x0EF,      0x00080000, 0x0DF,      0x00002449, 0x033,      0x00000024,
-	0x03E,      0x0000003F, 0x03F,      0x00060FDE, 0x0EF,      0x00000000,
-	0x0EF,      0x00080000, 0x033,      0x00000025, 0x03E,      0x00000037,
-	0x03F,      0x0007EFCE, 0x0EF,      0x00000000, 0x0EF,      0x00080000,
-	0x033,      0x00000026, 0x03E,      0x00000037, 0x03F,      0x000DEFCE,
-	0x0EF,      0x00000000, 0x07F,      0x00000000, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x0B0,      0x000FF0F8, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x0B0,      0x000FF0F8, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FF0F8, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FB0F8, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x0B0,      0x000FF0F8, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x0B0,      0x000FF0F8, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FF0F8, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FB0F8, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FB0F8, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FB0F8, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FB0F8, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FF0F8, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FB0F8, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FF0F8, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FB0F8, 0x93001000, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FF0F8, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FB0F8, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x0B0,      0x000FB0F8, 0xA0000000, 0x00000000,
-	0x0B0,      0x000FF0F8, 0xB0000000, 0x00000000, 0x0B1,      0x0007DBE4,
-	0x0B2,      0x000225D1, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x0B3,      0x000FC760, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x0B3,      0x0007C330, 0xA0000000, 0x00000000, 0x0B3,      0x000FC760,
-	0xB0000000, 0x00000000, 0x0B4,      0x00099DD0, 0x0B5,      0x000400FC,
-	0x0B6,      0x000187F0, 0x0B7,      0x00030018, 0x0B8,      0x00080800,
-	0x0B9,      0x00000000, 0x0BA,      0x00008000, 0x0BB,      0x00000000,
-	0x0BC,      0x00040030, 0x0BD,      0x00000000, 0x0BE,      0x00000000,
-	0x0BF,      0x00000000, 0x0C0,      0x00000000, 0x0C1,      0x00000000,
-	0x0C2,      0x00000000, 0x0C3,      0x00000000, 0x0C4,      0x00002402,
-	0x0C5,      0x00000009, 0x0C6,      0x00040299, 0x0C7,      0x00055555,
-	0x0C8,      0x0000C16C, 0x0C9,      0x0001C140, 0x0CA,      0x00000000,
-	0x0CB,      0x00000000, 0x0CC,      0x00000000, 0x0CD,      0x00000000,
-	0x0CE,      0x00090C00, 0x0CF,      0x0006D200, 0x0DF,      0x00000009,
-	0x018,      0x00010524, 0x089,      0x00000207, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x08A,      0x000FF186, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x08A,      0x000FE186, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x08A,      0x000FF186, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x08A,      0x000FF186, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x08A,      0x000FF186, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x08A,      0x000FE186, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x08A,      0x000FF186, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x08A,      0x000FF186, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x08A,      0x000FF186, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x08A,      0x000FF186, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x08A,      0x000FE186, 0xA0000000, 0x00000000,
-	0x08A,      0x000FF186, 0xB0000000, 0x00000000, 0x08B,      0x00061E3C,
-	0x08C,      0x000112C7, 0x08D,      0x000F4988, 0x08E,      0x00064D40,
-	0x0EF,      0x00020000, 0x033,      0x00000007, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x00004080, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0xA0000000, 0x00000000,
-	0x03E,      0x00004000, 0xB0000000, 0x00000000, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000DFF86, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C0006, 0x93001000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0xA0000000, 0x00000000,
-	0x03F,      0x000C3186, 0xB0000000, 0x00000000, 0x033,      0x00000006,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00004080,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x00004080,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004080,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004080,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00004080,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0xA0000000, 0x00000000, 0x03E,      0x00004080, 0xB0000000, 0x00000000,
-	0x03F,      0x000C3186, 0x033,      0x00000005, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x000040C8, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x000040C8, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x000040C8, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x000040C8, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x000040C8, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x00004084, 0xA0000000, 0x00000000,
-	0x03E,      0x000040C8, 0xB0000000, 0x00000000, 0x03F,      0x000C3186,
-	0x033,      0x00000004, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x03E,      0x00004190, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x03E,      0x00004190, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004190, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004190, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x03E,      0x00004190, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x03E,      0x00004108, 0xA0000000, 0x00000000, 0x03E,      0x00004190,
-	0xB0000000, 0x00000000, 0x03F,      0x000C3186, 0x033,      0x00000003,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00004998,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x00004998,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004998,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004998,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00004998,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x0000490C,
-	0xA0000000, 0x00000000, 0x03E,      0x00004998, 0xB0000000, 0x00000000,
-	0x03F,      0x000C3186, 0x033,      0x00000002, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x00005840, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x00005840, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00005840, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00005840, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x00005840, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x00005E00, 0xA0000000, 0x00000000,
-	0x03E,      0x00005840, 0xB0000000, 0x00000000, 0x03F,      0x000C3186,
-	0x033,      0x00000001, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x03E,      0x000058C2, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x03E,      0x000058C2, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x000058C2, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x000058C2, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x03E,      0x000058C2, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x03E,      0x00005862, 0xA0000000, 0x00000000, 0x03E,      0x000058C2,
-	0xB0000000, 0x00000000, 0x03F,      0x000C3186, 0x033,      0x00000000,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00005930,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x00005930,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00005930,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00005930,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00005930,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x00005948,
-	0xA0000000, 0x00000000, 0x03E,      0x00005930, 0xB0000000, 0x00000000,
-	0x03F,      0x000C3186, 0x033,      0x0000000F, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x00004080, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x00004080, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0xA0000000, 0x00000000,
-	0x03E,      0x00004000, 0xB0000000, 0x00000000, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000DFF86, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000DFF86, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C0006, 0x93001000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0xA0000000, 0x00000000,
-	0x03F,      0x000C3186, 0xB0000000, 0x00000000, 0x033,      0x0000000E,
-	0x03E,      0x00004080, 0x03F,      0x000C3186, 0x033,      0x0000000D,
-	0x03E,      0x000040C8, 0x03F,      0x000C3186, 0x033,      0x0000000C,
-	0x03E,      0x00004190, 0x03F,      0x000C3186, 0x033,      0x0000000B,
-	0x03E,      0x00004998, 0x03F,      0x000C3186, 0x033,      0x0000000A,
-	0x03E,      0x00005840, 0x03F,      0x000C3186, 0x033,      0x00000009,
-	0x03E,      0x000058C2, 0x03F,      0x000C3186, 0x033,      0x00000008,
-	0x03E,      0x00005930, 0x03F,      0x000C3186, 0x033,      0x00000017,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x00004080,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x00004080,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9300200c, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004000,
-	0x93002100, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004000,
-	0x93011000, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004000,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0xA0000000, 0x00000000, 0x03E,      0x00004000, 0xB0000000, 0x00000000,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9300200c, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x93002100, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x93011000, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x93002000, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C0006,
-	0x93001000, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0xA0000000, 0x00000000, 0x03F,      0x000C3186, 0xB0000000, 0x00000000,
-	0x033,      0x00000016, 0x03E,      0x00004080, 0x03F,      0x000C3186,
-	0x033,      0x00000015, 0x03E,      0x000040C8, 0x03F,      0x000C3186,
-	0x033,      0x00000014, 0x03E,      0x00004190, 0x03F,      0x000C3186,
-	0x033,      0x00000013, 0x03E,      0x00004998, 0x03F,      0x000C3186,
-	0x033,      0x00000012, 0x03E,      0x00005840, 0x03F,      0x000C3186,
-	0x033,      0x00000011, 0x03E,      0x000058C2, 0x03F,      0x000C3186,
-	0x033,      0x00000010, 0x03E,      0x00005930, 0x03F,      0x000C3186,
-	0x0EF,      0x00000000, 0x0EF,      0x00004000, 0x033,      0x00000000,
-	0x03F,      0x0000000A, 0x033,      0x00000001, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000005, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000006, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000005, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x93001000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000005, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0xA0000000, 0x00000000,
-	0x03F,      0x00000005, 0xB0000000, 0x00000000, 0x033,      0x00000002,
-	0x03F,      0x00000000, 0x0EF,      0x00000000, 0x018,      0x00000401,
-	0x084,      0x00001209, 0x086,      0x000001A0, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0xA0000000, 0x00000000,
-	0x087,      0x000E8180, 0xB0000000, 0x00000000, 0x088,      0x00070020,
-	0x0DE,      0x00000010, 0x0EF,      0x00008000, 0x033,      0x0000000F,
-	0x03F,      0x0000003C, 0x033,      0x0000000E, 0x03F,      0x00000038,
-	0x033,      0x0000000D, 0x03F,      0x00000030, 0x033,      0x0000000C,
-	0x03F,      0x00000028, 0x033,      0x0000000B, 0x03F,      0x00000020,
-	0x033,      0x0000000A, 0x03F,      0x00000018, 0x033,      0x00000009,
-	0x03F,      0x00000010, 0x033,      0x00000008, 0x03F,      0x00000008,
-	0x033,      0x00000007, 0x03F,      0x0000003C, 0x033,      0x00000006,
-	0x03F,      0x00000038, 0x033,      0x00000005, 0x03F,      0x00000030,
-	0x033,      0x00000004, 0x03F,      0x00000028, 0x033,      0x00000003,
-	0x03F,      0x00000020, 0x033,      0x00000002, 0x03F,      0x00000018,
-	0x033,      0x00000001, 0x03F,      0x00000010, 0x033,      0x00000000,
-	0x03F,      0x00000008, 0x0EF,      0x00000000, 0x0B8,      0x00080A00,
-	0x0B0,      0x000FF0FA, 0x0FE,      0x00000000, 0x0CA,      0x00080000,
-	0x0C9,      0x0001C141, 0x0FE,      0x00000000, 0x0B0,      0x000FF0F8,
-	0x018,      0x00018D24, 0xFFE,      0x00000000, 0xFFE,      0x00000000,
-	0xFFE,      0x00000000, 0xFFE,      0x00000000, 0x018,      0x00010D24,
-	0x01B,      0x00075A40, 0x0EE,      0x00000002, 0x033,      0x00000000,
-	0x03F,      0x00000004, 0x033,      0x00000001, 0x03F,      0x00000004,
-	0x033,      0x00000002, 0x03F,      0x00000004, 0x033,      0x00000003,
-	0x03F,      0x00000004, 0x033,      0x00000004, 0x03F,      0x00000004,
-	0x033,      0x00000005, 0x03F,      0x00000006, 0x033,      0x00000006,
-	0x03F,      0x00000002, 0x033,      0x00000007, 0x03F,      0x00000000,
-	0x0EE,      0x00000000, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x061,      0x0005D4A0, 0x062,      0x0000D203, 0x063,      0x00000062,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x061,      0x0005D4A0,
-	0x062,      0x0000D203, 0x063,      0x00000062, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x061,      0x0005D4A0, 0x062,      0x0000D203,
-	0x063,      0x00000062, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D2A1, 0x062,      0x0000D3A2, 0x063,      0x00000062,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x061,      0x0005D4A0,
-	0x062,      0x0000D203, 0x063,      0x00000062, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x061,      0x0005D4A0, 0x062,      0x0000D203,
-	0x063,      0x00000062, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D4A0, 0x062,      0x0000D203, 0x063,      0x00000062,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x061,      0x0005D2A1,
-	0x062,      0x0000D3A2, 0x063,      0x00000062, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x061,      0x0005D2A1, 0x062,      0x0000D3A2,
-	0x063,      0x00000062, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D301, 0x062,      0x0000D303, 0x063,      0x00000002,
-	0x93002100, 0x00000000, 0x40000000, 0x00000000, 0x061,      0x0005D301,
-	0x062,      0x0000D303, 0x063,      0x00000002, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x061,      0x0005D3D1, 0x062,      0x0000D3A2,
-	0x063,      0x00000002, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D2A1, 0x062,      0x0000D3A2, 0x063,      0x00000062,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x061,      0x0005D3D1,
-	0x062,      0x0000D3A2, 0x063,      0x00000002, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x061,      0x0005D301, 0x062,      0x0000D303,
-	0x063,      0x00000002, 0x93001000, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D3D1, 0x062,      0x0000D3A2, 0x063,      0x00000002,
-	0x90002100, 0x00000000, 0x40000000, 0x00000000, 0x061,      0x0005D301,
-	0x062,      0x0000D303, 0x063,      0x00000002, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x061,      0x0005D301, 0x062,      0x0000D303,
-	0x063,      0x00000002, 0xA0000000, 0x00000000, 0x061,      0x0005D3D0,
-	0x062,      0x0000D303, 0x063,      0x00000002, 0xB0000000, 0x00000000,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x0EF,      0x00000200,
-	0x030,      0x000004A3, 0x030,      0x000014A3, 0x030,      0x000024A3,
-	0x030,      0x000034A3, 0x030,      0x000044A3, 0x030,      0x000054A3,
-	0x030,      0x000064A3, 0x030,      0x000074A3, 0x030,      0x000084A3,
-	0x030,      0x000094A3, 0x030,      0x0000A4A3, 0x030,      0x0000B4A3,
-	0x0EF,      0x00000000, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x0EF,      0x00000200, 0x030,      0x000004A3, 0x030,      0x000014A3,
-	0x030,      0x000024A3, 0x030,      0x000034A3, 0x030,      0x000044A3,
-	0x030,      0x000054A3, 0x030,      0x000064A3, 0x030,      0x000074A3,
-	0x030,      0x000084A3, 0x030,      0x000094A3, 0x030,      0x0000A4A3,
-	0x030,      0x0000B4A3, 0x0EF,      0x00000000, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000200, 0x030,      0x000004A3,
-	0x030,      0x000014A3, 0x030,      0x000024A3, 0x030,      0x000034A3,
-	0x030,      0x000044A3, 0x030,      0x000054A3, 0x030,      0x000064A3,
-	0x030,      0x000074A3, 0x030,      0x000084A3, 0x030,      0x000094A3,
-	0x030,      0x0000A4A3, 0x030,      0x0000B4A3, 0x0EF,      0x00000000,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x0EF,      0x00000200,
-	0x030,      0x000002A6, 0x030,      0x000012A6, 0x030,      0x000022A6,
-	0x030,      0x000032A6, 0x030,      0x000042A6, 0x030,      0x000052A6,
-	0x030,      0x000062A6, 0x030,      0x000072A6, 0x030,      0x000082A6,
-	0x030,      0x000092A6, 0x030,      0x0000A2A6, 0x030,      0x0000B2A6,
-	0x0EF,      0x00000000, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x0EF,      0x00000200, 0x030,      0x000004A0, 0x030,      0x000014A0,
-	0x030,      0x000024A0, 0x030,      0x000034A0, 0x030,      0x000044A0,
-	0x030,      0x000054A0, 0x030,      0x000064A0, 0x030,      0x000074A0,
-	0x030,      0x000084A0, 0x030,      0x000094A0, 0x030,      0x0000A4A0,
-	0x030,      0x0000B4A0, 0x0EF,      0x00000000, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x0EF,      0x00000200, 0x030,      0x000004A0,
-	0x030,      0x000014A0, 0x030,      0x000024A0, 0x030,      0x000034A0,
-	0x030,      0x000044A0, 0x030,      0x000054A0, 0x030,      0x000064A0,
-	0x030,      0x000074A0, 0x030,      0x000084A0, 0x030,      0x000094A0,
-	0x030,      0x0000A4A0, 0x030,      0x0000B4A0, 0x0EF,      0x00000000,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x0EF,      0x00000200,
-	0x030,      0x000004A0, 0x030,      0x000014A0, 0x030,      0x000024A0,
-	0x030,      0x000034A0, 0x030,      0x000044A0, 0x030,      0x000054A0,
-	0x030,      0x000064A0, 0x030,      0x000074A0, 0x030,      0x000084A0,
-	0x030,      0x000094A0, 0x030,      0x0000A4A0, 0x030,      0x0000B4A0,
-	0x0EF,      0x00000000, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000200, 0x030,      0x000002A1, 0x030,      0x000012A1,
-	0x030,      0x000022A1, 0x030,      0x000032A1, 0x030,      0x000042A1,
-	0x030,      0x000052A1, 0x030,      0x000062A1, 0x030,      0x000072A1,
-	0x030,      0x000082A1, 0x030,      0x000092A1, 0x030,      0x0000A2A1,
-	0x030,      0x0000B2A1, 0x0EF,      0x00000000, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000200, 0x030,      0x000002A6,
-	0x030,      0x000012A6, 0x030,      0x000022A6, 0x030,      0x000032A6,
-	0x030,      0x000042A6, 0x030,      0x000052A6, 0x030,      0x000062A6,
-	0x030,      0x000072A6, 0x030,      0x000082A6, 0x030,      0x000092A6,
-	0x030,      0x0000A2A6, 0x030,      0x0000B2A6, 0x0EF,      0x00000000,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x0EF,      0x00000200,
-	0x030,      0x00000384, 0x030,      0x00001384, 0x030,      0x00002384,
-	0x030,      0x00003384, 0x030,      0x00004425, 0x030,      0x00005425,
-	0x030,      0x00006425, 0x030,      0x00007425, 0x030,      0x000083A4,
-	0x030,      0x000093A4, 0x030,      0x0000A3A4, 0x030,      0x0000B3A4,
-	0x0EF,      0x00000000, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000200, 0x030,      0x000003A3, 0x030,      0x000013A3,
-	0x030,      0x000023A3, 0x030,      0x000033A3, 0x030,      0x00004355,
-	0x030,      0x00005355, 0x030,      0x00006355, 0x030,      0x00007355,
-	0x030,      0x00008314, 0x030,      0x00009314, 0x030,      0x0000A314,
-	0x030,      0x0000B314, 0x0EF,      0x00000000, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000200, 0x030,      0x000003A1,
-	0x030,      0x000013A1, 0x030,      0x000023A1, 0x030,      0x000033A1,
-	0x030,      0x000043A3, 0x030,      0x000053A3, 0x030,      0x000063A3,
-	0x030,      0x000073A3, 0x030,      0x000083A5, 0x030,      0x000093A5,
-	0x030,      0x0000A3A5, 0x030,      0x0000B3A5, 0x0EF,      0x00000000,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x0EF,      0x00000200,
-	0x030,      0x000002A1, 0x030,      0x000012A1, 0x030,      0x000022A1,
-	0x030,      0x000032A1, 0x030,      0x000042A1, 0x030,      0x000052A1,
-	0x030,      0x000062A1, 0x030,      0x000072A1, 0x030,      0x000082A1,
-	0x030,      0x000092A1, 0x030,      0x0000A2A1, 0x030,      0x0000B2A1,
-	0x0EF,      0x00000000, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000200, 0x030,      0x00000463, 0x030,      0x00001463,
-	0x030,      0x00002463, 0x030,      0x00003463, 0x030,      0x00004545,
-	0x030,      0x00005545, 0x030,      0x00006545, 0x030,      0x00007545,
-	0x030,      0x00008565, 0x030,      0x00009565, 0x030,      0x0000A565,
-	0x030,      0x0000B565, 0x0EF,      0x00000000, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000200, 0x030,      0x00000303,
-	0x030,      0x00001303, 0x030,      0x00002303, 0x030,      0x00003303,
-	0x030,      0x000043A4, 0x030,      0x000053A4, 0x030,      0x000063A4,
-	0x030,      0x000073A4, 0x030,      0x00008365, 0x030,      0x00009365,
-	0x030,      0x0000A365, 0x030,      0x0000B365, 0x0EF,      0x00000000,
-	0x93001000, 0x00000000, 0x40000000, 0x00000000, 0x0EF,      0x00000200,
-	0x030,      0x000003A2, 0x030,      0x000013A2, 0x030,      0x000023A2,
-	0x030,      0x000033A2, 0x030,      0x00004343, 0x030,      0x00005343,
-	0x030,      0x00006343, 0x030,      0x00007343, 0x030,      0x00008364,
-	0x030,      0x00009364, 0x030,      0x0000A364, 0x030,      0x0000B364,
-	0x0EF,      0x00000000, 0x90002100, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000200, 0x030,      0x000003A0, 0x030,      0x000013A0,
-	0x030,      0x000023A0, 0x030,      0x000033A0, 0x030,      0x00004430,
-	0x030,      0x00005430, 0x030,      0x00006430, 0x030,      0x00007430,
-	0x030,      0x00008372, 0x030,      0x00009372, 0x030,      0x0000A372,
-	0x030,      0x0000B372, 0x0EF,      0x00000000, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000200, 0x030,      0x000003A0,
-	0x030,      0x000013A0, 0x030,      0x000023A0, 0x030,      0x000033A0,
-	0x030,      0x000043A1, 0x030,      0x000053A1, 0x030,      0x000063A1,
-	0x030,      0x000073A1, 0x030,      0x000083A2, 0x030,      0x000093A2,
-	0x030,      0x0000A3A2, 0x030,      0x0000B3A2, 0x0EF,      0x00000000,
-	0xA0000000, 0x00000000, 0x0EF,      0x00000200, 0x030,      0x000003D0,
-	0x030,      0x000013D0, 0x030,      0x000023D0, 0x030,      0x000033D0,
-	0x030,      0x000043D0, 0x030,      0x000053D0, 0x030,      0x000063D0,
-	0x030,      0x000073D0, 0x030,      0x000083D0, 0x030,      0x000093D0,
-	0x030,      0x0000A3D0, 0x030,      0x0000B3D0, 0x0EF,      0x00000000,
-	0xB0000000, 0x00000000, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x00000203, 0x030,      0x00001203,
-	0x030,      0x00002203, 0x030,      0x00003203, 0x030,      0x00004203,
-	0x030,      0x00005203, 0x030,      0x00006203, 0x030,      0x00007203,
-	0x030,      0x00008203, 0x030,      0x00009203, 0x030,      0x0000A203,
-	0x030,      0x0000B203, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x00000203, 0x030,      0x00001203,
-	0x030,      0x00002203, 0x030,      0x00003203, 0x030,      0x00004203,
-	0x030,      0x00005203, 0x030,      0x00006203, 0x030,      0x00007203,
-	0x030,      0x00008203, 0x030,      0x00009203, 0x030,      0x0000A203,
-	0x030,      0x0000B203, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x00000203, 0x030,      0x00001203,
-	0x030,      0x00002203, 0x030,      0x00003203, 0x030,      0x00004203,
-	0x030,      0x00005203, 0x030,      0x00006203, 0x030,      0x00007203,
-	0x030,      0x00008203, 0x030,      0x00009203, 0x030,      0x0000A203,
-	0x030,      0x0000B203, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x00000203, 0x030,      0x00001203,
-	0x030,      0x00002203, 0x030,      0x00003203, 0x030,      0x00004203,
-	0x030,      0x00005203, 0x030,      0x00006203, 0x030,      0x00007203,
-	0x030,      0x00008203, 0x030,      0x00009203, 0x030,      0x0000A203,
-	0x030,      0x0000B203, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x00000203, 0x030,      0x00001203,
-	0x030,      0x00002203, 0x030,      0x00003203, 0x030,      0x00004203,
-	0x030,      0x00005203, 0x030,      0x00006203, 0x030,      0x00007203,
-	0x030,      0x00008203, 0x030,      0x00009203, 0x030,      0x0000A203,
-	0x030,      0x0000B203, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x00000203, 0x030,      0x00001203,
-	0x030,      0x00002203, 0x030,      0x00003203, 0x030,      0x00004203,
-	0x030,      0x00005203, 0x030,      0x00006203, 0x030,      0x00007203,
-	0x030,      0x00008203, 0x030,      0x00009203, 0x030,      0x0000A203,
-	0x030,      0x0000B203, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A3, 0x030,      0x000013A3,
-	0x030,      0x000023A3, 0x030,      0x000033A3, 0x030,      0x000043A3,
-	0x030,      0x000053A3, 0x030,      0x000063A3, 0x030,      0x000073A3,
-	0x030,      0x000083A3, 0x030,      0x000093A3, 0x030,      0x0000A3A3,
-	0x030,      0x0000B3A3, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x93011000, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x93001000, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x90002100, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x90002000, 0x00000000, 0x40000000, 0x00000000,
-	0x0EF,      0x00000080, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0xA0000000, 0x00000000, 0x0EF,      0x00000080,
-	0x030,      0x000003A2, 0x030,      0x000013A2, 0x030,      0x000023A2,
-	0x030,      0x000033A2, 0x030,      0x000043A2, 0x030,      0x000053A2,
-	0x030,      0x000063A2, 0x030,      0x000073A2, 0x030,      0x000083A2,
-	0x030,      0x000093A2, 0x030,      0x0000A3A2, 0x030,      0x0000B3A2,
-	0xB0000000, 0x00000000, 0x0EF,      0x00000000, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004777,
-	0x030,      0x00005777, 0x030,      0x00006777, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004777,
-	0x030,      0x00005777, 0x030,      0x00006777, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000660,
-	0x030,      0x00001443, 0x030,      0x00002221, 0x030,      0x00004777,
-	0x030,      0x00005777, 0x030,      0x00006777, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000776,
-	0x030,      0x00001455, 0x030,      0x00002325, 0x030,      0x00004777,
-	0x030,      0x00005777, 0x030,      0x00006777, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000764,
-	0x030,      0x00001632, 0x030,      0x00002421, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000764,
-	0x030,      0x00001632, 0x030,      0x00002421, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000777,
-	0x030,      0x00001442, 0x030,      0x00002222, 0x030,      0x00004777,
-	0x030,      0x00005777, 0x030,      0x00006777, 0x93001000, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000764,
-	0x030,      0x00001632, 0x030,      0x00002421, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000775,
-	0x030,      0x00001343, 0x030,      0x00002210, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x0EF,      0x00000040, 0x030,      0x00000775,
-	0x030,      0x00001422, 0x030,      0x00002210, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0xA0000000, 0x00000000,
-	0x0EF,      0x00000040, 0x030,      0x00000764, 0x030,      0x00001632,
-	0x030,      0x00002421, 0x030,      0x00004000, 0x030,      0x00005000,
-	0x030,      0x00006000, 0xB0000000, 0x00000000, 0x0EF,      0x00000000,
-	0x0EF,      0x00000800, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000007, 0x033,      0x00000021,
-	0x03F,      0x0000000A, 0x033,      0x00000022, 0x03F,      0x0000000D,
-	0x033,      0x00000023, 0x03F,      0x0000002A, 0x033,      0x00000024,
-	0x03F,      0x0000002D, 0x033,      0x00000025, 0x03F,      0x00000030,
-	0x033,      0x00000026, 0x03F,      0x0000006D, 0x033,      0x00000027,
-	0x03F,      0x00000070, 0x033,      0x00000028, 0x03F,      0x000000ED,
-	0x033,      0x00000029, 0x03F,      0x000000F0, 0x033,      0x0000002A,
-	0x03F,      0x000000F3, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000007, 0x033,      0x00000021,
-	0x03F,      0x0000000A, 0x033,      0x00000022, 0x03F,      0x0000000D,
-	0x033,      0x00000023, 0x03F,      0x0000002A, 0x033,      0x00000024,
-	0x03F,      0x0000002D, 0x033,      0x00000025, 0x03F,      0x00000030,
-	0x033,      0x00000026, 0x03F,      0x0000006D, 0x033,      0x00000027,
-	0x03F,      0x00000070, 0x033,      0x00000028, 0x03F,      0x000000ED,
-	0x033,      0x00000029, 0x03F,      0x000000F0, 0x033,      0x0000002A,
-	0x03F,      0x000000F3, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000007, 0x033,      0x00000021,
-	0x03F,      0x0000000A, 0x033,      0x00000022, 0x03F,      0x0000000D,
-	0x033,      0x00000023, 0x03F,      0x0000002A, 0x033,      0x00000024,
-	0x03F,      0x0000002D, 0x033,      0x00000025, 0x03F,      0x00000030,
-	0x033,      0x00000026, 0x03F,      0x0000006D, 0x033,      0x00000027,
-	0x03F,      0x00000070, 0x033,      0x00000028, 0x03F,      0x000000ED,
-	0x033,      0x00000029, 0x03F,      0x000000F0, 0x033,      0x0000002A,
-	0x03F,      0x000000F3, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000005, 0x033,      0x00000021,
-	0x03F,      0x00000008, 0x033,      0x00000022, 0x03F,      0x0000000B,
-	0x033,      0x00000023, 0x03F,      0x0000000E, 0x033,      0x00000024,
-	0x03F,      0x0000002B, 0x033,      0x00000025, 0x03F,      0x00000068,
-	0x033,      0x00000026, 0x03F,      0x0000006B, 0x033,      0x00000027,
-	0x03F,      0x0000006E, 0x033,      0x00000028, 0x03F,      0x00000071,
-	0x033,      0x00000029, 0x03F,      0x00000074, 0x033,      0x0000002A,
-	0x03F,      0x00000077, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000007, 0x033,      0x00000021,
-	0x03F,      0x0000000A, 0x033,      0x00000022, 0x03F,      0x0000000D,
-	0x033,      0x00000023, 0x03F,      0x0000002A, 0x033,      0x00000024,
-	0x03F,      0x0000002D, 0x033,      0x00000025, 0x03F,      0x00000030,
-	0x033,      0x00000026, 0x03F,      0x0000006D, 0x033,      0x00000027,
-	0x03F,      0x00000070, 0x033,      0x00000028, 0x03F,      0x000000ED,
-	0x033,      0x00000029, 0x03F,      0x000000F0, 0x033,      0x0000002A,
-	0x03F,      0x000000F3, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000007, 0x033,      0x00000021,
-	0x03F,      0x0000000A, 0x033,      0x00000022, 0x03F,      0x0000000D,
-	0x033,      0x00000023, 0x03F,      0x0000002A, 0x033,      0x00000024,
-	0x03F,      0x0000002D, 0x033,      0x00000025, 0x03F,      0x00000030,
-	0x033,      0x00000026, 0x03F,      0x0000006D, 0x033,      0x00000027,
-	0x03F,      0x00000070, 0x033,      0x00000028, 0x03F,      0x000000ED,
-	0x033,      0x00000029, 0x03F,      0x000000F0, 0x033,      0x0000002A,
-	0x03F,      0x000000F3, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000007, 0x033,      0x00000021,
-	0x03F,      0x0000000A, 0x033,      0x00000022, 0x03F,      0x0000000D,
-	0x033,      0x00000023, 0x03F,      0x0000002A, 0x033,      0x00000024,
-	0x03F,      0x0000002D, 0x033,      0x00000025, 0x03F,      0x00000030,
-	0x033,      0x00000026, 0x03F,      0x0000006D, 0x033,      0x00000027,
-	0x03F,      0x00000070, 0x033,      0x00000028, 0x03F,      0x000000ED,
-	0x033,      0x00000029, 0x03F,      0x000000F0, 0x033,      0x0000002A,
-	0x03F,      0x000000F3, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000005, 0x033,      0x00000021,
-	0x03F,      0x00000008, 0x033,      0x00000022, 0x03F,      0x0000000B,
-	0x033,      0x00000023, 0x03F,      0x0000000E, 0x033,      0x00000024,
-	0x03F,      0x0000002B, 0x033,      0x00000025, 0x03F,      0x00000068,
-	0x033,      0x00000026, 0x03F,      0x0000006B, 0x033,      0x00000027,
-	0x03F,      0x0000006E, 0x033,      0x00000028, 0x03F,      0x00000071,
-	0x033,      0x00000029, 0x03F,      0x00000074, 0x033,      0x0000002A,
-	0x03F,      0x00000077, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000005, 0x033,      0x00000021,
-	0x03F,      0x00000008, 0x033,      0x00000022, 0x03F,      0x0000000B,
-	0x033,      0x00000023, 0x03F,      0x0000000E, 0x033,      0x00000024,
-	0x03F,      0x0000002B, 0x033,      0x00000025, 0x03F,      0x00000068,
-	0x033,      0x00000026, 0x03F,      0x0000006B, 0x033,      0x00000027,
-	0x03F,      0x0000006E, 0x033,      0x00000028, 0x03F,      0x00000071,
-	0x033,      0x00000029, 0x03F,      0x00000074, 0x033,      0x0000002A,
-	0x03F,      0x00000077, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000C0C, 0x033,      0x00000021,
-	0x03F,      0x00000C29, 0x033,      0x00000022, 0x03F,      0x00000C2C,
-	0x033,      0x00000023, 0x03F,      0x00000C69, 0x033,      0x00000024,
-	0x03F,      0x00000CA8, 0x033,      0x00000025, 0x03F,      0x00000CE8,
-	0x033,      0x00000026, 0x03F,      0x00000CEB, 0x033,      0x00000027,
-	0x03F,      0x00000CEE, 0x033,      0x00000028, 0x03F,      0x00000CF1,
-	0x033,      0x00000029, 0x03F,      0x00000CF4, 0x033,      0x0000002A,
-	0x03F,      0x00000CF7, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x0000042B, 0x033,      0x00000021,
-	0x03F,      0x0000082A, 0x033,      0x00000022, 0x03F,      0x00000849,
-	0x033,      0x00000023, 0x03F,      0x0000084C, 0x033,      0x00000024,
-	0x03F,      0x00000C4C, 0x033,      0x00000025, 0x03F,      0x00000CA9,
-	0x033,      0x00000026, 0x03F,      0x00000CEA, 0x033,      0x00000027,
-	0x03F,      0x00000CED, 0x033,      0x00000028, 0x03F,      0x00000CF0,
-	0x033,      0x00000029, 0x03F,      0x00000CF3, 0x033,      0x0000002A,
-	0x03F,      0x00000CF6, 0x93011000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000C09, 0x033,      0x00000021,
-	0x03F,      0x00000C0C, 0x033,      0x00000022, 0x03F,      0x00000C0F,
-	0x033,      0x00000023, 0x03F,      0x00000C2C, 0x033,      0x00000024,
-	0x03F,      0x00000C2F, 0x033,      0x00000025, 0x03F,      0x00000C8A,
-	0x033,      0x00000026, 0x03F,      0x00000C8D, 0x033,      0x00000027,
-	0x03F,      0x00000C90, 0x033,      0x00000028, 0x03F,      0x00000CD0,
-	0x033,      0x00000029, 0x03F,      0x00000CF2, 0x033,      0x0000002A,
-	0x03F,      0x00000CF5, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000005, 0x033,      0x00000021,
-	0x03F,      0x00000008, 0x033,      0x00000022, 0x03F,      0x0000000B,
-	0x033,      0x00000023, 0x03F,      0x0000000E, 0x033,      0x00000024,
-	0x03F,      0x0000002B, 0x033,      0x00000025, 0x03F,      0x00000068,
-	0x033,      0x00000026, 0x03F,      0x0000006B, 0x033,      0x00000027,
-	0x03F,      0x0000006E, 0x033,      0x00000028, 0x03F,      0x00000071,
-	0x033,      0x00000029, 0x03F,      0x00000074, 0x033,      0x0000002A,
-	0x03F,      0x00000077, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000C09, 0x033,      0x00000021,
-	0x03F,      0x00000C0C, 0x033,      0x00000022, 0x03F,      0x00000C0F,
-	0x033,      0x00000023, 0x03F,      0x00000C2C, 0x033,      0x00000024,
-	0x03F,      0x00000C2F, 0x033,      0x00000025, 0x03F,      0x00000C8A,
-	0x033,      0x00000026, 0x03F,      0x00000C8D, 0x033,      0x00000027,
-	0x03F,      0x00000C90, 0x033,      0x00000028, 0x03F,      0x00000CD0,
-	0x033,      0x00000029, 0x03F,      0x00000CF2, 0x033,      0x0000002A,
-	0x03F,      0x00000CF5, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000429, 0x033,      0x00000021,
-	0x03F,      0x00000828, 0x033,      0x00000022, 0x03F,      0x00000847,
-	0x033,      0x00000023, 0x03F,      0x0000084A, 0x033,      0x00000024,
-	0x03F,      0x00000C4B, 0x033,      0x00000025, 0x03F,      0x00000C8A,
-	0x033,      0x00000026, 0x03F,      0x00000CEA, 0x033,      0x00000027,
-	0x03F,      0x00000CED, 0x033,      0x00000028, 0x03F,      0x00000CF0,
-	0x033,      0x00000029, 0x03F,      0x00000CF3, 0x033,      0x0000002A,
-	0x03F,      0x00000CF6, 0x93001000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x00000C09, 0x033,      0x00000021,
-	0x03F,      0x00000C0C, 0x033,      0x00000022, 0x03F,      0x00000C0F,
-	0x033,      0x00000023, 0x03F,      0x00000C2C, 0x033,      0x00000024,
-	0x03F,      0x00000C2F, 0x033,      0x00000025, 0x03F,      0x00000C8A,
-	0x033,      0x00000026, 0x03F,      0x00000C8D, 0x033,      0x00000027,
-	0x03F,      0x00000C90, 0x033,      0x00000028, 0x03F,      0x00000CD0,
-	0x033,      0x00000029, 0x03F,      0x00000CF2, 0x033,      0x0000002A,
-	0x03F,      0x00000CF5, 0x90002100, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x0000042B, 0x033,      0x00000021,
-	0x03F,      0x0000082A, 0x033,      0x00000022, 0x03F,      0x00000849,
-	0x033,      0x00000023, 0x03F,      0x0000084C, 0x033,      0x00000024,
-	0x03F,      0x00000C4C, 0x033,      0x00000025, 0x03F,      0x00000C8A,
-	0x033,      0x00000026, 0x03F,      0x00000C8D, 0x033,      0x00000027,
-	0x03F,      0x00000CEB, 0x033,      0x00000028, 0x03F,      0x00000CEE,
-	0x033,      0x00000029, 0x03F,      0x00000CF1, 0x033,      0x0000002A,
-	0x03F,      0x00000CF4, 0x90002000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000020, 0x03F,      0x0000042B, 0x033,      0x00000021,
-	0x03F,      0x0000082A, 0x033,      0x00000022, 0x03F,      0x00000849,
-	0x033,      0x00000023, 0x03F,      0x0000084C, 0x033,      0x00000024,
-	0x03F,      0x00000C4C, 0x033,      0x00000025, 0x03F,      0x00000C8A,
-	0x033,      0x00000026, 0x03F,      0x00000C8D, 0x033,      0x00000027,
-	0x03F,      0x00000CEB, 0x033,      0x00000028, 0x03F,      0x00000CEE,
-	0x033,      0x00000029, 0x03F,      0x00000CF1, 0x033,      0x0000002A,
-	0x03F,      0x00000CF4, 0xA0000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000C09, 0x033,      0x00000021, 0x03F,      0x00000C0C,
-	0x033,      0x00000022, 0x03F,      0x00000C0F, 0x033,      0x00000023,
-	0x03F,      0x00000C2C, 0x033,      0x00000024, 0x03F,      0x00000C2F,
-	0x033,      0x00000025, 0x03F,      0x00000C8A, 0x033,      0x00000026,
-	0x03F,      0x00000C8D, 0x033,      0x00000027, 0x03F,      0x00000C90,
-	0x033,      0x00000028, 0x03F,      0x00000CD0, 0x033,      0x00000029,
-	0x03F,      0x00000CF2, 0x033,      0x0000002A, 0x03F,      0x00000CF5,
-	0xB0000000, 0x00000000, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000007, 0x033,      0x00000061,
-	0x03F,      0x0000000A, 0x033,      0x00000062, 0x03F,      0x0000000D,
-	0x033,      0x00000063, 0x03F,      0x0000002A, 0x033,      0x00000064,
-	0x03F,      0x0000002D, 0x033,      0x00000065, 0x03F,      0x00000030,
-	0x033,      0x00000066, 0x03F,      0x0000006D, 0x033,      0x00000067,
-	0x03F,      0x00000070, 0x033,      0x00000068, 0x03F,      0x000000ED,
-	0x033,      0x00000069, 0x03F,      0x000000F0, 0x033,      0x0000006A,
-	0x03F,      0x000000F3, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000007, 0x033,      0x00000061,
-	0x03F,      0x0000000A, 0x033,      0x00000062, 0x03F,      0x0000000D,
-	0x033,      0x00000063, 0x03F,      0x0000002A, 0x033,      0x00000064,
-	0x03F,      0x0000002D, 0x033,      0x00000065, 0x03F,      0x00000030,
-	0x033,      0x00000066, 0x03F,      0x0000006D, 0x033,      0x00000067,
-	0x03F,      0x00000070, 0x033,      0x00000068, 0x03F,      0x000000ED,
-	0x033,      0x00000069, 0x03F,      0x000000F0, 0x033,      0x0000006A,
-	0x03F,      0x000000F3, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000007, 0x033,      0x00000061,
-	0x03F,      0x0000000A, 0x033,      0x00000062, 0x03F,      0x0000000D,
-	0x033,      0x00000063, 0x03F,      0x0000002A, 0x033,      0x00000064,
-	0x03F,      0x0000002D, 0x033,      0x00000065, 0x03F,      0x00000030,
-	0x033,      0x00000066, 0x03F,      0x0000006D, 0x033,      0x00000067,
-	0x03F,      0x00000070, 0x033,      0x00000068, 0x03F,      0x000000ED,
-	0x033,      0x00000069, 0x03F,      0x000000F0, 0x033,      0x0000006A,
-	0x03F,      0x000000F3, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000005, 0x033,      0x00000061,
-	0x03F,      0x00000008, 0x033,      0x00000062, 0x03F,      0x0000000B,
-	0x033,      0x00000063, 0x03F,      0x0000000E, 0x033,      0x00000064,
-	0x03F,      0x0000002B, 0x033,      0x00000065, 0x03F,      0x00000068,
-	0x033,      0x00000066, 0x03F,      0x0000006B, 0x033,      0x00000067,
-	0x03F,      0x0000006E, 0x033,      0x00000068, 0x03F,      0x00000071,
-	0x033,      0x00000069, 0x03F,      0x00000074, 0x033,      0x0000006A,
-	0x03F,      0x00000077, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000007, 0x033,      0x00000061,
-	0x03F,      0x0000000A, 0x033,      0x00000062, 0x03F,      0x0000000D,
-	0x033,      0x00000063, 0x03F,      0x0000002A, 0x033,      0x00000064,
-	0x03F,      0x0000002D, 0x033,      0x00000065, 0x03F,      0x00000030,
-	0x033,      0x00000066, 0x03F,      0x0000006D, 0x033,      0x00000067,
-	0x03F,      0x00000070, 0x033,      0x00000068, 0x03F,      0x000000ED,
-	0x033,      0x00000069, 0x03F,      0x000000F0, 0x033,      0x0000006A,
-	0x03F,      0x000000F3, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000007, 0x033,      0x00000061,
-	0x03F,      0x0000000A, 0x033,      0x00000062, 0x03F,      0x0000000D,
-	0x033,      0x00000063, 0x03F,      0x0000002A, 0x033,      0x00000064,
-	0x03F,      0x0000002D, 0x033,      0x00000065, 0x03F,      0x00000030,
-	0x033,      0x00000066, 0x03F,      0x0000006D, 0x033,      0x00000067,
-	0x03F,      0x00000070, 0x033,      0x00000068, 0x03F,      0x000000ED,
-	0x033,      0x00000069, 0x03F,      0x000000F0, 0x033,      0x0000006A,
-	0x03F,      0x000000F3, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000007, 0x033,      0x00000061,
-	0x03F,      0x0000000A, 0x033,      0x00000062, 0x03F,      0x0000000D,
-	0x033,      0x00000063, 0x03F,      0x0000002A, 0x033,      0x00000064,
-	0x03F,      0x0000002D, 0x033,      0x00000065, 0x03F,      0x00000030,
-	0x033,      0x00000066, 0x03F,      0x0000006D, 0x033,      0x00000067,
-	0x03F,      0x00000070, 0x033,      0x00000068, 0x03F,      0x000000ED,
-	0x033,      0x00000069, 0x03F,      0x000000F0, 0x033,      0x0000006A,
-	0x03F,      0x000000F3, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000005, 0x033,      0x00000061,
-	0x03F,      0x00000008, 0x033,      0x00000062, 0x03F,      0x0000000B,
-	0x033,      0x00000063, 0x03F,      0x0000000E, 0x033,      0x00000064,
-	0x03F,      0x0000002B, 0x033,      0x00000065, 0x03F,      0x00000068,
-	0x033,      0x00000066, 0x03F,      0x0000006B, 0x033,      0x00000067,
-	0x03F,      0x0000006E, 0x033,      0x00000068, 0x03F,      0x00000071,
-	0x033,      0x00000069, 0x03F,      0x00000074, 0x033,      0x0000006A,
-	0x03F,      0x00000077, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000005, 0x033,      0x00000061,
-	0x03F,      0x00000008, 0x033,      0x00000062, 0x03F,      0x0000000B,
-	0x033,      0x00000063, 0x03F,      0x0000000E, 0x033,      0x00000064,
-	0x03F,      0x0000002B, 0x033,      0x00000065, 0x03F,      0x00000068,
-	0x033,      0x00000066, 0x03F,      0x0000006B, 0x033,      0x00000067,
-	0x03F,      0x0000006E, 0x033,      0x00000068, 0x03F,      0x00000071,
-	0x033,      0x00000069, 0x03F,      0x00000074, 0x033,      0x0000006A,
-	0x03F,      0x00000077, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x0000080B, 0x033,      0x00000061,
-	0x03F,      0x0000080E, 0x033,      0x00000062, 0x03F,      0x00000848,
-	0x033,      0x00000063, 0x03F,      0x00000869, 0x033,      0x00000064,
-	0x03F,      0x000008A9, 0x033,      0x00000065, 0x03F,      0x00000CE8,
-	0x033,      0x00000066, 0x03F,      0x00000CEB, 0x033,      0x00000067,
-	0x03F,      0x00000CEE, 0x033,      0x00000068, 0x03F,      0x00000CF1,
-	0x033,      0x00000069, 0x03F,      0x00000CF4, 0x033,      0x0000006A,
-	0x03F,      0x00000CF7, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x0000042B, 0x033,      0x00000061,
-	0x03F,      0x0000082A, 0x033,      0x00000062, 0x03F,      0x00000849,
-	0x033,      0x00000063, 0x03F,      0x0000084C, 0x033,      0x00000064,
-	0x03F,      0x00000C4C, 0x033,      0x00000065, 0x03F,      0x00000CA9,
-	0x033,      0x00000066, 0x03F,      0x00000CEA, 0x033,      0x00000067,
-	0x03F,      0x00000CED, 0x033,      0x00000068, 0x03F,      0x00000CF0,
-	0x033,      0x00000069, 0x03F,      0x00000CF3, 0x033,      0x0000006A,
-	0x03F,      0x00000CF6, 0x93011000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000C0A, 0x033,      0x00000061,
-	0x03F,      0x00000C0D, 0x033,      0x00000062, 0x03F,      0x00000C2A,
-	0x033,      0x00000063, 0x03F,      0x00000C2D, 0x033,      0x00000064,
-	0x03F,      0x00000C6A, 0x033,      0x00000065, 0x03F,      0x00000CAA,
-	0x033,      0x00000066, 0x03F,      0x00000CAD, 0x033,      0x00000067,
-	0x03F,      0x00000CB0, 0x033,      0x00000068, 0x03F,      0x00000CF1,
-	0x033,      0x00000069, 0x03F,      0x00000CF4, 0x033,      0x0000006A,
-	0x03F,      0x00000CF7, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000005, 0x033,      0x00000061,
-	0x03F,      0x00000008, 0x033,      0x00000062, 0x03F,      0x0000000B,
-	0x033,      0x00000063, 0x03F,      0x0000000E, 0x033,      0x00000064,
-	0x03F,      0x0000002B, 0x033,      0x00000065, 0x03F,      0x00000068,
-	0x033,      0x00000066, 0x03F,      0x0000006B, 0x033,      0x00000067,
-	0x03F,      0x0000006E, 0x033,      0x00000068, 0x03F,      0x00000071,
-	0x033,      0x00000069, 0x03F,      0x00000074, 0x033,      0x0000006A,
-	0x03F,      0x00000077, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000C0A, 0x033,      0x00000061,
-	0x03F,      0x00000C0D, 0x033,      0x00000062, 0x03F,      0x00000C2A,
-	0x033,      0x00000063, 0x03F,      0x00000C2D, 0x033,      0x00000064,
-	0x03F,      0x00000C6A, 0x033,      0x00000065, 0x03F,      0x00000CAA,
-	0x033,      0x00000066, 0x03F,      0x00000CAD, 0x033,      0x00000067,
-	0x03F,      0x00000CB0, 0x033,      0x00000068, 0x03F,      0x00000CF1,
-	0x033,      0x00000069, 0x03F,      0x00000CF4, 0x033,      0x0000006A,
-	0x03F,      0x00000CF7, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000429, 0x033,      0x00000061,
-	0x03F,      0x00000828, 0x033,      0x00000062, 0x03F,      0x00000847,
-	0x033,      0x00000063, 0x03F,      0x0000084A, 0x033,      0x00000064,
-	0x03F,      0x00000C4B, 0x033,      0x00000065, 0x03F,      0x00000C8A,
-	0x033,      0x00000066, 0x03F,      0x00000CEA, 0x033,      0x00000067,
-	0x03F,      0x00000CED, 0x033,      0x00000068, 0x03F,      0x00000CF0,
-	0x033,      0x00000069, 0x03F,      0x00000CF3, 0x033,      0x0000006A,
-	0x03F,      0x00000CF6, 0x93001000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x00000C0A, 0x033,      0x00000061,
-	0x03F,      0x00000C0D, 0x033,      0x00000062, 0x03F,      0x00000C2A,
-	0x033,      0x00000063, 0x03F,      0x00000C2D, 0x033,      0x00000064,
-	0x03F,      0x00000C6A, 0x033,      0x00000065, 0x03F,      0x00000CAA,
-	0x033,      0x00000066, 0x03F,      0x00000CAD, 0x033,      0x00000067,
-	0x03F,      0x00000CB0, 0x033,      0x00000068, 0x03F,      0x00000CF1,
-	0x033,      0x00000069, 0x03F,      0x00000CF4, 0x033,      0x0000006A,
-	0x03F,      0x00000CF7, 0x90002100, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x0000042C, 0x033,      0x00000061,
-	0x03F,      0x0000082B, 0x033,      0x00000062, 0x03F,      0x0000084A,
-	0x033,      0x00000063, 0x03F,      0x0000084D, 0x033,      0x00000064,
-	0x03F,      0x00000C4D, 0x033,      0x00000065, 0x03F,      0x00000C8B,
-	0x033,      0x00000066, 0x03F,      0x00000C8E, 0x033,      0x00000067,
-	0x03F,      0x00000CEC, 0x033,      0x00000068, 0x03F,      0x00000CEF,
-	0x033,      0x00000069, 0x03F,      0x00000CF2, 0x033,      0x0000006A,
-	0x03F,      0x00000CF5, 0x90002000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000060, 0x03F,      0x0000042C, 0x033,      0x00000061,
-	0x03F,      0x0000082B, 0x033,      0x00000062, 0x03F,      0x0000084A,
-	0x033,      0x00000063, 0x03F,      0x0000084D, 0x033,      0x00000064,
-	0x03F,      0x00000C4D, 0x033,      0x00000065, 0x03F,      0x00000C8B,
-	0x033,      0x00000066, 0x03F,      0x00000C8E, 0x033,      0x00000067,
-	0x03F,      0x00000CEC, 0x033,      0x00000068, 0x03F,      0x00000CEF,
-	0x033,      0x00000069, 0x03F,      0x00000CF2, 0x033,      0x0000006A,
-	0x03F,      0x00000CF5, 0xA0000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000C0A, 0x033,      0x00000061, 0x03F,      0x00000C0D,
-	0x033,      0x00000062, 0x03F,      0x00000C2A, 0x033,      0x00000063,
-	0x03F,      0x00000C2D, 0x033,      0x00000064, 0x03F,      0x00000C6A,
-	0x033,      0x00000065, 0x03F,      0x00000CAA, 0x033,      0x00000066,
-	0x03F,      0x00000CAD, 0x033,      0x00000067, 0x03F,      0x00000CB0,
-	0x033,      0x00000068, 0x03F,      0x00000CF1, 0x033,      0x00000069,
-	0x03F,      0x00000CF4, 0x033,      0x0000006A, 0x03F,      0x00000CF7,
-	0xB0000000, 0x00000000, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000007, 0x033,      0x000000A1,
-	0x03F,      0x0000000A, 0x033,      0x000000A2, 0x03F,      0x0000000D,
-	0x033,      0x000000A3, 0x03F,      0x0000002A, 0x033,      0x000000A4,
-	0x03F,      0x0000002D, 0x033,      0x000000A5, 0x03F,      0x00000030,
-	0x033,      0x000000A6, 0x03F,      0x0000006D, 0x033,      0x000000A7,
-	0x03F,      0x00000070, 0x033,      0x000000A8, 0x03F,      0x000000ED,
-	0x033,      0x000000A9, 0x03F,      0x000000F0, 0x033,      0x000000AA,
-	0x03F,      0x000000F3, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000007, 0x033,      0x000000A1,
-	0x03F,      0x0000000A, 0x033,      0x000000A2, 0x03F,      0x0000000D,
-	0x033,      0x000000A3, 0x03F,      0x0000002A, 0x033,      0x000000A4,
-	0x03F,      0x0000002D, 0x033,      0x000000A5, 0x03F,      0x00000030,
-	0x033,      0x000000A6, 0x03F,      0x0000006D, 0x033,      0x000000A7,
-	0x03F,      0x00000070, 0x033,      0x000000A8, 0x03F,      0x000000ED,
-	0x033,      0x000000A9, 0x03F,      0x000000F0, 0x033,      0x000000AA,
-	0x03F,      0x000000F3, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000007, 0x033,      0x000000A1,
-	0x03F,      0x0000000A, 0x033,      0x000000A2, 0x03F,      0x0000000D,
-	0x033,      0x000000A3, 0x03F,      0x0000002A, 0x033,      0x000000A4,
-	0x03F,      0x0000002D, 0x033,      0x000000A5, 0x03F,      0x00000030,
-	0x033,      0x000000A6, 0x03F,      0x0000006D, 0x033,      0x000000A7,
-	0x03F,      0x00000070, 0x033,      0x000000A8, 0x03F,      0x000000ED,
-	0x033,      0x000000A9, 0x03F,      0x000000F0, 0x033,      0x000000AA,
-	0x03F,      0x000000F3, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000005, 0x033,      0x000000A1,
-	0x03F,      0x00000008, 0x033,      0x000000A2, 0x03F,      0x0000000B,
-	0x033,      0x000000A3, 0x03F,      0x0000000E, 0x033,      0x000000A4,
-	0x03F,      0x00000047, 0x033,      0x000000A5, 0x03F,      0x0000004A,
-	0x033,      0x000000A6, 0x03F,      0x0000004D, 0x033,      0x000000A7,
-	0x03F,      0x00000050, 0x033,      0x000000A8, 0x03F,      0x00000053,
-	0x033,      0x000000A9, 0x03F,      0x00000056, 0x033,      0x000000AA,
-	0x03F,      0x00000094, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000007, 0x033,      0x000000A1,
-	0x03F,      0x0000000A, 0x033,      0x000000A2, 0x03F,      0x0000000D,
-	0x033,      0x000000A3, 0x03F,      0x0000002A, 0x033,      0x000000A4,
-	0x03F,      0x0000002D, 0x033,      0x000000A5, 0x03F,      0x00000030,
-	0x033,      0x000000A6, 0x03F,      0x0000006D, 0x033,      0x000000A7,
-	0x03F,      0x00000070, 0x033,      0x000000A8, 0x03F,      0x000000ED,
-	0x033,      0x000000A9, 0x03F,      0x000000F0, 0x033,      0x000000AA,
-	0x03F,      0x000000F3, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000007, 0x033,      0x000000A1,
-	0x03F,      0x0000000A, 0x033,      0x000000A2, 0x03F,      0x0000000D,
-	0x033,      0x000000A3, 0x03F,      0x0000002A, 0x033,      0x000000A4,
-	0x03F,      0x0000002D, 0x033,      0x000000A5, 0x03F,      0x00000030,
-	0x033,      0x000000A6, 0x03F,      0x0000006D, 0x033,      0x000000A7,
-	0x03F,      0x00000070, 0x033,      0x000000A8, 0x03F,      0x000000ED,
-	0x033,      0x000000A9, 0x03F,      0x000000F0, 0x033,      0x000000AA,
-	0x03F,      0x000000F3, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000007, 0x033,      0x000000A1,
-	0x03F,      0x0000000A, 0x033,      0x000000A2, 0x03F,      0x0000000D,
-	0x033,      0x000000A3, 0x03F,      0x0000002A, 0x033,      0x000000A4,
-	0x03F,      0x0000002D, 0x033,      0x000000A5, 0x03F,      0x00000030,
-	0x033,      0x000000A6, 0x03F,      0x0000006D, 0x033,      0x000000A7,
-	0x03F,      0x00000070, 0x033,      0x000000A8, 0x03F,      0x000000ED,
-	0x033,      0x000000A9, 0x03F,      0x000000F0, 0x033,      0x000000AA,
-	0x03F,      0x000000F3, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000005, 0x033,      0x000000A1,
-	0x03F,      0x00000008, 0x033,      0x000000A2, 0x03F,      0x0000000B,
-	0x033,      0x000000A3, 0x03F,      0x0000000E, 0x033,      0x000000A4,
-	0x03F,      0x00000047, 0x033,      0x000000A5, 0x03F,      0x0000004A,
-	0x033,      0x000000A6, 0x03F,      0x0000004D, 0x033,      0x000000A7,
-	0x03F,      0x00000050, 0x033,      0x000000A8, 0x03F,      0x00000053,
-	0x033,      0x000000A9, 0x03F,      0x00000056, 0x033,      0x000000AA,
-	0x03F,      0x00000094, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000005, 0x033,      0x000000A1,
-	0x03F,      0x00000008, 0x033,      0x000000A2, 0x03F,      0x0000000B,
-	0x033,      0x000000A3, 0x03F,      0x0000000E, 0x033,      0x000000A4,
-	0x03F,      0x00000047, 0x033,      0x000000A5, 0x03F,      0x0000004A,
-	0x033,      0x000000A6, 0x03F,      0x0000004D, 0x033,      0x000000A7,
-	0x03F,      0x00000050, 0x033,      0x000000A8, 0x03F,      0x00000053,
-	0x033,      0x000000A9, 0x03F,      0x00000056, 0x033,      0x000000AA,
-	0x03F,      0x00000094, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000C0A, 0x033,      0x000000A1,
-	0x03F,      0x00000C0D, 0x033,      0x000000A2, 0x03F,      0x00000C2A,
-	0x033,      0x000000A3, 0x03F,      0x00000C2D, 0x033,      0x000000A4,
-	0x03F,      0x00000C6A, 0x033,      0x000000A5, 0x03F,      0x00000CE8,
-	0x033,      0x000000A6, 0x03F,      0x00000CEB, 0x033,      0x000000A7,
-	0x03F,      0x00000CEE, 0x033,      0x000000A8, 0x03F,      0x00000CF1,
-	0x033,      0x000000A9, 0x03F,      0x00000CF4, 0x033,      0x000000AA,
-	0x03F,      0x00000CF7, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x0000042A, 0x033,      0x000000A1,
-	0x03F,      0x00000829, 0x033,      0x000000A2, 0x03F,      0x00000848,
-	0x033,      0x000000A3, 0x03F,      0x0000084B, 0x033,      0x000000A4,
-	0x03F,      0x00000C4C, 0x033,      0x000000A5, 0x03F,      0x00000CA9,
-	0x033,      0x000000A6, 0x03F,      0x00000CEA, 0x033,      0x000000A7,
-	0x03F,      0x00000CED, 0x033,      0x000000A8, 0x03F,      0x00000CF0,
-	0x033,      0x000000A9, 0x03F,      0x00000CF3, 0x033,      0x000000AA,
-	0x03F,      0x00000CF6, 0x93011000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000C09, 0x033,      0x000000A1,
-	0x03F,      0x00000C0C, 0x033,      0x000000A2, 0x03F,      0x00000C0F,
-	0x033,      0x000000A3, 0x03F,      0x00000C2C, 0x033,      0x000000A4,
-	0x03F,      0x00000C2F, 0x033,      0x000000A5, 0x03F,      0x00000C8A,
-	0x033,      0x000000A6, 0x03F,      0x00000C8D, 0x033,      0x000000A7,
-	0x03F,      0x00000C90, 0x033,      0x000000A8, 0x03F,      0x00000CEF,
-	0x033,      0x000000A9, 0x03F,      0x00000CF2, 0x033,      0x000000AA,
-	0x03F,      0x00000CF5, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000005, 0x033,      0x000000A1,
-	0x03F,      0x00000008, 0x033,      0x000000A2, 0x03F,      0x0000000B,
-	0x033,      0x000000A3, 0x03F,      0x0000000E, 0x033,      0x000000A4,
-	0x03F,      0x00000047, 0x033,      0x000000A5, 0x03F,      0x0000004A,
-	0x033,      0x000000A6, 0x03F,      0x0000004D, 0x033,      0x000000A7,
-	0x03F,      0x00000050, 0x033,      0x000000A8, 0x03F,      0x00000053,
-	0x033,      0x000000A9, 0x03F,      0x00000056, 0x033,      0x000000AA,
-	0x03F,      0x00000094, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000C09, 0x033,      0x000000A1,
-	0x03F,      0x00000C0C, 0x033,      0x000000A2, 0x03F,      0x00000C0F,
-	0x033,      0x000000A3, 0x03F,      0x00000C2C, 0x033,      0x000000A4,
-	0x03F,      0x00000C2F, 0x033,      0x000000A5, 0x03F,      0x00000C8A,
-	0x033,      0x000000A6, 0x03F,      0x00000C8D, 0x033,      0x000000A7,
-	0x03F,      0x00000C90, 0x033,      0x000000A8, 0x03F,      0x00000CEF,
-	0x033,      0x000000A9, 0x03F,      0x00000CF2, 0x033,      0x000000AA,
-	0x03F,      0x00000CF5, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000429, 0x033,      0x000000A1,
-	0x03F,      0x00000828, 0x033,      0x000000A2, 0x03F,      0x00000847,
-	0x033,      0x000000A3, 0x03F,      0x0000084A, 0x033,      0x000000A4,
-	0x03F,      0x00000C4B, 0x033,      0x000000A5, 0x03F,      0x00000C8A,
-	0x033,      0x000000A6, 0x03F,      0x00000CEA, 0x033,      0x000000A7,
-	0x03F,      0x00000CED, 0x033,      0x000000A8, 0x03F,      0x00000CF0,
-	0x033,      0x000000A9, 0x03F,      0x00000CF3, 0x033,      0x000000AA,
-	0x03F,      0x00000CF6, 0x93001000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x00000C09, 0x033,      0x000000A1,
-	0x03F,      0x00000C0C, 0x033,      0x000000A2, 0x03F,      0x00000C0F,
-	0x033,      0x000000A3, 0x03F,      0x00000C2C, 0x033,      0x000000A4,
-	0x03F,      0x00000C2F, 0x033,      0x000000A5, 0x03F,      0x00000C8A,
-	0x033,      0x000000A6, 0x03F,      0x00000C8D, 0x033,      0x000000A7,
-	0x03F,      0x00000C90, 0x033,      0x000000A8, 0x03F,      0x00000CEF,
-	0x033,      0x000000A9, 0x03F,      0x00000CF2, 0x033,      0x000000AA,
-	0x03F,      0x00000CF5, 0x90002100, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x0000042A, 0x033,      0x000000A1,
-	0x03F,      0x00000829, 0x033,      0x000000A2, 0x03F,      0x00000848,
-	0x033,      0x000000A3, 0x03F,      0x0000084B, 0x033,      0x000000A4,
-	0x03F,      0x00000C4C, 0x033,      0x000000A5, 0x03F,      0x00000C8A,
-	0x033,      0x000000A6, 0x03F,      0x00000C8D, 0x033,      0x000000A7,
-	0x03F,      0x00000CEB, 0x033,      0x000000A8, 0x03F,      0x00000CEE,
-	0x033,      0x000000A9, 0x03F,      0x00000CF1, 0x033,      0x000000AA,
-	0x03F,      0x00000CF4, 0x90002000, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x000000A0, 0x03F,      0x0000042A, 0x033,      0x000000A1,
-	0x03F,      0x00000829, 0x033,      0x000000A2, 0x03F,      0x00000848,
-	0x033,      0x000000A3, 0x03F,      0x0000084B, 0x033,      0x000000A4,
-	0x03F,      0x00000C4C, 0x033,      0x000000A5, 0x03F,      0x00000C8A,
-	0x033,      0x000000A6, 0x03F,      0x00000C8D, 0x033,      0x000000A7,
-	0x03F,      0x00000CEB, 0x033,      0x000000A8, 0x03F,      0x00000CEE,
-	0x033,      0x000000A9, 0x03F,      0x00000CF1, 0x033,      0x000000AA,
-	0x03F,      0x00000CF4, 0xA0000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000C09, 0x033,      0x000000A1, 0x03F,      0x00000C0C,
-	0x033,      0x000000A2, 0x03F,      0x00000C0F, 0x033,      0x000000A3,
-	0x03F,      0x00000C2C, 0x033,      0x000000A4, 0x03F,      0x00000C2F,
-	0x033,      0x000000A5, 0x03F,      0x00000C8A, 0x033,      0x000000A6,
-	0x03F,      0x00000C8D, 0x033,      0x000000A7, 0x03F,      0x00000C90,
-	0x033,      0x000000A8, 0x03F,      0x00000CEF, 0x033,      0x000000A9,
-	0x03F,      0x00000CF2, 0x033,      0x000000AA, 0x03F,      0x00000CF5,
-	0xB0000000, 0x00000000, 0x0EF,      0x00000000, 0x0EF,      0x00000400,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x0000047C, 0x033,      0x00000001, 0x03F,      0x0000047C,
-	0x033,      0x00000002, 0x03F,      0x0000047C, 0x033,      0x00000003,
-	0x03F,      0x0000047C, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x0000047C, 0x033,      0x00000001,
-	0x03F,      0x0000047C, 0x033,      0x00000002, 0x03F,      0x0000047C,
-	0x033,      0x00000003, 0x03F,      0x0000047C, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x0000047C,
-	0x033,      0x00000001, 0x03F,      0x0000047C, 0x033,      0x00000002,
-	0x03F,      0x0000047C, 0x033,      0x00000003, 0x03F,      0x0000047C,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x0000047C, 0x033,      0x00000001, 0x03F,      0x0000047C,
-	0x033,      0x00000002, 0x03F,      0x0000047C, 0x033,      0x00000003,
-	0x03F,      0x0000047C, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x0000047C, 0x033,      0x00000001,
-	0x03F,      0x0000047C, 0x033,      0x00000002, 0x03F,      0x0000047C,
-	0x033,      0x00000003, 0x03F,      0x0000047C, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x0000047C,
-	0x033,      0x00000001, 0x03F,      0x0000047C, 0x033,      0x00000002,
-	0x03F,      0x0000047C, 0x033,      0x00000003, 0x03F,      0x0000047C,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x0000047C, 0x033,      0x00000001, 0x03F,      0x0000047C,
-	0x033,      0x00000002, 0x03F,      0x0000047C, 0x033,      0x00000003,
-	0x03F,      0x0000047C, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x0000047C, 0x033,      0x00000001,
-	0x03F,      0x0000047C, 0x033,      0x00000002, 0x03F,      0x0000047C,
-	0x033,      0x00000003, 0x03F,      0x0000047C, 0xA0000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x000004BB, 0x033,      0x00000001,
-	0x03F,      0x000004BB, 0x033,      0x00000002, 0x03F,      0x000004BB,
-	0x033,      0x00000003, 0x03F,      0x000004BB, 0xB0000000, 0x00000000,
-	0x0EF,      0x00000000, 0x0EF,      0x00000100, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00001726,
-	0x033,      0x00000001, 0x03F,      0x00001726, 0x033,      0x00000002,
-	0x03F,      0x00001726, 0x033,      0x00000003, 0x03F,      0x00001726,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00001726, 0x033,      0x00000001, 0x03F,      0x00001726,
-	0x033,      0x00000002, 0x03F,      0x00001726, 0x033,      0x00000003,
-	0x03F,      0x00001726, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x00001726, 0x033,      0x00000001,
-	0x03F,      0x00001726, 0x033,      0x00000002, 0x03F,      0x00001726,
-	0x033,      0x00000003, 0x03F,      0x00001726, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00001726,
-	0x033,      0x00000001, 0x03F,      0x00001726, 0x033,      0x00000002,
-	0x03F,      0x00001726, 0x033,      0x00000003, 0x03F,      0x00001726,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00001726, 0x033,      0x00000001, 0x03F,      0x00001726,
-	0x033,      0x00000002, 0x03F,      0x00001726, 0x033,      0x00000003,
-	0x03F,      0x00001726, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x00001726, 0x033,      0x00000001,
-	0x03F,      0x00001726, 0x033,      0x00000002, 0x03F,      0x00001726,
-	0x033,      0x00000003, 0x03F,      0x00001726, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00001726,
-	0x033,      0x00000001, 0x03F,      0x00001726, 0x033,      0x00000002,
-	0x03F,      0x00001726, 0x033,      0x00000003, 0x03F,      0x00001726,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00001726, 0x033,      0x00000001, 0x03F,      0x00001726,
-	0x033,      0x00000002, 0x03F,      0x00001726, 0x033,      0x00000003,
-	0x03F,      0x00001726, 0xA0000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000F34, 0x033,      0x00000001, 0x03F,      0x00000F34,
-	0x033,      0x00000002, 0x03F,      0x00000F34, 0x033,      0x00000003,
-	0x03F,      0x00000F34, 0xB0000000, 0x00000000, 0x0EF,      0x00000000,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x081,      0x0000F400,
-	0x087,      0x00016040, 0x051,      0x00000808, 0x052,      0x00098002,
-	0x053,      0x0000FA47, 0x054,      0x00058032, 0x056,      0x00051000,
-	0x057,      0x0000CE0A, 0x058,      0x00082030, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x081,      0x0000F400, 0x087,      0x00016040,
-	0x051,      0x00000808, 0x052,      0x00098002, 0x053,      0x0000FA47,
-	0x054,      0x00058032, 0x056,      0x00051000, 0x057,      0x0000CE0A,
-	0x058,      0x00082030, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x081,      0x0000F400, 0x087,      0x00016040, 0x051,      0x00000808,
-	0x052,      0x00098002, 0x053,      0x0000FA47, 0x054,      0x00058032,
-	0x056,      0x00051000, 0x057,      0x0000CE0A, 0x058,      0x00082030,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x081,      0x0000F400,
-	0x087,      0x00016040, 0x051,      0x00000808, 0x052,      0x00098002,
-	0x053,      0x0000FA47, 0x054,      0x00058032, 0x056,      0x00051000,
-	0x057,      0x0000CE0A, 0x058,      0x00082030, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x081,      0x0000F400, 0x087,      0x00016040,
-	0x051,      0x00000808, 0x052,      0x00098002, 0x053,      0x0000FA47,
-	0x054,      0x00058032, 0x056,      0x00051000, 0x057,      0x0000CE0A,
-	0x058,      0x00082030, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x081,      0x0000F400, 0x087,      0x00016040, 0x051,      0x00000808,
-	0x052,      0x00098002, 0x053,      0x0000FA47, 0x054,      0x00058032,
-	0x056,      0x00051000, 0x057,      0x0000CE0A, 0x058,      0x00082030,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x081,      0x0000F400,
-	0x087,      0x00016040, 0x051,      0x00000808, 0x052,      0x00098002,
-	0x053,      0x0000FA47, 0x054,      0x00058032, 0x056,      0x00051000,
-	0x057,      0x0000CE0A, 0x058,      0x00082030, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x081,      0x0000F400, 0x087,      0x00016040,
-	0x051,      0x00000808, 0x052,      0x00098002, 0x053,      0x0000FA47,
-	0x054,      0x00058032, 0x056,      0x00051000, 0x057,      0x0000CE0A,
-	0x058,      0x00082030, 0xA0000000, 0x00000000, 0x081,      0x0000F000,
-	0x087,      0x00016040, 0x051,      0x00000C00, 0x052,      0x0007C241,
-	0x053,      0x0001C069, 0x054,      0x00078032, 0x057,      0x0000CE0A,
-	0x058,      0x00058750, 0xB0000000, 0x00000000, 0x0EF,      0x00000800,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000003, 0x033,      0x00000001, 0x03F,      0x00000006,
-	0x033,      0x00000002, 0x03F,      0x00000009, 0x033,      0x00000003,
-	0x03F,      0x00000026, 0x033,      0x00000004, 0x03F,      0x00000029,
-	0x033,      0x00000005, 0x03F,      0x0000002C, 0x033,      0x00000006,
-	0x03F,      0x0000002F, 0x033,      0x00000007, 0x03F,      0x00000033,
-	0x033,      0x00000008, 0x03F,      0x00000036, 0x033,      0x00000009,
-	0x03F,      0x00000039, 0x033,      0x0000000A, 0x03F,      0x0000003C,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000003, 0x033,      0x00000001, 0x03F,      0x00000006,
-	0x033,      0x00000002, 0x03F,      0x00000009, 0x033,      0x00000003,
-	0x03F,      0x00000026, 0x033,      0x00000004, 0x03F,      0x00000029,
-	0x033,      0x00000005, 0x03F,      0x0000002C, 0x033,      0x00000006,
-	0x03F,      0x0000002F, 0x033,      0x00000007, 0x03F,      0x00000033,
-	0x033,      0x00000008, 0x03F,      0x00000036, 0x033,      0x00000009,
-	0x03F,      0x00000039, 0x033,      0x0000000A, 0x03F,      0x0000003C,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000003, 0x033,      0x00000001, 0x03F,      0x00000006,
-	0x033,      0x00000002, 0x03F,      0x00000009, 0x033,      0x00000003,
-	0x03F,      0x00000026, 0x033,      0x00000004, 0x03F,      0x00000029,
-	0x033,      0x00000005, 0x03F,      0x0000002C, 0x033,      0x00000006,
-	0x03F,      0x0000002F, 0x033,      0x00000007, 0x03F,      0x00000033,
-	0x033,      0x00000008, 0x03F,      0x00000036, 0x033,      0x00000009,
-	0x03F,      0x00000039, 0x033,      0x0000000A, 0x03F,      0x0000003C,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000003, 0x033,      0x00000001, 0x03F,      0x00000006,
-	0x033,      0x00000002, 0x03F,      0x00000009, 0x033,      0x00000003,
-	0x03F,      0x00000026, 0x033,      0x00000004, 0x03F,      0x00000029,
-	0x033,      0x00000005, 0x03F,      0x0000002C, 0x033,      0x00000006,
-	0x03F,      0x0000002F, 0x033,      0x00000007, 0x03F,      0x00000033,
-	0x033,      0x00000008, 0x03F,      0x00000036, 0x033,      0x00000009,
-	0x03F,      0x00000039, 0x033,      0x0000000A, 0x03F,      0x0000003C,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000003, 0x033,      0x00000001, 0x03F,      0x00000006,
-	0x033,      0x00000002, 0x03F,      0x00000009, 0x033,      0x00000003,
-	0x03F,      0x00000026, 0x033,      0x00000004, 0x03F,      0x00000029,
-	0x033,      0x00000005, 0x03F,      0x0000002C, 0x033,      0x00000006,
-	0x03F,      0x0000002F, 0x033,      0x00000007, 0x03F,      0x00000033,
-	0x033,      0x00000008, 0x03F,      0x00000036, 0x033,      0x00000009,
-	0x03F,      0x00000039, 0x033,      0x0000000A, 0x03F,      0x0000003C,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000003, 0x033,      0x00000001, 0x03F,      0x00000006,
-	0x033,      0x00000002, 0x03F,      0x00000009, 0x033,      0x00000003,
-	0x03F,      0x00000026, 0x033,      0x00000004, 0x03F,      0x00000029,
-	0x033,      0x00000005, 0x03F,      0x0000002C, 0x033,      0x00000006,
-	0x03F,      0x0000002F, 0x033,      0x00000007, 0x03F,      0x00000033,
-	0x033,      0x00000008, 0x03F,      0x00000036, 0x033,      0x00000009,
-	0x03F,      0x00000039, 0x033,      0x0000000A, 0x03F,      0x0000003C,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000003, 0x033,      0x00000001, 0x03F,      0x00000006,
-	0x033,      0x00000002, 0x03F,      0x00000009, 0x033,      0x00000003,
-	0x03F,      0x00000026, 0x033,      0x00000004, 0x03F,      0x00000029,
-	0x033,      0x00000005, 0x03F,      0x0000002C, 0x033,      0x00000006,
-	0x03F,      0x0000002F, 0x033,      0x00000007, 0x03F,      0x00000033,
-	0x033,      0x00000008, 0x03F,      0x00000036, 0x033,      0x00000009,
-	0x03F,      0x00000039, 0x033,      0x0000000A, 0x03F,      0x0000003C,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000003, 0x033,      0x00000001, 0x03F,      0x00000006,
-	0x033,      0x00000002, 0x03F,      0x00000009, 0x033,      0x00000003,
-	0x03F,      0x00000026, 0x033,      0x00000004, 0x03F,      0x00000029,
-	0x033,      0x00000005, 0x03F,      0x0000002C, 0x033,      0x00000006,
-	0x03F,      0x0000002F, 0x033,      0x00000007, 0x03F,      0x00000033,
-	0x033,      0x00000008, 0x03F,      0x00000036, 0x033,      0x00000009,
-	0x03F,      0x00000039, 0x033,      0x0000000A, 0x03F,      0x0000003C,
-	0xA0000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x0005142C,
-	0x033,      0x00000001, 0x03F,      0x0005144B, 0x033,      0x00000002,
-	0x03F,      0x0005144E, 0x033,      0x00000003, 0x03F,      0x00051C69,
-	0x033,      0x00000004, 0x03F,      0x00051C6C, 0x033,      0x00000005,
-	0x03F,      0x00051C6F, 0x033,      0x00000006, 0x03F,      0x00051CEB,
-	0x033,      0x00000007, 0x03F,      0x00051CEE, 0x033,      0x00000008,
-	0x03F,      0x00051CF1, 0x033,      0x00000009, 0x03F,      0x00051CF4,
-	0x033,      0x0000000A, 0x03F,      0x00051CF7, 0xB0000000, 0x00000000,
-	0x0EF,      0x00000000, 0x0EF,      0x00000010, 0x033,      0x00000000,
-	0x008,      0x0009C060, 0x033,      0x00000001, 0x008,      0x0009C060,
-	0x0EF,      0x00000000, 0x033,      0x000000A2, 0x0EF,      0x00080000,
-	0x03E,      0x0000593F, 0x03F,      0x000C0F4F, 0x0EF,      0x00000000,
-	0x033,      0x000000A3, 0x0EF,      0x00080000, 0x03E,      0x00005934,
-	0x03F,      0x0005AFCF, 0x0EF,      0x00000000,
-
-};
-
-void odm_read_and_config_mp_8822b_radioa(struct phy_dm_struct *dm)
-{
-	u32 i = 0;
-	u8 c_cond;
-	bool is_matched = true, is_skipped = false;
-	u32 *array = array_mp_8822b_radioa;
-
-	u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===> %s\n", __func__);
-
-	for (; (i + 1) < ARRAY_SIZE(array_mp_8822b_radioa); i = i + 2) {
-		v1 = array[i];
-		v2 = array[i + 1];
-
-		if (v1 & BIT(31)) { /* positive condition*/
-			c_cond = (u8)((v1 & (BIT(29) | BIT(28))) >> 28);
-			if (c_cond == COND_ENDIF) { /*end*/
-				is_matched = true;
-				is_skipped = false;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ENDIF\n");
-			} else if (c_cond == COND_ELSE) { /*else*/
-				is_matched = is_skipped ? false : true;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ELSE\n");
-			} else { /*if , else if*/
-				pre_v1 = v1;
-				pre_v2 = v2;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT,
-					     "IF or ELSE IF\n");
-			}
-		} else if (v1 & BIT(30)) { /*negative condition*/
-			if (is_skipped) {
-				is_matched = false;
-				continue;
-			}
-
-			if (check_positive(dm, pre_v1, pre_v2, v1, v2)) {
-				is_matched = true;
-				is_skipped = true;
-			} else {
-				is_matched = false;
-				is_skipped = false;
-			}
-		} else if (is_matched) {
-			odm_config_rf_radio_a_8822b(dm, v1, v2);
-		}
-	}
-}
-
-u32 odm_get_version_mp_8822b_radioa(void) { return 67; }
-
-/******************************************************************************
- *                           radiob.TXT
- ******************************************************************************/
-
-static u32 array_mp_8822b_radiob[] = {
-	0x000,      0x00030000, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x0004002D, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x90002100, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0x90002000, 0x00000000, 0x40000000, 0x00000000,
-	0x001,      0x00040029, 0xA0000000, 0x00000000, 0x001,      0x00040029,
-	0xB0000000, 0x00000000, 0x018,      0x00010D24, 0x0EF,      0x00080000,
-	0x033,      0x00000002, 0x03E,      0x0000003F, 0x03F,      0x000C0F4E,
-	0x033,      0x00000001, 0x03E,      0x00000034, 0x03F,      0x0004080E,
-	0x0EF,      0x00080000, 0x0DF,      0x00002449, 0x033,      0x00000024,
-	0x03E,      0x0000003F, 0x03F,      0x00060FDE, 0x0EF,      0x00000000,
-	0x0EF,      0x00080000, 0x033,      0x00000025, 0x03E,      0x00000037,
-	0x03F,      0x0007EFCE, 0x0EF,      0x00000000, 0x0EF,      0x00080000,
-	0x033,      0x00000026, 0x03E,      0x00000037, 0x03F,      0x000DEFCE,
-	0x0EF,      0x00000000, 0x0DF,      0x00000009, 0x018,      0x00010524,
-	0x089,      0x00000207, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x08A,      0x000FF186, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x08A,      0x000FE186, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x08A,      0x000FF186, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x08A,      0x000FF186, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x08A,      0x000FF186, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x08A,      0x000FE186, 0xA0000000, 0x00000000, 0x08A,      0x000FF186,
-	0xB0000000, 0x00000000, 0x08B,      0x00061E3C, 0x08C,      0x000112C7,
-	0x08D,      0x000F4988, 0x08E,      0x00064D40, 0x0EF,      0x00020000,
-	0x033,      0x00000007, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x03E,      0x00004040, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x03E,      0x00004080, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004040, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004040, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x03E,      0x00004040, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x03E,      0x00004080, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004040, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004040, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004040, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004000, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004000, 0x93011000, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004000, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004040, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004040, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x03E,      0x00004000, 0xA0000000, 0x00000000, 0x03E,      0x00004000,
-	0xB0000000, 0x00000000, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C0006, 0x93011000, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C0006, 0x93001000, 0x00000000, 0x40000000, 0x00000000,
-	0x03F,      0x000C3186, 0xA0000000, 0x00000000, 0x03F,      0x000C3186,
-	0xB0000000, 0x00000000, 0x033,      0x00000006, 0x03E,      0x00004080,
-	0x03F,      0x000C3186, 0x033,      0x00000005, 0x03E,      0x000040C8,
-	0x03F,      0x000C3186, 0x033,      0x00000004, 0x03E,      0x00004190,
-	0x03F,      0x000C3186, 0x033,      0x00000003, 0x03E,      0x00004998,
-	0x03F,      0x000C3186, 0x033,      0x00000002, 0x03E,      0x00005840,
-	0x03F,      0x000C3186, 0x033,      0x00000001, 0x03E,      0x000058C2,
-	0x03F,      0x000C3186, 0x033,      0x00000000, 0x03E,      0x00005930,
-	0x03F,      0x000C3186, 0x033,      0x0000000F, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x00004080, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03E,      0x00004080, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004040, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x03E,      0x00004000, 0xA0000000, 0x00000000,
-	0x03E,      0x00004000, 0xB0000000, 0x00000000, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C0006, 0x93001000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x000C3186, 0xA0000000, 0x00000000,
-	0x03F,      0x000C3186, 0xB0000000, 0x00000000, 0x033,      0x0000000E,
-	0x03E,      0x00004080, 0x03F,      0x000C3186, 0x033,      0x0000000D,
-	0x03E,      0x000040C8, 0x03F,      0x000C3186, 0x033,      0x0000000C,
-	0x03E,      0x00004190, 0x03F,      0x000C3186, 0x033,      0x0000000B,
-	0x03E,      0x00004998, 0x03F,      0x000C3186, 0x033,      0x0000000A,
-	0x03E,      0x00005840, 0x03F,      0x000C3186, 0x033,      0x00000009,
-	0x03E,      0x000058C2, 0x03F,      0x000C3186, 0x033,      0x00000008,
-	0x03E,      0x00005930, 0x03F,      0x000C3186, 0x033,      0x00000017,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x00004080,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x03E,      0x00004080,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x9300200c, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004000,
-	0x93002100, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004000,
-	0x93011000, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004000,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004040,
-	0x93002000, 0x00000000, 0x40000000, 0x00000000, 0x03E,      0x00004000,
-	0xA0000000, 0x00000000, 0x03E,      0x00004000, 0xB0000000, 0x00000000,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9300200c, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x93002100, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000DFF86,
-	0x93011000, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0x93002000, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C0006,
-	0x93001000, 0x00000000, 0x40000000, 0x00000000, 0x03F,      0x000C3186,
-	0xA0000000, 0x00000000, 0x03F,      0x000C3186, 0xB0000000, 0x00000000,
-	0x033,      0x00000016, 0x03E,      0x00004080, 0x03F,      0x000C3186,
-	0x033,      0x00000015, 0x03E,      0x000040C8, 0x03F,      0x000C3186,
-	0x033,      0x00000014, 0x03E,      0x00004190, 0x03F,      0x000C3186,
-	0x033,      0x00000013, 0x03E,      0x00004998, 0x03F,      0x000C3186,
-	0x033,      0x00000012, 0x03E,      0x00005840, 0x03F,      0x000C3186,
-	0x033,      0x00000011, 0x03E,      0x000058C2, 0x03F,      0x000C3186,
-	0x033,      0x00000010, 0x03E,      0x00005930, 0x03F,      0x000C3186,
-	0x0EF,      0x00000000, 0x0EF,      0x00004000, 0x033,      0x00000000,
-	0x03F,      0x0000000A, 0x033,      0x00000001, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000002, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000005, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x93001000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000005, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x03F,      0x00000000, 0xA0000000, 0x00000000,
-	0x03F,      0x00000005, 0xB0000000, 0x00000000, 0x033,      0x00000002,
-	0x03F,      0x00000000, 0x0EF,      0x00000000, 0x018,      0x00000401,
-	0x084,      0x00001209, 0x086,      0x000001A0, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x087,      0x00068080, 0xA0000000, 0x00000000,
-	0x087,      0x000E8180, 0xB0000000, 0x00000000, 0x088,      0x00070020,
-	0x0DE,      0x00000010, 0x0EF,      0x00008000, 0x033,      0x0000000F,
-	0x03F,      0x0000003C, 0x033,      0x0000000E, 0x03F,      0x00000038,
-	0x033,      0x0000000D, 0x03F,      0x00000030, 0x033,      0x0000000C,
-	0x03F,      0x00000028, 0x033,      0x0000000B, 0x03F,      0x00000020,
-	0x033,      0x0000000A, 0x03F,      0x00000018, 0x033,      0x00000009,
-	0x03F,      0x00000010, 0x033,      0x00000008, 0x03F,      0x00000008,
-	0x033,      0x00000007, 0x03F,      0x0000003C, 0x033,      0x00000006,
-	0x03F,      0x00000038, 0x033,      0x00000005, 0x03F,      0x00000030,
-	0x033,      0x00000004, 0x03F,      0x00000028, 0x033,      0x00000003,
-	0x03F,      0x00000020, 0x033,      0x00000002, 0x03F,      0x00000018,
-	0x033,      0x00000001, 0x03F,      0x00000010, 0x033,      0x00000000,
-	0x03F,      0x00000008, 0x0EF,      0x00000000, 0x018,      0x00018D24,
-	0xFFE,      0x00000000, 0xFFE,      0x00000000, 0xFFE,      0x00000000,
-	0xFFE,      0x00000000, 0x018,      0x00010D24, 0x01B,      0x00075A40,
-	0x0EE,      0x00000002, 0x033,      0x00000000, 0x03F,      0x00000004,
-	0x033,      0x00000001, 0x03F,      0x00000004, 0x033,      0x00000002,
-	0x03F,      0x00000004, 0x033,      0x00000003, 0x03F,      0x00000004,
-	0x033,      0x00000004, 0x03F,      0x00000004, 0x033,      0x00000005,
-	0x03F,      0x00000006, 0x033,      0x00000006, 0x03F,      0x00000002,
-	0x033,      0x00000007, 0x03F,      0x00000000, 0x0EE,      0x00000000,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x061,      0x0005D4A0,
-	0x062,      0x0000D203, 0x063,      0x00000062, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x061,      0x0005D4A0, 0x062,      0x0000D203,
-	0x063,      0x00000062, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D4A0, 0x062,      0x0000D203, 0x063,      0x00000062,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x061,      0x0005D2A1,
-	0x062,      0x0000D3A2, 0x063,      0x00000062, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x061,      0x0005D4A0, 0x062,      0x0000D203,
-	0x063,      0x00000062, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x061,      0x0005D4A0, 0x062,      0x0000D203, 0x063,      0x00000062,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x061,      0x0005D4A0,
-	0x062,      0x0000D203, 0x063,      0x00000062, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x061,      0x0005D2A1, 0x062,      0x0000D3A2,
-	0x063,      0x00000062, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D2A1, 0x062,      0x0000D3A2, 0x063,      0x00000062,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x061,      0x0005D2A1,
-	0x062,      0x0000D3A2, 0x063,      0x00000002, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x061,      0x0005D2A1, 0x062,      0x0000D3A2,
-	0x063,      0x00000002, 0x93011000, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D3D1, 0x062,      0x0000D3A2, 0x063,      0x00000002,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x061,      0x0005D2A1,
-	0x062,      0x0000D3A2, 0x063,      0x00000062, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x061,      0x0005D3D1, 0x062,      0x0000D3A2,
-	0x063,      0x00000002, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D2A1, 0x062,      0x0000D3A2, 0x063,      0x00000002,
-	0x93001000, 0x00000000, 0x40000000, 0x00000000, 0x061,      0x0005D3D1,
-	0x062,      0x0000D3A2, 0x063,      0x00000002, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x061,      0x0005D2A1, 0x062,      0x0000D3A2,
-	0x063,      0x00000002, 0x90002000, 0x00000000, 0x40000000, 0x00000000,
-	0x061,      0x0005D2A1, 0x062,      0x0000D3A2, 0x063,      0x00000002,
-	0xA0000000, 0x00000000, 0x061,      0x0005D3D0, 0x062,      0x0000D303,
-	0x063,      0x00000002, 0xB0000000, 0x00000000, 0x0EF,      0x00000200,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x030,      0x000004A3,
-	0x030,      0x000014A3, 0x030,      0x000024A3, 0x030,      0x000034A3,
-	0x030,      0x000044A3, 0x030,      0x000054A3, 0x030,      0x000064A3,
-	0x030,      0x000074A3, 0x030,      0x000084A3, 0x030,      0x000094A3,
-	0x030,      0x0000A4A3, 0x030,      0x0000B4A3, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x030,      0x000004A3, 0x030,      0x000014A3,
-	0x030,      0x000024A3, 0x030,      0x000034A3, 0x030,      0x000044A3,
-	0x030,      0x000054A3, 0x030,      0x000064A3, 0x030,      0x000074A3,
-	0x030,      0x000084A3, 0x030,      0x000094A3, 0x030,      0x0000A4A3,
-	0x030,      0x0000B4A3, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x000004A3, 0x030,      0x000014A3, 0x030,      0x000024A3,
-	0x030,      0x000034A3, 0x030,      0x000044A3, 0x030,      0x000054A3,
-	0x030,      0x000064A3, 0x030,      0x000074A3, 0x030,      0x000084A3,
-	0x030,      0x000094A3, 0x030,      0x0000A4A3, 0x030,      0x0000B4A3,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x000002A6,
-	0x030,      0x000012A6, 0x030,      0x000022A6, 0x030,      0x000032A6,
-	0x030,      0x000042A6, 0x030,      0x000052A6, 0x030,      0x000062A6,
-	0x030,      0x000072A6, 0x030,      0x000082A6, 0x030,      0x000092A6,
-	0x030,      0x0000A2A6, 0x030,      0x0000B2A6, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x030,      0x000004A0, 0x030,      0x000014A0,
-	0x030,      0x000024A0, 0x030,      0x000034A0, 0x030,      0x000044A0,
-	0x030,      0x000054A0, 0x030,      0x000064A0, 0x030,      0x000074A0,
-	0x030,      0x000084A0, 0x030,      0x000094A0, 0x030,      0x0000A4A0,
-	0x030,      0x0000B4A0, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x030,      0x000004A0, 0x030,      0x000014A0, 0x030,      0x000024A0,
-	0x030,      0x000034A0, 0x030,      0x000044A0, 0x030,      0x000054A0,
-	0x030,      0x000064A0, 0x030,      0x000074A0, 0x030,      0x000084A0,
-	0x030,      0x000094A0, 0x030,      0x0000A4A0, 0x030,      0x0000B4A0,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x000004A0,
-	0x030,      0x000014A0, 0x030,      0x000024A0, 0x030,      0x000034A0,
-	0x030,      0x000044A0, 0x030,      0x000054A0, 0x030,      0x000064A0,
-	0x030,      0x000074A0, 0x030,      0x000084A0, 0x030,      0x000094A0,
-	0x030,      0x0000A4A0, 0x030,      0x0000B4A0, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x000002A1, 0x030,      0x000012A1,
-	0x030,      0x000022A1, 0x030,      0x000032A1, 0x030,      0x000042A1,
-	0x030,      0x000052A1, 0x030,      0x000062A1, 0x030,      0x000072A1,
-	0x030,      0x000082A1, 0x030,      0x000092A1, 0x030,      0x0000A2A1,
-	0x030,      0x0000B2A1, 0x9300200c, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x000002A6, 0x030,      0x000012A6, 0x030,      0x000022A6,
-	0x030,      0x000032A6, 0x030,      0x000042A6, 0x030,      0x000052A6,
-	0x030,      0x000062A6, 0x030,      0x000072A6, 0x030,      0x000082A6,
-	0x030,      0x000092A6, 0x030,      0x0000A2A6, 0x030,      0x0000B2A6,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x000002F4,
-	0x030,      0x000012F4, 0x030,      0x000022F4, 0x030,      0x000032F4,
-	0x030,      0x00004365, 0x030,      0x00005365, 0x030,      0x00006365,
-	0x030,      0x00007365, 0x030,      0x000082A4, 0x030,      0x000092A4,
-	0x030,      0x0000A2A4, 0x030,      0x0000B2A4, 0x93002100, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x000004A4, 0x030,      0x000014A4,
-	0x030,      0x000024A4, 0x030,      0x000034A4, 0x030,      0x000043A4,
-	0x030,      0x000053A4, 0x030,      0x000063A4, 0x030,      0x000073A4,
-	0x030,      0x000083A5, 0x030,      0x000093A5, 0x030,      0x0000A3A5,
-	0x030,      0x0000B3A5, 0x93011000, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x000003A1, 0x030,      0x000013A1, 0x030,      0x000023A1,
-	0x030,      0x000033A1, 0x030,      0x000043A4, 0x030,      0x000053A4,
-	0x030,      0x000063A4, 0x030,      0x000073A4, 0x030,      0x000083A6,
-	0x030,      0x000093A6, 0x030,      0x0000A3A6, 0x030,      0x0000B3A6,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x000002A1,
-	0x030,      0x000012A1, 0x030,      0x000022A1, 0x030,      0x000032A1,
-	0x030,      0x000042A1, 0x030,      0x000052A1, 0x030,      0x000062A1,
-	0x030,      0x000072A1, 0x030,      0x000082A1, 0x030,      0x000092A1,
-	0x030,      0x0000A2A1, 0x030,      0x0000B2A1, 0x90001004, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x00000382, 0x030,      0x00001382,
-	0x030,      0x00002382, 0x030,      0x00003382, 0x030,      0x00004445,
-	0x030,      0x00005445, 0x030,      0x00006445, 0x030,      0x00007445,
-	0x030,      0x00008425, 0x030,      0x00009425, 0x030,      0x0000A425,
-	0x030,      0x0000B425, 0x93002000, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x00000303, 0x030,      0x00001303, 0x030,      0x00002303,
-	0x030,      0x00003303, 0x030,      0x000043A4, 0x030,      0x000053A4,
-	0x030,      0x000063A4, 0x030,      0x000073A4, 0x030,      0x00008365,
-	0x030,      0x00009365, 0x030,      0x0000A365, 0x030,      0x0000B365,
-	0x93001000, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x000003A1,
-	0x030,      0x000013A1, 0x030,      0x000023A1, 0x030,      0x000033A1,
-	0x030,      0x00004364, 0x030,      0x00005364, 0x030,      0x00006364,
-	0x030,      0x00007364, 0x030,      0x00008564, 0x030,      0x00009564,
-	0x030,      0x0000A564, 0x030,      0x0000B564, 0x90002100, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x000004A1, 0x030,      0x000014A1,
-	0x030,      0x000024A1, 0x030,      0x000034A1, 0x030,      0x000043A1,
-	0x030,      0x000053A1, 0x030,      0x000063A1, 0x030,      0x000073A1,
-	0x030,      0x000083A1, 0x030,      0x000093A1, 0x030,      0x0000A3A1,
-	0x030,      0x0000B3A1, 0x90002000, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x000004A0, 0x030,      0x000014A0, 0x030,      0x000024A0,
-	0x030,      0x000034A0, 0x030,      0x000043A1, 0x030,      0x000053A1,
-	0x030,      0x000063A1, 0x030,      0x000073A1, 0x030,      0x000083A2,
-	0x030,      0x000093A2, 0x030,      0x0000A3A2, 0x030,      0x0000B3A2,
-	0xA0000000, 0x00000000, 0x030,      0x000002D0, 0x030,      0x000012D0,
-	0x030,      0x000022D0, 0x030,      0x000032D0, 0x030,      0x000042D0,
-	0x030,      0x000052D0, 0x030,      0x000062D0, 0x030,      0x000072D0,
-	0x030,      0x000082D0, 0x030,      0x000092D0, 0x030,      0x0000A2D0,
-	0x030,      0x0000B2D0, 0xB0000000, 0x00000000, 0x0EF,      0x00000000,
-	0x0EF,      0x00000080, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x030,      0x00000203, 0x030,      0x00001203, 0x030,      0x00002203,
-	0x030,      0x00003203, 0x030,      0x00004203, 0x030,      0x00005203,
-	0x030,      0x00006203, 0x030,      0x00007203, 0x030,      0x00008203,
-	0x030,      0x00009203, 0x030,      0x0000A203, 0x030,      0x0000B203,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x030,      0x00000203,
-	0x030,      0x00001203, 0x030,      0x00002203, 0x030,      0x00003203,
-	0x030,      0x00004203, 0x030,      0x00005203, 0x030,      0x00006203,
-	0x030,      0x00007203, 0x030,      0x00008203, 0x030,      0x00009203,
-	0x030,      0x0000A203, 0x030,      0x0000B203, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x00000203, 0x030,      0x00001203,
-	0x030,      0x00002203, 0x030,      0x00003203, 0x030,      0x00004203,
-	0x030,      0x00005203, 0x030,      0x00006203, 0x030,      0x00007203,
-	0x030,      0x00008203, 0x030,      0x00009203, 0x030,      0x0000A203,
-	0x030,      0x0000B203, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x000003A2, 0x030,      0x000013A2, 0x030,      0x000023A2,
-	0x030,      0x000033A2, 0x030,      0x000043A2, 0x030,      0x000053A2,
-	0x030,      0x000063A2, 0x030,      0x000073A2, 0x030,      0x000083A2,
-	0x030,      0x000093A2, 0x030,      0x0000A3A2, 0x030,      0x0000B3A2,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x030,      0x00000203,
-	0x030,      0x00001203, 0x030,      0x00002203, 0x030,      0x00003203,
-	0x030,      0x00004203, 0x030,      0x00005203, 0x030,      0x00006203,
-	0x030,      0x00007203, 0x030,      0x00008203, 0x030,      0x00009203,
-	0x030,      0x0000A203, 0x030,      0x0000B203, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x030,      0x00000203, 0x030,      0x00001203,
-	0x030,      0x00002203, 0x030,      0x00003203, 0x030,      0x00004203,
-	0x030,      0x00005203, 0x030,      0x00006203, 0x030,      0x00007203,
-	0x030,      0x00008203, 0x030,      0x00009203, 0x030,      0x0000A203,
-	0x030,      0x0000B203, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x00000203, 0x030,      0x00001203, 0x030,      0x00002203,
-	0x030,      0x00003203, 0x030,      0x00004203, 0x030,      0x00005203,
-	0x030,      0x00006203, 0x030,      0x00007203, 0x030,      0x00008203,
-	0x030,      0x00009203, 0x030,      0x0000A203, 0x030,      0x0000B203,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x000003A2,
-	0x030,      0x000013A2, 0x030,      0x000023A2, 0x030,      0x000033A2,
-	0x030,      0x000043A2, 0x030,      0x000053A2, 0x030,      0x000063A2,
-	0x030,      0x000073A2, 0x030,      0x000083A2, 0x030,      0x000093A2,
-	0x030,      0x0000A3A2, 0x030,      0x0000B3A2, 0x9300200c, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x93012100, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x000003A3, 0x030,      0x000013A3, 0x030,      0x000023A3,
-	0x030,      0x000033A3, 0x030,      0x000043A4, 0x030,      0x000053A4,
-	0x030,      0x000063A4, 0x030,      0x000073A4, 0x030,      0x000083A3,
-	0x030,      0x000093A3, 0x030,      0x0000A3A3, 0x030,      0x0000B3A3,
-	0x93002100, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x000003A2,
-	0x030,      0x000013A2, 0x030,      0x000023A2, 0x030,      0x000033A2,
-	0x030,      0x000043A2, 0x030,      0x000053A2, 0x030,      0x000063A2,
-	0x030,      0x000073A2, 0x030,      0x000083A2, 0x030,      0x000093A2,
-	0x030,      0x0000A3A2, 0x030,      0x0000B3A2, 0x93011000, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x9000200c, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x000003A2, 0x030,      0x000013A2, 0x030,      0x000023A2,
-	0x030,      0x000033A2, 0x030,      0x000043A2, 0x030,      0x000053A2,
-	0x030,      0x000063A2, 0x030,      0x000073A2, 0x030,      0x000083A2,
-	0x030,      0x000093A2, 0x030,      0x0000A3A2, 0x030,      0x0000B3A2,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x000003A2,
-	0x030,      0x000013A2, 0x030,      0x000023A2, 0x030,      0x000033A2,
-	0x030,      0x000043A2, 0x030,      0x000053A2, 0x030,      0x000063A2,
-	0x030,      0x000073A2, 0x030,      0x000083A2, 0x030,      0x000093A2,
-	0x030,      0x0000A3A2, 0x030,      0x0000B3A2, 0x93002000, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0x93001000, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x000003A2, 0x030,      0x000013A2, 0x030,      0x000023A2,
-	0x030,      0x000033A2, 0x030,      0x000043A2, 0x030,      0x000053A2,
-	0x030,      0x000063A2, 0x030,      0x000073A2, 0x030,      0x000083A2,
-	0x030,      0x000093A2, 0x030,      0x0000A3A2, 0x030,      0x0000B3A2,
-	0x90002100, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x000003A2,
-	0x030,      0x000013A2, 0x030,      0x000023A2, 0x030,      0x000033A2,
-	0x030,      0x000043A2, 0x030,      0x000053A2, 0x030,      0x000063A2,
-	0x030,      0x000073A2, 0x030,      0x000083A2, 0x030,      0x000093A2,
-	0x030,      0x0000A3A2, 0x030,      0x0000B3A2, 0x90002000, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x000003A2, 0x030,      0x000013A2,
-	0x030,      0x000023A2, 0x030,      0x000033A2, 0x030,      0x000043A2,
-	0x030,      0x000053A2, 0x030,      0x000063A2, 0x030,      0x000073A2,
-	0x030,      0x000083A2, 0x030,      0x000093A2, 0x030,      0x0000A3A2,
-	0x030,      0x0000B3A2, 0xA0000000, 0x00000000, 0x030,      0x000003A2,
-	0x030,      0x000013A2, 0x030,      0x000023A2, 0x030,      0x000033A2,
-	0x030,      0x000043A2, 0x030,      0x000053A2, 0x030,      0x000063A2,
-	0x030,      0x000073A2, 0x030,      0x000083A2, 0x030,      0x000093A2,
-	0x030,      0x0000A3A2, 0x030,      0x0000B3A2, 0xB0000000, 0x00000000,
-	0x0EF,      0x00000000, 0x0EF,      0x00000040, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x030,      0x00000645, 0x030,      0x00001333,
-	0x030,      0x00002011, 0x030,      0x00004000, 0x030,      0x00005000,
-	0x030,      0x00006000, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x030,      0x00000645, 0x030,      0x00001333, 0x030,      0x00002011,
-	0x030,      0x00004000, 0x030,      0x00005000, 0x030,      0x00006000,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x00000645, 0x030,      0x00001333,
-	0x030,      0x00002011, 0x030,      0x00004777, 0x030,      0x00005777,
-	0x030,      0x00006777, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x030,      0x00000645, 0x030,      0x00001333, 0x030,      0x00002011,
-	0x030,      0x00004000, 0x030,      0x00005000, 0x030,      0x00006000,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x00000645, 0x030,      0x00001333,
-	0x030,      0x00002011, 0x030,      0x00004000, 0x030,      0x00005000,
-	0x030,      0x00006000, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x00000645, 0x030,      0x00001333, 0x030,      0x00002011,
-	0x030,      0x00004000, 0x030,      0x00005000, 0x030,      0x00006000,
-	0x9300200c, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x00000645,
-	0x030,      0x00001333, 0x030,      0x00002011, 0x030,      0x00004777,
-	0x030,      0x00005777, 0x030,      0x00006777, 0x93012100, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x00000660, 0x030,      0x00001341,
-	0x030,      0x00002220, 0x030,      0x00004777, 0x030,      0x00005777,
-	0x030,      0x00006777, 0x93002100, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x00000764, 0x030,      0x00001452, 0x030,      0x00002220,
-	0x030,      0x00004777, 0x030,      0x00005777, 0x030,      0x00006777,
-	0x93011000, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x00000764,
-	0x030,      0x00001632, 0x030,      0x00002421, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0x9000200c, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x00000645, 0x030,      0x00001333,
-	0x030,      0x00002011, 0x030,      0x00004000, 0x030,      0x00005000,
-	0x030,      0x00006000, 0x90001004, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x00000764, 0x030,      0x00001632, 0x030,      0x00002421,
-	0x030,      0x00004000, 0x030,      0x00005000, 0x030,      0x00006000,
-	0x93002000, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x00000777,
-	0x030,      0x00001442, 0x030,      0x00002222, 0x030,      0x00004777,
-	0x030,      0x00005777, 0x030,      0x00006777, 0x93001000, 0x00000000,
-	0x40000000, 0x00000000, 0x030,      0x00000764, 0x030,      0x00001632,
-	0x030,      0x00002421, 0x030,      0x00004000, 0x030,      0x00005000,
-	0x030,      0x00006000, 0x90002100, 0x00000000, 0x40000000, 0x00000000,
-	0x030,      0x00000775, 0x030,      0x00001222, 0x030,      0x00002210,
-	0x030,      0x00004000, 0x030,      0x00005000, 0x030,      0x00006000,
-	0x90002000, 0x00000000, 0x40000000, 0x00000000, 0x030,      0x00000775,
-	0x030,      0x00001422, 0x030,      0x00002210, 0x030,      0x00004000,
-	0x030,      0x00005000, 0x030,      0x00006000, 0xA0000000, 0x00000000,
-	0x030,      0x00000764, 0x030,      0x00001632, 0x030,      0x00002421,
-	0x030,      0x00004000, 0x030,      0x00005000, 0x030,      0x00006000,
-	0xB0000000, 0x00000000, 0x0EF,      0x00000000, 0x0EF,      0x00000800,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000007, 0x033,      0x00000021, 0x03F,      0x0000000A,
-	0x033,      0x00000022, 0x03F,      0x0000000D, 0x033,      0x00000023,
-	0x03F,      0x0000002A, 0x033,      0x00000024, 0x03F,      0x0000002D,
-	0x033,      0x00000025, 0x03F,      0x00000030, 0x033,      0x00000026,
-	0x03F,      0x0000006D, 0x033,      0x00000027, 0x03F,      0x00000070,
-	0x033,      0x00000028, 0x03F,      0x000000ED, 0x033,      0x00000029,
-	0x03F,      0x000000F0, 0x033,      0x0000002A, 0x03F,      0x000000F3,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000007, 0x033,      0x00000021, 0x03F,      0x0000000A,
-	0x033,      0x00000022, 0x03F,      0x0000000D, 0x033,      0x00000023,
-	0x03F,      0x0000002A, 0x033,      0x00000024, 0x03F,      0x0000002D,
-	0x033,      0x00000025, 0x03F,      0x00000030, 0x033,      0x00000026,
-	0x03F,      0x0000006D, 0x033,      0x00000027, 0x03F,      0x00000070,
-	0x033,      0x00000028, 0x03F,      0x000000ED, 0x033,      0x00000029,
-	0x03F,      0x000000F0, 0x033,      0x0000002A, 0x03F,      0x000000F3,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000007, 0x033,      0x00000021, 0x03F,      0x0000000A,
-	0x033,      0x00000022, 0x03F,      0x0000000D, 0x033,      0x00000023,
-	0x03F,      0x0000002A, 0x033,      0x00000024, 0x03F,      0x0000002D,
-	0x033,      0x00000025, 0x03F,      0x00000030, 0x033,      0x00000026,
-	0x03F,      0x0000006D, 0x033,      0x00000027, 0x03F,      0x00000070,
-	0x033,      0x00000028, 0x03F,      0x000000ED, 0x033,      0x00000029,
-	0x03F,      0x000000F0, 0x033,      0x0000002A, 0x03F,      0x000000F3,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000005, 0x033,      0x00000021, 0x03F,      0x00000008,
-	0x033,      0x00000022, 0x03F,      0x0000000B, 0x033,      0x00000023,
-	0x03F,      0x0000000E, 0x033,      0x00000024, 0x03F,      0x0000002B,
-	0x033,      0x00000025, 0x03F,      0x00000068, 0x033,      0x00000026,
-	0x03F,      0x0000006B, 0x033,      0x00000027, 0x03F,      0x0000006E,
-	0x033,      0x00000028, 0x03F,      0x00000071, 0x033,      0x00000029,
-	0x03F,      0x00000074, 0x033,      0x0000002A, 0x03F,      0x00000077,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000007, 0x033,      0x00000021, 0x03F,      0x0000000A,
-	0x033,      0x00000022, 0x03F,      0x0000000D, 0x033,      0x00000023,
-	0x03F,      0x0000002A, 0x033,      0x00000024, 0x03F,      0x0000002D,
-	0x033,      0x00000025, 0x03F,      0x00000030, 0x033,      0x00000026,
-	0x03F,      0x0000006D, 0x033,      0x00000027, 0x03F,      0x00000070,
-	0x033,      0x00000028, 0x03F,      0x000000ED, 0x033,      0x00000029,
-	0x03F,      0x000000F0, 0x033,      0x0000002A, 0x03F,      0x000000F3,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000007, 0x033,      0x00000021, 0x03F,      0x0000000A,
-	0x033,      0x00000022, 0x03F,      0x0000000D, 0x033,      0x00000023,
-	0x03F,      0x0000002A, 0x033,      0x00000024, 0x03F,      0x0000002D,
-	0x033,      0x00000025, 0x03F,      0x00000030, 0x033,      0x00000026,
-	0x03F,      0x0000006D, 0x033,      0x00000027, 0x03F,      0x00000070,
-	0x033,      0x00000028, 0x03F,      0x000000ED, 0x033,      0x00000029,
-	0x03F,      0x000000F0, 0x033,      0x0000002A, 0x03F,      0x000000F3,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000007, 0x033,      0x00000021, 0x03F,      0x0000000A,
-	0x033,      0x00000022, 0x03F,      0x0000000D, 0x033,      0x00000023,
-	0x03F,      0x0000002A, 0x033,      0x00000024, 0x03F,      0x0000002D,
-	0x033,      0x00000025, 0x03F,      0x00000030, 0x033,      0x00000026,
-	0x03F,      0x0000006D, 0x033,      0x00000027, 0x03F,      0x00000070,
-	0x033,      0x00000028, 0x03F,      0x000000ED, 0x033,      0x00000029,
-	0x03F,      0x000000F0, 0x033,      0x0000002A, 0x03F,      0x000000F3,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000005, 0x033,      0x00000021, 0x03F,      0x00000008,
-	0x033,      0x00000022, 0x03F,      0x0000000B, 0x033,      0x00000023,
-	0x03F,      0x0000000E, 0x033,      0x00000024, 0x03F,      0x0000002B,
-	0x033,      0x00000025, 0x03F,      0x00000068, 0x033,      0x00000026,
-	0x03F,      0x0000006B, 0x033,      0x00000027, 0x03F,      0x0000006E,
-	0x033,      0x00000028, 0x03F,      0x00000071, 0x033,      0x00000029,
-	0x03F,      0x00000074, 0x033,      0x0000002A, 0x03F,      0x00000077,
-	0x9300200c, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000005, 0x033,      0x00000021, 0x03F,      0x00000008,
-	0x033,      0x00000022, 0x03F,      0x0000000B, 0x033,      0x00000023,
-	0x03F,      0x0000000E, 0x033,      0x00000024, 0x03F,      0x0000002B,
-	0x033,      0x00000025, 0x03F,      0x00000068, 0x033,      0x00000026,
-	0x03F,      0x0000006B, 0x033,      0x00000027, 0x03F,      0x0000006E,
-	0x033,      0x00000028, 0x03F,      0x00000071, 0x033,      0x00000029,
-	0x03F,      0x00000074, 0x033,      0x0000002A, 0x03F,      0x00000077,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000828, 0x033,      0x00000021, 0x03F,      0x0000082B,
-	0x033,      0x00000022, 0x03F,      0x00000868, 0x033,      0x00000023,
-	0x03F,      0x00000889, 0x033,      0x00000024, 0x03F,      0x000008AA,
-	0x033,      0x00000025, 0x03F,      0x00000CE8, 0x033,      0x00000026,
-	0x03F,      0x00000CEB, 0x033,      0x00000027, 0x03F,      0x00000CEE,
-	0x033,      0x00000028, 0x03F,      0x00000CF1, 0x033,      0x00000029,
-	0x03F,      0x00000CF4, 0x033,      0x0000002A, 0x03F,      0x00000CF7,
-	0x93002100, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x0000042A, 0x033,      0x00000021, 0x03F,      0x00000829,
-	0x033,      0x00000022, 0x03F,      0x00000848, 0x033,      0x00000023,
-	0x03F,      0x0000084B, 0x033,      0x00000024, 0x03F,      0x00000C4C,
-	0x033,      0x00000025, 0x03F,      0x00000C8B, 0x033,      0x00000026,
-	0x03F,      0x00000CEA, 0x033,      0x00000027, 0x03F,      0x00000CED,
-	0x033,      0x00000028, 0x03F,      0x00000CF0, 0x033,      0x00000029,
-	0x03F,      0x00000CF3, 0x033,      0x0000002A, 0x03F,      0x00000CF6,
-	0x93011000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000C09, 0x033,      0x00000021, 0x03F,      0x00000C0C,
-	0x033,      0x00000022, 0x03F,      0x00000C0F, 0x033,      0x00000023,
-	0x03F,      0x00000C2C, 0x033,      0x00000024, 0x03F,      0x00000C2F,
-	0x033,      0x00000025, 0x03F,      0x00000C8A, 0x033,      0x00000026,
-	0x03F,      0x00000C8D, 0x033,      0x00000027, 0x03F,      0x00000C90,
-	0x033,      0x00000028, 0x03F,      0x00000CD0, 0x033,      0x00000029,
-	0x03F,      0x00000CF2, 0x033,      0x0000002A, 0x03F,      0x00000CF5,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000005, 0x033,      0x00000021, 0x03F,      0x00000008,
-	0x033,      0x00000022, 0x03F,      0x0000000B, 0x033,      0x00000023,
-	0x03F,      0x0000000E, 0x033,      0x00000024, 0x03F,      0x0000002B,
-	0x033,      0x00000025, 0x03F,      0x00000068, 0x033,      0x00000026,
-	0x03F,      0x0000006B, 0x033,      0x00000027, 0x03F,      0x0000006E,
-	0x033,      0x00000028, 0x03F,      0x00000071, 0x033,      0x00000029,
-	0x03F,      0x00000074, 0x033,      0x0000002A, 0x03F,      0x00000077,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000C09, 0x033,      0x00000021, 0x03F,      0x00000C0C,
-	0x033,      0x00000022, 0x03F,      0x00000C0F, 0x033,      0x00000023,
-	0x03F,      0x00000C2C, 0x033,      0x00000024, 0x03F,      0x00000C2F,
-	0x033,      0x00000025, 0x03F,      0x00000C8A, 0x033,      0x00000026,
-	0x03F,      0x00000C8D, 0x033,      0x00000027, 0x03F,      0x00000C90,
-	0x033,      0x00000028, 0x03F,      0x00000CD0, 0x033,      0x00000029,
-	0x03F,      0x00000CF2, 0x033,      0x0000002A, 0x03F,      0x00000CF5,
-	0x93002000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000429, 0x033,      0x00000021, 0x03F,      0x00000828,
-	0x033,      0x00000022, 0x03F,      0x00000847, 0x033,      0x00000023,
-	0x03F,      0x0000084A, 0x033,      0x00000024, 0x03F,      0x00000C4B,
-	0x033,      0x00000025, 0x03F,      0x00000C8A, 0x033,      0x00000026,
-	0x03F,      0x00000CEA, 0x033,      0x00000027, 0x03F,      0x00000CED,
-	0x033,      0x00000028, 0x03F,      0x00000CF0, 0x033,      0x00000029,
-	0x03F,      0x00000CF3, 0x033,      0x0000002A, 0x03F,      0x00000CF6,
-	0x93001000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x00000C09, 0x033,      0x00000021, 0x03F,      0x00000C0C,
-	0x033,      0x00000022, 0x03F,      0x00000C0F, 0x033,      0x00000023,
-	0x03F,      0x00000C2C, 0x033,      0x00000024, 0x03F,      0x00000C2F,
-	0x033,      0x00000025, 0x03F,      0x00000C8A, 0x033,      0x00000026,
-	0x03F,      0x00000C8D, 0x033,      0x00000027, 0x03F,      0x00000C90,
-	0x033,      0x00000028, 0x03F,      0x00000CD0, 0x033,      0x00000029,
-	0x03F,      0x00000CF2, 0x033,      0x0000002A, 0x03F,      0x00000CF5,
-	0x90002100, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x0000042B, 0x033,      0x00000021, 0x03F,      0x0000082A,
-	0x033,      0x00000022, 0x03F,      0x00000849, 0x033,      0x00000023,
-	0x03F,      0x0000084C, 0x033,      0x00000024, 0x03F,      0x00000C4C,
-	0x033,      0x00000025, 0x03F,      0x00000C8A, 0x033,      0x00000026,
-	0x03F,      0x00000C8D, 0x033,      0x00000027, 0x03F,      0x00000CEB,
-	0x033,      0x00000028, 0x03F,      0x00000CEE, 0x033,      0x00000029,
-	0x03F,      0x00000CF1, 0x033,      0x0000002A, 0x03F,      0x00000CF4,
-	0x90002000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000020,
-	0x03F,      0x0000042B, 0x033,      0x00000021, 0x03F,      0x0000082A,
-	0x033,      0x00000022, 0x03F,      0x00000849, 0x033,      0x00000023,
-	0x03F,      0x0000084C, 0x033,      0x00000024, 0x03F,      0x00000C4C,
-	0x033,      0x00000025, 0x03F,      0x00000C8A, 0x033,      0x00000026,
-	0x03F,      0x00000C8D, 0x033,      0x00000027, 0x03F,      0x00000CEB,
-	0x033,      0x00000028, 0x03F,      0x00000CEE, 0x033,      0x00000029,
-	0x03F,      0x00000CF1, 0x033,      0x0000002A, 0x03F,      0x00000CF4,
-	0xA0000000, 0x00000000, 0x033,      0x00000020, 0x03F,      0x00000C09,
-	0x033,      0x00000021, 0x03F,      0x00000C0C, 0x033,      0x00000022,
-	0x03F,      0x00000C0F, 0x033,      0x00000023, 0x03F,      0x00000C2C,
-	0x033,      0x00000024, 0x03F,      0x00000C2F, 0x033,      0x00000025,
-	0x03F,      0x00000C8A, 0x033,      0x00000026, 0x03F,      0x00000C8D,
-	0x033,      0x00000027, 0x03F,      0x00000C90, 0x033,      0x00000028,
-	0x03F,      0x00000CD0, 0x033,      0x00000029, 0x03F,      0x00000CF2,
-	0x033,      0x0000002A, 0x03F,      0x00000CF5, 0xB0000000, 0x00000000,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000007, 0x033,      0x00000061, 0x03F,      0x0000000A,
-	0x033,      0x00000062, 0x03F,      0x0000000D, 0x033,      0x00000063,
-	0x03F,      0x0000002A, 0x033,      0x00000064, 0x03F,      0x0000002D,
-	0x033,      0x00000065, 0x03F,      0x00000030, 0x033,      0x00000066,
-	0x03F,      0x0000006D, 0x033,      0x00000067, 0x03F,      0x00000070,
-	0x033,      0x00000068, 0x03F,      0x000000ED, 0x033,      0x00000069,
-	0x03F,      0x000000F0, 0x033,      0x0000006A, 0x03F,      0x000000F3,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000007, 0x033,      0x00000061, 0x03F,      0x0000000A,
-	0x033,      0x00000062, 0x03F,      0x0000000D, 0x033,      0x00000063,
-	0x03F,      0x0000002A, 0x033,      0x00000064, 0x03F,      0x0000002D,
-	0x033,      0x00000065, 0x03F,      0x00000030, 0x033,      0x00000066,
-	0x03F,      0x0000006D, 0x033,      0x00000067, 0x03F,      0x00000070,
-	0x033,      0x00000068, 0x03F,      0x000000ED, 0x033,      0x00000069,
-	0x03F,      0x000000F0, 0x033,      0x0000006A, 0x03F,      0x000000F3,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000007, 0x033,      0x00000061, 0x03F,      0x0000000A,
-	0x033,      0x00000062, 0x03F,      0x0000000D, 0x033,      0x00000063,
-	0x03F,      0x0000002A, 0x033,      0x00000064, 0x03F,      0x0000002D,
-	0x033,      0x00000065, 0x03F,      0x00000030, 0x033,      0x00000066,
-	0x03F,      0x0000006D, 0x033,      0x00000067, 0x03F,      0x00000070,
-	0x033,      0x00000068, 0x03F,      0x000000ED, 0x033,      0x00000069,
-	0x03F,      0x000000F0, 0x033,      0x0000006A, 0x03F,      0x000000F3,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000005, 0x033,      0x00000061, 0x03F,      0x00000008,
-	0x033,      0x00000062, 0x03F,      0x0000000B, 0x033,      0x00000063,
-	0x03F,      0x0000000E, 0x033,      0x00000064, 0x03F,      0x0000002B,
-	0x033,      0x00000065, 0x03F,      0x00000068, 0x033,      0x00000066,
-	0x03F,      0x0000006B, 0x033,      0x00000067, 0x03F,      0x0000006E,
-	0x033,      0x00000068, 0x03F,      0x00000071, 0x033,      0x00000069,
-	0x03F,      0x00000074, 0x033,      0x0000006A, 0x03F,      0x00000077,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000007, 0x033,      0x00000061, 0x03F,      0x0000000A,
-	0x033,      0x00000062, 0x03F,      0x0000000D, 0x033,      0x00000063,
-	0x03F,      0x0000002A, 0x033,      0x00000064, 0x03F,      0x0000002D,
-	0x033,      0x00000065, 0x03F,      0x00000030, 0x033,      0x00000066,
-	0x03F,      0x0000006D, 0x033,      0x00000067, 0x03F,      0x00000070,
-	0x033,      0x00000068, 0x03F,      0x000000ED, 0x033,      0x00000069,
-	0x03F,      0x000000F0, 0x033,      0x0000006A, 0x03F,      0x000000F3,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000007, 0x033,      0x00000061, 0x03F,      0x0000000A,
-	0x033,      0x00000062, 0x03F,      0x0000000D, 0x033,      0x00000063,
-	0x03F,      0x0000002A, 0x033,      0x00000064, 0x03F,      0x0000002D,
-	0x033,      0x00000065, 0x03F,      0x00000030, 0x033,      0x00000066,
-	0x03F,      0x0000006D, 0x033,      0x00000067, 0x03F,      0x00000070,
-	0x033,      0x00000068, 0x03F,      0x000000ED, 0x033,      0x00000069,
-	0x03F,      0x000000F0, 0x033,      0x0000006A, 0x03F,      0x000000F3,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000007, 0x033,      0x00000061, 0x03F,      0x0000000A,
-	0x033,      0x00000062, 0x03F,      0x0000000D, 0x033,      0x00000063,
-	0x03F,      0x0000002A, 0x033,      0x00000064, 0x03F,      0x0000002D,
-	0x033,      0x00000065, 0x03F,      0x00000030, 0x033,      0x00000066,
-	0x03F,      0x0000006D, 0x033,      0x00000067, 0x03F,      0x00000070,
-	0x033,      0x00000068, 0x03F,      0x000000ED, 0x033,      0x00000069,
-	0x03F,      0x000000F0, 0x033,      0x0000006A, 0x03F,      0x000000F3,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000005, 0x033,      0x00000061, 0x03F,      0x00000008,
-	0x033,      0x00000062, 0x03F,      0x0000000B, 0x033,      0x00000063,
-	0x03F,      0x0000000E, 0x033,      0x00000064, 0x03F,      0x0000002B,
-	0x033,      0x00000065, 0x03F,      0x00000068, 0x033,      0x00000066,
-	0x03F,      0x0000006B, 0x033,      0x00000067, 0x03F,      0x0000006E,
-	0x033,      0x00000068, 0x03F,      0x00000071, 0x033,      0x00000069,
-	0x03F,      0x00000074, 0x033,      0x0000006A, 0x03F,      0x00000077,
-	0x9300200c, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000005, 0x033,      0x00000061, 0x03F,      0x00000008,
-	0x033,      0x00000062, 0x03F,      0x0000000B, 0x033,      0x00000063,
-	0x03F,      0x0000000E, 0x033,      0x00000064, 0x03F,      0x0000002B,
-	0x033,      0x00000065, 0x03F,      0x00000068, 0x033,      0x00000066,
-	0x03F,      0x0000006B, 0x033,      0x00000067, 0x03F,      0x0000006E,
-	0x033,      0x00000068, 0x03F,      0x00000071, 0x033,      0x00000069,
-	0x03F,      0x00000074, 0x033,      0x0000006A, 0x03F,      0x00000077,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000842, 0x033,      0x00000061, 0x03F,      0x00000845,
-	0x033,      0x00000062, 0x03F,      0x00000866, 0x033,      0x00000063,
-	0x03F,      0x000008A6, 0x033,      0x00000064, 0x03F,      0x000008C8,
-	0x033,      0x00000065, 0x03F,      0x00000CE8, 0x033,      0x00000066,
-	0x03F,      0x00000CEB, 0x033,      0x00000067, 0x03F,      0x00000CEE,
-	0x033,      0x00000068, 0x03F,      0x00000CF1, 0x033,      0x00000069,
-	0x03F,      0x00000CF4, 0x033,      0x0000006A, 0x03F,      0x00000CF7,
-	0x93002100, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x0000042A, 0x033,      0x00000061, 0x03F,      0x00000829,
-	0x033,      0x00000062, 0x03F,      0x00000848, 0x033,      0x00000063,
-	0x03F,      0x0000084B, 0x033,      0x00000064, 0x03F,      0x00000C69,
-	0x033,      0x00000065, 0x03F,      0x00000CA9, 0x033,      0x00000066,
-	0x03F,      0x00000CEA, 0x033,      0x00000067, 0x03F,      0x00000CED,
-	0x033,      0x00000068, 0x03F,      0x00000CF0, 0x033,      0x00000069,
-	0x03F,      0x00000CF3, 0x033,      0x0000006A, 0x03F,      0x00000CF6,
-	0x93011000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000C0A, 0x033,      0x00000061, 0x03F,      0x00000C0D,
-	0x033,      0x00000062, 0x03F,      0x00000C2A, 0x033,      0x00000063,
-	0x03F,      0x00000C2D, 0x033,      0x00000064, 0x03F,      0x00000C6A,
-	0x033,      0x00000065, 0x03F,      0x00000CAA, 0x033,      0x00000066,
-	0x03F,      0x00000CAD, 0x033,      0x00000067, 0x03F,      0x00000CB0,
-	0x033,      0x00000068, 0x03F,      0x00000CF1, 0x033,      0x00000069,
-	0x03F,      0x00000CF4, 0x033,      0x0000006A, 0x03F,      0x00000CF7,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000005, 0x033,      0x00000061, 0x03F,      0x00000008,
-	0x033,      0x00000062, 0x03F,      0x0000000B, 0x033,      0x00000063,
-	0x03F,      0x0000000E, 0x033,      0x00000064, 0x03F,      0x0000002B,
-	0x033,      0x00000065, 0x03F,      0x00000068, 0x033,      0x00000066,
-	0x03F,      0x0000006B, 0x033,      0x00000067, 0x03F,      0x0000006E,
-	0x033,      0x00000068, 0x03F,      0x00000071, 0x033,      0x00000069,
-	0x03F,      0x00000074, 0x033,      0x0000006A, 0x03F,      0x00000077,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000C0A, 0x033,      0x00000061, 0x03F,      0x00000C0D,
-	0x033,      0x00000062, 0x03F,      0x00000C2A, 0x033,      0x00000063,
-	0x03F,      0x00000C2D, 0x033,      0x00000064, 0x03F,      0x00000C6A,
-	0x033,      0x00000065, 0x03F,      0x00000CAA, 0x033,      0x00000066,
-	0x03F,      0x00000CAD, 0x033,      0x00000067, 0x03F,      0x00000CB0,
-	0x033,      0x00000068, 0x03F,      0x00000CF1, 0x033,      0x00000069,
-	0x03F,      0x00000CF4, 0x033,      0x0000006A, 0x03F,      0x00000CF7,
-	0x93002000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000429, 0x033,      0x00000061, 0x03F,      0x00000828,
-	0x033,      0x00000062, 0x03F,      0x00000847, 0x033,      0x00000063,
-	0x03F,      0x0000084A, 0x033,      0x00000064, 0x03F,      0x00000C4B,
-	0x033,      0x00000065, 0x03F,      0x00000C8A, 0x033,      0x00000066,
-	0x03F,      0x00000CEA, 0x033,      0x00000067, 0x03F,      0x00000CED,
-	0x033,      0x00000068, 0x03F,      0x00000CF0, 0x033,      0x00000069,
-	0x03F,      0x00000CF3, 0x033,      0x0000006A, 0x03F,      0x00000CF6,
-	0x93001000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x00000C0A, 0x033,      0x00000061, 0x03F,      0x00000C0D,
-	0x033,      0x00000062, 0x03F,      0x00000C2A, 0x033,      0x00000063,
-	0x03F,      0x00000C2D, 0x033,      0x00000064, 0x03F,      0x00000C6A,
-	0x033,      0x00000065, 0x03F,      0x00000CAA, 0x033,      0x00000066,
-	0x03F,      0x00000CAD, 0x033,      0x00000067, 0x03F,      0x00000CB0,
-	0x033,      0x00000068, 0x03F,      0x00000CF1, 0x033,      0x00000069,
-	0x03F,      0x00000CF4, 0x033,      0x0000006A, 0x03F,      0x00000CF7,
-	0x90002100, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x0000042C, 0x033,      0x00000061, 0x03F,      0x0000082B,
-	0x033,      0x00000062, 0x03F,      0x0000084A, 0x033,      0x00000063,
-	0x03F,      0x0000084D, 0x033,      0x00000064, 0x03F,      0x00000C4E,
-	0x033,      0x00000065, 0x03F,      0x00000C8C, 0x033,      0x00000066,
-	0x03F,      0x00000C8F, 0x033,      0x00000067, 0x03F,      0x00000CEC,
-	0x033,      0x00000068, 0x03F,      0x00000CEF, 0x033,      0x00000069,
-	0x03F,      0x00000CF2, 0x033,      0x0000006A, 0x03F,      0x00000CF5,
-	0x90002000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000060,
-	0x03F,      0x0000042C, 0x033,      0x00000061, 0x03F,      0x0000082B,
-	0x033,      0x00000062, 0x03F,      0x0000084A, 0x033,      0x00000063,
-	0x03F,      0x0000084D, 0x033,      0x00000064, 0x03F,      0x00000C4E,
-	0x033,      0x00000065, 0x03F,      0x00000C8C, 0x033,      0x00000066,
-	0x03F,      0x00000C8F, 0x033,      0x00000067, 0x03F,      0x00000CEC,
-	0x033,      0x00000068, 0x03F,      0x00000CEF, 0x033,      0x00000069,
-	0x03F,      0x00000CF2, 0x033,      0x0000006A, 0x03F,      0x00000CF5,
-	0xA0000000, 0x00000000, 0x033,      0x00000060, 0x03F,      0x00000C0A,
-	0x033,      0x00000061, 0x03F,      0x00000C0D, 0x033,      0x00000062,
-	0x03F,      0x00000C2A, 0x033,      0x00000063, 0x03F,      0x00000C2D,
-	0x033,      0x00000064, 0x03F,      0x00000C6A, 0x033,      0x00000065,
-	0x03F,      0x00000CAA, 0x033,      0x00000066, 0x03F,      0x00000CAD,
-	0x033,      0x00000067, 0x03F,      0x00000CB0, 0x033,      0x00000068,
-	0x03F,      0x00000CF1, 0x033,      0x00000069, 0x03F,      0x00000CF4,
-	0x033,      0x0000006A, 0x03F,      0x00000CF7, 0xB0000000, 0x00000000,
-	0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000007, 0x033,      0x000000A1, 0x03F,      0x0000000A,
-	0x033,      0x000000A2, 0x03F,      0x0000000D, 0x033,      0x000000A3,
-	0x03F,      0x0000002A, 0x033,      0x000000A4, 0x03F,      0x0000002D,
-	0x033,      0x000000A5, 0x03F,      0x00000030, 0x033,      0x000000A6,
-	0x03F,      0x0000006D, 0x033,      0x000000A7, 0x03F,      0x00000070,
-	0x033,      0x000000A8, 0x03F,      0x000000ED, 0x033,      0x000000A9,
-	0x03F,      0x000000F0, 0x033,      0x000000AA, 0x03F,      0x000000F3,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000007, 0x033,      0x000000A1, 0x03F,      0x0000000A,
-	0x033,      0x000000A2, 0x03F,      0x0000000D, 0x033,      0x000000A3,
-	0x03F,      0x0000002A, 0x033,      0x000000A4, 0x03F,      0x0000002D,
-	0x033,      0x000000A5, 0x03F,      0x00000030, 0x033,      0x000000A6,
-	0x03F,      0x0000006D, 0x033,      0x000000A7, 0x03F,      0x00000070,
-	0x033,      0x000000A8, 0x03F,      0x000000ED, 0x033,      0x000000A9,
-	0x03F,      0x000000F0, 0x033,      0x000000AA, 0x03F,      0x000000F3,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000007, 0x033,      0x000000A1, 0x03F,      0x0000000A,
-	0x033,      0x000000A2, 0x03F,      0x0000000D, 0x033,      0x000000A3,
-	0x03F,      0x0000002A, 0x033,      0x000000A4, 0x03F,      0x0000002D,
-	0x033,      0x000000A5, 0x03F,      0x00000030, 0x033,      0x000000A6,
-	0x03F,      0x0000006D, 0x033,      0x000000A7, 0x03F,      0x00000070,
-	0x033,      0x000000A8, 0x03F,      0x000000ED, 0x033,      0x000000A9,
-	0x03F,      0x000000F0, 0x033,      0x000000AA, 0x03F,      0x000000F3,
-	0x9300200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000005, 0x033,      0x000000A1, 0x03F,      0x00000008,
-	0x033,      0x000000A2, 0x03F,      0x0000000B, 0x033,      0x000000A3,
-	0x03F,      0x0000000E, 0x033,      0x000000A4, 0x03F,      0x00000047,
-	0x033,      0x000000A5, 0x03F,      0x0000004A, 0x033,      0x000000A6,
-	0x03F,      0x0000004D, 0x033,      0x000000A7, 0x03F,      0x00000050,
-	0x033,      0x000000A8, 0x03F,      0x00000053, 0x033,      0x000000A9,
-	0x03F,      0x00000056, 0x033,      0x000000AA, 0x03F,      0x00000094,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000007, 0x033,      0x000000A1, 0x03F,      0x0000000A,
-	0x033,      0x000000A2, 0x03F,      0x0000000D, 0x033,      0x000000A3,
-	0x03F,      0x0000002A, 0x033,      0x000000A4, 0x03F,      0x0000002D,
-	0x033,      0x000000A5, 0x03F,      0x00000030, 0x033,      0x000000A6,
-	0x03F,      0x0000006D, 0x033,      0x000000A7, 0x03F,      0x00000070,
-	0x033,      0x000000A8, 0x03F,      0x000000ED, 0x033,      0x000000A9,
-	0x03F,      0x000000F0, 0x033,      0x000000AA, 0x03F,      0x000000F3,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000007, 0x033,      0x000000A1, 0x03F,      0x0000000A,
-	0x033,      0x000000A2, 0x03F,      0x0000000D, 0x033,      0x000000A3,
-	0x03F,      0x0000002A, 0x033,      0x000000A4, 0x03F,      0x0000002D,
-	0x033,      0x000000A5, 0x03F,      0x00000030, 0x033,      0x000000A6,
-	0x03F,      0x0000006D, 0x033,      0x000000A7, 0x03F,      0x00000070,
-	0x033,      0x000000A8, 0x03F,      0x000000ED, 0x033,      0x000000A9,
-	0x03F,      0x000000F0, 0x033,      0x000000AA, 0x03F,      0x000000F3,
-	0x9000100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000007, 0x033,      0x000000A1, 0x03F,      0x0000000A,
-	0x033,      0x000000A2, 0x03F,      0x0000000D, 0x033,      0x000000A3,
-	0x03F,      0x0000002A, 0x033,      0x000000A4, 0x03F,      0x0000002D,
-	0x033,      0x000000A5, 0x03F,      0x00000030, 0x033,      0x000000A6,
-	0x03F,      0x0000006D, 0x033,      0x000000A7, 0x03F,      0x00000070,
-	0x033,      0x000000A8, 0x03F,      0x000000ED, 0x033,      0x000000A9,
-	0x03F,      0x000000F0, 0x033,      0x000000AA, 0x03F,      0x000000F3,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000005, 0x033,      0x000000A1, 0x03F,      0x00000008,
-	0x033,      0x000000A2, 0x03F,      0x0000000B, 0x033,      0x000000A3,
-	0x03F,      0x0000000E, 0x033,      0x000000A4, 0x03F,      0x00000047,
-	0x033,      0x000000A5, 0x03F,      0x0000004A, 0x033,      0x000000A6,
-	0x03F,      0x0000004D, 0x033,      0x000000A7, 0x03F,      0x00000050,
-	0x033,      0x000000A8, 0x03F,      0x00000053, 0x033,      0x000000A9,
-	0x03F,      0x00000056, 0x033,      0x000000AA, 0x03F,      0x00000094,
-	0x9300200c, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000005, 0x033,      0x000000A1, 0x03F,      0x00000008,
-	0x033,      0x000000A2, 0x03F,      0x0000000B, 0x033,      0x000000A3,
-	0x03F,      0x0000000E, 0x033,      0x000000A4, 0x03F,      0x00000047,
-	0x033,      0x000000A5, 0x03F,      0x0000004A, 0x033,      0x000000A6,
-	0x03F,      0x0000004D, 0x033,      0x000000A7, 0x03F,      0x00000050,
-	0x033,      0x000000A8, 0x03F,      0x00000053, 0x033,      0x000000A9,
-	0x03F,      0x00000056, 0x033,      0x000000AA, 0x03F,      0x00000094,
-	0x93012100, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000826, 0x033,      0x000000A1, 0x03F,      0x00000829,
-	0x033,      0x000000A2, 0x03F,      0x0000082C, 0x033,      0x000000A3,
-	0x03F,      0x0000082F, 0x033,      0x000000A4, 0x03F,      0x0000086C,
-	0x033,      0x000000A5, 0x03F,      0x00000CE8, 0x033,      0x000000A6,
-	0x03F,      0x00000CEB, 0x033,      0x000000A7, 0x03F,      0x00000CEE,
-	0x033,      0x000000A8, 0x03F,      0x00000CF1, 0x033,      0x000000A9,
-	0x03F,      0x00000CF4, 0x033,      0x000000AA, 0x03F,      0x00000CF7,
-	0x93002100, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x0000042A, 0x033,      0x000000A1, 0x03F,      0x00000829,
-	0x033,      0x000000A2, 0x03F,      0x00000848, 0x033,      0x000000A3,
-	0x03F,      0x0000084B, 0x033,      0x000000A4, 0x03F,      0x00000C4C,
-	0x033,      0x000000A5, 0x03F,      0x00000CA9, 0x033,      0x000000A6,
-	0x03F,      0x00000CEA, 0x033,      0x000000A7, 0x03F,      0x00000CED,
-	0x033,      0x000000A8, 0x03F,      0x00000CF0, 0x033,      0x000000A9,
-	0x03F,      0x00000CF3, 0x033,      0x000000AA, 0x03F,      0x00000CF6,
-	0x93011000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000C09, 0x033,      0x000000A1, 0x03F,      0x00000C0C,
-	0x033,      0x000000A2, 0x03F,      0x00000C0F, 0x033,      0x000000A3,
-	0x03F,      0x00000C2C, 0x033,      0x000000A4, 0x03F,      0x00000C2F,
-	0x033,      0x000000A5, 0x03F,      0x00000C8A, 0x033,      0x000000A6,
-	0x03F,      0x00000C8D, 0x033,      0x000000A7, 0x03F,      0x00000C90,
-	0x033,      0x000000A8, 0x03F,      0x00000CEF, 0x033,      0x000000A9,
-	0x03F,      0x00000CF2, 0x033,      0x000000AA, 0x03F,      0x00000CF5,
-	0x9000200c, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000005, 0x033,      0x000000A1, 0x03F,      0x00000008,
-	0x033,      0x000000A2, 0x03F,      0x0000000B, 0x033,      0x000000A3,
-	0x03F,      0x0000000E, 0x033,      0x000000A4, 0x03F,      0x00000047,
-	0x033,      0x000000A5, 0x03F,      0x0000004A, 0x033,      0x000000A6,
-	0x03F,      0x0000004D, 0x033,      0x000000A7, 0x03F,      0x00000050,
-	0x033,      0x000000A8, 0x03F,      0x00000053, 0x033,      0x000000A9,
-	0x03F,      0x00000056, 0x033,      0x000000AA, 0x03F,      0x00000094,
-	0x90001004, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000C09, 0x033,      0x000000A1, 0x03F,      0x00000C0C,
-	0x033,      0x000000A2, 0x03F,      0x00000C0F, 0x033,      0x000000A3,
-	0x03F,      0x00000C2C, 0x033,      0x000000A4, 0x03F,      0x00000C2F,
-	0x033,      0x000000A5, 0x03F,      0x00000C8A, 0x033,      0x000000A6,
-	0x03F,      0x00000C8D, 0x033,      0x000000A7, 0x03F,      0x00000C90,
-	0x033,      0x000000A8, 0x03F,      0x00000CEF, 0x033,      0x000000A9,
-	0x03F,      0x00000CF2, 0x033,      0x000000AA, 0x03F,      0x00000CF5,
-	0x93002000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000429, 0x033,      0x000000A1, 0x03F,      0x00000828,
-	0x033,      0x000000A2, 0x03F,      0x00000847, 0x033,      0x000000A3,
-	0x03F,      0x0000084A, 0x033,      0x000000A4, 0x03F,      0x00000C4B,
-	0x033,      0x000000A5, 0x03F,      0x00000C8A, 0x033,      0x000000A6,
-	0x03F,      0x00000CEA, 0x033,      0x000000A7, 0x03F,      0x00000CED,
-	0x033,      0x000000A8, 0x03F,      0x00000CF0, 0x033,      0x000000A9,
-	0x03F,      0x00000CF3, 0x033,      0x000000AA, 0x03F,      0x00000CF6,
-	0x93001000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x00000C09, 0x033,      0x000000A1, 0x03F,      0x00000C0C,
-	0x033,      0x000000A2, 0x03F,      0x00000C0F, 0x033,      0x000000A3,
-	0x03F,      0x00000C2C, 0x033,      0x000000A4, 0x03F,      0x00000C2F,
-	0x033,      0x000000A5, 0x03F,      0x00000C8A, 0x033,      0x000000A6,
-	0x03F,      0x00000C8D, 0x033,      0x000000A7, 0x03F,      0x00000C90,
-	0x033,      0x000000A8, 0x03F,      0x00000CEF, 0x033,      0x000000A9,
-	0x03F,      0x00000CF2, 0x033,      0x000000AA, 0x03F,      0x00000CF5,
-	0x90002100, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x0000042A, 0x033,      0x000000A1, 0x03F,      0x00000829,
-	0x033,      0x000000A2, 0x03F,      0x00000848, 0x033,      0x000000A3,
-	0x03F,      0x0000084B, 0x033,      0x000000A4, 0x03F,      0x00000C4C,
-	0x033,      0x000000A5, 0x03F,      0x00000C8A, 0x033,      0x000000A6,
-	0x03F,      0x00000C8D, 0x033,      0x000000A7, 0x03F,      0x00000CEC,
-	0x033,      0x000000A8, 0x03F,      0x00000CEF, 0x033,      0x000000A9,
-	0x03F,      0x00000CF2, 0x033,      0x000000AA, 0x03F,      0x00000CF5,
-	0x90002000, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x000000A0,
-	0x03F,      0x0000042A, 0x033,      0x000000A1, 0x03F,      0x00000829,
-	0x033,      0x000000A2, 0x03F,      0x00000848, 0x033,      0x000000A3,
-	0x03F,      0x0000084B, 0x033,      0x000000A4, 0x03F,      0x00000C4C,
-	0x033,      0x000000A5, 0x03F,      0x00000C8A, 0x033,      0x000000A6,
-	0x03F,      0x00000C8D, 0x033,      0x000000A7, 0x03F,      0x00000CEC,
-	0x033,      0x000000A8, 0x03F,      0x00000CEF, 0x033,      0x000000A9,
-	0x03F,      0x00000CF2, 0x033,      0x000000AA, 0x03F,      0x00000CF5,
-	0xA0000000, 0x00000000, 0x033,      0x000000A0, 0x03F,      0x00000C09,
-	0x033,      0x000000A1, 0x03F,      0x00000C0C, 0x033,      0x000000A2,
-	0x03F,      0x00000C0F, 0x033,      0x000000A3, 0x03F,      0x00000C2C,
-	0x033,      0x000000A4, 0x03F,      0x00000C2F, 0x033,      0x000000A5,
-	0x03F,      0x00000C8A, 0x033,      0x000000A6, 0x03F,      0x00000C8D,
-	0x033,      0x000000A7, 0x03F,      0x00000C90, 0x033,      0x000000A8,
-	0x03F,      0x00000CEF, 0x033,      0x000000A9, 0x03F,      0x00000CF2,
-	0x033,      0x000000AA, 0x03F,      0x00000CF5, 0xB0000000, 0x00000000,
-	0x0EF,      0x00000000, 0x0EF,      0x00000400, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x0000265A,
-	0x033,      0x00000001, 0x03F,      0x0000265A, 0x033,      0x00000002,
-	0x03F,      0x0000265A, 0x033,      0x00000003, 0x03F,      0x0000265A,
-	0x9300100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x0000265A, 0x033,      0x00000001, 0x03F,      0x0000265A,
-	0x033,      0x00000002, 0x03F,      0x0000265A, 0x033,      0x00000003,
-	0x03F,      0x0000265A, 0x9300100f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x0000265A, 0x033,      0x00000001,
-	0x03F,      0x0000265A, 0x033,      0x00000002, 0x03F,      0x0000265A,
-	0x033,      0x00000003, 0x03F,      0x0000265A, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x0000265A,
-	0x033,      0x00000001, 0x03F,      0x0000265A, 0x033,      0x00000002,
-	0x03F,      0x0000265A, 0x033,      0x00000003, 0x03F,      0x0000265A,
-	0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x0000265A, 0x033,      0x00000001, 0x03F,      0x0000265A,
-	0x033,      0x00000002, 0x03F,      0x0000265A, 0x033,      0x00000003,
-	0x03F,      0x0000265A, 0x9000100f, 0x05050505, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x0000265A, 0x033,      0x00000001,
-	0x03F,      0x0000265A, 0x033,      0x00000002, 0x03F,      0x0000265A,
-	0x033,      0x00000003, 0x03F,      0x0000265A, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x0000265A,
-	0x033,      0x00000001, 0x03F,      0x0000265A, 0x033,      0x00000002,
-	0x03F,      0x0000265A, 0x033,      0x00000003, 0x03F,      0x0000265A,
-	0x9000200f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x0000265A, 0x033,      0x00000001, 0x03F,      0x0000265A,
-	0x033,      0x00000002, 0x03F,      0x0000265A, 0x033,      0x00000003,
-	0x03F,      0x0000265A, 0xA0000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x000004BB, 0x033,      0x00000001, 0x03F,      0x000004BB,
-	0x033,      0x00000002, 0x03F,      0x000004BB, 0x033,      0x00000003,
-	0x03F,      0x000004BB, 0xB0000000, 0x00000000, 0x0EF,      0x00000000,
-	0x0EF,      0x00000100, 0x8300100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x00000745, 0x033,      0x00000001,
-	0x03F,      0x00000745, 0x033,      0x00000002, 0x03F,      0x00000745,
-	0x033,      0x00000003, 0x03F,      0x00000745, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000745,
-	0x033,      0x00000001, 0x03F,      0x00000745, 0x033,      0x00000002,
-	0x03F,      0x00000745, 0x033,      0x00000003, 0x03F,      0x00000745,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000745, 0x033,      0x00000001, 0x03F,      0x00000745,
-	0x033,      0x00000002, 0x03F,      0x00000745, 0x033,      0x00000003,
-	0x03F,      0x00000745, 0x9300200f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x00000745, 0x033,      0x00000001,
-	0x03F,      0x00000745, 0x033,      0x00000002, 0x03F,      0x00000745,
-	0x033,      0x00000003, 0x03F,      0x00000745, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000745,
-	0x033,      0x00000001, 0x03F,      0x00000745, 0x033,      0x00000002,
-	0x03F,      0x00000745, 0x033,      0x00000003, 0x03F,      0x00000745,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x033,      0x00000000,
-	0x03F,      0x00000745, 0x033,      0x00000001, 0x03F,      0x00000745,
-	0x033,      0x00000002, 0x03F,      0x00000745, 0x033,      0x00000003,
-	0x03F,      0x00000745, 0x9000100f, 0x00000000, 0x40000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x00000745, 0x033,      0x00000001,
-	0x03F,      0x00000745, 0x033,      0x00000002, 0x03F,      0x00000745,
-	0x033,      0x00000003, 0x03F,      0x00000745, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000745,
-	0x033,      0x00000001, 0x03F,      0x00000745, 0x033,      0x00000002,
-	0x03F,      0x00000745, 0x033,      0x00000003, 0x03F,      0x00000745,
-	0xA0000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000F34,
-	0x033,      0x00000001, 0x03F,      0x00000F34, 0x033,      0x00000002,
-	0x03F,      0x00000F34, 0x033,      0x00000003, 0x03F,      0x00000F34,
-	0xB0000000, 0x00000000, 0x0EF,      0x00000000, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x081,      0x0000F400, 0x087,      0x00016040,
-	0x051,      0x00000808, 0x052,      0x00098002, 0x053,      0x0000FA47,
-	0x054,      0x00058032, 0x056,      0x00051000, 0x057,      0x0000CE0A,
-	0x058,      0x00082030, 0x9300100f, 0x05050505, 0x40000000, 0x00000000,
-	0x081,      0x0000F400, 0x087,      0x00016040, 0x051,      0x00000808,
-	0x052,      0x00098002, 0x053,      0x0000FA47, 0x054,      0x00058032,
-	0x056,      0x00051000, 0x057,      0x0000CE0A, 0x058,      0x00082030,
-	0x9300100f, 0x00000000, 0x40000000, 0x00000000, 0x081,      0x0000F400,
-	0x087,      0x00016040, 0x051,      0x00000808, 0x052,      0x00098002,
-	0x053,      0x0000FA47, 0x054,      0x00058032, 0x056,      0x00051000,
-	0x057,      0x0000CE0A, 0x058,      0x00082030, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x081,      0x0000F400, 0x087,      0x00016040,
-	0x051,      0x00000808, 0x052,      0x00098002, 0x053,      0x0000FA47,
-	0x054,      0x00058032, 0x056,      0x00051000, 0x057,      0x0000CE0A,
-	0x058,      0x00082030, 0x9000100f, 0x0a0a0a0a, 0x40000000, 0x00000000,
-	0x081,      0x0000F400, 0x087,      0x00016040, 0x051,      0x00000808,
-	0x052,      0x00098002, 0x053,      0x0000FA47, 0x054,      0x00058032,
-	0x056,      0x00051000, 0x057,      0x0000CE0A, 0x058,      0x00082030,
-	0x9000100f, 0x05050505, 0x40000000, 0x00000000, 0x081,      0x0000F400,
-	0x087,      0x00016040, 0x051,      0x00000808, 0x052,      0x00098002,
-	0x053,      0x0000FA47, 0x054,      0x00058032, 0x056,      0x00051000,
-	0x057,      0x0000CE0A, 0x058,      0x00082030, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x081,      0x0000F400, 0x087,      0x00016040,
-	0x051,      0x00000808, 0x052,      0x00098002, 0x053,      0x0000FA47,
-	0x054,      0x00058032, 0x056,      0x00051000, 0x057,      0x0000CE0A,
-	0x058,      0x00082030, 0x9000200f, 0x00000000, 0x40000000, 0x00000000,
-	0x081,      0x0000F400, 0x087,      0x00016040, 0x051,      0x00000808,
-	0x052,      0x00098002, 0x053,      0x0000FA47, 0x054,      0x00058032,
-	0x056,      0x00051000, 0x057,      0x0000CE0A, 0x058,      0x00082030,
-	0xA0000000, 0x00000000, 0x081,      0x0000F000, 0x087,      0x00016040,
-	0x051,      0x00000C00, 0x052,      0x0007C241, 0x053,      0x0001C069,
-	0x054,      0x00078032, 0x057,      0x0000CE0A, 0x058,      0x00058750,
-	0xB0000000, 0x00000000, 0x0EF,      0x00000800, 0x8300100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000003,
-	0x033,      0x00000001, 0x03F,      0x00000006, 0x033,      0x00000002,
-	0x03F,      0x00000009, 0x033,      0x00000003, 0x03F,      0x00000026,
-	0x033,      0x00000004, 0x03F,      0x00000029, 0x033,      0x00000005,
-	0x03F,      0x0000002C, 0x033,      0x00000006, 0x03F,      0x0000002F,
-	0x033,      0x00000007, 0x03F,      0x00000033, 0x033,      0x00000008,
-	0x03F,      0x00000036, 0x033,      0x00000009, 0x03F,      0x00000039,
-	0x033,      0x0000000A, 0x03F,      0x0000003C, 0x9300100f, 0x05050505,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000003,
-	0x033,      0x00000001, 0x03F,      0x00000006, 0x033,      0x00000002,
-	0x03F,      0x00000009, 0x033,      0x00000003, 0x03F,      0x00000026,
-	0x033,      0x00000004, 0x03F,      0x00000029, 0x033,      0x00000005,
-	0x03F,      0x0000002C, 0x033,      0x00000006, 0x03F,      0x0000002F,
-	0x033,      0x00000007, 0x03F,      0x00000033, 0x033,      0x00000008,
-	0x03F,      0x00000036, 0x033,      0x00000009, 0x03F,      0x00000039,
-	0x033,      0x0000000A, 0x03F,      0x0000003C, 0x9300100f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000003,
-	0x033,      0x00000001, 0x03F,      0x00000006, 0x033,      0x00000002,
-	0x03F,      0x00000009, 0x033,      0x00000003, 0x03F,      0x00000026,
-	0x033,      0x00000004, 0x03F,      0x00000029, 0x033,      0x00000005,
-	0x03F,      0x0000002C, 0x033,      0x00000006, 0x03F,      0x0000002F,
-	0x033,      0x00000007, 0x03F,      0x00000033, 0x033,      0x00000008,
-	0x03F,      0x00000036, 0x033,      0x00000009, 0x03F,      0x00000039,
-	0x033,      0x0000000A, 0x03F,      0x0000003C, 0x9300200f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000003,
-	0x033,      0x00000001, 0x03F,      0x00000006, 0x033,      0x00000002,
-	0x03F,      0x00000009, 0x033,      0x00000003, 0x03F,      0x00000026,
-	0x033,      0x00000004, 0x03F,      0x00000029, 0x033,      0x00000005,
-	0x03F,      0x0000002C, 0x033,      0x00000006, 0x03F,      0x0000002F,
-	0x033,      0x00000007, 0x03F,      0x00000033, 0x033,      0x00000008,
-	0x03F,      0x00000036, 0x033,      0x00000009, 0x03F,      0x00000039,
-	0x033,      0x0000000A, 0x03F,      0x0000003C, 0x9000100f, 0x0a0a0a0a,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000003,
-	0x033,      0x00000001, 0x03F,      0x00000006, 0x033,      0x00000002,
-	0x03F,      0x00000009, 0x033,      0x00000003, 0x03F,      0x00000026,
-	0x033,      0x00000004, 0x03F,      0x00000029, 0x033,      0x00000005,
-	0x03F,      0x0000002C, 0x033,      0x00000006, 0x03F,      0x0000002F,
-	0x033,      0x00000007, 0x03F,      0x00000033, 0x033,      0x00000008,
-	0x03F,      0x00000036, 0x033,      0x00000009, 0x03F,      0x00000039,
-	0x033,      0x0000000A, 0x03F,      0x0000003C, 0x9000100f, 0x05050505,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000003,
-	0x033,      0x00000001, 0x03F,      0x00000006, 0x033,      0x00000002,
-	0x03F,      0x00000009, 0x033,      0x00000003, 0x03F,      0x00000026,
-	0x033,      0x00000004, 0x03F,      0x00000029, 0x033,      0x00000005,
-	0x03F,      0x0000002C, 0x033,      0x00000006, 0x03F,      0x0000002F,
-	0x033,      0x00000007, 0x03F,      0x00000033, 0x033,      0x00000008,
-	0x03F,      0x00000036, 0x033,      0x00000009, 0x03F,      0x00000039,
-	0x033,      0x0000000A, 0x03F,      0x0000003C, 0x9000100f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000003,
-	0x033,      0x00000001, 0x03F,      0x00000006, 0x033,      0x00000002,
-	0x03F,      0x00000009, 0x033,      0x00000003, 0x03F,      0x00000026,
-	0x033,      0x00000004, 0x03F,      0x00000029, 0x033,      0x00000005,
-	0x03F,      0x0000002C, 0x033,      0x00000006, 0x03F,      0x0000002F,
-	0x033,      0x00000007, 0x03F,      0x00000033, 0x033,      0x00000008,
-	0x03F,      0x00000036, 0x033,      0x00000009, 0x03F,      0x00000039,
-	0x033,      0x0000000A, 0x03F,      0x0000003C, 0x9000200f, 0x00000000,
-	0x40000000, 0x00000000, 0x033,      0x00000000, 0x03F,      0x00000003,
-	0x033,      0x00000001, 0x03F,      0x00000006, 0x033,      0x00000002,
-	0x03F,      0x00000009, 0x033,      0x00000003, 0x03F,      0x00000026,
-	0x033,      0x00000004, 0x03F,      0x00000029, 0x033,      0x00000005,
-	0x03F,      0x0000002C, 0x033,      0x00000006, 0x03F,      0x0000002F,
-	0x033,      0x00000007, 0x03F,      0x00000033, 0x033,      0x00000008,
-	0x03F,      0x00000036, 0x033,      0x00000009, 0x03F,      0x00000039,
-	0x033,      0x0000000A, 0x03F,      0x0000003C, 0xA0000000, 0x00000000,
-	0x033,      0x00000000, 0x03F,      0x0005142C, 0x033,      0x00000001,
-	0x03F,      0x0005142F, 0x033,      0x00000002, 0x03F,      0x00051432,
-	0x033,      0x00000003, 0x03F,      0x00051C87, 0x033,      0x00000004,
-	0x03F,      0x00051C8A, 0x033,      0x00000005, 0x03F,      0x00051C8D,
-	0x033,      0x00000006, 0x03F,      0x00051CEB, 0x033,      0x00000007,
-	0x03F,      0x00051CEE, 0x033,      0x00000008, 0x03F,      0x00051CF1,
-	0x033,      0x00000009, 0x03F,      0x00051CF4, 0x033,      0x0000000A,
-	0x03F,      0x00051CF7, 0xB0000000, 0x00000000, 0x0EF,      0x00000000,
-	0x0EF,      0x00000010, 0x033,      0x00000000, 0x008,      0x0009C060,
-	0x033,      0x00000001, 0x008,      0x0009C060, 0x0EF,      0x00000000,
-	0x033,      0x000000A2, 0x0EF,      0x00080000, 0x03E,      0x0000593F,
-	0x03F,      0x000C0F4F, 0x0EF,      0x00000000, 0x033,      0x000000A3,
-	0x0EF,      0x00080000, 0x03E,      0x00005934, 0x03F,      0x0005AFCF,
-	0x0EF,      0x00000000,
-
-};
-
-void odm_read_and_config_mp_8822b_radiob(struct phy_dm_struct *dm)
-{
-	u32 i = 0;
-	u8 c_cond;
-	bool is_matched = true, is_skipped = false;
-	u32 *array = array_mp_8822b_radiob;
-
-	u32 v1 = 0, v2 = 0, pre_v1 = 0, pre_v2 = 0;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===> %s\n", __func__);
-
-	for (; (i + 1) < ARRAY_SIZE(array_mp_8822b_radiob); i = i + 2) {
-		v1 = array[i];
-		v2 = array[i + 1];
-
-		if (v1 & BIT(31)) { /* positive condition*/
-			c_cond = (u8)((v1 & (BIT(29) | BIT(28))) >> 28);
-			if (c_cond == COND_ENDIF) { /*end*/
-				is_matched = true;
-				is_skipped = false;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ENDIF\n");
-			} else if (c_cond == COND_ELSE) { /*else*/
-				is_matched = is_skipped ? false : true;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT, "ELSE\n");
-			} else { /*if , else if*/
-				pre_v1 = v1;
-				pre_v2 = v2;
-				ODM_RT_TRACE(dm, ODM_COMP_INIT,
-					     "IF or ELSE IF\n");
-			}
-		} else if (v1 & BIT(30)) { /*negative condition*/
-			if (is_skipped) {
-				is_matched = false;
-				continue;
-			}
-
-			if (check_positive(dm, pre_v1, pre_v2, v1, v2)) {
-				is_matched = true;
-				is_skipped = true;
-			} else {
-				is_matched = false;
-				is_skipped = false;
-			}
-		} else if (is_matched) {
-			odm_config_rf_radio_b_8822b(dm, v1, v2);
-		}
-	}
-}
-
-u32 odm_get_version_mp_8822b_radiob(void) { return 67; }
-
-/******************************************************************************
- *                           txpowertrack.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_8822b[][DELTA_SWINGIDX_SIZE] = {
-	{0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 10,
-	 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 15, 15, 15},
-	{0, 1,  1,  2,  2,  3,  3,  4,  5,  5,  6,  7,  7,  8,  8,
-	 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
-	{0, 1,  2,  2,  3,  3,  4,  4,  5,  6,  6,  7,  7,  8,  9,
-	 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_8822b[][DELTA_SWINGIDX_SIZE] = {
-	{0,  1,  2,  2,  3,  4,  5,  6,  7,  8,  8,  9,  10, 11, 11,
-	 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 19, 19, 19, 19, 19},
-	{0,  1,  2,  2,  3,  4,  5,  6,  6,  7,  8,  8,  9,  9,  10,
-	 11, 12, 12, 13, 14, 15, 16, 17, 17, 18, 18, 18, 18, 18, 18},
-	{0,  1,  2,  2,  3,  4,  5,  5,  6,  6,  7,  8,  8,  9,  10,
-	 10, 11, 12, 13, 14, 15, 15, 16, 16, 17, 17, 17, 17, 17, 17},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_8822b[][DELTA_SWINGIDX_SIZE] = {
-	{0,  1,  2,  2,  3,  3,  4,  5,  6,  7,  8,  8,  9,  9,  10,
-	 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 15, 15, 15},
-	{0,  1,  2,  2,  3,  4,  5,  5,  6,  6,  7,  7,  8,  8,  9,
-	 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
-	{0, 1,  2,  2,  3,  4,  4,  5,  6,  6,  7,  7,  8,  8,  9,
-	 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_8822b[][DELTA_SWINGIDX_SIZE] = {
-	{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-	 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 20, 20, 20, 20},
-	{0,  1,  2,  2,  3,  4,  4,  5,  6,  6,  7,  7,  8,  9,  9,
-	 10, 11, 11, 12, 13, 14, 15, 16, 16, 17, 17, 18, 18, 18, 18},
-	{0,  1,  2,  3,  3,  4,  5,  5,  6,  6,  7,  8,  8,  9,  10,
-	 11, 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 18, 18, 18, 18},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  7,  8,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-void odm_read_and_config_mp_8822b_txpowertrack(struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-			delta_swing_index_mp_2g_cck_a_p_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-			delta_swing_index_mp_2g_cck_a_n_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-			delta_swing_index_mp_2g_cck_b_p_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-			delta_swing_index_mp_2g_cck_b_n_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpowertrack_type0.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_type0_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  7,  7,  8,  8,
-		 9, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_type0_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 10, 10, 11, 12, 13, 14, 14, 15, 15, 15, 16, 16},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_type0_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14},
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_type0_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 12, 13, 13, 14, 14, 15, 15, 15},
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 15},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_type0_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_type0_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  7,  8,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_type0_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_type0_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type0_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type0_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type0_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type0_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-void odm_read_and_config_mp_8822b_txpowertrack_type0(struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-			delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-			delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-			delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-			delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_type0_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpowertrack_type1.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_type1_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 10,
-		 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 15, 15, 15},
-		{0, 1,  1,  2,  2,  3,  3,  4,  5,  5,  6,  7,  7,  8,  8,
-		 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
-		{0, 1,  2,  2,  3,  3,  4,  4,  5,  6,  6,  7,  7,  8,  9,
-		 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_type1_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  6,  7,  8,  8,  9,  10, 11, 11,
-		 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 19, 19, 19, 19, 19},
-		{0,  1,  2,  2,  3,  4,  5,  6,  6,  7,  8,  8,  9,  9,  10,
-		 11, 12, 12, 13, 14, 15, 16, 17, 17, 18, 18, 18, 18, 18, 18},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  6,  7,  8,  8,  9,  10,
-		 10, 11, 12, 13, 14, 15, 15, 16, 16, 17, 17, 17, 17, 17, 17},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_type1_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  3,  4,  5,  6,  7,  8,  8,  9,  9,  10,
-		 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 15, 15, 15},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  6,  7,  7,  8,  8,  9,
-		 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
-		{0, 1,  2,  2,  3,  4,  4,  5,  6,  6,  7,  7,  8,  8,  9,
-		 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_type1_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 20, 20, 20, 20},
-		{0,  1,  2,  2,  3,  4,  4,  5,  6,  6,  7,  7,  8,  9,  9,
-		 10, 11, 11, 12, 13, 14, 15, 16, 16, 17, 17, 18, 18, 18, 18},
-		{0,  1,  2,  3,  3,  4,  5,  5,  6,  6,  7,  8,  8,  9,  10,
-		 11, 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 18, 18, 18, 18},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_type1_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_type1_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  7,  8,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_type1_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_type1_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type1_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type1_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type1_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type1_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-void odm_read_and_config_mp_8822b_txpowertrack_type1(struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-			delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-			delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-			delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-			delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_type1_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpowertrack_type2.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_type2_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_type2_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_type2_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_type2_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_type2_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_type2_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_type2_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_type2_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type2_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type2_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type2_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type2_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-void odm_read_and_config_mp_8822b_txpowertrack_type2(struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-			delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-			delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-			delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-			delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_type2_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpowertrack_type3_type5.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_type3_type5_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_type3_type5_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_type3_type5_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_type3_type5_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_type3_type5_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_type3_type5_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_type3_type5_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_type3_type5_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type3_type5_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type3_type5_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type3_type5_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type3_type5_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-void odm_read_and_config_mp_8822b_txpowertrack_type3_type5(
-	struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_type3_type5_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_type3_type5_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_type3_type5_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_type3_type5_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(
-		dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-		delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type3_type5_8822b,
-		DELTA_SWINGIDX_SIZE);
-	odm_move_memory(
-		dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-		delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type3_type5_8822b,
-		DELTA_SWINGIDX_SIZE);
-	odm_move_memory(
-		dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-		delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type3_type5_8822b,
-		DELTA_SWINGIDX_SIZE);
-	odm_move_memory(
-		dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-		delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type3_type5_8822b,
-		DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_type3_type5_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_type3_type5_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_type3_type5_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_type3_type5_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpowertrack_type4.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_type4_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_type4_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_type4_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  8,  9,  10, 11,
-		 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_type4_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8,  9,  9,  10, 11,
-		 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_type4_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_type4_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_type4_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_type4_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type4_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type4_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type4_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type4_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-void odm_read_and_config_mp_8822b_txpowertrack_type4(struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-			delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-			delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-			delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-			delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_type4_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpowertrack_type6.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_type6_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 10,
-		 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 15, 15, 15},
-		{0,  1,  2,  3,  4,  5,  5,  6,  7,  7,  8,  9,  9,  10, 10,
-		 11, 12, 12, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16},
-		{0,  1,  2,  3,  4,  4,  5,  5,  6,  7,  8,  9,  10, 11, 12,
-		 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_type6_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  6,  7,  8,  8,  9,  10, 11, 11,
-		 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 19, 19, 19, 19, 19},
-		{0,  1,  2,  2,  3,  4,  5,  6,  7,  8,  9,  9,  11, 11, 12,
-		 13, 14, 15, 16, 17, 18, 19, 20, 20, 21, 21, 21, 21, 21, 21},
-		{0,  1,  2,  3,  4,  5,  6,  6,  7,  7,  8,  9,  10, 11, 12,
-		 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 20, 20, 21, 21, 21},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_type6_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  3,  4,  5,  6,  7,  8,  9,  10, 10, 11,
-		 12, 12, 13, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 17, 17},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  6,  7,  8,  9,  9,  10,
-		 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 15},
-		{0,  1,  2,  2,  3,  4,  4,  5,  6,  6,  7,  8,  9,  9,  10,
-		 11, 12, 12, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_type6_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  6,  7,  8,  9,  10, 10, 11, 12,
-		 13, 14, 15, 15, 16, 17, 18, 19, 20, 20, 21, 21, 21, 21, 21},
-		{0,  1,  2,  2,  3,  4,  4,  5,  7,  7,  8,  9,  10, 11, 11,
-		 12, 13, 13, 14, 15, 16, 17, 18, 18, 19, 19, 20, 20, 21, 21},
-		{0,  1,  2,  3,  3,  4,  5,  5,  6,  7,  8,  9,  10, 11, 12,
-		 13, 14, 14, 15, 16, 17, 17, 18, 19, 19, 20, 20, 20, 20, 20},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_type6_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_type6_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  7,  8,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_type6_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_type6_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type6_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type6_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type6_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type6_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-void odm_read_and_config_mp_8822b_txpowertrack_type6(struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-			delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-			delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-			delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-			delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_type6_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpowertrack_type7.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_type7_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 10,
-		 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 15, 15, 15},
-		{0,  1,  2,  3,  4,  5,  5,  6,  7,  7,  8,  9,  9,  10, 10,
-		 11, 12, 12, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16},
-		{0,  1,  2,  3,  4,  4,  5,  5,  6,  7,  8,  9,  10, 11, 12,
-		 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_type7_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  6,  7,  8,  8,  9,  10, 11, 11,
-		 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 19, 19, 19, 19, 19},
-		{0,  1,  2,  2,  3,  4,  5,  6,  7,  8,  9,  9,  11, 11, 12,
-		 13, 14, 15, 16, 17, 18, 19, 20, 20, 21, 21, 21, 21, 21, 21},
-		{0,  1,  2,  3,  4,  5,  6,  6,  7,  7,  8,  9,  10, 11, 12,
-		 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 20, 20, 21, 21, 21},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_type7_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  3,  4,  5,  6,  7,  8,  9,  10, 10, 11,
-		 12, 12, 13, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 17, 17},
-		{0,  1,  2,  2,  3,  4,  5,  5,  6,  6,  7,  8,  9,  9,  10,
-		 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 15},
-		{0,  1,  2,  2,  3,  4,  4,  5,  6,  6,  7,  8,  9,  9,  10,
-		 11, 12, 12, 13, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_type7_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0,  1,  2,  2,  3,  4,  5,  6,  7,  8,  9,  10, 10, 11, 12,
-		 13, 14, 15, 15, 16, 17, 18, 19, 20, 20, 21, 21, 21, 21, 21},
-		{0,  1,  2,  2,  3,  4,  4,  5,  7,  7,  8,  9,  10, 11, 11,
-		 12, 13, 13, 14, 15, 16, 17, 18, 18, 19, 19, 20, 20, 21, 21},
-		{0,  1,  2,  3,  3,  4,  5,  5,  6,  7,  8,  9,  10, 11, 12,
-		 13, 14, 14, 15, 16, 17, 17, 18, 19, 19, 20, 20, 20, 20, 20},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_type7_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_type7_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  7,  8,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_type7_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_type7_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type7_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type7_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type7_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type7_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-void odm_read_and_config_mp_8822b_txpowertrack_type7(struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-			delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-			delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-			delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-			delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_type7_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpowertrack_type8.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_type8_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_type8_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_type8_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_type8_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  6,  7,  7,  8,
-		 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_type8_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_type8_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_type8_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_type8_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type8_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type8_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type8_8822b[] = {
-	0, 1, 1, 1, 2, 2, 3, 3, 3, 4,  4,  5,  5,  5,  6,
-	6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type8_8822b[] = {
-	0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  7,  7,  8,
-	8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
-
-void odm_read_and_config_mp_8822b_txpowertrack_type8(struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-			delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-			delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-			delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-			delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_type8_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpowertrack_type9.TXT
- ******************************************************************************/
-
-static u8 delta_swing_index_mp_5gb_n_txpwrtrack_type9_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  8,
-		 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14},
-		{0, 1, 1,  2,  2,  3,  3,  4,  5,  5,  6,  7,  7,  8,  8,
-		 9, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15},
-};
-
-static u8 delta_swing_index_mp_5gb_p_txpwrtrack_type9_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 10, 10, 11, 12, 13, 14, 14, 15, 15, 15, 16, 16},
-};
-
-static u8 delta_swing_index_mp_5ga_n_txpwrtrack_type9_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14},
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14},
-};
-
-static u8 delta_swing_index_mp_5ga_p_txpwrtrack_type9_8822b
-	[][DELTA_SWINGIDX_SIZE] = {
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 12, 13, 13, 14, 14, 15, 15, 15},
-		{0, 1, 1, 2, 2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 8, 9, 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15},
-		{0, 1, 1, 2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,
-		 8, 9, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 15},
-};
-
-static u8 delta_swing_index_mp_2gb_n_txpwrtrack_type9_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2gb_p_txpwrtrack_type9_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  7,  8,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2ga_n_txpwrtrack_type9_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2ga_p_txpwrtrack_type9_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type9_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17};
-
-static u8 delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type9_8822b[] = {
-	0,  1,  1,  2,  3,  4,  4,  5,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-static u8 delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type9_8822b[] = {
-	0,  1,  2,  3,  3,  4,  4,  5,  6,  7,  8,  9,  10, 11, 12,
-	13, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18};
-
-static u8 delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type9_8822b[] = {
-	0,  1,  2,  3,  3,  4,  5,  6,  6,  7,  8,  9,  9,  10, 11,
-	12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 22};
-
-void odm_read_and_config_mp_8822b_txpowertrack_type9(struct phy_dm_struct *dm)
-{
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> ODM_ReadAndConfig_MP_mp_8822b\n");
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_p,
-			delta_swing_index_mp_2ga_p_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2ga_n,
-			delta_swing_index_mp_2ga_n_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_p,
-			delta_swing_index_mp_2gb_p_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2gb_n,
-			delta_swing_index_mp_2gb_n_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_p,
-			delta_swing_index_mp_2g_cck_a_p_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_a_n,
-			delta_swing_index_mp_2g_cck_a_n_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_p,
-			delta_swing_index_mp_2g_cck_b_p_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_2g_cck_b_n,
-			delta_swing_index_mp_2g_cck_b_n_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE);
-
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_p,
-			delta_swing_index_mp_5ga_p_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5ga_n,
-			delta_swing_index_mp_5ga_n_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_p,
-			delta_swing_index_mp_5gb_p_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-	odm_move_memory(dm, cali_info->delta_swing_table_idx_5gb_n,
-			delta_swing_index_mp_5gb_n_txpwrtrack_type9_8822b,
-			DELTA_SWINGIDX_SIZE * 3);
-}
-
-/******************************************************************************
- *                           txpwr_lmt.TXT
- ******************************************************************************/
-
-static const char *const array_mp_8822b_txpwr_lmt[] = {
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "01",   "32",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "01",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "01",   "30",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "02",
-	"32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "02",   "28",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "02",   "30",   "FCC",  "2.4G", "20M",
-	"CCK",  "1T",   "03",   "32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",
-	"03",   "28",   "MKK",  "2.4G", "20M",  "CCK",  "1T",   "03",   "30",
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "04",   "32",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "04",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "04",   "30",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "05",
-	"32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "05",   "28",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "05",   "30",   "FCC",  "2.4G", "20M",
-	"CCK",  "1T",   "06",   "32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",
-	"06",   "28",   "MKK",  "2.4G", "20M",  "CCK",  "1T",   "06",   "30",
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "07",   "32",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "07",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "07",   "30",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "08",
-	"32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "08",   "28",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "08",   "30",   "FCC",  "2.4G", "20M",
-	"CCK",  "1T",   "09",   "32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",
-	"09",   "28",   "MKK",  "2.4G", "20M",  "CCK",  "1T",   "09",   "30",
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "10",   "32",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "10",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "10",   "30",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "11",
-	"32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "11",   "28",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "11",   "30",   "FCC",  "2.4G", "20M",
-	"CCK",  "1T",   "12",   "26",   "ETSI", "2.4G", "20M",  "CCK",  "1T",
-	"12",   "28",   "MKK",  "2.4G", "20M",  "CCK",  "1T",   "12",   "30",
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "13",   "20",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "13",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "13",   "28",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "14",
-	"63",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "14",   "63",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "14",   "32",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "01",   "26",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"01",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "01",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "02",   "30",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "02",   "30",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "02",   "34",   "FCC",  "2.4G", "20M",  "OFDM", "1T",   "03",
-	"32",   "ETSI", "2.4G", "20M",  "OFDM", "1T",   "03",   "30",   "MKK",
-	"2.4G", "20M",  "OFDM", "1T",   "03",   "34",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "04",   "34",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"04",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "04",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "05",   "34",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "05",   "30",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "05",   "34",   "FCC",  "2.4G", "20M",  "OFDM", "1T",   "06",
-	"34",   "ETSI", "2.4G", "20M",  "OFDM", "1T",   "06",   "30",   "MKK",
-	"2.4G", "20M",  "OFDM", "1T",   "06",   "34",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "07",   "34",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"07",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "07",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "08",   "34",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "08",   "30",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "08",   "34",   "FCC",  "2.4G", "20M",  "OFDM", "1T",   "09",
-	"32",   "ETSI", "2.4G", "20M",  "OFDM", "1T",   "09",   "30",   "MKK",
-	"2.4G", "20M",  "OFDM", "1T",   "09",   "34",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "10",   "30",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"10",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "10",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "11",   "28",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "11",   "30",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "11",   "34",   "FCC",  "2.4G", "20M",  "OFDM", "1T",   "12",
-	"22",   "ETSI", "2.4G", "20M",  "OFDM", "1T",   "12",   "30",   "MKK",
-	"2.4G", "20M",  "OFDM", "1T",   "12",   "34",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "13",   "14",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"13",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "13",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "14",   "63",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "14",   "63",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "14",   "63",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "01",
-	"26",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "01",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "01",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "02",   "30",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"02",   "30",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "02",   "34",
-	"FCC",  "2.4G", "20M",  "HT",   "1T",   "03",   "32",   "ETSI", "2.4G",
-	"20M",  "HT",   "1T",   "03",   "30",   "MKK",  "2.4G", "20M",  "HT",
-	"1T",   "03",   "34",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "04",
-	"34",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "04",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "04",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "05",   "34",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"05",   "30",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "05",   "34",
-	"FCC",  "2.4G", "20M",  "HT",   "1T",   "06",   "34",   "ETSI", "2.4G",
-	"20M",  "HT",   "1T",   "06",   "30",   "MKK",  "2.4G", "20M",  "HT",
-	"1T",   "06",   "34",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "07",
-	"34",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "07",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "07",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "08",   "34",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"08",   "30",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "08",   "34",
-	"FCC",  "2.4G", "20M",  "HT",   "1T",   "09",   "32",   "ETSI", "2.4G",
-	"20M",  "HT",   "1T",   "09",   "30",   "MKK",  "2.4G", "20M",  "HT",
-	"1T",   "09",   "34",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "10",
-	"30",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "10",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "10",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "11",   "26",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"11",   "30",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "11",   "34",
-	"FCC",  "2.4G", "20M",  "HT",   "1T",   "12",   "20",   "ETSI", "2.4G",
-	"20M",  "HT",   "1T",   "12",   "30",   "MKK",  "2.4G", "20M",  "HT",
-	"1T",   "12",   "34",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "13",
-	"14",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "13",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "13",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "14",   "63",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"14",   "63",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "14",   "63",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "01",   "26",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "01",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "01",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "02",
-	"28",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "02",   "18",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "02",   "30",   "FCC",  "2.4G", "20M",
-	"HT",   "2T",   "03",   "30",   "ETSI", "2.4G", "20M",  "HT",   "2T",
-	"03",   "18",   "MKK",  "2.4G", "20M",  "HT",   "2T",   "03",   "30",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "04",   "30",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "04",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "04",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "05",
-	"32",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "05",   "18",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "05",   "30",   "FCC",  "2.4G", "20M",
-	"HT",   "2T",   "06",   "32",   "ETSI", "2.4G", "20M",  "HT",   "2T",
-	"06",   "18",   "MKK",  "2.4G", "20M",  "HT",   "2T",   "06",   "30",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "07",   "32",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "07",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "07",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "08",
-	"30",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "08",   "18",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "08",   "30",   "FCC",  "2.4G", "20M",
-	"HT",   "2T",   "09",   "30",   "ETSI", "2.4G", "20M",  "HT",   "2T",
-	"09",   "18",   "MKK",  "2.4G", "20M",  "HT",   "2T",   "09",   "30",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "10",   "28",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "10",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "10",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "11",
-	"26",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "11",   "18",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "11",   "30",   "FCC",  "2.4G", "20M",
-	"HT",   "2T",   "12",   "20",   "ETSI", "2.4G", "20M",  "HT",   "2T",
-	"12",   "18",   "MKK",  "2.4G", "20M",  "HT",   "2T",   "12",   "30",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "13",   "14",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "13",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "13",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "14",
-	"63",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "14",   "63",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "14",   "63",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "01",   "63",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"01",   "63",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "01",   "63",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "02",   "63",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "02",   "63",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "02",   "63",   "FCC",  "2.4G", "40M",  "HT",   "1T",   "03",
-	"26",   "ETSI", "2.4G", "40M",  "HT",   "1T",   "03",   "30",   "MKK",
-	"2.4G", "40M",  "HT",   "1T",   "03",   "34",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "04",   "26",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"04",   "30",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "04",   "34",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "05",   "30",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "05",   "30",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "05",   "34",   "FCC",  "2.4G", "40M",  "HT",   "1T",   "06",
-	"32",   "ETSI", "2.4G", "40M",  "HT",   "1T",   "06",   "30",   "MKK",
-	"2.4G", "40M",  "HT",   "1T",   "06",   "34",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "07",   "30",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"07",   "30",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "07",   "34",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "08",   "26",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "08",   "30",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "08",   "34",   "FCC",  "2.4G", "40M",  "HT",   "1T",   "09",
-	"26",   "ETSI", "2.4G", "40M",  "HT",   "1T",   "09",   "30",   "MKK",
-	"2.4G", "40M",  "HT",   "1T",   "09",   "34",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "10",   "20",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"10",   "30",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "10",   "34",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "11",   "14",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "11",   "30",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "11",   "34",   "FCC",  "2.4G", "40M",  "HT",   "1T",   "12",
-	"63",   "ETSI", "2.4G", "40M",  "HT",   "1T",   "12",   "63",   "MKK",
-	"2.4G", "40M",  "HT",   "1T",   "12",   "63",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "13",   "63",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"13",   "63",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "13",   "63",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "14",   "63",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "14",   "63",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "14",   "63",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "01",
-	"63",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "01",   "63",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "01",   "63",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "02",   "63",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"02",   "63",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "02",   "63",
-	"FCC",  "2.4G", "40M",  "HT",   "2T",   "03",   "24",   "ETSI", "2.4G",
-	"40M",  "HT",   "2T",   "03",   "18",   "MKK",  "2.4G", "40M",  "HT",
-	"2T",   "03",   "30",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "04",
-	"24",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "04",   "18",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "04",   "30",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "05",   "26",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"05",   "18",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "05",   "30",
-	"FCC",  "2.4G", "40M",  "HT",   "2T",   "06",   "28",   "ETSI", "2.4G",
-	"40M",  "HT",   "2T",   "06",   "18",   "MKK",  "2.4G", "40M",  "HT",
-	"2T",   "06",   "30",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "07",
-	"26",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "07",   "18",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "07",   "30",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "08",   "26",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"08",   "18",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "08",   "30",
-	"FCC",  "2.4G", "40M",  "HT",   "2T",   "09",   "26",   "ETSI", "2.4G",
-	"40M",  "HT",   "2T",   "09",   "18",   "MKK",  "2.4G", "40M",  "HT",
-	"2T",   "09",   "30",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "10",
-	"20",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "10",   "18",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "10",   "30",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "11",   "14",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"11",   "18",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "11",   "30",
-	"FCC",  "2.4G", "40M",  "HT",   "2T",   "12",   "63",   "ETSI", "2.4G",
-	"40M",  "HT",   "2T",   "12",   "63",   "MKK",  "2.4G", "40M",  "HT",
-	"2T",   "12",   "63",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "13",
-	"63",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "13",   "63",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "13",   "63",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "14",   "63",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"14",   "63",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "14",   "63",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "36",   "30",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "36",   "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "36",   "30",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "40",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "40",   "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "40",   "30",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "44",   "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"44",   "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "44",   "30",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "48",   "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "48",   "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "48",   "30",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "52",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "52",   "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "52",   "28",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "56",   "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"56",   "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "56",   "28",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "60",   "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "60",   "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "60",   "28",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "64",
-	"28",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "64",   "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "64",   "28",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "100",  "26",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"100",  "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "100",  "32",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "104",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "104",  "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "104",  "32",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "108",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "108",  "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "108",  "32",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "112",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"112",  "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "112",  "32",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "116",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "116",  "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "116",  "32",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "120",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "120",  "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "120",  "32",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "124",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"124",  "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "124",  "32",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "128",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "128",  "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "128",  "32",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "132",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "132",  "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "132",  "32",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "136",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"136",  "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "136",  "32",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "140",  "28",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "140",  "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "140",  "32",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "144",
-	"28",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "144",  "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "144",  "63",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "149",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"149",  "63",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "149",  "63",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "153",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "153",  "63",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "153",  "63",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "157",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "157",  "63",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "157",  "63",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "161",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"161",  "63",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "161",  "63",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "165",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "165",  "63",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "165",  "63",   "FCC",  "5G",   "20M",  "HT",   "1T",   "36",
-	"30",   "ETSI", "5G",   "20M",  "HT",   "1T",   "36",   "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "36",   "28",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "40",   "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"40",   "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "40",   "28",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "44",   "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "44",   "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "44",   "28",   "FCC",  "5G",   "20M",  "HT",   "1T",   "48",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "48",   "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "48",   "28",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "52",   "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"52",   "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "52",   "28",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "56",   "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "56",   "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "56",   "28",   "FCC",  "5G",   "20M",  "HT",   "1T",   "60",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "60",   "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "60",   "28",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "64",   "28",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"64",   "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "64",   "28",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "100",  "26",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "100",  "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "100",  "32",   "FCC",  "5G",   "20M",  "HT",   "1T",   "104",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "104",  "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "104",  "32",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "108",  "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"108",  "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "108",  "32",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "112",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "112",  "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "112",  "32",   "FCC",  "5G",   "20M",  "HT",   "1T",   "116",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "116",  "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "116",  "32",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "120",  "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"120",  "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "120",  "32",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "124",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "124",  "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "124",  "32",   "FCC",  "5G",   "20M",  "HT",   "1T",   "128",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "128",  "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "128",  "32",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "132",  "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"132",  "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "132",  "32",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "136",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "136",  "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "136",  "32",   "FCC",  "5G",   "20M",  "HT",   "1T",   "140",
-	"26",   "ETSI", "5G",   "20M",  "HT",   "1T",   "140",  "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "140",  "32",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "144",  "26",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"144",  "63",   "MKK",  "5G",   "20M",  "HT",   "1T",   "144",  "63",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "149",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "149",  "63",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "149",  "63",   "FCC",  "5G",   "20M",  "HT",   "1T",   "153",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "153",  "63",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "153",  "63",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "157",  "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"157",  "63",   "MKK",  "5G",   "20M",  "HT",   "1T",   "157",  "63",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "161",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "161",  "63",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "161",  "63",   "FCC",  "5G",   "20M",  "HT",   "1T",   "165",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "165",  "63",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "165",  "63",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "36",   "28",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"36",   "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "36",   "22",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "40",   "30",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "40",   "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "40",   "22",   "FCC",  "5G",   "20M",  "HT",   "2T",   "44",
-	"30",   "ETSI", "5G",   "20M",  "HT",   "2T",   "44",   "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "44",   "22",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "48",   "30",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"48",   "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "48",   "22",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "52",   "30",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "52",   "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "52",   "22",   "FCC",  "5G",   "20M",  "HT",   "2T",   "56",
-	"30",   "ETSI", "5G",   "20M",  "HT",   "2T",   "56",   "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "56",   "22",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "60",   "30",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"60",   "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "60",   "22",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "64",   "28",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "64",   "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "64",   "22",   "FCC",  "5G",   "20M",  "HT",   "2T",   "100",
-	"26",   "ETSI", "5G",   "20M",  "HT",   "2T",   "100",  "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "100",  "30",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "104",  "30",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"104",  "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "104",  "30",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "108",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "108",  "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "108",  "30",   "FCC",  "5G",   "20M",  "HT",   "2T",   "112",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "2T",   "112",  "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "112",  "30",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "116",  "32",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"116",  "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "116",  "30",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "120",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "120",  "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "120",  "30",   "FCC",  "5G",   "20M",  "HT",   "2T",   "124",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "2T",   "124",  "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "124",  "30",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "128",  "32",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"128",  "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "128",  "30",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "132",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "132",  "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "132",  "30",   "FCC",  "5G",   "20M",  "HT",   "2T",   "136",
-	"30",   "ETSI", "5G",   "20M",  "HT",   "2T",   "136",  "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "136",  "30",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "140",  "26",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"140",  "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "140",  "30",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "144",  "26",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "144",  "63",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "144",  "63",   "FCC",  "5G",   "20M",  "HT",   "2T",   "149",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "2T",   "149",  "63",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "149",  "63",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "153",  "32",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"153",  "63",   "MKK",  "5G",   "20M",  "HT",   "2T",   "153",  "63",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "157",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "157",  "63",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "157",  "63",   "FCC",  "5G",   "20M",  "HT",   "2T",   "161",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "2T",   "161",  "63",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "161",  "63",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "165",  "32",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"165",  "63",   "MKK",  "5G",   "20M",  "HT",   "2T",   "165",  "63",
-	"FCC",  "5G",   "40M",  "HT",   "1T",   "38",   "22",   "ETSI", "5G",
-	"40M",  "HT",   "1T",   "38",   "30",   "MKK",  "5G",   "40M",  "HT",
-	"1T",   "38",   "30",   "FCC",  "5G",   "40M",  "HT",   "1T",   "46",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "1T",   "46",   "30",   "MKK",
-	"5G",   "40M",  "HT",   "1T",   "46",   "30",   "FCC",  "5G",   "40M",
-	"HT",   "1T",   "54",   "30",   "ETSI", "5G",   "40M",  "HT",   "1T",
-	"54",   "30",   "MKK",  "5G",   "40M",  "HT",   "1T",   "54",   "30",
-	"FCC",  "5G",   "40M",  "HT",   "1T",   "62",   "24",   "ETSI", "5G",
-	"40M",  "HT",   "1T",   "62",   "30",   "MKK",  "5G",   "40M",  "HT",
-	"1T",   "62",   "30",   "FCC",  "5G",   "40M",  "HT",   "1T",   "102",
-	"24",   "ETSI", "5G",   "40M",  "HT",   "1T",   "102",  "30",   "MKK",
-	"5G",   "40M",  "HT",   "1T",   "102",  "30",   "FCC",  "5G",   "40M",
-	"HT",   "1T",   "110",  "30",   "ETSI", "5G",   "40M",  "HT",   "1T",
-	"110",  "30",   "MKK",  "5G",   "40M",  "HT",   "1T",   "110",  "30",
-	"FCC",  "5G",   "40M",  "HT",   "1T",   "118",  "30",   "ETSI", "5G",
-	"40M",  "HT",   "1T",   "118",  "30",   "MKK",  "5G",   "40M",  "HT",
-	"1T",   "118",  "30",   "FCC",  "5G",   "40M",  "HT",   "1T",   "126",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "1T",   "126",  "30",   "MKK",
-	"5G",   "40M",  "HT",   "1T",   "126",  "30",   "FCC",  "5G",   "40M",
-	"HT",   "1T",   "134",  "30",   "ETSI", "5G",   "40M",  "HT",   "1T",
-	"134",  "30",   "MKK",  "5G",   "40M",  "HT",   "1T",   "134",  "30",
-	"FCC",  "5G",   "40M",  "HT",   "1T",   "142",  "30",   "ETSI", "5G",
-	"40M",  "HT",   "1T",   "142",  "63",   "MKK",  "5G",   "40M",  "HT",
-	"1T",   "142",  "63",   "FCC",  "5G",   "40M",  "HT",   "1T",   "151",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "1T",   "151",  "63",   "MKK",
-	"5G",   "40M",  "HT",   "1T",   "151",  "63",   "FCC",  "5G",   "40M",
-	"HT",   "1T",   "159",  "30",   "ETSI", "5G",   "40M",  "HT",   "1T",
-	"159",  "63",   "MKK",  "5G",   "40M",  "HT",   "1T",   "159",  "63",
-	"FCC",  "5G",   "40M",  "HT",   "2T",   "38",   "20",   "ETSI", "5G",
-	"40M",  "HT",   "2T",   "38",   "20",   "MKK",  "5G",   "40M",  "HT",
-	"2T",   "38",   "22",   "FCC",  "5G",   "40M",  "HT",   "2T",   "46",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "2T",   "46",   "20",   "MKK",
-	"5G",   "40M",  "HT",   "2T",   "46",   "22",   "FCC",  "5G",   "40M",
-	"HT",   "2T",   "54",   "30",   "ETSI", "5G",   "40M",  "HT",   "2T",
-	"54",   "20",   "MKK",  "5G",   "40M",  "HT",   "2T",   "54",   "22",
-	"FCC",  "5G",   "40M",  "HT",   "2T",   "62",   "22",   "ETSI", "5G",
-	"40M",  "HT",   "2T",   "62",   "20",   "MKK",  "5G",   "40M",  "HT",
-	"2T",   "62",   "22",   "FCC",  "5G",   "40M",  "HT",   "2T",   "102",
-	"22",   "ETSI", "5G",   "40M",  "HT",   "2T",   "102",  "20",   "MKK",
-	"5G",   "40M",  "HT",   "2T",   "102",  "30",   "FCC",  "5G",   "40M",
-	"HT",   "2T",   "110",  "30",   "ETSI", "5G",   "40M",  "HT",   "2T",
-	"110",  "20",   "MKK",  "5G",   "40M",  "HT",   "2T",   "110",  "30",
-	"FCC",  "5G",   "40M",  "HT",   "2T",   "118",  "30",   "ETSI", "5G",
-	"40M",  "HT",   "2T",   "118",  "20",   "MKK",  "5G",   "40M",  "HT",
-	"2T",   "118",  "30",   "FCC",  "5G",   "40M",  "HT",   "2T",   "126",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "2T",   "126",  "20",   "MKK",
-	"5G",   "40M",  "HT",   "2T",   "126",  "30",   "FCC",  "5G",   "40M",
-	"HT",   "2T",   "134",  "30",   "ETSI", "5G",   "40M",  "HT",   "2T",
-	"134",  "20",   "MKK",  "5G",   "40M",  "HT",   "2T",   "134",  "30",
-	"FCC",  "5G",   "40M",  "HT",   "2T",   "142",  "30",   "ETSI", "5G",
-	"40M",  "HT",   "2T",   "142",  "63",   "MKK",  "5G",   "40M",  "HT",
-	"2T",   "142",  "63",   "FCC",  "5G",   "40M",  "HT",   "2T",   "151",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "2T",   "151",  "63",   "MKK",
-	"5G",   "40M",  "HT",   "2T",   "151",  "63",   "FCC",  "5G",   "40M",
-	"HT",   "2T",   "159",  "30",   "ETSI", "5G",   "40M",  "HT",   "2T",
-	"159",  "63",   "MKK",  "5G",   "40M",  "HT",   "2T",   "159",  "63",
-	"FCC",  "5G",   "80M",  "VHT",  "1T",   "42",   "20",   "ETSI", "5G",
-	"80M",  "VHT",  "1T",   "42",   "30",   "MKK",  "5G",   "80M",  "VHT",
-	"1T",   "42",   "28",   "FCC",  "5G",   "80M",  "VHT",  "1T",   "58",
-	"20",   "ETSI", "5G",   "80M",  "VHT",  "1T",   "58",   "30",   "MKK",
-	"5G",   "80M",  "VHT",  "1T",   "58",   "28",   "FCC",  "5G",   "80M",
-	"VHT",  "1T",   "106",  "20",   "ETSI", "5G",   "80M",  "VHT",  "1T",
-	"106",  "30",   "MKK",  "5G",   "80M",  "VHT",  "1T",   "106",  "30",
-	"FCC",  "5G",   "80M",  "VHT",  "1T",   "122",  "30",   "ETSI", "5G",
-	"80M",  "VHT",  "1T",   "122",  "30",   "MKK",  "5G",   "80M",  "VHT",
-	"1T",   "122",  "30",   "FCC",  "5G",   "80M",  "VHT",  "1T",   "138",
-	"30",   "ETSI", "5G",   "80M",  "VHT",  "1T",   "138",  "63",   "MKK",
-	"5G",   "80M",  "VHT",  "1T",   "138",  "63",   "FCC",  "5G",   "80M",
-	"VHT",  "1T",   "155",  "30",   "ETSI", "5G",   "80M",  "VHT",  "1T",
-	"155",  "63",   "MKK",  "5G",   "80M",  "VHT",  "1T",   "155",  "63",
-	"FCC",  "5G",   "80M",  "VHT",  "2T",   "42",   "18",   "ETSI", "5G",
-	"80M",  "VHT",  "2T",   "42",   "20",   "MKK",  "5G",   "80M",  "VHT",
-	"2T",   "42",   "22",   "FCC",  "5G",   "80M",  "VHT",  "2T",   "58",
-	"18",   "ETSI", "5G",   "80M",  "VHT",  "2T",   "58",   "20",   "MKK",
-	"5G",   "80M",  "VHT",  "2T",   "58",   "22",   "FCC",  "5G",   "80M",
-	"VHT",  "2T",   "106",  "20",   "ETSI", "5G",   "80M",  "VHT",  "2T",
-	"106",  "20",   "MKK",  "5G",   "80M",  "VHT",  "2T",   "106",  "30",
-	"FCC",  "5G",   "80M",  "VHT",  "2T",   "122",  "30",   "ETSI", "5G",
-	"80M",  "VHT",  "2T",   "122",  "20",   "MKK",  "5G",   "80M",  "VHT",
-	"2T",   "122",  "30",   "FCC",  "5G",   "80M",  "VHT",  "2T",   "138",
-	"30",   "ETSI", "5G",   "80M",  "VHT",  "2T",   "138",  "63",   "MKK",
-	"5G",   "80M",  "VHT",  "2T",   "138",  "63",   "FCC",  "5G",   "80M",
-	"VHT",  "2T",   "155",  "30",   "ETSI", "5G",   "80M",  "VHT",  "2T",
-	"155",  "63",   "MKK",  "5G",   "80M",  "VHT",  "2T",   "155",  "63"};
-
-void odm_read_and_config_mp_8822b_txpwr_lmt(struct phy_dm_struct *dm)
-{
-	u32 i = 0;
-	u8 **array = (u8 **)array_mp_8822b_txpwr_lmt;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===> %s\n", __func__);
-
-	for (i = 0; i < ARRAY_SIZE(array_mp_8822b_txpwr_lmt); i += 7) {
-		u8 *regulation = array[i];
-		u8 *band = array[i + 1];
-		u8 *bandwidth = array[i + 2];
-		u8 *rate = array[i + 3];
-		u8 *rf_path = array[i + 4];
-		u8 *chnl = array[i + 5];
-		u8 *val = array[i + 6];
-
-		odm_config_bb_txpwr_lmt_8822b(dm, regulation, band, bandwidth,
-					      rate, rf_path, chnl, val);
-	}
-}
-
-/******************************************************************************
-*                           txpwr_lmt_type5.TXT
-******************************************************************************/
-
-static const char *const array_mp_8822b_txpwr_lmt_type5[] = {
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "01",   "32",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "01",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "01",   "30",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "02",
-	"32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "02",   "28",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "02",   "30",   "FCC",  "2.4G", "20M",
-	"CCK",  "1T",   "03",   "32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",
-	"03",   "28",   "MKK",  "2.4G", "20M",  "CCK",  "1T",   "03",   "30",
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "04",   "32",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "04",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "04",   "30",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "05",
-	"32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "05",   "28",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "05",   "30",   "FCC",  "2.4G", "20M",
-	"CCK",  "1T",   "06",   "32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",
-	"06",   "28",   "MKK",  "2.4G", "20M",  "CCK",  "1T",   "06",   "30",
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "07",   "32",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "07",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "07",   "30",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "08",
-	"32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "08",   "28",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "08",   "30",   "FCC",  "2.4G", "20M",
-	"CCK",  "1T",   "09",   "32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",
-	"09",   "28",   "MKK",  "2.4G", "20M",  "CCK",  "1T",   "09",   "30",
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "10",   "32",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "10",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "10",   "30",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "11",
-	"32",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "11",   "28",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "11",   "30",   "FCC",  "2.4G", "20M",
-	"CCK",  "1T",   "12",   "26",   "ETSI", "2.4G", "20M",  "CCK",  "1T",
-	"12",   "28",   "MKK",  "2.4G", "20M",  "CCK",  "1T",   "12",   "30",
-	"FCC",  "2.4G", "20M",  "CCK",  "1T",   "13",   "20",   "ETSI", "2.4G",
-	"20M",  "CCK",  "1T",   "13",   "28",   "MKK",  "2.4G", "20M",  "CCK",
-	"1T",   "13",   "28",   "FCC",  "2.4G", "20M",  "CCK",  "1T",   "14",
-	"63",   "ETSI", "2.4G", "20M",  "CCK",  "1T",   "14",   "63",   "MKK",
-	"2.4G", "20M",  "CCK",  "1T",   "14",   "32",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "01",   "26",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"01",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "01",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "02",   "30",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "02",   "30",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "02",   "34",   "FCC",  "2.4G", "20M",  "OFDM", "1T",   "03",
-	"32",   "ETSI", "2.4G", "20M",  "OFDM", "1T",   "03",   "30",   "MKK",
-	"2.4G", "20M",  "OFDM", "1T",   "03",   "34",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "04",   "34",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"04",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "04",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "05",   "34",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "05",   "30",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "05",   "34",   "FCC",  "2.4G", "20M",  "OFDM", "1T",   "06",
-	"34",   "ETSI", "2.4G", "20M",  "OFDM", "1T",   "06",   "30",   "MKK",
-	"2.4G", "20M",  "OFDM", "1T",   "06",   "34",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "07",   "34",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"07",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "07",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "08",   "34",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "08",   "30",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "08",   "34",   "FCC",  "2.4G", "20M",  "OFDM", "1T",   "09",
-	"32",   "ETSI", "2.4G", "20M",  "OFDM", "1T",   "09",   "30",   "MKK",
-	"2.4G", "20M",  "OFDM", "1T",   "09",   "34",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "10",   "30",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"10",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "10",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "11",   "28",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "11",   "30",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "11",   "34",   "FCC",  "2.4G", "20M",  "OFDM", "1T",   "12",
-	"22",   "ETSI", "2.4G", "20M",  "OFDM", "1T",   "12",   "30",   "MKK",
-	"2.4G", "20M",  "OFDM", "1T",   "12",   "34",   "FCC",  "2.4G", "20M",
-	"OFDM", "1T",   "13",   "14",   "ETSI", "2.4G", "20M",  "OFDM", "1T",
-	"13",   "30",   "MKK",  "2.4G", "20M",  "OFDM", "1T",   "13",   "34",
-	"FCC",  "2.4G", "20M",  "OFDM", "1T",   "14",   "63",   "ETSI", "2.4G",
-	"20M",  "OFDM", "1T",   "14",   "63",   "MKK",  "2.4G", "20M",  "OFDM",
-	"1T",   "14",   "63",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "01",
-	"26",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "01",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "01",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "02",   "30",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"02",   "30",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "02",   "34",
-	"FCC",  "2.4G", "20M",  "HT",   "1T",   "03",   "32",   "ETSI", "2.4G",
-	"20M",  "HT",   "1T",   "03",   "30",   "MKK",  "2.4G", "20M",  "HT",
-	"1T",   "03",   "34",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "04",
-	"34",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "04",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "04",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "05",   "34",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"05",   "30",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "05",   "34",
-	"FCC",  "2.4G", "20M",  "HT",   "1T",   "06",   "34",   "ETSI", "2.4G",
-	"20M",  "HT",   "1T",   "06",   "30",   "MKK",  "2.4G", "20M",  "HT",
-	"1T",   "06",   "34",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "07",
-	"34",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "07",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "07",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "08",   "34",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"08",   "30",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "08",   "34",
-	"FCC",  "2.4G", "20M",  "HT",   "1T",   "09",   "32",   "ETSI", "2.4G",
-	"20M",  "HT",   "1T",   "09",   "30",   "MKK",  "2.4G", "20M",  "HT",
-	"1T",   "09",   "34",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "10",
-	"30",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "10",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "10",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "11",   "26",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"11",   "30",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "11",   "34",
-	"FCC",  "2.4G", "20M",  "HT",   "1T",   "12",   "20",   "ETSI", "2.4G",
-	"20M",  "HT",   "1T",   "12",   "30",   "MKK",  "2.4G", "20M",  "HT",
-	"1T",   "12",   "34",   "FCC",  "2.4G", "20M",  "HT",   "1T",   "13",
-	"14",   "ETSI", "2.4G", "20M",  "HT",   "1T",   "13",   "30",   "MKK",
-	"2.4G", "20M",  "HT",   "1T",   "13",   "34",   "FCC",  "2.4G", "20M",
-	"HT",   "1T",   "14",   "63",   "ETSI", "2.4G", "20M",  "HT",   "1T",
-	"14",   "63",   "MKK",  "2.4G", "20M",  "HT",   "1T",   "14",   "63",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "01",   "26",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "01",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "01",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "02",
-	"28",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "02",   "18",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "02",   "30",   "FCC",  "2.4G", "20M",
-	"HT",   "2T",   "03",   "30",   "ETSI", "2.4G", "20M",  "HT",   "2T",
-	"03",   "18",   "MKK",  "2.4G", "20M",  "HT",   "2T",   "03",   "30",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "04",   "30",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "04",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "04",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "05",
-	"32",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "05",   "18",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "05",   "30",   "FCC",  "2.4G", "20M",
-	"HT",   "2T",   "06",   "32",   "ETSI", "2.4G", "20M",  "HT",   "2T",
-	"06",   "18",   "MKK",  "2.4G", "20M",  "HT",   "2T",   "06",   "30",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "07",   "32",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "07",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "07",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "08",
-	"30",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "08",   "18",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "08",   "30",   "FCC",  "2.4G", "20M",
-	"HT",   "2T",   "09",   "30",   "ETSI", "2.4G", "20M",  "HT",   "2T",
-	"09",   "18",   "MKK",  "2.4G", "20M",  "HT",   "2T",   "09",   "30",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "10",   "28",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "10",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "10",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "11",
-	"26",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "11",   "18",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "11",   "30",   "FCC",  "2.4G", "20M",
-	"HT",   "2T",   "12",   "20",   "ETSI", "2.4G", "20M",  "HT",   "2T",
-	"12",   "18",   "MKK",  "2.4G", "20M",  "HT",   "2T",   "12",   "30",
-	"FCC",  "2.4G", "20M",  "HT",   "2T",   "13",   "14",   "ETSI", "2.4G",
-	"20M",  "HT",   "2T",   "13",   "18",   "MKK",  "2.4G", "20M",  "HT",
-	"2T",   "13",   "30",   "FCC",  "2.4G", "20M",  "HT",   "2T",   "14",
-	"63",   "ETSI", "2.4G", "20M",  "HT",   "2T",   "14",   "63",   "MKK",
-	"2.4G", "20M",  "HT",   "2T",   "14",   "63",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "01",   "63",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"01",   "63",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "01",   "63",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "02",   "63",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "02",   "63",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "02",   "63",   "FCC",  "2.4G", "40M",  "HT",   "1T",   "03",
-	"26",   "ETSI", "2.4G", "40M",  "HT",   "1T",   "03",   "30",   "MKK",
-	"2.4G", "40M",  "HT",   "1T",   "03",   "34",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "04",   "26",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"04",   "30",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "04",   "34",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "05",   "30",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "05",   "30",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "05",   "34",   "FCC",  "2.4G", "40M",  "HT",   "1T",   "06",
-	"32",   "ETSI", "2.4G", "40M",  "HT",   "1T",   "06",   "30",   "MKK",
-	"2.4G", "40M",  "HT",   "1T",   "06",   "34",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "07",   "30",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"07",   "30",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "07",   "34",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "08",   "26",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "08",   "30",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "08",   "34",   "FCC",  "2.4G", "40M",  "HT",   "1T",   "09",
-	"26",   "ETSI", "2.4G", "40M",  "HT",   "1T",   "09",   "30",   "MKK",
-	"2.4G", "40M",  "HT",   "1T",   "09",   "34",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "10",   "20",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"10",   "30",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "10",   "34",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "11",   "14",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "11",   "30",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "11",   "34",   "FCC",  "2.4G", "40M",  "HT",   "1T",   "12",
-	"63",   "ETSI", "2.4G", "40M",  "HT",   "1T",   "12",   "63",   "MKK",
-	"2.4G", "40M",  "HT",   "1T",   "12",   "63",   "FCC",  "2.4G", "40M",
-	"HT",   "1T",   "13",   "63",   "ETSI", "2.4G", "40M",  "HT",   "1T",
-	"13",   "63",   "MKK",  "2.4G", "40M",  "HT",   "1T",   "13",   "63",
-	"FCC",  "2.4G", "40M",  "HT",   "1T",   "14",   "63",   "ETSI", "2.4G",
-	"40M",  "HT",   "1T",   "14",   "63",   "MKK",  "2.4G", "40M",  "HT",
-	"1T",   "14",   "63",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "01",
-	"63",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "01",   "63",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "01",   "63",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "02",   "63",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"02",   "63",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "02",   "63",
-	"FCC",  "2.4G", "40M",  "HT",   "2T",   "03",   "24",   "ETSI", "2.4G",
-	"40M",  "HT",   "2T",   "03",   "18",   "MKK",  "2.4G", "40M",  "HT",
-	"2T",   "03",   "30",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "04",
-	"24",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "04",   "18",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "04",   "30",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "05",   "26",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"05",   "18",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "05",   "30",
-	"FCC",  "2.4G", "40M",  "HT",   "2T",   "06",   "28",   "ETSI", "2.4G",
-	"40M",  "HT",   "2T",   "06",   "18",   "MKK",  "2.4G", "40M",  "HT",
-	"2T",   "06",   "30",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "07",
-	"26",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "07",   "18",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "07",   "30",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "08",   "26",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"08",   "18",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "08",   "30",
-	"FCC",  "2.4G", "40M",  "HT",   "2T",   "09",   "26",   "ETSI", "2.4G",
-	"40M",  "HT",   "2T",   "09",   "18",   "MKK",  "2.4G", "40M",  "HT",
-	"2T",   "09",   "30",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "10",
-	"20",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "10",   "18",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "10",   "30",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "11",   "14",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"11",   "18",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "11",   "30",
-	"FCC",  "2.4G", "40M",  "HT",   "2T",   "12",   "63",   "ETSI", "2.4G",
-	"40M",  "HT",   "2T",   "12",   "63",   "MKK",  "2.4G", "40M",  "HT",
-	"2T",   "12",   "63",   "FCC",  "2.4G", "40M",  "HT",   "2T",   "13",
-	"63",   "ETSI", "2.4G", "40M",  "HT",   "2T",   "13",   "63",   "MKK",
-	"2.4G", "40M",  "HT",   "2T",   "13",   "63",   "FCC",  "2.4G", "40M",
-	"HT",   "2T",   "14",   "63",   "ETSI", "2.4G", "40M",  "HT",   "2T",
-	"14",   "63",   "MKK",  "2.4G", "40M",  "HT",   "2T",   "14",   "63",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "36",   "30",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "36",   "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "36",   "30",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "40",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "40",   "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "40",   "30",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "44",   "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"44",   "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "44",   "30",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "48",   "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "48",   "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "48",   "30",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "52",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "52",   "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "52",   "28",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "56",   "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"56",   "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "56",   "28",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "60",   "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "60",   "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "60",   "28",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "64",
-	"28",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "64",   "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "64",   "28",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "100",  "26",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"100",  "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "100",  "32",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "104",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "104",  "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "104",  "32",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "108",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "108",  "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "108",  "32",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "112",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"112",  "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "112",  "32",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "116",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "116",  "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "116",  "32",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "120",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "120",  "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "120",  "32",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "124",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"124",  "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "124",  "32",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "128",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "128",  "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "128",  "32",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "132",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "132",  "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "132",  "32",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "136",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"136",  "32",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "136",  "32",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "140",  "28",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "140",  "32",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "140",  "32",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "144",
-	"28",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "144",  "32",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "144",  "63",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "149",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"149",  "63",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "149",  "63",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "153",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "153",  "63",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "153",  "63",   "FCC",  "5G",   "20M",  "OFDM", "1T",   "157",
-	"32",   "ETSI", "5G",   "20M",  "OFDM", "1T",   "157",  "63",   "MKK",
-	"5G",   "20M",  "OFDM", "1T",   "157",  "63",   "FCC",  "5G",   "20M",
-	"OFDM", "1T",   "161",  "32",   "ETSI", "5G",   "20M",  "OFDM", "1T",
-	"161",  "63",   "MKK",  "5G",   "20M",  "OFDM", "1T",   "161",  "63",
-	"FCC",  "5G",   "20M",  "OFDM", "1T",   "165",  "32",   "ETSI", "5G",
-	"20M",  "OFDM", "1T",   "165",  "63",   "MKK",  "5G",   "20M",  "OFDM",
-	"1T",   "165",  "63",   "FCC",  "5G",   "20M",  "HT",   "1T",   "36",
-	"30",   "ETSI", "5G",   "20M",  "HT",   "1T",   "36",   "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "36",   "28",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "40",   "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"40",   "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "40",   "28",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "44",   "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "44",   "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "44",   "28",   "FCC",  "5G",   "20M",  "HT",   "1T",   "48",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "48",   "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "48",   "28",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "52",   "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"52",   "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "52",   "28",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "56",   "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "56",   "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "56",   "28",   "FCC",  "5G",   "20M",  "HT",   "1T",   "60",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "60",   "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "60",   "28",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "64",   "28",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"64",   "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "64",   "28",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "100",  "26",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "100",  "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "100",  "32",   "FCC",  "5G",   "20M",  "HT",   "1T",   "104",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "104",  "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "104",  "32",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "108",  "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"108",  "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "108",  "32",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "112",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "112",  "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "112",  "32",   "FCC",  "5G",   "20M",  "HT",   "1T",   "116",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "116",  "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "116",  "32",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "120",  "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"120",  "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "120",  "32",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "124",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "124",  "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "124",  "32",   "FCC",  "5G",   "20M",  "HT",   "1T",   "128",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "128",  "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "128",  "32",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "132",  "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"132",  "32",   "MKK",  "5G",   "20M",  "HT",   "1T",   "132",  "32",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "136",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "136",  "32",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "136",  "32",   "FCC",  "5G",   "20M",  "HT",   "1T",   "140",
-	"26",   "ETSI", "5G",   "20M",  "HT",   "1T",   "140",  "32",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "140",  "32",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "144",  "26",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"144",  "63",   "MKK",  "5G",   "20M",  "HT",   "1T",   "144",  "63",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "149",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "149",  "63",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "149",  "63",   "FCC",  "5G",   "20M",  "HT",   "1T",   "153",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "153",  "63",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "153",  "63",   "FCC",  "5G",   "20M",
-	"HT",   "1T",   "157",  "32",   "ETSI", "5G",   "20M",  "HT",   "1T",
-	"157",  "63",   "MKK",  "5G",   "20M",  "HT",   "1T",   "157",  "63",
-	"FCC",  "5G",   "20M",  "HT",   "1T",   "161",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "1T",   "161",  "63",   "MKK",  "5G",   "20M",  "HT",
-	"1T",   "161",  "63",   "FCC",  "5G",   "20M",  "HT",   "1T",   "165",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "1T",   "165",  "63",   "MKK",
-	"5G",   "20M",  "HT",   "1T",   "165",  "63",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "36",   "28",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"36",   "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "36",   "22",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "40",   "30",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "40",   "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "40",   "22",   "FCC",  "5G",   "20M",  "HT",   "2T",   "44",
-	"30",   "ETSI", "5G",   "20M",  "HT",   "2T",   "44",   "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "44",   "22",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "48",   "30",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"48",   "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "48",   "22",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "52",   "30",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "52",   "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "52",   "22",   "FCC",  "5G",   "20M",  "HT",   "2T",   "56",
-	"30",   "ETSI", "5G",   "20M",  "HT",   "2T",   "56",   "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "56",   "22",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "60",   "30",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"60",   "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "60",   "22",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "64",   "28",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "64",   "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "64",   "22",   "FCC",  "5G",   "20M",  "HT",   "2T",   "100",
-	"26",   "ETSI", "5G",   "20M",  "HT",   "2T",   "100",  "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "100",  "30",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "104",  "30",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"104",  "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "104",  "30",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "108",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "108",  "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "108",  "30",   "FCC",  "5G",   "20M",  "HT",   "2T",   "112",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "2T",   "112",  "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "112",  "30",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "116",  "32",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"116",  "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "116",  "30",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "120",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "120",  "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "120",  "30",   "FCC",  "5G",   "20M",  "HT",   "2T",   "124",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "2T",   "124",  "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "124",  "30",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "128",  "32",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"128",  "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "128",  "30",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "132",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "132",  "20",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "132",  "30",   "FCC",  "5G",   "20M",  "HT",   "2T",   "136",
-	"30",   "ETSI", "5G",   "20M",  "HT",   "2T",   "136",  "20",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "136",  "30",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "140",  "26",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"140",  "20",   "MKK",  "5G",   "20M",  "HT",   "2T",   "140",  "30",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "144",  "26",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "144",  "63",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "144",  "63",   "FCC",  "5G",   "20M",  "HT",   "2T",   "149",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "2T",   "149",  "63",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "149",  "63",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "153",  "32",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"153",  "63",   "MKK",  "5G",   "20M",  "HT",   "2T",   "153",  "63",
-	"FCC",  "5G",   "20M",  "HT",   "2T",   "157",  "32",   "ETSI", "5G",
-	"20M",  "HT",   "2T",   "157",  "63",   "MKK",  "5G",   "20M",  "HT",
-	"2T",   "157",  "63",   "FCC",  "5G",   "20M",  "HT",   "2T",   "161",
-	"32",   "ETSI", "5G",   "20M",  "HT",   "2T",   "161",  "63",   "MKK",
-	"5G",   "20M",  "HT",   "2T",   "161",  "63",   "FCC",  "5G",   "20M",
-	"HT",   "2T",   "165",  "32",   "ETSI", "5G",   "20M",  "HT",   "2T",
-	"165",  "63",   "MKK",  "5G",   "20M",  "HT",   "2T",   "165",  "63",
-	"FCC",  "5G",   "40M",  "HT",   "1T",   "38",   "22",   "ETSI", "5G",
-	"40M",  "HT",   "1T",   "38",   "30",   "MKK",  "5G",   "40M",  "HT",
-	"1T",   "38",   "30",   "FCC",  "5G",   "40M",  "HT",   "1T",   "46",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "1T",   "46",   "30",   "MKK",
-	"5G",   "40M",  "HT",   "1T",   "46",   "30",   "FCC",  "5G",   "40M",
-	"HT",   "1T",   "54",   "30",   "ETSI", "5G",   "40M",  "HT",   "1T",
-	"54",   "30",   "MKK",  "5G",   "40M",  "HT",   "1T",   "54",   "30",
-	"FCC",  "5G",   "40M",  "HT",   "1T",   "62",   "24",   "ETSI", "5G",
-	"40M",  "HT",   "1T",   "62",   "30",   "MKK",  "5G",   "40M",  "HT",
-	"1T",   "62",   "30",   "FCC",  "5G",   "40M",  "HT",   "1T",   "102",
-	"24",   "ETSI", "5G",   "40M",  "HT",   "1T",   "102",  "30",   "MKK",
-	"5G",   "40M",  "HT",   "1T",   "102",  "30",   "FCC",  "5G",   "40M",
-	"HT",   "1T",   "110",  "30",   "ETSI", "5G",   "40M",  "HT",   "1T",
-	"110",  "30",   "MKK",  "5G",   "40M",  "HT",   "1T",   "110",  "30",
-	"FCC",  "5G",   "40M",  "HT",   "1T",   "118",  "30",   "ETSI", "5G",
-	"40M",  "HT",   "1T",   "118",  "30",   "MKK",  "5G",   "40M",  "HT",
-	"1T",   "118",  "30",   "FCC",  "5G",   "40M",  "HT",   "1T",   "126",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "1T",   "126",  "30",   "MKK",
-	"5G",   "40M",  "HT",   "1T",   "126",  "30",   "FCC",  "5G",   "40M",
-	"HT",   "1T",   "134",  "30",   "ETSI", "5G",   "40M",  "HT",   "1T",
-	"134",  "30",   "MKK",  "5G",   "40M",  "HT",   "1T",   "134",  "30",
-	"FCC",  "5G",   "40M",  "HT",   "1T",   "142",  "30",   "ETSI", "5G",
-	"40M",  "HT",   "1T",   "142",  "63",   "MKK",  "5G",   "40M",  "HT",
-	"1T",   "142",  "63",   "FCC",  "5G",   "40M",  "HT",   "1T",   "151",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "1T",   "151",  "63",   "MKK",
-	"5G",   "40M",  "HT",   "1T",   "151",  "63",   "FCC",  "5G",   "40M",
-	"HT",   "1T",   "159",  "30",   "ETSI", "5G",   "40M",  "HT",   "1T",
-	"159",  "63",   "MKK",  "5G",   "40M",  "HT",   "1T",   "159",  "63",
-	"FCC",  "5G",   "40M",  "HT",   "2T",   "38",   "20",   "ETSI", "5G",
-	"40M",  "HT",   "2T",   "38",   "20",   "MKK",  "5G",   "40M",  "HT",
-	"2T",   "38",   "22",   "FCC",  "5G",   "40M",  "HT",   "2T",   "46",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "2T",   "46",   "20",   "MKK",
-	"5G",   "40M",  "HT",   "2T",   "46",   "22",   "FCC",  "5G",   "40M",
-	"HT",   "2T",   "54",   "30",   "ETSI", "5G",   "40M",  "HT",   "2T",
-	"54",   "20",   "MKK",  "5G",   "40M",  "HT",   "2T",   "54",   "22",
-	"FCC",  "5G",   "40M",  "HT",   "2T",   "62",   "22",   "ETSI", "5G",
-	"40M",  "HT",   "2T",   "62",   "20",   "MKK",  "5G",   "40M",  "HT",
-	"2T",   "62",   "22",   "FCC",  "5G",   "40M",  "HT",   "2T",   "102",
-	"22",   "ETSI", "5G",   "40M",  "HT",   "2T",   "102",  "20",   "MKK",
-	"5G",   "40M",  "HT",   "2T",   "102",  "30",   "FCC",  "5G",   "40M",
-	"HT",   "2T",   "110",  "30",   "ETSI", "5G",   "40M",  "HT",   "2T",
-	"110",  "20",   "MKK",  "5G",   "40M",  "HT",   "2T",   "110",  "30",
-	"FCC",  "5G",   "40M",  "HT",   "2T",   "118",  "30",   "ETSI", "5G",
-	"40M",  "HT",   "2T",   "118",  "20",   "MKK",  "5G",   "40M",  "HT",
-	"2T",   "118",  "30",   "FCC",  "5G",   "40M",  "HT",   "2T",   "126",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "2T",   "126",  "20",   "MKK",
-	"5G",   "40M",  "HT",   "2T",   "126",  "30",   "FCC",  "5G",   "40M",
-	"HT",   "2T",   "134",  "30",   "ETSI", "5G",   "40M",  "HT",   "2T",
-	"134",  "20",   "MKK",  "5G",   "40M",  "HT",   "2T",   "134",  "30",
-	"FCC",  "5G",   "40M",  "HT",   "2T",   "142",  "30",   "ETSI", "5G",
-	"40M",  "HT",   "2T",   "142",  "63",   "MKK",  "5G",   "40M",  "HT",
-	"2T",   "142",  "63",   "FCC",  "5G",   "40M",  "HT",   "2T",   "151",
-	"30",   "ETSI", "5G",   "40M",  "HT",   "2T",   "151",  "63",   "MKK",
-	"5G",   "40M",  "HT",   "2T",   "151",  "63",   "FCC",  "5G",   "40M",
-	"HT",   "2T",   "159",  "30",   "ETSI", "5G",   "40M",  "HT",   "2T",
-	"159",  "63",   "MKK",  "5G",   "40M",  "HT",   "2T",   "159",  "63",
-	"FCC",  "5G",   "80M",  "VHT",  "1T",   "42",   "20",   "ETSI", "5G",
-	"80M",  "VHT",  "1T",   "42",   "30",   "MKK",  "5G",   "80M",  "VHT",
-	"1T",   "42",   "28",   "FCC",  "5G",   "80M",  "VHT",  "1T",   "58",
-	"20",   "ETSI", "5G",   "80M",  "VHT",  "1T",   "58",   "30",   "MKK",
-	"5G",   "80M",  "VHT",  "1T",   "58",   "28",   "FCC",  "5G",   "80M",
-	"VHT",  "1T",   "106",  "20",   "ETSI", "5G",   "80M",  "VHT",  "1T",
-	"106",  "30",   "MKK",  "5G",   "80M",  "VHT",  "1T",   "106",  "30",
-	"FCC",  "5G",   "80M",  "VHT",  "1T",   "122",  "30",   "ETSI", "5G",
-	"80M",  "VHT",  "1T",   "122",  "30",   "MKK",  "5G",   "80M",  "VHT",
-	"1T",   "122",  "30",   "FCC",  "5G",   "80M",  "VHT",  "1T",   "138",
-	"30",   "ETSI", "5G",   "80M",  "VHT",  "1T",   "138",  "63",   "MKK",
-	"5G",   "80M",  "VHT",  "1T",   "138",  "63",   "FCC",  "5G",   "80M",
-	"VHT",  "1T",   "155",  "30",   "ETSI", "5G",   "80M",  "VHT",  "1T",
-	"155",  "63",   "MKK",  "5G",   "80M",  "VHT",  "1T",   "155",  "63",
-	"FCC",  "5G",   "80M",  "VHT",  "2T",   "42",   "18",   "ETSI", "5G",
-	"80M",  "VHT",  "2T",   "42",   "20",   "MKK",  "5G",   "80M",  "VHT",
-	"2T",   "42",   "22",   "FCC",  "5G",   "80M",  "VHT",  "2T",   "58",
-	"18",   "ETSI", "5G",   "80M",  "VHT",  "2T",   "58",   "20",   "MKK",
-	"5G",   "80M",  "VHT",  "2T",   "58",   "22",   "FCC",  "5G",   "80M",
-	"VHT",  "2T",   "106",  "20",   "ETSI", "5G",   "80M",  "VHT",  "2T",
-	"106",  "20",   "MKK",  "5G",   "80M",  "VHT",  "2T",   "106",  "30",
-	"FCC",  "5G",   "80M",  "VHT",  "2T",   "122",  "30",   "ETSI", "5G",
-	"80M",  "VHT",  "2T",   "122",  "20",   "MKK",  "5G",   "80M",  "VHT",
-	"2T",   "122",  "30",   "FCC",  "5G",   "80M",  "VHT",  "2T",   "138",
-	"30",   "ETSI", "5G",   "80M",  "VHT",  "2T",   "138",  "63",   "MKK",
-	"5G",   "80M",  "VHT",  "2T",   "138",  "63",   "FCC",  "5G",   "80M",
-	"VHT",  "2T",   "155",  "30",   "ETSI", "5G",   "80M",  "VHT",  "2T",
-	"155",  "63",   "MKK",  "5G",   "80M",  "VHT",  "2T",   "155",  "63"};
-
-void odm_read_and_config_mp_8822b_txpwr_lmt_type5(struct phy_dm_struct *dm)
-{
-	u32 i = 0;
-	u8 **array = (u8 **)array_mp_8822b_txpwr_lmt_type5;
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT,
-		     "===> odm_read_and_config_mp_8822b_txpwr_lmt_type5\n");
-
-	for (i = 0; i < ARRAY_SIZE(array_mp_8822b_txpwr_lmt_type5); i += 7) {
-		u8 *regulation = array[i];
-		u8 *band = array[i + 1];
-		u8 *bandwidth = array[i + 2];
-		u8 *rate = array[i + 3];
-		u8 *rf_path = array[i + 4];
-		u8 *chnl = array[i + 5];
-		u8 *val = array[i + 6];
-
-		odm_config_bb_txpwr_lmt_8822b(dm, regulation, band, bandwidth,
-					      rate, rf_path, chnl, val);
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_rf.h b/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_rf.h
deleted file mode 100644
index 5e25984..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_rf.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-/*Image2HeaderVersion: 3.2*/
-#ifndef __INC_MP_RF_HW_IMG_8822B_H
-#define __INC_MP_RF_HW_IMG_8822B_H
-
-/******************************************************************************
- *                           radioa.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_radioa(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_radioa(void);
-
-/******************************************************************************
- *                           radiob.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_radiob(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_radiob(void);
-
-/******************************************************************************
- *                           txpowertrack.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack(void);
-
-/******************************************************************************
- *                           txpowertrack_type0.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack_type0(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack_type0(void);
-
-/******************************************************************************
- *                           txpowertrack_type1.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack_type1(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack_type1(void);
-
-/******************************************************************************
- *                           txpowertrack_type2.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack_type2(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack_type2(void);
-
-/******************************************************************************
- *                           txpowertrack_type3_type5.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack_type3_type5(
-	struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack_type3_type5(void);
-
-/******************************************************************************
- *                           txpowertrack_type4.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack_type4(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack_type4(void);
-
-/******************************************************************************
- *                           txpowertrack_type6.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack_type6(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack_type6(void);
-
-/******************************************************************************
- *                           txpowertrack_type7.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack_type7(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack_type7(void);
-
-/******************************************************************************
- *                           txpowertrack_type8.TXT
- *****************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack_type8(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack_type8(void);
-
-/******************************************************************************
- *                           txpowertrack_type9.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpowertrack_type9(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpowertrack_type9(void);
-
-/******************************************************************************
- *                           txpwr_lmt.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpwr_lmt(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpwr_lmt(void);
-
-/******************************************************************************
- *                           txpwr_lmt_type5.TXT
- ******************************************************************************/
-
-void odm_read_and_config_mp_8822b_txpwr_lmt_type5(struct phy_dm_struct *dm);
-u32 odm_get_version_mp_8822b_txpwr_lmt_type5(void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/halphyrf_8822b.c b/drivers/staging/rtlwifi/phydm/rtl8822b/halphyrf_8822b.c
deleted file mode 100644
index 9e92a81d..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/halphyrf_8822b.c
+++ /dev/null
@@ -1,340 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../mp_precomp.h"
-#include "../phydm_precomp.h"
-
-static bool
-get_mix_mode_tx_agc_bb_swing_offset_8822b(void *dm_void,
-					  enum pwrtrack_method method,
-					  u8 rf_path, u8 tx_power_index_offset)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	u8 bb_swing_upper_bound = cali_info->default_ofdm_index + 10;
-	u8 bb_swing_lower_bound = 0;
-
-	s8 tx_agc_index = 0;
-	u8 tx_bb_swing_index = cali_info->default_ofdm_index;
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_TX_PWR_TRACK,
-		"Path_%d cali_info->absolute_ofdm_swing_idx[rf_path]=%d, tx_power_index_offset=%d\n",
-		rf_path, cali_info->absolute_ofdm_swing_idx[rf_path],
-		tx_power_index_offset);
-
-	if (tx_power_index_offset > 0XF)
-		tx_power_index_offset = 0XF;
-
-	if (cali_info->absolute_ofdm_swing_idx[rf_path] >= 0 &&
-	    cali_info->absolute_ofdm_swing_idx[rf_path] <=
-		    tx_power_index_offset) {
-		tx_agc_index = cali_info->absolute_ofdm_swing_idx[rf_path];
-		tx_bb_swing_index = cali_info->default_ofdm_index;
-	} else if (cali_info->absolute_ofdm_swing_idx[rf_path] >
-		   tx_power_index_offset) {
-		tx_agc_index = tx_power_index_offset;
-		cali_info->remnant_ofdm_swing_idx[rf_path] =
-			cali_info->absolute_ofdm_swing_idx[rf_path] -
-			tx_power_index_offset;
-		tx_bb_swing_index = cali_info->default_ofdm_index +
-				    cali_info->remnant_ofdm_swing_idx[rf_path];
-
-		if (tx_bb_swing_index > bb_swing_upper_bound)
-			tx_bb_swing_index = bb_swing_upper_bound;
-	} else {
-		tx_agc_index = 0;
-
-		if (cali_info->default_ofdm_index >
-		    (cali_info->absolute_ofdm_swing_idx[rf_path] * (-1)))
-			tx_bb_swing_index =
-				cali_info->default_ofdm_index +
-				cali_info->absolute_ofdm_swing_idx[rf_path];
-		else
-			tx_bb_swing_index = bb_swing_lower_bound;
-
-		if (tx_bb_swing_index < bb_swing_lower_bound)
-			tx_bb_swing_index = bb_swing_lower_bound;
-	}
-
-	cali_info->absolute_ofdm_swing_idx[rf_path] = tx_agc_index;
-	cali_info->bb_swing_idx_ofdm[rf_path] = tx_bb_swing_index;
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_TX_PWR_TRACK,
-		"MixMode Offset Path_%d   cali_info->absolute_ofdm_swing_idx[rf_path]=%d   cali_info->bb_swing_idx_ofdm[rf_path]=%d   tx_power_index_offset=%d\n",
-		rf_path, cali_info->absolute_ofdm_swing_idx[rf_path],
-		cali_info->bb_swing_idx_ofdm[rf_path], tx_power_index_offset);
-
-	return true;
-}
-
-void odm_tx_pwr_track_set_pwr8822b(void *dm_void, enum pwrtrack_method method,
-				   u8 rf_path, u8 channel_mapped_index)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-	u8 tx_power_index_offset = 0;
-	u8 tx_power_index = 0;
-
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 channel = rtlphy->current_channel;
-	u8 band_width = rtlphy->current_chan_bw;
-	u8 tx_rate = 0xFF;
-
-	if (!dm->mp_mode) {
-		u16 rate = *dm->forced_data_rate;
-
-		if (!rate) /*auto rate*/
-			tx_rate = dm->tx_rate;
-		else /*force rate*/
-			tx_rate = (u8)rate;
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK, "Call:%s tx_rate=0x%X\n",
-		     __func__, tx_rate);
-
-	ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-		     "pRF->default_ofdm_index=%d   pRF->default_cck_index=%d\n",
-		     cali_info->default_ofdm_index,
-		     cali_info->default_cck_index);
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_TX_PWR_TRACK,
-		"pRF->absolute_ofdm_swing_idx=%d   pRF->remnant_ofdm_swing_idx=%d   pRF->absolute_cck_swing_idx=%d   pRF->remnant_cck_swing_idx=%d   rf_path=%d\n",
-		cali_info->absolute_ofdm_swing_idx[rf_path],
-		cali_info->remnant_ofdm_swing_idx[rf_path],
-		cali_info->absolute_cck_swing_idx[rf_path],
-		cali_info->remnant_cck_swing_idx, rf_path);
-
-	if (dm->number_linked_client != 0)
-		tx_power_index = odm_get_tx_power_index(
-			dm, (enum odm_rf_radio_path)rf_path, tx_rate,
-			band_width, channel);
-
-	if (tx_power_index >= 63)
-		tx_power_index = 63;
-
-	tx_power_index_offset = 63 - tx_power_index;
-
-	ODM_RT_TRACE(dm, ODM_COMP_TX_PWR_TRACK,
-		     "tx_power_index=%d tx_power_index_offset=%d rf_path=%d\n",
-		     tx_power_index, tx_power_index_offset, rf_path);
-
-	if (method ==
-	    BBSWING) { /*use for mp driver clean power tracking status*/
-		switch (rf_path) {
-		case ODM_RF_PATH_A:
-			odm_set_bb_reg(
-				dm, 0xC94, (BIT(29) | BIT(28) | BIT(27) |
-					    BIT(26) | BIT(25)),
-				cali_info->absolute_ofdm_swing_idx[rf_path]);
-			odm_set_bb_reg(
-				dm, REG_A_TX_SCALE_JAGUAR, 0xFFE00000,
-				tx_scaling_table_jaguar
-					[cali_info
-						 ->bb_swing_idx_ofdm[rf_path]]);
-			break;
-		case ODM_RF_PATH_B:
-			odm_set_bb_reg(
-				dm, 0xE94, (BIT(29) | BIT(28) | BIT(27) |
-					    BIT(26) | BIT(25)),
-				cali_info->absolute_ofdm_swing_idx[rf_path]);
-			odm_set_bb_reg(
-				dm, REG_B_TX_SCALE_JAGUAR, 0xFFE00000,
-				tx_scaling_table_jaguar
-					[cali_info
-						 ->bb_swing_idx_ofdm[rf_path]]);
-			break;
-
-		default:
-			break;
-		}
-	} else if (method == MIX_MODE) {
-		switch (rf_path) {
-		case ODM_RF_PATH_A:
-			get_mix_mode_tx_agc_bb_swing_offset_8822b(
-				dm, method, rf_path, tx_power_index_offset);
-			odm_set_bb_reg(
-				dm, 0xC94, (BIT(29) | BIT(28) | BIT(27) |
-					    BIT(26) | BIT(25)),
-				cali_info->absolute_ofdm_swing_idx[rf_path]);
-			odm_set_bb_reg(
-				dm, REG_A_TX_SCALE_JAGUAR, 0xFFE00000,
-				tx_scaling_table_jaguar
-					[cali_info
-						 ->bb_swing_idx_ofdm[rf_path]]);
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"TXAGC(0xC94)=0x%x BBSwing(0xc1c)=0x%x BBSwingIndex=%d rf_path=%d\n",
-				odm_get_bb_reg(dm, 0xC94,
-					       (BIT(29) | BIT(28) | BIT(27) |
-						BIT(26) | BIT(25))),
-				odm_get_bb_reg(dm, 0xc1c, 0xFFE00000),
-				cali_info->bb_swing_idx_ofdm[rf_path], rf_path);
-			break;
-
-		case ODM_RF_PATH_B:
-			get_mix_mode_tx_agc_bb_swing_offset_8822b(
-				dm, method, rf_path, tx_power_index_offset);
-			odm_set_bb_reg(
-				dm, 0xE94, (BIT(29) | BIT(28) | BIT(27) |
-					    BIT(26) | BIT(25)),
-				cali_info->absolute_ofdm_swing_idx[rf_path]);
-			odm_set_bb_reg(
-				dm, REG_B_TX_SCALE_JAGUAR, 0xFFE00000,
-				tx_scaling_table_jaguar
-					[cali_info
-						 ->bb_swing_idx_ofdm[rf_path]]);
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_TX_PWR_TRACK,
-				"TXAGC(0xE94)=0x%x BBSwing(0xe1c)=0x%x BBSwingIndex=%d rf_path=%d\n",
-				odm_get_bb_reg(dm, 0xE94,
-					       (BIT(29) | BIT(28) | BIT(27) |
-						BIT(26) | BIT(25))),
-				odm_get_bb_reg(dm, 0xe1c, 0xFFE00000),
-				cali_info->bb_swing_idx_ofdm[rf_path], rf_path);
-			break;
-
-		default:
-			break;
-		}
-	}
-}
-
-void get_delta_swing_table_8822b(void *dm_void, u8 **temperature_up_a,
-				 u8 **temperature_down_a, u8 **temperature_up_b,
-				 u8 **temperature_down_b)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_rf_calibration_struct *cali_info = &dm->rf_calibrate_info;
-
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter;
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 channel = rtlphy->current_channel;
-
-	*temperature_up_a = cali_info->delta_swing_table_idx_2ga_p;
-	*temperature_down_a = cali_info->delta_swing_table_idx_2ga_n;
-	*temperature_up_b = cali_info->delta_swing_table_idx_2gb_p;
-	*temperature_down_b = cali_info->delta_swing_table_idx_2gb_n;
-
-	if (channel >= 36 && channel <= 64) {
-		*temperature_up_a = cali_info->delta_swing_table_idx_5ga_p[0];
-		*temperature_down_a = cali_info->delta_swing_table_idx_5ga_n[0];
-		*temperature_up_b = cali_info->delta_swing_table_idx_5gb_p[0];
-		*temperature_down_b = cali_info->delta_swing_table_idx_5gb_n[0];
-	} else if (channel >= 100 && channel <= 144) {
-		*temperature_up_a = cali_info->delta_swing_table_idx_5ga_p[1];
-		*temperature_down_a = cali_info->delta_swing_table_idx_5ga_n[1];
-		*temperature_up_b = cali_info->delta_swing_table_idx_5gb_p[1];
-		*temperature_down_b = cali_info->delta_swing_table_idx_5gb_n[1];
-	} else if (channel >= 149 && channel <= 177) {
-		*temperature_up_a = cali_info->delta_swing_table_idx_5ga_p[2];
-		*temperature_down_a = cali_info->delta_swing_table_idx_5ga_n[2];
-		*temperature_up_b = cali_info->delta_swing_table_idx_5gb_p[2];
-		*temperature_down_b = cali_info->delta_swing_table_idx_5gb_n[2];
-	}
-}
-
-static void _phy_lc_calibrate_8822b(struct phy_dm_struct *dm)
-{
-	u32 lc_cal = 0, cnt = 0;
-
-	/*backup RF0x18*/
-	lc_cal = odm_get_rf_reg(dm, ODM_RF_PATH_A, RF_CHNLBW, RFREGOFFSETMASK);
-
-	/*Start LCK*/
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, RF_CHNLBW, RFREGOFFSETMASK,
-		       lc_cal | 0x08000);
-
-	ODM_delay_ms(100);
-
-	for (cnt = 0; cnt < 100; cnt++) {
-		if (odm_get_rf_reg(dm, ODM_RF_PATH_A, RF_CHNLBW, 0x8000) != 0x1)
-			break;
-		ODM_delay_ms(10);
-	}
-
-	/*Recover channel number*/
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, RF_CHNLBW, RFREGOFFSETMASK, lc_cal);
-}
-
-void phy_lc_calibrate_8822b(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	bool is_start_cont_tx = false, is_single_tone = false,
-	     is_carrier_suppression = false;
-	u64 start_time;
-	u64 progressing_time;
-
-	if (is_start_cont_tx || is_single_tone || is_carrier_suppression) {
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[LCK]continues TX ing !!! LCK return\n");
-		return;
-	}
-
-	start_time = odm_get_current_time(dm);
-	_phy_lc_calibrate_8822b(dm);
-	progressing_time = odm_get_progressing_time(dm, start_time);
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-		     "[LCK]LCK progressing_time = %lld\n", progressing_time);
-}
-
-void configure_txpower_track_8822b(struct txpwrtrack_cfg *config)
-{
-	config->swing_table_size_cck = TXSCALE_TABLE_SIZE;
-	config->swing_table_size_ofdm = TXSCALE_TABLE_SIZE;
-	config->threshold_iqk = IQK_THRESHOLD;
-	config->threshold_dpk = DPK_THRESHOLD;
-	config->average_thermal_num = AVG_THERMAL_NUM_8822B;
-	config->rf_path_count = MAX_PATH_NUM_8822B;
-	config->thermal_reg_addr = RF_T_METER_8822B;
-
-	config->odm_tx_pwr_track_set_pwr = odm_tx_pwr_track_set_pwr8822b;
-	config->do_iqk = do_iqk_8822b;
-	config->phy_lc_calibrate = phy_lc_calibrate_8822b;
-
-	config->get_delta_swing_table = get_delta_swing_table_8822b;
-}
-
-void phy_set_rf_path_switch_8822b(struct phy_dm_struct *dm, bool is_main)
-{
-	/*BY SY Request */
-	odm_set_bb_reg(dm, 0x4C, (BIT(24) | BIT(23)), 0x2);
-	odm_set_bb_reg(dm, 0x974, 0xff, 0xff);
-
-	/*odm_set_bb_reg(dm, 0x1991, 0x3, 0x0);*/
-	odm_set_bb_reg(dm, 0x1990, (BIT(9) | BIT(8)), 0x0);
-
-	/*odm_set_bb_reg(dm, 0xCBE, 0x8, 0x0);*/
-	odm_set_bb_reg(dm, 0xCBC, BIT(19), 0x0);
-
-	odm_set_bb_reg(dm, 0xCB4, 0xff, 0x77);
-
-	odm_set_bb_reg(dm, 0x70, MASKBYTE3, 0x0e);
-	odm_set_bb_reg(dm, 0x1704, MASKDWORD, 0x0000ff00);
-	odm_set_bb_reg(dm, 0x1700, MASKDWORD, 0xc00f0038);
-
-	if (is_main) {
-		/*odm_set_bb_reg(dm, 0xCBD, 0x3, 0x2);		WiFi */
-		odm_set_bb_reg(dm, 0xCBC, (BIT(9) | BIT(8)), 0x2); /*WiFi */
-	} else {
-		/*odm_set_bb_reg(dm, 0xCBD, 0x3, 0x1);	 BT*/
-		odm_set_bb_reg(dm, 0xCBC, (BIT(9) | BIT(8)), 0x1); /*BT*/
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/halphyrf_8822b.h b/drivers/staging/rtlwifi/phydm/rtl8822b/halphyrf_8822b.h
deleted file mode 100644
index 794ee33..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/halphyrf_8822b.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __HAL_PHY_RF_8822B_H__
-#define __HAL_PHY_RF_8822B_H__
-
-#define AVG_THERMAL_NUM_8822B 4
-#define RF_T_METER_8822B 0x42
-
-void configure_txpower_track_8822b(struct txpwrtrack_cfg *config);
-
-void odm_tx_pwr_track_set_pwr8822b(void *dm_void, enum pwrtrack_method method,
-				   u8 rf_path, u8 channel_mapped_index);
-
-void get_delta_swing_table_8822b(void *dm_void, u8 **temperature_up_a,
-				 u8 **temperature_down_a, u8 **temperature_up_b,
-				 u8 **temperature_down_b);
-
-void phy_lc_calibrate_8822b(void *dm_void);
-
-void phy_set_rf_path_switch_8822b(struct phy_dm_struct *dm, bool is_main);
-
-#endif /* #ifndef __HAL_PHY_RF_8822B_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_hal_api8822b.c b/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_hal_api8822b.c
deleted file mode 100644
index 7760961..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_hal_api8822b.c
+++ /dev/null
@@ -1,1804 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../mp_precomp.h"
-#include "../phydm_precomp.h"
-
-/* ======================================================================== */
-/* These following functions can be used for PHY DM only*/
-
-static u32 reg82c_8822b;
-static u32 reg838_8822b;
-static u32 reg830_8822b;
-static u32 reg83c_8822b;
-static u32 rega20_8822b;
-static u32 rega24_8822b;
-static u32 rega28_8822b;
-static enum odm_bw bw_8822b;
-static u8 central_ch_8822b;
-
-static u32 cca_ifem_ccut[12][4] = {
-	/*20M*/
-	{0x75D97010, 0x75D97010, 0x75D97010, 0x75D97010}, /*Reg82C*/
-	{0x00000000, 0x79a0ea2c, 0x00000000, 0x00000000}, /*Reg830*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg83C*/
-	/*40M*/
-	{0x75D97010, 0x75D97010, 0x75D97010, 0x75D97010}, /*Reg82C*/
-	{0x00000000, 0x79a0ea2c, 0x00000000, 0x79a0ea28}, /*Reg830*/
-	{0x87765541, 0x87766341, 0x87765541, 0x87766341}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg83C*/
-	/*80M*/
-	{0x75C97010, 0x75C97010, 0x75C97010, 0x75C97010}, /*Reg82C*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg830*/
-	{0x00000000, 0x87746641, 0x00000000, 0x87746641}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000},
-}; /*Reg83C*/
-static u32 cca_efem_ccut[12][4] = {
-	/*20M*/
-	{0x75A76010, 0x75A76010, 0x75A76010, 0x75A75010}, /*Reg82C*/
-	{0x00000000, 0x79a0ea2c, 0x00000000, 0x00000000}, /*Reg830*/
-	{0x87766651, 0x87766431, 0x87766451, 0x87766431}, /*Reg838*/
-	{0x9194b2b9, 0x9194b2b9, 0x9194b2b9, 0x9194b2b9}, /*Reg83C*/
-	/*40M*/
-	{0x75A85010, 0x75A75010, 0x75A85010, 0x75A75010}, /*Reg82C*/
-	{0x00000000, 0x79a0ea2c, 0x00000000, 0x00000000}, /*Reg830*/
-	{0x87766431, 0x87766431, 0x87766431, 0x87766431}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg83C*/
-	/*80M*/
-	{0x76BA7010, 0x75BA7010, 0x76BA7010, 0x75BA7010}, /*Reg82C*/
-	{0x79a0ea28, 0x00000000, 0x79a0ea28, 0x00000000}, /*Reg830*/
-	{0x87766431, 0x87766431, 0x87766431, 0x87766431}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000},
-}; /*Reg83C*/
-static u32 cca_ifem_ccut_rfetype5[12][4] = {
-	/*20M*/
-	{0x75D97010, 0x75D97010, 0x75D97010, 0x75D97010}, /*Reg82C*/
-	{0x00000000, 0x79a0ea2c, 0x00000000, 0x00000000}, /*Reg830*/
-	{0x00000000, 0x00000000, 0x87766461, 0x87766461}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg83C*/
-	/*40M*/
-	{0x75D97010, 0x75D97010, 0x75D97010, 0x75D97010}, /*Reg82C*/
-	{0x00000000, 0x79a0ea2c, 0x00000000, 0x79a0ea28}, /*Reg830*/
-	{0x87765541, 0x87766341, 0x87765541, 0x87766341}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg83C*/
-	/*80M*/
-	{0x75C97010, 0x75C97010, 0x75C97010, 0x75C97010}, /*Reg82C*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg830*/
-	{0x00000000, 0x76666641, 0x00000000, 0x76666641}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000},
-}; /*Reg83C*/
-static u32 cca_ifem_ccut_rfetype3[12][4] = {
-	/*20M*/
-	{0x75D97010, 0x75D97010, 0x75D97010, 0x75D97010}, /*Reg82C*/
-	{0x00000000, 0x79a0ea2c, 0x00000000, 0x00000000}, /*Reg830*/
-	{0x00000000, 0x00000000, 0x87766461, 0x87766461}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg83C*/
-	/*40M*/
-	{0x75D97010, 0x75D97010, 0x75D97010, 0x75D97010}, /*Reg82C*/
-	{0x00000000, 0x79a0ea2c, 0x00000000, 0x79a0ea28}, /*Reg830*/
-	{0x87765541, 0x87766341, 0x87765541, 0x87766341}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg83C*/
-	/*80M*/
-	{0x75C97010, 0x75C97010, 0x75C97010, 0x75C97010}, /*Reg82C*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000}, /*Reg830*/
-	{0x00000000, 0x76666641, 0x00000000, 0x76666641}, /*Reg838*/
-	{0x00000000, 0x00000000, 0x00000000, 0x00000000},
-}; /*Reg83C*/
-
-static inline u32 phydm_check_bit_mask(u32 bit_mask, u32 data_original,
-				       u32 data)
-{
-	u8 bit_shift;
-
-	if (bit_mask != 0xfffff) {
-		for (bit_shift = 0; bit_shift <= 19; bit_shift++) {
-			if (((bit_mask >> bit_shift) & 0x1) == 1)
-				break;
-		}
-		return ((data_original) & (~bit_mask)) | (data << bit_shift);
-	}
-	return data;
-}
-
-static bool phydm_rfe_8822b(struct phy_dm_struct *dm, u8 channel)
-{
-	if (dm->rfe_type == 4) {
-		/* Default setting is in PHY parameters */
-
-		if (channel <= 14) {
-			/* signal source */
-			odm_set_bb_reg(dm, 0xcb0, (MASKBYTE2 | MASKLWORD),
-				       0x745774);
-			odm_set_bb_reg(dm, 0xeb0, (MASKBYTE2 | MASKLWORD),
-				       0x745774);
-			odm_set_bb_reg(dm, 0xcb4, MASKBYTE1, 0x57);
-			odm_set_bb_reg(dm, 0xeb4, MASKBYTE1, 0x57);
-
-			/* inverse or not */
-			odm_set_bb_reg(dm, 0xcbc, (BIT(5) | BIT(4) | BIT(3) |
-						   BIT(2) | BIT(1) | BIT(0)),
-				       0x8);
-			odm_set_bb_reg(dm, 0xcbc, (BIT(11) | BIT(10)), 0x2);
-			odm_set_bb_reg(dm, 0xebc, (BIT(5) | BIT(4) | BIT(3) |
-						   BIT(2) | BIT(1) | BIT(0)),
-				       0x8);
-			odm_set_bb_reg(dm, 0xebc, (BIT(11) | BIT(10)), 0x2);
-
-			/* antenna switch table */
-			if ((dm->rx_ant_status == (ODM_RF_A | ODM_RF_B)) ||
-			    (dm->tx_ant_status == (ODM_RF_A | ODM_RF_B))) {
-				/* 2TX or 2RX */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xf050);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xf050);
-			} else if (dm->rx_ant_status == dm->tx_ant_status) {
-				/* TXA+RXA or TXB+RXB */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xf055);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xf055);
-			} else {
-				/* TXB+RXA or TXA+RXB */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xf550);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xf550);
-			}
-
-		} else if (channel > 35) {
-			/* signal source */
-			odm_set_bb_reg(dm, 0xcb0, (MASKBYTE2 | MASKLWORD),
-				       0x477547);
-			odm_set_bb_reg(dm, 0xeb0, (MASKBYTE2 | MASKLWORD),
-				       0x477547);
-			odm_set_bb_reg(dm, 0xcb4, MASKBYTE1, 0x75);
-			odm_set_bb_reg(dm, 0xeb4, MASKBYTE1, 0x75);
-
-			/* inverse or not */
-			odm_set_bb_reg(dm, 0xcbc, (BIT(5) | BIT(4) | BIT(3) |
-						   BIT(2) | BIT(1) | BIT(0)),
-				       0x0);
-			odm_set_bb_reg(dm, 0xcbc, (BIT(11) | BIT(10)), 0x0);
-			odm_set_bb_reg(dm, 0xebc, (BIT(5) | BIT(4) | BIT(3) |
-						   BIT(2) | BIT(1) | BIT(0)),
-				       0x0);
-			odm_set_bb_reg(dm, 0xebc, (BIT(11) | BIT(10)), 0x0);
-
-			/* antenna switch table */
-			if ((dm->rx_ant_status == (ODM_RF_A | ODM_RF_B)) ||
-			    (dm->tx_ant_status == (ODM_RF_A | ODM_RF_B))) {
-				/* 2TX or 2RX */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa501);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa501);
-			} else if (dm->rx_ant_status == dm->tx_ant_status) {
-				/* TXA+RXA or TXB+RXB */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa500);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa500);
-			} else {
-				/* TXB+RXA or TXA+RXB */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa005);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa005);
-			}
-		} else {
-			return false;
-		}
-
-	} else if ((dm->rfe_type == 1) || (dm->rfe_type == 2) ||
-		   (dm->rfe_type == 7) || (dm->rfe_type == 9)) {
-		/* eFem */
-		if (((dm->cut_version == ODM_CUT_A) ||
-		     (dm->cut_version == ODM_CUT_B)) &&
-		    (dm->rfe_type < 2)) {
-			if (channel <= 14) {
-				/* signal source */
-				odm_set_bb_reg(dm, 0xcb0,
-					       (MASKBYTE2 | MASKLWORD),
-					       0x704570);
-				odm_set_bb_reg(dm, 0xeb0,
-					       (MASKBYTE2 | MASKLWORD),
-					       0x704570);
-				odm_set_bb_reg(dm, 0xcb4, MASKBYTE1, 0x45);
-				odm_set_bb_reg(dm, 0xeb4, MASKBYTE1, 0x45);
-			} else if (channel > 35) {
-				odm_set_bb_reg(dm, 0xcb0,
-					       (MASKBYTE2 | MASKLWORD),
-					       0x174517);
-				odm_set_bb_reg(dm, 0xeb0,
-					       (MASKBYTE2 | MASKLWORD),
-					       0x174517);
-				odm_set_bb_reg(dm, 0xcb4, MASKBYTE1, 0x45);
-				odm_set_bb_reg(dm, 0xeb4, MASKBYTE1, 0x45);
-			} else {
-				return false;
-			}
-
-			/* delay 400ns for PAPE */
-			odm_set_bb_reg(dm, 0x810,
-				       MASKBYTE3 | BIT(20) | BIT(21) | BIT(22) |
-					       BIT(23),
-				       0x211);
-
-			/* antenna switch table */
-			odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa555);
-			odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa555);
-
-			/* inverse or not */
-			odm_set_bb_reg(dm, 0xcbc, (BIT(5) | BIT(4) | BIT(3) |
-						   BIT(2) | BIT(1) | BIT(0)),
-				       0x0);
-			odm_set_bb_reg(dm, 0xcbc, (BIT(11) | BIT(10)), 0x0);
-			odm_set_bb_reg(dm, 0xebc, (BIT(5) | BIT(4) | BIT(3) |
-						   BIT(2) | BIT(1) | BIT(0)),
-				       0x0);
-			odm_set_bb_reg(dm, 0xebc, (BIT(11) | BIT(10)), 0x0);
-
-			ODM_RT_TRACE(
-				dm, ODM_PHY_CONFIG,
-				"%s: Using old RFE control pin setting for A-cut and B-cut\n",
-				__func__);
-		} else {
-			if (channel <= 14) {
-				/* signal source */
-				odm_set_bb_reg(dm, 0xcb0,
-					       (MASKBYTE2 | MASKLWORD),
-					       0x705770);
-				odm_set_bb_reg(dm, 0xeb0,
-					       (MASKBYTE2 | MASKLWORD),
-					       0x705770);
-				odm_set_bb_reg(dm, 0xcb4, MASKBYTE1, 0x57);
-				odm_set_bb_reg(dm, 0xeb4, MASKBYTE1, 0x57);
-				odm_set_bb_reg(dm, 0xcb8, BIT(4), 0);
-				odm_set_bb_reg(dm, 0xeb8, BIT(4), 0);
-			} else if (channel > 35) {
-				/* signal source */
-				odm_set_bb_reg(dm, 0xcb0,
-					       (MASKBYTE2 | MASKLWORD),
-					       0x177517);
-				odm_set_bb_reg(dm, 0xeb0,
-					       (MASKBYTE2 | MASKLWORD),
-					       0x177517);
-				odm_set_bb_reg(dm, 0xcb4, MASKBYTE1, 0x75);
-				odm_set_bb_reg(dm, 0xeb4, MASKBYTE1, 0x75);
-				odm_set_bb_reg(dm, 0xcb8, BIT(5), 0);
-				odm_set_bb_reg(dm, 0xeb8, BIT(5), 0);
-			} else {
-				return false;
-			}
-
-			/* inverse or not */
-			odm_set_bb_reg(dm, 0xcbc, (BIT(5) | BIT(4) | BIT(3) |
-						   BIT(2) | BIT(1) | BIT(0)),
-				       0x0);
-			odm_set_bb_reg(dm, 0xcbc, (BIT(11) | BIT(10)), 0x0);
-			odm_set_bb_reg(dm, 0xebc, (BIT(5) | BIT(4) | BIT(3) |
-						   BIT(2) | BIT(1) | BIT(0)),
-				       0x0);
-			odm_set_bb_reg(dm, 0xebc, (BIT(11) | BIT(10)), 0x0);
-
-			/* antenna switch table */
-			if ((dm->rx_ant_status == (ODM_RF_A | ODM_RF_B)) ||
-			    (dm->tx_ant_status == (ODM_RF_A | ODM_RF_B))) {
-				/* 2TX or 2RX */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa501);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa501);
-			} else if (dm->rx_ant_status == dm->tx_ant_status) {
-				/* TXA+RXA or TXB+RXB */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa500);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa500);
-			} else {
-				/* TXB+RXA or TXA+RXB */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa005);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa005);
-			}
-		}
-	} else if ((dm->rfe_type == 0) || (dm->rfe_type == 3) ||
-		   (dm->rfe_type == 5) || (dm->rfe_type == 6) ||
-		   (dm->rfe_type == 8) || (dm->rfe_type == 10)) {
-		/* iFEM */
-		if (channel <= 14) {
-			/* signal source */
-
-			odm_set_bb_reg(dm, 0xcb0, (MASKBYTE2 | MASKLWORD),
-				       0x745774);
-			odm_set_bb_reg(dm, 0xeb0, (MASKBYTE2 | MASKLWORD),
-				       0x745774);
-			odm_set_bb_reg(dm, 0xcb4, MASKBYTE1, 0x57);
-			odm_set_bb_reg(dm, 0xeb4, MASKBYTE1, 0x57);
-
-		} else if (channel > 35) {
-			/* signal source */
-
-			odm_set_bb_reg(dm, 0xcb0, (MASKBYTE2 | MASKLWORD),
-				       0x477547);
-			odm_set_bb_reg(dm, 0xeb0, (MASKBYTE2 | MASKLWORD),
-				       0x477547);
-			odm_set_bb_reg(dm, 0xcb4, MASKBYTE1, 0x75);
-			odm_set_bb_reg(dm, 0xeb4, MASKBYTE1, 0x75);
-
-		} else {
-			return false;
-		}
-
-		/* inverse or not */
-		odm_set_bb_reg(dm, 0xcbc, (BIT(5) | BIT(4) | BIT(3) | BIT(2) |
-					   BIT(1) | BIT(0)),
-			       0x0);
-		odm_set_bb_reg(dm, 0xcbc, (BIT(11) | BIT(10)), 0x0);
-		odm_set_bb_reg(dm, 0xebc, (BIT(5) | BIT(4) | BIT(3) | BIT(2) |
-					   BIT(1) | BIT(0)),
-			       0x0);
-		odm_set_bb_reg(dm, 0xebc, (BIT(11) | BIT(10)), 0x0);
-
-		/* antenna switch table */
-		if (channel <= 14) {
-			if ((dm->rx_ant_status == (ODM_RF_A | ODM_RF_B)) ||
-			    (dm->tx_ant_status == (ODM_RF_A | ODM_RF_B))) {
-				/* 2TX or 2RX */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa501);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa501);
-			} else if (dm->rx_ant_status == dm->tx_ant_status) {
-				/* TXA+RXA or TXB+RXB */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa500);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa500);
-			} else {
-				/* TXB+RXA or TXA+RXB */
-				odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa005);
-				odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa005);
-			}
-		} else if (channel > 35) {
-			odm_set_bb_reg(dm, 0xca0, MASKLWORD, 0xa5a5);
-			odm_set_bb_reg(dm, 0xea0, MASKLWORD, 0xa5a5);
-		}
-	}
-
-	/* chip top mux */
-	odm_set_bb_reg(dm, 0x64, BIT(29) | BIT(28), 0x3);
-	odm_set_bb_reg(dm, 0x4c, BIT(26) | BIT(25), 0x0);
-	odm_set_bb_reg(dm, 0x40, BIT(2), 0x1);
-
-	/* from s0 or s1 */
-	odm_set_bb_reg(dm, 0x1990,
-		       (BIT(5) | BIT(4) | BIT(3) | BIT(2) | BIT(1) | BIT(0)),
-		       0x30);
-	odm_set_bb_reg(dm, 0x1990, (BIT(11) | BIT(10)), 0x3);
-
-	/* input or output */
-	odm_set_bb_reg(dm, 0x974,
-		       (BIT(5) | BIT(4) | BIT(3) | BIT(2) | BIT(1) | BIT(0)),
-		       0x3f);
-	odm_set_bb_reg(dm, 0x974, (BIT(11) | BIT(10)), 0x3);
-
-	ODM_RT_TRACE(
-		dm, ODM_PHY_CONFIG,
-		"%s: Update RFE control pin setting (ch%d, tx_path 0x%x, rx_path 0x%x)\n",
-		__func__, channel, dm->tx_ant_status, dm->rx_ant_status);
-
-	return true;
-}
-
-static void phydm_ccapar_by_rfe_8822b(struct phy_dm_struct *dm)
-{
-	u32 cca_ifem[12][4], cca_efem[12][4];
-	u8 row, col;
-	u32 reg82c, reg830, reg838, reg83c;
-
-	if (dm->cut_version == ODM_CUT_A)
-		return;
-	{
-		odm_move_memory(dm, cca_efem, cca_efem_ccut, 48 * 4);
-		if (dm->rfe_type == 5)
-			odm_move_memory(dm, cca_ifem, cca_ifem_ccut_rfetype5,
-					48 * 4);
-		else if (dm->rfe_type == 3)
-			odm_move_memory(dm, cca_ifem, cca_ifem_ccut_rfetype3,
-					48 * 4);
-		else
-			odm_move_memory(dm, cca_ifem, cca_ifem_ccut, 48 * 4);
-
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s: Update CCA parameters for Ccut\n", __func__);
-	}
-
-	if (bw_8822b == ODM_BW20M)
-		row = 0;
-	else if (bw_8822b == ODM_BW40M)
-		row = 4;
-	else
-		row = 8;
-
-	if (central_ch_8822b <= 14) {
-		if ((dm->rx_ant_status == ODM_RF_A) ||
-		    (dm->rx_ant_status == ODM_RF_B))
-			col = 0;
-		else
-			col = 1;
-	} else {
-		if ((dm->rx_ant_status == ODM_RF_A) ||
-		    (dm->rx_ant_status == ODM_RF_B))
-			col = 2;
-		else
-			col = 3;
-	}
-
-	if ((dm->rfe_type == 1) || (dm->rfe_type == 4) || (dm->rfe_type == 6) ||
-	    (dm->rfe_type == 7)) {
-		/*eFEM => RFE type 1 & RFE type 4 & RFE type 6 & RFE type 7*/
-		reg82c = (cca_efem[row][col] != 0) ? cca_efem[row][col] :
-						     reg82c_8822b;
-		reg830 = (cca_efem[row + 1][col] != 0) ?
-				 cca_efem[row + 1][col] :
-				 reg830_8822b;
-		reg838 = (cca_efem[row + 2][col] != 0) ?
-				 cca_efem[row + 2][col] :
-				 reg838_8822b;
-		reg83c = (cca_efem[row + 3][col] != 0) ?
-				 cca_efem[row + 3][col] :
-				 reg83c_8822b;
-	} else if ((dm->rfe_type == 2) || (dm->rfe_type == 9)) {
-		/*5G eFEM, 2G iFEM => RFE type 2, 5G eFEM => RFE type 9 */
-		if (central_ch_8822b <= 14) {
-			reg82c = (cca_ifem[row][col] != 0) ?
-					 cca_ifem[row][col] :
-					 reg82c_8822b;
-			reg830 = (cca_ifem[row + 1][col] != 0) ?
-					 cca_ifem[row + 1][col] :
-					 reg830_8822b;
-			reg838 = (cca_ifem[row + 2][col] != 0) ?
-					 cca_ifem[row + 2][col] :
-					 reg838_8822b;
-			reg83c = (cca_ifem[row + 3][col] != 0) ?
-					 cca_ifem[row + 3][col] :
-					 reg83c_8822b;
-		} else {
-			reg82c = (cca_efem[row][col] != 0) ?
-					 cca_efem[row][col] :
-					 reg82c_8822b;
-			reg830 = (cca_efem[row + 1][col] != 0) ?
-					 cca_efem[row + 1][col] :
-					 reg830_8822b;
-			reg838 = (cca_efem[row + 2][col] != 0) ?
-					 cca_efem[row + 2][col] :
-					 reg838_8822b;
-			reg83c = (cca_efem[row + 3][col] != 0) ?
-					 cca_efem[row + 3][col] :
-					 reg83c_8822b;
-		}
-	} else {
-		/* iFEM =>RFE type 3 & RFE type 5 & RFE type 0 & RFE type 8 &
-		 * RFE type 10
-		 */
-		reg82c = (cca_ifem[row][col] != 0) ? cca_ifem[row][col] :
-						     reg82c_8822b;
-		reg830 = (cca_ifem[row + 1][col] != 0) ?
-				 cca_ifem[row + 1][col] :
-				 reg830_8822b;
-		reg838 = (cca_ifem[row + 2][col] != 0) ?
-				 cca_ifem[row + 2][col] :
-				 reg838_8822b;
-		reg83c = (cca_ifem[row + 3][col] != 0) ?
-				 cca_ifem[row + 3][col] :
-				 reg83c_8822b;
-	}
-
-	odm_set_bb_reg(dm, 0x82c, MASKDWORD, reg82c);
-	odm_set_bb_reg(dm, 0x830, MASKDWORD, reg830);
-	odm_set_bb_reg(dm, 0x838, MASKDWORD, reg838);
-	odm_set_bb_reg(dm, 0x83c, MASKDWORD, reg83c);
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-		     "%s: (Pkt%d, Intf%d, RFE%d), row = %d, col = %d\n",
-		     __func__, dm->package_type, dm->support_interface,
-		     dm->rfe_type, row, col);
-}
-
-static void phydm_ccapar_by_bw_8822b(struct phy_dm_struct *dm,
-				     enum odm_bw bandwidth)
-{
-	u32 reg82c;
-
-	if (dm->cut_version != ODM_CUT_A)
-		return;
-
-	/* A-cut */
-	reg82c = odm_get_bb_reg(dm, 0x82c, MASKDWORD);
-
-	if (bandwidth == ODM_BW20M) {
-		/* 82c[15:12] = 4 */
-		/* 82c[27:24] = 6 */
-
-		reg82c &= (~(0x0f00f000));
-		reg82c |= ((0x4) << 12);
-		reg82c |= ((0x6) << 24);
-	} else if (bandwidth == ODM_BW40M) {
-		/* 82c[19:16] = 9 */
-		/* 82c[27:24] = 6 */
-
-		reg82c &= (~(0x0f0f0000));
-		reg82c |= ((0x9) << 16);
-		reg82c |= ((0x6) << 24);
-	} else if (bandwidth == ODM_BW80M) {
-		/* 82c[15:12] 7 */
-		/* 82c[19:16] b */
-		/* 82c[23:20] d */
-		/* 82c[27:24] 3 */
-
-		reg82c &= (~(0x0ffff000));
-		reg82c |= ((0xdb7) << 12);
-		reg82c |= ((0x3) << 24);
-	}
-
-	odm_set_bb_reg(dm, 0x82c, MASKDWORD, reg82c);
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-		     "%s(): Update CCA parameters for Acut\n", __func__);
-}
-
-static void phydm_ccapar_by_rxpath_8822b(struct phy_dm_struct *dm)
-{
-	if (dm->cut_version != ODM_CUT_A)
-		return;
-
-	if ((dm->rx_ant_status == ODM_RF_A) ||
-	    (dm->rx_ant_status == ODM_RF_B)) {
-		/* 838[7:4] = 8 */
-		/* 838[11:8] = 7 */
-		/* 838[15:12] = 6 */
-		/* 838[19:16] = 7 */
-		/* 838[23:20] = 7 */
-		/* 838[27:24] = 7 */
-		odm_set_bb_reg(dm, 0x838, 0x0ffffff0, 0x777678);
-	} else {
-		/* 838[7:4] = 3 */
-		/* 838[11:8] = 3 */
-		/* 838[15:12] = 6 */
-		/* 838[19:16] = 6 */
-		/* 838[23:20] = 7 */
-		/* 838[27:24] = 7 */
-		odm_set_bb_reg(dm, 0x838, 0x0ffffff0, 0x776633);
-	}
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-		     "%s(): Update CCA parameters for Acut\n", __func__);
-}
-
-static void phydm_rxdfirpar_by_bw_8822b(struct phy_dm_struct *dm,
-					enum odm_bw bandwidth)
-{
-	if (bandwidth == ODM_BW40M) {
-		/* RX DFIR for BW40 */
-		odm_set_bb_reg(dm, 0x948, BIT(29) | BIT(28), 0x1);
-		odm_set_bb_reg(dm, 0x94c, BIT(29) | BIT(28), 0x0);
-		odm_set_bb_reg(dm, 0xc20, BIT(31), 0x0);
-		odm_set_bb_reg(dm, 0xe20, BIT(31), 0x0);
-	} else if (bandwidth == ODM_BW80M) {
-		/* RX DFIR for BW80 */
-		odm_set_bb_reg(dm, 0x948, BIT(29) | BIT(28), 0x2);
-		odm_set_bb_reg(dm, 0x94c, BIT(29) | BIT(28), 0x1);
-		odm_set_bb_reg(dm, 0xc20, BIT(31), 0x0);
-		odm_set_bb_reg(dm, 0xe20, BIT(31), 0x0);
-	} else {
-		/* RX DFIR for BW20, BW10 and BW5*/
-		odm_set_bb_reg(dm, 0x948, BIT(29) | BIT(28), 0x2);
-		odm_set_bb_reg(dm, 0x94c, BIT(29) | BIT(28), 0x2);
-		odm_set_bb_reg(dm, 0xc20, BIT(31), 0x1);
-		odm_set_bb_reg(dm, 0xe20, BIT(31), 0x1);
-	}
-}
-
-bool phydm_write_txagc_1byte_8822b(struct phy_dm_struct *dm, u32 power_index,
-				   enum odm_rf_radio_path path, u8 hw_rate)
-{
-	u32 offset_txagc[2] = {0x1d00, 0x1d80};
-	u8 rate_idx = (hw_rate & 0xfc), i;
-	u8 rate_offset = (hw_rate & 0x3);
-	u32 txagc_content = 0x0;
-
-	/* For debug command only!!!! */
-
-	/* Error handling */
-	if ((path > ODM_RF_PATH_B) || (hw_rate > 0x53)) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): unsupported path (%d)\n", __func__, path);
-		return false;
-	}
-
-	/* For HW limitation, We can't write TXAGC once a byte. */
-	for (i = 0; i < 4; i++) {
-		if (i != rate_offset)
-			txagc_content =
-				txagc_content | (config_phydm_read_txagc_8822b(
-							 dm, path, rate_idx + i)
-						 << (i << 3));
-		else
-			txagc_content = txagc_content |
-					((power_index & 0x3f) << (i << 3));
-	}
-	odm_set_bb_reg(dm, (offset_txagc[path] + rate_idx), MASKDWORD,
-		       txagc_content);
-
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-		     "%s(): path-%d rate index 0x%x (0x%x) = 0x%x\n", __func__,
-		     path, hw_rate, (offset_txagc[path] + hw_rate),
-		     power_index);
-	return true;
-}
-
-void phydm_init_hw_info_by_rfe_type_8822b(struct phy_dm_struct *dm)
-{
-	u16 mask_path_a = 0x0303;
-	u16 mask_path_b = 0x0c0c;
-	/*u16	mask_path_c = 0x3030;*/
-	/*u16	mask_path_d = 0xc0c0;*/
-
-	dm->is_init_hw_info_by_rfe = false;
-
-	if ((dm->rfe_type == 1) || (dm->rfe_type == 6) || (dm->rfe_type == 7)) {
-		odm_cmn_info_init(dm, ODM_CMNINFO_BOARD_TYPE,
-				  (ODM_BOARD_EXT_LNA | ODM_BOARD_EXT_LNA_5G |
-				   ODM_BOARD_EXT_PA | ODM_BOARD_EXT_PA_5G));
-
-		if (dm->rfe_type == 6) {
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_GPA,
-				(TYPE_GPA1 & (mask_path_a | mask_path_b)));
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_APA,
-				(TYPE_APA1 & (mask_path_a | mask_path_b)));
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_GLNA,
-				(TYPE_GLNA1 & (mask_path_a | mask_path_b)));
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_ALNA,
-				(TYPE_ALNA1 & (mask_path_a | mask_path_b)));
-		} else if (dm->rfe_type == 7) {
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_GPA,
-				(TYPE_GPA2 & (mask_path_a | mask_path_b)));
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_APA,
-				(TYPE_APA2 & (mask_path_a | mask_path_b)));
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_GLNA,
-				(TYPE_GLNA2 & (mask_path_a | mask_path_b)));
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_ALNA,
-				(TYPE_ALNA2 & (mask_path_a | mask_path_b)));
-		} else {
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_GPA,
-				(TYPE_GPA0 & (mask_path_a | mask_path_b)));
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_APA,
-				(TYPE_APA0 & (mask_path_a | mask_path_b)));
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_GLNA,
-				(TYPE_GLNA0 & (mask_path_a | mask_path_b)));
-			odm_cmn_info_init(
-				dm, ODM_CMNINFO_ALNA,
-				(TYPE_ALNA0 & (mask_path_a | mask_path_b)));
-		}
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_PACKAGE_TYPE, 1);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_LNA, true);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_LNA, true);
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_PA, true);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_PA, true);
-	} else if (dm->rfe_type == 2) {
-		odm_cmn_info_init(dm, ODM_CMNINFO_BOARD_TYPE,
-				  (ODM_BOARD_EXT_LNA_5G | ODM_BOARD_EXT_PA_5G));
-		odm_cmn_info_init(dm, ODM_CMNINFO_APA,
-				  (TYPE_APA0 & (mask_path_a | mask_path_b)));
-		odm_cmn_info_init(dm, ODM_CMNINFO_ALNA,
-				  (TYPE_ALNA0 & (mask_path_a | mask_path_b)));
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_PACKAGE_TYPE, 2);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_LNA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_LNA, true);
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_PA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_PA, true);
-	} else if (dm->rfe_type == 9) {
-		odm_cmn_info_init(dm, ODM_CMNINFO_BOARD_TYPE,
-				  (ODM_BOARD_EXT_LNA_5G));
-		odm_cmn_info_init(dm, ODM_CMNINFO_ALNA,
-				  (TYPE_ALNA0 & (mask_path_a | mask_path_b)));
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_PACKAGE_TYPE, 1);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_LNA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_LNA, true);
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_PA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_PA, false);
-	} else if ((dm->rfe_type == 3) || (dm->rfe_type == 5)) {
-		/* RFE type 3: 8822BS\8822BU TFBGA iFEM */
-		/* RFE type 5: 8822BE TFBGA iFEM */
-		odm_cmn_info_init(dm, ODM_CMNINFO_BOARD_TYPE, 0);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_PACKAGE_TYPE, 2);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_LNA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_LNA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_PA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_PA, false);
-	} else if (dm->rfe_type == 4) {
-		odm_cmn_info_init(dm, ODM_CMNINFO_BOARD_TYPE,
-				  (ODM_BOARD_EXT_LNA | ODM_BOARD_EXT_LNA_5G |
-				   ODM_BOARD_EXT_PA | ODM_BOARD_EXT_PA_5G));
-		odm_cmn_info_init(dm, ODM_CMNINFO_GPA,
-				  (TYPE_GPA0 & (mask_path_a | mask_path_b)));
-		odm_cmn_info_init(dm, ODM_CMNINFO_APA,
-				  (TYPE_APA0 & (mask_path_a | mask_path_b)));
-		odm_cmn_info_init(dm, ODM_CMNINFO_GLNA,
-				  (TYPE_GLNA0 & (mask_path_a | mask_path_b)));
-		odm_cmn_info_init(dm, ODM_CMNINFO_ALNA,
-				  (TYPE_ALNA0 & (mask_path_a | mask_path_b)));
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_PACKAGE_TYPE, 2);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_LNA, true);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_LNA, true);
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_PA, true);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_PA, true);
-	} else if (dm->rfe_type == 8) {
-		/* RFE type 8: TFBGA iFEM AP */
-		odm_cmn_info_init(dm, ODM_CMNINFO_BOARD_TYPE, 0);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_PACKAGE_TYPE, 2);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_LNA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_LNA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_PA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_PA, false);
-	} else {
-		/* RFE Type 0 & 9 & 10: QFN iFEM */
-		odm_cmn_info_init(dm, ODM_CMNINFO_BOARD_TYPE, 0);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_PACKAGE_TYPE, 1);
-
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_LNA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_LNA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_PA, false);
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_PA, false);
-	}
-
-	dm->is_init_hw_info_by_rfe = true;
-
-	ODM_RT_TRACE(
-		dm, ODM_PHY_CONFIG,
-		"%s(): RFE type (%d), Board type (0x%x), Package type (%d)\n",
-		__func__, dm->rfe_type, dm->board_type, dm->package_type);
-	ODM_RT_TRACE(
-		dm, ODM_PHY_CONFIG,
-		"%s(): 5G ePA (%d), 5G eLNA (%d), 2G ePA (%d), 2G eLNA (%d)\n",
-		__func__, dm->ext_pa_5g, dm->ext_lna_5g, dm->ext_pa,
-		dm->ext_lna);
-	ODM_RT_TRACE(
-		dm, ODM_PHY_CONFIG,
-		"%s(): 5G PA type (%d), 5G LNA type (%d), 2G PA type (%d), 2G LNA type (%d)\n",
-		__func__, dm->type_apa, dm->type_alna, dm->type_gpa,
-		dm->type_glna);
-}
-
-s32 phydm_get_condition_number_8822B(struct phy_dm_struct *dm)
-{
-	s32 ret_val;
-
-	odm_set_bb_reg(dm, 0x1988, BIT(22), 0x1);
-	ret_val =
-		(s32)odm_get_bb_reg(dm, 0xf84, (BIT(17) | BIT(16) | MASKLWORD));
-
-	if (bw_8822b == 0) {
-		ret_val = ret_val << (8 - 4);
-		ret_val = ret_val / 234;
-	} else if (bw_8822b == 1) {
-		ret_val = ret_val << (7 - 4);
-		ret_val = ret_val / 108;
-	} else if (bw_8822b == 2) {
-		ret_val = ret_val << (6 - 4);
-		ret_val = ret_val / 52;
-	}
-
-	return ret_val;
-}
-
-/* ======================================================================== */
-
-/* ======================================================================== */
-/* These following functions can be used by driver*/
-
-u32 config_phydm_read_rf_reg_8822b(struct phy_dm_struct *dm,
-				   enum odm_rf_radio_path rf_path, u32 reg_addr,
-				   u32 bit_mask)
-{
-	u32 readback_value, direct_addr;
-	u32 offset_read_rf[2] = {0x2800, 0x2c00};
-	u32 power_RF[2] = {0x1c, 0xec};
-
-	/* Error handling.*/
-	if (rf_path > ODM_RF_PATH_B) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): unsupported path (%d)\n", __func__,
-			     rf_path);
-		return INVALID_RF_DATA;
-	}
-
-	/*  Error handling. Check if RF power is enable or not */
-	/*  0xffffffff means RF power is disable */
-	if (odm_get_mac_reg(dm, power_RF[rf_path], MASKBYTE3) != 0x7) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): Read fail, RF is disabled\n", __func__);
-		return INVALID_RF_DATA;
-	}
-
-	/* Calculate offset */
-	reg_addr &= 0xff;
-	direct_addr = offset_read_rf[rf_path] + (reg_addr << 2);
-
-	/* RF register only has 20bits */
-	bit_mask &= RFREGOFFSETMASK;
-
-	/* Read RF register directly */
-	readback_value = odm_get_bb_reg(dm, direct_addr, bit_mask);
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-		     "%s(): RF-%d 0x%x = 0x%x, bit mask = 0x%x\n", __func__,
-		     rf_path, reg_addr, readback_value, bit_mask);
-	return readback_value;
-}
-
-bool config_phydm_write_rf_reg_8822b(struct phy_dm_struct *dm,
-				     enum odm_rf_radio_path rf_path,
-				     u32 reg_addr, u32 bit_mask, u32 data)
-{
-	u32 data_and_addr = 0, data_original = 0;
-	u32 offset_write_rf[2] = {0xc90, 0xe90};
-	u32 power_RF[2] = {0x1c, 0xec};
-
-	/* Error handling.*/
-	if (rf_path > ODM_RF_PATH_B) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): unsupported path (%d)\n", __func__,
-			     rf_path);
-		return false;
-	}
-
-	/* Read RF register content first */
-	reg_addr &= 0xff;
-	bit_mask = bit_mask & RFREGOFFSETMASK;
-
-	if (bit_mask != RFREGOFFSETMASK) {
-		data_original = config_phydm_read_rf_reg_8822b(
-			dm, rf_path, reg_addr, RFREGOFFSETMASK);
-
-		/* Error handling. RF is disabled */
-		if (!config_phydm_read_rf_check_8822b(data_original)) {
-			ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-				     "%s(): Write fail, RF is disable\n",
-				     __func__);
-			return false;
-		}
-
-		/* check bit mask */
-		data = phydm_check_bit_mask(bit_mask, data_original, data);
-	} else if (odm_get_mac_reg(dm, power_RF[rf_path], MASKBYTE3) != 0x7) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): Write fail, RF is disabled\n", __func__);
-		return false;
-	}
-
-	/* Put write addr in [27:20]  and write data in [19:00] */
-	data_and_addr = ((reg_addr << 20) | (data & 0x000fffff)) & 0x0fffffff;
-
-	/* Write operation */
-	odm_set_bb_reg(dm, offset_write_rf[rf_path], MASKDWORD, data_and_addr);
-	ODM_RT_TRACE(
-		dm, ODM_PHY_CONFIG,
-		"%s(): RF-%d 0x%x = 0x%x (original: 0x%x), bit mask = 0x%x\n",
-		__func__, rf_path, reg_addr, data, data_original, bit_mask);
-	return true;
-}
-
-bool config_phydm_write_txagc_8822b(struct phy_dm_struct *dm, u32 power_index,
-				    enum odm_rf_radio_path path, u8 hw_rate)
-{
-	u32 offset_txagc[2] = {0x1d00, 0x1d80};
-	u8 rate_idx = (hw_rate & 0xfc);
-
-	/* Input need to be HW rate index, not driver rate index!!!! */
-
-	if (dm->is_disable_phy_api) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): disable PHY API for debug!!\n", __func__);
-		return true;
-	}
-
-	/* Error handling */
-	if ((path > ODM_RF_PATH_B) || (hw_rate > 0x53)) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): unsupported path (%d)\n", __func__, path);
-		return false;
-	}
-
-	/* driver need to construct a 4-byte power index */
-	odm_set_bb_reg(dm, (offset_txagc[path] + rate_idx), MASKDWORD,
-		       power_index);
-
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-		     "%s(): path-%d rate index 0x%x (0x%x) = 0x%x\n", __func__,
-		     path, hw_rate, (offset_txagc[path] + hw_rate),
-		     power_index);
-	return true;
-}
-
-u8 config_phydm_read_txagc_8822b(struct phy_dm_struct *dm,
-				 enum odm_rf_radio_path path, u8 hw_rate)
-{
-	u8 read_back_data;
-
-	/* Input need to be HW rate index, not driver rate index!!!! */
-
-	/* Error handling */
-	if ((path > ODM_RF_PATH_B) || (hw_rate > 0x53)) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): unsupported path (%d)\n", __func__, path);
-		return INVALID_TXAGC_DATA;
-	}
-
-	/* Disable TX AGC report */
-	odm_set_bb_reg(dm, 0x1998, BIT(16), 0x0); /* need to check */
-
-	/* Set data rate index (bit0~6) and path index (bit7) */
-	odm_set_bb_reg(dm, 0x1998, MASKBYTE0, (hw_rate | (path << 7)));
-
-	/* Enable TXAGC report */
-	odm_set_bb_reg(dm, 0x1998, BIT(16), 0x1);
-
-	/* Read TX AGC report */
-	read_back_data = (u8)odm_get_bb_reg(dm, 0xd30, 0x7f0000);
-
-	/* Driver have to disable TXAGC report after reading TXAGC
-	 * (ref. user guide v11)
-	 */
-	odm_set_bb_reg(dm, 0x1998, BIT(16), 0x0);
-
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-		     "%s(): path-%d rate index 0x%x = 0x%x\n", __func__, path,
-		     hw_rate, read_back_data);
-	return read_back_data;
-}
-
-bool config_phydm_switch_band_8822b(struct phy_dm_struct *dm, u8 central_ch)
-{
-	u32 rf_reg18;
-	bool rf_reg_status = true;
-
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG, "%s()======================>\n",
-		     __func__);
-
-	if (dm->is_disable_phy_api) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): disable PHY API for debug!!\n", __func__);
-		return true;
-	}
-
-	rf_reg18 = config_phydm_read_rf_reg_8822b(dm, ODM_RF_PATH_A, 0x18,
-						  RFREGOFFSETMASK);
-	rf_reg_status =
-		rf_reg_status & config_phydm_read_rf_check_8822b(rf_reg18);
-
-	if (central_ch <= 14) {
-		/* 2.4G */
-
-		/* Enable CCK block */
-		odm_set_bb_reg(dm, 0x808, BIT(28), 0x1);
-
-		/* Disable MAC CCK check */
-		odm_set_bb_reg(dm, 0x454, BIT(7), 0x0);
-
-		/* Disable BB CCK check */
-		odm_set_bb_reg(dm, 0xa80, BIT(18), 0x0);
-
-		/*CCA Mask*/
-		odm_set_bb_reg(dm, 0x814, 0x0000FC00, 15); /*default value*/
-
-		/* RF band */
-		rf_reg18 = (rf_reg18 & (~(BIT(16) | BIT(9) | BIT(8))));
-
-		/* RxHP dynamic control */
-		if ((dm->rfe_type == 2) || (dm->rfe_type == 3) ||
-		    (dm->rfe_type == 5)) {
-			odm_set_bb_reg(dm, 0x8cc, MASKDWORD, 0x08108492);
-			odm_set_bb_reg(dm, 0x8d8, MASKDWORD, 0x29095612);
-		}
-
-	} else if (central_ch > 35) {
-		/* 5G */
-
-		/* Enable BB CCK check */
-		odm_set_bb_reg(dm, 0xa80, BIT(18), 0x1);
-
-		/* Enable CCK check */
-		odm_set_bb_reg(dm, 0x454, BIT(7), 0x1);
-
-		/* Disable CCK block */
-		odm_set_bb_reg(dm, 0x808, BIT(28), 0x0);
-
-		/*CCA Mask*/
-		odm_set_bb_reg(dm, 0x814, 0x0000FC00, 15); /*default value*/
-
-		/* RF band */
-		rf_reg18 = (rf_reg18 & (~(BIT(16) | BIT(9) | BIT(8))));
-		rf_reg18 = (rf_reg18 | BIT(8) | BIT(16));
-
-		/* RxHP dynamic control */
-		if ((dm->rfe_type == 2) || (dm->rfe_type == 3) ||
-		    (dm->rfe_type == 5)) {
-			odm_set_bb_reg(dm, 0x8cc, MASKDWORD, 0x08100000);
-			odm_set_bb_reg(dm, 0x8d8, MASKDWORD, 0x21095612);
-		}
-
-	} else {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): Fail to switch band (ch: %d)\n", __func__,
-			     central_ch);
-		return false;
-	}
-
-	rf_reg_status = rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x18,
-						RFREGOFFSETMASK, rf_reg18);
-
-	if (dm->rf_type > ODM_1T1R)
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_B, 0x18,
-						RFREGOFFSETMASK, rf_reg18);
-
-	if (!phydm_rfe_8822b(dm, central_ch))
-		return false;
-
-	if (!rf_reg_status) {
-		ODM_RT_TRACE(
-			dm, ODM_PHY_CONFIG,
-			"%s(): Fail to switch band (ch: %d), because writing RF register is fail\n",
-			__func__, central_ch);
-		return false;
-	}
-
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-		     "%s(): Success to switch band (ch: %d)\n", __func__,
-		     central_ch);
-	return true;
-}
-
-bool config_phydm_switch_channel_8822b(struct phy_dm_struct *dm, u8 central_ch)
-{
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	u32 rf_reg18 = 0, rf_reg_b8 = 0, rf_reg_be = 0xff;
-	bool rf_reg_status = true;
-	u8 low_band[15] = {0x7, 0x6, 0x6, 0x5, 0x0, 0x0, 0x7, 0xff,
-			   0x6, 0x5, 0x0, 0x0, 0x7, 0x6, 0x6};
-	u8 middle_band[23] = {0x6, 0x5, 0x0, 0x0, 0x7, 0x6, 0x6, 0xff,
-			      0x0, 0x0, 0x7, 0x6, 0x6, 0x5, 0x0, 0xff,
-			      0x7, 0x6, 0x6, 0x5, 0x0, 0x0, 0x7};
-	u8 high_band[15] = {0x5, 0x5, 0x0, 0x7, 0x7, 0x6, 0x5, 0xff,
-			    0x0, 0x7, 0x7, 0x6, 0x5, 0x5, 0x0};
-
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG, "%s()====================>\n",
-		     __func__);
-
-	if (dm->is_disable_phy_api) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): disable PHY API for debug!!\n", __func__);
-		return true;
-	}
-
-	central_ch_8822b = central_ch;
-	rf_reg18 = config_phydm_read_rf_reg_8822b(dm, ODM_RF_PATH_A, 0x18,
-						  RFREGOFFSETMASK);
-	rf_reg_status =
-		rf_reg_status & config_phydm_read_rf_check_8822b(rf_reg18);
-	rf_reg18 = (rf_reg18 & (~(BIT(18) | BIT(17) | MASKBYTE0)));
-
-	if (dm->cut_version == ODM_CUT_A) {
-		rf_reg_b8 = config_phydm_read_rf_reg_8822b(
-			dm, ODM_RF_PATH_A, 0xb8, RFREGOFFSETMASK);
-		rf_reg_status = rf_reg_status &
-				config_phydm_read_rf_check_8822b(rf_reg_b8);
-	}
-
-	/* Switch band and channel */
-	if (central_ch <= 14) {
-		/* 2.4G */
-
-		/* 1. RF band and channel*/
-		rf_reg18 = (rf_reg18 | central_ch);
-
-		/* 2. AGC table selection */
-		odm_set_bb_reg(dm, 0x958, 0x1f, 0x0);
-		dig_tab->agc_table_idx = 0x0;
-
-		/* 3. Set central frequency for clock offset tracking */
-		odm_set_bb_reg(dm, 0x860, 0x1ffe0000, 0x96a);
-
-		/* Fix A-cut LCK fail issue @ 5285MHz~5375MHz, 0xb8[19]=0x0 */
-		if (dm->cut_version == ODM_CUT_A)
-			rf_reg_b8 = rf_reg_b8 | BIT(19);
-
-		/* CCK TX filter parameters */
-		if (central_ch == 14) {
-			odm_set_bb_reg(dm, 0xa20, MASKHWORD, 0x8488);
-			odm_set_bb_reg(dm, 0xa24, MASKDWORD, 0x00006577);
-			odm_set_bb_reg(dm, 0xa28, MASKLWORD, 0x0000);
-		} else {
-			odm_set_bb_reg(dm, 0xa20, MASKHWORD,
-				       (rega20_8822b >> 16));
-			odm_set_bb_reg(dm, 0xa24, MASKDWORD, rega24_8822b);
-			odm_set_bb_reg(dm, 0xa28, MASKLWORD,
-				       (rega28_8822b & MASKLWORD));
-		}
-
-	} else if (central_ch > 35) {
-		/* 5G */
-
-		/* 1. RF band and channel*/
-		rf_reg18 = (rf_reg18 | central_ch);
-
-		/* 2. AGC table selection */
-		if ((central_ch >= 36) && (central_ch <= 64)) {
-			odm_set_bb_reg(dm, 0x958, 0x1f, 0x1);
-			dig_tab->agc_table_idx = 0x1;
-		} else if ((central_ch >= 100) && (central_ch <= 144)) {
-			odm_set_bb_reg(dm, 0x958, 0x1f, 0x2);
-			dig_tab->agc_table_idx = 0x2;
-		} else if (central_ch >= 149) {
-			odm_set_bb_reg(dm, 0x958, 0x1f, 0x3);
-			dig_tab->agc_table_idx = 0x3;
-		} else {
-			ODM_RT_TRACE(
-				dm, ODM_PHY_CONFIG,
-				"%s(): Fail to switch channel (AGC) (ch: %d)\n",
-				__func__, central_ch);
-			return false;
-		}
-
-		/* 3. Set central frequency for clock offset tracking */
-		if ((central_ch >= 36) && (central_ch <= 48)) {
-			odm_set_bb_reg(dm, 0x860, 0x1ffe0000, 0x494);
-		} else if ((central_ch >= 52) && (central_ch <= 64)) {
-			odm_set_bb_reg(dm, 0x860, 0x1ffe0000, 0x453);
-		} else if ((central_ch >= 100) && (central_ch <= 116)) {
-			odm_set_bb_reg(dm, 0x860, 0x1ffe0000, 0x452);
-		} else if ((central_ch >= 118) && (central_ch <= 177)) {
-			odm_set_bb_reg(dm, 0x860, 0x1ffe0000, 0x412);
-		} else {
-			ODM_RT_TRACE(
-				dm, ODM_PHY_CONFIG,
-				"%s(): Fail to switch channel (fc_area) (ch: %d)\n",
-				__func__, central_ch);
-			return false;
-		}
-
-		/* Fix A-cut LCK fail issue @ 5285MHz~5375MHz, 0xb8[19]=0x0 */
-		if (dm->cut_version == ODM_CUT_A) {
-			if ((central_ch >= 57) && (central_ch <= 75))
-				rf_reg_b8 = rf_reg_b8 & (~BIT(19));
-			else
-				rf_reg_b8 = rf_reg_b8 | BIT(19);
-		}
-	} else {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): Fail to switch channel (ch: %d)\n",
-			     __func__, central_ch);
-		return false;
-	}
-
-	/* Modify IGI for MP driver to aviod PCIE interference */
-	if (dm->mp_mode && ((dm->rfe_type == 3) || (dm->rfe_type == 5))) {
-		if (central_ch == 14)
-			odm_write_dig(dm, 0x26);
-		else
-			odm_write_dig(dm, 0x20);
-	}
-
-	/* Modify the setting of register 0xBE to reduce phase noise */
-	if (central_ch <= 14)
-		rf_reg_be = 0x0;
-	else if ((central_ch >= 36) && (central_ch <= 64))
-		rf_reg_be = low_band[(central_ch - 36) >> 1];
-	else if ((central_ch >= 100) && (central_ch <= 144))
-		rf_reg_be = middle_band[(central_ch - 100) >> 1];
-	else if ((central_ch >= 149) && (central_ch <= 177))
-		rf_reg_be = high_band[(central_ch - 149) >> 1];
-	else
-		rf_reg_be = 0xff;
-
-	if (rf_reg_be != 0xff) {
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0xbe,
-						(BIT(17) | BIT(16) | BIT(15)),
-						rf_reg_be);
-	} else {
-		ODM_RT_TRACE(
-			dm, ODM_PHY_CONFIG,
-			"%s(): Fail to switch channel (ch: %d, Phase noise)\n",
-			__func__, central_ch);
-		return false;
-	}
-
-	/* Fix channel 144 issue, ask by RFSI Alvin*/
-	/* 00 when freq < 5400;  01 when 5400<=freq<=5720; 10 when freq > 5720;
-	 * 2G don't care
-	 */
-	/* need to set 0xdf[18]=1 before writing RF18 when channel 144 */
-	if (central_ch == 144) {
-		rf_reg_status = rf_reg_status &
-				config_phydm_write_rf_reg_8822b(
-					dm, ODM_RF_PATH_A, 0xdf, BIT(18), 0x1);
-		rf_reg18 = (rf_reg18 | BIT(17));
-	} else {
-		rf_reg_status = rf_reg_status &
-				config_phydm_write_rf_reg_8822b(
-					dm, ODM_RF_PATH_A, 0xdf, BIT(18), 0x0);
-
-		if (central_ch > 144)
-			rf_reg18 = (rf_reg18 | BIT(18));
-		else if (central_ch >= 80)
-			rf_reg18 = (rf_reg18 | BIT(17));
-	}
-
-	rf_reg_status = rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x18,
-						RFREGOFFSETMASK, rf_reg18);
-
-	if (dm->cut_version == ODM_CUT_A)
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0xb8,
-						RFREGOFFSETMASK, rf_reg_b8);
-
-	if (dm->rf_type > ODM_1T1R) {
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_B, 0x18,
-						RFREGOFFSETMASK, rf_reg18);
-
-		if (dm->cut_version == ODM_CUT_A)
-			rf_reg_status = rf_reg_status &
-					config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_B, 0xb8,
-						RFREGOFFSETMASK, rf_reg_b8);
-	}
-
-	if (!rf_reg_status) {
-		ODM_RT_TRACE(
-			dm, ODM_PHY_CONFIG,
-			"%s(): Fail to switch channel (ch: %d), because writing RF register is fail\n",
-			__func__, central_ch);
-		return false;
-	}
-
-	phydm_ccapar_by_rfe_8822b(dm);
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-		     "%s(): Success to switch channel (ch: %d)\n", __func__,
-		     central_ch);
-	return true;
-}
-
-bool config_phydm_switch_bandwidth_8822b(struct phy_dm_struct *dm,
-					 u8 primary_ch_idx,
-					 enum odm_bw bandwidth)
-{
-	u32 rf_reg18;
-	bool rf_reg_status = true;
-	u8 IGI = 0;
-
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG, "%s()===================>\n",
-		     __func__);
-
-	if (dm->is_disable_phy_api) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): disable PHY API for debug!!\n", __func__);
-		return true;
-	}
-
-	/* Error handling */
-	if ((bandwidth >= ODM_BW_MAX) ||
-	    ((bandwidth == ODM_BW40M) && (primary_ch_idx > 2)) ||
-	    ((bandwidth == ODM_BW80M) && (primary_ch_idx > 4))) {
-		ODM_RT_TRACE(
-			dm, ODM_PHY_CONFIG,
-			"%s(): Fail to switch bandwidth (bw: %d, primary ch: %d)\n",
-			__func__, bandwidth, primary_ch_idx);
-		return false;
-	}
-
-	bw_8822b = bandwidth;
-	rf_reg18 = config_phydm_read_rf_reg_8822b(dm, ODM_RF_PATH_A, 0x18,
-						  RFREGOFFSETMASK);
-	rf_reg_status =
-		rf_reg_status & config_phydm_read_rf_check_8822b(rf_reg18);
-
-	/* Switch bandwidth */
-	switch (bandwidth) {
-	case ODM_BW20M: {
-		/* Small BW([7:6]) = 0, primary channel ([5:2]) = 0,
-		 * rf mode([1:0]) = 20M
-		 */
-		odm_set_bb_reg(dm, 0x8ac, MASKBYTE0, ODM_BW20M);
-
-		/* ADC clock = 160M clock for BW20 */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(9) | BIT(8)), 0x0);
-		odm_set_bb_reg(dm, 0x8ac, BIT(16), 0x1);
-
-		/* DAC clock = 160M clock for BW20 */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(21) | BIT(20)), 0x0);
-		odm_set_bb_reg(dm, 0x8ac, BIT(28), 0x1);
-
-		/* ADC buffer clock */
-		odm_set_bb_reg(dm, 0x8c4, BIT(30), 0x1);
-
-		/* RF bandwidth */
-		rf_reg18 = (rf_reg18 | BIT(11) | BIT(10));
-
-		break;
-	}
-	case ODM_BW40M: {
-		/* Small BW([7:6]) = 0, primary channel ([5:2]) = sub-channel,
-		 * rf mode([1:0]) = 40M
-		 */
-		odm_set_bb_reg(dm, 0x8ac, MASKBYTE0,
-			       (((primary_ch_idx & 0xf) << 2) | ODM_BW40M));
-
-		/* CCK primary channel */
-		if (primary_ch_idx == 1)
-			odm_set_bb_reg(dm, 0xa00, BIT(4), primary_ch_idx);
-		else
-			odm_set_bb_reg(dm, 0xa00, BIT(4), 0);
-
-		/* ADC clock = 160M clock for BW40 */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(11) | BIT(10)), 0x0);
-		odm_set_bb_reg(dm, 0x8ac, BIT(17), 0x1);
-
-		/* DAC clock = 160M clock for BW20 */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(23) | BIT(22)), 0x0);
-		odm_set_bb_reg(dm, 0x8ac, BIT(29), 0x1);
-
-		/* ADC buffer clock */
-		odm_set_bb_reg(dm, 0x8c4, BIT(30), 0x1);
-
-		/* RF bandwidth */
-		rf_reg18 = (rf_reg18 & (~(BIT(11) | BIT(10))));
-		rf_reg18 = (rf_reg18 | BIT(11));
-
-		break;
-	}
-	case ODM_BW80M: {
-		/* Small BW([7:6]) = 0, primary channel ([5:2]) = sub-channel,
-		 * rf mode([1:0]) = 80M
-		 */
-		odm_set_bb_reg(dm, 0x8ac, MASKBYTE0,
-			       (((primary_ch_idx & 0xf) << 2) | ODM_BW80M));
-
-		/* ADC clock = 160M clock for BW80 */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(13) | BIT(12)), 0x0);
-		odm_set_bb_reg(dm, 0x8ac, BIT(18), 0x1);
-
-		/* DAC clock = 160M clock for BW20 */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(25) | BIT(24)), 0x0);
-		odm_set_bb_reg(dm, 0x8ac, BIT(30), 0x1);
-
-		/* ADC buffer clock */
-		odm_set_bb_reg(dm, 0x8c4, BIT(30), 0x1);
-
-		/* RF bandwidth */
-		rf_reg18 = (rf_reg18 & (~(BIT(11) | BIT(10))));
-		rf_reg18 = (rf_reg18 | BIT(10));
-
-		break;
-	}
-	case ODM_BW5M: {
-		/* Small BW([7:6]) = 1, primary channel ([5:2]) = 0,
-		 * rf mode([1:0]) = 20M
-		 */
-		odm_set_bb_reg(dm, 0x8ac, MASKBYTE0, (BIT(6) | ODM_BW20M));
-
-		/* ADC clock = 40M clock */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(9) | BIT(8)), 0x2);
-		odm_set_bb_reg(dm, 0x8ac, BIT(16), 0x0);
-
-		/* DAC clock = 160M clock for BW20 */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(21) | BIT(20)), 0x2);
-		odm_set_bb_reg(dm, 0x8ac, BIT(28), 0x0);
-
-		/* ADC buffer clock */
-		odm_set_bb_reg(dm, 0x8c4, BIT(30), 0x0);
-		odm_set_bb_reg(dm, 0x8c8, BIT(31), 0x1);
-
-		/* RF bandwidth */
-		rf_reg18 = (rf_reg18 | BIT(11) | BIT(10));
-
-		break;
-	}
-	case ODM_BW10M: {
-		/* Small BW([7:6]) = 1, primary channel ([5:2]) = 0,
-		 * rf mode([1:0]) = 20M
-		 */
-		odm_set_bb_reg(dm, 0x8ac, MASKBYTE0, (BIT(7) | ODM_BW20M));
-
-		/* ADC clock = 80M clock */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(9) | BIT(8)), 0x3);
-		odm_set_bb_reg(dm, 0x8ac, BIT(16), 0x0);
-
-		/* DAC clock = 160M clock for BW20 */
-		odm_set_bb_reg(dm, 0x8ac, (BIT(21) | BIT(20)), 0x3);
-		odm_set_bb_reg(dm, 0x8ac, BIT(28), 0x0);
-
-		/* ADC buffer clock */
-		odm_set_bb_reg(dm, 0x8c4, BIT(30), 0x0);
-		odm_set_bb_reg(dm, 0x8c8, BIT(31), 0x1);
-
-		/* RF bandwidth */
-		rf_reg18 = (rf_reg18 | BIT(11) | BIT(10));
-
-		break;
-	}
-	default:
-		ODM_RT_TRACE(
-			dm, ODM_PHY_CONFIG,
-			"%s(): Fail to switch bandwidth (bw: %d, primary ch: %d)\n",
-			__func__, bandwidth, primary_ch_idx);
-	}
-
-	/* Write RF register */
-	rf_reg_status = rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x18,
-						RFREGOFFSETMASK, rf_reg18);
-
-	if (dm->rf_type > ODM_1T1R)
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_B, 0x18,
-						RFREGOFFSETMASK, rf_reg18);
-
-	if (!rf_reg_status) {
-		ODM_RT_TRACE(
-			dm, ODM_PHY_CONFIG,
-			"%s(): Fail to switch bandwidth (bw: %d, primary ch: %d), because writing RF register is fail\n",
-			__func__, bandwidth, primary_ch_idx);
-		return false;
-	}
-
-	/* Modify RX DFIR parameters */
-	phydm_rxdfirpar_by_bw_8822b(dm, bandwidth);
-
-	/* Modify CCA parameters */
-	phydm_ccapar_by_bw_8822b(dm, bandwidth);
-	phydm_ccapar_by_rfe_8822b(dm);
-
-	/* Toggle RX path to avoid RX dead zone issue */
-	odm_set_bb_reg(dm, 0x808, MASKBYTE0, 0x0);
-	odm_set_bb_reg(dm, 0x808, MASKBYTE0,
-		       (dm->rx_ant_status | (dm->rx_ant_status << 4)));
-
-	/* Toggle IGI to let RF enter RX mode */
-	IGI = (u8)odm_get_bb_reg(dm, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm));
-	odm_set_bb_reg(dm, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm), IGI - 2);
-	odm_set_bb_reg(dm, ODM_REG(IGI_B, dm), ODM_BIT(IGI, dm), IGI - 2);
-	odm_set_bb_reg(dm, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm), IGI);
-	odm_set_bb_reg(dm, ODM_REG(IGI_B, dm), ODM_BIT(IGI, dm), IGI);
-
-	ODM_RT_TRACE(
-		dm, ODM_PHY_CONFIG,
-		"%s(): Success to switch bandwidth (bw: %d, primary ch: %d)\n",
-		__func__, bandwidth, primary_ch_idx);
-	return true;
-}
-
-bool config_phydm_switch_channel_bw_8822b(struct phy_dm_struct *dm,
-					  u8 central_ch, u8 primary_ch_idx,
-					  enum odm_bw bandwidth)
-{
-	/* Switch band */
-	if (!config_phydm_switch_band_8822b(dm, central_ch))
-		return false;
-
-	/* Switch channel */
-	if (!config_phydm_switch_channel_8822b(dm, central_ch))
-		return false;
-
-	/* Switch bandwidth */
-	if (!config_phydm_switch_bandwidth_8822b(dm, primary_ch_idx, bandwidth))
-		return false;
-
-	return true;
-}
-
-bool config_phydm_trx_mode_8822b(struct phy_dm_struct *dm,
-				 enum odm_rf_path tx_path,
-				 enum odm_rf_path rx_path, bool is_tx2_path)
-{
-	bool rf_reg_status = true;
-	u8 IGI;
-	u32 rf_reg33 = 0;
-	u16 counter = 0;
-
-	ODM_RT_TRACE(dm, ODM_PHY_CONFIG, "%s()=====================>\n",
-		     __func__);
-
-	if (dm->is_disable_phy_api) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): disable PHY API for debug!!\n", __func__);
-		return true;
-	}
-
-	if ((tx_path & (~(ODM_RF_A | ODM_RF_B))) != 0) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): Wrong TX setting (TX: 0x%x)\n", __func__,
-			     tx_path);
-		return false;
-	}
-
-	if ((rx_path & (~(ODM_RF_A | ODM_RF_B))) != 0) {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): Wrong RX setting (RX: 0x%x)\n", __func__,
-			     rx_path);
-		return false;
-	}
-
-	/* RF mode of path-A and path-B */
-	/* Cannot shut down path-A, beacause synthesizer will be shut down when
-	 * path-A is in shut down mode
-	 */
-	if ((tx_path | rx_path) & ODM_RF_A)
-		odm_set_bb_reg(dm, 0xc08, MASKLWORD, 0x3231);
-	else
-		odm_set_bb_reg(dm, 0xc08, MASKLWORD, 0x1111);
-
-	if ((tx_path | rx_path) & ODM_RF_B)
-		odm_set_bb_reg(dm, 0xe08, MASKLWORD, 0x3231);
-	else
-		odm_set_bb_reg(dm, 0xe08, MASKLWORD, 0x1111);
-
-	/* Set TX antenna by Nsts */
-	odm_set_bb_reg(dm, 0x93c, (BIT(19) | BIT(18)), 0x3);
-	odm_set_bb_reg(dm, 0x80c, (BIT(29) | BIT(28)), 0x1);
-
-	/* Control CCK TX path by 0xa07[7] */
-	odm_set_bb_reg(dm, 0x80c, BIT(30), 0x1);
-
-	/* TX logic map and TX path en for Nsts = 1, and CCK TX path*/
-	if (tx_path & ODM_RF_A) {
-		odm_set_bb_reg(dm, 0x93c, 0xfff00000, 0x001);
-		odm_set_bb_reg(dm, 0xa04, 0xf0000000, 0x8);
-	} else if (tx_path & ODM_RF_B) {
-		odm_set_bb_reg(dm, 0x93c, 0xfff00000, 0x002);
-		odm_set_bb_reg(dm, 0xa04, 0xf0000000, 0x4);
-	}
-
-	/* TX logic map and TX path en for Nsts = 2*/
-	if ((tx_path == ODM_RF_A) || (tx_path == ODM_RF_B))
-		odm_set_bb_reg(dm, 0x940, 0xfff0, 0x01);
-	else
-		odm_set_bb_reg(dm, 0x940, 0xfff0, 0x43);
-
-	/* TX path enable */
-	odm_set_bb_reg(dm, 0x80c, MASKBYTE0, ((tx_path << 4) | tx_path));
-
-	/* Tx2path for 1ss */
-	if (!((tx_path == ODM_RF_A) || (tx_path == ODM_RF_B))) {
-		if (is_tx2_path || dm->mp_mode) {
-			/* 2Tx for OFDM */
-			odm_set_bb_reg(dm, 0x93c, 0xfff00000, 0x043);
-
-			/* 2Tx for CCK */
-			odm_set_bb_reg(dm, 0xa04, 0xf0000000, 0xc);
-		}
-	}
-
-	/* Always disable MRC for CCK CCA */
-	odm_set_bb_reg(dm, 0xa2c, BIT(22), 0x0);
-
-	/* Always disable MRC for CCK barker */
-	odm_set_bb_reg(dm, 0xa2c, BIT(18), 0x0);
-
-	/* CCK RX 1st and 2nd path setting*/
-	if (rx_path & ODM_RF_A)
-		odm_set_bb_reg(dm, 0xa04, 0x0f000000, 0x0);
-	else if (rx_path & ODM_RF_B)
-		odm_set_bb_reg(dm, 0xa04, 0x0f000000, 0x5);
-
-	/* RX path enable */
-	odm_set_bb_reg(dm, 0x808, MASKBYTE0, ((rx_path << 4) | rx_path));
-
-	if ((rx_path == ODM_RF_A) || (rx_path == ODM_RF_B)) {
-		/* 1R */
-
-		/* Disable MRC for CCA */
-		/* odm_set_bb_reg(dm, 0xa2c, BIT22, 0x0); */
-
-		/* Disable MRC for barker */
-		/* odm_set_bb_reg(dm, 0xa2c, BIT18, 0x0); */
-
-		/* Disable CCK antenna diversity */
-		/* odm_set_bb_reg(dm, 0xa00, BIT15, 0x0); */
-
-		/* Disable Antenna weighting */
-		odm_set_bb_reg(dm, 0x1904, BIT(16), 0x0);
-		odm_set_bb_reg(dm, 0x800, BIT(28), 0x0);
-		odm_set_bb_reg(dm, 0x850, BIT(23), 0x0);
-	} else {
-		/* 2R */
-
-		/* Enable MRC for CCA */
-		/* odm_set_bb_reg(dm, 0xa2c, BIT22, 0x1); */
-
-		/* Enable MRC for barker */
-		/* odm_set_bb_reg(dm, 0xa2c, BIT18, 0x1); */
-
-		/* Disable CCK antenna diversity */
-		/* odm_set_bb_reg(dm, 0xa00, BIT15, 0x0); */
-
-		/* Enable Antenna weighting */
-		odm_set_bb_reg(dm, 0x1904, BIT(16), 0x1);
-		odm_set_bb_reg(dm, 0x800, BIT(28), 0x1);
-		odm_set_bb_reg(dm, 0x850, BIT(23), 0x1);
-	}
-
-	/* Update TXRX antenna status for PHYDM */
-	dm->tx_ant_status = (tx_path & 0x3);
-	dm->rx_ant_status = (rx_path & 0x3);
-
-	/* MP driver need to support path-B TX\RX */
-
-	while (1) {
-		counter++;
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0xef,
-						RFREGOFFSETMASK, 0x80000);
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x33,
-						RFREGOFFSETMASK, 0x00001);
-
-		ODM_delay_us(2);
-		rf_reg33 = config_phydm_read_rf_reg_8822b(
-			dm, ODM_RF_PATH_A, 0x33, RFREGOFFSETMASK);
-
-		if ((rf_reg33 == 0x00001) &&
-		    (config_phydm_read_rf_check_8822b(rf_reg33)))
-			break;
-		else if (counter == 100) {
-			ODM_RT_TRACE(
-				dm, ODM_PHY_CONFIG,
-				"%s(): Fail to set TRx mode setting, because writing RF mode table is fail\n",
-				__func__);
-			return false;
-		}
-	}
-
-	if ((dm->mp_mode) || *dm->antenna_test || (dm->normal_rx_path)) {
-		/* 0xef 0x80000  0x33 0x00001  0x3e 0x00034  0x3f 0x4080e
-		 * 0xef 0x00000    suggested by Lucas
-		 */
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0xef,
-						RFREGOFFSETMASK, 0x80000);
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x33,
-						RFREGOFFSETMASK, 0x00001);
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x3e,
-						RFREGOFFSETMASK, 0x00034);
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x3f,
-						RFREGOFFSETMASK, 0x4080e);
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0xef,
-						RFREGOFFSETMASK, 0x00000);
-		ODM_RT_TRACE(
-			dm, ODM_PHY_CONFIG,
-			"%s(): MP mode or Antenna test mode!! support path-B TX and RX\n",
-			__func__);
-	} else {
-		/* 0xef 0x80000  0x33 0x00001  0x3e 0x00034  0x3f 0x4080c
-		 * 0xef 0x00000
-		 */
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0xef,
-						RFREGOFFSETMASK, 0x80000);
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x33,
-						RFREGOFFSETMASK, 0x00001);
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x3e,
-						RFREGOFFSETMASK, 0x00034);
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0x3f,
-						RFREGOFFSETMASK, 0x4080c);
-		rf_reg_status =
-			rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0xef,
-						RFREGOFFSETMASK, 0x00000);
-		ODM_RT_TRACE(
-			dm, ODM_PHY_CONFIG,
-			"%s(): Normal mode!! Do not support path-B TX and RX\n",
-			__func__);
-	}
-
-	rf_reg_status = rf_reg_status & config_phydm_write_rf_reg_8822b(
-						dm, ODM_RF_PATH_A, 0xef,
-						RFREGOFFSETMASK, 0x00000);
-
-	if (!rf_reg_status) {
-		ODM_RT_TRACE(
-			dm, ODM_PHY_CONFIG,
-			"%s(): Fail to set TRx mode setting (TX: 0x%x, RX: 0x%x), because writing RF register is fail\n",
-			__func__, tx_path, rx_path);
-		return false;
-	}
-
-	/* Toggle IGI to let RF enter RX mode,
-	 * because BB doesn't send 3-wire command when RX path is enable
-	 */
-	IGI = (u8)odm_get_bb_reg(dm, ODM_REG(IGI_A, dm), ODM_BIT(IGI, dm));
-	odm_write_dig(dm, IGI - 2);
-	odm_write_dig(dm, IGI);
-
-	/* Modify CCA parameters */
-	phydm_ccapar_by_rxpath_8822b(dm);
-	phydm_ccapar_by_rfe_8822b(dm);
-	phydm_rfe_8822b(dm, central_ch_8822b);
-
-	ODM_RT_TRACE(
-		dm, ODM_PHY_CONFIG,
-		"%s(): Success to set TRx mode setting (TX: 0x%x, RX: 0x%x)\n",
-		__func__, tx_path, rx_path);
-	return true;
-}
-
-bool config_phydm_parameter_init(struct phy_dm_struct *dm,
-				 enum odm_parameter_init type)
-{
-	if (type == ODM_PRE_SETTING) {
-		odm_set_bb_reg(dm, 0x808, (BIT(28) | BIT(29)), 0x0);
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): Pre setting: disable OFDM and CCK block\n",
-			     __func__);
-	} else if (type == ODM_POST_SETTING) {
-		odm_set_bb_reg(dm, 0x808, (BIT(28) | BIT(29)), 0x3);
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG,
-			     "%s(): Post setting: enable OFDM and CCK block\n",
-			     __func__);
-		reg82c_8822b = odm_get_bb_reg(dm, 0x82c, MASKDWORD);
-		reg838_8822b = odm_get_bb_reg(dm, 0x838, MASKDWORD);
-		reg830_8822b = odm_get_bb_reg(dm, 0x830, MASKDWORD);
-		reg83c_8822b = odm_get_bb_reg(dm, 0x83c, MASKDWORD);
-		rega20_8822b = odm_get_bb_reg(dm, 0xa20, MASKDWORD);
-		rega24_8822b = odm_get_bb_reg(dm, 0xa24, MASKDWORD);
-		rega28_8822b = odm_get_bb_reg(dm, 0xa28, MASKDWORD);
-	} else {
-		ODM_RT_TRACE(dm, ODM_PHY_CONFIG, "%s(): Wrong type!!\n",
-			     __func__);
-		return false;
-	}
-
-	return true;
-}
-
-/* ======================================================================== */
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_hal_api8822b.h b/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_hal_api8822b.h
deleted file mode 100644
index 5c5370a..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_hal_api8822b.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __INC_PHYDM_API_H_8822B__
-#define __INC_PHYDM_API_H_8822B__
-
-/*2016.08.01 (HW user guide version: R27, SW user guide version: R05,
- *            Modification: R31)
- */
-#define PHY_CONFIG_VERSION_8822B "27.5.31"
-
-#define INVALID_RF_DATA 0xffffffff
-#define INVALID_TXAGC_DATA 0xff
-
-#define config_phydm_read_rf_check_8822b(data) (data != INVALID_RF_DATA)
-#define config_phydm_read_txagc_check_8822b(data) (data != INVALID_TXAGC_DATA)
-
-u32 config_phydm_read_rf_reg_8822b(struct phy_dm_struct *dm,
-				   enum odm_rf_radio_path rf_path, u32 reg_addr,
-				   u32 bit_mask);
-
-bool config_phydm_write_rf_reg_8822b(struct phy_dm_struct *dm,
-				     enum odm_rf_radio_path rf_path,
-				     u32 reg_addr, u32 bit_mask, u32 data);
-
-bool config_phydm_write_txagc_8822b(struct phy_dm_struct *dm, u32 power_index,
-				    enum odm_rf_radio_path path, u8 hw_rate);
-
-u8 config_phydm_read_txagc_8822b(struct phy_dm_struct *dm,
-				 enum odm_rf_radio_path path, u8 hw_rate);
-
-bool config_phydm_switch_band_8822b(struct phy_dm_struct *dm, u8 central_ch);
-
-bool config_phydm_switch_channel_8822b(struct phy_dm_struct *dm, u8 central_ch);
-
-bool config_phydm_switch_bandwidth_8822b(struct phy_dm_struct *dm,
-					 u8 primary_ch_idx,
-					 enum odm_bw bandwidth);
-
-bool config_phydm_switch_channel_bw_8822b(struct phy_dm_struct *dm,
-					  u8 central_ch, u8 primary_ch_idx,
-					  enum odm_bw bandwidth);
-
-bool config_phydm_trx_mode_8822b(struct phy_dm_struct *dm,
-				 enum odm_rf_path tx_path,
-				 enum odm_rf_path rx_path, bool is_tx2_path);
-
-bool config_phydm_parameter_init(struct phy_dm_struct *dm,
-				 enum odm_parameter_init type);
-
-/* ======================================================================== */
-/* These following functions can be used for PHY DM only*/
-
-bool phydm_write_txagc_1byte_8822b(struct phy_dm_struct *dm, u32 power_index,
-				   enum odm_rf_radio_path path, u8 hw_rate);
-
-void phydm_init_hw_info_by_rfe_type_8822b(struct phy_dm_struct *dm);
-
-s32 phydm_get_condition_number_8822B(struct phy_dm_struct *dm);
-
-/* ======================================================================== */
-
-#endif /*  __INC_PHYDM_API_H_8822B__ */
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_iqk_8822b.c b/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_iqk_8822b.c
deleted file mode 100644
index 3ce4932..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_iqk_8822b.c
+++ /dev/null
@@ -1,1399 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../mp_precomp.h"
-#include "../phydm_precomp.h"
-
-/*---------------------------Define Local Constant---------------------------*/
-
-static bool _iqk_rx_iqk_by_path_8822b(void *, u8);
-
-static inline void phydm_set_iqk_info(struct phy_dm_struct *dm,
-				      struct dm_iqk_info *iqk_info, u8 status)
-{
-	bool KFAIL = true;
-
-	while (1) {
-		KFAIL = _iqk_rx_iqk_by_path_8822b(dm, ODM_RF_PATH_A);
-		if (status == 0)
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]S0RXK KFail = 0x%x\n", KFAIL);
-		else if (status == 1)
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]S1RXK KFail = 0x%x\n", KFAIL);
-		if (iqk_info->rxiqk_step == 5) {
-			dm->rf_calibrate_info.iqk_step++;
-			iqk_info->rxiqk_step = 1;
-			if (KFAIL && status == 0)
-				ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-					     "[IQK]S0RXK fail code: %d!!!\n",
-					     iqk_info->rxiqk_fail_code
-						     [0][ODM_RF_PATH_A]);
-			else if (KFAIL && status == 1)
-				ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-					     "[IQK]S1RXK fail code: %d!!!\n",
-					     iqk_info->rxiqk_fail_code
-						     [0][ODM_RF_PATH_A]);
-			break;
-		}
-	}
-
-	iqk_info->kcount++;
-}
-
-static inline void phydm_init_iqk_information(struct dm_iqk_info *iqk_info)
-{
-	u8 i, j, k, m;
-
-	for (i = 0; i < 2; i++) {
-		iqk_info->iqk_channel[i] = 0x0;
-
-		for (j = 0; j < SS_8822B; j++) {
-			iqk_info->lok_idac[i][j] = 0x0;
-			iqk_info->rxiqk_agc[i][j] = 0x0;
-			iqk_info->bypass_iqk[i][j] = 0x0;
-
-			for (k = 0; k < 2; k++) {
-				iqk_info->iqk_fail_report[i][j][k] = true;
-				for (m = 0; m < 8; m++) {
-					iqk_info->iqk_cfir_real[i][j][k][m] =
-						0x0;
-					iqk_info->iqk_cfir_imag[i][j][k][m] =
-						0x0;
-				}
-			}
-
-			for (k = 0; k < 3; k++)
-				iqk_info->retry_count[i][j][k] = 0x0;
-		}
-	}
-}
-
-static inline void phydm_backup_iqk_information(struct dm_iqk_info *iqk_info)
-{
-	u8 i, j, k;
-
-	iqk_info->iqk_channel[1] = iqk_info->iqk_channel[0];
-	for (i = 0; i < 2; i++) {
-		iqk_info->lok_idac[1][i] = iqk_info->lok_idac[0][i];
-		iqk_info->rxiqk_agc[1][i] = iqk_info->rxiqk_agc[0][i];
-		iqk_info->bypass_iqk[1][i] = iqk_info->bypass_iqk[0][i];
-		iqk_info->rxiqk_fail_code[1][i] =
-			iqk_info->rxiqk_fail_code[0][i];
-		for (j = 0; j < 2; j++) {
-			iqk_info->iqk_fail_report[1][i][j] =
-				iqk_info->iqk_fail_report[0][i][j];
-			for (k = 0; k < 8; k++) {
-				iqk_info->iqk_cfir_real[1][i][j][k] =
-					iqk_info->iqk_cfir_real[0][i][j][k];
-				iqk_info->iqk_cfir_imag[1][i][j][k] =
-					iqk_info->iqk_cfir_imag[0][i][j][k];
-			}
-		}
-	}
-
-	for (i = 0; i < 4; i++) {
-		iqk_info->rxiqk_fail_code[0][i] = 0x0;
-		iqk_info->rxiqk_agc[0][i] = 0x0;
-		for (j = 0; j < 2; j++) {
-			iqk_info->iqk_fail_report[0][i][j] = true;
-			iqk_info->gs_retry_count[0][i][j] = 0x0;
-		}
-		for (j = 0; j < 3; j++)
-			iqk_info->retry_count[0][i][j] = 0x0;
-	}
-}
-
-static inline void phydm_set_iqk_cfir(struct phy_dm_struct *dm,
-				      struct dm_iqk_info *iqk_info, u8 path)
-{
-	u8 idx, i;
-	u32 tmp;
-
-	for (idx = 0; idx < 2; idx++) {
-		odm_set_bb_reg(dm, 0x1b00, MASKDWORD, 0xf8000008 | path << 1);
-
-		if (idx == 0)
-			odm_set_bb_reg(dm, 0x1b0c, BIT(13) | BIT(12), 0x3);
-		else
-			odm_set_bb_reg(dm, 0x1b0c, BIT(13) | BIT(12), 0x1);
-
-		odm_set_bb_reg(dm, 0x1bd4,
-			       BIT(20) | BIT(19) | BIT(18) | BIT(17) | BIT(16),
-			       0x10);
-
-		for (i = 0; i < 8; i++) {
-			odm_set_bb_reg(dm, 0x1bd8, MASKDWORD,
-				       0xe0000001 + (i * 4));
-			tmp = odm_get_bb_reg(dm, 0x1bfc, MASKDWORD);
-			iqk_info->iqk_cfir_real[0][path][idx][i] =
-				(tmp & 0x0fff0000) >> 16;
-			iqk_info->iqk_cfir_imag[0][path][idx][i] = tmp & 0xfff;
-		}
-	}
-}
-
-static inline void phydm_get_read_counter(struct phy_dm_struct *dm)
-{
-	u32 counter = 0x0;
-
-	while (1) {
-		if (((odm_read_4byte(dm, 0x1bf0) >> 24) == 0x7f) ||
-		    (counter > 300))
-			break;
-
-		counter++;
-		ODM_delay_ms(1);
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION, "[IQK]counter = %d\n", counter);
-}
-
-/*---------------------------Define Local Constant---------------------------*/
-
-void do_iqk_8822b(void *dm_void, u8 delta_thermal_index, u8 thermal_value,
-		  u8 threshold)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	odm_reset_iqk_result(dm);
-
-	dm->rf_calibrate_info.thermal_value_iqk = thermal_value;
-
-	phy_iq_calibrate_8822b(dm, true);
-}
-
-static void _iqk_fill_iqk_report_8822b(void *dm_void, u8 channel)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	u32 tmp1 = 0x0, tmp2 = 0x0, tmp3 = 0x0;
-	u8 i;
-
-	for (i = 0; i < SS_8822B; i++) {
-		tmp1 = tmp1 +
-		       ((iqk_info->iqk_fail_report[channel][i][TX_IQK] & 0x1)
-			<< i);
-		tmp2 = tmp2 +
-		       ((iqk_info->iqk_fail_report[channel][i][RX_IQK] & 0x1)
-			<< (i + 4));
-		tmp3 = tmp3 + ((iqk_info->rxiqk_fail_code[channel][i] & 0x3)
-			       << (i * 2 + 8));
-	}
-	odm_write_4byte(dm, 0x1b00, 0xf8000008);
-	odm_set_bb_reg(dm, 0x1bf0, 0x0000ffff, tmp1 | tmp2 | tmp3);
-
-	for (i = 0; i < 2; i++)
-		odm_write_4byte(
-			dm, 0x1be8 + (i * 4),
-			(iqk_info->rxiqk_agc[channel][(i * 2) + 1] << 16) |
-				iqk_info->rxiqk_agc[channel][i * 2]);
-}
-
-static void _iqk_backup_mac_bb_8822b(struct phy_dm_struct *dm, u32 *MAC_backup,
-				     u32 *BB_backup, u32 *backup_mac_reg,
-				     u32 *backup_bb_reg)
-{
-	u32 i;
-
-	for (i = 0; i < MAC_REG_NUM_8822B; i++)
-		MAC_backup[i] = odm_read_4byte(dm, backup_mac_reg[i]);
-
-	for (i = 0; i < BB_REG_NUM_8822B; i++)
-		BB_backup[i] = odm_read_4byte(dm, backup_bb_reg[i]);
-}
-
-static void _iqk_backup_rf_8822b(struct phy_dm_struct *dm, u32 RF_backup[][2],
-				 u32 *backup_rf_reg)
-{
-	u32 i;
-
-	for (i = 0; i < RF_REG_NUM_8822B; i++) {
-		RF_backup[i][ODM_RF_PATH_A] = odm_get_rf_reg(
-			dm, ODM_RF_PATH_A, backup_rf_reg[i], RFREGOFFSETMASK);
-		RF_backup[i][ODM_RF_PATH_B] = odm_get_rf_reg(
-			dm, ODM_RF_PATH_B, backup_rf_reg[i], RFREGOFFSETMASK);
-	}
-}
-
-static void _iqk_agc_bnd_int_8822b(struct phy_dm_struct *dm)
-{
-	/*initialize RX AGC bnd, it must do after bbreset*/
-	odm_write_4byte(dm, 0x1b00, 0xf8000008);
-	odm_write_4byte(dm, 0x1b00, 0xf80a7008);
-	odm_write_4byte(dm, 0x1b00, 0xf8015008);
-	odm_write_4byte(dm, 0x1b00, 0xf8000008);
-}
-
-static void _iqk_bb_reset_8822b(struct phy_dm_struct *dm)
-{
-	bool cca_ing = false;
-	u32 count = 0;
-
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x0, RFREGOFFSETMASK, 0x10000);
-	odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x0, RFREGOFFSETMASK, 0x10000);
-
-	while (1) {
-		odm_write_4byte(dm, 0x8fc, 0x0);
-		odm_set_bb_reg(dm, 0x198c, 0x7, 0x7);
-		cca_ing = (bool)odm_get_bb_reg(dm, 0xfa0, BIT(3));
-
-		if (count > 30)
-			cca_ing = false;
-
-		if (cca_ing) {
-			ODM_delay_ms(1);
-			count++;
-		} else {
-			odm_write_1byte(dm, 0x808, 0x0); /*RX ant off*/
-			odm_set_bb_reg(dm, 0xa04,
-				       BIT(27) | BIT(26) | BIT(25) | BIT(24),
-				       0x0); /*CCK RX path off*/
-
-			/*BBreset*/
-			odm_set_bb_reg(dm, 0x0, BIT(16), 0x0);
-			odm_set_bb_reg(dm, 0x0, BIT(16), 0x1);
-
-			if (odm_get_bb_reg(dm, 0x660, BIT(16)))
-				odm_write_4byte(dm, 0x6b4, 0x89000006);
-			break;
-		}
-	}
-}
-
-static void _iqk_afe_setting_8822b(struct phy_dm_struct *dm, bool do_iqk)
-{
-	if (do_iqk) {
-		odm_write_4byte(dm, 0xc60, 0x50000000);
-		odm_write_4byte(dm, 0xc60, 0x70070040);
-		odm_write_4byte(dm, 0xe60, 0x50000000);
-		odm_write_4byte(dm, 0xe60, 0x70070040);
-
-		odm_write_4byte(dm, 0xc58, 0xd8000402);
-		odm_write_4byte(dm, 0xc5c, 0xd1000120);
-		odm_write_4byte(dm, 0xc6c, 0x00000a15);
-		odm_write_4byte(dm, 0xe58, 0xd8000402);
-		odm_write_4byte(dm, 0xe5c, 0xd1000120);
-		odm_write_4byte(dm, 0xe6c, 0x00000a15);
-		_iqk_bb_reset_8822b(dm);
-	} else {
-		odm_write_4byte(dm, 0xc60, 0x50000000);
-		odm_write_4byte(dm, 0xc60, 0x70038040);
-		odm_write_4byte(dm, 0xe60, 0x50000000);
-		odm_write_4byte(dm, 0xe60, 0x70038040);
-
-		odm_write_4byte(dm, 0xc58, 0xd8020402);
-		odm_write_4byte(dm, 0xc5c, 0xde000120);
-		odm_write_4byte(dm, 0xc6c, 0x0000122a);
-		odm_write_4byte(dm, 0xe58, 0xd8020402);
-		odm_write_4byte(dm, 0xe5c, 0xde000120);
-		odm_write_4byte(dm, 0xe6c, 0x0000122a);
-	}
-}
-
-static void _iqk_restore_mac_bb_8822b(struct phy_dm_struct *dm, u32 *MAC_backup,
-				      u32 *BB_backup, u32 *backup_mac_reg,
-				      u32 *backup_bb_reg)
-{
-	u32 i;
-
-	for (i = 0; i < MAC_REG_NUM_8822B; i++)
-		odm_write_4byte(dm, backup_mac_reg[i], MAC_backup[i]);
-	for (i = 0; i < BB_REG_NUM_8822B; i++)
-		odm_write_4byte(dm, backup_bb_reg[i], BB_backup[i]);
-}
-
-static void _iqk_restore_rf_8822b(struct phy_dm_struct *dm, u32 *backup_rf_reg,
-				  u32 RF_backup[][2])
-{
-	u32 i;
-
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xef, RFREGOFFSETMASK, 0x0);
-	odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xef, RFREGOFFSETMASK, 0x0);
-	/*0xdf[4]=0*/
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0xdf, RFREGOFFSETMASK,
-		       RF_backup[0][ODM_RF_PATH_A] & (~BIT(4)));
-	odm_set_rf_reg(dm, ODM_RF_PATH_B, 0xdf, RFREGOFFSETMASK,
-		       RF_backup[0][ODM_RF_PATH_B] & (~BIT(4)));
-
-	for (i = 1; i < RF_REG_NUM_8822B; i++) {
-		odm_set_rf_reg(dm, ODM_RF_PATH_A, backup_rf_reg[i],
-			       RFREGOFFSETMASK, RF_backup[i][ODM_RF_PATH_A]);
-		odm_set_rf_reg(dm, ODM_RF_PATH_B, backup_rf_reg[i],
-			       RFREGOFFSETMASK, RF_backup[i][ODM_RF_PATH_B]);
-	}
-}
-
-static void _iqk_backup_iqk_8822b(struct phy_dm_struct *dm, u8 step)
-{
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	u8 path;
-	u16 iqk_apply[2] = {0xc94, 0xe94};
-
-	if (step == 0x0) {
-		phydm_backup_iqk_information(iqk_info);
-	} else {
-		iqk_info->iqk_channel[0] = iqk_info->rf_reg18;
-		for (path = 0; path < 2; path++) {
-			iqk_info->lok_idac[0][path] =
-				odm_get_rf_reg(dm, (enum odm_rf_radio_path)path,
-					       0x58, RFREGOFFSETMASK);
-			iqk_info->bypass_iqk[0][path] =
-				odm_get_bb_reg(dm, iqk_apply[path], MASKDWORD);
-
-			phydm_set_iqk_cfir(dm, iqk_info, path);
-			odm_set_bb_reg(dm, 0x1bd8, MASKDWORD, 0x0);
-			odm_set_bb_reg(dm, 0x1b0c, BIT(13) | BIT(12), 0x0);
-		}
-	}
-}
-
-static void _iqk_reload_iqk_setting_8822b(
-	struct phy_dm_struct *dm, u8 channel,
-	u8 reload_idx /*1: reload TX, 2: reload LO, TX, RX*/
-	)
-{
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	u8 i, path, idx;
-	u16 iqk_apply[2] = {0xc94, 0xe94};
-
-	for (path = 0; path < 2; path++) {
-		if (reload_idx == 2) {
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0xdf,
-				       BIT(4), 0x1);
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x58,
-				       RFREGOFFSETMASK,
-				       iqk_info->lok_idac[channel][path]);
-		}
-
-		for (idx = 0; idx < reload_idx; idx++) {
-			odm_set_bb_reg(dm, 0x1b00, MASKDWORD,
-				       0xf8000008 | path << 1);
-			odm_set_bb_reg(dm, 0x1b2c, MASKDWORD, 0x7);
-			odm_set_bb_reg(dm, 0x1b38, MASKDWORD, 0x20000000);
-			odm_set_bb_reg(dm, 0x1b3c, MASKDWORD, 0x20000000);
-			odm_set_bb_reg(dm, 0x1bcc, MASKDWORD, 0x00000000);
-
-			if (idx == 0)
-				odm_set_bb_reg(dm, 0x1b0c, BIT(13) | BIT(12),
-					       0x3);
-			else
-				odm_set_bb_reg(dm, 0x1b0c, BIT(13) | BIT(12),
-					       0x1);
-
-			odm_set_bb_reg(dm, 0x1bd4, BIT(20) | BIT(19) | BIT(18) |
-							   BIT(17) | BIT(16),
-				       0x10);
-
-			for (i = 0; i < 8; i++) {
-				odm_write_4byte(
-					dm, 0x1bd8,
-					((0xc0000000 >> idx) + 0x3) + (i * 4) +
-						(iqk_info->iqk_cfir_real
-							 [channel][path][idx][i]
-						 << 9));
-				odm_write_4byte(
-					dm, 0x1bd8,
-					((0xc0000000 >> idx) + 0x1) + (i * 4) +
-						(iqk_info->iqk_cfir_imag
-							 [channel][path][idx][i]
-						 << 9));
-			}
-		}
-		odm_set_bb_reg(dm, iqk_apply[path], MASKDWORD,
-			       iqk_info->bypass_iqk[channel][path]);
-
-		odm_set_bb_reg(dm, 0x1bd8, MASKDWORD, 0x0);
-		odm_set_bb_reg(dm, 0x1b0c, BIT(13) | BIT(12), 0x0);
-	}
-}
-
-static bool _iqk_reload_iqk_8822b(struct phy_dm_struct *dm, bool reset)
-{
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	u8 i;
-	bool reload = false;
-
-	if (reset) {
-		for (i = 0; i < 2; i++)
-			iqk_info->iqk_channel[i] = 0x0;
-	} else {
-		iqk_info->rf_reg18 = odm_get_rf_reg(dm, ODM_RF_PATH_A, 0x18,
-						    RFREGOFFSETMASK);
-
-		for (i = 0; i < 2; i++) {
-			if (iqk_info->rf_reg18 == iqk_info->iqk_channel[i]) {
-				_iqk_reload_iqk_setting_8822b(dm, i, 2);
-				_iqk_fill_iqk_report_8822b(dm, i);
-				ODM_RT_TRACE(
-					dm, ODM_COMP_CALIBRATION,
-					"[IQK]reload IQK result before!!!!\n");
-				reload = true;
-			}
-		}
-	}
-	return reload;
-}
-
-static void _iqk_rfe_setting_8822b(struct phy_dm_struct *dm, bool ext_pa_on)
-{
-	if (ext_pa_on) {
-		/*RFE setting*/
-		odm_write_4byte(dm, 0xcb0, 0x77777777);
-		odm_write_4byte(dm, 0xcb4, 0x00007777);
-		odm_write_4byte(dm, 0xcbc, 0x0000083B);
-		odm_write_4byte(dm, 0xeb0, 0x77777777);
-		odm_write_4byte(dm, 0xeb4, 0x00007777);
-		odm_write_4byte(dm, 0xebc, 0x0000083B);
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[IQK]external PA on!!!!\n");
-	} else {
-		/*RFE setting*/
-		odm_write_4byte(dm, 0xcb0, 0x77777777);
-		odm_write_4byte(dm, 0xcb4, 0x00007777);
-		odm_write_4byte(dm, 0xcbc, 0x00000100);
-		odm_write_4byte(dm, 0xeb0, 0x77777777);
-		odm_write_4byte(dm, 0xeb4, 0x00007777);
-		odm_write_4byte(dm, 0xebc, 0x00000100);
-	}
-}
-
-static void _iqk_rf_setting_8822b(struct phy_dm_struct *dm)
-{
-	u8 path;
-	u32 tmp;
-
-	odm_write_4byte(dm, 0x1b00, 0xf8000008);
-	odm_write_4byte(dm, 0x1bb8, 0x00000000);
-
-	for (path = 0; path < 2; path++) {
-		/*0xdf:B11 = 1,B4 = 0, B1 = 1*/
-		tmp = odm_get_rf_reg(dm, (enum odm_rf_radio_path)path, 0xdf,
-				     RFREGOFFSETMASK);
-		tmp = (tmp & (~BIT(4))) | BIT(1) | BIT(11);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0xdf,
-			       RFREGOFFSETMASK, tmp);
-
-		/*release 0x56 TXBB*/
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x65,
-			       RFREGOFFSETMASK, 0x09000);
-
-		if (*dm->band_type == ODM_BAND_5G) {
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0xef,
-				       BIT(19), 0x1);
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x33,
-				       RFREGOFFSETMASK, 0x00026);
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x3e,
-				       RFREGOFFSETMASK, 0x00037);
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x3f,
-				       RFREGOFFSETMASK, 0xdefce);
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0xef,
-				       BIT(19), 0x0);
-		} else {
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0xef,
-				       BIT(19), 0x1);
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x33,
-				       RFREGOFFSETMASK, 0x00026);
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x3e,
-				       RFREGOFFSETMASK, 0x00037);
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x3f,
-				       RFREGOFFSETMASK, 0x5efce);
-			odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0xef,
-				       BIT(19), 0x0);
-		}
-	}
-}
-
-static void _iqk_configure_macbb_8822b(struct phy_dm_struct *dm)
-{
-	/*MACBB register setting*/
-	odm_write_1byte(dm, 0x522, 0x7f);
-	odm_set_bb_reg(dm, 0x550, BIT(11) | BIT(3), 0x0);
-	odm_set_bb_reg(dm, 0x90c, BIT(15),
-		       0x1); /*0x90c[15]=1: dac_buf reset selection*/
-	odm_set_bb_reg(dm, 0x9a4, BIT(31),
-		       0x0); /*0x9a4[31]=0: Select da clock*/
-	/*0xc94[0]=1, 0xe94[0]=1: let tx through iqk*/
-	odm_set_bb_reg(dm, 0xc94, BIT(0), 0x1);
-	odm_set_bb_reg(dm, 0xe94, BIT(0), 0x1);
-	/* 3-wire off*/
-	odm_write_4byte(dm, 0xc00, 0x00000004);
-	odm_write_4byte(dm, 0xe00, 0x00000004);
-}
-
-static void _iqk_lok_setting_8822b(struct phy_dm_struct *dm, u8 path)
-{
-	odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-	odm_write_4byte(dm, 0x1bcc, 0x9);
-	odm_write_1byte(dm, 0x1b23, 0x00);
-
-	switch (*dm->band_type) {
-	case ODM_BAND_2_4G:
-		odm_write_1byte(dm, 0x1b2b, 0x00);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x56,
-			       RFREGOFFSETMASK, 0x50df2);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x8f,
-			       RFREGOFFSETMASK, 0xadc00);
-		/* WE_LUT_TX_LOK*/
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0xef, BIT(4),
-			       0x1);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x33,
-			       BIT(1) | BIT(0), 0x0);
-		break;
-	case ODM_BAND_5G:
-		odm_write_1byte(dm, 0x1b2b, 0x80);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x56,
-			       RFREGOFFSETMASK, 0x5086c);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x8f,
-			       RFREGOFFSETMASK, 0xa9c00);
-		/* WE_LUT_TX_LOK*/
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0xef, BIT(4),
-			       0x1);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x33,
-			       BIT(1) | BIT(0), 0x1);
-		break;
-	}
-}
-
-static void _iqk_txk_setting_8822b(struct phy_dm_struct *dm, u8 path)
-{
-	odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-	odm_write_4byte(dm, 0x1bcc, 0x9);
-	odm_write_4byte(dm, 0x1b20, 0x01440008);
-
-	if (path == 0x0)
-		odm_write_4byte(dm, 0x1b00, 0xf800000a);
-	else
-		odm_write_4byte(dm, 0x1b00, 0xf8000008);
-	odm_write_4byte(dm, 0x1bcc, 0x3f);
-
-	switch (*dm->band_type) {
-	case ODM_BAND_2_4G:
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x56,
-			       RFREGOFFSETMASK, 0x50df2);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x8f,
-			       RFREGOFFSETMASK, 0xadc00);
-		odm_write_1byte(dm, 0x1b2b, 0x00);
-		break;
-	case ODM_BAND_5G:
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x56,
-			       RFREGOFFSETMASK, 0x500ef);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x8f,
-			       RFREGOFFSETMASK, 0xa9c00);
-		odm_write_1byte(dm, 0x1b2b, 0x80);
-		break;
-	}
-}
-
-static void _iqk_rxk1_setting_8822b(struct phy_dm_struct *dm, u8 path)
-{
-	odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-
-	switch (*dm->band_type) {
-	case ODM_BAND_2_4G:
-		odm_write_1byte(dm, 0x1bcc, 0x9);
-		odm_write_1byte(dm, 0x1b2b, 0x00);
-		odm_write_4byte(dm, 0x1b20, 0x01450008);
-		odm_write_4byte(dm, 0x1b24, 0x01460c88);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x56,
-			       RFREGOFFSETMASK, 0x510e0);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x8f,
-			       RFREGOFFSETMASK, 0xacc00);
-		break;
-	case ODM_BAND_5G:
-		odm_write_1byte(dm, 0x1bcc, 0x09);
-		odm_write_1byte(dm, 0x1b2b, 0x80);
-		odm_write_4byte(dm, 0x1b20, 0x00850008);
-		odm_write_4byte(dm, 0x1b24, 0x00460048);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x56,
-			       RFREGOFFSETMASK, 0x510e0);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x8f,
-			       RFREGOFFSETMASK, 0xadc00);
-		break;
-	}
-}
-
-static void _iqk_rxk2_setting_8822b(struct phy_dm_struct *dm, u8 path,
-				    bool is_gs)
-{
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-
-	odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-
-	switch (*dm->band_type) {
-	case ODM_BAND_2_4G:
-		if (is_gs)
-			iqk_info->tmp1bcc = 0x12;
-		odm_write_1byte(dm, 0x1bcc, iqk_info->tmp1bcc);
-		odm_write_1byte(dm, 0x1b2b, 0x00);
-		odm_write_4byte(dm, 0x1b20, 0x01450008);
-		odm_write_4byte(dm, 0x1b24, 0x01460848);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x56,
-			       RFREGOFFSETMASK, 0x510e0);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x8f,
-			       RFREGOFFSETMASK, 0xa9c00);
-		break;
-	case ODM_BAND_5G:
-		if (is_gs) {
-			if (path == ODM_RF_PATH_A)
-				iqk_info->tmp1bcc = 0x12;
-			else
-				iqk_info->tmp1bcc = 0x09;
-		}
-		odm_write_1byte(dm, 0x1bcc, iqk_info->tmp1bcc);
-		odm_write_1byte(dm, 0x1b2b, 0x80);
-		odm_write_4byte(dm, 0x1b20, 0x00850008);
-		odm_write_4byte(dm, 0x1b24, 0x00460848);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x56,
-			       RFREGOFFSETMASK, 0x51060);
-		odm_set_rf_reg(dm, (enum odm_rf_radio_path)path, 0x8f,
-			       RFREGOFFSETMASK, 0xa9c00);
-		break;
-	}
-}
-
-static bool _iqk_check_cal_8822b(struct phy_dm_struct *dm, u32 IQK_CMD)
-{
-	bool notready = true, fail = true;
-	u32 delay_count = 0x0;
-
-	while (notready) {
-		if (odm_read_4byte(dm, 0x1b00) == (IQK_CMD & 0xffffff0f)) {
-			fail = (bool)odm_get_bb_reg(dm, 0x1b08, BIT(26));
-			notready = false;
-		} else {
-			ODM_delay_ms(1);
-			delay_count++;
-		}
-
-		if (delay_count >= 50) {
-			fail = true;
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]IQK timeout!!!\n");
-			break;
-		}
-	}
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION, "[IQK]delay count = 0x%x!!!\n",
-		     delay_count);
-	return fail;
-}
-
-static bool _iqk_rx_iqk_gain_search_fail_8822b(struct phy_dm_struct *dm,
-					       u8 path, u8 step)
-{
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	bool fail = true;
-	u32 IQK_CMD = 0x0, rf_reg0, tmp, bb_idx;
-	u8 IQMUX[4] = {0x9, 0x12, 0x1b, 0x24};
-	u8 idx;
-
-	for (idx = 0; idx < 4; idx++)
-		if (iqk_info->tmp1bcc == IQMUX[idx])
-			break;
-
-	odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-	odm_write_4byte(dm, 0x1bcc, iqk_info->tmp1bcc);
-
-	if (step == RXIQK1)
-		ODM_RT_TRACE(
-			dm, ODM_COMP_CALIBRATION,
-			"[IQK]============ S%d RXIQK GainSearch ============\n",
-			path);
-
-	if (step == RXIQK1)
-		IQK_CMD = 0xf8000208 | (1 << (path + 4));
-	else
-		IQK_CMD = 0xf8000308 | (1 << (path + 4));
-
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION, "[IQK]S%d GS%d_Trigger = 0x%x\n",
-		     path, step, IQK_CMD);
-
-	odm_write_4byte(dm, 0x1b00, IQK_CMD);
-	odm_write_4byte(dm, 0x1b00, IQK_CMD + 0x1);
-	ODM_delay_ms(GS_delay_8822B);
-	fail = _iqk_check_cal_8822b(dm, IQK_CMD);
-
-	if (step == RXIQK2) {
-		rf_reg0 = odm_get_rf_reg(dm, (enum odm_rf_radio_path)path, 0x0,
-					 RFREGOFFSETMASK);
-		odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-		ODM_RT_TRACE(
-			dm, ODM_COMP_CALIBRATION,
-			"[IQK]S%d ==> RF0x0 = 0x%x, tmp1bcc = 0x%x, idx = %d, 0x1b3c = 0x%x\n",
-			path, rf_reg0, iqk_info->tmp1bcc, idx,
-			odm_read_4byte(dm, 0x1b3c));
-		tmp = (rf_reg0 & 0x1fe0) >> 5;
-		iqk_info->lna_idx = tmp >> 5;
-		bb_idx = tmp & 0x1f;
-		if (bb_idx == 0x1) {
-			if (iqk_info->lna_idx != 0x0)
-				iqk_info->lna_idx--;
-			else if (idx != 3)
-				idx++;
-			else
-				iqk_info->isbnd = true;
-			fail = true;
-		} else if (bb_idx == 0xa) {
-			if (idx != 0)
-				idx--;
-			else if (iqk_info->lna_idx != 0x7)
-				iqk_info->lna_idx++;
-			else
-				iqk_info->isbnd = true;
-			fail = true;
-		} else {
-			fail = false;
-		}
-
-		if (iqk_info->isbnd)
-			fail = false;
-
-		iqk_info->tmp1bcc = IQMUX[idx];
-
-		if (fail) {
-			odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-			odm_write_4byte(
-				dm, 0x1b24,
-				(odm_read_4byte(dm, 0x1b24) & 0xffffe3ff) |
-					(iqk_info->lna_idx << 10));
-		}
-	}
-
-	return fail;
-}
-
-static bool _lok_one_shot_8822b(void *dm_void, u8 path)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	u8 delay_count = 0;
-	bool LOK_notready = false;
-	u32 LOK_temp = 0;
-	u32 IQK_CMD = 0x0;
-
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-		     "[IQK]==========S%d LOK ==========\n", path);
-
-	IQK_CMD = 0xf8000008 | (1 << (4 + path));
-
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION, "[IQK]LOK_Trigger = 0x%x\n",
-		     IQK_CMD);
-
-	odm_write_4byte(dm, 0x1b00, IQK_CMD);
-	odm_write_4byte(dm, 0x1b00, IQK_CMD + 1);
-	/*LOK: CMD ID = 0	{0xf8000018, 0xf8000028}*/
-	/*LOK: CMD ID = 0	{0xf8000019, 0xf8000029}*/
-	ODM_delay_ms(LOK_delay_8822B);
-
-	delay_count = 0;
-	LOK_notready = true;
-
-	while (LOK_notready) {
-		if (odm_read_4byte(dm, 0x1b00) == (IQK_CMD & 0xffffff0f))
-			LOK_notready = false;
-		else
-			LOK_notready = true;
-
-		if (LOK_notready) {
-			ODM_delay_ms(1);
-			delay_count++;
-		}
-
-		if (delay_count >= 50) {
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]S%d LOK timeout!!!\n", path);
-			break;
-		}
-	}
-
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-		     "[IQK]S%d ==> delay_count = 0x%x\n", path, delay_count);
-	if (ODM_COMP_CALIBRATION) {
-		if (!LOK_notready) {
-			LOK_temp =
-				odm_get_rf_reg(dm, (enum odm_rf_radio_path)path,
-					       0x58, RFREGOFFSETMASK);
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]0x58 = 0x%x\n", LOK_temp);
-		} else {
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]==>S%d LOK Fail!!!\n", path);
-		}
-	}
-	iqk_info->lok_fail[path] = LOK_notready;
-	return LOK_notready;
-}
-
-static bool _iqk_one_shot_8822b(void *dm_void, u8 path, u8 idx)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	u8 delay_count = 0;
-	bool notready = true, fail = true;
-	u32 IQK_CMD = 0x0;
-	u16 iqk_apply[2] = {0xc94, 0xe94};
-
-	if (idx == TXIQK)
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[IQK]============ S%d WBTXIQK ============\n",
-			     path);
-	else if (idx == RXIQK1)
-		ODM_RT_TRACE(
-			dm, ODM_COMP_CALIBRATION,
-			"[IQK]============ S%d WBRXIQK STEP1============\n",
-			path);
-	else
-		ODM_RT_TRACE(
-			dm, ODM_COMP_CALIBRATION,
-			"[IQK]============ S%d WBRXIQK STEP2============\n",
-			path);
-
-	if (idx == TXIQK) {
-		IQK_CMD = 0xf8000008 | ((*dm->band_width + 4) << 8) |
-			  (1 << (path + 4));
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[IQK]TXK_Trigger = 0x%x\n", IQK_CMD);
-		/*{0xf8000418, 0xf800042a} ==> 20 WBTXK (CMD = 4)*/
-		/*{0xf8000518, 0xf800052a} ==> 40 WBTXK (CMD = 5)*/
-		/*{0xf8000618, 0xf800062a} ==> 80 WBTXK (CMD = 6)*/
-	} else if (idx == RXIQK1) {
-		if (*dm->band_width == 2)
-			IQK_CMD = 0xf8000808 | (1 << (path + 4));
-		else
-			IQK_CMD = 0xf8000708 | (1 << (path + 4));
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[IQK]RXK1_Trigger = 0x%x\n", IQK_CMD);
-		/*{0xf8000718, 0xf800072a} ==> 20 WBTXK (CMD = 7)*/
-		/*{0xf8000718, 0xf800072a} ==> 40 WBTXK (CMD = 7)*/
-		/*{0xf8000818, 0xf800082a} ==> 80 WBTXK (CMD = 8)*/
-	} else if (idx == RXIQK2) {
-		IQK_CMD = 0xf8000008 | ((*dm->band_width + 9) << 8) |
-			  (1 << (path + 4));
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[IQK]RXK2_Trigger = 0x%x\n", IQK_CMD);
-		/*{0xf8000918, 0xf800092a} ==> 20 WBRXK (CMD = 9)*/
-		/*{0xf8000a18, 0xf8000a2a} ==> 40 WBRXK (CMD = 10)*/
-		/*{0xf8000b18, 0xf8000b2a} ==> 80 WBRXK (CMD = 11)*/
-		odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-		odm_write_4byte(dm, 0x1b24,
-				(odm_read_4byte(dm, 0x1b24) & 0xffffe3ff) |
-					((iqk_info->lna_idx & 0x7) << 10));
-	}
-	odm_write_4byte(dm, 0x1b00, IQK_CMD);
-	odm_write_4byte(dm, 0x1b00, IQK_CMD + 0x1);
-	ODM_delay_ms(WBIQK_delay_8822B);
-
-	while (notready) {
-		if (odm_read_4byte(dm, 0x1b00) == (IQK_CMD & 0xffffff0f))
-			notready = false;
-		else
-			notready = true;
-
-		if (notready) {
-			ODM_delay_ms(1);
-			delay_count++;
-		} else {
-			fail = (bool)odm_get_bb_reg(dm, 0x1b08, BIT(26));
-			break;
-		}
-
-		if (delay_count >= 50) {
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]S%d IQK timeout!!!\n", path);
-			break;
-		}
-	}
-
-	if (dm->debug_components & ODM_COMP_CALIBRATION) {
-		odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[IQK]S%d ==> 0x1b00 = 0x%x, 0x1b08 = 0x%x\n",
-			     path, odm_read_4byte(dm, 0x1b00),
-			     odm_read_4byte(dm, 0x1b08));
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[IQK]S%d ==> delay_count = 0x%x\n", path,
-			     delay_count);
-		if (idx != TXIQK)
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]S%d ==> RF0x0 = 0x%x, RF0x56 = 0x%x\n",
-				path,
-				odm_get_rf_reg(dm, (enum odm_rf_radio_path)path,
-					       0x0, RFREGOFFSETMASK),
-				odm_get_rf_reg(dm, (enum odm_rf_radio_path)path,
-					       0x56, RFREGOFFSETMASK));
-	}
-
-	odm_write_4byte(dm, 0x1b00, 0xf8000008 | path << 1);
-
-	if (idx == TXIQK)
-		if (fail)
-			odm_set_bb_reg(dm, iqk_apply[path], BIT(0), 0x0);
-
-	if (idx == RXIQK2) {
-		iqk_info->rxiqk_agc[0][path] =
-			(u16)(((odm_get_rf_reg(dm, (enum odm_rf_radio_path)path,
-					       0x0, RFREGOFFSETMASK) >>
-				5) &
-			       0xff) |
-			      (iqk_info->tmp1bcc << 8));
-
-		odm_write_4byte(dm, 0x1b38, 0x20000000);
-
-		if (!fail)
-			odm_set_bb_reg(dm, iqk_apply[path], (BIT(11) | BIT(10)),
-				       0x1);
-		else
-			odm_set_bb_reg(dm, iqk_apply[path], (BIT(11) | BIT(10)),
-				       0x0);
-	}
-
-	if (idx == TXIQK)
-		iqk_info->iqk_fail_report[0][path][TXIQK] = fail;
-	else
-		iqk_info->iqk_fail_report[0][path][RXIQK] = fail;
-
-	return fail;
-}
-
-static bool _iqk_rx_iqk_by_path_8822b(void *dm_void, u8 path)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	bool KFAIL = true, gonext;
-
-	switch (iqk_info->rxiqk_step) {
-	case 1: /*gain search_RXK1*/
-		_iqk_rxk1_setting_8822b(dm, path);
-		gonext = false;
-		while (1) {
-			KFAIL = _iqk_rx_iqk_gain_search_fail_8822b(dm, path,
-								   RXIQK1);
-			if (KFAIL &&
-			    (iqk_info->gs_retry_count[0][path][GSRXK1] < 2))
-				iqk_info->gs_retry_count[0][path][GSRXK1]++;
-			else if (KFAIL) {
-				iqk_info->rxiqk_fail_code[0][path] = 0;
-				iqk_info->rxiqk_step = 5;
-				gonext = true;
-			} else {
-				iqk_info->rxiqk_step++;
-				gonext = true;
-			}
-			if (gonext)
-				break;
-		}
-		break;
-	case 2: /*gain search_RXK2*/
-		_iqk_rxk2_setting_8822b(dm, path, true);
-		iqk_info->isbnd = false;
-		while (1) {
-			KFAIL = _iqk_rx_iqk_gain_search_fail_8822b(dm, path,
-								   RXIQK2);
-			if (KFAIL &&
-			    (iqk_info->gs_retry_count[0][path][GSRXK2] <
-			     rxiqk_gs_limit)) {
-				iqk_info->gs_retry_count[0][path][GSRXK2]++;
-			} else {
-				iqk_info->rxiqk_step++;
-				break;
-			}
-		}
-		break;
-	case 3: /*RXK1*/
-		_iqk_rxk1_setting_8822b(dm, path);
-		gonext = false;
-		while (1) {
-			KFAIL = _iqk_one_shot_8822b(dm, path, RXIQK1);
-			if (KFAIL &&
-			    (iqk_info->retry_count[0][path][RXIQK1] < 2))
-				iqk_info->retry_count[0][path][RXIQK1]++;
-			else if (KFAIL) {
-				iqk_info->rxiqk_fail_code[0][path] = 1;
-				iqk_info->rxiqk_step = 5;
-				gonext = true;
-			} else {
-				iqk_info->rxiqk_step++;
-				gonext = true;
-			}
-			if (gonext)
-				break;
-		}
-		break;
-	case 4: /*RXK2*/
-		_iqk_rxk2_setting_8822b(dm, path, false);
-		gonext = false;
-		while (1) {
-			KFAIL = _iqk_one_shot_8822b(dm, path, RXIQK2);
-			if (KFAIL &&
-			    (iqk_info->retry_count[0][path][RXIQK2] < 2))
-				iqk_info->retry_count[0][path][RXIQK2]++;
-			else if (KFAIL) {
-				iqk_info->rxiqk_fail_code[0][path] = 2;
-				iqk_info->rxiqk_step = 5;
-				gonext = true;
-			} else {
-				iqk_info->rxiqk_step++;
-				gonext = true;
-			}
-			if (gonext)
-				break;
-		}
-		break;
-	}
-	return KFAIL;
-}
-
-static void _iqk_iqk_by_path_8822b(void *dm_void, bool segment_iqk)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	bool KFAIL = true;
-	u8 i, kcount_limit;
-
-	if (*dm->band_width == 2)
-		kcount_limit = kcount_limit_80m;
-	else
-		kcount_limit = kcount_limit_others;
-
-	while (1) {
-		switch (dm->rf_calibrate_info.iqk_step) {
-		case 1: /*S0 LOK*/
-			_iqk_lok_setting_8822b(dm, ODM_RF_PATH_A);
-			_lok_one_shot_8822b(dm, ODM_RF_PATH_A);
-			dm->rf_calibrate_info.iqk_step++;
-			break;
-		case 2: /*S1 LOK*/
-			_iqk_lok_setting_8822b(dm, ODM_RF_PATH_B);
-			_lok_one_shot_8822b(dm, ODM_RF_PATH_B);
-			dm->rf_calibrate_info.iqk_step++;
-			break;
-		case 3: /*S0 TXIQK*/
-			_iqk_txk_setting_8822b(dm, ODM_RF_PATH_A);
-			KFAIL = _iqk_one_shot_8822b(dm, ODM_RF_PATH_A, TXIQK);
-			iqk_info->kcount++;
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]S0TXK KFail = 0x%x\n", KFAIL);
-
-			if (KFAIL &&
-			    (iqk_info->retry_count[0][ODM_RF_PATH_A][TXIQK] <
-			     3))
-				iqk_info->retry_count[0][ODM_RF_PATH_A]
-						     [TXIQK]++;
-			else
-				dm->rf_calibrate_info.iqk_step++;
-			break;
-		case 4: /*S1 TXIQK*/
-			_iqk_txk_setting_8822b(dm, ODM_RF_PATH_B);
-			KFAIL = _iqk_one_shot_8822b(dm, ODM_RF_PATH_B, TXIQK);
-			iqk_info->kcount++;
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]S1TXK KFail = 0x%x\n", KFAIL);
-			if (KFAIL &&
-			    iqk_info->retry_count[0][ODM_RF_PATH_B][TXIQK] < 3)
-				iqk_info->retry_count[0][ODM_RF_PATH_B]
-						     [TXIQK]++;
-			else
-				dm->rf_calibrate_info.iqk_step++;
-			break;
-		case 5: /*S0 RXIQK*/
-			phydm_set_iqk_info(dm, iqk_info, 0);
-			break;
-		case 6: /*S1 RXIQK*/
-			phydm_set_iqk_info(dm, iqk_info, 1);
-			break;
-		}
-
-		if (dm->rf_calibrate_info.iqk_step == 7) {
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]==========LOK summary ==========\n");
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]PathA_LOK_notready = %d, PathB_LOK1_notready = %d\n",
-				iqk_info->lok_fail[ODM_RF_PATH_A],
-				iqk_info->lok_fail[ODM_RF_PATH_B]);
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]==========IQK summary ==========\n");
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]PathA_TXIQK_fail = %d, PathB_TXIQK_fail = %d\n",
-				iqk_info->iqk_fail_report[0][ODM_RF_PATH_A]
-							 [TXIQK],
-				iqk_info->iqk_fail_report[0][ODM_RF_PATH_B]
-							 [TXIQK]);
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]PathA_RXIQK_fail = %d, PathB_RXIQK_fail = %d\n",
-				iqk_info->iqk_fail_report[0][ODM_RF_PATH_A]
-							 [RXIQK],
-				iqk_info->iqk_fail_report[0][ODM_RF_PATH_B]
-							 [RXIQK]);
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]PathA_TXIQK_retry = %d, PathB_TXIQK_retry = %d\n",
-				iqk_info->retry_count[0][ODM_RF_PATH_A][TXIQK],
-				iqk_info->retry_count[0][ODM_RF_PATH_B][TXIQK]);
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]PathA_RXK1_retry = %d, PathA_RXK2_retry = %d, PathB_RXK1_retry = %d, PathB_RXK2_retry = %d\n",
-				iqk_info->retry_count[0][ODM_RF_PATH_A][RXIQK1],
-				iqk_info->retry_count[0][ODM_RF_PATH_A][RXIQK2],
-				iqk_info->retry_count[0][ODM_RF_PATH_B][RXIQK1],
-				iqk_info->retry_count[0][ODM_RF_PATH_B]
-						     [RXIQK2]);
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]PathA_GS1_retry = %d, PathA_GS2_retry = %d, PathB_GS1_retry = %d, PathB_GS2_retry = %d\n",
-				iqk_info->gs_retry_count[0][ODM_RF_PATH_A]
-							[GSRXK1],
-				iqk_info->gs_retry_count[0][ODM_RF_PATH_A]
-							[GSRXK2],
-				iqk_info->gs_retry_count[0][ODM_RF_PATH_B]
-							[GSRXK1],
-				iqk_info->gs_retry_count[0][ODM_RF_PATH_B]
-							[GSRXK2]);
-			for (i = 0; i < 2; i++) {
-				odm_write_4byte(dm, 0x1b00,
-						0xf8000008 | i << 1);
-				odm_write_4byte(dm, 0x1b2c, 0x7);
-				odm_write_4byte(dm, 0x1bcc, 0x0);
-			}
-			break;
-		}
-
-		if (segment_iqk && (iqk_info->kcount == kcount_limit))
-			break;
-	}
-}
-
-static void _iqk_start_iqk_8822b(struct phy_dm_struct *dm, bool segment_iqk)
-{
-	u32 tmp;
-
-	/*GNT_WL = 1*/
-	tmp = odm_get_rf_reg(dm, ODM_RF_PATH_A, 0x1, RFREGOFFSETMASK);
-	tmp = tmp | BIT(5) | BIT(0);
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x1, RFREGOFFSETMASK, tmp);
-
-	tmp = odm_get_rf_reg(dm, ODM_RF_PATH_B, 0x1, RFREGOFFSETMASK);
-	tmp = tmp | BIT(5) | BIT(0);
-	odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x1, RFREGOFFSETMASK, tmp);
-
-	_iqk_iqk_by_path_8822b(dm, segment_iqk);
-}
-
-static void _iq_calibrate_8822b_init(void *dm_void)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-	u8 i, j;
-
-	if (iqk_info->iqk_times == 0) {
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[IQK]=====>PHY_IQCalibrate_8822B_Init\n");
-
-		for (i = 0; i < SS_8822B; i++) {
-			for (j = 0; j < 2; j++) {
-				iqk_info->lok_fail[i] = true;
-				iqk_info->iqk_fail[j][i] = true;
-				iqk_info->iqc_matrix[j][i] = 0x20000000;
-			}
-		}
-
-		phydm_init_iqk_information(iqk_info);
-	}
-}
-
-static void _phy_iq_calibrate_8822b(struct phy_dm_struct *dm, bool reset)
-{
-	u32 MAC_backup[MAC_REG_NUM_8822B], BB_backup[BB_REG_NUM_8822B],
-		RF_backup[RF_REG_NUM_8822B][SS_8822B];
-	u32 backup_mac_reg[MAC_REG_NUM_8822B] = {0x520, 0x550};
-	u32 backup_bb_reg[BB_REG_NUM_8822B] = {
-		0x808, 0x90c, 0xc00, 0xcb0,  0xcb4, 0xcbc, 0xe00,
-		0xeb0, 0xeb4, 0xebc, 0x1990, 0x9a4, 0xa04};
-	u32 backup_rf_reg[RF_REG_NUM_8822B] = {0xdf, 0x8f, 0x65, 0x0, 0x1};
-	bool segment_iqk = false, is_mp = false;
-
-	struct dm_iqk_info *iqk_info = &dm->IQK_info;
-
-	if (dm->mp_mode)
-		is_mp = true;
-	else if (dm->is_linked)
-		segment_iqk = true;
-
-	if (!is_mp)
-		if (_iqk_reload_iqk_8822b(dm, reset))
-			return;
-
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-		     "[IQK]==========IQK strat!!!!!==========\n");
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_CALIBRATION,
-		"[IQK]band_type = %s, band_width = %d, ExtPA2G = %d, ext_pa_5g = %d\n",
-		(*dm->band_type == ODM_BAND_5G) ? "5G" : "2G", *dm->band_width,
-		dm->ext_pa, dm->ext_pa_5g);
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-		     "[IQK]Interface = %d, cut_version = %x\n",
-		     dm->support_interface, dm->cut_version);
-
-	iqk_info->iqk_times++;
-
-	iqk_info->kcount = 0;
-	dm->rf_calibrate_info.iqk_total_progressing_time = 0;
-	dm->rf_calibrate_info.iqk_step = 1;
-	iqk_info->rxiqk_step = 1;
-
-	_iqk_backup_iqk_8822b(dm, 0);
-	_iqk_backup_mac_bb_8822b(dm, MAC_backup, BB_backup, backup_mac_reg,
-				 backup_bb_reg);
-	_iqk_backup_rf_8822b(dm, RF_backup, backup_rf_reg);
-
-	while (1) {
-		if (!is_mp)
-			dm->rf_calibrate_info.iqk_start_time =
-				odm_get_current_time(dm);
-
-		_iqk_configure_macbb_8822b(dm);
-		_iqk_afe_setting_8822b(dm, true);
-		_iqk_rfe_setting_8822b(dm, false);
-		_iqk_agc_bnd_int_8822b(dm);
-		_iqk_rf_setting_8822b(dm);
-
-		_iqk_start_iqk_8822b(dm, segment_iqk);
-
-		_iqk_afe_setting_8822b(dm, false);
-		_iqk_restore_mac_bb_8822b(dm, MAC_backup, BB_backup,
-					  backup_mac_reg, backup_bb_reg);
-		_iqk_restore_rf_8822b(dm, backup_rf_reg, RF_backup);
-
-		if (!is_mp) {
-			dm->rf_calibrate_info.iqk_progressing_time =
-				odm_get_progressing_time(
-					dm,
-					dm->rf_calibrate_info.iqk_start_time);
-			dm->rf_calibrate_info.iqk_total_progressing_time +=
-				odm_get_progressing_time(
-					dm,
-					dm->rf_calibrate_info.iqk_start_time);
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]IQK progressing_time = %lld ms\n",
-				dm->rf_calibrate_info.iqk_progressing_time);
-		}
-
-		if (dm->rf_calibrate_info.iqk_step == 7)
-			break;
-
-		iqk_info->kcount = 0;
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION, "[IQK]delay 50ms!!!\n");
-		ODM_delay_ms(50);
-	}
-
-	_iqk_backup_iqk_8822b(dm, 1);
-	_iqk_fill_iqk_report_8822b(dm, 0);
-
-	if (!is_mp)
-		ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-			     "[IQK]Total IQK progressing_time = %lld ms\n",
-			     dm->rf_calibrate_info.iqk_total_progressing_time);
-
-	ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-		     "[IQK]==========IQK end!!!!!==========\n");
-}
-
-static void _phy_iq_calibrate_by_fw_8822b(void *dm_void, u8 clear) {}
-
-/*IQK version:v3.3, NCTL v0.6*/
-/*1.The new gainsearch method for RXIQK*/
-/*2.The new format of IQK report register: 0x1be8/0x1bec*/
-/*3. add the option of segment IQK*/
-void phy_iq_calibrate_8822b(void *dm_void, bool clear)
-{
-	struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
-
-	dm->iqk_fw_offload = 0;
-
-	/*FW IQK*/
-	if (dm->iqk_fw_offload) {
-		if (!dm->rf_calibrate_info.is_iqk_in_progress) {
-			odm_acquire_spin_lock(dm, RT_IQK_SPINLOCK);
-			dm->rf_calibrate_info.is_iqk_in_progress = true;
-			odm_release_spin_lock(dm, RT_IQK_SPINLOCK);
-
-			dm->rf_calibrate_info.iqk_start_time =
-				odm_get_current_time(dm);
-
-			odm_write_4byte(dm, 0x1b00, 0xf8000008);
-			odm_set_bb_reg(dm, 0x1bf0, 0xff000000, 0xff);
-			ODM_RT_TRACE(dm, ODM_COMP_CALIBRATION,
-				     "[IQK]0x1bf0 = 0x%x\n",
-				     odm_read_4byte(dm, 0x1bf0));
-
-			_phy_iq_calibrate_by_fw_8822b(dm, clear);
-			phydm_get_read_counter(dm);
-
-			dm->rf_calibrate_info.iqk_progressing_time =
-				odm_get_progressing_time(
-					dm,
-					dm->rf_calibrate_info.iqk_start_time);
-
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]IQK progressing_time = %lld ms\n",
-				dm->rf_calibrate_info.iqk_progressing_time);
-
-			odm_acquire_spin_lock(dm, RT_IQK_SPINLOCK);
-			dm->rf_calibrate_info.is_iqk_in_progress = false;
-			odm_release_spin_lock(dm, RT_IQK_SPINLOCK);
-		} else {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"== Return the IQK CMD, because the IQK in Progress ==\n");
-		}
-
-	} else {
-		_iq_calibrate_8822b_init(dm_void);
-
-		if (!dm->rf_calibrate_info.is_iqk_in_progress) {
-			odm_acquire_spin_lock(dm, RT_IQK_SPINLOCK);
-			dm->rf_calibrate_info.is_iqk_in_progress = true;
-			odm_release_spin_lock(dm, RT_IQK_SPINLOCK);
-			if (dm->mp_mode)
-				dm->rf_calibrate_info.iqk_start_time =
-					odm_get_current_time(dm);
-
-			_phy_iq_calibrate_8822b(dm, clear);
-			if (dm->mp_mode) {
-				dm->rf_calibrate_info.iqk_progressing_time =
-					odm_get_progressing_time(
-						dm, dm->rf_calibrate_info
-							    .iqk_start_time);
-				ODM_RT_TRACE(
-					dm, ODM_COMP_CALIBRATION,
-					"[IQK]IQK progressing_time = %lld ms\n",
-					dm->rf_calibrate_info
-						.iqk_progressing_time);
-			}
-			odm_acquire_spin_lock(dm, RT_IQK_SPINLOCK);
-			dm->rf_calibrate_info.is_iqk_in_progress = false;
-			odm_release_spin_lock(dm, RT_IQK_SPINLOCK);
-		} else {
-			ODM_RT_TRACE(
-				dm, ODM_COMP_CALIBRATION,
-				"[IQK]== Return the IQK CMD, because the IQK in Progress ==\n");
-		}
-	}
-}
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_iqk_8822b.h b/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_iqk_8822b.h
deleted file mode 100644
index 246518e..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_iqk_8822b.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __PHYDM_IQK_8822B_H__
-#define __PHYDM_IQK_8822B_H__
-
-/*--------------------------Define Parameters-------------------------------*/
-#define MAC_REG_NUM_8822B 2
-#define BB_REG_NUM_8822B 13
-#define RF_REG_NUM_8822B 5
-
-#define LOK_delay_8822B 2
-#define GS_delay_8822B 2
-#define WBIQK_delay_8822B 2
-
-#define TXIQK 0
-#define RXIQK 1
-#define SS_8822B 2
-
-/*------------------------End Define Parameters-------------------------------*/
-
-void do_iqk_8822b(void *dm_void, u8 delta_thermal_index, u8 thermal_value,
-		  u8 threshold);
-
-void phy_iq_calibrate_8822b(void *dm_void, bool clear);
-
-#endif /* #ifndef __PHYDM_IQK_8822B_H__*/
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_regconfig8822b.c b/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_regconfig8822b.c
deleted file mode 100644
index 8f96c77..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_regconfig8822b.c
+++ /dev/null
@@ -1,157 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../mp_precomp.h"
-#include "../phydm_precomp.h"
-
-void odm_config_rf_reg_8822b(struct phy_dm_struct *dm, u32 addr, u32 data,
-			     enum odm_rf_radio_path RF_PATH, u32 reg_addr)
-{
-	if (addr == 0xffe) {
-		ODM_sleep_ms(50);
-	} else if (addr == 0xfe) {
-		ODM_delay_us(100);
-	} else {
-		odm_set_rf_reg(dm, RF_PATH, reg_addr, RFREGOFFSETMASK, data);
-
-		/* Add 1us delay between BB/RF register setting. */
-		ODM_delay_us(1);
-	}
-}
-
-void odm_config_rf_radio_a_8822b(struct phy_dm_struct *dm, u32 addr, u32 data)
-{
-	u32 content = 0x1000; /* RF_Content: radioa_txt */
-	u32 maskfor_phy_set = (u32)(content & 0xE000);
-
-	odm_config_rf_reg_8822b(dm, addr, data, ODM_RF_PATH_A,
-				addr | maskfor_phy_set);
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"===> odm_config_rf_with_header_file: [RadioA] %08X %08X\n",
-		addr, data);
-}
-
-void odm_config_rf_radio_b_8822b(struct phy_dm_struct *dm, u32 addr, u32 data)
-{
-	u32 content = 0x1001; /* RF_Content: radiob_txt */
-	u32 maskfor_phy_set = (u32)(content & 0xE000);
-
-	odm_config_rf_reg_8822b(dm, addr, data, ODM_RF_PATH_B,
-				addr | maskfor_phy_set);
-
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"===> odm_config_rf_with_header_file: [RadioB] %08X %08X\n",
-		addr, data);
-}
-
-void odm_config_mac_8822b(struct phy_dm_struct *dm, u32 addr, u8 data)
-{
-	odm_write_1byte(dm, addr, data);
-	ODM_RT_TRACE(
-		dm, ODM_COMP_INIT,
-		"===> odm_config_mac_with_header_file: [MAC_REG] %08X %08X\n",
-		addr, data);
-}
-
-void odm_update_agc_big_jump_lmt_8822b(struct phy_dm_struct *dm, u32 addr,
-				       u32 data)
-{
-	struct dig_thres *dig_tab = &dm->dm_dig_table;
-	u8 rf_gain_idx = (u8)((data & 0xFF000000) >> 24);
-	u8 bb_gain_idx = (u8)((data & 0x00ff0000) >> 16);
-	u8 agc_table_idx = (u8)((data & 0x00000f00) >> 8);
-	static bool is_limit;
-
-	if (addr != 0x81c)
-		return;
-
-	if (bb_gain_idx > 0x3c) {
-		if ((rf_gain_idx == dig_tab->rf_gain_idx) && !is_limit) {
-			is_limit = true;
-			dig_tab->big_jump_lmt[agc_table_idx] = bb_gain_idx - 2;
-			ODM_RT_TRACE(
-				dm, ODM_COMP_DIG,
-				"===> [AGC_TAB] big_jump_lmt [%d] = 0x%x\n",
-				agc_table_idx,
-				dig_tab->big_jump_lmt[agc_table_idx]);
-		}
-	} else {
-		is_limit = false;
-	}
-
-	dig_tab->rf_gain_idx = rf_gain_idx;
-}
-
-void odm_config_bb_agc_8822b(struct phy_dm_struct *dm, u32 addr, u32 bitmask,
-			     u32 data)
-{
-	odm_update_agc_big_jump_lmt_8822b(dm, addr, data);
-
-	odm_set_bb_reg(dm, addr, bitmask, data);
-
-	/* Add 1us delay between BB/RF register setting. */
-	ODM_delay_us(1);
-
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> %s: [AGC_TAB] %08X %08X\n",
-		     __func__, addr, data);
-}
-
-void odm_config_bb_phy_reg_pg_8822b(struct phy_dm_struct *dm, u32 band,
-				    u32 rf_path, u32 tx_num, u32 addr,
-				    u32 bitmask, u32 data)
-{
-	if (addr == 0xfe || addr == 0xffe) {
-		ODM_sleep_ms(50);
-	} else {
-		phy_store_tx_power_by_rate(dm->adapter, band, rf_path, tx_num,
-					   addr, bitmask, data);
-	}
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> %s: [PHY_REG] %08X %08X %08X\n",
-		     __func__, addr, bitmask, data);
-}
-
-void odm_config_bb_phy_8822b(struct phy_dm_struct *dm, u32 addr, u32 bitmask,
-			     u32 data)
-{
-	if (addr == 0xfe)
-		ODM_sleep_ms(50);
-	else if (addr == 0xfd)
-		ODM_delay_ms(5);
-	else if (addr == 0xfc)
-		ODM_delay_ms(1);
-	else if (addr == 0xfb)
-		ODM_delay_us(50);
-	else if (addr == 0xfa)
-		ODM_delay_us(5);
-	else if (addr == 0xf9)
-		ODM_delay_us(1);
-	else
-		odm_set_bb_reg(dm, addr, bitmask, data);
-
-	/* Add 1us delay between BB/RF register setting. */
-	ODM_delay_us(1);
-	ODM_RT_TRACE(dm, ODM_COMP_INIT, "===> %s: [PHY_REG] %08X %08X\n",
-		     __func__, addr, data);
-}
-
-void odm_config_bb_txpwr_lmt_8822b(struct phy_dm_struct *dm, u8 *regulation,
-				   u8 *band, u8 *bandwidth, u8 *rate_section,
-				   u8 *rf_path, u8 *channel, u8 *power_limit)
-{
-	phy_set_tx_power_limit(dm, regulation, band, bandwidth, rate_section,
-			       rf_path, channel, power_limit);
-}
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_regconfig8822b.h b/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_regconfig8822b.h
deleted file mode 100644
index 4606427..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_regconfig8822b.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __INC_ODM_REGCONFIG_H_8822B
-#define __INC_ODM_REGCONFIG_H_8822B
-
-void odm_config_rf_reg_8822b(struct phy_dm_struct *dm, u32 addr, u32 data,
-			     enum odm_rf_radio_path RF_PATH, u32 reg_addr);
-
-void odm_config_rf_radio_a_8822b(struct phy_dm_struct *dm, u32 addr, u32 data);
-
-void odm_config_rf_radio_b_8822b(struct phy_dm_struct *dm, u32 addr, u32 data);
-
-void odm_config_mac_8822b(struct phy_dm_struct *dm, u32 addr, u8 data);
-
-void odm_update_agc_big_jump_lmt_8822b(struct phy_dm_struct *dm, u32 addr,
-				       u32 data);
-
-void odm_config_bb_agc_8822b(struct phy_dm_struct *dm, u32 addr, u32 bitmask,
-			     u32 data);
-
-void odm_config_bb_phy_reg_pg_8822b(struct phy_dm_struct *dm, u32 band,
-				    u32 rf_path, u32 tx_num, u32 addr,
-				    u32 bitmask, u32 data);
-
-void odm_config_bb_phy_8822b(struct phy_dm_struct *dm, u32 addr, u32 bitmask,
-			     u32 data);
-
-void odm_config_bb_txpwr_lmt_8822b(struct phy_dm_struct *dm, u8 *regulation,
-				   u8 *band, u8 *bandwidth, u8 *rate_section,
-				   u8 *rf_path, u8 *channel, u8 *power_limit);
-
-#endif /* RTL8822B_SUPPORT == 1*/
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_rtl8822b.c b/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_rtl8822b.c
deleted file mode 100644
index a05c8aa..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_rtl8822b.c
+++ /dev/null
@@ -1,214 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../mp_precomp.h"
-#include "../phydm_precomp.h"
-
-static void phydm_dynamic_switch_htstf_mumimo_8822b(struct phy_dm_struct *dm)
-{
-	/*if rssi > 40dBm, enable HT-STF gain controller,
-	 *otherwise, if rssi < 40dBm, disable the controller
-	 */
-	/*add by Chun-Hung Ho 20160711 */
-	if (dm->rssi_min >= 40)
-		odm_set_bb_reg(dm, 0x8d8, BIT(17), 0x1);
-	else if (dm->rssi_min < 35)
-		odm_set_bb_reg(dm, 0x8d8, BIT(17), 0x0);
-
-	ODM_RT_TRACE(dm, ODM_COMP_COMMON, "%s, rssi_min = %d\n", __func__,
-		     dm->rssi_min);
-}
-
-static void _set_tx_a_cali_value(struct phy_dm_struct *dm, u8 rf_path,
-				 u8 offset, u8 tx_a_bias_offset)
-{
-	u32 modi_tx_a_value = 0;
-	u8 tmp1_byte = 0;
-	bool is_minus = false;
-	u8 comp_value = 0;
-
-	switch (offset) {
-	case 0x0:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X10124);
-		break;
-	case 0x1:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X10524);
-		break;
-	case 0x2:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X10924);
-		break;
-	case 0x3:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X10D24);
-		break;
-	case 0x4:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X30164);
-		break;
-	case 0x5:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X30564);
-		break;
-	case 0x6:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X30964);
-		break;
-	case 0x7:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X30D64);
-		break;
-	case 0x8:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X50195);
-		break;
-	case 0x9:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X50595);
-		break;
-	case 0xa:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X50995);
-		break;
-	case 0xb:
-		odm_set_rf_reg(dm, rf_path, 0x18, 0xFFFFF, 0X50D95);
-		break;
-	default:
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-			     "Invalid TxA band offset...\n");
-		return;
-	}
-
-	/* Get TxA value */
-	modi_tx_a_value = odm_get_rf_reg(dm, rf_path, 0x61, 0xFFFFF);
-	tmp1_byte = (u8)modi_tx_a_value & (BIT(3) | BIT(2) | BIT(1) | BIT(0));
-
-	/* check how much need to calibration */
-	switch (tx_a_bias_offset) {
-	case 0xF6:
-		is_minus = true;
-		comp_value = 3;
-		break;
-
-	case 0xF4:
-		is_minus = true;
-		comp_value = 2;
-		break;
-
-	case 0xF2:
-		is_minus = true;
-		comp_value = 1;
-		break;
-
-	case 0xF3:
-		is_minus = false;
-		comp_value = 1;
-		break;
-
-	case 0xF5:
-		is_minus = false;
-		comp_value = 2;
-		break;
-
-	case 0xF7:
-		is_minus = false;
-		comp_value = 3;
-		break;
-
-	case 0xF9:
-		is_minus = false;
-		comp_value = 4;
-		break;
-
-	/* do nothing case */
-	case 0xF0:
-	default:
-		ODM_RT_TRACE(dm, ODM_COMP_COMMON,
-			     "No need to do TxA bias current calibration\n");
-		return;
-	}
-
-	/* calc correct value to calibrate */
-	if (is_minus) {
-		if (tmp1_byte >= comp_value) {
-			tmp1_byte -= comp_value;
-			/*modi_tx_a_value += tmp1_byte;*/
-		} else {
-			tmp1_byte = 0;
-		}
-	} else {
-		tmp1_byte += comp_value;
-		if (tmp1_byte >= 7)
-			tmp1_byte = 7;
-	}
-
-	/* Write back to RF reg */
-	odm_set_rf_reg(dm, rf_path, 0x30, 0xFFFF,
-		       (offset << 12 | (modi_tx_a_value & 0xFF0) | tmp1_byte));
-}
-
-static void _txa_bias_cali_4_each_path(struct phy_dm_struct *dm, u8 rf_path,
-				       u8 efuse_value)
-{
-	/* switch on set TxA bias */
-	odm_set_rf_reg(dm, rf_path, 0xEF, 0xFFFFF, 0x200);
-
-	/* Set 12 sets of TxA value */
-	_set_tx_a_cali_value(dm, rf_path, 0x0, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0x1, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0x2, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0x3, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0x4, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0x5, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0x6, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0x7, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0x8, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0x9, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0xa, efuse_value);
-	_set_tx_a_cali_value(dm, rf_path, 0xb, efuse_value);
-
-	/* switch off set TxA bias */
-	odm_set_rf_reg(dm, rf_path, 0xEF, 0xFFFFF, 0x0);
-}
-
-/*
- * for 8822B PCIE D-cut patch only
- * Normal driver and MP driver need this patch
- */
-
-void phydm_txcurrentcalibration(struct phy_dm_struct *dm)
-{
-	u8 efuse0x3D8, efuse0x3D7;
-	u32 orig_rf0x18_path_a = 0, orig_rf0x18_path_b = 0;
-
-	/* save original 0x18 value */
-	orig_rf0x18_path_a = odm_get_rf_reg(dm, ODM_RF_PATH_A, 0x18, 0xFFFFF);
-	orig_rf0x18_path_b = odm_get_rf_reg(dm, ODM_RF_PATH_B, 0x18, 0xFFFFF);
-
-	/* define efuse content */
-	efuse0x3D8 = dm->efuse0x3d8;
-	efuse0x3D7 = dm->efuse0x3d7;
-
-	/* check efuse content to judge whether need to calibration or not */
-	if (efuse0x3D7 == 0xFF) {
-		ODM_RT_TRACE(
-			dm, ODM_COMP_COMMON,
-			"efuse content 0x3D7 == 0xFF, No need to do TxA cali\n");
-		return;
-	}
-
-	/* write RF register for calibration */
-	_txa_bias_cali_4_each_path(dm, ODM_RF_PATH_A, efuse0x3D7);
-	_txa_bias_cali_4_each_path(dm, ODM_RF_PATH_B, efuse0x3D8);
-
-	/* restore original 0x18 value */
-	odm_set_rf_reg(dm, ODM_RF_PATH_A, 0x18, 0xFFFFF, orig_rf0x18_path_a);
-	odm_set_rf_reg(dm, ODM_RF_PATH_B, 0x18, 0xFFFFF, orig_rf0x18_path_b);
-}
-
-void phydm_hwsetting_8822b(struct phy_dm_struct *dm)
-{
-	phydm_dynamic_switch_htstf_mumimo_8822b(dm);
-}
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_rtl8822b.h b/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_rtl8822b.h
deleted file mode 100644
index 788258e..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/phydm_rtl8822b.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __ODM_RTL8822B_H__
-#define __ODM_RTL8822B_H__
-
-void phydm_hwsetting_8822b(struct phy_dm_struct *dm);
-
-#endif /* #define __ODM_RTL8822B_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/rtl8822b/version_rtl8822b.h b/drivers/staging/rtlwifi/phydm/rtl8822b/version_rtl8822b.h
deleted file mode 100644
index 53fd51a..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl8822b/version_rtl8822b.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-/*RTL8822B PHY Parameters*/
-/*
- * [Caution]
- * Since 01/Aug/2015, the commit rules will be simplified.
- * You do not need to fill up the version.h anymore,
- * only the maintenance supervisor fills it before formal release.
- */
-#define RELEASE_DATE_8822B 20161103
-#define COMMIT_BY_8822B "BB_JOE"
-#define RELEASE_VERSION_8822B 67
diff --git a/drivers/staging/rtlwifi/phydm/rtl_phydm.c b/drivers/staging/rtlwifi/phydm/rtl_phydm.c
deleted file mode 100644
index 4cc77b2..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl_phydm.c
+++ /dev/null
@@ -1,865 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "mp_precomp.h"
-#include "phydm_precomp.h"
-#include <linux/module.h>
-
-static int _rtl_phydm_init_com_info(struct rtl_priv *rtlpriv,
-				    enum odm_ic_type ic_type,
-				    struct rtl_phydm_params *params)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtlpriv);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtlpriv);
-	u8 odm_board_type = ODM_BOARD_DEFAULT;
-	u32 support_ability;
-	int i;
-
-	dm->adapter = (void *)rtlpriv;
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_PLATFORM, ODM_CE);
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_IC_TYPE, ic_type);
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_INTERFACE, ODM_ITRF_PCIE);
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_MP_TEST_CHIP, params->mp_chip);
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_PATCH_ID, rtlhal->oem_id);
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_BWIFI_TEST, 1);
-
-	if (rtlphy->rf_type == RF_1T1R)
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_1T1R);
-	else if (rtlphy->rf_type == RF_1T2R)
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_1T2R);
-	else if (rtlphy->rf_type == RF_2T2R)
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_2T2R);
-	else if (rtlphy->rf_type == RF_2T2R_GREEN)
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_2T2R_GREEN);
-	else if (rtlphy->rf_type == RF_2T3R)
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_2T3R);
-	else if (rtlphy->rf_type == RF_2T4R)
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_2T4R);
-	else if (rtlphy->rf_type == RF_3T3R)
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_3T3R);
-	else if (rtlphy->rf_type == RF_3T4R)
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_3T4R);
-	else if (rtlphy->rf_type == RF_4T4R)
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_4T4R);
-	else
-		odm_cmn_info_init(dm, ODM_CMNINFO_RF_TYPE, ODM_XTXR);
-
-	/* 1 ======= BoardType: ODM_CMNINFO_BOARD_TYPE ======= */
-	if (rtlhal->external_lna_2g != 0) {
-		odm_board_type |= ODM_BOARD_EXT_LNA;
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_LNA, 1);
-	}
-	if (rtlhal->external_lna_5g != 0) {
-		odm_board_type |= ODM_BOARD_EXT_LNA_5G;
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_LNA, 1);
-	}
-	if (rtlhal->external_pa_2g != 0) {
-		odm_board_type |= ODM_BOARD_EXT_PA;
-		odm_cmn_info_init(dm, ODM_CMNINFO_EXT_PA, 1);
-	}
-	if (rtlhal->external_pa_5g != 0) {
-		odm_board_type |= ODM_BOARD_EXT_PA_5G;
-		odm_cmn_info_init(dm, ODM_CMNINFO_5G_EXT_PA, 1);
-	}
-	if (rtlpriv->cfg->ops->get_btc_status())
-		odm_board_type |= ODM_BOARD_BT;
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_BOARD_TYPE, odm_board_type);
-	/* 1 ============== End of BoardType ============== */
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_GPA, rtlhal->type_gpa);
-	odm_cmn_info_init(dm, ODM_CMNINFO_APA, rtlhal->type_apa);
-	odm_cmn_info_init(dm, ODM_CMNINFO_GLNA, rtlhal->type_glna);
-	odm_cmn_info_init(dm, ODM_CMNINFO_ALNA, rtlhal->type_alna);
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_RFE_TYPE, rtlhal->rfe_type);
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_EXT_TRSW, 0);
-
-	/*Add by YuChen for kfree init*/
-	odm_cmn_info_init(dm, ODM_CMNINFO_REGRFKFREEENABLE, 2);
-	odm_cmn_info_init(dm, ODM_CMNINFO_RFKFREEENABLE, 0);
-
-	/*Antenna diversity relative parameters*/
-	odm_cmn_info_hook(dm, ODM_CMNINFO_ANT_DIV,
-			  &rtlefuse->antenna_div_cfg);
-	odm_cmn_info_init(dm, ODM_CMNINFO_RF_ANTENNA_TYPE,
-			  rtlefuse->antenna_div_type);
-	odm_cmn_info_init(dm, ODM_CMNINFO_BE_FIX_TX_ANT, 0);
-	odm_cmn_info_init(dm, ODM_CMNINFO_WITH_EXT_ANTENNA_SWITCH, 0);
-
-	/* (8822B) efuse 0x3D7 & 0x3D8 for TX PA bias */
-	odm_cmn_info_init(dm, ODM_CMNINFO_EFUSE0X3D7, params->efuse0x3d7);
-	odm_cmn_info_init(dm, ODM_CMNINFO_EFUSE0X3D8, params->efuse0x3d8);
-
-	/*Add by YuChen for adaptivity init*/
-	odm_cmn_info_hook(dm, ODM_CMNINFO_ADAPTIVITY,
-			  &rtlpriv->phydm.adaptivity_en);
-	phydm_adaptivity_info_init(dm, PHYDM_ADAPINFO_CARRIER_SENSE_ENABLE,
-				   false);
-	phydm_adaptivity_info_init(dm, PHYDM_ADAPINFO_DCBACKOFF, 0);
-	phydm_adaptivity_info_init(dm, PHYDM_ADAPINFO_DYNAMICLINKADAPTIVITY,
-				   false);
-	phydm_adaptivity_info_init(dm, PHYDM_ADAPINFO_TH_L2H_INI, 0);
-	phydm_adaptivity_info_init(dm, PHYDM_ADAPINFO_TH_EDCCA_HL_DIFF, 0);
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_IQKFWOFFLOAD, 0);
-
-	/* Pointer reference */
-	odm_cmn_info_hook(dm, ODM_CMNINFO_TX_UNI,
-			  &rtlpriv->stats.txbytesunicast);
-	odm_cmn_info_hook(dm, ODM_CMNINFO_RX_UNI,
-			  &rtlpriv->stats.rxbytesunicast);
-	odm_cmn_info_hook(dm, ODM_CMNINFO_BAND, &rtlhal->current_bandtype);
-	odm_cmn_info_hook(dm, ODM_CMNINFO_FORCED_RATE,
-			  &rtlpriv->phydm.forced_data_rate);
-	odm_cmn_info_hook(dm, ODM_CMNINFO_FORCED_IGI_LB,
-			  &rtlpriv->phydm.forced_igi_lb);
-
-	odm_cmn_info_hook(dm, ODM_CMNINFO_SEC_CHNL_OFFSET,
-			  &mac->cur_40_prime_sc);
-	odm_cmn_info_hook(dm, ODM_CMNINFO_BW, &rtlphy->current_chan_bw);
-	odm_cmn_info_hook(dm, ODM_CMNINFO_CHNL, &rtlphy->current_channel);
-
-	odm_cmn_info_hook(dm, ODM_CMNINFO_SCAN, &mac->act_scanning);
-	odm_cmn_info_hook(dm, ODM_CMNINFO_POWER_SAVING,
-			  &ppsc->dot11_psmode); /* may add new boolean flag */
-	/*Add by Yuchen for phydm beamforming*/
-	odm_cmn_info_hook(dm, ODM_CMNINFO_TX_TP,
-			  &rtlpriv->stats.txbytesunicast_inperiod_tp);
-	odm_cmn_info_hook(dm, ODM_CMNINFO_RX_TP,
-			  &rtlpriv->stats.rxbytesunicast_inperiod_tp);
-	odm_cmn_info_hook(dm, ODM_CMNINFO_ANT_TEST,
-			  &rtlpriv->phydm.antenna_test);
-	for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++)
-		odm_cmn_info_ptr_array_hook(dm, ODM_CMNINFO_STA_STATUS, i,
-					    NULL);
-
-	phydm_init_debug_setting(dm);
-
-	odm_cmn_info_init(dm, ODM_CMNINFO_FAB_VER, params->fab_ver);
-	odm_cmn_info_init(dm, ODM_CMNINFO_CUT_VER, params->cut_ver);
-
-	/* after ifup, ability is updated again */
-	support_ability = ODM_RF_CALIBRATION | ODM_RF_TX_PWR_TRACK;
-	odm_cmn_info_update(dm, ODM_CMNINFO_ABILITY, support_ability);
-
-	return 0;
-}
-
-static int rtl_phydm_init_priv(struct rtl_priv *rtlpriv,
-			       struct rtl_phydm_params *params)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum odm_ic_type ic;
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		ic = ODM_RTL8822B;
-	else
-		return 0;
-
-	rtlpriv->phydm.internal =
-		kzalloc(sizeof(struct phy_dm_struct), GFP_KERNEL);
-	if (!rtlpriv->phydm.internal)
-		return 0;
-
-	_rtl_phydm_init_com_info(rtlpriv, ic, params);
-
-	odm_init_all_timers(dm);
-
-	return 1;
-}
-
-static int rtl_phydm_deinit_priv(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	odm_cancel_all_timers(dm);
-
-	kfree(rtlpriv->phydm.internal);
-	rtlpriv->phydm.internal = NULL;
-
-	return 0;
-}
-
-static bool rtl_phydm_load_txpower_by_rate(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum hal_status status;
-
-	status = odm_config_bb_with_header_file(dm, CONFIG_BB_PHY_REG_PG);
-	if (status != HAL_STATUS_SUCCESS)
-		return false;
-
-	return true;
-}
-
-static bool rtl_phydm_load_txpower_limit(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum hal_status status;
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv)) {
-		odm_read_and_config_mp_8822b_txpwr_lmt(dm);
-	} else {
-		status = odm_config_rf_with_header_file(dm, CONFIG_RF_TXPWR_LMT,
-							0);
-		if (status != HAL_STATUS_SUCCESS)
-			return false;
-	}
-
-	return true;
-}
-
-static int rtl_phydm_init_dm(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	u32 support_ability = 0;
-
-	/* clang-format off */
-	support_ability = 0
-			| ODM_BB_DIG
-			| ODM_BB_RA_MASK
-			| ODM_BB_DYNAMIC_TXPWR
-			| ODM_BB_FA_CNT
-			| ODM_BB_RSSI_MONITOR
-			| ODM_BB_CCK_PD
-	/*		| ODM_BB_PWR_SAVE*/
-			| ODM_BB_CFO_TRACKING
-			| ODM_MAC_EDCA_TURBO
-			| ODM_RF_TX_PWR_TRACK
-			| ODM_RF_CALIBRATION
-			| ODM_BB_NHM_CNT
-	/*		| ODM_BB_PWR_TRAIN*/
-			;
-	/* clang-format on */
-
-	odm_cmn_info_update(dm, ODM_CMNINFO_ABILITY, support_ability);
-
-	odm_dm_init(dm);
-
-	return 0;
-}
-
-static int rtl_phydm_deinit_dm(struct rtl_priv *rtlpriv)
-{
-	return 0;
-}
-
-static int rtl_phydm_reset_dm(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	odm_dm_reset(dm);
-
-	return 0;
-}
-
-static bool rtl_phydm_parameter_init(struct rtl_priv *rtlpriv, bool post)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		return config_phydm_parameter_init(dm, post ? ODM_POST_SETTING :
-							      ODM_PRE_SETTING);
-
-	return false;
-}
-
-static bool rtl_phydm_phy_bb_config(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum hal_status status;
-
-	status = odm_config_bb_with_header_file(dm, CONFIG_BB_PHY_REG);
-	if (status != HAL_STATUS_SUCCESS)
-		return false;
-
-	status = odm_config_bb_with_header_file(dm, CONFIG_BB_AGC_TAB);
-	if (status != HAL_STATUS_SUCCESS)
-		return false;
-
-	return true;
-}
-
-static bool rtl_phydm_phy_rf_config(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	enum hal_status status;
-	enum odm_rf_radio_path rfpath;
-
-	for (rfpath = 0; rfpath < rtlphy->num_total_rfpath; rfpath++) {
-		status = odm_config_rf_with_header_file(dm, CONFIG_RF_RADIO,
-							rfpath);
-		if (status != HAL_STATUS_SUCCESS)
-			return false;
-	}
-
-	status = odm_config_rf_with_tx_pwr_track_header_file(dm);
-	if (status != HAL_STATUS_SUCCESS)
-		return false;
-
-	return true;
-}
-
-static bool rtl_phydm_phy_mac_config(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum hal_status status;
-
-	status = odm_config_mac_with_header_file(dm);
-	if (status != HAL_STATUS_SUCCESS)
-		return false;
-
-	return true;
-}
-
-static bool rtl_phydm_trx_mode(struct rtl_priv *rtlpriv,
-			       enum radio_mask tx_path, enum radio_mask rx_path,
-			       bool is_tx2_path)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		return config_phydm_trx_mode_8822b(dm,
-						   (enum odm_rf_path)tx_path,
-						   (enum odm_rf_path)rx_path,
-						   is_tx2_path);
-
-	return false;
-}
-
-static bool rtl_phydm_watchdog(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtlpriv);
-	bool fw_current_inpsmode = false;
-	bool fw_ps_awake = true;
-	u8 is_linked = false;
-	u8 bsta_state = false;
-	u8 is_bt_enabled = false;
-
-	/* check whether do watchdog */
-	rtlpriv->cfg->ops->get_hw_reg(rtlpriv->hw, HW_VAR_FW_PSMODE_STATUS,
-				      (u8 *)(&fw_current_inpsmode));
-	rtlpriv->cfg->ops->get_hw_reg(rtlpriv->hw, HW_VAR_FWLPS_RF_ON,
-				      (u8 *)(&fw_ps_awake));
-	if (ppsc->p2p_ps_info.p2p_ps_mode)
-		fw_ps_awake = false;
-
-	if ((ppsc->rfpwr_state == ERFON) &&
-	    ((!fw_current_inpsmode) && fw_ps_awake) &&
-	    (!ppsc->rfchange_inprogress))
-		;
-	else
-		return false;
-
-	/* update common info before doing watchdog */
-	if (mac->link_state >= MAC80211_LINKED) {
-		is_linked = true;
-		if (mac->vif && mac->vif->type == NL80211_IFTYPE_STATION)
-			bsta_state = true;
-	}
-
-	if (rtlpriv->cfg->ops->get_btc_status())
-		is_bt_enabled = !rtlpriv->btcoexist.btc_ops->btc_is_bt_disabled(
-			rtlpriv);
-
-	odm_cmn_info_update(dm, ODM_CMNINFO_LINK, is_linked);
-	odm_cmn_info_update(dm, ODM_CMNINFO_STATION_STATE, bsta_state);
-	odm_cmn_info_update(dm, ODM_CMNINFO_BT_ENABLED, is_bt_enabled);
-
-	/* do watchdog */
-	odm_dm_watchdog(dm);
-
-	return true;
-}
-
-static bool rtl_phydm_switch_band(struct rtl_priv *rtlpriv, u8 central_ch)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		return config_phydm_switch_band_8822b(dm, central_ch);
-
-	return false;
-}
-
-static bool rtl_phydm_switch_channel(struct rtl_priv *rtlpriv, u8 central_ch)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		return config_phydm_switch_channel_8822b(dm, central_ch);
-
-	return false;
-}
-
-static bool rtl_phydm_switch_bandwidth(struct rtl_priv *rtlpriv,
-				       u8 primary_ch_idx,
-				       enum ht_channel_width bandwidth)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum odm_bw odm_bw = (enum odm_bw)bandwidth;
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		return config_phydm_switch_bandwidth_8822b(dm, primary_ch_idx,
-							   odm_bw);
-
-	return false;
-}
-
-static bool rtl_phydm_iq_calibrate(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		phy_iq_calibrate_8822b(dm, false);
-	else
-		return false;
-
-	return true;
-}
-
-static bool rtl_phydm_clear_txpowertracking_state(struct rtl_priv *rtlpriv)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	odm_clear_txpowertracking_state(dm);
-
-	return true;
-}
-
-static bool rtl_phydm_pause_dig(struct rtl_priv *rtlpriv, bool pause)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	if (pause)
-		odm_pause_dig(dm, PHYDM_PAUSE, PHYDM_PAUSE_LEVEL_0, 0x1e);
-	else /* resume */
-		odm_pause_dig(dm, PHYDM_RESUME, PHYDM_PAUSE_LEVEL_0, 0xff);
-
-	return true;
-}
-
-static u32 rtl_phydm_read_rf_reg(struct rtl_priv *rtlpriv,
-				 enum radio_path rfpath, u32 addr, u32 mask)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum odm_rf_radio_path odm_rfpath = (enum odm_rf_radio_path)rfpath;
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		return config_phydm_read_rf_reg_8822b(dm, odm_rfpath, addr,
-						      mask);
-
-	return -1;
-}
-
-static bool rtl_phydm_write_rf_reg(struct rtl_priv *rtlpriv,
-				   enum radio_path rfpath, u32 addr, u32 mask,
-				   u32 data)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum odm_rf_radio_path odm_rfpath = (enum odm_rf_radio_path)rfpath;
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		return config_phydm_write_rf_reg_8822b(dm, odm_rfpath, addr,
-						       mask, data);
-
-	return false;
-}
-
-static u8 rtl_phydm_read_txagc(struct rtl_priv *rtlpriv, enum radio_path rfpath,
-			       u8 hw_rate)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum odm_rf_radio_path odm_rfpath = (enum odm_rf_radio_path)rfpath;
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		return config_phydm_read_txagc_8822b(dm, odm_rfpath, hw_rate);
-
-	return -1;
-}
-
-static bool rtl_phydm_write_txagc(struct rtl_priv *rtlpriv, u32 power_index,
-				  enum radio_path rfpath, u8 hw_rate)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	enum odm_rf_radio_path odm_rfpath = (enum odm_rf_radio_path)rfpath;
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		return config_phydm_write_txagc_8822b(dm, power_index,
-						      odm_rfpath, hw_rate);
-
-	return false;
-}
-
-static bool rtl_phydm_c2h_content_parsing(struct rtl_priv *rtlpriv, u8 cmd_id,
-					  u8 cmd_len, u8 *content)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	if (phydm_c2H_content_parsing(dm, cmd_id, cmd_len, content))
-		return true;
-
-	return false;
-}
-
-static bool rtl_phydm_query_phy_status(struct rtl_priv *rtlpriv, u8 *phystrpt,
-				       struct ieee80211_hdr *hdr,
-				       struct rtl_stats *pstatus)
-{
-	/* NOTE: phystrpt may be NULL, and need to fill default value */
-
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtlpriv);
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	struct dm_per_pkt_info pktinfo; /* input of pydm */
-	struct dm_phy_status_info phy_info; /* output of phydm */
-	__le16 fc = hdr->frame_control;
-
-	/* fill driver pstatus */
-	ether_addr_copy(pstatus->psaddr, ieee80211_get_SA(hdr));
-
-	/* fill pktinfo */
-	memset(&pktinfo, 0, sizeof(pktinfo));
-
-	pktinfo.data_rate = pstatus->rate;
-
-	if (rtlpriv->mac80211.opmode == NL80211_IFTYPE_STATION) {
-		pktinfo.station_id = 0;
-	} else {
-		/* TODO: use rtl_find_sta() to find ID */
-		pktinfo.station_id = 0xFF;
-	}
-
-	pktinfo.is_packet_match_bssid =
-		(!ieee80211_is_ctl(fc) &&
-		 (ether_addr_equal(mac->bssid,
-				   ieee80211_has_tods(fc) ?
-					   hdr->addr1 :
-					   ieee80211_has_fromds(fc) ?
-					   hdr->addr2 :
-					   hdr->addr3)) &&
-		 (!pstatus->hwerror) && (!pstatus->crc) && (!pstatus->icv));
-	pktinfo.is_packet_to_self =
-		pktinfo.is_packet_match_bssid &&
-		(ether_addr_equal(hdr->addr1, rtlefuse->dev_addr));
-	pktinfo.is_to_self = (!pstatus->icv) && (!pstatus->crc) &&
-			     (ether_addr_equal(hdr->addr1, rtlefuse->dev_addr));
-	pktinfo.is_packet_beacon = (ieee80211_is_beacon(fc) ? true : false);
-
-	/* query phy status */
-	if (phystrpt)
-		odm_phy_status_query(dm, &phy_info, phystrpt, &pktinfo);
-	else
-		memset(&phy_info, 0, sizeof(phy_info));
-
-	/* copy phy_info from phydm to driver */
-	pstatus->rx_pwdb_all = phy_info.rx_pwdb_all;
-	pstatus->bt_rx_rssi_percentage = phy_info.bt_rx_rssi_percentage;
-	pstatus->recvsignalpower = phy_info.recv_signal_power;
-	pstatus->signalquality = phy_info.signal_quality;
-	pstatus->rx_mimo_signalquality[0] = phy_info.rx_mimo_signal_quality[0];
-	pstatus->rx_mimo_signalquality[1] = phy_info.rx_mimo_signal_quality[1];
-	pstatus->rx_packet_bw =
-		phy_info.band_width; /* HT_CHANNEL_WIDTH_20 <- ODM_BW20M */
-
-	/* fill driver pstatus */
-	pstatus->packet_matchbssid = pktinfo.is_packet_match_bssid;
-	pstatus->packet_toself = pktinfo.is_packet_to_self;
-	pstatus->packet_beacon = pktinfo.is_packet_beacon;
-
-	return true;
-}
-
-static u8 rtl_phydm_rate_id_mapping(struct rtl_priv *rtlpriv,
-				    enum wireless_mode wireless_mode,
-				    enum rf_type rf_type,
-				    enum ht_channel_width bw)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	return phydm_rate_id_mapping(dm, wireless_mode, rf_type, bw);
-}
-
-static bool rtl_phydm_get_ra_bitmap(struct rtl_priv *rtlpriv,
-				    enum wireless_mode wireless_mode,
-				    enum rf_type rf_type,
-				    enum ht_channel_width bw,
-				    u8 tx_rate_level, /* 0~6 */
-				    u32 *tx_bitmap_msb,
-				    u32 *tx_bitmap_lsb)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	const u8 mimo_ps_enable = 0;
-	const u8 disable_cck_rate = 0;
-
-	phydm_update_hal_ra_mask(dm, wireless_mode, rf_type, bw, mimo_ps_enable,
-				 disable_cck_rate, tx_bitmap_msb, tx_bitmap_lsb,
-				 tx_rate_level);
-
-	return true;
-}
-
-static u8 _rtl_phydm_get_macid(struct rtl_priv *rtlpriv,
-			       struct ieee80211_sta *sta)
-{
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-
-	if (mac->opmode == NL80211_IFTYPE_STATION ||
-	    mac->opmode == NL80211_IFTYPE_MESH_POINT) {
-		return 0;
-	} else if (mac->opmode == NL80211_IFTYPE_AP ||
-		   mac->opmode == NL80211_IFTYPE_ADHOC)
-		return sta->aid + 1;
-
-	return 0;
-}
-
-static bool rtl_phydm_add_sta(struct rtl_priv *rtlpriv,
-			      struct ieee80211_sta *sta)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	struct rtl_sta_info *sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-	u8 mac_id = _rtl_phydm_get_macid(rtlpriv, sta);
-
-	odm_cmn_info_ptr_array_hook(dm, ODM_CMNINFO_STA_STATUS, mac_id,
-				    sta_entry);
-
-	return true;
-}
-
-static bool rtl_phydm_del_sta(struct rtl_priv *rtlpriv,
-			      struct ieee80211_sta *sta)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	u8 mac_id = _rtl_phydm_get_macid(rtlpriv, sta);
-
-	odm_cmn_info_ptr_array_hook(dm, ODM_CMNINFO_STA_STATUS, mac_id, NULL);
-
-	return true;
-}
-
-static u32 rtl_phydm_get_version(struct rtl_priv *rtlpriv)
-{
-	u32 ver = 0;
-
-	if (IS_HARDWARE_TYPE_8822B(rtlpriv))
-		ver = RELEASE_VERSION_8822B;
-
-	return ver;
-}
-
-static bool rtl_phydm_modify_ra_pcr_threshold(struct rtl_priv *rtlpriv,
-					      u8 ra_offset_direction,
-					      u8 ra_threshold_offset)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	phydm_modify_RA_PCR_threshold(dm, ra_offset_direction,
-				      ra_threshold_offset);
-
-	return true;
-}
-
-static u32 rtl_phydm_query_counter(struct rtl_priv *rtlpriv,
-				   const char *info_type)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-	static const struct query_entry {
-		const char *query_name;
-		enum phydm_info_query query_id;
-	} query_table[] = {
-#define QUERY_ENTRY(name)	{#name, name}
-		QUERY_ENTRY(PHYDM_INFO_FA_OFDM),
-		QUERY_ENTRY(PHYDM_INFO_FA_CCK),
-		QUERY_ENTRY(PHYDM_INFO_CCA_OFDM),
-		QUERY_ENTRY(PHYDM_INFO_CCA_CCK),
-		QUERY_ENTRY(PHYDM_INFO_CRC32_OK_CCK),
-		QUERY_ENTRY(PHYDM_INFO_CRC32_OK_LEGACY),
-		QUERY_ENTRY(PHYDM_INFO_CRC32_OK_HT),
-		QUERY_ENTRY(PHYDM_INFO_CRC32_OK_VHT),
-		QUERY_ENTRY(PHYDM_INFO_CRC32_ERROR_CCK),
-		QUERY_ENTRY(PHYDM_INFO_CRC32_ERROR_LEGACY),
-		QUERY_ENTRY(PHYDM_INFO_CRC32_ERROR_HT),
-		QUERY_ENTRY(PHYDM_INFO_CRC32_ERROR_VHT),
-	};
-#define QUERY_TABLE_SIZE	ARRAY_SIZE(query_table)
-
-	int i;
-	const struct query_entry *entry;
-
-	if (!strcmp(info_type, "IQK_TOTAL"))
-		return dm->n_iqk_cnt;
-
-	if (!strcmp(info_type, "IQK_OK"))
-		return dm->n_iqk_ok_cnt;
-
-	if (!strcmp(info_type, "IQK_FAIL"))
-		return dm->n_iqk_fail_cnt;
-
-	for (i = 0; i < QUERY_TABLE_SIZE; i++) {
-		entry = &query_table[i];
-
-		if (!strcmp(info_type, entry->query_name))
-			return phydm_cmn_info_query(dm, entry->query_id);
-	}
-
-	pr_err("Unrecognized info_type:%s!!!!:\n", info_type);
-
-	return 0xDEADDEAD;
-}
-
-static bool rtl_phydm_debug_cmd(struct rtl_priv *rtlpriv, char *in, u32 in_len,
-				char *out, u32 out_len)
-{
-	struct phy_dm_struct *dm = rtlpriv_to_phydm(rtlpriv);
-
-	phydm_cmd(dm, in, in_len, 1, out, out_len);
-
-	return true;
-}
-
-static struct rtl_phydm_ops rtl_phydm_operation = {
-	/* init/deinit priv */
-	.phydm_init_priv = rtl_phydm_init_priv,
-	.phydm_deinit_priv = rtl_phydm_deinit_priv,
-	.phydm_load_txpower_by_rate = rtl_phydm_load_txpower_by_rate,
-	.phydm_load_txpower_limit = rtl_phydm_load_txpower_limit,
-
-	/* init hw */
-	.phydm_init_dm = rtl_phydm_init_dm,
-	.phydm_deinit_dm = rtl_phydm_deinit_dm,
-	.phydm_reset_dm = rtl_phydm_reset_dm,
-	.phydm_parameter_init = rtl_phydm_parameter_init,
-	.phydm_phy_bb_config = rtl_phydm_phy_bb_config,
-	.phydm_phy_rf_config = rtl_phydm_phy_rf_config,
-	.phydm_phy_mac_config = rtl_phydm_phy_mac_config,
-	.phydm_trx_mode = rtl_phydm_trx_mode,
-
-	/* watchdog */
-	.phydm_watchdog = rtl_phydm_watchdog,
-
-	/* channel */
-	.phydm_switch_band = rtl_phydm_switch_band,
-	.phydm_switch_channel = rtl_phydm_switch_channel,
-	.phydm_switch_bandwidth = rtl_phydm_switch_bandwidth,
-	.phydm_iq_calibrate = rtl_phydm_iq_calibrate,
-	.phydm_clear_txpowertracking_state =
-		rtl_phydm_clear_txpowertracking_state,
-	.phydm_pause_dig = rtl_phydm_pause_dig,
-
-	/* read/write reg */
-	.phydm_read_rf_reg = rtl_phydm_read_rf_reg,
-	.phydm_write_rf_reg = rtl_phydm_write_rf_reg,
-	.phydm_read_txagc = rtl_phydm_read_txagc,
-	.phydm_write_txagc = rtl_phydm_write_txagc,
-
-	/* RX */
-	.phydm_c2h_content_parsing = rtl_phydm_c2h_content_parsing,
-	.phydm_query_phy_status = rtl_phydm_query_phy_status,
-
-	/* TX */
-	.phydm_rate_id_mapping = rtl_phydm_rate_id_mapping,
-	.phydm_get_ra_bitmap = rtl_phydm_get_ra_bitmap,
-
-	/* STA */
-	.phydm_add_sta = rtl_phydm_add_sta,
-	.phydm_del_sta = rtl_phydm_del_sta,
-
-	/* BTC */
-	.phydm_get_version = rtl_phydm_get_version,
-	.phydm_modify_ra_pcr_threshold = rtl_phydm_modify_ra_pcr_threshold,
-	.phydm_query_counter = rtl_phydm_query_counter,
-
-	/* debug */
-	.phydm_debug_cmd = rtl_phydm_debug_cmd,
-};
-
-struct rtl_phydm_ops *rtl_phydm_get_ops_pointer(void)
-{
-	return &rtl_phydm_operation;
-}
-EXPORT_SYMBOL(rtl_phydm_get_ops_pointer);
-
-/* ********************************************************
- * Define phydm callout function in below
- * ********************************************************
- */
-
-u8 phy_get_tx_power_index(void *adapter, u8 rf_path, u8 rate,
-			  enum ht_channel_width bandwidth, u8 channel)
-{
-	/* rate: DESC_RATE1M */
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)adapter;
-
-	return rtlpriv->cfg->ops->get_txpower_index(rtlpriv->hw, rf_path, rate,
-						    bandwidth, channel);
-}
-
-void phy_set_tx_power_index_by_rs(void *adapter, u8 ch, u8 path, u8 rs)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)adapter;
-
-	return rtlpriv->cfg->ops->set_tx_power_index_by_rs(rtlpriv->hw, ch,
-							   path, rs);
-}
-
-void phy_store_tx_power_by_rate(void *adapter, u32 band, u32 rfpath, u32 txnum,
-				u32 regaddr, u32 bitmask, u32 data)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)adapter;
-
-	rtlpriv->cfg->ops->store_tx_power_by_rate(
-		rtlpriv->hw, band, rfpath, txnum, regaddr, bitmask, data);
-}
-
-void phy_set_tx_power_limit(void *dm, u8 *regulation, u8 *band, u8 *bandwidth,
-			    u8 *rate_section, u8 *rf_path, u8 *channel,
-			    u8 *power_limit)
-{
-	struct rtl_priv *rtlpriv =
-		(struct rtl_priv *)((struct phy_dm_struct *)dm)->adapter;
-
-	rtlpriv->cfg->ops->phy_set_txpower_limit(rtlpriv->hw, regulation, band,
-						 bandwidth, rate_section,
-						 rf_path, channel, power_limit);
-}
-
-void rtl_hal_update_ra_mask(void *adapter, struct rtl_sta_info *psta,
-			    u8 rssi_level)
-{
-	struct rtl_priv *rtlpriv = (struct rtl_priv *)adapter;
-	struct ieee80211_sta *sta =
-		container_of((void *)psta, struct ieee80211_sta, drv_priv);
-
-	rtlpriv->cfg->ops->update_rate_tbl(rtlpriv->hw, sta, rssi_level, false);
-}
-
-MODULE_AUTHOR("Realtek WlanFAE	<wlanfae@realtek.com>");
-MODULE_AUTHOR("Larry Finger	<Larry.FInger@lwfinger.net>");
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Realtek 802.11n PCI wireless core");
diff --git a/drivers/staging/rtlwifi/phydm/rtl_phydm.h b/drivers/staging/rtlwifi/phydm/rtl_phydm.h
deleted file mode 100644
index b98d502..0000000
--- a/drivers/staging/rtlwifi/phydm/rtl_phydm.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __RTL_PHYDM_H__
-#define __RTL_PHYDM_H__
-
-struct rtl_phydm_ops *rtl_phydm_get_ops_pointer(void);
-
-#define rtlpriv_to_phydm(priv)                                                 \
-	((struct phy_dm_struct *)((priv)->phydm.internal))
-
-u8 phy_get_tx_power_index(void *adapter, u8 rf_path, u8 rate,
-			  enum ht_channel_width bandwidth, u8 channel);
-void phy_set_tx_power_index_by_rs(void *adapter, u8 ch, u8 path, u8 rs);
-void phy_store_tx_power_by_rate(void *adapter, u32 band, u32 rfpath, u32 txnum,
-				u32 regaddr, u32 bitmask, u32 data);
-void phy_set_tx_power_limit(void *dm, u8 *regulation, u8 *band, u8 *bandwidth,
-			    u8 *rate_section, u8 *rf_path, u8 *channel,
-			    u8 *power_limit);
-
-void rtl_hal_update_ra_mask(void *adapter, struct rtl_sta_info *psta,
-			    u8 rssi_level);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/txbf/halcomtxbf.h b/drivers/staging/rtlwifi/phydm/txbf/halcomtxbf.h
deleted file mode 100644
index b85c5e1..0000000
--- a/drivers/staging/rtlwifi/phydm/txbf/halcomtxbf.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __HAL_COM_TXBF_H__
-#define __HAL_COM_TXBF_H__
-
-enum txbf_set_type {
-	TXBF_SET_SOUNDING_ENTER,
-	TXBF_SET_SOUNDING_LEAVE,
-	TXBF_SET_SOUNDING_RATE,
-	TXBF_SET_SOUNDING_STATUS,
-	TXBF_SET_SOUNDING_FW_NDPA,
-	TXBF_SET_SOUNDING_CLK,
-	TXBF_SET_TX_PATH_RESET,
-	TXBF_SET_GET_TX_RATE
-};
-
-enum txbf_get_type {
-	TXBF_GET_EXPLICIT_BEAMFORMEE,
-	TXBF_GET_EXPLICIT_BEAMFORMER,
-	TXBF_GET_MU_MIMO_STA,
-	TXBF_GET_MU_MIMO_AP
-};
-
-/* 2 HAL TXBF related */
-struct _HAL_TXBF_INFO {
-	u8 txbf_idx;
-	u8 ndpa_idx;
-	u8 BW;
-	u8 rate;
-
-	struct timer_list txbf_fw_ndpa_timer;
-};
-
-#define hal_com_txbf_beamform_init(dm_void) NULL
-#define hal_com_txbf_config_gtab(dm_void) NULL
-#define hal_com_txbf_enter_work_item_callback(_adapter) NULL
-#define hal_com_txbf_leave_work_item_callback(_adapter) NULL
-#define hal_com_txbf_fw_ndpa_work_item_callback(_adapter) NULL
-#define hal_com_txbf_clk_work_item_callback(_adapter) NULL
-#define hal_com_txbf_rate_work_item_callback(_adapter) NULL
-#define hal_com_txbf_fw_ndpa_timer_callback(_adapter) NULL
-#define hal_com_txbf_status_work_item_callback(_adapter) NULL
-#define hal_com_txbf_get(_adapter, _get_type, _pout_buf)
-
-#endif /*  #ifndef __HAL_COM_TXBF_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/txbf/haltxbf8822b.h b/drivers/staging/rtlwifi/phydm/txbf/haltxbf8822b.h
deleted file mode 100644
index 2554fcc..0000000
--- a/drivers/staging/rtlwifi/phydm/txbf/haltxbf8822b.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __HAL_TXBF_8822B_H__
-#define __HAL_TXBF_8822B_H__
-
-#define hal_txbf_8822b_enter(dm_void, idx)
-#define hal_txbf_8822b_leave(dm_void, idx)
-#define hal_txbf_8822b_status(dm_void, idx)
-#define hal_txbf_8822b_fw_txbf(dm_void, idx)
-#define hal_txbf_8822b_config_gtab(dm_void)
-
-void phydm_8822btxbf_rfmode(void *dm_void, u8 su_bfee_cnt, u8 mu_bfee_cnt);
-
-void phydm_8822b_sutxbfer_workaroud(void *dm_void, bool enable_su_bfer, u8 nc,
-				    u8 nr, u8 ng, u8 CB, u8 BW, bool is_vht);
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/txbf/haltxbfinterface.h b/drivers/staging/rtlwifi/phydm/txbf/haltxbfinterface.h
deleted file mode 100644
index cf1ced0..0000000
--- a/drivers/staging/rtlwifi/phydm/txbf/haltxbfinterface.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __HAL_TXBF_INTERFACE_H__
-#define __HAL_TXBF_INTERFACE_H__
-
-#define beamforming_get_ndpa_frame(dm, _pdu_os)
-#define beamforming_get_report_frame(adapter, precv_frame) RT_STATUS_FAILURE
-#define send_fw_ht_ndpa_packet(dm_void, RA, BW)
-#define send_sw_ht_ndpa_packet(dm_void, RA, BW)
-#define send_fw_vht_ndpa_packet(dm_void, RA, AID, BW)
-#define send_sw_vht_ndpa_packet(dm_void, RA, AID, BW)
-#define send_sw_vht_gid_mgnt_frame(dm_void, RA, idx)
-#define send_sw_vht_bf_report_poll(dm_void, RA, is_final_poll)
-#define send_sw_vht_mu_ndpa_packet(dm_void, BW)
-
-#endif
diff --git a/drivers/staging/rtlwifi/phydm/txbf/haltxbfjaguar.h b/drivers/staging/rtlwifi/phydm/txbf/haltxbfjaguar.h
deleted file mode 100644
index 4b30f06..0000000
--- a/drivers/staging/rtlwifi/phydm/txbf/haltxbfjaguar.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __HAL_TXBF_JAGUAR_H__
-#define __HAL_TXBF_JAGUAR_H__
-
-#define hal_txbf_8812a_set_ndpa_rate(dm_void, BW, rate)
-#define hal_txbf_jaguar_enter(dm_void, idx)
-#define hal_txbf_jaguar_leave(dm_void, idx)
-#define hal_txbf_jaguar_status(dm_void, idx)
-#define hal_txbf_jaguar_fw_txbf(dm_void, idx)
-#define hal_txbf_jaguar_patch(dm_void, operation)
-#define hal_txbf_jaguar_clk_8812a(dm_void)
-
-#endif /*  #ifndef __HAL_TXBF_JAGUAR_H__ */
diff --git a/drivers/staging/rtlwifi/phydm/txbf/phydm_hal_txbf_api.h b/drivers/staging/rtlwifi/phydm/txbf/phydm_hal_txbf_api.h
deleted file mode 100644
index 278eb5d..0000000
--- a/drivers/staging/rtlwifi/phydm/txbf/phydm_hal_txbf_api.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2007 - 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#ifndef __PHYDM_HAL_TXBF_API_H__
-#define __PHYDM_HAL_TXBF_API_H__
-
-#define tx_bf_nr(a, b) ((a > b) ? (b) : (a))
-
-u8 beamforming_get_htndp_tx_rate(void *dm_void, u8 comp_steering_num_of_bfer);
-
-u8 beamforming_get_vht_ndp_tx_rate(void *dm_void, u8 comp_steering_num_of_bfer);
-
-u8 phydm_get_beamforming_sounding_info(void *dm_void, u16 *troughput,
-				       u8 total_bfee_num, u8 *tx_rate);
-
-u8 phydm_get_ndpa_rate(void *dm_void);
-
-u8 phydm_get_mu_bfee_snding_decision(void *dm_void, u16 throughput);
-
-#endif
diff --git a/drivers/staging/rtlwifi/ps.c b/drivers/staging/rtlwifi/ps.c
deleted file mode 100644
index 5118773..0000000
--- a/drivers/staging/rtlwifi/ps.c
+++ /dev/null
@@ -1,996 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "wifi.h"
-#include "base.h"
-#include "ps.h"
-#include <linux/export.h>
-#include "btcoexist/rtl_btc.h"
-
-bool rtl_ps_enable_nic(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_mac *rtlmac = rtl_mac(rtl_priv(hw));
-
-	/*<1> reset trx ring */
-	if (rtlhal->interface == INTF_PCI)
-		rtlpriv->intf_ops->reset_trx_ring(hw);
-
-	if (is_hal_stop(rtlhal))
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "Driver is already down!\n");
-
-	/*<2> Enable Adapter */
-	if (rtlpriv->cfg->ops->hw_init(hw))
-		return false;
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RETRY_LIMIT,
-			&rtlmac->retry_long);
-	RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
-
-	/*<2.1> Switch Channel & Bandwidth to last rtl_op_config setting*/
-	rtlpriv->cfg->ops->switch_channel(hw);
-	rtlpriv->cfg->ops->set_channel_access(hw);
-	rtlpriv->cfg->ops->set_bw_mode(hw,
-			cfg80211_get_chandef_type(&hw->conf.chandef));
-
-	/*<3> Enable Interrupt */
-	rtlpriv->cfg->ops->enable_interrupt(hw);
-
-	/*<enable timer> */
-	rtl_watch_dog_timer_callback(&rtlpriv->works.watchdog_timer);
-
-	return true;
-}
-
-bool rtl_ps_disable_nic(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	/*<1> Stop all timer */
-	rtl_deinit_deferred_work(hw);
-
-	/*<2> Disable Interrupt */
-	rtlpriv->cfg->ops->disable_interrupt(hw);
-	tasklet_kill(&rtlpriv->works.irq_tasklet);
-
-	/*<3> Disable Adapter */
-	rtlpriv->cfg->ops->hw_disable(hw);
-
-	return true;
-}
-
-static bool rtl_ps_set_rf_state(struct ieee80211_hw *hw,
-				enum rf_pwrstate state_toset,
-				u32 changesource)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	enum rf_pwrstate rtstate;
-	bool actionallowed = false;
-	u16 rfwait_cnt = 0;
-
-	/*Only one thread can change
-	 *the RF state at one time, and others
-	 *should wait to be executed.
-	 */
-	while (true) {
-		spin_lock(&rtlpriv->locks.rf_ps_lock);
-		if (ppsc->rfchange_inprogress) {
-			spin_unlock(&rtlpriv->locks.rf_ps_lock);
-
-			RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-				 "RF Change in progress! Wait to set..state_toset(%d).\n",
-				  state_toset);
-
-			/* Set RF after the previous action is done.  */
-			while (ppsc->rfchange_inprogress) {
-				rfwait_cnt++;
-				mdelay(1);
-				/*Wait too long, return false to avoid
-				 *to be stuck here.
-				 */
-				if (rfwait_cnt > 100)
-					return false;
-			}
-		} else {
-			ppsc->rfchange_inprogress = true;
-			spin_unlock(&rtlpriv->locks.rf_ps_lock);
-			break;
-		}
-	}
-
-	rtstate = ppsc->rfpwr_state;
-
-	switch (state_toset) {
-	case ERFON:
-		ppsc->rfoff_reason &= (~changesource);
-
-		if ((changesource == RF_CHANGE_BY_HW) &&
-		    (ppsc->hwradiooff)) {
-			ppsc->hwradiooff = false;
-		}
-
-		if (!ppsc->rfoff_reason) {
-			ppsc->rfoff_reason = 0;
-			actionallowed = true;
-		}
-		break;
-	case ERFOFF:
-		if ((changesource == RF_CHANGE_BY_HW) && !ppsc->hwradiooff)
-			ppsc->hwradiooff = true;
-
-		ppsc->rfoff_reason |= changesource;
-		actionallowed = true;
-		break;
-	case ERFSLEEP:
-		ppsc->rfoff_reason |= changesource;
-		actionallowed = true;
-		break;
-	default:
-		pr_err("switch case %#x not processed\n", state_toset);
-		break;
-	}
-
-	if (actionallowed)
-		rtlpriv->cfg->ops->set_rf_power_state(hw, state_toset);
-
-	spin_lock(&rtlpriv->locks.rf_ps_lock);
-	ppsc->rfchange_inprogress = false;
-	spin_unlock(&rtlpriv->locks.rf_ps_lock);
-
-	return actionallowed;
-}
-
-static void _rtl_ps_inactive_ps(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-
-	ppsc->swrf_processing = true;
-
-	if (ppsc->inactive_pwrstate == ERFON &&
-	    rtlhal->interface == INTF_PCI) {
-		if ((ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM) &&
-		    RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM) &&
-		    rtlhal->interface == INTF_PCI) {
-			rtlpriv->intf_ops->disable_aspm(hw);
-			RT_CLEAR_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM);
-		}
-	}
-
-	rtl_ps_set_rf_state(hw, ppsc->inactive_pwrstate,
-			    RF_CHANGE_BY_IPS);
-
-	if (ppsc->inactive_pwrstate == ERFOFF &&
-	    rtlhal->interface == INTF_PCI) {
-		if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM &&
-		    !RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM)) {
-			rtlpriv->intf_ops->enable_aspm(hw);
-			RT_SET_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM);
-		}
-	}
-
-	ppsc->swrf_processing = false;
-}
-
-void rtl_ips_nic_off_wq_callback(void *data)
-{
-	struct rtl_works *rtlworks =
-	    container_of_dwork_rtl(data, struct rtl_works, ips_nic_off_wq);
-	struct ieee80211_hw *hw = rtlworks->hw;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	enum rf_pwrstate rtstate;
-
-	if (mac->opmode != NL80211_IFTYPE_STATION) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "not station return\n");
-		return;
-	}
-
-	if (mac->p2p_in_use)
-		return;
-
-	if (mac->link_state > MAC80211_NOLINK)
-		return;
-
-	if (is_hal_stop(rtlhal))
-		return;
-
-	if (rtlpriv->sec.being_setkey)
-		return;
-
-	if (rtlpriv->cfg->ops->bt_coex_off_before_lps)
-		rtlpriv->cfg->ops->bt_coex_off_before_lps(hw);
-
-	if (ppsc->inactiveps) {
-		rtstate = ppsc->rfpwr_state;
-
-		/*
-		 *Do not enter IPS in the following conditions:
-		 *(1) RF is already OFF or Sleep
-		 *(2) swrf_processing (indicates the IPS is still under going)
-		 *(3) Connectted (only disconnected can trigger IPS)
-		 *(4) IBSS (send Beacon)
-		 *(5) AP mode (send Beacon)
-		 *(6) monitor mode (rcv packet)
-		 */
-
-		if (rtstate == ERFON &&
-		    !ppsc->swrf_processing &&
-		    (mac->link_state == MAC80211_NOLINK) &&
-		    !mac->act_scanning) {
-			RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-				 "IPSEnter(): Turn off RF\n");
-
-			ppsc->inactive_pwrstate = ERFOFF;
-			ppsc->in_powersavemode = true;
-
-			/* call before RF off */
-			if (rtlpriv->cfg->ops->get_btc_status())
-				rtlpriv->btcoexist.btc_ops->btc_ips_notify(rtlpriv,
-									   ppsc->inactive_pwrstate);
-
-			/*rtl_pci_reset_trx_ring(hw); */
-			_rtl_ps_inactive_ps(hw);
-		}
-	}
-}
-
-void rtl_ips_nic_off(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	/* because when link with ap, mac80211 will ask us
-	 * to disable nic quickly after scan before linking,
-	 * this will cause link failed, so we delay 100ms here
-	 */
-	queue_delayed_work(rtlpriv->works.rtl_wq,
-			   &rtlpriv->works.ips_nic_off_wq, MSECS(100));
-}
-
-/* NOTICE: any opmode should exc nic_on, or disable without
- * nic_on may something wrong, like adhoc TP
- */
-void rtl_ips_nic_on(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	enum rf_pwrstate rtstate;
-
-	cancel_delayed_work(&rtlpriv->works.ips_nic_off_wq);
-
-	mutex_lock(&rtlpriv->locks.ips_mutex);
-	if (ppsc->inactiveps) {
-		rtstate = ppsc->rfpwr_state;
-
-		if (rtstate != ERFON &&
-		    !ppsc->swrf_processing &&
-		    ppsc->rfoff_reason <= RF_CHANGE_BY_IPS) {
-			ppsc->inactive_pwrstate = ERFON;
-			ppsc->in_powersavemode = false;
-			_rtl_ps_inactive_ps(hw);
-			/* call after RF on */
-			if (rtlpriv->phydm.ops)
-				rtlpriv->phydm.ops->phydm_reset_dm(rtlpriv);
-			if (rtlpriv->cfg->ops->get_btc_status())
-				rtlpriv->btcoexist.btc_ops->btc_ips_notify(rtlpriv,
-									   ppsc->inactive_pwrstate);
-		}
-	}
-	mutex_unlock(&rtlpriv->locks.ips_mutex);
-}
-
-/*for FW LPS*/
-
-/*
- *Determine if we can set Fw into PS mode
- *in current condition.Return TRUE if it
- *can enter PS mode.
- */
-static bool rtl_get_fwlps_doze(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	u32 ps_timediff;
-
-	ps_timediff = jiffies_to_msecs(jiffies -
-				       ppsc->last_delaylps_stamp_jiffies);
-
-	if (ps_timediff < 2000) {
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-			 "Delay enter Fw LPS for DHCP, ARP, or EAPOL exchanging state\n");
-		return false;
-	}
-
-	if (mac->link_state != MAC80211_LINKED)
-		return false;
-
-	if (mac->opmode == NL80211_IFTYPE_ADHOC)
-		return false;
-
-	return true;
-}
-
-/* Change current and default preamble mode.*/
-void rtl_lps_set_psmode(struct ieee80211_hw *hw, u8 rt_psmode)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	bool enter_fwlps;
-
-	if (mac->opmode == NL80211_IFTYPE_ADHOC)
-		return;
-
-	if (mac->link_state != MAC80211_LINKED)
-		return;
-
-	if (ppsc->dot11_psmode == rt_psmode && rt_psmode == EACTIVE)
-		return;
-
-	/* Update power save mode configured. */
-	ppsc->dot11_psmode = rt_psmode;
-
-	/*
-	 *<FW control LPS>
-	 *1. Enter PS mode
-	 *   Set RPWM to Fw to turn RF off and send H2C fw_pwrmode
-	 *   cmd to set Fw into PS mode.
-	 *2. Leave PS mode
-	 *   Send H2C fw_pwrmode cmd to Fw to set Fw into Active
-	 *   mode and set RPWM to turn RF on.
-	 */
-
-	if ((ppsc->fwctrl_lps) && ppsc->report_linked) {
-		if (ppsc->dot11_psmode == EACTIVE) {
-			RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-				 "FW LPS leave ps_mode:%x\n",
-				  FW_PS_ACTIVE_MODE);
-			enter_fwlps = false;
-			ppsc->pwr_mode = FW_PS_ACTIVE_MODE;
-			ppsc->smart_ps = 0;
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_LPS_ACTION,
-						      (u8 *)(&enter_fwlps));
-			if (ppsc->p2p_ps_info.opp_ps)
-				rtl_p2p_ps_cmd(hw, P2P_PS_ENABLE);
-
-			if (rtlpriv->cfg->ops->get_btc_status())
-				rtlpriv->btcoexist.btc_ops->btc_lps_notify(rtlpriv, rt_psmode);
-		} else {
-			if (rtl_get_fwlps_doze(hw)) {
-				RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-					 "FW LPS enter ps_mode:%x\n",
-					 ppsc->fwctrl_psmode);
-				if (rtlpriv->cfg->ops->get_btc_status())
-					rtlpriv->btcoexist.btc_ops->btc_lps_notify(rtlpriv, rt_psmode);
-				enter_fwlps = true;
-				ppsc->pwr_mode = ppsc->fwctrl_psmode;
-				ppsc->smart_ps = 2;
-				rtlpriv->cfg->ops->set_hw_reg(hw,
-							HW_VAR_FW_LPS_ACTION,
-							(u8 *)(&enter_fwlps));
-
-			} else {
-				/* Reset the power save related parameters. */
-				ppsc->dot11_psmode = EACTIVE;
-			}
-		}
-	}
-}
-
-/* Interrupt safe routine to enter the leisure power save mode.*/
-static void rtl_lps_enter_core(struct ieee80211_hw *hw)
-{
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	if (!ppsc->fwctrl_lps)
-		return;
-
-	if (rtlpriv->sec.being_setkey)
-		return;
-
-	if (rtlpriv->link_info.busytraffic)
-		return;
-
-	/*sleep after linked 10s, to let DHCP and 4-way handshake ok enough!! */
-	if (mac->cnt_after_linked < 5)
-		return;
-
-	if (mac->opmode == NL80211_IFTYPE_ADHOC)
-		return;
-
-	if (mac->link_state != MAC80211_LINKED)
-		return;
-
-	mutex_lock(&rtlpriv->locks.lps_mutex);
-
-	/* Don't need to check (ppsc->dot11_psmode == EACTIVE), because
-	 * bt_ccoexist may ask to enter lps.
-	 * In normal case, this constraint move to rtl_lps_set_psmode().
-	 */
-	RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-		 "Enter 802.11 power save mode...\n");
-	rtl_lps_set_psmode(hw, EAUTOPS);
-
-	mutex_unlock(&rtlpriv->locks.lps_mutex);
-}
-
-/* Interrupt safe routine to leave the leisure power save mode.*/
-static void rtl_lps_leave_core(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-
-	mutex_lock(&rtlpriv->locks.lps_mutex);
-
-	if (ppsc->fwctrl_lps) {
-		if (ppsc->dot11_psmode != EACTIVE) {
-			/*FIX ME */
-			/*rtlpriv->cfg->ops->enable_interrupt(hw); */
-
-			if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM &&
-			    RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM) &&
-			    rtlhal->interface == INTF_PCI) {
-				rtlpriv->intf_ops->disable_aspm(hw);
-				RT_CLEAR_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM);
-			}
-
-			RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-				 "Busy Traffic,Leave 802.11 power save..\n");
-
-			rtl_lps_set_psmode(hw, EACTIVE);
-		}
-	}
-	mutex_unlock(&rtlpriv->locks.lps_mutex);
-}
-
-/* For sw LPS*/
-void rtl_swlps_beacon(struct ieee80211_hw *hw, void *data, unsigned int len)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct ieee80211_hdr *hdr = data;
-	struct ieee80211_tim_ie *tim_ie;
-	u8 *tim;
-	u8 tim_len;
-	bool u_buffed;
-	bool m_buffed;
-
-	if (mac->opmode != NL80211_IFTYPE_STATION)
-		return;
-
-	if (!rtlpriv->psc.swctrl_lps)
-		return;
-
-	if (rtlpriv->mac80211.link_state != MAC80211_LINKED)
-		return;
-
-	if (!rtlpriv->psc.sw_ps_enabled)
-		return;
-
-	if (rtlpriv->psc.fwctrl_lps)
-		return;
-
-	if (likely(!(hw->conf.flags & IEEE80211_CONF_PS)))
-		return;
-
-	/* check if this really is a beacon */
-	if (!ieee80211_is_beacon(hdr->frame_control))
-		return;
-
-	/* min. beacon length + FCS_LEN */
-	if (len <= 40 + FCS_LEN)
-		return;
-
-	/* and only beacons from the associated BSSID, please */
-	if (!ether_addr_equal_64bits(hdr->addr3, rtlpriv->mac80211.bssid))
-		return;
-
-	rtlpriv->psc.last_beacon = jiffies;
-
-	tim = rtl_find_ie(data, len - FCS_LEN, WLAN_EID_TIM);
-	if (!tim)
-		return;
-
-	if (tim[1] < sizeof(*tim_ie))
-		return;
-
-	tim_len = tim[1];
-	tim_ie = (struct ieee80211_tim_ie *)&tim[2];
-
-	if (!WARN_ON_ONCE(!hw->conf.ps_dtim_period))
-		rtlpriv->psc.dtim_counter = tim_ie->dtim_count;
-
-	/* Check whenever the PHY can be turned off again. */
-
-	/* 1. What about buffered unicast traffic for our AID? */
-	u_buffed = ieee80211_check_tim(tim_ie, tim_len,
-				       rtlpriv->mac80211.assoc_id);
-
-	/* 2. Maybe the AP wants to send multicast/broadcast data? */
-	m_buffed = tim_ie->bitmap_ctrl & 0x01;
-	rtlpriv->psc.multi_buffered = m_buffed;
-
-	/* unicast will process by mac80211 through
-	 * set ~IEEE80211_CONF_PS, So we just check
-	 * multicast frames here
-	 */
-	if (!m_buffed) {
-		/* back to low-power land. and delay is
-		 * prevent null power save frame tx fail
-		 */
-		queue_delayed_work(rtlpriv->works.rtl_wq,
-				   &rtlpriv->works.ps_work, MSECS(5));
-	} else {
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-			 "u_bufferd: %x, m_buffered: %x\n", u_buffed, m_buffed);
-	}
-}
-
-void rtl_swlps_rf_awake(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-
-	if (!rtlpriv->psc.swctrl_lps)
-		return;
-	if (mac->link_state != MAC80211_LINKED)
-		return;
-
-	if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM &&
-	    RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM)) {
-		rtlpriv->intf_ops->disable_aspm(hw);
-		RT_CLEAR_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM);
-	}
-
-	mutex_lock(&rtlpriv->locks.lps_mutex);
-	rtl_ps_set_rf_state(hw, ERFON, RF_CHANGE_BY_PS);
-	mutex_unlock(&rtlpriv->locks.lps_mutex);
-}
-
-void rtl_swlps_rfon_wq_callback(void *data)
-{
-	struct rtl_works *rtlworks =
-	    container_of_dwork_rtl(data, struct rtl_works, ps_rfon_wq);
-	struct ieee80211_hw *hw = rtlworks->hw;
-
-	rtl_swlps_rf_awake(hw);
-}
-
-void rtl_swlps_rf_sleep(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	u8 sleep_intv;
-
-	if (!rtlpriv->psc.sw_ps_enabled)
-		return;
-
-	if ((rtlpriv->sec.being_setkey) ||
-	    (mac->opmode == NL80211_IFTYPE_ADHOC))
-		return;
-
-	/*sleep after linked 10s, to let DHCP and 4-way handshake ok enough!! */
-	if ((mac->link_state != MAC80211_LINKED) || (mac->cnt_after_linked < 5))
-		return;
-
-	if (rtlpriv->link_info.busytraffic)
-		return;
-
-	spin_lock(&rtlpriv->locks.rf_ps_lock);
-	if (rtlpriv->psc.rfchange_inprogress) {
-		spin_unlock(&rtlpriv->locks.rf_ps_lock);
-		return;
-	}
-	spin_unlock(&rtlpriv->locks.rf_ps_lock);
-
-	mutex_lock(&rtlpriv->locks.lps_mutex);
-	rtl_ps_set_rf_state(hw, ERFSLEEP, RF_CHANGE_BY_PS);
-	mutex_unlock(&rtlpriv->locks.lps_mutex);
-
-	if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM &&
-	    !RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM)) {
-		rtlpriv->intf_ops->enable_aspm(hw);
-		RT_SET_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM);
-	}
-
-	/* here is power save alg, when this beacon is DTIM
-	 * we will set sleep time to dtim_period * n;
-	 * when this beacon is not DTIM, we will set sleep
-	 * time to sleep_intv = rtlpriv->psc.dtim_counter or
-	 * MAX_SW_LPS_SLEEP_INTV(default set to 5)
-	 */
-
-	if (rtlpriv->psc.dtim_counter == 0) {
-		if (hw->conf.ps_dtim_period == 1)
-			sleep_intv = hw->conf.ps_dtim_period * 2;
-		else
-			sleep_intv = hw->conf.ps_dtim_period;
-	} else {
-		sleep_intv = rtlpriv->psc.dtim_counter;
-	}
-
-	if (sleep_intv > MAX_SW_LPS_SLEEP_INTV)
-		sleep_intv = MAX_SW_LPS_SLEEP_INTV;
-
-	/* this print should always be dtim_conter = 0 &
-	 * sleep  = dtim_period, that meaons, we should
-	 * awake before every dtim
-	 */
-	RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-		 "dtim_counter:%x will sleep :%d beacon_intv\n",
-		  rtlpriv->psc.dtim_counter, sleep_intv);
-
-	/* we tested that 40ms is enough for sw & hw sw delay */
-	queue_delayed_work(rtlpriv->works.rtl_wq, &rtlpriv->works.ps_rfon_wq,
-			   MSECS(sleep_intv *
-				 mac->vif->bss_conf.beacon_int - 40));
-}
-
-void rtl_lps_change_work_callback(struct work_struct *work)
-{
-	struct rtl_works *rtlworks =
-	    container_of(work, struct rtl_works, lps_change_work);
-	struct ieee80211_hw *hw = rtlworks->hw;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	if (rtlpriv->enter_ps)
-		rtl_lps_enter_core(hw);
-	else
-		rtl_lps_leave_core(hw);
-}
-
-void rtl_lps_enter(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	if (!in_interrupt())
-		return rtl_lps_enter_core(hw);
-	rtlpriv->enter_ps = true;
-	schedule_work(&rtlpriv->works.lps_change_work);
-}
-
-void rtl_lps_leave(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	if (!in_interrupt())
-		return rtl_lps_leave_core(hw);
-	rtlpriv->enter_ps = false;
-	schedule_work(&rtlpriv->works.lps_change_work);
-}
-
-void rtl_swlps_wq_callback(void *data)
-{
-	struct rtl_works *rtlworks = container_of_dwork_rtl(data,
-				     struct rtl_works,
-				     ps_work);
-	struct ieee80211_hw *hw = rtlworks->hw;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	bool ps = false;
-
-	ps = (hw->conf.flags & IEEE80211_CONF_PS);
-
-	/* we can sleep after ps null send ok */
-	if (rtlpriv->psc.state_inap) {
-		rtl_swlps_rf_sleep(hw);
-
-		if (rtlpriv->psc.state && !ps) {
-			rtlpriv->psc.sleep_ms = jiffies_to_msecs(jiffies -
-						 rtlpriv->psc.last_action);
-		}
-
-		if (ps)
-			rtlpriv->psc.last_slept = jiffies;
-
-		rtlpriv->psc.last_action = jiffies;
-		rtlpriv->psc.state = ps;
-	}
-}
-
-static void rtl_p2p_noa_ie(struct ieee80211_hw *hw, void *data,
-			   unsigned int len)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct ieee80211_mgmt *mgmt = data;
-	struct rtl_p2p_ps_info *p2pinfo = &rtlpriv->psc.p2p_ps_info;
-	u8 *pos, *end, *ie;
-	u16 noa_len;
-	static u8 p2p_oui_ie_type[4] = {0x50, 0x6f, 0x9a, 0x09};
-	u8 noa_num, index, i, noa_index = 0;
-	bool find_p2p_ie = false, find_p2p_ps_ie = false;
-
-	pos = (u8 *)mgmt->u.beacon.variable;
-	end = data + len;
-	ie = NULL;
-
-	while (pos + 1 < end) {
-		if (pos + 2 + pos[1] > end)
-			return;
-
-		if (pos[0] == 221 && pos[1] > 4) {
-			if (memcmp(&pos[2], p2p_oui_ie_type, 4) == 0) {
-				ie = pos + 2 + 4;
-				break;
-			}
-		}
-		pos += 2 + pos[1];
-	}
-
-	if (!ie)
-		return;
-	find_p2p_ie = true;
-	/*to find noa ie*/
-	while (ie + 1 < end) {
-		noa_len = READEF2BYTE((__le16 *)&ie[1]);
-		if (ie + 3 + ie[1] > end)
-			return;
-
-		if (ie[0] == 12) {
-			find_p2p_ps_ie = true;
-			if ((noa_len - 2) % 13 != 0) {
-				RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-					 "P2P notice of absence: invalid length.%d\n",
-					 noa_len);
-				return;
-			}
-			noa_num = (noa_len - 2) / 13;
-			noa_index = ie[3];
-			if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==
-			    P2P_PS_NONE || noa_index != p2pinfo->noa_index) {
-				RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD,
-					 "update NOA ie.\n");
-				p2pinfo->noa_index = noa_index;
-				p2pinfo->opp_ps = (ie[4] >> 7);
-				p2pinfo->ctwindow = ie[4] & 0x7F;
-				p2pinfo->noa_num = noa_num;
-				index = 5;
-				for (i = 0; i < noa_num; i++) {
-					p2pinfo->noa_count_type[i] =
-					    READEF1BYTE(ie + index);
-					index += 1;
-					p2pinfo->noa_duration[i] =
-					     READEF4BYTE((__le32 *)ie + index);
-					index += 4;
-					p2pinfo->noa_interval[i] =
-					    READEF4BYTE((__le32 *)ie + index);
-					index += 4;
-					p2pinfo->noa_start_time[i] =
-					     READEF4BYTE((__le32 *)ie + index);
-					index += 4;
-				}
-
-				if (p2pinfo->opp_ps == 1) {
-					p2pinfo->p2p_ps_mode = P2P_PS_CTWINDOW;
-					/* Driver should wait LPS entering
-					 * CTWindow
-					 */
-					if (rtlpriv->psc.fw_current_inpsmode)
-						rtl_p2p_ps_cmd(hw,
-							       P2P_PS_ENABLE);
-				} else if (p2pinfo->noa_num > 0) {
-					p2pinfo->p2p_ps_mode = P2P_PS_NOA;
-					rtl_p2p_ps_cmd(hw, P2P_PS_ENABLE);
-				} else if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) {
-					rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE);
-				}
-			}
-			break;
-		}
-		ie += 3 + noa_len;
-	}
-
-	if (find_p2p_ie) {
-		if ((p2pinfo->p2p_ps_mode > P2P_PS_NONE) &&
-		    (!find_p2p_ps_ie))
-			rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE);
-	}
-}
-
-static void rtl_p2p_action_ie(struct ieee80211_hw *hw, void *data,
-			      unsigned int len)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct ieee80211_mgmt *mgmt = data;
-	struct rtl_p2p_ps_info *p2pinfo = &rtlpriv->psc.p2p_ps_info;
-	u8 noa_num, index, i, noa_index = 0;
-	u8 *pos, *end, *ie;
-	u16 noa_len;
-	static u8 p2p_oui_ie_type[4] = {0x50, 0x6f, 0x9a, 0x09};
-
-	pos = (u8 *)&mgmt->u.action.category;
-	end = data + len;
-	ie = NULL;
-
-	if (pos[0] == 0x7f) {
-		if (memcmp(&pos[1], p2p_oui_ie_type, 4) == 0)
-			ie = pos + 3 + 4;
-	}
-
-	if (!ie)
-		return;
-
-	RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "action frame find P2P IE.\n");
-	/*to find noa ie*/
-	while (ie + 1 < end) {
-		noa_len = READEF2BYTE((__le16 *)&ie[1]);
-		if (ie + 3 + ie[1] > end)
-			return;
-
-		if (ie[0] == 12) {
-			RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "find NOA IE.\n");
-			RT_PRINT_DATA(rtlpriv, COMP_FW, DBG_LOUD, "noa ie ",
-				      ie, noa_len);
-			if ((noa_len - 2) % 13 != 0) {
-				RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD,
-					 "P2P notice of absence: invalid length.%d\n",
-					 noa_len);
-				return;
-			}
-			noa_num = (noa_len - 2) / 13;
-			noa_index = ie[3];
-			if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==
-			    P2P_PS_NONE || noa_index != p2pinfo->noa_index) {
-				p2pinfo->noa_index = noa_index;
-				p2pinfo->opp_ps = (ie[4] >> 7);
-				p2pinfo->ctwindow = ie[4] & 0x7F;
-				p2pinfo->noa_num = noa_num;
-				index = 5;
-				for (i = 0; i < noa_num; i++) {
-					p2pinfo->noa_count_type[i] =
-					    READEF1BYTE(ie + index);
-					index += 1;
-					p2pinfo->noa_duration[i] =
-					     READEF4BYTE((__le32 *)ie + index);
-					index += 4;
-					p2pinfo->noa_interval[i] =
-					     READEF4BYTE((__le32 *)ie + index);
-					index += 4;
-					p2pinfo->noa_start_time[i] =
-					     READEF4BYTE((__le32 *)ie + index);
-					index += 4;
-				}
-
-				if (p2pinfo->opp_ps == 1) {
-					p2pinfo->p2p_ps_mode = P2P_PS_CTWINDOW;
-					/* Driver should wait LPS entering
-					 * CTWindow
-					 */
-					if (rtlpriv->psc.fw_current_inpsmode)
-						rtl_p2p_ps_cmd(hw,
-							       P2P_PS_ENABLE);
-				} else if (p2pinfo->noa_num > 0) {
-					p2pinfo->p2p_ps_mode = P2P_PS_NOA;
-					rtl_p2p_ps_cmd(hw, P2P_PS_ENABLE);
-				} else if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) {
-					rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE);
-				}
-			}
-			break;
-		}
-		ie += 3 + noa_len;
-	}
-}
-
-void rtl_p2p_ps_cmd(struct ieee80211_hw *hw, u8 p2p_ps_state)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *rtlps = rtl_psc(rtl_priv(hw));
-	struct rtl_p2p_ps_info  *p2pinfo = &rtlpriv->psc.p2p_ps_info;
-
-	RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "p2p state %x\n", p2p_ps_state);
-	switch (p2p_ps_state) {
-	case P2P_PS_DISABLE:
-		p2pinfo->p2p_ps_state = p2p_ps_state;
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_P2P_PS_OFFLOAD,
-					      &p2p_ps_state);
-		p2pinfo->noa_index = 0;
-		p2pinfo->ctwindow = 0;
-		p2pinfo->opp_ps = 0;
-		p2pinfo->noa_num = 0;
-		p2pinfo->p2p_ps_mode = P2P_PS_NONE;
-		if (rtlps->fw_current_inpsmode) {
-			if (rtlps->smart_ps == 0) {
-				rtlps->smart_ps = 2;
-				rtlpriv->cfg->ops->set_hw_reg(hw,
-					 HW_VAR_H2C_FW_PWRMODE,
-					 &rtlps->pwr_mode);
-			}
-		}
-		break;
-	case P2P_PS_ENABLE:
-		if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) {
-			p2pinfo->p2p_ps_state = p2p_ps_state;
-
-			if (p2pinfo->ctwindow > 0) {
-				if (rtlps->smart_ps != 0) {
-					rtlps->smart_ps = 0;
-					rtlpriv->cfg->ops->set_hw_reg(hw,
-						 HW_VAR_H2C_FW_PWRMODE,
-						 &rtlps->pwr_mode);
-				}
-			}
-			rtlpriv->cfg->ops->set_hw_reg(hw,
-				 HW_VAR_H2C_FW_P2P_PS_OFFLOAD,
-				 &p2p_ps_state);
-		}
-		break;
-	case P2P_PS_SCAN:
-	case P2P_PS_SCAN_DONE:
-	case P2P_PS_ALLSTASLEEP:
-		if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) {
-			p2pinfo->p2p_ps_state = p2p_ps_state;
-			rtlpriv->cfg->ops->set_hw_reg(hw,
-				 HW_VAR_H2C_FW_P2P_PS_OFFLOAD,
-				 &p2p_ps_state);
-		}
-		break;
-	default:
-		break;
-	}
-	RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD,
-		 "ctwindow %x oppps %x\n",
-		 p2pinfo->ctwindow, p2pinfo->opp_ps);
-	RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD,
-		 "count %x duration %x index %x interval %x start time %x noa num %x\n",
-		 p2pinfo->noa_count_type[0],
-		 p2pinfo->noa_duration[0],
-		 p2pinfo->noa_index,
-		 p2pinfo->noa_interval[0],
-		 p2pinfo->noa_start_time[0],
-		 p2pinfo->noa_num);
-	RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "end\n");
-}
-
-void rtl_p2p_info(struct ieee80211_hw *hw, void *data, unsigned int len)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct ieee80211_hdr *hdr = data;
-
-	if (!mac->p2p)
-		return;
-	if (mac->link_state != MAC80211_LINKED)
-		return;
-	/* min. beacon length + FCS_LEN */
-	if (len <= 40 + FCS_LEN)
-		return;
-
-	/* and only beacons from the associated BSSID, please */
-	if (!ether_addr_equal_64bits(hdr->addr3, rtlpriv->mac80211.bssid))
-		return;
-
-	/* check if this really is a beacon */
-	if (!(ieee80211_is_beacon(hdr->frame_control) ||
-	      ieee80211_is_probe_resp(hdr->frame_control) ||
-	      ieee80211_is_action(hdr->frame_control)))
-		return;
-
-	if (ieee80211_is_action(hdr->frame_control))
-		rtl_p2p_action_ie(hw, data, len - FCS_LEN);
-	else
-		rtl_p2p_noa_ie(hw, data, len - FCS_LEN);
-}
diff --git a/drivers/staging/rtlwifi/ps.h b/drivers/staging/rtlwifi/ps.h
deleted file mode 100644
index badd0fa..0000000
--- a/drivers/staging/rtlwifi/ps.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __REALTEK_RTL_PCI_PS_H__
-#define __REALTEK_RTL_PCI_PS_H__
-
-#define MAX_SW_LPS_SLEEP_INTV	5
-
-bool rtl_ps_enable_nic(struct ieee80211_hw *hw);
-bool rtl_ps_disable_nic(struct ieee80211_hw *hw);
-void rtl_ips_nic_off(struct ieee80211_hw *hw);
-void rtl_ips_nic_on(struct ieee80211_hw *hw);
-void rtl_ips_nic_off_wq_callback(void *data);
-void rtl_lps_enter(struct ieee80211_hw *hw);
-void rtl_lps_leave(struct ieee80211_hw *hw);
-
-void rtl_lps_set_psmode(struct ieee80211_hw *hw, u8 rt_psmode);
-
-void rtl_swlps_beacon(struct ieee80211_hw *hw, void *data, unsigned int len);
-void rtl_swlps_wq_callback(void *data);
-void rtl_swlps_rfon_wq_callback(void *data);
-void rtl_swlps_rf_awake(struct ieee80211_hw *hw);
-void rtl_swlps_rf_sleep(struct ieee80211_hw *hw);
-void rtl_p2p_ps_cmd(struct ieee80211_hw *hw, u8 p2p_ps_state);
-void rtl_p2p_info(struct ieee80211_hw *hw, void *data, unsigned int len);
-void rtl_lps_change_work_callback(struct work_struct *work);
-
-#endif
diff --git a/drivers/staging/rtlwifi/pwrseqcmd.h b/drivers/staging/rtlwifi/pwrseqcmd.h
deleted file mode 100644
index bd8ae84..0000000
--- a/drivers/staging/rtlwifi/pwrseqcmd.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL8723E_PWRSEQCMD_H__
-#define __RTL8723E_PWRSEQCMD_H__
-
-#include "wifi.h"
-/*---------------------------------------------
- * 3 The value of cmd: 4 bits
- *---------------------------------------------
- */
-#define    PWR_CMD_READ		0x00
-#define    PWR_CMD_WRITE	0x01
-#define    PWR_CMD_POLLING	0x02
-#define    PWR_CMD_DELAY	0x03
-#define    PWR_CMD_END		0x04
-
-/* define the base address of each block */
-#define   PWR_BASEADDR_MAC	0x00
-#define   PWR_BASEADDR_USB	0x01
-#define   PWR_BASEADDR_PCIE	0x02
-#define   PWR_BASEADDR_SDIO	0x03
-
-#define	PWR_INTF_SDIO_MSK	BIT(0)
-#define	PWR_INTF_USB_MSK	BIT(1)
-#define	PWR_INTF_PCI_MSK	BIT(2)
-#define	PWR_INTF_ALL_MSK	(BIT(0) | BIT(1) | BIT(2) | BIT(3))
-
-#define	PWR_FAB_TSMC_MSK	BIT(0)
-#define	PWR_FAB_UMC_MSK		BIT(1)
-#define	PWR_FAB_ALL_MSK		(BIT(0) | BIT(1) | BIT(2) | BIT(3))
-
-#define	PWR_CUT_TESTCHIP_MSK	BIT(0)
-#define	PWR_CUT_A_MSK		BIT(1)
-#define	PWR_CUT_B_MSK		BIT(2)
-#define	PWR_CUT_C_MSK		BIT(3)
-#define	PWR_CUT_D_MSK		BIT(4)
-#define	PWR_CUT_E_MSK		BIT(5)
-#define	PWR_CUT_F_MSK		BIT(6)
-#define	PWR_CUT_G_MSK		BIT(7)
-#define	PWR_CUT_ALL_MSK		0xFF
-
-enum pwrseq_delay_unit {
-	PWRSEQ_DELAY_US,
-	PWRSEQ_DELAY_MS,
-};
-
-struct wlan_pwr_cfg {
-	u16 offset;
-	u8 cut_msk;
-	u8 fab_msk:4;
-	u8 interface_msk:4;
-	u8 base:4;
-	u8 cmd:4;
-	u8 msk;
-	u8 value;
-};
-
-#define	GET_PWR_CFG_OFFSET(__PWR_CMD)	(__PWR_CMD.offset)
-#define	GET_PWR_CFG_CUT_MASK(__PWR_CMD)	(__PWR_CMD.cut_msk)
-#define	GET_PWR_CFG_FAB_MASK(__PWR_CMD)	(__PWR_CMD.fab_msk)
-#define	GET_PWR_CFG_INTF_MASK(__PWR_CMD)	(__PWR_CMD.interface_msk)
-#define	GET_PWR_CFG_BASE(__PWR_CMD)	(__PWR_CMD.base)
-#define	GET_PWR_CFG_CMD(__PWR_CMD)	(__PWR_CMD.cmd)
-#define	GET_PWR_CFG_MASK(__PWR_CMD)	(__PWR_CMD.msk)
-#define	GET_PWR_CFG_VALUE(__PWR_CMD)	(__PWR_CMD.value)
-
-bool rtl_hal_pwrseqcmdparsing(struct rtl_priv *rtlpriv, u8 cut_version,
-			      u8 fab_version, u8 interface_type,
-			      struct wlan_pwr_cfg pwrcfgcmd[]);
-
-#endif
diff --git a/drivers/staging/rtlwifi/rc.c b/drivers/staging/rtlwifi/rc.c
deleted file mode 100644
index 3ebfc67..0000000
--- a/drivers/staging/rtlwifi/rc.c
+++ /dev/null
@@ -1,309 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "wifi.h"
-#include "base.h"
-#include "rc.h"
-
-/*
- *Finds the highest rate index we can use
- *if skb is special data like DHCP/EAPOL, we set should
- *it to lowest rate CCK_1M, otherwise we set rate to
- *highest rate based on wireless mode used for iwconfig
- *show Tx rate.
- */
-static u8 _rtl_rc_get_highest_rix(struct rtl_priv *rtlpriv,
-				  struct ieee80211_sta *sta,
-				  struct sk_buff *skb, bool not_data)
-{
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_sta_info *sta_entry = NULL;
-	u16 wireless_mode = 0;
-	u8 nss;	/* NSS -1 */
-
-	if (get_rf_type(rtlphy) >= RF_4T4R)
-		nss = 3;
-	else if (get_rf_type(rtlphy) >= RF_3T3R)
-		nss = 2;
-	else if (get_rf_type(rtlphy) >= RF_2T2R)
-		nss = 1;
-	else
-		nss = 0;
-
-	/*
-	 *this rate is no use for true rate, firmware
-	 *will control rate at all it just used for
-	 *1.show in iwconfig in B/G mode
-	 *2.in rtl_get_tcb_desc when we check rate is
-	 *      1M we will not use FW rate but user rate.
-	 */
-
-	if (sta) {
-		sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-		wireless_mode = sta_entry->wireless_mode;
-	}
-
-	if (rtl_is_special_data(rtlpriv->mac80211.hw, skb, true, false) ||
-	    not_data) {
-		return 0;
-	}
-	if (rtlhal->current_bandtype == BAND_ON_2_4G) {
-		if (wireless_mode == WIRELESS_MODE_B) {
-			return B_MODE_MAX_RIX;
-		} else if (wireless_mode == WIRELESS_MODE_G) {
-			return G_MODE_MAX_RIX;
-		} else if (wireless_mode == WIRELESS_MODE_N_24G) {
-			if (nss == 0)
-				return N_MODE_MCS7_RIX;
-			else
-				return N_MODE_MCS15_RIX;
-		} else if (wireless_mode == WIRELESS_MODE_AC_24G) {
-			if (sta->bandwidth == IEEE80211_STA_RX_BW_20)
-				return AC_MODE_MCS8_RIX | (nss << 4);
-			else
-				return AC_MODE_MCS9_RIX | (nss << 4);
-		}
-		return 0;
-	}
-	if (wireless_mode == WIRELESS_MODE_A) {
-		return A_MODE_MAX_RIX;
-	} else if (wireless_mode == WIRELESS_MODE_N_5G) {
-		if (nss == 0)
-			return N_MODE_MCS7_RIX;
-		else
-			return N_MODE_MCS15_RIX;
-	} else if (wireless_mode == WIRELESS_MODE_AC_5G) {
-		if (sta->bandwidth == IEEE80211_STA_RX_BW_20)
-			return AC_MODE_MCS8_RIX | (nss << 4);
-		else
-			return AC_MODE_MCS9_RIX | (nss << 4);
-	}
-	return 0;
-}
-
-static void _rtl_rc_rate_set_series(struct rtl_priv *rtlpriv,
-				    struct ieee80211_sta *sta,
-				    struct ieee80211_tx_rate *rate,
-				    struct ieee80211_tx_rate_control *txrc,
-				    u8 tries, s8 rix, int rtsctsenable,
-				    bool not_data)
-{
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	struct rtl_sta_info *sta_entry = NULL;
-	u16 wireless_mode = 0;
-	u8 sgi_20 = 0, sgi_40 = 0, sgi_80 = 0;
-
-	if (sta) {
-		sgi_20 = sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20;
-		sgi_40 = sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40;
-		sgi_80 = sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80;
-		sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-		wireless_mode = sta_entry->wireless_mode;
-	}
-	rate->count = tries;
-	rate->idx = rix >= 0x00 ? rix : 0x00;
-	if ((rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8812AE ||
-	     rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8822BE) &&
-	    wireless_mode == WIRELESS_MODE_AC_5G)
-		rate->idx |= 0x10;/*2NSS for 8812AE, 8822BE*/
-
-	if (!not_data) {
-		if (txrc->short_preamble)
-			rate->flags |= IEEE80211_TX_RC_USE_SHORT_PREAMBLE;
-		if (mac->opmode == NL80211_IFTYPE_AP ||
-		    mac->opmode == NL80211_IFTYPE_ADHOC) {
-			if (sta && (sta->ht_cap.cap &
-				    IEEE80211_HT_CAP_SUP_WIDTH_20_40))
-				rate->flags |= IEEE80211_TX_RC_40_MHZ_WIDTH;
-			if (sta && sta->vht_cap.vht_supported)
-				rate->flags |= IEEE80211_TX_RC_80_MHZ_WIDTH;
-		} else {
-			if (mac->bw_80)
-				rate->flags |= IEEE80211_TX_RC_80_MHZ_WIDTH;
-			else if (mac->bw_40)
-				rate->flags |= IEEE80211_TX_RC_40_MHZ_WIDTH;
-		}
-
-		if (sgi_20 || sgi_40 || sgi_80)
-			rate->flags |= IEEE80211_TX_RC_SHORT_GI;
-		if (sta && sta->ht_cap.ht_supported &&
-		    (wireless_mode == WIRELESS_MODE_N_5G ||
-		     wireless_mode == WIRELESS_MODE_N_24G))
-			rate->flags |= IEEE80211_TX_RC_MCS;
-		if (sta && sta->vht_cap.vht_supported &&
-		    (wireless_mode == WIRELESS_MODE_AC_5G ||
-		     wireless_mode == WIRELESS_MODE_AC_24G ||
-		     wireless_mode == WIRELESS_MODE_AC_ONLY))
-			rate->flags |= IEEE80211_TX_RC_VHT_MCS;
-	}
-}
-
-static void rtl_get_rate(void *ppriv, struct ieee80211_sta *sta,
-			 void *priv_sta,
-			 struct ieee80211_tx_rate_control *txrc)
-{
-	struct rtl_priv *rtlpriv = ppriv;
-	struct sk_buff *skb = txrc->skb;
-	struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
-	struct ieee80211_tx_rate *rates = tx_info->control.rates;
-	__le16 fc = rtl_get_fc(skb);
-	u8 try_per_rate, i, rix;
-	bool not_data = !ieee80211_is_data(fc);
-
-	if (rate_control_send_low(sta, priv_sta, txrc))
-		return;
-
-	rix = _rtl_rc_get_highest_rix(rtlpriv, sta, skb, not_data);
-	try_per_rate = 1;
-	_rtl_rc_rate_set_series(rtlpriv, sta, &rates[0], txrc,
-				try_per_rate, rix, 1, not_data);
-
-	if (!not_data) {
-		for (i = 1; i < 4; i++)
-			_rtl_rc_rate_set_series(rtlpriv, sta, &rates[i],
-						txrc, i, (rix - i), 1,
-						not_data);
-	}
-}
-
-static bool _rtl_tx_aggr_check(struct rtl_priv *rtlpriv,
-			       struct rtl_sta_info *sta_entry, u16 tid)
-{
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-
-	if (mac->act_scanning)
-		return false;
-
-	if (mac->opmode == NL80211_IFTYPE_STATION &&
-	    mac->cnt_after_linked < 3)
-		return false;
-
-	if (sta_entry->tids[tid].agg.agg_state == RTL_AGG_STOP)
-		return true;
-
-	return false;
-}
-
-/*mac80211 Rate Control callbacks*/
-static void rtl_tx_status(void *ppriv,
-			  struct ieee80211_supported_band *sband,
-			  struct ieee80211_sta *sta, void *priv_sta,
-			  struct sk_buff *skb)
-{
-	struct rtl_priv *rtlpriv = ppriv;
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	struct ieee80211_hdr *hdr = rtl_get_hdr(skb);
-	__le16 fc = rtl_get_fc(skb);
-	struct rtl_sta_info *sta_entry;
-
-	if (!priv_sta || !ieee80211_is_data(fc))
-		return;
-
-	if (rtl_is_special_data(mac->hw, skb, true, true))
-		return;
-
-	if (is_multicast_ether_addr(ieee80211_get_DA(hdr)) ||
-	    is_broadcast_ether_addr(ieee80211_get_DA(hdr)))
-		return;
-
-	if (sta) {
-		/* Check if aggregation has to be enabled for this tid */
-		sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-		if (sta->ht_cap.ht_supported &&
-		    !(skb->protocol == cpu_to_be16(ETH_P_PAE))) {
-			if (ieee80211_is_data_qos(fc)) {
-				u8 tid = rtl_get_tid(skb);
-
-				if (_rtl_tx_aggr_check(rtlpriv, sta_entry,
-						       tid)) {
-					sta_entry->tids[tid].agg.agg_state =
-						RTL_AGG_PROGRESS;
-					ieee80211_start_tx_ba_session(sta, tid,
-								      5000);
-				}
-			}
-		}
-	}
-}
-
-static void rtl_rate_init(void *ppriv,
-			  struct ieee80211_supported_band *sband,
-			  struct cfg80211_chan_def *chandef,
-			  struct ieee80211_sta *sta, void *priv_sta)
-{
-}
-
-static void rtl_rate_update(void *ppriv,
-			    struct ieee80211_supported_band *sband,
-			    struct cfg80211_chan_def *chandef,
-			    struct ieee80211_sta *sta, void *priv_sta,
-			    u32 changed)
-{
-}
-
-static void *rtl_rate_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	return rtlpriv;
-}
-
-static void rtl_rate_free(void *rtlpriv)
-{
-}
-
-static void *rtl_rate_alloc_sta(void *ppriv,
-				struct ieee80211_sta *sta, gfp_t gfp)
-{
-	struct rtl_priv *rtlpriv = ppriv;
-	struct rtl_rate_priv *rate_priv;
-
-	rate_priv = kzalloc(sizeof(*rate_priv), gfp);
-	if (!rate_priv)
-		return NULL;
-
-	rtlpriv->rate_priv = rate_priv;
-
-	return rate_priv;
-}
-
-static void rtl_rate_free_sta(void *rtlpriv,
-			      struct ieee80211_sta *sta, void *priv_sta)
-{
-	struct rtl_rate_priv *rate_priv = priv_sta;
-
-	kfree(rate_priv);
-}
-
-static const struct rate_control_ops rtl_rate_ops = {
-	.name = "rtl_rc",
-	.alloc = rtl_rate_alloc,
-	.free = rtl_rate_free,
-	.alloc_sta = rtl_rate_alloc_sta,
-	.free_sta = rtl_rate_free_sta,
-	.rate_init = rtl_rate_init,
-	.rate_update = rtl_rate_update,
-	.tx_status = rtl_tx_status,
-	.get_rate = rtl_get_rate,
-};
-
-int rtl_rate_control_register(void)
-{
-	return ieee80211_rate_control_register(&rtl_rate_ops);
-}
-
-void rtl_rate_control_unregister(void)
-{
-	ieee80211_rate_control_unregister(&rtl_rate_ops);
-}
diff --git a/drivers/staging/rtlwifi/rc.h b/drivers/staging/rtlwifi/rc.h
deleted file mode 100644
index 7f63117..0000000
--- a/drivers/staging/rtlwifi/rc.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_RC_H__
-#define __RTL_RC_H__
-
-#define B_MODE_MAX_RIX 3
-#define G_MODE_MAX_RIX 11
-#define A_MODE_MAX_RIX 7
-
-/* in mac80211 mcs0-mcs15 is idx0-idx15*/
-#define N_MODE_MCS7_RIX 7
-#define N_MODE_MCS15_RIX 15
-
-/* in mac80211 vht mcs0-9 is in [3:0], nss is in [:4] */
-#define AC_MODE_MCS7_RIX 7
-#define AC_MODE_MCS8_RIX 8
-#define AC_MODE_MCS9_RIX 9
-
-struct rtl_rate_priv {
-	u8 ht_cap;
-};
-
-int rtl_rate_control_register(void);
-void rtl_rate_control_unregister(void);
-
-#endif
diff --git a/drivers/staging/rtlwifi/regd.c b/drivers/staging/rtlwifi/regd.c
deleted file mode 100644
index 5213ca7..0000000
--- a/drivers/staging/rtlwifi/regd.c
+++ /dev/null
@@ -1,458 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "wifi.h"
-#include "regd.h"
-
-static struct country_code_to_enum_rd allcountries[] = {
-	{COUNTRY_CODE_FCC, "US"},
-	{COUNTRY_CODE_IC, "US"},
-	{COUNTRY_CODE_ETSI, "EC"},
-	{COUNTRY_CODE_SPAIN, "EC"},
-	{COUNTRY_CODE_FRANCE, "EC"},
-	{COUNTRY_CODE_MKK, "JP"},
-	{COUNTRY_CODE_MKK1, "JP"},
-	{COUNTRY_CODE_ISRAEL, "EC"},
-	{COUNTRY_CODE_TELEC, "JP"},
-	{COUNTRY_CODE_MIC, "JP"},
-	{COUNTRY_CODE_GLOBAL_DOMAIN, "JP"},
-	{COUNTRY_CODE_WORLD_WIDE_13, "EC"},
-	{COUNTRY_CODE_TELEC_NETGEAR, "EC"},
-	{COUNTRY_CODE_WORLD_WIDE_13_5G_ALL, "US"},
-};
-
-/*Only these channels all allow active
- *scan on all world regulatory domains
- */
-#define RTL819x_2GHZ_CH01_11	\
-	REG_RULE(2412 - 10, 2462 + 10, 40, 0, 20, 0)
-
-/*We enable active scan on these a case
- *by case basis by regulatory domain
- */
-#define RTL819x_2GHZ_CH12_13	\
-	REG_RULE(2467 - 10, 2472 + 10, 40, 0, 20,\
-	NL80211_RRF_PASSIVE_SCAN)
-
-#define RTL819x_2GHZ_CH14	\
-	REG_RULE(2484 - 10, 2484 + 10, 40, 0, 20, \
-	NL80211_RRF_PASSIVE_SCAN | \
-	NL80211_RRF_NO_OFDM)
-
-/* 5G chan 36 - chan 64*/
-#define RTL819x_5GHZ_5150_5350	\
-	REG_RULE(5150 - 10, 5350 + 10, 80, 0, 30, 0)
-/* 5G chan 100 - chan 165*/
-#define RTL819x_5GHZ_5470_5850	\
-	REG_RULE(5470 - 10, 5850 + 10, 80, 0, 30, 0)
-/* 5G chan 149 - chan 165*/
-#define RTL819x_5GHZ_5725_5850	\
-	REG_RULE(5725 - 10, 5850 + 10, 80, 0, 30, 0)
-
-#define RTL819x_5GHZ_ALL	\
-	(RTL819x_5GHZ_5150_5350, RTL819x_5GHZ_5470_5850)
-
-static const struct ieee80211_regdomain rtl_regdom_11 = {
-	.n_reg_rules = 1,
-	.alpha2 = "99",
-	.reg_rules = {
-		RTL819x_2GHZ_CH01_11,
-	}
-};
-
-static const struct ieee80211_regdomain rtl_regdom_12_13 = {
-	.n_reg_rules = 2,
-	.alpha2 = "99",
-	.reg_rules = {
-		RTL819x_2GHZ_CH01_11,
-		RTL819x_2GHZ_CH12_13,
-	}
-};
-
-static const struct ieee80211_regdomain rtl_regdom_no_midband = {
-	.n_reg_rules = 3,
-	.alpha2 = "99",
-	.reg_rules = {
-		RTL819x_2GHZ_CH01_11,
-		RTL819x_5GHZ_5150_5350,
-		RTL819x_5GHZ_5725_5850,
-	}
-};
-
-static const struct ieee80211_regdomain rtl_regdom_60_64 = {
-	.n_reg_rules = 3,
-	.alpha2 = "99",
-	.reg_rules = {
-		RTL819x_2GHZ_CH01_11,
-		RTL819x_2GHZ_CH12_13,
-		RTL819x_5GHZ_5725_5850,
-	}
-};
-
-static const struct ieee80211_regdomain rtl_regdom_14_60_64 = {
-	.n_reg_rules = 4,
-	.alpha2 = "99",
-	.reg_rules = {
-		RTL819x_2GHZ_CH01_11,
-		RTL819x_2GHZ_CH12_13,
-		RTL819x_2GHZ_CH14,
-		RTL819x_5GHZ_5725_5850,
-	}
-};
-
-static const struct ieee80211_regdomain rtl_regdom_12_13_5g_all = {
-	.n_reg_rules = 4,
-	.alpha2 = "99",
-	.reg_rules = {
-		RTL819x_2GHZ_CH01_11,
-		RTL819x_2GHZ_CH12_13,
-		RTL819x_5GHZ_5150_5350,
-		RTL819x_5GHZ_5470_5850,
-	}
-};
-
-static const struct ieee80211_regdomain rtl_regdom_14 = {
-	.n_reg_rules = 3,
-	.alpha2 = "99",
-	.reg_rules = {
-		RTL819x_2GHZ_CH01_11,
-		RTL819x_2GHZ_CH12_13,
-		RTL819x_2GHZ_CH14,
-	}
-};
-
-static bool _rtl_is_radar_freq(u16 center_freq)
-{
-	return center_freq >= 5260 && center_freq <= 5700;
-}
-
-static void _rtl_reg_apply_beaconing_flags(struct wiphy *wiphy,
-					   enum nl80211_reg_initiator initiator)
-{
-	enum nl80211_band band;
-	struct ieee80211_supported_band *sband;
-	const struct ieee80211_reg_rule *reg_rule;
-	struct ieee80211_channel *ch;
-	unsigned int i;
-
-	for (band = 0; band < NUM_NL80211_BANDS; band++) {
-		if (!wiphy->bands[band])
-			continue;
-
-		sband = wiphy->bands[band];
-
-		for (i = 0; i < sband->n_channels; i++) {
-			ch = &sband->channels[i];
-			if (_rtl_is_radar_freq(ch->center_freq) ||
-			    (ch->flags & IEEE80211_CHAN_RADAR))
-				continue;
-			if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE) {
-				reg_rule = freq_reg_info(wiphy,
-							 ch->center_freq);
-				if (IS_ERR(reg_rule))
-					continue;
-				/*
-				 *If 11d had a rule for this channel ensure
-				 *we enable adhoc/beaconing if it allows us to
-				 *use it. Note that we would have disabled it
-				 *by applying our static world regdomain by
-				 *default during init, prior to calling our
-				 *regulatory_hint().
-				 */
-
-				if (!(reg_rule->flags & NL80211_RRF_NO_IBSS))
-					ch->flags &= ~IEEE80211_CHAN_NO_IBSS;
-				if (!(reg_rule->flags &
-				      NL80211_RRF_PASSIVE_SCAN))
-					ch->flags &=
-					    ~IEEE80211_CHAN_PASSIVE_SCAN;
-			} else {
-				if (ch->beacon_found)
-					ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
-						   IEEE80211_CHAN_PASSIVE_SCAN);
-			}
-		}
-	}
-}
-
-/* Allows active scan scan on Ch 12 and 13 */
-static void _rtl_reg_apply_active_scan_flags(struct wiphy *wiphy,
-					     enum nl80211_reg_initiator
-					     initiator)
-{
-	struct ieee80211_supported_band *sband;
-	struct ieee80211_channel *ch;
-	const struct ieee80211_reg_rule *reg_rule;
-
-	if (!wiphy->bands[NL80211_BAND_2GHZ])
-		return;
-	sband = wiphy->bands[NL80211_BAND_2GHZ];
-
-	/*
-	 *If no country IE has been received always enable active scan
-	 *on these channels. This is only done for specific regulatory SKUs
-	 */
-	if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) {
-		ch = &sband->channels[11];	/* CH 12 */
-		if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
-			ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
-		ch = &sband->channels[12];	/* CH 13 */
-		if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
-			ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
-		return;
-	}
-
-	/*If a country IE has been received check its rule for this
-	 *channel first before enabling active scan. The passive scan
-	 *would have been enforced by the initial processing of our
-	 *custom regulatory domain.
-	 */
-
-	ch = &sband->channels[11];	/* CH 12 */
-	reg_rule = freq_reg_info(wiphy, ch->center_freq);
-	if (!IS_ERR(reg_rule)) {
-		if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
-			if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
-				ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
-	}
-
-	ch = &sband->channels[12];	/* CH 13 */
-	reg_rule = freq_reg_info(wiphy, ch->center_freq);
-	if (!IS_ERR(reg_rule)) {
-		if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
-			if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
-				ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
-	}
-}
-
-/*
- *Always apply Radar/DFS rules on
- *freq range 5260 MHz - 5700 MHz
- */
-static void _rtl_reg_apply_radar_flags(struct wiphy *wiphy)
-{
-	struct ieee80211_supported_band *sband;
-	struct ieee80211_channel *ch;
-	unsigned int i;
-
-	if (!wiphy->bands[NL80211_BAND_5GHZ])
-		return;
-
-	sband = wiphy->bands[NL80211_BAND_5GHZ];
-
-	for (i = 0; i < sband->n_channels; i++) {
-		ch = &sband->channels[i];
-		if (!_rtl_is_radar_freq(ch->center_freq))
-			continue;
-
-		/*
-		 *We always enable radar detection/DFS on this
-		 *frequency range. Additionally we also apply on
-		 *this frequency range:
-		 *- If STA mode does not yet have DFS supports disable
-		 * active scanning
-		 *- If adhoc mode does not support DFS yet then disable
-		 * adhoc in the frequency.
-		 *- If AP mode does not yet support radar detection/DFS
-		 *do not allow AP mode
-		 */
-		if (!(ch->flags & IEEE80211_CHAN_DISABLED))
-			ch->flags |= IEEE80211_CHAN_RADAR |
-			    IEEE80211_CHAN_NO_IBSS |
-			    IEEE80211_CHAN_PASSIVE_SCAN;
-	}
-}
-
-static void _rtl_reg_apply_world_flags(struct wiphy *wiphy,
-				       enum nl80211_reg_initiator initiator,
-				       struct rtl_regulatory *reg)
-{
-	_rtl_reg_apply_beaconing_flags(wiphy, initiator);
-	_rtl_reg_apply_active_scan_flags(wiphy, initiator);
-}
-
-static void _rtl_dump_channel_map(struct wiphy *wiphy)
-{
-	enum nl80211_band band;
-	struct ieee80211_supported_band *sband;
-	struct ieee80211_channel *ch;
-	unsigned int i;
-
-	for (band = 0; band < NUM_NL80211_BANDS; band++) {
-		if (!wiphy->bands[band])
-			continue;
-		sband = wiphy->bands[band];
-		for (i = 0; i < sband->n_channels; i++)
-			ch = &sband->channels[i];
-	}
-}
-
-static int _rtl_reg_notifier_apply(struct wiphy *wiphy,
-				   struct regulatory_request *request,
-				   struct rtl_regulatory *reg)
-{
-	/* We always apply this */
-	_rtl_reg_apply_radar_flags(wiphy);
-
-	switch (request->initiator) {
-	case NL80211_REGDOM_SET_BY_DRIVER:
-	case NL80211_REGDOM_SET_BY_CORE:
-	case NL80211_REGDOM_SET_BY_USER:
-		break;
-	case NL80211_REGDOM_SET_BY_COUNTRY_IE:
-		_rtl_reg_apply_world_flags(wiphy, request->initiator, reg);
-		break;
-	}
-
-	_rtl_dump_channel_map(wiphy);
-
-	return 0;
-}
-
-static const struct ieee80211_regdomain *_rtl_regdomain_select(
-						struct rtl_regulatory *reg)
-{
-	switch (reg->country_code) {
-	case COUNTRY_CODE_FCC:
-		return &rtl_regdom_no_midband;
-	case COUNTRY_CODE_IC:
-		return &rtl_regdom_11;
-	case COUNTRY_CODE_TELEC_NETGEAR:
-		return &rtl_regdom_60_64;
-	case COUNTRY_CODE_ETSI:
-	case COUNTRY_CODE_SPAIN:
-	case COUNTRY_CODE_FRANCE:
-	case COUNTRY_CODE_ISRAEL:
-		return &rtl_regdom_12_13;
-	case COUNTRY_CODE_MKK:
-	case COUNTRY_CODE_MKK1:
-	case COUNTRY_CODE_TELEC:
-	case COUNTRY_CODE_MIC:
-		return &rtl_regdom_14_60_64;
-	case COUNTRY_CODE_GLOBAL_DOMAIN:
-		return &rtl_regdom_14;
-	case COUNTRY_CODE_WORLD_WIDE_13:
-	case COUNTRY_CODE_WORLD_WIDE_13_5G_ALL:
-		return &rtl_regdom_12_13_5g_all;
-	default:
-		return &rtl_regdom_no_midband;
-	}
-}
-
-static int _rtl_regd_init_wiphy(struct rtl_regulatory *reg,
-				struct wiphy *wiphy,
-				void (*reg_notifier)(struct wiphy *wiphy,
-						     struct regulatory_request *
-						     request))
-{
-	const struct ieee80211_regdomain *regd;
-
-	wiphy->reg_notifier = reg_notifier;
-
-	wiphy->regulatory_flags |= REGULATORY_CUSTOM_REG;
-	wiphy->regulatory_flags &= ~REGULATORY_STRICT_REG;
-	wiphy->regulatory_flags &= ~REGULATORY_DISABLE_BEACON_HINTS;
-	regd = _rtl_regdomain_select(reg);
-	wiphy_apply_custom_regulatory(wiphy, regd);
-	_rtl_reg_apply_radar_flags(wiphy);
-	_rtl_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER, reg);
-	return 0;
-}
-
-static struct country_code_to_enum_rd *_rtl_regd_find_country(u16 countrycode)
-{
-	int i;
-
-	for (i = 0; i < ARRAY_SIZE(allcountries); i++) {
-		if (allcountries[i].countrycode == countrycode)
-			return &allcountries[i];
-	}
-	return NULL;
-}
-
-static u8 channel_plan_to_country_code(u8 channelplan)
-{
-	switch (channelplan) {
-	case 0x20:
-	case 0x21:
-		return COUNTRY_CODE_WORLD_WIDE_13;
-	case 0x22:
-		return COUNTRY_CODE_IC;
-	case 0x25:
-		return COUNTRY_CODE_ETSI;
-	case 0x32:
-		return COUNTRY_CODE_TELEC_NETGEAR;
-	case 0x41:
-		return COUNTRY_CODE_GLOBAL_DOMAIN;
-	case 0x7f:
-		return COUNTRY_CODE_WORLD_WIDE_13_5G_ALL;
-	default:
-		return COUNTRY_CODE_MAX; /*Error*/
-	}
-}
-
-int rtl_regd_init(struct ieee80211_hw *hw,
-		  void (*reg_notifier)(struct wiphy *wiphy,
-				       struct regulatory_request *request))
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct wiphy *wiphy = hw->wiphy;
-	struct country_code_to_enum_rd *country = NULL;
-
-	if (!wiphy)
-		return -EINVAL;
-
-	/* init country_code from efuse channel plan */
-	rtlpriv->regd.country_code =
-		channel_plan_to_country_code(rtlpriv->efuse.channel_plan);
-
-	RT_TRACE(rtlpriv, COMP_REGD, DBG_DMESG,
-		 "rtl: EEPROM regdomain: 0x%0x country code: %d\n",
-		 rtlpriv->efuse.channel_plan, rtlpriv->regd.country_code);
-
-	if (rtlpriv->regd.country_code >= COUNTRY_CODE_MAX) {
-		RT_TRACE(rtlpriv, COMP_REGD, DBG_DMESG,
-			 "rtl: EEPROM indicates invalid country code, world wide 13 should be used\n");
-
-		rtlpriv->regd.country_code = COUNTRY_CODE_WORLD_WIDE_13;
-	}
-
-	country = _rtl_regd_find_country(rtlpriv->regd.country_code);
-
-	if (country) {
-		rtlpriv->regd.alpha2[0] = country->iso_name[0];
-		rtlpriv->regd.alpha2[1] = country->iso_name[1];
-	} else {
-		rtlpriv->regd.alpha2[0] = '0';
-		rtlpriv->regd.alpha2[1] = '0';
-	}
-
-	RT_TRACE(rtlpriv, COMP_REGD, DBG_TRACE,
-		 "rtl: Country alpha2 being used: %c%c\n",
-		  rtlpriv->regd.alpha2[0], rtlpriv->regd.alpha2[1]);
-
-	_rtl_regd_init_wiphy(&rtlpriv->regd, wiphy, reg_notifier);
-
-	return 0;
-}
-
-void rtl_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request)
-{
-	struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	RT_TRACE(rtlpriv, COMP_REGD, DBG_LOUD, "\n");
-
-	_rtl_reg_notifier_apply(wiphy, request, &rtlpriv->regd);
-}
diff --git a/drivers/staging/rtlwifi/regd.h b/drivers/staging/rtlwifi/regd.h
deleted file mode 100644
index c19e879..0000000
--- a/drivers/staging/rtlwifi/regd.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_REGD_H__
-#define __RTL_REGD_H__
-
-/* for kernel 3.14 , both value are changed to IEEE80211_CHAN_NO_IR*/
-#define IEEE80211_CHAN_NO_IBSS IEEE80211_CHAN_NO_IR
-#define IEEE80211_CHAN_PASSIVE_SCAN IEEE80211_CHAN_NO_IR
-
-struct country_code_to_enum_rd {
-	u16 countrycode;
-	const char *iso_name;
-};
-
-enum country_code_type_t {
-	COUNTRY_CODE_FCC = 0,
-	COUNTRY_CODE_IC = 1,
-	COUNTRY_CODE_ETSI = 2,
-	COUNTRY_CODE_SPAIN = 3,
-	COUNTRY_CODE_FRANCE = 4,
-	COUNTRY_CODE_MKK = 5,
-	COUNTRY_CODE_MKK1 = 6,
-	COUNTRY_CODE_ISRAEL = 7,
-	COUNTRY_CODE_TELEC = 8,
-	COUNTRY_CODE_MIC = 9,
-	COUNTRY_CODE_GLOBAL_DOMAIN = 10,
-	COUNTRY_CODE_WORLD_WIDE_13 = 11,
-	COUNTRY_CODE_TELEC_NETGEAR = 12,
-	COUNTRY_CODE_WORLD_WIDE_13_5G_ALL = 13,
-
-	/*add new channel plan above this line */
-	COUNTRY_CODE_MAX
-};
-
-int rtl_regd_init(struct ieee80211_hw *hw,
-		  void (*reg_notifier)(struct wiphy *wiphy,
-				       struct regulatory_request *request));
-void rtl_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request);
-
-#endif
diff --git a/drivers/staging/rtlwifi/rtl8822be/Makefile b/drivers/staging/rtlwifi/rtl8822be/Makefile
deleted file mode 100644
index 6ef094f..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-rtl8822be-objs :=		\
-		fw.o		\
-		hw.o		\
-		led.o		\
-		phy.o		\
-		sw.o		\
-		trx.o
diff --git a/drivers/staging/rtlwifi/rtl8822be/def.h b/drivers/staging/rtlwifi/rtl8822be/def.h
deleted file mode 100644
index 596f736..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/def.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL8822B_DEF_H__
-#define __RTL8822B_DEF_H__
-
-#define RX_DESC_NUM_8822BE	512
-
-#define HAL_PRIME_CHNL_OFFSET_DONT_CARE	0
-#define HAL_PRIME_CHNL_OFFSET_LOWER	1
-#define HAL_PRIME_CHNL_OFFSET_UPPER	2
-
-#define RX_MPDU_QUEUE	0
-
-#define IS_HT_RATE(_rate) (_rate >= DESC_RATEMCS0)
-#define IS_CCK_RATE(_rate) (_rate >= DESC_RATE1M && _rate <= DESC_RATE11M)
-#define IS_OFDM_RATE(_rate) (_rate >= DESC_RATE6M && _rate <= DESC_RATE54M)
-#define IS_1T_RATE(_rate)                                                      \
-	((_rate >= DESC_RATE1M && _rate <= DESC_RATEMCS7) ||                   \
-	 (_rate >= DESC_RATEVHT1SS_MCS0 && _rate <= DESC_RATEVHT1SS_MCS9))
-#define IS_2T_RATE(_rate)                                                      \
-	((_rate >= DESC_RATEMCS8 && _rate <= DESC_RATEMCS15) ||                \
-	 (_rate >= DESC_RATEVHT2SS_MCS0 && _rate <= DESC_RATEVHT2SS_MCS9))
-
-#define IS_1T_RATESEC(_rs)                                                     \
-	((_rs == CCK) || (_rs == OFDM) || (_rs == HT_MCS0_MCS7) ||             \
-	 (_rs == VHT_1SSMCS0_1SSMCS9))
-#define IS_2T_RATESEC(_rs)                                                     \
-	((_rs == HT_MCS8_MCS15) || (_rs == VHT_2SSMCS0_2SSMCS9))
-
-enum rx_packet_type {
-	NORMAL_RX,
-	C2H_PACKET,
-};
-
-enum rtl_desc_qsel {
-	QSLT_BK	= 0x2,
-	QSLT_BE	= 0x0,
-	QSLT_VI	= 0x5,
-	QSLT_VO	= 0x7,
-	QSLT_BEACON	= 0x10,
-	QSLT_HIGH	= 0x11,
-	QSLT_MGNT	= 0x12,
-	QSLT_CMD	= 0x13,
-};
-
-enum vht_data_sc {
-	VHT_DATA_SC_DONOT_CARE	= 0,
-	VHT_DATA_SC_20_UPPER_OF_80MHZ	= 1,
-	VHT_DATA_SC_20_LOWER_OF_80MHZ	= 2,
-	VHT_DATA_SC_20_UPPERST_OF_80MHZ	= 3,
-	VHT_DATA_SC_20_LOWEST_OF_80MHZ	= 4,
-	VHT_DATA_SC_20_RECV1	= 5,
-	VHT_DATA_SC_20_RECV2	= 6,
-	VHT_DATA_SC_20_RECV3	= 7,
-	VHT_DATA_SC_20_RECV4	= 8,
-	VHT_DATA_SC_40_UPPER_OF_80MHZ	= 9,
-	VHT_DATA_SC_40_LOWER_OF_80MHZ	= 10,
-};
-#endif
diff --git a/drivers/staging/rtlwifi/rtl8822be/fw.c b/drivers/staging/rtlwifi/rtl8822be/fw.c
deleted file mode 100644
index cf6b7a8..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/fw.c
+++ /dev/null
@@ -1,964 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../wifi.h"
-#include "../pci.h"
-#include "../base.h"
-#include "reg.h"
-#include "def.h"
-#include "fw.h"
-
-static bool _rtl8822be_check_fw_read_last_h2c(struct ieee80211_hw *hw,
-					      u8 boxnum)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 val_hmetfr;
-	bool result = false;
-
-	val_hmetfr = rtl_read_byte(rtlpriv, REG_HMETFR_8822B);
-	if (((val_hmetfr >> boxnum) & BIT(0)) == 0)
-		result = true;
-	return result;
-}
-
-static void _rtl8822be_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
-					u32 cmd_len, u8 *cmdbuffer)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	u8 boxnum;
-	u16 box_reg = 0, box_extreg = 0;
-	u8 u1b_tmp;
-	bool isfw_read;
-	u8 buf_index = 0;
-	bool bwrite_success = false;
-	u8 wait_h2c_limmit = 100;
-	u8 boxcontent[4], boxextcontent[4];
-	u32 h2c_waitcounter = 0;
-	unsigned long flag;
-	u8 idx;
-
-	/* 1. Prevent race condition in setting H2C cmd.
-	 * (copy from MgntActSet_RF_State().)
-	 */
-	while (true) {
-		spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag);
-		if (rtlhal->h2c_setinprogress) {
-			RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-				 "H2C set in progress! wait..H2C_ID=%d.\n",
-				 element_id);
-
-			while (rtlhal->h2c_setinprogress) {
-				spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock,
-						       flag);
-				h2c_waitcounter++;
-				RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-					 "Wait 100 us (%d times)...\n",
-					 h2c_waitcounter);
-				udelay(100);
-
-				if (h2c_waitcounter > 1000)
-					return;
-				spin_lock_irqsave(&rtlpriv->locks.h2c_lock,
-						  flag);
-			}
-			spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag);
-		} else {
-			rtlhal->h2c_setinprogress = true;
-			spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag);
-			break;
-		}
-	}
-
-	while (!bwrite_success) {
-		/* 2. Find the last BOX number which has been written. */
-		boxnum = rtlhal->last_hmeboxnum;
-		switch (boxnum) {
-		case 0:
-			box_reg = REG_HMEBOX0_8822B;
-			box_extreg = REG_HMEBOX_E0_8822B;
-			break;
-		case 1:
-			box_reg = REG_HMEBOX1_8822B;
-			box_extreg = REG_HMEBOX_E1_8822B;
-			break;
-		case 2:
-			box_reg = REG_HMEBOX2_8822B;
-			box_extreg = REG_HMEBOX_E2_8822B;
-			break;
-		case 3:
-			box_reg = REG_HMEBOX3_8822B;
-			box_extreg = REG_HMEBOX_E3_8822B;
-			break;
-		default:
-			RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
-				 "switch case not process\n");
-			break;
-		}
-
-		/* 3. Check if the box content is empty. */
-		u1b_tmp = rtl_read_byte(rtlpriv, REG_CR_8822B);
-
-		if (u1b_tmp == 0xea) {
-			if (rtl_read_byte(rtlpriv, REG_TXDMA_STATUS_8822B) ==
-				    0xea ||
-			    rtl_read_byte(rtlpriv, REG_TXPKT_EMPTY_8822B) ==
-				    0xea)
-				rtl_write_byte(rtlpriv, REG_SYS_CFG1_8822B + 3,
-					       0xff);
-
-			RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-				 "REG_CR is unavaliable\n");
-			break;
-		}
-
-		wait_h2c_limmit = 100;
-		isfw_read = _rtl8822be_check_fw_read_last_h2c(hw, boxnum);
-		while (!isfw_read) {
-			wait_h2c_limmit--;
-			if (wait_h2c_limmit == 0) {
-				RT_TRACE(rtlpriv, COMP_CMD, DBG_WARNING,
-					 "Wait too long for FW clear MB%d!!!\n",
-					 boxnum);
-				break;
-			}
-			udelay(10);
-			isfw_read =
-				_rtl8822be_check_fw_read_last_h2c(hw, boxnum);
-			u1b_tmp = rtl_read_byte(rtlpriv, 0x130);
-			RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-				 "Waiting for FW clear MB%d!!! 0x130 = %2x\n",
-				 boxnum, u1b_tmp);
-		}
-
-		/* If Fw has not read the last H2C cmd,
-		 * break and give up this H2C.
-		 */
-		if (!isfw_read) {
-			RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-				 "Write H2C reg BOX[%d] fail,Fw don't read.\n",
-				 boxnum);
-			break;
-		}
-		/* 4. Fill the H2C cmd into box */
-		memset(boxcontent, 0, sizeof(boxcontent));
-		memset(boxextcontent, 0, sizeof(boxextcontent));
-		boxcontent[0] = element_id;
-		RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-			 "Write element_id box_reg(%4x) = %2x\n", box_reg,
-			 element_id);
-
-		switch (cmd_len) {
-		case 1:
-		case 2:
-		case 3:
-			/*boxcontent[0] &= ~(BIT(7));*/
-			memcpy((u8 *)(boxcontent) + 1, cmdbuffer + buf_index,
-			       cmd_len);
-
-			for (idx = 0; idx < 4; idx++) {
-				rtl_write_byte(rtlpriv, box_reg + idx,
-					       boxcontent[idx]);
-			}
-			break;
-		case 4:
-		case 5:
-		case 6:
-		case 7:
-			/*boxcontent[0] |= (BIT(7));*/
-			memcpy((u8 *)(boxextcontent), cmdbuffer + buf_index + 3,
-			       cmd_len - 3);
-			memcpy((u8 *)(boxcontent) + 1, cmdbuffer + buf_index,
-			       3);
-
-			for (idx = 0; idx < 4; idx++) {
-				rtl_write_byte(rtlpriv, box_extreg + idx,
-					       boxextcontent[idx]);
-			}
-
-			for (idx = 0; idx < 4; idx++) {
-				rtl_write_byte(rtlpriv, box_reg + idx,
-					       boxcontent[idx]);
-			}
-			break;
-		default:
-			RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
-				 "switch case not process\n");
-			break;
-		}
-
-		bwrite_success = true;
-
-		rtlhal->last_hmeboxnum = boxnum + 1;
-		if (rtlhal->last_hmeboxnum == 4)
-			rtlhal->last_hmeboxnum = 0;
-
-		RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-			 "pHalData->last_hmeboxnum  = %d\n",
-			 rtlhal->last_hmeboxnum);
-	}
-
-	spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag);
-	rtlhal->h2c_setinprogress = false;
-	spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag);
-
-	RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "go out\n");
-}
-
-void rtl8822be_fill_h2c_cmd(struct ieee80211_hw *hw, u8 element_id, u32 cmd_len,
-			    u8 *cmdbuffer)
-{
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 tmp_cmdbuf[8];
-
-	if (!rtlhal->fw_ready) {
-		WARN_ONCE(true,
-			  "return H2C cmd because of Fw download fail!!!\n");
-		return;
-	}
-
-	memset(tmp_cmdbuf, 0, 8);
-	memcpy(tmp_cmdbuf, cmdbuffer, cmd_len);
-
-	RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-		 "h2c cmd: len=%d %02X%02X%02X%02X %02X%02X%02X%02X\n", cmd_len,
-		 tmp_cmdbuf[2], tmp_cmdbuf[1], tmp_cmdbuf[0], element_id,
-		 tmp_cmdbuf[6], tmp_cmdbuf[5], tmp_cmdbuf[4], tmp_cmdbuf[3]);
-
-	_rtl8822be_fill_h2c_command(hw, element_id, cmd_len, tmp_cmdbuf);
-}
-
-void rtl8822be_set_default_port_id_cmd(struct ieee80211_hw *hw)
-{
-	u8 h2c_set_default_port_id[H2C_DEFAULT_PORT_ID_LEN];
-
-	SET_H2CCMD_DFTPID_PORT_ID(h2c_set_default_port_id, 0);
-	SET_H2CCMD_DFTPID_MAC_ID(h2c_set_default_port_id, 0);
-
-	rtl8822be_fill_h2c_cmd(hw, H2C_8822B_DEFAULT_PORT_ID,
-			       H2C_DEFAULT_PORT_ID_LEN,
-			       h2c_set_default_port_id);
-}
-
-void rtl8822be_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 u1_h2c_set_pwrmode[H2C_8822B_PWEMODE_LENGTH] = {0};
-	static u8 prev_h2c[H2C_8822B_PWEMODE_LENGTH] = {0};
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	u8 rlbm, power_state = 0, byte5 = 0;
-	u8 awake_intvl; /* DTIM = (awake_intvl - 1) */
-	u8 smart_ps = 0;
-	struct rtl_btc_ops *btc_ops = rtlpriv->btcoexist.btc_ops;
-	bool bt_ctrl_lps = (rtlpriv->cfg->ops->get_btc_status() ?
-			    btc_ops->btc_is_bt_ctrl_lps(rtlpriv) : false);
-	bool bt_lps_on = (rtlpriv->cfg->ops->get_btc_status() ?
-			  btc_ops->btc_is_bt_lps_on(rtlpriv) : false);
-
-	memset(u1_h2c_set_pwrmode, 0, H2C_8822B_PWEMODE_LENGTH);
-
-	if (bt_ctrl_lps)
-		mode = (bt_lps_on ? FW_PS_MIN_MODE : FW_PS_ACTIVE_MODE);
-
-	RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG, "FW LPS mode = %d (coex:%d)\n",
-		 mode, bt_ctrl_lps);
-
-	switch (mode) {
-	case FW_PS_MIN_MODE:
-		rlbm = 0;
-		awake_intvl = 2;
-		smart_ps = ppsc->smart_ps;
-		break;
-	case FW_PS_MAX_MODE:
-		rlbm = 1;
-		awake_intvl = 2;
-		smart_ps = ppsc->smart_ps;
-		break;
-	case FW_PS_DTIM_MODE:
-		rlbm = 2;
-		awake_intvl = ppsc->reg_max_lps_awakeintvl;
-		/*
-		 * hw->conf.ps_dtim_period or mac->vif->bss_conf.dtim_period
-		 * is only used in swlps.
-		 */
-		smart_ps = ppsc->smart_ps;
-		break;
-	case FW_PS_ACTIVE_MODE:
-		rlbm = 0;
-		awake_intvl = 1;
-		break;
-	default:
-		rlbm = 2;
-		awake_intvl = 4;
-		smart_ps = ppsc->smart_ps;
-		break;
-	}
-
-	if (rtlpriv->mac80211.p2p) {
-		awake_intvl = 2;
-		rlbm = 1;
-	}
-
-	if (mode == FW_PS_ACTIVE_MODE) {
-		byte5 = 0x40;
-		power_state = FW_PWR_STATE_ACTIVE;
-	} else {
-		if (bt_ctrl_lps) {
-			byte5 = btc_ops->btc_get_lps_val(rtlpriv);
-			power_state = btc_ops->btc_get_rpwm_val(rtlpriv);
-
-			if (rlbm == 2 && (byte5 & BIT(4))) {
-				/* Keep awake interval to 1 to prevent from
-				 * decreasing coex performance
-				 */
-				awake_intvl = 2;
-				rlbm = 2;
-			}
-			smart_ps = 0;
-		} else {
-			byte5 = 0x40;
-			power_state = FW_PWR_STATE_RF_OFF;
-		}
-	}
-
-	SET_H2CCMD_PWRMODE_PARM_MODE(u1_h2c_set_pwrmode, ((mode) ? 1 : 0));
-	SET_H2CCMD_PWRMODE_PARM_RLBM(u1_h2c_set_pwrmode, rlbm);
-	SET_H2CCMD_PWRMODE_PARM_SMART_PS(u1_h2c_set_pwrmode, smart_ps);
-	SET_H2CCMD_PWRMODE_PARM_AWAKE_INTERVAL(u1_h2c_set_pwrmode, awake_intvl);
-	SET_H2CCMD_PWRMODE_PARM_ALL_QUEUE_UAPSD(u1_h2c_set_pwrmode, 0);
-	SET_H2CCMD_PWRMODE_PARM_PWR_STATE(u1_h2c_set_pwrmode, power_state);
-	SET_H2CCMD_PWRMODE_PARM_BYTE5(u1_h2c_set_pwrmode, byte5);
-
-	RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,
-		      "rtl8822be_set_fw_pwrmode(): u1_h2c_set_pwrmode\n",
-		      u1_h2c_set_pwrmode, H2C_8822B_PWEMODE_LENGTH);
-	if (rtlpriv->cfg->ops->get_btc_status())
-		btc_ops->btc_record_pwr_mode(rtlpriv, u1_h2c_set_pwrmode,
-					     H2C_8822B_PWEMODE_LENGTH);
-
-	if (!memcmp(prev_h2c, u1_h2c_set_pwrmode, H2C_8822B_PWEMODE_LENGTH))
-		return;
-	memcpy(prev_h2c, u1_h2c_set_pwrmode, H2C_8822B_PWEMODE_LENGTH);
-
-	rtl8822be_set_default_port_id_cmd(hw);
-	rtl8822be_fill_h2c_cmd(hw, H2C_8822B_SETPWRMODE,
-			       H2C_8822B_PWEMODE_LENGTH, u1_h2c_set_pwrmode);
-}
-
-void rtl8822be_set_fw_media_status_rpt_cmd(struct ieee80211_hw *hw, u8 mstatus)
-{
-	u8 parm[4] = {0, 0, 0, 0};
-	/* parm[0]: bit0=0-->Disconnect, bit0=1-->Connect
-	 *          bit1=0-->update Media Status to MACID
-	 *          bit1=1-->update Media Status from MACID to MACID_End
-	 * parm[1]: MACID, if this is INFRA_STA, MacID = 0
-	 * parm[2]: MACID_End
-	 * parm[3]: bit2-0: port ID
-	 */
-
-	SET_H2CCMD_MSRRPT_PARM_OPMODE(parm, mstatus);
-	SET_H2CCMD_MSRRPT_PARM_MACID_IND(parm, 0);
-
-	rtl8822be_fill_h2c_cmd(hw, H2C_8822B_MSRRPT, 4, parm);
-}
-
-static bool _rtl8822be_send_bcn_or_cmd_packet(struct ieee80211_hw *hw,
-					      struct sk_buff *skb, u8 hw_queue)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl8192_tx_ring *ring;
-	struct rtl_tx_desc *pdesc;
-	struct rtl_tx_buffer_desc *pbd_desc;
-	unsigned long flags;
-	struct sk_buff *pskb = NULL;
-	u8 *pdesc_or_bddesc;
-	dma_addr_t dma_addr;
-
-	if (hw_queue != BEACON_QUEUE && hw_queue != H2C_QUEUE)
-		return false;
-
-	ring = &rtlpci->tx_ring[hw_queue];
-
-	spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags);
-
-	if (hw_queue == BEACON_QUEUE) {
-		pdesc = &ring->desc[0];
-		pbd_desc = &ring->buffer_desc[0];
-		pdesc_or_bddesc = (u8 *)pbd_desc;
-
-		/* free previous beacon queue */
-		pskb = __skb_dequeue(&ring->queue);
-
-		if (!pskb)
-			goto free_prev_skb_done;
-
-		dma_addr = rtlpriv->cfg->ops->get_desc(
-				hw, (u8 *)pbd_desc, true, HW_DESC_TXBUFF_ADDR);
-
-		pci_unmap_single(rtlpci->pdev, dma_addr, pskb->len,
-				 PCI_DMA_TODEVICE);
-		kfree_skb(pskb);
-
-free_prev_skb_done:
-		;
-
-	} else { /* hw_queue == TXCMD_QUEUE */
-		if (rtlpriv->cfg->ops->get_available_desc(hw, hw_queue) == 0) {
-			RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-				 "get_available_desc fail hw_queue=%d\n",
-				 hw_queue);
-			spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock,
-					       flags);
-			return false;
-		}
-
-		pdesc = &ring->desc[ring->cur_tx_wp];
-		pbd_desc = &ring->buffer_desc[ring->cur_tx_wp];
-		pdesc_or_bddesc = (u8 *)pdesc;
-	}
-
-	rtlpriv->cfg->ops->fill_tx_special_desc(hw, (u8 *)pdesc, (u8 *)pbd_desc,
-						skb, hw_queue);
-
-	__skb_queue_tail(&ring->queue, skb);
-
-	rtlpriv->cfg->ops->set_desc(hw, (u8 *)pdesc_or_bddesc, true,
-				    HW_DESC_OWN, (u8 *)&hw_queue);
-
-	spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
-
-	rtlpriv->cfg->ops->tx_polling(hw, hw_queue);
-
-	return true;
-}
-
-bool rtl8822b_halmac_cb_write_data_rsvd_page(struct rtl_priv *rtlpriv, u8 *buf,
-					     u32 size)
-{
-	struct sk_buff *skb = NULL;
-	u8 u1b_tmp;
-	int count;
-
-	skb = dev_alloc_skb(size);
-	if (!skb)
-		return false;
-	memcpy((u8 *)skb_put(skb, size), buf, size);
-
-	if (!_rtl8822be_send_bcn_or_cmd_packet(rtlpriv->hw, skb, BEACON_QUEUE))
-		return false;
-
-	/* These code isn't actually need, because halmac will check
-	 * BCN_VALID
-	 */
-
-	/* Polling Beacon Queue to send Beacon */
-	u1b_tmp = rtl_read_byte(rtlpriv, REG_RX_RXBD_NUM_8822B + 1);
-	count = 0;
-	while ((count < 20) && (u1b_tmp & BIT(4))) {
-		count++;
-		udelay(10);
-		u1b_tmp = rtl_read_byte(rtlpriv, REG_RX_RXBD_NUM_8822B + 1);
-	}
-
-	if (count >= 20)
-		pr_err("%s polling beacon fail\n", __func__);
-
-	return true;
-}
-
-bool rtl8822b_halmac_cb_write_data_h2c(struct rtl_priv *rtlpriv, u8 *buf,
-				       u32 size)
-{
-	struct sk_buff *skb = NULL;
-
-	/* without GFP_DMA, pci_map_single() may not work */
-	skb = __netdev_alloc_skb(NULL, size, GFP_ATOMIC | GFP_DMA);
-	if (!skb)
-		return false;
-	memcpy((u8 *)skb_put(skb, size), buf, size);
-
-	return _rtl8822be_send_bcn_or_cmd_packet(rtlpriv->hw, skb, H2C_QUEUE);
-}
-
-/* Rsvd page HALMAC_RSVD_DRV_PGNUM_8822B occupies 16 page (2048 byte) */
-#define BEACON_PG	0 /* ->1 */
-#define PSPOLL_PG	2
-#define NULL_PG	3
-#define PROBERSP_PG	4 /* ->5 */
-#define QOS_NULL_PG	6
-#define BT_QOS_NULL_PG	7
-
-#define TOTAL_RESERVED_PKT_LEN	1024
-
-static u8 reserved_page_packet[TOTAL_RESERVED_PKT_LEN] = {/* page size = 128 */
-	/* page 0 beacon */
-	0x80, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-	0xFF, 0xFF, 0x00, 0xE0, 0x4C, 0x02, 0xB1, 0x78,
-	0xEC, 0x1A, 0x59, 0x0B, 0xAD, 0xD4, 0x20, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x64, 0x00, 0x10, 0x04, 0x00, 0x05, 0x54, 0x65,
-	0x73, 0x74, 0x32, 0x01, 0x08, 0x82, 0x84, 0x0B,
-	0x16, 0x24, 0x30, 0x48, 0x6C, 0x03, 0x01, 0x06,
-	0x06, 0x02, 0x00, 0x00, 0x2A, 0x01, 0x02, 0x32,
-	0x04, 0x0C, 0x12, 0x18, 0x60, 0x2D, 0x1A, 0x6C,
-	0x09, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x3D, 0x00, 0xDD, 0x07, 0x00, 0xE0, 0x4C,
-	0x02, 0x02, 0x00, 0x00, 0xDD, 0x18, 0x00, 0x50,
-	0xF2, 0x01, 0x01, 0x00, 0x00, 0x50, 0xF2, 0x04,
-	0x01, 0x00, 0x00, 0x50, 0xF2, 0x04, 0x01, 0x00,
-
-	/* page 1 beacon */
-	0x00, 0x50, 0xF2, 0x02, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x10, 0x00, 0x30, 0x84, 0x00, 0x12, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-	/* page 2  ps-poll */
-	0xA4, 0x10, 0x01, 0xC0, 0xEC, 0x1A, 0x59, 0x0B,
-	0xAD, 0xD4, 0x00, 0xE0, 0x4C, 0x02, 0xB1, 0x78,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x18, 0x00, 0x30, 0x84, 0x00, 0x12, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-	/* page 3  null */
-	0x48, 0x01, 0x00, 0x00, 0xEC, 0x1A, 0x59, 0x0B,
-	0xAD, 0xD4, 0x00, 0xE0, 0x4C, 0x02, 0xB1, 0x78,
-	0xEC, 0x1A, 0x59, 0x0B, 0xAD, 0xD4, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x72, 0x00, 0x30, 0x84, 0x00, 0x12, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-	/* page 4  probe_resp */
-	0x50, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x10,
-	0x00, 0x03, 0x00, 0xE0, 0x4C, 0x76, 0x00, 0x42,
-	0x00, 0x40, 0x10, 0x10, 0x00, 0x03, 0x00, 0x00,
-	0x9E, 0x46, 0x15, 0x32, 0x27, 0xF2, 0x2D, 0x00,
-	0x64, 0x00, 0x00, 0x04, 0x00, 0x0C, 0x6C, 0x69,
-	0x6E, 0x6B, 0x73, 0x79, 0x73, 0x5F, 0x77, 0x6C,
-	0x61, 0x6E, 0x01, 0x04, 0x82, 0x84, 0x8B, 0x96,
-	0x03, 0x01, 0x01, 0x06, 0x02, 0x00, 0x00, 0x2A,
-	0x01, 0x00, 0x32, 0x08, 0x24, 0x30, 0x48, 0x6C,
-	0x0C, 0x12, 0x18, 0x60, 0x2D, 0x1A, 0x6C, 0x18,
-	0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x3D, 0x00, 0xDD, 0x06, 0x00, 0xE0, 0x4C, 0x02,
-	0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-	/* page 5  probe_resp */
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x1A, 0x00, 0x30, 0x84, 0x00, 0x12, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-	/* page 6 qos null data */
-	0xC8, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
-	0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
-	0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x1A, 0x00, 0x30, 0x84, 0x00, 0x12, 0x00, 0x00,
-	0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-	/* page 7 BT-qos null data */
-	0xC8, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
-	0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
-	0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-
-void rtl8822be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct sk_buff *skb = NULL;
-
-	u32 totalpacketlen;
-	bool rtstatus;
-	u8 u1_rsvd_page_loc[7] = {0};
-	bool b_dlok = false;
-
-	u8 *beacon;
-	u8 *p_pspoll;
-	u8 *nullfunc;
-	u8 *p_probersp;
-	u8 *qosnull;
-	u8 *btqosnull;
-
-	memset(u1_rsvd_page_loc, 0, sizeof(u1_rsvd_page_loc));
-
-	/*---------------------------------------------------------
-	 *			(1) beacon
-	 *---------------------------------------------------------
-	 */
-	beacon = &reserved_page_packet[BEACON_PG * 128];
-	SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr);
-	SET_80211_HDR_ADDRESS3(beacon, mac->bssid);
-
-	/*-------------------------------------------------------
-	 *			(2) ps-poll
-	 *--------------------------------------------------------
-	 */
-	p_pspoll = &reserved_page_packet[PSPOLL_PG * 128];
-	SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000));
-	SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid);
-	SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr);
-
-	SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1_rsvd_page_loc, PSPOLL_PG);
-
-	/*--------------------------------------------------------
-	 *			(3) null data
-	 *---------------------------------------------------------
-	 */
-	nullfunc = &reserved_page_packet[NULL_PG * 128];
-	SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid);
-	SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr);
-	SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid);
-
-	SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1_rsvd_page_loc, NULL_PG);
-
-	/*---------------------------------------------------------
-	 *			(4) probe response
-	 *----------------------------------------------------------
-	 */
-	p_probersp = &reserved_page_packet[PROBERSP_PG * 128];
-	SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid);
-	SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr);
-	SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid);
-
-	SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1_rsvd_page_loc, PROBERSP_PG);
-
-	/*---------------------------------------------------------
-	 *			(5) QoS null data
-	 *----------------------------------------------------------
-	 */
-	qosnull = &reserved_page_packet[QOS_NULL_PG * 128];
-	SET_80211_HDR_ADDRESS1(qosnull, mac->bssid);
-	SET_80211_HDR_ADDRESS2(qosnull, mac->mac_addr);
-	SET_80211_HDR_ADDRESS3(qosnull, mac->bssid);
-
-	SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1_rsvd_page_loc, QOS_NULL_PG);
-
-	/*---------------------------------------------------------
-	 *			(6) BT QoS null data
-	 *----------------------------------------------------------
-	 */
-	btqosnull = &reserved_page_packet[BT_QOS_NULL_PG * 128];
-	SET_80211_HDR_ADDRESS1(btqosnull, mac->bssid);
-	SET_80211_HDR_ADDRESS2(btqosnull, mac->mac_addr);
-	SET_80211_HDR_ADDRESS3(btqosnull, mac->bssid);
-
-	SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1_rsvd_page_loc,
-						 BT_QOS_NULL_PG);
-
-	totalpacketlen = TOTAL_RESERVED_PKT_LEN;
-
-	RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
-		      "rtl8822be_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
-		      &reserved_page_packet[0], totalpacketlen);
-	RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
-		      "rtl8822be_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
-		      u1_rsvd_page_loc, 3);
-
-	skb = dev_alloc_skb(totalpacketlen);
-	if (!skb)
-		return;
-	memcpy((u8 *)skb_put(skb, totalpacketlen), &reserved_page_packet,
-	       totalpacketlen);
-
-	rtstatus = _rtl8822be_send_bcn_or_cmd_packet(hw, skb, BEACON_QUEUE);
-
-	if (rtstatus)
-		b_dlok = true;
-
-	if (b_dlok) {
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-			 "Set RSVD page location to Fw.\n");
-		RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD, "H2C_RSVDPAGE:\n",
-			      u1_rsvd_page_loc, 3);
-		rtl8822be_fill_h2c_cmd(hw, H2C_8822B_RSVDPAGE,
-				       sizeof(u1_rsvd_page_loc),
-				       u1_rsvd_page_loc);
-	} else {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "Set RSVD page location to Fw FAIL!!!!!!.\n");
-	}
-}
-
-/* Should check FW support p2p or not. */
-static void rtl8822be_set_p2p_ctw_period_cmd(struct ieee80211_hw *hw,
-					     u8 ctwindow)
-{
-	u8 u1_ctwindow_period[1] = {ctwindow};
-
-	rtl8822be_fill_h2c_cmd(hw, H2C_8822B_P2P_PS_CTW_CMD, 1,
-			       u1_ctwindow_period);
-}
-
-void rtl8822be_set_p2p_ps_offload_cmd(struct ieee80211_hw *hw, u8 p2p_ps_state)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *rtlps = rtl_psc(rtl_priv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_p2p_ps_info *p2pinfo = &rtlps->p2p_ps_info;
-	struct p2p_ps_offload_t *p2p_ps_offload = &rtlhal->p2p_ps_offload;
-	u8 i;
-	u16 ctwindow;
-	u32 start_time, tsf_low;
-
-	switch (p2p_ps_state) {
-	case P2P_PS_DISABLE:
-		RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "P2P_PS_DISABLE\n");
-		memset(p2p_ps_offload, 0, sizeof(*p2p_ps_offload));
-		break;
-	case P2P_PS_ENABLE:
-		RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "P2P_PS_ENABLE\n");
-		/* update CTWindow value. */
-		if (p2pinfo->ctwindow > 0) {
-			p2p_ps_offload->ctwindow_en = 1;
-			ctwindow = p2pinfo->ctwindow;
-			rtl8822be_set_p2p_ctw_period_cmd(hw, ctwindow);
-		}
-		/* hw only support 2 set of NoA */
-		for (i = 0; i < p2pinfo->noa_num; i++) {
-			/* To control the register setting for which NOA*/
-			rtl_write_byte(rtlpriv, 0x5cf, (i << 4));
-			if (i == 0)
-				p2p_ps_offload->noa0_en = 1;
-			else
-				p2p_ps_offload->noa1_en = 1;
-			/* config P2P NoA Descriptor Register */
-			rtl_write_dword(rtlpriv, 0x5E0,
-					p2pinfo->noa_duration[i]);
-			rtl_write_dword(rtlpriv, 0x5E4,
-					p2pinfo->noa_interval[i]);
-
-			/*Get Current TSF value */
-			tsf_low = rtl_read_dword(rtlpriv, REG_TSFTR_8822B);
-
-			start_time = p2pinfo->noa_start_time[i];
-			if (p2pinfo->noa_count_type[i] != 1) {
-				while (start_time <= (tsf_low + (50 * 1024))) {
-					start_time += p2pinfo->noa_interval[i];
-					if (p2pinfo->noa_count_type[i] != 255)
-						p2pinfo->noa_count_type[i]--;
-				}
-			}
-			rtl_write_dword(rtlpriv, 0x5E8, start_time);
-			rtl_write_dword(rtlpriv, 0x5EC,
-					p2pinfo->noa_count_type[i]);
-		}
-		if (p2pinfo->opp_ps == 1 || p2pinfo->noa_num > 0) {
-			/* rst p2p circuit */
-			rtl_write_byte(rtlpriv, REG_DUAL_TSF_RST_8822B, BIT(4));
-			p2p_ps_offload->offload_en = 1;
-
-			if (rtlpriv->mac80211.p2p == P2P_ROLE_GO) {
-				p2p_ps_offload->role = 1;
-				p2p_ps_offload->allstasleep = 0;
-			} else {
-				p2p_ps_offload->role = 0;
-			}
-			p2p_ps_offload->discovery = 0;
-		}
-		break;
-	case P2P_PS_SCAN:
-		RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "P2P_PS_SCAN\n");
-		p2p_ps_offload->discovery = 1;
-		break;
-	case P2P_PS_SCAN_DONE:
-		RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "P2P_PS_SCAN_DONE\n");
-		p2p_ps_offload->discovery = 0;
-		p2pinfo->p2p_ps_state = P2P_PS_ENABLE;
-		break;
-	default:
-		break;
-	}
-
-	rtl8822be_fill_h2c_cmd(hw, H2C_8822B_P2P_PS_OFFLOAD, 1,
-			       (u8 *)p2p_ps_offload);
-}
-
-static
-void rtl8822be_c2h_content_parsing_ext(struct ieee80211_hw *hw,
-				       u8 c2h_sub_cmd_id,
-				       u8 c2h_cmd_len,
-				       u8 *c2h_content_buf)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_halmac_ops *halmac_ops;
-
-	switch (c2h_sub_cmd_id) {
-	case 0x0F:
-		RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-			 "[C2H], C2H_8822BE_TX_REPORT!\n");
-		rtl_tx_report_handler(hw, c2h_content_buf, c2h_cmd_len);
-		break;
-	default:
-		/* indicate c2h pkt + rx desc to halmac */
-		halmac_ops = rtlpriv->halmac.ops;
-		halmac_ops->halmac_c2h_handle(rtlpriv,
-					      c2h_content_buf - 24 - 2 - 2,
-					      c2h_cmd_len + 24 + 2 + 2);
-		break;
-	}
-}
-
-void rtl8822be_c2h_content_parsing(struct ieee80211_hw *hw, u8 c2h_cmd_id,
-				   u8 c2h_cmd_len, u8 *tmp_buf)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_btc_ops *btc_ops = rtlpriv->btcoexist.btc_ops;
-
-	if (c2h_cmd_id == 0xFF) {
-		rtl8822be_c2h_content_parsing_ext(hw, tmp_buf[0],
-						  c2h_cmd_len - 2,
-						  tmp_buf + 2);
-		return;
-	}
-
-	switch (c2h_cmd_id) {
-	case C2H_8822B_DBG:
-		RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-			 "[C2H], C2H_8822BE_DBG!!\n");
-		break;
-	case C2H_8822B_TXBF:
-		RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-			 "[C2H], C2H_8822B_TXBF!!\n");
-		break;
-	case C2H_8822B_BT_INFO:
-		RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-			 "[C2H], C2H_8822BE_BT_INFO!!\n");
-		if (rtlpriv->cfg->ops->get_btc_status())
-			btc_ops->btc_btinfo_notify(rtlpriv, tmp_buf,
-						   c2h_cmd_len);
-		break;
-	case C2H_8822B_BT_MP:
-		RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-			 "[C2H], C2H_8822BE_BT_MP!!\n");
-		if (rtlpriv->cfg->ops->get_btc_status())
-			btc_ops->btc_btmpinfo_notify(rtlpriv, tmp_buf,
-						     c2h_cmd_len);
-		break;
-	default:
-		if (!rtlpriv->phydm.ops->phydm_c2h_content_parsing(
-			    rtlpriv, c2h_cmd_id, c2h_cmd_len, tmp_buf))
-			break;
-
-		RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-			 "[C2H], Unknown packet!! CmdId(%#X)!\n", c2h_cmd_id);
-		break;
-	}
-}
-
-void rtl8822be_c2h_packet_handler(struct ieee80211_hw *hw, u8 *buffer, u8 len)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 c2h_cmd_id = 0, c2h_cmd_seq = 0, c2h_cmd_len = 0;
-	u8 *tmp_buf = NULL;
-
-	c2h_cmd_id = buffer[0];
-	c2h_cmd_seq = buffer[1];
-	c2h_cmd_len = len - 2;
-	tmp_buf = buffer + 2;
-
-	RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-		 "[C2H packet], c2hCmdId=0x%x, c2hCmdSeq=0x%x, c2hCmdLen=%d\n",
-		 c2h_cmd_id, c2h_cmd_seq, c2h_cmd_len);
-
-	RT_PRINT_DATA(rtlpriv, COMP_FW, DBG_TRACE,
-		      "[C2H packet], Content Hex:\n", tmp_buf, c2h_cmd_len);
-
-	switch (c2h_cmd_id) {
-	case C2H_8822B_BT_INFO:
-	case C2H_8822B_BT_MP:
-		rtl_c2hcmd_enqueue(hw, c2h_cmd_id, c2h_cmd_len, tmp_buf);
-		break;
-	default:
-		rtl8822be_c2h_content_parsing(hw, c2h_cmd_id, c2h_cmd_len,
-					      tmp_buf);
-		break;
-	}
-}
diff --git a/drivers/staging/rtlwifi/rtl8822be/fw.h b/drivers/staging/rtlwifi/rtl8822be/fw.h
deleted file mode 100644
index 6e7eb52..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/fw.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL8822B__FW__H__
-#define __RTL8822B__FW__H__
-
-#define USE_OLD_WOWLAN_DEBUG_FW	0
-
-#define H2C_8822B_RSVDPAGE_LOC_LEN	5
-#define H2C_8822B_PWEMODE_LENGTH	7
-#define H2C_8822B_JOINBSSRPT_LENGTH	1
-#define H2C_8822B_AP_OFFLOAD_LENGTH	3
-#define H2C_8822B_WOWLAN_LENGTH	3
-#define H2C_8822B_KEEP_ALIVE_CTRL_LENGTH	3
-#if (USE_OLD_WOWLAN_DEBUG_FW == 0)
-#define H2C_8822B_REMOTE_WAKE_CTRL_LEN	1
-#else
-#define H2C_8822B_REMOTE_WAKE_CTRL_LEN	3
-#endif
-#define H2C_8822B_AOAC_GLOBAL_INFO_LEN	2
-#define H2C_8822B_AOAC_RSVDPAGE_LOC_LEN	7
-#define H2C_DEFAULT_PORT_ID_LEN	2
-
-/* Fw PS state for RPWM.
- *BIT[2:0] = HW state
- *BIT[3] = Protocol PS state,  1: register active state, 0: register sleep state
- *BIT[4] = sub-state
- */
-#define FW_PS_RF_ON	BIT(2)
-#define FW_PS_REGISTER_ACTIVE	BIT(3)
-
-#define FW_PS_ACK	BIT(6)
-#define FW_PS_TOGGLE	BIT(7)
-
-/* 8822B RPWM value*/
-/* BIT[0] = 1: 32k, 0: 40M*/
-#define FW_PS_CLOCK_OFF	BIT(0) /* 32k */
-#define FW_PS_CLOCK_ON	0 /* 40M */
-
-#define FW_PS_STATE_MASK	(0x0F)
-#define FW_PS_STATE_HW_MASK	(0x07)
-#define FW_PS_STATE_INT_MASK	(0x3F)
-
-#define FW_PS_STATE(x) (FW_PS_STATE_MASK & (x))
-
-#define FW_PS_STATE_ALL_ON_8822B	(FW_PS_CLOCK_ON)
-#define FW_PS_STATE_RF_ON_8822B	(FW_PS_CLOCK_ON)
-#define FW_PS_STATE_RF_OFF_8822B	(FW_PS_CLOCK_ON)
-#define FW_PS_STATE_RF_OFF_LOW_PWR	(FW_PS_CLOCK_OFF)
-
-/* For 8822B H2C PwrMode Cmd ID 5.*/
-#define FW_PWR_STATE_ACTIVE ((FW_PS_RF_ON) | (FW_PS_REGISTER_ACTIVE))
-#define FW_PWR_STATE_RF_OFF	0
-
-#define FW_PS_IS_ACK(x) ((x) & FW_PS_ACK)
-
-#define IS_IN_LOW_POWER_STATE_8822B(fw_ps_state)                               \
-	(FW_PS_STATE(fw_ps_state) == FW_PS_CLOCK_OFF)
-
-#define FW_PWR_STATE_ACTIVE ((FW_PS_RF_ON) | (FW_PS_REGISTER_ACTIVE))
-#define FW_PWR_STATE_RF_OFF	0
-
-enum rtl8822b_h2c_cmd {
-	H2C_8822B_RSVDPAGE	= 0,
-	H2C_8822B_MSRRPT	= 1,
-	H2C_8822B_SCAN	= 2,
-	H2C_8822B_KEEP_ALIVE_CTRL	= 3,
-	H2C_8822B_DISCONNECT_DECISION	= 4,
-#if (USE_OLD_WOWLAN_DEBUG_FW == 1)
-	H2C_8822B_WO_WLAN	= 5,
-#endif
-	H2C_8822B_INIT_OFFLOAD	= 6,
-#if (USE_OLD_WOWLAN_DEBUG_FW == 1)
-	H2C_8822B_REMOTE_WAKE_CTRL	= 7,
-#endif
-	H2C_8822B_AP_OFFLOAD	= 8,
-	H2C_8822B_BCN_RSVDPAGE	= 9,
-	H2C_8822B_PROBERSP_RSVDPAGE	= 10,
-
-	H2C_8822B_SETPWRMODE	= 0x20,
-	H2C_8822B_PS_TUNING_PARA	= 0x21,
-	H2C_8822B_PS_TUNING_PARA2	= 0x22,
-	H2C_8822B_PS_LPS_PARA	= 0x23,
-	H2C_8822B_P2P_PS_OFFLOAD	= 024,
-	H2C_8822B_DEFAULT_PORT_ID	= 0x2C,
-
-#if (USE_OLD_WOWLAN_DEBUG_FW == 0)
-	H2C_8822B_WO_WLAN	= 0x80,
-	H2C_8822B_REMOTE_WAKE_CTRL	= 0x81,
-	H2C_8822B_AOAC_GLOBAL_INFO	= 0x82,
-	H2C_8822B_AOAC_RSVDPAGE	= 0x83,
-#endif
-	H2C_8822B_MACID_CFG	= 0x40,
-	H2C_8822B_RSSI_REPORT	= 0x42,
-	H2C_8822B_MACID_CFG_3SS	= 0x46,
-	/*Not defined CTW CMD for P2P yet*/
-	H2C_8822B_P2P_PS_CTW_CMD	= 0x99,
-	MAX_8822B_H2CCMD
-};
-
-enum rtl8822b_c2h_evt {
-	C2H_8822B_DBG	= 0x00,
-	C2H_8822B_LB	= 0x01,
-	C2H_8822B_TXBF	= 0x02,
-	C2H_8822B_TX_REPORT	= 0x03,
-	C2H_8822B_BT_INFO	= 0x09,
-	C2H_8822B_BT_MP	= 0x0B,
-	C2H_8822B_RA_RPT	= 0x0C,
-	MAX_8822B_C2HEVENT
-};
-
-/* H2C: 0x20 */
-#define SET_H2CCMD_PWRMODE_PARM_MODE(__ph2ccmd, __val)                         \
-	SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 7, __val)
-#define SET_H2CCMD_PWRMODE_PARM_CLK_REQ(__ph2ccmd, __val)                      \
-	SET_BITS_TO_LE_1BYTE(__ph2ccmd, 7, 1, __val)
-#define SET_H2CCMD_PWRMODE_PARM_RLBM(__ph2ccmd, __val)                         \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 1, 0, 4, __val)
-#define SET_H2CCMD_PWRMODE_PARM_SMART_PS(__ph2ccmd, __val)                     \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 1, 4, 4, __val)
-#define SET_H2CCMD_PWRMODE_PARM_AWAKE_INTERVAL(__ph2ccmd, __val)               \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 2, 0, 8, __val)
-#define SET_H2CCMD_PWRMODE_PARM_ALL_QUEUE_UAPSD(__ph2ccmd, __val)              \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 3, 0, 1, __val)
-#define SET_H2CCMD_PWRMODE_PARM_BCN_EARLY_RPT(__ph2ccmd, __val)                \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 3, 2, 1, __val)
-#define SET_H2CCMD_PWRMODE_PARM_PORT_ID(__ph2ccmd, __val)                      \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 3, 5, 3, __val)
-#define SET_H2CCMD_PWRMODE_PARM_PWR_STATE(__ph2ccmd, __val)                    \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 4, 0, 8, __val)
-#define SET_H2CCMD_PWRMODE_PARM_BYTE5(__ph2ccmd, __val)                        \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 5, 0, 8, __val)
-
-/* H2C: 0x00 */
-#define SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(__ph2ccmd, __val)                    \
-	SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val)
-#define SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(__ph2ccmd, __val)                       \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 1, 0, 8, __val)
-#define SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(__ph2ccmd, __val)                    \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 2, 0, 8, __val)
-#define SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(__ph2ccmd, __val)                \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 3, 0, 8, __val)
-#define SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(__ph2ccmd, __val)             \
-	SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 4, 0, 8, __val)
-
-/* H2C: 0x01 */
-#define SET_H2CCMD_MSRRPT_PARM_OPMODE(__ph2ccmd, __val)                        \
-	SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 1, __val)
-#define SET_H2CCMD_MSRRPT_PARM_MACID_IND(__ph2ccmd, __val)                     \
-	SET_BITS_TO_LE_1BYTE(__ph2ccmd, 1, 1, __val)
-#define SET_H2CCMD_MSRRPT_PARM_MACID(__ph2ccmd, __val)                         \
-	SET_BITS_TO_LE_1BYTE(__ph2ccmd + 1, 0, 8, __val)
-#define SET_H2CCMD_MSRRPT_PARM_MACID_END(__ph2ccmd, __val)                     \
-	SET_BITS_TO_LE_1BYTE(__ph2ccmd + 2, 0, 8, __val)
-
-/* H2C: 0x2C */
-#define SET_H2CCMD_DFTPID_PORT_ID(__ph2ccmd, __val)                            \
-	SET_BITS_TO_LE_1BYTE(((u8 *)(__ph2ccmd)), 0, 8, (__val))
-#define SET_H2CCMD_DFTPID_MAC_ID(__ph2ccmd, __val)                             \
-	SET_BITS_TO_LE_1BYTE(((u8 *)(__ph2ccmd)) + 1, 0, 8, (__val))
-
-void rtl8822be_fill_h2c_cmd(struct ieee80211_hw *hw, u8 element_id, u32 cmd_len,
-			    u8 *cmdbuffer);
-void rtl8822be_set_default_port_id_cmd(struct ieee80211_hw *hw);
-void rtl8822be_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode);
-void rtl8822be_set_fw_media_status_rpt_cmd(struct ieee80211_hw *hw, u8 mstatus);
-void rtl8822be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished);
-void rtl8822be_set_p2p_ps_offload_cmd(struct ieee80211_hw *hw, u8 p2p_ps_state);
-void rtl8822be_c2h_packet_handler(struct ieee80211_hw *hw, u8 *buffer, u8 len);
-void rtl8822be_c2h_content_parsing(struct ieee80211_hw *hw, u8 c2h_cmd_id,
-				   u8 c2h_cmd_len, u8 *tmp_buf);
-bool rtl8822b_halmac_cb_write_data_rsvd_page(struct rtl_priv *rtlpriv, u8 *buf,
-					     u32 size);
-bool rtl8822b_halmac_cb_write_data_h2c(struct rtl_priv *rtlpriv, u8 *buf,
-				       u32 size);
-#endif
diff --git a/drivers/staging/rtlwifi/rtl8822be/hw.c b/drivers/staging/rtlwifi/rtl8822be/hw.c
deleted file mode 100644
index 1de4e90..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/hw.c
+++ /dev/null
@@ -1,2410 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../wifi.h"
-#include "../efuse.h"
-#include "../base.h"
-#include "../regd.h"
-#include "../cam.h"
-#include "../ps.h"
-#include "../pci.h"
-#include "reg.h"
-#include "def.h"
-#include "phy.h"
-#include "fw.h"
-#include "led.h"
-#include "hw.h"
-
-#define LLT_CONFIG	5
-
-u8 rtl_channel5g[CHANNEL_MAX_NUMBER_5G] = {
-	36,  38,  40,  42,  44,  46,  48, /* Band 1 */
-	52,  54,  56,  58,  60,  62,  64, /* Band 2 */
-	100, 102, 104, 106, 108, 110, 112, /* Band 3 */
-	116, 118, 120, 122, 124, 126, 128, /* Band 3 */
-	132, 134, 136, 138, 140, 142, 144, /* Band 3 */
-	149, 151, 153, 155, 157, 159, 161, /* Band 4 */
-	165, 167, 169, 171, 173, 175, 177}; /* Band 4 */
-u8 rtl_channel5g_80m[CHANNEL_MAX_NUMBER_5G_80M] = {42,  58,  106, 122,
-						   138, 155, 171};
-
-static void _rtl8822be_set_bcn_ctrl_reg(struct ieee80211_hw *hw, u8 set_bits,
-					u8 clear_bits)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtlpci->reg_bcn_ctrl_val |= set_bits;
-	rtlpci->reg_bcn_ctrl_val &= ~clear_bits;
-
-	rtl_write_byte(rtlpriv, REG_BCN_CTRL_8822B,
-		       (u8)rtlpci->reg_bcn_ctrl_val);
-}
-
-static void _rtl8822be_stop_tx_beacon(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 tmp;
-
-	tmp = rtl_read_byte(rtlpriv, REG_FWHW_TXQ_CTRL_8822B + 2);
-	rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL_8822B + 2, tmp & (~BIT(6)));
-	rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT_8822B + 1, 0x64);
-	tmp = rtl_read_byte(rtlpriv, REG_TBTT_PROHIBIT_8822B + 2);
-	tmp &= ~(BIT(0));
-	rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT_8822B + 2, tmp);
-}
-
-static void _rtl8822be_resume_tx_beacon(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 tmp;
-
-	tmp = rtl_read_byte(rtlpriv, REG_FWHW_TXQ_CTRL_8822B + 2);
-	rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL_8822B + 2, tmp | BIT(6));
-	rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT_8822B + 1, 0xff);
-	tmp = rtl_read_byte(rtlpriv, REG_TBTT_PROHIBIT_8822B + 2);
-	tmp |= BIT(0);
-	rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT_8822B + 2, tmp);
-}
-
-static void _rtl8822be_enable_bcn_sub_func(struct ieee80211_hw *hw)
-{
-	_rtl8822be_set_bcn_ctrl_reg(hw, 0, BIT(1));
-}
-
-static void _rtl8822be_disable_bcn_sub_func(struct ieee80211_hw *hw)
-{
-	_rtl8822be_set_bcn_ctrl_reg(hw, BIT(1), 0);
-}
-
-static void _rtl8822be_set_fw_clock_on(struct ieee80211_hw *hw, u8 rpwm_val,
-				       bool b_need_turn_off_ckk)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	u32 count = 0, isr_regaddr, content;
-	bool b_schedule_timer = b_need_turn_off_ckk;
-
-	if (!rtlhal->fw_ready)
-		return;
-	if (!rtlpriv->psc.fw_current_inpsmode)
-		return;
-
-	while (1) {
-		spin_lock_bh(&rtlpriv->locks.fw_ps_lock);
-		if (rtlhal->fw_clk_change_in_progress) {
-			while (rtlhal->fw_clk_change_in_progress) {
-				spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
-				count++;
-				udelay(100);
-				if (count > 1000)
-					return;
-				spin_lock_bh(&rtlpriv->locks.fw_ps_lock);
-			}
-			spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
-		} else {
-			rtlhal->fw_clk_change_in_progress = false;
-			spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
-			break;
-		}
-	}
-
-	if (IS_IN_LOW_POWER_STATE_8822B(rtlhal->fw_ps_state)) {
-		rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_SET_RPWM,
-					      (u8 *)(&rpwm_val));
-		if (FW_PS_IS_ACK(rpwm_val)) {
-			isr_regaddr = REG_HISR0_8822B;
-			content = rtl_read_dword(rtlpriv, isr_regaddr);
-			while (!(content & IMR_CPWM) && (count < 500)) {
-				udelay(50);
-				count++;
-				content = rtl_read_dword(rtlpriv, isr_regaddr);
-			}
-
-			if (content & IMR_CPWM) {
-				rtl_write_word(rtlpriv, isr_regaddr, 0x0100);
-				rtlhal->fw_ps_state = FW_PS_STATE_RF_ON_8822B;
-				RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-					 "Receive CPWM INT!!! PSState = %X\n",
-					 rtlhal->fw_ps_state);
-			}
-		}
-
-		spin_lock_bh(&rtlpriv->locks.fw_ps_lock);
-		rtlhal->fw_clk_change_in_progress = false;
-		spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
-		if (b_schedule_timer) {
-			mod_timer(&rtlpriv->works.fw_clockoff_timer,
-				  jiffies + MSECS(10));
-		}
-
-	} else {
-		spin_lock_bh(&rtlpriv->locks.fw_ps_lock);
-		rtlhal->fw_clk_change_in_progress = false;
-		spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
-	}
-}
-
-static void _rtl8822be_set_fw_clock_off(struct ieee80211_hw *hw, u8 rpwm_val)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl8192_tx_ring *ring;
-	enum rf_pwrstate rtstate;
-	bool b_schedule_timer = false;
-	u8 queue;
-
-	if (!rtlhal->fw_ready)
-		return;
-	if (!rtlpriv->psc.fw_current_inpsmode)
-		return;
-	if (!rtlhal->allow_sw_to_change_hwclc)
-		return;
-
-	rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_RF_STATE, (u8 *)(&rtstate));
-	if (rtstate == ERFOFF || rtlpriv->psc.inactive_pwrstate == ERFOFF)
-		return;
-
-	for (queue = 0; queue < RTL_PCI_MAX_TX_QUEUE_COUNT; queue++) {
-		ring = &rtlpci->tx_ring[queue];
-		if (skb_queue_len(&ring->queue)) {
-			b_schedule_timer = true;
-			break;
-		}
-	}
-
-	if (b_schedule_timer) {
-		mod_timer(&rtlpriv->works.fw_clockoff_timer,
-			  jiffies + MSECS(10));
-		return;
-	}
-
-	if (FW_PS_STATE(rtlhal->fw_ps_state) != FW_PS_STATE_RF_OFF_LOW_PWR) {
-		spin_lock_bh(&rtlpriv->locks.fw_ps_lock);
-		if (!rtlhal->fw_clk_change_in_progress) {
-			rtlhal->fw_clk_change_in_progress = true;
-			spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
-			rtlhal->fw_ps_state = FW_PS_STATE(rpwm_val);
-			rtl_write_word(rtlpriv, REG_HISR0_8822B, 0x0100);
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SET_RPWM,
-						      (u8 *)(&rpwm_val));
-			spin_lock_bh(&rtlpriv->locks.fw_ps_lock);
-			rtlhal->fw_clk_change_in_progress = false;
-			spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
-		} else {
-			spin_unlock_bh(&rtlpriv->locks.fw_ps_lock);
-			mod_timer(&rtlpriv->works.fw_clockoff_timer,
-				  jiffies + MSECS(10));
-		}
-	}
-}
-
-static void _rtl8822be_set_fw_ps_rf_on(struct ieee80211_hw *hw)
-{
-	u8 rpwm_val = 0;
-
-	rpwm_val |= (FW_PS_STATE_RF_OFF_8822B | FW_PS_ACK);
-	_rtl8822be_set_fw_clock_on(hw, rpwm_val, true);
-}
-
-static void _rtl8822be_fwlps_leave(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	bool fw_current_inps = false;
-	u8 rpwm_val = 0, fw_pwrmode = FW_PS_ACTIVE_MODE;
-
-	if (ppsc->low_power_enable) {
-		rpwm_val = (FW_PS_STATE_ALL_ON_8822B | FW_PS_ACK); /* RF on */
-		_rtl8822be_set_fw_clock_on(hw, rpwm_val, false);
-		rtlhal->allow_sw_to_change_hwclc = false;
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE,
-					      (u8 *)(&fw_pwrmode));
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS,
-					      (u8 *)(&fw_current_inps));
-	} else {
-		rpwm_val = FW_PS_STATE_ALL_ON_8822B; /* RF on */
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SET_RPWM,
-					      (u8 *)(&rpwm_val));
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE,
-					      (u8 *)(&fw_pwrmode));
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS,
-					      (u8 *)(&fw_current_inps));
-	}
-}
-
-static void _rtl8822be_fwlps_enter(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	bool fw_current_inps = true;
-	u8 rpwm_val;
-
-	if (ppsc->low_power_enable) {
-		rpwm_val = FW_PS_STATE_RF_OFF_LOW_PWR; /* RF off */
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS,
-					      (u8 *)(&fw_current_inps));
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE,
-					      (u8 *)(&ppsc->fwctrl_psmode));
-		rtlhal->allow_sw_to_change_hwclc = true;
-		_rtl8822be_set_fw_clock_off(hw, rpwm_val);
-	} else {
-		rpwm_val = FW_PS_STATE_RF_OFF_8822B; /* RF off */
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS,
-					      (u8 *)(&fw_current_inps));
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE,
-					      (u8 *)(&ppsc->fwctrl_psmode));
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SET_RPWM,
-					      (u8 *)(&rpwm_val));
-	}
-}
-
-void rtl8822be_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	switch (variable) {
-	case HW_VAR_RCR:
-		*((u32 *)(val)) = rtlpci->receive_config;
-		break;
-	case HW_VAR_RF_STATE:
-		*((enum rf_pwrstate *)(val)) = ppsc->rfpwr_state;
-		break;
-	case HW_VAR_FWLPS_RF_ON: {
-		enum rf_pwrstate rf_state;
-		u32 val_rcr;
-
-		rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_RF_STATE,
-					      (u8 *)(&rf_state));
-		if (rf_state == ERFOFF) {
-			*((bool *)(val)) = true;
-		} else {
-			val_rcr = rtl_read_dword(rtlpriv, REG_RCR_8822B);
-			val_rcr &= 0x00070000;
-			if (val_rcr)
-				*((bool *)(val)) = false;
-			else
-				*((bool *)(val)) = true;
-		}
-	} break;
-	case HW_VAR_FW_PSMODE_STATUS:
-		*((bool *)(val)) = ppsc->fw_current_inpsmode;
-		break;
-	case HW_VAR_CORRECT_TSF: {
-		u64 tsf;
-		u32 *ptsf_low = (u32 *)&tsf;
-		u32 *ptsf_high = ((u32 *)&tsf) + 1;
-
-		*ptsf_high = rtl_read_dword(rtlpriv, (REG_TSFTR_8822B + 4));
-		*ptsf_low = rtl_read_dword(rtlpriv, REG_TSFTR_8822B);
-
-		*((u64 *)(val)) = tsf;
-
-	} break;
-	default:
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
-			 "switch case not process %x\n", variable);
-		break;
-	}
-}
-
-static void _rtl8822be_download_rsvd_page(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 tmp_regcr, tmp_reg422;
-	u8 bcnvalid_reg /*, txbc_reg*/;
-	u8 count = 0, dlbcn_count = 0;
-	bool b_recover = false;
-
-	/*Set REG_CR_8822B bit 8. DMA beacon by SW.*/
-	tmp_regcr = rtl_read_byte(rtlpriv, REG_CR_8822B + 1);
-	rtl_write_byte(rtlpriv, REG_CR_8822B + 1, tmp_regcr | BIT(0));
-
-	/* Disable Hw protection for a time which revserd for Hw sending beacon.
-	 * Fix download reserved page packet fail
-	 * that access collision with the protection time.
-	 * 2010.05.11. Added by tynli.
-	 */
-	_rtl8822be_set_bcn_ctrl_reg(hw, 0, BIT(3));
-	_rtl8822be_set_bcn_ctrl_reg(hw, BIT(4), 0);
-
-	/* Set FWHW_TXQ_CTRL 0x422[6]=0 to
-	 * tell Hw the packet is not a real beacon frame.
-	 */
-	tmp_reg422 = rtl_read_byte(rtlpriv, REG_FWHW_TXQ_CTRL_8822B + 2);
-	rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL_8822B + 2,
-		       tmp_reg422 & (~BIT(6)));
-
-	if (tmp_reg422 & BIT(6))
-		b_recover = true;
-
-	do {
-		/* Clear beacon valid check bit */
-		bcnvalid_reg =
-			rtl_read_byte(rtlpriv, REG_FIFOPAGE_CTRL_2_8822B + 1);
-		bcnvalid_reg = bcnvalid_reg | BIT(7);
-		rtl_write_byte(rtlpriv, REG_FIFOPAGE_CTRL_2_8822B + 1,
-			       bcnvalid_reg);
-
-		/* download rsvd page */
-		rtl8822be_set_fw_rsvdpagepkt(hw, false);
-
-		/* check rsvd page download OK. */
-		bcnvalid_reg =
-			rtl_read_byte(rtlpriv, REG_FIFOPAGE_CTRL_2_8822B + 1);
-
-		count = 0;
-		while (!(BIT(7) & bcnvalid_reg) && count < 20) {
-			count++;
-			udelay(50);
-			bcnvalid_reg = rtl_read_byte(
-				rtlpriv, REG_FIFOPAGE_CTRL_2_8822B + 1);
-		}
-
-		dlbcn_count++;
-	} while (!(BIT(7) & bcnvalid_reg) && dlbcn_count < 5);
-
-	if (!(BIT(7) & bcnvalid_reg))
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_WARNING,
-			 "Download RSVD page failed!\n");
-
-	/* Enable Bcn */
-	_rtl8822be_set_bcn_ctrl_reg(hw, BIT(3), 0);
-	_rtl8822be_set_bcn_ctrl_reg(hw, 0, BIT(4));
-
-	if (b_recover)
-		rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL_8822B + 2,
-			       tmp_reg422);
-}
-
-void rtl8822be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_efuse *efuse = rtl_efuse(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-
-	switch (variable) {
-	case HW_VAR_ETHER_ADDR:
-		rtlpriv->halmac.ops->halmac_set_mac_address(rtlpriv, 0, val);
-		break;
-	case HW_VAR_BASIC_RATE: {
-		u16 b_rate_cfg = ((u16 *)val)[0];
-
-		b_rate_cfg = b_rate_cfg & 0x15f;
-		b_rate_cfg |= 0x01;
-		b_rate_cfg = (b_rate_cfg | 0xd) & (~BIT(1));
-		rtl_write_byte(rtlpriv, REG_RRSR_8822B, b_rate_cfg & 0xff);
-		rtl_write_byte(rtlpriv, REG_RRSR_8822B + 1,
-			       (b_rate_cfg >> 8) & 0xff);
-	} break;
-	case HW_VAR_BSSID:
-		rtlpriv->halmac.ops->halmac_set_bssid(rtlpriv, 0, val);
-		break;
-	case HW_VAR_SIFS:
-		rtl_write_byte(rtlpriv, REG_SIFS_8822B + 1, val[0]);
-		rtl_write_byte(rtlpriv, REG_SIFS_TRX_8822B + 1, val[1]);
-
-		rtl_write_byte(rtlpriv, REG_SPEC_SIFS_8822B + 1, val[0]);
-		rtl_write_byte(rtlpriv, REG_MAC_SPEC_SIFS_8822B + 1, val[0]);
-
-		if (!mac->ht_enable)
-			rtl_write_word(rtlpriv, REG_RESP_SIFS_OFDM_8822B,
-				       0x0e0e);
-		else
-			rtl_write_word(rtlpriv, REG_RESP_SIFS_OFDM_8822B,
-				       *((u16 *)val));
-		break;
-	case HW_VAR_SLOT_TIME: {
-		u8 e_aci;
-
-		RT_TRACE(rtlpriv, COMP_MLME, DBG_TRACE, "HW_VAR_SLOT_TIME %x\n",
-			 val[0]);
-
-		rtl_write_byte(rtlpriv, REG_SLOT_8822B, val[0]);
-
-		for (e_aci = 0; e_aci < AC_MAX; e_aci++) {
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AC_PARAM,
-						      (u8 *)(&e_aci));
-		}
-	} break;
-	case HW_VAR_ACK_PREAMBLE: {
-		u8 reg_tmp;
-		u8 short_preamble = (bool)(*(u8 *)val);
-
-		reg_tmp = (rtlpriv->mac80211.cur_40_prime_sc) << 5;
-		if (short_preamble)
-			reg_tmp |= 0x80;
-		rtl_write_byte(rtlpriv, REG_RRSR_8822B + 2, reg_tmp);
-		rtlpriv->mac80211.short_preamble = short_preamble;
-	} break;
-	case HW_VAR_WPA_CONFIG:
-		rtl_write_byte(rtlpriv, REG_SECCFG_8822B, *((u8 *)val));
-		break;
-	case HW_VAR_AMPDU_FACTOR: {
-		u32 ampdu_len = (*((u8 *)val));
-
-		ampdu_len = (0x2000 << ampdu_len) - 1;
-		rtl_write_dword(rtlpriv, REG_AMPDU_MAX_LENGTH_8822B, ampdu_len);
-	} break;
-	case HW_VAR_AC_PARAM: {
-		u8 e_aci = *((u8 *)val);
-
-		if (mac->vif && mac->vif->bss_conf.assoc && !mac->act_scanning)
-			rtl8822be_set_qos(hw, e_aci);
-
-		if (rtlpci->acm_method != EACMWAY2_SW)
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL,
-						      (u8 *)(&e_aci));
-	} break;
-	case HW_VAR_ACM_CTRL: {
-		u8 e_aci = *((u8 *)val);
-		union aci_aifsn *aifs = (union aci_aifsn *)&mac->ac[0].aifs;
-
-		u8 acm = aifs->f.acm;
-		u8 acm_ctrl = rtl_read_byte(rtlpriv, REG_ACMHWCTRL_8822B);
-
-		acm_ctrl = acm_ctrl | ((rtlpci->acm_method == 2) ? 0x0 : 0x1);
-
-		if (acm) {
-			switch (e_aci) {
-			case AC0_BE:
-				acm_ctrl |= ACMHW_BEQ_EN;
-				break;
-			case AC2_VI:
-				acm_ctrl |= ACMHW_VIQ_EN;
-				break;
-			case AC3_VO:
-				acm_ctrl |= ACMHW_VOQ_EN;
-				break;
-			default:
-				RT_TRACE(
-					rtlpriv, COMP_ERR, DBG_WARNING,
-					"HW_VAR_ACM_CTRL acm set failed: eACI is %d\n",
-					acm);
-				break;
-			}
-		} else {
-			switch (e_aci) {
-			case AC0_BE:
-				acm_ctrl &= (~ACMHW_BEQ_EN);
-				break;
-			case AC2_VI:
-				acm_ctrl &= (~ACMHW_VIQ_EN);
-				break;
-			case AC3_VO:
-				acm_ctrl &= (~ACMHW_VOQ_EN);
-				break;
-			default:
-				RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
-					 "switch case not process\n");
-				break;
-			}
-		}
-
-		RT_TRACE(rtlpriv, COMP_QOS, DBG_TRACE,
-			 "SetHwReg8190pci(): [HW_VAR_ACM_CTRL] Write 0x%X\n",
-			 acm_ctrl);
-		rtl_write_byte(rtlpriv, REG_ACMHWCTRL_8822B, acm_ctrl);
-	} break;
-	case HW_VAR_RCR: {
-		rtl_write_dword(rtlpriv, REG_RCR_8822B, ((u32 *)(val))[0]);
-		rtlpci->receive_config = ((u32 *)(val))[0];
-	} break;
-	case HW_VAR_RETRY_LIMIT: {
-		u8 retry_limit = ((u8 *)(val))[0];
-
-		rtl_write_word(rtlpriv, REG_RETRY_LIMIT_8822B,
-			       retry_limit << RETRY_LIMIT_SHORT_SHIFT |
-				       retry_limit << RETRY_LIMIT_LONG_SHIFT);
-	} break;
-	case HW_VAR_DUAL_TSF_RST:
-		rtl_write_byte(rtlpriv, REG_DUAL_TSF_RST_8822B,
-			       (BIT(0) | BIT(1)));
-		break;
-	case HW_VAR_EFUSE_BYTES:
-		efuse->efuse_usedbytes = *((u16 *)val);
-		break;
-	case HW_VAR_EFUSE_USAGE:
-		efuse->efuse_usedpercentage = *((u8 *)val);
-		break;
-	case HW_VAR_IO_CMD:
-		rtl8822be_phy_set_io_cmd(hw, (*(enum io_type *)val));
-		break;
-	case HW_VAR_SET_RPWM:
-		break;
-	case HW_VAR_H2C_FW_PWRMODE:
-		rtl8822be_set_fw_pwrmode_cmd(hw, (*(u8 *)val));
-		break;
-	case HW_VAR_FW_PSMODE_STATUS:
-		ppsc->fw_current_inpsmode = *((bool *)val);
-		break;
-	case HW_VAR_RESUME_CLK_ON:
-		_rtl8822be_set_fw_ps_rf_on(hw);
-		break;
-	case HW_VAR_FW_LPS_ACTION: {
-		bool b_enter_fwlps = *((bool *)val);
-
-		if (b_enter_fwlps)
-			_rtl8822be_fwlps_enter(hw);
-		else
-			_rtl8822be_fwlps_leave(hw);
-	} break;
-	case HW_VAR_H2C_FW_JOINBSSRPT: {
-		u8 mstatus = (*(u8 *)val);
-
-		if (mstatus == RT_MEDIA_CONNECT) {
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AID, NULL);
-			_rtl8822be_download_rsvd_page(hw);
-		}
-		rtl8822be_set_default_port_id_cmd(hw);
-		rtl8822be_set_fw_media_status_rpt_cmd(hw, mstatus);
-	} break;
-	case HW_VAR_H2C_FW_P2P_PS_OFFLOAD:
-		rtl8822be_set_p2p_ps_offload_cmd(hw, (*(u8 *)val));
-		break;
-	case HW_VAR_AID: {
-		u16 u2btmp;
-
-		u2btmp = rtl_read_word(rtlpriv, REG_BCN_PSR_RPT_8822B);
-		u2btmp &= 0xC000;
-		rtl_write_word(rtlpriv, REG_BCN_PSR_RPT_8822B,
-			       (u2btmp | mac->assoc_id));
-	} break;
-	case HW_VAR_CORRECT_TSF: {
-		u8 btype_ibss = ((u8 *)(val))[0];
-
-		if (btype_ibss)
-			_rtl8822be_stop_tx_beacon(hw);
-
-		_rtl8822be_set_bcn_ctrl_reg(hw, 0, BIT(3));
-
-		rtl_write_dword(rtlpriv, REG_TSFTR_8822B,
-				(u32)(mac->tsf & 0xffffffff));
-		rtl_write_dword(rtlpriv, REG_TSFTR_8822B + 4,
-				(u32)((mac->tsf >> 32) & 0xffffffff));
-
-		_rtl8822be_set_bcn_ctrl_reg(hw, BIT(3), 0);
-
-		if (btype_ibss)
-			_rtl8822be_resume_tx_beacon(hw);
-	} break;
-	case HW_VAR_KEEP_ALIVE: {
-		u8 array[2];
-
-		array[0] = 0xff;
-		array[1] = *((u8 *)val);
-		rtl8822be_fill_h2c_cmd(hw, H2C_8822B_KEEP_ALIVE_CTRL, 2, array);
-	} break;
-	default:
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
-			 "switch case not process %x\n", variable);
-		break;
-	}
-}
-
-static void _rtl8822be_gen_refresh_led_state(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_led *led0 = &pcipriv->ledctl.sw_led0;
-
-	if (rtlpriv->rtlhal.up_first_time)
-		return;
-
-	if (ppsc->rfoff_reason == RF_CHANGE_BY_IPS)
-		rtl8822be_sw_led_on(hw, led0);
-	else if (ppsc->rfoff_reason == RF_CHANGE_BY_INIT)
-		rtl8822be_sw_led_on(hw, led0);
-	else
-		rtl8822be_sw_led_off(hw, led0);
-}
-
-static bool _rtl8822be_init_trxbd(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	/*struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));*/
-
-	u8 bytetmp;
-	/*u16 wordtmp;*/
-	u32 dwordtmp;
-
-	/* Set TX/RX descriptor physical address -- HI part */
-	if (!rtlpriv->cfg->mod_params->dma64)
-		goto dma64_end;
-
-	rtl_write_dword(rtlpriv, REG_H2CQ_TXBD_DESA_8822B + 4,
-			((u64)rtlpci->tx_ring[H2C_QUEUE].buffer_desc_dma) >>
-				32);
-	rtl_write_dword(rtlpriv, REG_BCNQ_TXBD_DESA_8822B + 4,
-			((u64)rtlpci->tx_ring[BEACON_QUEUE].buffer_desc_dma) >>
-				32);
-	rtl_write_dword(rtlpriv, REG_MGQ_TXBD_DESA_8822B + 4,
-			(u64)rtlpci->tx_ring[MGNT_QUEUE].buffer_desc_dma >> 32);
-	rtl_write_dword(rtlpriv, REG_VOQ_TXBD_DESA_8822B + 4,
-			(u64)rtlpci->tx_ring[VO_QUEUE].buffer_desc_dma >> 32);
-	rtl_write_dword(rtlpriv, REG_VIQ_TXBD_DESA_8822B + 4,
-			(u64)rtlpci->tx_ring[VI_QUEUE].buffer_desc_dma >> 32);
-	rtl_write_dword(rtlpriv, REG_BEQ_TXBD_DESA_8822B + 4,
-			(u64)rtlpci->tx_ring[BE_QUEUE].buffer_desc_dma >> 32);
-	rtl_write_dword(rtlpriv, REG_BKQ_TXBD_DESA_8822B + 4,
-			(u64)rtlpci->tx_ring[BK_QUEUE].buffer_desc_dma >> 32);
-	rtl_write_dword(rtlpriv, REG_HI0Q_TXBD_DESA_8822B + 4,
-			(u64)rtlpci->tx_ring[HIGH_QUEUE].buffer_desc_dma >> 32);
-
-	rtl_write_dword(rtlpriv, REG_RXQ_RXBD_DESA_8822B + 4,
-			(u64)rtlpci->rx_ring[RX_MPDU_QUEUE].dma >> 32);
-
-dma64_end:
-	/* Set TX/RX descriptor physical address(from OS API). */
-	rtl_write_dword(rtlpriv, REG_H2CQ_TXBD_DESA_8822B,
-			((u64)rtlpci->tx_ring[H2C_QUEUE].buffer_desc_dma) &
-				DMA_BIT_MASK(32));
-	rtl_write_dword(rtlpriv, REG_BCNQ_TXBD_DESA_8822B,
-			((u64)rtlpci->tx_ring[BEACON_QUEUE].buffer_desc_dma) &
-				DMA_BIT_MASK(32));
-	rtl_write_dword(rtlpriv, REG_MGQ_TXBD_DESA_8822B,
-			(u64)rtlpci->tx_ring[MGNT_QUEUE].buffer_desc_dma &
-				DMA_BIT_MASK(32));
-	rtl_write_dword(rtlpriv, REG_VOQ_TXBD_DESA_8822B,
-			(u64)rtlpci->tx_ring[VO_QUEUE].buffer_desc_dma &
-				DMA_BIT_MASK(32));
-	rtl_write_dword(rtlpriv, REG_VIQ_TXBD_DESA_8822B,
-			(u64)rtlpci->tx_ring[VI_QUEUE].buffer_desc_dma &
-				DMA_BIT_MASK(32));
-	rtl_write_dword(rtlpriv, REG_BEQ_TXBD_DESA_8822B,
-			(u64)rtlpci->tx_ring[BE_QUEUE].buffer_desc_dma &
-				DMA_BIT_MASK(32));
-	dwordtmp = rtl_read_dword(rtlpriv, REG_BEQ_TXBD_DESA_8822B); /* need? */
-	rtl_write_dword(rtlpriv, REG_BKQ_TXBD_DESA_8822B,
-			(u64)rtlpci->tx_ring[BK_QUEUE].buffer_desc_dma &
-				DMA_BIT_MASK(32));
-	rtl_write_dword(rtlpriv, REG_HI0Q_TXBD_DESA_8822B,
-			(u64)rtlpci->tx_ring[HIGH_QUEUE].buffer_desc_dma &
-				DMA_BIT_MASK(32));
-
-	rtl_write_dword(rtlpriv, REG_RXQ_RXBD_DESA_8822B,
-			(u64)rtlpci->rx_ring[RX_MPDU_QUEUE].dma &
-				DMA_BIT_MASK(32));
-
-	/* Reset R/W point */
-	rtl_write_dword(rtlpriv, REG_BD_RWPTR_CLR_8822B, 0x3fffffff);
-
-	/* Reset the H2CQ R/W point index to 0 */
-	dwordtmp = rtl_read_dword(rtlpriv, REG_H2CQ_CSR_8822B);
-	rtl_write_dword(rtlpriv, REG_H2CQ_CSR_8822B,
-			(dwordtmp | BIT(8) | BIT(16)));
-
-	bytetmp = rtl_read_byte(rtlpriv, REG_PCIE_CTRL_8822B + 3);
-	rtl_write_byte(rtlpriv, REG_PCIE_CTRL_8822B + 3, bytetmp | 0xF7);
-
-	rtl_write_dword(rtlpriv, REG_INT_MIG_8822B, 0);
-
-	rtl_write_dword(rtlpriv, REG_MCUTST_I_8822B, 0x0);
-
-	rtl_write_word(rtlpriv, REG_H2CQ_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_MGQ_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_VOQ_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_VIQ_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_BEQ_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_VOQ_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_BKQ_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_HI0Q_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_HI1Q_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_HI2Q_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_HI3Q_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_HI4Q_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_HI5Q_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_HI6Q_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	rtl_write_word(rtlpriv, REG_HI7Q_TXBD_NUM_8822B,
-		       TX_DESC_NUM_8822B |
-			       ((RTL8822BE_SEG_NUM << 12) & 0x3000));
-	/*Rx*/
-	rtl_write_word(rtlpriv, REG_RX_RXBD_NUM_8822B,
-		       RX_DESC_NUM_8822BE |
-		       ((RTL8822BE_SEG_NUM << 13) & 0x6000) | 0x8000);
-
-	rtl_write_dword(rtlpriv, REG_BD_RWPTR_CLR_8822B, 0XFFFFFFFF);
-
-	_rtl8822be_gen_refresh_led_state(hw);
-
-	return true;
-}
-
-static void _rtl8822be_enable_aspm_back_door(struct ieee80211_hw *hw)
-{
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	u8 tmp;
-
-	if (!ppsc->support_backdoor)
-		return;
-
-	pci_read_config_byte(rtlpci->pdev, 0x70f, &tmp);
-	pci_write_config_byte(rtlpci->pdev, 0x70f, tmp | ASPM_L1_LATENCY << 3);
-
-	pci_read_config_byte(rtlpci->pdev, 0x719, &tmp);
-	pci_write_config_byte(rtlpci->pdev, 0x719, tmp | BIT(3) | BIT(4));
-}
-
-void rtl8822be_enable_hw_security_config(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 sec_reg_value;
-	u8 tmp;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-		 "PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n",
-		 rtlpriv->sec.pairwise_enc_algorithm,
-		 rtlpriv->sec.group_enc_algorithm);
-
-	if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) {
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-			 "not open hw encryption\n");
-		return;
-	}
-
-	sec_reg_value = SCR_TX_ENC_ENABLE | SRC_RX_DEC_ENABLE;
-
-	if (rtlpriv->sec.use_defaultkey) {
-		sec_reg_value |= SCR_TX_USE_DK;
-		sec_reg_value |= SCR_RX_USE_DK;
-	}
-
-	sec_reg_value |= (SCR_RXBCUSEDK | SCR_TXBCUSEDK);
-
-	tmp = rtl_read_byte(rtlpriv, REG_CR_8822B + 1);
-	rtl_write_byte(rtlpriv, REG_CR_8822B + 1, tmp | BIT(1));
-
-	RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "The SECR-value %x\n",
-		 sec_reg_value);
-
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_WPA_CONFIG, &sec_reg_value);
-}
-
-static bool _rtl8822be_check_pcie_dma_hang(struct rtl_priv *rtlpriv)
-{
-	u8 tmp;
-
-	/* write reg 0x350 Bit[26]=1. Enable debug port. */
-	tmp = rtl_read_byte(rtlpriv, REG_DBI_FLAG_V1_8822B + 3);
-	if (!(tmp & BIT(2))) {
-		rtl_write_byte(rtlpriv, REG_DBI_FLAG_V1_8822B + 3,
-			       (tmp | BIT(2)));
-		mdelay(100); /* Suggested by DD Justin_tsai. */
-	}
-
-	/* read reg 0x350 Bit[25] if 1 : RX hang
-	 * read reg 0x350 Bit[24] if 1 : TX hang
-	 */
-	tmp = rtl_read_byte(rtlpriv, REG_DBI_FLAG_V1_8822B + 3);
-	if ((tmp & BIT(0)) || (tmp & BIT(1))) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "CheckPcieDMAHang8822BE(): true!!\n");
-		return true;
-	} else {
-		return false;
-	}
-}
-
-static void _rtl8822be_reset_pcie_interface_dma(struct rtl_priv *rtlpriv,
-						bool mac_power_on)
-{
-	u8 tmp;
-	bool release_mac_rx_pause;
-	u8 backup_pcie_dma_pause;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "ResetPcieInterfaceDMA8822BE()\n");
-
-	/* Revise Note: Follow the document "PCIe RX DMA Hang Reset Flow_v03"
-	 * released by SD1 Alan.
-	 * 2013.05.07, by tynli.
-	 */
-
-	/* 1. disable register write lock
-	 *	write 0x1C bit[1:0] = 2'h0
-	 *	write 0xCC bit[2] = 1'b1
-	 */
-	tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL_8822B);
-	tmp &= ~(BIT(1) | BIT(0));
-	rtl_write_byte(rtlpriv, REG_RSV_CTRL_8822B, tmp);
-	tmp = rtl_read_byte(rtlpriv, REG_PMC_DBG_CTRL2_8822B);
-	tmp |= BIT(2);
-	rtl_write_byte(rtlpriv, REG_PMC_DBG_CTRL2_8822B, tmp);
-
-	/* 2. Check and pause TRX DMA
-	 *	write 0x284 bit[18] = 1'b1
-	 *	write 0x301 = 0xFF
-	 */
-	tmp = rtl_read_byte(rtlpriv, REG_RXDMA_CONTROL_8822B);
-	if (tmp & BIT(2)) {
-		/* Already pause before the function for another purpose. */
-		release_mac_rx_pause = false;
-	} else {
-		rtl_write_byte(rtlpriv, REG_RXDMA_CONTROL_8822B,
-			       (tmp | BIT(2)));
-		release_mac_rx_pause = true;
-	}
-
-	backup_pcie_dma_pause = rtl_read_byte(rtlpriv, REG_PCIE_CTRL_8822B + 1);
-	if (backup_pcie_dma_pause != 0xFF)
-		rtl_write_byte(rtlpriv, REG_PCIE_CTRL_8822B + 1, 0xFF);
-
-	if (mac_power_on) {
-		/* 3. reset TRX function
-		 *	write 0x100 = 0x00
-		 */
-		rtl_write_byte(rtlpriv, REG_CR_8822B, 0);
-	}
-
-	/* 4. Reset PCIe DMA
-	 *	write 0x003 bit[0] = 0
-	 */
-	tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN_8822B + 1);
-	tmp &= ~(BIT(0));
-	rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN_8822B + 1, tmp);
-
-	/* 5. Enable PCIe DMA
-	 *	write 0x003 bit[0] = 1
-	 */
-	tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN_8822B + 1);
-	tmp |= BIT(0);
-	rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN_8822B + 1, tmp);
-
-	if (mac_power_on) {
-		/* 6. enable TRX function
-		 *	write 0x100 = 0xFF
-		 */
-		rtl_write_byte(rtlpriv, REG_CR_8822B, 0xFF);
-
-		/* We should init LLT & RQPN and
-		 * prepare Tx/Rx descrptor address later
-		 * because MAC function is reset.
-		 */
-	}
-
-	/* 7. Restore PCIe autoload down bit
-	 *	write 0xF8 bit[17] = 1'b1
-	 */
-	tmp = rtl_read_byte(rtlpriv, REG_SYS_STATUS2_8822B + 2);
-	tmp |= BIT(1);
-	rtl_write_byte(rtlpriv, REG_SYS_STATUS2_8822B + 2, tmp);
-
-	/* In MAC power on state, BB and RF maybe in ON state,
-	 * if we release TRx DMA here
-	 * it will cause packets to be started to Tx/Rx,
-	 * so we release Tx/Rx DMA later.
-	 */
-	if (!mac_power_on) {
-		/* 8. release TRX DMA
-		 *	write 0x284 bit[18] = 1'b0
-		 *	write 0x301 = 0x00
-		 */
-		if (release_mac_rx_pause) {
-			tmp = rtl_read_byte(rtlpriv, REG_RXDMA_CONTROL_8822B);
-			rtl_write_byte(rtlpriv, REG_RXDMA_CONTROL_8822B,
-				       (tmp & (~BIT(2))));
-		}
-		rtl_write_byte(rtlpriv, REG_PCIE_CTRL_8822B + 1,
-			       backup_pcie_dma_pause);
-	}
-
-	/* 9. lock system register
-	 *	write 0xCC bit[2] = 1'b0
-	 */
-	tmp = rtl_read_byte(rtlpriv, REG_PMC_DBG_CTRL2_8822B);
-	tmp &= ~(BIT(2));
-	rtl_write_byte(rtlpriv, REG_PMC_DBG_CTRL2_8822B, tmp);
-}
-
-int rtl8822be_hw_init(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	int err = 0;
-	u8 tmp_u1b;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, " Rtl8822BE hw init\n");
-	rtlpriv->rtlhal.being_init_adapter = true;
-	rtlpriv->intf_ops->disable_aspm(hw);
-
-	if (_rtl8822be_check_pcie_dma_hang(rtlpriv)) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "8822be dma hang!\n");
-		_rtl8822be_reset_pcie_interface_dma(rtlpriv,
-						    rtlhal->mac_func_enable);
-		rtlhal->mac_func_enable = false;
-	}
-
-	/* init TRX BD */
-	_rtl8822be_init_trxbd(hw);
-
-	/* use halmac to init */
-	err = rtlpriv->halmac.ops->halmac_init_hal(rtlpriv);
-	if (err) {
-		pr_err("halmac_init_hal failed\n");
-		rtlhal->fw_ready = false;
-		return err;
-	}
-
-	rtlhal->fw_ready = true;
-
-	/* have to init after halmac init */
-	tmp_u1b = rtl_read_byte(rtlpriv, REG_PCIE_CTRL_8822B + 2);
-	rtl_write_byte(rtlpriv, REG_PCIE_CTRL_8822B + 2, (tmp_u1b | BIT(4)));
-
-	/*rtl_write_word(rtlpriv, REG_PCIE_CTRL_8822B, 0x8000);*/
-	rtlhal->rx_tag = 0;
-
-	rtl_write_byte(rtlpriv, REG_RX_DRVINFO_SZ_8822B, 0x4);
-
-	/*fw related variable initialize */
-	ppsc->fw_current_inpsmode = false;
-	rtlhal->fw_ps_state = FW_PS_STATE_ALL_ON_8822B;
-	rtlhal->fw_clk_change_in_progress = false;
-	rtlhal->allow_sw_to_change_hwclc = false;
-	rtlhal->last_hmeboxnum = 0;
-
-	rtlphy->rfreg_chnlval[0] =
-		rtl_get_rfreg(hw, RF90_PATH_A, RF_CHNLBW, RFREG_OFFSET_MASK);
-	rtlphy->rfreg_chnlval[1] =
-		rtl_get_rfreg(hw, RF90_PATH_B, RF_CHNLBW, RFREG_OFFSET_MASK);
-	rtlphy->backup_rf_0x1a = (u32)rtl_get_rfreg(hw, RF90_PATH_A, RF_RX_G1,
-						    RFREG_OFFSET_MASK);
-	rtlphy->rfreg_chnlval[0] =
-		(rtlphy->rfreg_chnlval[0] & 0xfffff3ff) | BIT(10) | BIT(11);
-
-	rtlhal->mac_func_enable = true;
-
-	if (rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->btcoexist.btc_ops->btc_power_on_setting(rtlpriv);
-
-	/* reset cam / set security */
-	rtl_cam_reset_all_entry(hw);
-	rtl8822be_enable_hw_security_config(hw);
-
-	/* check RCR/ICV bit */
-	rtlpci->receive_config &= ~(RCR_ACRC32 | RCR_AICV);
-	rtl_write_dword(rtlpriv, REG_RCR_8822B, rtlpci->receive_config);
-
-	/* clear rx ctrl frame */
-	rtl_write_word(rtlpriv, REG_RXFLTMAP1_8822B, 0);
-
-	ppsc->rfpwr_state = ERFON;
-
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ETHER_ADDR, mac->mac_addr);
-	_rtl8822be_enable_aspm_back_door(hw);
-	rtlpriv->intf_ops->enable_aspm(hw);
-
-	if (rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->btcoexist.btc_ops->btc_init_hw_config(rtlpriv);
-	else
-		rtlpriv->btcoexist.btc_ops->btc_init_hw_config_wifi_only(
-								rtlpriv);
-
-	rtlpriv->rtlhal.being_init_adapter = false;
-
-	rtlpriv->phydm.ops->phydm_init_dm(rtlpriv);
-
-	/* clear ISR, and IMR will be on later */
-	rtl_write_dword(rtlpriv, REG_HISR0_8822B,
-			rtl_read_dword(rtlpriv, REG_HISR0_8822B));
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "end of Rtl8822BE hw init %x\n",
-		 err);
-	return 0;
-}
-
-static u32 _rtl8822be_read_chip_version(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	/*enum version_8822b version = VERSION_UNKNOWN;*/
-	u32 version;
-	u32 value32;
-
-	rtlphy->rf_type = RF_2T2R;
-
-	value32 = rtl_read_dword(rtlpriv, REG_SYS_CFG1_8822B);
-
-	version = value32;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Chip RF Type: %s\n",
-		 (rtlphy->rf_type == RF_2T2R) ? "RF_2T2R" : "RF_1T1R");
-
-	return version;
-}
-
-static int _rtl8822be_set_media_status(struct ieee80211_hw *hw,
-				       enum nl80211_iftype type)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 bt_msr = rtl_read_byte(rtlpriv, MSR);
-	enum led_ctl_mode ledaction = LED_CTL_NO_LINK;
-	u8 mode = MSR_NOLINK;
-
-	bt_msr &= 0xfc;
-
-	switch (type) {
-	case NL80211_IFTYPE_UNSPECIFIED:
-		mode = MSR_NOLINK;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-			 "Set Network type to NO LINK!\n");
-		break;
-	case NL80211_IFTYPE_ADHOC:
-	case NL80211_IFTYPE_MESH_POINT:
-		mode = MSR_ADHOC;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-			 "Set Network type to Ad Hoc!\n");
-		break;
-	case NL80211_IFTYPE_STATION:
-		mode = MSR_INFRA;
-		ledaction = LED_CTL_LINK;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-			 "Set Network type to STA!\n");
-		break;
-	case NL80211_IFTYPE_AP:
-		mode = MSR_AP;
-		ledaction = LED_CTL_LINK;
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-			 "Set Network type to AP!\n");
-		break;
-	default:
-		pr_err("Network type %d not support!\n", type);
-		return 1;
-	}
-
-	/* MSR_INFRA == Link in infrastructure network;
-	 * MSR_ADHOC == Link in ad hoc network;
-	 * Therefore, check link state is necessary.
-	 *
-	 * MSR_AP == AP mode; link state is not cared here.
-	 */
-	if (mode != MSR_AP && rtlpriv->mac80211.link_state < MAC80211_LINKED) {
-		mode = MSR_NOLINK;
-		ledaction = LED_CTL_NO_LINK;
-	}
-
-	if (mode == MSR_NOLINK || mode == MSR_INFRA) {
-		_rtl8822be_stop_tx_beacon(hw);
-		_rtl8822be_enable_bcn_sub_func(hw);
-	} else if (mode == MSR_ADHOC || mode == MSR_AP) {
-		_rtl8822be_resume_tx_beacon(hw);
-		_rtl8822be_disable_bcn_sub_func(hw);
-	} else {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "Set HW_VAR_MEDIA_STATUS: No such media status(%x).\n",
-			 mode);
-	}
-
-	rtl_write_byte(rtlpriv, (MSR), bt_msr | mode);
-	rtlpriv->cfg->ops->led_control(hw, ledaction);
-	if (mode == MSR_AP)
-		rtl_write_byte(rtlpriv, REG_BCNTCFG_8822B + 1, 0x00);
-	else
-		rtl_write_byte(rtlpriv, REG_BCNTCFG_8822B + 1, 0x66);
-	return 0;
-}
-
-void rtl8822be_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	u32 reg_rcr = rtlpci->receive_config;
-
-	if (rtlpriv->psc.rfpwr_state != ERFON)
-		return;
-
-	if (check_bssid) {
-		reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN);
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, (u8 *)(&reg_rcr));
-		_rtl8822be_set_bcn_ctrl_reg(hw, 0, BIT(4));
-	} else if (!check_bssid) {
-		reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN));
-		_rtl8822be_set_bcn_ctrl_reg(hw, BIT(4), 0);
-		rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, (u8 *)(&reg_rcr));
-	}
-}
-
-int rtl8822be_set_network_type(struct ieee80211_hw *hw,
-			       enum nl80211_iftype type)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	if (_rtl8822be_set_media_status(hw, type))
-		return -EOPNOTSUPP;
-
-	if (rtlpriv->mac80211.link_state == MAC80211_LINKED) {
-		if (type != NL80211_IFTYPE_AP &&
-		    type != NL80211_IFTYPE_MESH_POINT)
-			rtl8822be_set_check_bssid(hw, true);
-	} else {
-		rtl8822be_set_check_bssid(hw, false);
-	}
-
-	return 0;
-}
-
-void rtl8822be_set_qos(struct ieee80211_hw *hw, int aci)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	u32 ac_param;
-
-	ac_param = rtl_get_hal_edca_param(hw, mac->vif, mac->mode,
-					  &mac->edca_param[aci]);
-
-	switch (aci) {
-	case AC1_BK:
-		rtl_write_dword(rtlpriv, REG_EDCA_BK_PARAM_8822B, ac_param);
-		break;
-	case AC0_BE:
-		rtl_write_dword(rtlpriv, REG_EDCA_BE_PARAM_8822B, ac_param);
-		break;
-	case AC2_VI:
-		rtl_write_dword(rtlpriv, REG_EDCA_VI_PARAM_8822B, ac_param);
-		break;
-	case AC3_VO:
-		rtl_write_dword(rtlpriv, REG_EDCA_VO_PARAM_8822B, ac_param);
-		break;
-	default:
-		WARN_ONCE(true, "invalid aci: %d !\n", aci);
-		break;
-	}
-}
-
-void rtl8822be_enable_interrupt(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	rtl_write_dword(rtlpriv, REG_HIMR0_8822B,
-			rtlpci->irq_mask[0] & 0xFFFFFFFF);
-	rtl_write_dword(rtlpriv, REG_HIMR1_8822B,
-			rtlpci->irq_mask[1] & 0xFFFFFFFF);
-	rtl_write_dword(rtlpriv, REG_HIMR3_8822B,
-			rtlpci->irq_mask[3] & 0xFFFFFFFF);
-	rtlpci->irq_enabled = true;
-}
-
-void rtl8822be_disable_interrupt(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	rtl_write_dword(rtlpriv, REG_HIMR0_8822B, IMR_DISABLED);
-	rtl_write_dword(rtlpriv, REG_HIMR1_8822B, IMR_DISABLED);
-	rtl_write_dword(rtlpriv, REG_HIMR3_8822B, IMR_DISABLED);
-	rtlpci->irq_enabled = false;
-	/*synchronize_irq(rtlpci->pdev->irq);*/
-}
-
-void rtl8822be_card_disable(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	enum nl80211_iftype opmode;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "RTL8822be card disable\n");
-
-	RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
-
-	mac->link_state = MAC80211_NOLINK;
-	opmode = NL80211_IFTYPE_UNSPECIFIED;
-
-	_rtl8822be_set_media_status(hw, opmode);
-
-	if (rtlpriv->rtlhal.driver_is_goingto_unload ||
-	    ppsc->rfoff_reason > RF_CHANGE_BY_PS)
-		rtlpriv->cfg->ops->led_control(hw, LED_CTL_POWER_OFF);
-
-	rtlpriv->phydm.ops->phydm_deinit_dm(rtlpriv);
-
-	rtlpriv->halmac.ops->halmac_deinit_hal(rtlpriv);
-
-	/* after power off we should do iqk again */
-	if (!rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->phy.iqk_initialized = false;
-}
-
-void rtl8822be_interrupt_recognized(struct ieee80211_hw *hw, u32 *p_inta,
-				    u32 *p_intb, u32 *p_intc, u32 *p_intd)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	*p_inta =
-		rtl_read_dword(rtlpriv, REG_HISR0_8822B) & rtlpci->irq_mask[0];
-	rtl_write_dword(rtlpriv, REG_HISR0_8822B, *p_inta);
-
-	*p_intb =
-		rtl_read_dword(rtlpriv, REG_HISR1_8822B) & rtlpci->irq_mask[1];
-	rtl_write_dword(rtlpriv, REG_HISR1_8822B, *p_intb);
-
-	*p_intd =
-		rtl_read_dword(rtlpriv, REG_HISR3_8822B) & rtlpci->irq_mask[3];
-	rtl_write_dword(rtlpriv, REG_HISR3_8822B, *p_intd);
-}
-
-void rtl8822be_set_beacon_related_registers(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	u16 bcn_interval, atim_window;
-
-	bcn_interval = mac->beacon_interval;
-	atim_window = 2; /*FIX MERGE */
-	rtl8822be_disable_interrupt(hw);
-	rtl_write_word(rtlpriv, REG_ATIMWND_8822B, atim_window);
-	rtl_write_word(rtlpriv, REG_MBSSID_BCN_SPACE_8822B, bcn_interval);
-	rtl_write_word(rtlpriv, REG_BCNTCFG_8822B, 0x660f);
-	rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_CCK_8822B, 0x18);
-	rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_OFDM_8822B, 0x18);
-	rtl_write_byte(rtlpriv, 0x606, 0x30);
-	rtlpci->reg_bcn_ctrl_val |= BIT(3);
-	rtl_write_byte(rtlpriv, REG_BCN_CTRL_8822B,
-		       (u8)rtlpci->reg_bcn_ctrl_val);
-}
-
-void rtl8822be_set_beacon_interval(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	u16 bcn_interval = mac->beacon_interval;
-
-	RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG, "beacon_interval:%d\n",
-		 bcn_interval);
-	rtl_write_word(rtlpriv, REG_MBSSID_BCN_SPACE_8822B, bcn_interval);
-}
-
-void rtl8822be_update_interrupt_mask(struct ieee80211_hw *hw, u32 add_msr,
-				     u32 rm_msr)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD, "add_msr:%x, rm_msr:%x\n",
-		 add_msr, rm_msr);
-
-	if (add_msr)
-		rtlpci->irq_mask[0] |= add_msr;
-	if (rm_msr)
-		rtlpci->irq_mask[0] &= (~rm_msr);
-	rtl8822be_disable_interrupt(hw);
-	rtl8822be_enable_interrupt(hw);
-}
-
-static bool _rtl8822be_get_chnl_group(u8 chnl, u8 *group)
-{
-	bool in_24g;
-
-	if (chnl <= 14) {
-		in_24g = true;
-
-		if (chnl >= 1 && chnl <= 2)
-			*group = 0;
-		else if (chnl >= 3 && chnl <= 5)
-			*group = 1;
-		else if (chnl >= 6 && chnl <= 8)
-			*group = 2;
-		else if (chnl >= 9 && chnl <= 11)
-			*group = 3;
-		else if (chnl >= 12 && chnl <= 14)
-			*group = 4;
-	} else {
-		in_24g = false;
-
-		if (chnl >= 36 && chnl <= 42)
-			*group = 0;
-		else if (chnl >= 44 && chnl <= 48)
-			*group = 1;
-		else if (chnl >= 50 && chnl <= 58)
-			*group = 2;
-		else if (chnl >= 60 && chnl <= 64)
-			*group = 3;
-		else if (chnl >= 100 && chnl <= 106)
-			*group = 4;
-		else if (chnl >= 108 && chnl <= 114)
-			*group = 5;
-		else if (chnl >= 116 && chnl <= 122)
-			*group = 6;
-		else if (chnl >= 124 && chnl <= 130)
-			*group = 7;
-		else if (chnl >= 132 && chnl <= 138)
-			*group = 8;
-		else if (chnl >= 140 && chnl <= 144)
-			*group = 9;
-		else if (chnl >= 149 && chnl <= 155)
-			*group = 10;
-		else if (chnl >= 157 && chnl <= 161)
-			*group = 11;
-		else if (chnl >= 165 && chnl <= 171)
-			*group = 12;
-		else if (chnl >= 173 && chnl <= 177)
-			*group = 13;
-	}
-	return in_24g;
-}
-
-static inline bool power_valid(u8 power)
-{
-	if (power <= 63)
-		return true;
-
-	return false;
-}
-
-static inline s8 power_diff(s8 diff)
-{
-	/* bit sign number to 8 bit sign number */
-	if (diff & BIT(3))
-		diff |= 0xF0;
-
-	return diff;
-}
-
-static void _rtl8822be_read_power_value_fromprom(struct ieee80211_hw *hw,
-						 struct txpower_info_2g *pwr2g,
-						 struct txpower_info_5g *pwr5g,
-						 bool autoload_fail, u8 *hwinfo)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u32 rf, addr = EEPROM_TX_PWR_INX_8822B, group, i = 0;
-	u8 power;
-	s8 diff;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "hal_ReadPowerValueFromPROM8822B(): PROMContent[0x%x]=0x%x\n",
-		 (addr + 1), hwinfo[addr + 1]);
-	if (hwinfo[addr + 1] == 0xFF) /*YJ,add,120316*/
-		autoload_fail = true;
-
-	memset(pwr2g, 0, sizeof(struct txpower_info_2g));
-	memset(pwr5g, 0, sizeof(struct txpower_info_5g));
-
-	if (autoload_fail) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "auto load fail : Use Default value!\n");
-		for (rf = 0; rf < MAX_RF_PATH; rf++) {
-			/* 2.4G default value */
-			for (group = 0; group < MAX_CHNL_GROUP_24G; group++) {
-				pwr2g->index_cck_base[rf][group] = 0x2D;
-				pwr2g->index_bw40_base[rf][group] = 0x2D;
-			}
-			for (i = 0; i < MAX_TX_COUNT; i++) {
-				if (i == 0) {
-					pwr2g->bw20_diff[rf][0] = 0x02;
-					pwr2g->ofdm_diff[rf][0] = 0x04;
-				} else {
-					pwr2g->bw20_diff[rf][i] = 0xFE;
-					pwr2g->bw40_diff[rf][i] = 0xFE;
-					pwr2g->cck_diff[rf][i] = 0xFE;
-					pwr2g->ofdm_diff[rf][i] = 0xFE;
-				}
-			}
-
-			/*5G default value*/
-			for (group = 0; group < MAX_CHNL_GROUP_5G; group++)
-				pwr5g->index_bw40_base[rf][group] = 0x2A;
-
-			for (i = 0; i < MAX_TX_COUNT; i++) {
-				if (i == 0) {
-					pwr5g->ofdm_diff[rf][0] = 0x04;
-					pwr5g->bw20_diff[rf][0] = 0x00;
-					pwr5g->bw80_diff[rf][0] = 0xFE;
-					pwr5g->bw160_diff[rf][0] = 0xFE;
-				} else {
-					pwr5g->ofdm_diff[rf][i] = 0xFE;
-					pwr5g->bw20_diff[rf][i] = 0xFE;
-					pwr5g->bw40_diff[rf][i] = 0xFE;
-					pwr5g->bw80_diff[rf][i] = 0xFE;
-					pwr5g->bw160_diff[rf][i] = 0xFE;
-				}
-			}
-		}
-		return;
-	}
-
-	rtl_priv(hw)->efuse.txpwr_fromeprom = true;
-
-	for (rf = 0; rf < 2 /*MAX_RF_PATH*/; rf++) {
-		/*2.4G default value*/
-		for (group = 0; group < MAX_CHNL_GROUP_24G; group++) {
-			power = hwinfo[addr++];
-			if (power_valid(power))
-				pwr2g->index_cck_base[rf][group] = power;
-		}
-		for (group = 0; group < MAX_CHNL_GROUP_24G - 1; group++) {
-			power = hwinfo[addr++];
-			if (power_valid(power))
-				pwr2g->index_bw40_base[rf][group] = power;
-		}
-		for (i = 0; i < MAX_TX_COUNT; i++) {
-			if (i == 0) {
-				pwr2g->bw40_diff[rf][i] = 0;
-
-				diff = (hwinfo[addr] & 0xF0) >> 4;
-				pwr2g->bw20_diff[rf][i] = power_diff(diff);
-
-				diff = hwinfo[addr] & 0x0F;
-				pwr2g->ofdm_diff[rf][i] = power_diff(diff);
-
-				pwr2g->cck_diff[rf][i] = 0;
-
-				addr++;
-			} else {
-				diff = (hwinfo[addr] & 0xF0) >> 4;
-				pwr2g->bw40_diff[rf][i] = power_diff(diff);
-
-				diff = hwinfo[addr] & 0x0F;
-				pwr2g->bw20_diff[rf][i] = power_diff(diff);
-
-				addr++;
-
-				diff = (hwinfo[addr] & 0xF0) >> 4;
-				pwr2g->ofdm_diff[rf][i] = power_diff(diff);
-
-				diff = hwinfo[addr] & 0x0F;
-				pwr2g->cck_diff[rf][i] = power_diff(diff);
-
-				addr++;
-			}
-		}
-
-		/*5G default value*/
-		for (group = 0; group < MAX_CHNL_GROUP_5G; group++) {
-			power = hwinfo[addr++];
-			if (power_valid(power))
-				pwr5g->index_bw40_base[rf][group] = power;
-		}
-
-		for (i = 0; i < MAX_TX_COUNT; i++) {
-			if (i == 0) {
-				pwr5g->bw40_diff[rf][i] = 0;
-
-				diff = (hwinfo[addr] & 0xF0) >> 4;
-				pwr5g->bw20_diff[rf][i] = power_diff(diff);
-
-				diff = hwinfo[addr] & 0x0F;
-				pwr5g->ofdm_diff[rf][i] = power_diff(diff);
-
-				addr++;
-			} else {
-				diff = (hwinfo[addr] & 0xF0) >> 4;
-				pwr5g->bw40_diff[rf][i] = power_diff(diff);
-
-				diff = hwinfo[addr] & 0x0F;
-				pwr5g->bw20_diff[rf][i] = power_diff(diff);
-
-				addr++;
-			}
-		}
-
-		diff = (hwinfo[addr] & 0xF0) >> 4;
-		pwr5g->ofdm_diff[rf][1] = power_diff(diff);
-
-		diff = hwinfo[addr] & 0x0F;
-		pwr5g->ofdm_diff[rf][2] = power_diff(diff);
-
-		addr++;
-
-		diff = hwinfo[addr] & 0x0F;
-		pwr5g->ofdm_diff[rf][3] = power_diff(diff);
-
-		addr++;
-
-		for (i = 0; i < MAX_TX_COUNT; i++) {
-			diff = (hwinfo[addr] & 0xF0) >> 4;
-			pwr5g->bw80_diff[rf][i] = power_diff(diff);
-
-			diff = hwinfo[addr] & 0x0F;
-			pwr5g->bw160_diff[rf][i] = power_diff(diff);
-
-			addr++;
-		}
-	}
-}
-
-static void _rtl8822be_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
-						   bool autoload_fail,
-						   u8 *hwinfo)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *efu = rtl_efuse(rtl_priv(hw));
-	struct txpower_info_2g pwr2g;
-	struct txpower_info_5g pwr5g;
-	u8 channel5g[CHANNEL_MAX_NUMBER_5G] = {
-		36,  38,  40,  42,  44,  46,  48, /* Band 1 */
-		52,  54,  56,  58,  60,  62,  64, /* Band 2 */
-		100, 102, 104, 106, 108, 110, 112, /* Band 3 */
-		116, 118, 120, 122, 124, 126, 128, /* Band 3 */
-		132, 134, 136, 138, 140, 142, 144, /* Band 3 */
-		149, 151, 153, 155, 157, 159, 161, /* Band 4 */
-		165, 167, 169, 171, 173, 175, 177}; /* Band 4 */
-	u8 channel5g_80m[CHANNEL_MAX_NUMBER_5G_80M] = {42,  58,  106, 122,
-						       138, 155, 171};
-	u8 rf, group;
-	u8 i;
-
-	_rtl8822be_read_power_value_fromprom(hw, &pwr2g, &pwr5g, autoload_fail,
-					     hwinfo);
-
-	for (rf = 0; rf < MAX_RF_PATH; rf++) {
-		for (i = 0; i < CHANNEL_MAX_NUMBER_2G; i++) {
-			_rtl8822be_get_chnl_group(i + 1, &group);
-
-			if (i == CHANNEL_MAX_NUMBER_2G - 1) {
-				efu->txpwrlevel_cck[rf][i] =
-					pwr2g.index_cck_base[rf][5];
-				efu->txpwrlevel_ht40_1s[rf][i] =
-					pwr2g.index_bw40_base[rf][group];
-			} else {
-				efu->txpwrlevel_cck[rf][i] =
-					pwr2g.index_cck_base[rf][group];
-				efu->txpwrlevel_ht40_1s[rf][i] =
-					pwr2g.index_bw40_base[rf][group];
-			}
-		}
-		for (i = 0; i < CHANNEL_MAX_NUMBER_5G; i++) {
-			_rtl8822be_get_chnl_group(channel5g[i], &group);
-			efu->txpwr_5g_bw40base[rf][i] =
-				pwr5g.index_bw40_base[rf][group];
-		}
-		for (i = 0; i < CHANNEL_MAX_NUMBER_5G_80M; i++) {
-			u8 upper, lower;
-
-			_rtl8822be_get_chnl_group(channel5g_80m[i], &group);
-			upper = pwr5g.index_bw40_base[rf][group];
-			lower = pwr5g.index_bw40_base[rf][group + 1];
-
-			efu->txpwr_5g_bw80base[rf][i] = (upper + lower) / 2;
-		}
-		for (i = 0; i < MAX_TX_COUNT; i++) {
-			efu->txpwr_cckdiff[rf][i] = pwr2g.cck_diff[rf][i];
-			efu->txpwr_legacyhtdiff[rf][i] = pwr2g.ofdm_diff[rf][i];
-			efu->txpwr_ht20diff[rf][i] = pwr2g.bw20_diff[rf][i];
-			efu->txpwr_ht40diff[rf][i] = pwr2g.bw40_diff[rf][i];
-
-			efu->txpwr_5g_ofdmdiff[rf][i] = pwr5g.ofdm_diff[rf][i];
-			efu->txpwr_5g_bw20diff[rf][i] = pwr5g.bw20_diff[rf][i];
-			efu->txpwr_5g_bw40diff[rf][i] = pwr5g.bw40_diff[rf][i];
-			efu->txpwr_5g_bw80diff[rf][i] = pwr5g.bw80_diff[rf][i];
-		}
-	}
-
-	if (!autoload_fail)
-		efu->eeprom_thermalmeter = hwinfo[EEPROM_THERMAL_METER_8822B];
-	else
-		efu->eeprom_thermalmeter = EEPROM_DEFAULT_THERMALMETER;
-
-	if (efu->eeprom_thermalmeter == 0xff || autoload_fail) {
-		efu->apk_thermalmeterignore = true;
-		efu->eeprom_thermalmeter = EEPROM_DEFAULT_THERMALMETER;
-	}
-
-	efu->thermalmeter[0] = efu->eeprom_thermalmeter;
-	RTPRINT(rtlpriv, FINIT, INIT_TXPOWER, "thermalmeter = 0x%x\n",
-		efu->eeprom_thermalmeter);
-
-	if (!autoload_fail) {
-		efu->eeprom_regulatory =
-			hwinfo[EEPROM_RF_BOARD_OPTION_8822B] & 0x07;
-		if (hwinfo[EEPROM_RF_BOARD_OPTION_8822B] == 0xFF)
-			efu->eeprom_regulatory = 0;
-	} else {
-		efu->eeprom_regulatory = 0;
-	}
-	RTPRINT(rtlpriv, FINIT, INIT_TXPOWER, "eeprom_regulatory = 0x%x\n",
-		efu->eeprom_regulatory);
-}
-
-static void _rtl8822be_read_pa_type(struct ieee80211_hw *hw, u8 *hwinfo,
-				    bool autoload_fail)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-
-	if (!autoload_fail) {
-		rtlhal->pa_type_2g = hwinfo[EEPROM_2G_5G_PA_TYPE_8822B];
-		rtlhal->lna_type_2g =
-			hwinfo[EEPROM_2G_LNA_TYPE_GAIN_SEL_AB_8822B];
-		if (rtlhal->pa_type_2g == 0xFF)
-			rtlhal->pa_type_2g = 0;
-		if (rtlhal->lna_type_2g == 0xFF)
-			rtlhal->lna_type_2g = 0;
-
-		rtlhal->external_pa_2g = (rtlhal->pa_type_2g & BIT(4)) ? 1 : 0;
-		rtlhal->external_lna_2g =
-			(rtlhal->lna_type_2g & BIT(3)) ? 1 : 0;
-
-		rtlhal->pa_type_5g = hwinfo[EEPROM_2G_5G_PA_TYPE_8822B];
-		rtlhal->lna_type_5g =
-			hwinfo[EEPROM_5G_LNA_TYPE_GAIN_SEL_AB_8822B];
-		if (rtlhal->pa_type_5g == 0xFF)
-			rtlhal->pa_type_5g = 0;
-		if (rtlhal->lna_type_5g == 0xFF)
-			rtlhal->lna_type_5g = 0;
-
-		rtlhal->external_pa_5g = (rtlhal->pa_type_5g & BIT(0)) ? 1 : 0;
-		rtlhal->external_lna_5g =
-			(rtlhal->lna_type_5g & BIT(3)) ? 1 : 0;
-	} else {
-		rtlhal->external_pa_2g = 0;
-		rtlhal->external_lna_2g = 0;
-		rtlhal->external_pa_5g = 0;
-		rtlhal->external_lna_5g = 0;
-	}
-}
-
-static void _rtl8822be_read_amplifier_type(struct ieee80211_hw *hw, u8 *hwinfo,
-					   bool autoload_fail)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-
-	u8 ext_type_pa_2g_a =
-		(hwinfo[EEPROM_2G_LNA_TYPE_GAIN_SEL_AB_8822B] & BIT(2)) >>
-		2; /* 0xBD[2] */
-	u8 ext_type_pa_2g_b =
-		(hwinfo[EEPROM_2G_LNA_TYPE_GAIN_SEL_AB_8822B] & BIT(6)) >>
-		6; /* 0xBD[6] */
-	u8 ext_type_pa_5g_a =
-		(hwinfo[EEPROM_5G_LNA_TYPE_GAIN_SEL_AB_8822B] & BIT(2)) >>
-		2; /* 0xBF[2] */
-	u8 ext_type_pa_5g_b =
-		(hwinfo[EEPROM_5G_LNA_TYPE_GAIN_SEL_AB_8822B] & BIT(6)) >>
-		6; /* 0xBF[6] */
-	u8 ext_type_lna_2g_a = (hwinfo[EEPROM_2G_LNA_TYPE_GAIN_SEL_AB_8822B] &
-				(BIT(1) | BIT(0))) >>
-			       0; /* 0xBD[1:0] */
-	u8 ext_type_lna_2g_b = (hwinfo[EEPROM_2G_LNA_TYPE_GAIN_SEL_AB_8822B] &
-				(BIT(5) | BIT(4))) >>
-			       4; /* 0xBD[5:4] */
-	u8 ext_type_lna_5g_a = (hwinfo[EEPROM_5G_LNA_TYPE_GAIN_SEL_AB_8822B] &
-				(BIT(1) | BIT(0))) >>
-			       0; /* 0xBF[1:0] */
-	u8 ext_type_lna_5g_b = (hwinfo[EEPROM_5G_LNA_TYPE_GAIN_SEL_AB_8822B] &
-				(BIT(5) | BIT(4))) >>
-			       4; /* 0xBF[5:4] */
-
-	_rtl8822be_read_pa_type(hw, hwinfo, autoload_fail);
-
-	/* [2.4G] Path A and B are both extPA */
-	if ((rtlhal->pa_type_2g & (BIT(5) | BIT(4))) == (BIT(5) | BIT(4)))
-		rtlhal->type_gpa = ext_type_pa_2g_b << 2 | ext_type_pa_2g_a;
-
-	/* [5G] Path A and B are both extPA */
-	if ((rtlhal->pa_type_5g & (BIT(1) | BIT(0))) == (BIT(1) | BIT(0)))
-		rtlhal->type_apa = ext_type_pa_5g_b << 2 | ext_type_pa_5g_a;
-
-	/* [2.4G] Path A and B are both extLNA */
-	if ((rtlhal->lna_type_2g & (BIT(7) | BIT(3))) == (BIT(7) | BIT(3)))
-		rtlhal->type_glna = ext_type_lna_2g_b << 2 | ext_type_lna_2g_a;
-
-	/* [5G] Path A and B are both extLNA */
-	if ((rtlhal->lna_type_5g & (BIT(7) | BIT(3))) == (BIT(7) | BIT(3)))
-		rtlhal->type_alna = ext_type_lna_5g_b << 2 | ext_type_lna_5g_a;
-}
-
-static void _rtl8822be_read_rfe_type(struct ieee80211_hw *hw, u8 *hwinfo,
-				     bool autoload_fail)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-
-	if (!autoload_fail)
-		rtlhal->rfe_type = hwinfo[EEPROM_RFE_OPTION_8822B];
-	else
-		rtlhal->rfe_type = 0;
-
-	if (rtlhal->rfe_type == 0xFF)
-		rtlhal->rfe_type = 0;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "RFE Type: 0x%2x\n",
-		 rtlhal->rfe_type);
-}
-
-static void _rtl8822be_read_adapter_info(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	struct rtl_halmac_ops *halmac_ops = rtlpriv->halmac.ops;
-	u16 i, usvalue;
-	u8 *hwinfo;
-	u16 eeprom_id;
-	u32 efuse_size;
-	int err;
-
-	if (rtlefuse->epromtype != EEPROM_BOOT_EFUSE) {
-		pr_err("RTL8822B Not boot from efuse!!");
-		return;
-	}
-
-	/* read logical efuse size (normalely, 0x0300) */
-	err = halmac_ops->halmac_get_logical_efuse_size(rtlpriv, &efuse_size);
-
-	if (err || !efuse_size) {
-		pr_err("halmac_get_logical_efuse_size err=%d efuse_size=0x%X",
-		       err, efuse_size);
-		efuse_size = HWSET_MAX_SIZE;
-	}
-
-	if (efuse_size > HWSET_MAX_SIZE) {
-		pr_err("halmac_get_logical_efuse_size efuse_size=0x%X > 0x%X",
-		       efuse_size, HWSET_MAX_SIZE);
-		efuse_size = HWSET_MAX_SIZE;
-	}
-
-	/* read efuse */
-	hwinfo = kzalloc(efuse_size, GFP_KERNEL);
-
-	err = halmac_ops->halmac_read_logical_efuse_map(rtlpriv, hwinfo,
-							efuse_size);
-	if (err) {
-		pr_err("%s: <ERROR> fail to get efuse map!\n", __func__);
-		goto label_end;
-	}
-
-	/* copy to efuse_map (need?) */
-	memcpy(&rtlefuse->efuse_map[EFUSE_INIT_MAP][0], hwinfo,
-	       EFUSE_MAX_LOGICAL_SIZE);
-	memcpy(&rtlefuse->efuse_map[EFUSE_MODIFY_MAP][0], hwinfo,
-	       EFUSE_MAX_LOGICAL_SIZE);
-
-	/* parse content */
-	RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, "MAP\n", hwinfo,
-		      HWSET_MAX_SIZE);
-
-	eeprom_id = *((u16 *)&hwinfo[0]);
-	if (eeprom_id != RTL8822B_EEPROM_ID) {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "EEPROM ID(%#x) is invalid!!\n", eeprom_id);
-		rtlefuse->autoload_failflag = true;
-	} else {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
-		rtlefuse->autoload_failflag = false;
-	}
-
-	if (rtlefuse->autoload_failflag)
-		goto label_end;
-
-	/*VID DID SVID SDID*/
-	rtlefuse->eeprom_vid = *(u16 *)&hwinfo[EEPROM_VID];
-	rtlefuse->eeprom_did = *(u16 *)&hwinfo[EEPROM_DID];
-	rtlefuse->eeprom_svid = *(u16 *)&hwinfo[EEPROM_SVID];
-	rtlefuse->eeprom_smid = *(u16 *)&hwinfo[EEPROM_SMID];
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROMId = 0x%4x\n", eeprom_id);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROM VID = 0x%4x\n",
-		 rtlefuse->eeprom_vid);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROM DID = 0x%4x\n",
-		 rtlefuse->eeprom_did);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROM SVID = 0x%4x\n",
-		 rtlefuse->eeprom_svid);
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROM SMID = 0x%4x\n",
-		 rtlefuse->eeprom_smid);
-	/*customer ID*/
-	rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOM_ID_8822B];
-	if (rtlefuse->eeprom_oemid == 0xFF)
-		rtlefuse->eeprom_oemid = 0;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROM Customer ID: 0x%2x\n",
-		 rtlefuse->eeprom_oemid);
-	/*EEPROM version*/
-	rtlefuse->eeprom_version = *(u8 *)&hwinfo[EEPROM_VERSION_8822B];
-	/*mac address*/
-	for (i = 0; i < 6; i += 2) {
-		usvalue = *(u16 *)&hwinfo[EEPROM_MAC_ADDR_8822BE + i];
-		*((u16 *)(&rtlefuse->dev_addr[i])) = usvalue;
-	}
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "dev_addr: %pM\n",
-		 rtlefuse->dev_addr);
-
-	/* channel plan */
-	rtlefuse->eeprom_channelplan =
-		*(u8 *)&hwinfo[EEPROM_CHANNEL_PLAN_8822B];
-
-	/* set channel plan from efuse */
-	rtlefuse->channel_plan = rtlefuse->eeprom_channelplan;
-	if (rtlefuse->channel_plan == 0xFF)
-		rtlefuse->channel_plan = 0x7f; /* use 2G + 5G as default */
-
-	/*tx power*/
-	_rtl8822be_read_txpower_info_from_hwpg(hw, rtlefuse->autoload_failflag,
-					       hwinfo);
-
-	rtl8822be_read_bt_coexist_info_from_hwpg(
-		hw, rtlefuse->autoload_failflag, hwinfo);
-
-	/*amplifier type*/
-	_rtl8822be_read_amplifier_type(hw, hwinfo, rtlefuse->autoload_failflag);
-
-	/*rfe type*/
-	_rtl8822be_read_rfe_type(hw, hwinfo, rtlefuse->autoload_failflag);
-
-	/*board type*/
-	rtlefuse->board_type =
-		(((*(u8 *)&hwinfo[EEPROM_RF_BOARD_OPTION_8822B]) & 0xE0) >> 5);
-	if ((*(u8 *)&hwinfo[EEPROM_RF_BOARD_OPTION_8822B]) == 0xFF)
-		rtlefuse->board_type = 0;
-
-	if (rtlpriv->btcoexist.btc_info.btcoexist == 1)
-		rtlefuse->board_type |= BIT(2); /* ODM_BOARD_BT */
-
-	/* phydm maintain rtlhal->board_type and rtlhal->package_type */
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "board_type = 0x%x\n",
-		 rtlefuse->board_type);
-	/*parse xtal*/
-	rtlefuse->crystalcap = hwinfo[EEPROM_XTAL_8822B];
-	if (hwinfo[EEPROM_XTAL_8822B] == 0xFF)
-		rtlefuse->crystalcap = 0; /*0x20;*/
-
-	/*antenna diversity*/
-	rtlefuse->antenna_div_type = 0;
-	rtlefuse->antenna_div_cfg = 0;
-
-label_end:
-	kfree(hwinfo);
-}
-
-static void _rtl8822be_hal_customized_behavior(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-
-	pcipriv->ledctl.led_opendrain = true;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "RT Customized ID: 0x%02X\n",
-		 rtlhal->oem_id);
-}
-
-static void _rtl8822be_read_pa_bias(struct ieee80211_hw *hw,
-				    struct rtl_phydm_params *params)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_halmac_ops *halmac_ops = rtlpriv->halmac.ops;
-	u32 size;
-	u8 *map = NULL;
-
-	/* fill default values */
-	params->efuse0x3d7 = 0xFF;
-	params->efuse0x3d8 = 0xFF;
-
-	if (halmac_ops->halmac_get_physical_efuse_size(rtlpriv, &size))
-		goto err;
-
-	map = kmalloc(size, GFP_KERNEL);
-	if (!map)
-		goto err;
-
-	if (halmac_ops->halmac_read_physical_efuse_map(rtlpriv, map, size))
-		goto err;
-
-	params->efuse0x3d7 = map[0x3d7];
-	params->efuse0x3d8 = map[0x3d8];
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-		 "efuse0x3d7 = 0x%2x, efuse0x3d8 = 0x%2x\n",
-		 params->efuse0x3d7, params->efuse0x3d8);
-
-err:
-	kfree(map);
-}
-
-void rtl8822be_read_eeprom_info(struct ieee80211_hw *hw,
-				struct rtl_phydm_params *params)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	u8 tmp_u1b;
-
-	rtlhal->version = _rtl8822be_read_chip_version(hw);
-
-	params->mp_chip = (rtlhal->version & BIT_RTL_ID_8822B) ? 0 : 1;
-	params->fab_ver = BIT_GET_VENDOR_ID_8822B(rtlhal->version) >> 2;
-	params->cut_ver = BIT_GET_CHIP_VER_8822B(rtlhal->version);
-
-	/* fab_ver mapping */
-	if (params->fab_ver == 2)
-		params->fab_ver = 1;
-	else if (params->fab_ver == 1)
-		params->fab_ver = 2;
-
-	/* read PA bias: params->efuse0x3d7/efuse0x3d8 */
-	_rtl8822be_read_pa_bias(hw, params);
-
-	if (get_rf_type(rtlphy) == RF_1T1R)
-		rtlpriv->dm.rfpath_rxenable[0] = true;
-	else
-		rtlpriv->dm.rfpath_rxenable[0] =
-			rtlpriv->dm.rfpath_rxenable[1] = true;
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "VersionID = 0x%4x\n",
-		 rtlhal->version);
-	tmp_u1b = rtl_read_byte(rtlpriv, REG_SYS_EEPROM_CTRL_8822B);
-	if (tmp_u1b & BIT(4)) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EEPROM\n");
-		rtlefuse->epromtype = EEPROM_93C46;
-	} else {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EFUSE\n");
-		rtlefuse->epromtype = EEPROM_BOOT_EFUSE;
-	}
-	if (tmp_u1b & BIT(5)) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
-		rtlefuse->autoload_failflag = false;
-		_rtl8822be_read_adapter_info(hw);
-	} else {
-		pr_err("Autoload ERR!!\n");
-	}
-	_rtl8822be_hal_customized_behavior(hw);
-
-	rtlphy->rfpath_rx_enable[0] = true;
-	if (rtlphy->rf_type == RF_2T2R)
-		rtlphy->rfpath_rx_enable[1] = true;
-}
-
-void rtl8822be_read_eeprom_info_dummy(struct ieee80211_hw *hw)
-{
-	/*
-	 * 8822b use halmac, so
-	 * move rtl8822be_read_eeprom_info() to rtl8822be_init_sw_vars()
-	 * after halmac_init_adapter().
-	 */
-}
-
-static u32 _rtl8822be_rate_to_bitmap_2ssvht(__le16 vht_rate)
-{
-	u8 i, j, tmp_rate;
-	u32 rate_bitmap = 0;
-
-	for (i = j = 0; i < 4; i += 2, j += 10) {
-		tmp_rate = (le16_to_cpu(vht_rate) >> i) & 3;
-
-		switch (tmp_rate) {
-		case 2:
-			rate_bitmap = rate_bitmap | (0x03ff << j);
-			break;
-
-		case 1:
-			rate_bitmap = rate_bitmap | (0x01ff << j);
-			break;
-
-		case 0:
-			rate_bitmap = rate_bitmap | (0x00ff << j);
-			break;
-
-		default:
-			break;
-		}
-	}
-
-	return rate_bitmap;
-}
-
-static u8 _rtl8822be_get_vht_en(enum wireless_mode wirelessmode,
-				u32 ratr_bitmap)
-{
-	u8 ret = 0;
-
-	if (wirelessmode < WIRELESS_MODE_N_24G) {
-		ret = 0;
-	} else if (wirelessmode == WIRELESS_MODE_AC_24G) {
-		if (ratr_bitmap & 0xfff00000) /* Mix , 2SS */
-			ret = 3;
-		else /* Mix, 1SS */
-			ret = 2;
-	} else if (wirelessmode == WIRELESS_MODE_AC_5G) {
-		ret = 1;
-	} /* VHT */
-
-	return ret << 4;
-}
-
-static u8 _rtl8822be_get_ra_ldpc(struct ieee80211_hw *hw, u8 mac_id,
-				 struct rtl_sta_info *sta_entry,
-				 enum wireless_mode wirelessmode)
-{
-	u8 b_ldpc = 0;
-	/*not support ldpc, do not open*/
-	return b_ldpc << 2;
-}
-
-static u8 _rtl8822be_get_ra_rftype(struct ieee80211_hw *hw,
-				   enum wireless_mode wirelessmode,
-				   u32 ratr_bitmap)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 rf_type = RF_1T1R;
-
-	if (rtlphy->rf_type == RF_1T1R) {
-		rf_type = RF_1T1R;
-	} else if (wirelessmode == WIRELESS_MODE_AC_5G ||
-		   wirelessmode == WIRELESS_MODE_AC_24G ||
-		   wirelessmode == WIRELESS_MODE_AC_ONLY) {
-		if (ratr_bitmap & 0xffc00000)
-			rf_type = RF_2T2R;
-	} else if (wirelessmode == WIRELESS_MODE_N_5G ||
-		   wirelessmode == WIRELESS_MODE_N_24G) {
-		if (ratr_bitmap & 0xfff00000)
-			rf_type = RF_2T2R;
-	}
-
-	return rf_type;
-}
-
-static bool _rtl8822be_get_ra_shortgi(struct ieee80211_hw *hw,
-				      struct ieee80211_sta *sta, u8 mac_id)
-{
-	bool b_short_gi = false;
-	u8 b_curshortgi_40mhz =
-		(sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40) ? 1 : 0;
-	u8 b_curshortgi_20mhz =
-		(sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20) ? 1 : 0;
-	u8 b_curshortgi_80mhz = 0;
-
-	b_curshortgi_80mhz =
-		(sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80) ? 1 : 0;
-
-	if (mac_id == 99 /*MAC_ID_STATIC_FOR_BROADCAST_MULTICAST*/)
-		b_short_gi = false;
-
-	if (b_curshortgi_40mhz || b_curshortgi_80mhz || b_curshortgi_20mhz)
-		b_short_gi = true;
-
-	return b_short_gi;
-}
-
-static void rtl8822be_update_hal_rate_mask(struct ieee80211_hw *hw,
-					   struct ieee80211_sta *sta,
-					   u8 rssi_level, bool update_bw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_sta_info *sta_entry = NULL;
-	u32 ratr_bitmap, ratr_bitmap_msb = 0;
-	u8 ratr_index;
-	enum wireless_mode wirelessmode = 0;
-	bool b_shortgi = false;
-	u8 rate_mask[7];
-	u8 macid = 0;
-	u8 rf_type;
-
-	sta_entry = (struct rtl_sta_info *)sta->drv_priv;
-	wirelessmode = sta_entry->wireless_mode;
-
-	RT_TRACE(rtlpriv, COMP_RATR, DBG_LOUD, "wireless mode = 0x%x\n",
-		 wirelessmode);
-	if (mac->opmode == NL80211_IFTYPE_AP ||
-	    mac->opmode == NL80211_IFTYPE_ADHOC)
-		macid = sta->aid + 1;
-	if (wirelessmode == WIRELESS_MODE_N_5G ||
-	    wirelessmode == WIRELESS_MODE_AC_5G ||
-	    wirelessmode == WIRELESS_MODE_A)
-		ratr_bitmap = (sta->supp_rates[NL80211_BAND_5GHZ]) << 4;
-	else
-		ratr_bitmap = sta->supp_rates[NL80211_BAND_2GHZ];
-
-	if (mac->opmode == NL80211_IFTYPE_ADHOC)
-		ratr_bitmap = 0xfff;
-
-	if (wirelessmode == WIRELESS_MODE_N_24G ||
-	    wirelessmode == WIRELESS_MODE_N_5G)
-		ratr_bitmap |= (sta->ht_cap.mcs.rx_mask[1] << 20 |
-				sta->ht_cap.mcs.rx_mask[0] << 12);
-	else if (wirelessmode == WIRELESS_MODE_AC_24G ||
-		 wirelessmode == WIRELESS_MODE_AC_5G ||
-		 wirelessmode == WIRELESS_MODE_AC_ONLY)
-		ratr_bitmap |= _rtl8822be_rate_to_bitmap_2ssvht(
-				       sta->vht_cap.vht_mcs.rx_mcs_map)
-			       << 12;
-
-	b_shortgi = _rtl8822be_get_ra_shortgi(hw, sta, macid);
-	rf_type = _rtl8822be_get_ra_rftype(hw, wirelessmode, ratr_bitmap);
-
-	ratr_index = rtlpriv->phydm.ops->phydm_rate_id_mapping(
-		rtlpriv, wirelessmode, rf_type, rtlphy->current_chan_bw);
-	sta_entry->ratr_index = ratr_index;
-
-	rtlpriv->phydm.ops->phydm_get_ra_bitmap(
-		rtlpriv, wirelessmode, rf_type, rtlphy->current_chan_bw,
-		rssi_level, &ratr_bitmap_msb, &ratr_bitmap);
-
-	RT_TRACE(rtlpriv, COMP_RATR, DBG_LOUD, "ratr_bitmap :%x\n",
-		 ratr_bitmap);
-
-	rate_mask[0] = macid;
-	rate_mask[1] = ratr_index | (b_shortgi ? 0x80 : 0x00);
-	rate_mask[2] =
-		rtlphy->current_chan_bw | ((!update_bw) << 3) |
-		_rtl8822be_get_vht_en(wirelessmode, ratr_bitmap) |
-		_rtl8822be_get_ra_ldpc(hw, macid, sta_entry, wirelessmode);
-
-	rate_mask[3] = (u8)(ratr_bitmap & 0x000000ff);
-	rate_mask[4] = (u8)((ratr_bitmap & 0x0000ff00) >> 8);
-	rate_mask[5] = (u8)((ratr_bitmap & 0x00ff0000) >> 16);
-	rate_mask[6] = (u8)((ratr_bitmap & 0xff000000) >> 24);
-
-	RT_TRACE(
-		rtlpriv, COMP_RATR, DBG_DMESG,
-		"Rate_index:%x, ratr_val:%08x, %02x:%02x:%02x:%02x:%02x:%02x:%02x\n",
-		ratr_index, ratr_bitmap, rate_mask[0], rate_mask[1],
-		rate_mask[2], rate_mask[3], rate_mask[4], rate_mask[5],
-		rate_mask[6]);
-	rtl8822be_fill_h2c_cmd(hw, H2C_8822B_MACID_CFG, 7, rate_mask);
-
-	/* for h2c cmd 0x46, only modify cmd id & ra mask */
-	/* Keep rate_mask0~2 of cmd 0x40, but clear byte3 and later */
-	/* 8822B has no 3SS, so keep it zeros. */
-	memset(rate_mask + 3, 0, 4);
-
-	rtl8822be_fill_h2c_cmd(hw, H2C_8822B_MACID_CFG_3SS, 7, rate_mask);
-
-	_rtl8822be_set_bcn_ctrl_reg(hw, BIT(3), 0);
-}
-
-void rtl8822be_update_hal_rate_tbl(struct ieee80211_hw *hw,
-				   struct ieee80211_sta *sta, u8 rssi_level,
-				   bool update_bw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	if (rtlpriv->dm.useramask)
-		rtl8822be_update_hal_rate_mask(hw, sta, rssi_level, update_bw);
-}
-
-void rtl8822be_update_channel_access_setting(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	u16 sifs_timer;
-
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME,
-				      (u8 *)&mac->slot_time);
-	if (!mac->ht_enable)
-		sifs_timer = 0x0a0a;
-	else
-		sifs_timer = 0x0e0e;
-	rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SIFS, (u8 *)&sifs_timer);
-}
-
-bool rtl8822be_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 *valid)
-{
-	*valid = 1;
-	return true;
-}
-
-void rtl8822be_set_key(struct ieee80211_hw *hw, u32 key_index, u8 *p_macaddr,
-		       bool is_group, u8 enc_algo, bool is_wepkey,
-		       bool clear_all)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	u8 *macaddr = p_macaddr;
-	u32 entry_id = 0;
-	bool is_pairwise = false;
-
-	static u8 cam_const_addr[4][6] = {
-		{0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
-		{0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
-		{0x00, 0x00, 0x00, 0x00, 0x00, 0x02},
-		{0x00, 0x00, 0x00, 0x00, 0x00, 0x03},
-	};
-	static u8 cam_const_broad[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-
-	if (clear_all) {
-		u8 idx = 0;
-		u8 cam_offset = 0;
-		u8 clear_number = 5;
-
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "clear_all\n");
-
-		for (idx = 0; idx < clear_number; idx++) {
-			rtl_cam_mark_invalid(hw, cam_offset + idx);
-			rtl_cam_empty_entry(hw, cam_offset + idx);
-
-			if (idx < 5) {
-				memset(rtlpriv->sec.key_buf[idx], 0,
-				       MAX_KEY_LEN);
-				rtlpriv->sec.key_len[idx] = 0;
-			}
-		}
-
-		return;
-	}
-
-	switch (enc_algo) {
-	case WEP40_ENCRYPTION:
-		enc_algo = CAM_WEP40;
-		break;
-	case WEP104_ENCRYPTION:
-		enc_algo = CAM_WEP104;
-		break;
-	case TKIP_ENCRYPTION:
-		enc_algo = CAM_TKIP;
-		break;
-	case AESCCMP_ENCRYPTION:
-		enc_algo = CAM_AES;
-		break;
-	default:
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
-			 "switch case %#x not processed\n", enc_algo);
-		enc_algo = CAM_TKIP;
-		break;
-	}
-
-	if (is_wepkey || rtlpriv->sec.use_defaultkey) {
-		macaddr = cam_const_addr[key_index];
-		entry_id = key_index;
-	} else {
-		if (is_group) {
-			macaddr = cam_const_broad;
-			entry_id = key_index;
-		} else {
-			if (mac->opmode == NL80211_IFTYPE_AP) {
-				entry_id =
-					rtl_cam_get_free_entry(hw, p_macaddr);
-				if (entry_id >= TOTAL_CAM_ENTRY) {
-					pr_err("Can not find free hwsecurity cam entry\n");
-					return;
-				}
-			} else {
-				entry_id = CAM_PAIRWISE_KEY_POSITION;
-			}
-
-			key_index = PAIRWISE_KEYIDX;
-			is_pairwise = true;
-		}
-	}
-
-	if (rtlpriv->sec.key_len[key_index] == 0) {
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-			 "delete one entry, entry_id is %d\n", entry_id);
-		if (mac->opmode == NL80211_IFTYPE_AP)
-			rtl_cam_del_entry(hw, p_macaddr);
-		rtl_cam_delete_one_entry(hw, p_macaddr, entry_id);
-	} else {
-		RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "add one entry\n");
-		if (is_pairwise) {
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-				 "set Pairwise key\n");
-
-			rtl_cam_add_one_entry(hw, macaddr, key_index, entry_id,
-					      enc_algo, CAM_CONFIG_NO_USEDK,
-					      rtlpriv->sec.key_buf[key_index]);
-		} else {
-			RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-				 "set group key\n");
-
-			if (mac->opmode == NL80211_IFTYPE_ADHOC) {
-				rtl_cam_add_one_entry(
-					hw, rtlefuse->dev_addr, PAIRWISE_KEYIDX,
-					CAM_PAIRWISE_KEY_POSITION, enc_algo,
-					CAM_CONFIG_NO_USEDK,
-					rtlpriv->sec.key_buf[entry_id]);
-			}
-
-			rtl_cam_add_one_entry(hw, macaddr, key_index, entry_id,
-					      enc_algo, CAM_CONFIG_NO_USEDK,
-					      rtlpriv->sec.key_buf[entry_id]);
-		}
-	}
-}
-
-void rtl8822be_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw,
-					      bool auto_load_fail, u8 *hwinfo)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 value;
-	u32 val32;
-
-	val32 = rtl_read_dword(rtlpriv, REG_WL_BT_PWR_CTRL_8822B);
-	if (val32 & BIT_BT_FUNC_EN_8822B)
-		rtlpriv->btcoexist.btc_info.btcoexist = 1;
-	else
-		rtlpriv->btcoexist.btc_info.btcoexist = 0;
-
-	if (!auto_load_fail) {
-		value = hwinfo[EEPROM_RF_BT_SETTING_8822B];
-
-		rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8822B;
-		rtlpriv->btcoexist.btc_info.ant_num =
-			(value & BIT(0) ? ANT_TOTAL_X1 : ANT_TOTAL_X2);
-	} else {
-		rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8822B;
-		rtlpriv->btcoexist.btc_info.ant_num = ANT_TOTAL_X2;
-	}
-}
-
-void rtl8822be_bt_reg_init(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	/* 0:Low, 1:High, 2:From Efuse. */
-	rtlpriv->btcoexist.reg_bt_iso = 2;
-	/* 0:Idle, 1:None-SCO, 2:SCO, 3:From Counter. */
-	rtlpriv->btcoexist.reg_bt_sco = 3;
-	/* 0:Disable BT control A-MPDU, 1:Enable BT control A-MPDU. */
-	rtlpriv->btcoexist.reg_bt_sco = 0;
-}
-
-void rtl8822be_suspend(struct ieee80211_hw *hw) {}
-
-void rtl8822be_resume(struct ieee80211_hw *hw) {}
diff --git a/drivers/staging/rtlwifi/rtl8822be/hw.h b/drivers/staging/rtlwifi/rtl8822be/hw.h
deleted file mode 100644
index 0e4decf..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/hw.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL8822B_HW_H__
-#define __RTL8822B_HW_H__
-
-extern u8 rtl_channel5g[CHANNEL_MAX_NUMBER_5G];
-extern u8 rtl_channel5g_80m[CHANNEL_MAX_NUMBER_5G_80M];
-
-void rtl8822be_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val);
-void rtl8822be_read_eeprom_info(struct ieee80211_hw *hw,
-				struct rtl_phydm_params *params);
-void rtl8822be_read_eeprom_info_dummy(struct ieee80211_hw *hw);
-void rtl8822be_interrupt_recognized(struct ieee80211_hw *hw, u32 *p_inta,
-				    u32 *p_intb, u32 *p_intc, u32 *p_intd);
-int rtl8822be_hw_init(struct ieee80211_hw *hw);
-void rtl8822be_card_disable(struct ieee80211_hw *hw);
-void rtl8822be_enable_interrupt(struct ieee80211_hw *hw);
-void rtl8822be_disable_interrupt(struct ieee80211_hw *hw);
-int rtl8822be_set_network_type(struct ieee80211_hw *hw,
-			       enum nl80211_iftype type);
-void rtl8822be_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid);
-void rtl8822be_set_qos(struct ieee80211_hw *hw, int aci);
-void rtl8822be_set_beacon_related_registers(struct ieee80211_hw *hw);
-void rtl8822be_set_beacon_interval(struct ieee80211_hw *hw);
-void rtl8822be_update_interrupt_mask(struct ieee80211_hw *hw, u32 add_msr,
-				     u32 rm_msr);
-void rtl8822be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val);
-void rtl8822be_update_hal_rate_tbl(struct ieee80211_hw *hw,
-				   struct ieee80211_sta *sta, u8 rssi_level,
-				   bool update_bw);
-void rtl8822be_update_channel_access_setting(struct ieee80211_hw *hw);
-bool rtl8822be_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 *valid);
-void rtl8822be_set_key(struct ieee80211_hw *hw, u32 key_index, u8 *p_macaddr,
-		       bool is_group, u8 enc_algo, bool is_wepkey,
-		       bool clear_all);
-void rtl8822be_enable_hw_security_config(struct ieee80211_hw *hw);
-void rtl8822be_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw,
-					      bool autoload_fail, u8 *hwinfo);
-void rtl8822be_bt_reg_init(struct ieee80211_hw *hw);
-void rtl8822be_suspend(struct ieee80211_hw *hw);
-void rtl8822be_resume(struct ieee80211_hw *hw);
-#endif
diff --git a/drivers/staging/rtlwifi/rtl8822be/led.c b/drivers/staging/rtlwifi/rtl8822be/led.c
deleted file mode 100644
index 6d6e1f2..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/led.c
+++ /dev/null
@@ -1,116 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../wifi.h"
-#include "../pci.h"
-#include "reg.h"
-#include "led.h"
-
-static void _rtl8822be_init_led(struct ieee80211_hw *hw, struct rtl_led *pled,
-				enum rtl_led_pin ledpin)
-{
-	pled->hw = hw;
-	pled->ledpin = ledpin;
-	pled->ledon = false;
-}
-
-void rtl8822be_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
-		 REG_LEDCFG2_8822B, pled->ledpin);
-
-	switch (pled->ledpin) {
-	case LED_PIN_GPIO0:
-		break;
-	case LED_PIN_LED0:
-		break;
-	case LED_PIN_LED1:
-		break;
-	default:
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
-			 "switch case not process\n");
-		break;
-	}
-	pled->ledon = true;
-}
-
-void rtl8822be_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
-		 REG_LEDCFG2_8822B, pled->ledpin);
-
-	switch (pled->ledpin) {
-	case LED_PIN_GPIO0:
-		break;
-	case LED_PIN_LED0:
-		break;
-	case LED_PIN_LED1:
-
-		break;
-	default:
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
-			 "switch case not process\n");
-		break;
-	}
-	pled->ledon = false;
-}
-
-void rtl8822be_init_sw_leds(struct ieee80211_hw *hw)
-{
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-
-	_rtl8822be_init_led(hw, &pcipriv->ledctl.sw_led0, LED_PIN_LED0);
-	_rtl8822be_init_led(hw, &pcipriv->ledctl.sw_led1, LED_PIN_LED1);
-}
-
-static void _rtl8822be_sw_led_control(struct ieee80211_hw *hw,
-				      enum led_ctl_mode ledaction)
-{
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_led *led0 = &pcipriv->ledctl.sw_led0;
-
-	switch (ledaction) {
-	case LED_CTL_POWER_ON:
-	case LED_CTL_LINK:
-	case LED_CTL_NO_LINK:
-		rtl8822be_sw_led_on(hw, led0);
-		break;
-	case LED_CTL_POWER_OFF:
-		rtl8822be_sw_led_off(hw, led0);
-		break;
-	default:
-		break;
-	}
-}
-
-void rtl8822be_led_control(struct ieee80211_hw *hw, enum led_ctl_mode ledaction)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-
-	if (ppsc->rfoff_reason > RF_CHANGE_BY_PS &&
-	    (ledaction == LED_CTL_TX || ledaction == LED_CTL_RX ||
-	     ledaction == LED_CTL_SITE_SURVEY || ledaction == LED_CTL_LINK ||
-	     ledaction == LED_CTL_NO_LINK ||
-	     ledaction == LED_CTL_START_TO_LINK ||
-	     ledaction == LED_CTL_POWER_ON)) {
-		return;
-	}
-	RT_TRACE(rtlpriv, COMP_LED, DBG_TRACE, "ledaction %d,\n", ledaction);
-	_rtl8822be_sw_led_control(hw, ledaction);
-}
diff --git a/drivers/staging/rtlwifi/rtl8822be/led.h b/drivers/staging/rtlwifi/rtl8822be/led.h
deleted file mode 100644
index 9a19e17..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/led.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL8822B_LED_H__
-#define __RTL8822B_LED_H__
-
-void rtl8822be_init_sw_leds(struct ieee80211_hw *hw);
-void rtl8822be_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled);
-void rtl8822be_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled);
-void rtl8822be_led_control(struct ieee80211_hw *hw,
-			   enum led_ctl_mode ledaction);
-#endif
diff --git a/drivers/staging/rtlwifi/rtl8822be/phy.c b/drivers/staging/rtlwifi/rtl8822be/phy.c
deleted file mode 100644
index ececfed..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/phy.c
+++ /dev/null
@@ -1,2216 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../wifi.h"
-#include "../pci.h"
-#include "../ps.h"
-#include "../base.h"
-#include "reg.h"
-#include "def.h"
-#include "phy.h"
-#include "trx.h"
-#include "../btcoexist/halbt_precomp.h"
-#include "hw.h"
-#include "../efuse.h"
-
-static u32 _rtl8822be_phy_calculate_bit_shift(u32 bitmask);
-static void
-_rtl8822be_phy_init_bb_rf_register_definition(struct ieee80211_hw *hw);
-
-static long _rtl8822be_phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw,
-					    enum wireless_mode wirelessmode,
-					    u8 txpwridx);
-static void rtl8822be_phy_set_rf_on(struct ieee80211_hw *hw);
-static void rtl8822be_phy_set_io(struct ieee80211_hw *hw);
-
-static u8 cck_rates[] = {DESC_RATE1M, DESC_RATE2M, DESC_RATE5_5M, DESC_RATE11M};
-static u8 sizes_of_cck_retes = 4;
-static u8 ofdm_rates[] = {DESC_RATE6M,  DESC_RATE9M,  DESC_RATE12M,
-			  DESC_RATE18M, DESC_RATE24M, DESC_RATE36M,
-			  DESC_RATE48M, DESC_RATE54M};
-static u8 sizes_of_ofdm_retes = 8;
-static u8 ht_rates_1t[] = {DESC_RATEMCS0, DESC_RATEMCS1, DESC_RATEMCS2,
-			   DESC_RATEMCS3, DESC_RATEMCS4, DESC_RATEMCS5,
-			   DESC_RATEMCS6, DESC_RATEMCS7};
-static u8 sizes_of_ht_retes_1t = 8;
-static u8 ht_rates_2t[] = {DESC_RATEMCS8,  DESC_RATEMCS9,  DESC_RATEMCS10,
-			   DESC_RATEMCS11, DESC_RATEMCS12, DESC_RATEMCS13,
-			   DESC_RATEMCS14, DESC_RATEMCS15};
-static u8 sizes_of_ht_retes_2t = 8;
-static u8 vht_rates_1t[] = {DESC_RATEVHT1SS_MCS0, DESC_RATEVHT1SS_MCS1,
-			    DESC_RATEVHT1SS_MCS2, DESC_RATEVHT1SS_MCS3,
-			    DESC_RATEVHT1SS_MCS4, DESC_RATEVHT1SS_MCS5,
-			    DESC_RATEVHT1SS_MCS6, DESC_RATEVHT1SS_MCS7,
-			    DESC_RATEVHT1SS_MCS8, DESC_RATEVHT1SS_MCS9};
-static u8 vht_rates_2t[] = {DESC_RATEVHT2SS_MCS0, DESC_RATEVHT2SS_MCS1,
-			    DESC_RATEVHT2SS_MCS2, DESC_RATEVHT2SS_MCS3,
-			    DESC_RATEVHT2SS_MCS4, DESC_RATEVHT2SS_MCS5,
-			    DESC_RATEVHT2SS_MCS6, DESC_RATEVHT2SS_MCS7,
-			    DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9};
-static u8 sizes_of_vht_retes = 10;
-
-u32 rtl8822be_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr,
-			       u32 bitmask)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u32 returnvalue, originalvalue, bitshift;
-
-	RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "regaddr(%#x), bitmask(%#x)\n",
-		 regaddr, bitmask);
-	originalvalue = rtl_read_dword(rtlpriv, regaddr);
-	bitshift = _rtl8822be_phy_calculate_bit_shift(bitmask);
-	returnvalue = (originalvalue & bitmask) >> bitshift;
-
-	RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "BBR MASK=0x%x Addr[0x%x]=0x%x\n",
-		 bitmask, regaddr, originalvalue);
-
-	return returnvalue;
-}
-
-void rtl8822be_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask,
-			      u32 data)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u32 originalvalue, bitshift;
-
-	RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-		 "regaddr(%#x), bitmask(%#x), data(%#x)\n", regaddr, bitmask,
-		 data);
-
-	if (bitmask != MASKDWORD) {
-		originalvalue = rtl_read_dword(rtlpriv, regaddr);
-		bitshift = _rtl8822be_phy_calculate_bit_shift(bitmask);
-		data = ((originalvalue & (~bitmask)) |
-			((data << bitshift) & bitmask));
-	}
-
-	rtl_write_dword(rtlpriv, regaddr, data);
-
-	RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-		 "regaddr(%#x), bitmask(%#x), data(%#x)\n", regaddr, bitmask,
-		 data);
-}
-
-u32 rtl8822be_phy_query_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
-			       u32 regaddr, u32 bitmask)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u32 /*original_value,*/ readback_value /*, bitshift*/;
-	unsigned long flags;
-
-	RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-		 "regaddr(%#x), rfpath(%#x), bitmask(%#x)\n", regaddr, rfpath,
-		 bitmask);
-
-	spin_lock_irqsave(&rtlpriv->locks.rf_lock, flags);
-
-	readback_value = rtlpriv->phydm.ops->phydm_read_rf_reg(
-		rtlpriv, rfpath, regaddr, bitmask);
-
-	spin_unlock_irqrestore(&rtlpriv->locks.rf_lock, flags);
-
-	return readback_value;
-}
-
-void rtl8822be_phy_set_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
-			      u32 regaddr, u32 bitmask, u32 data)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	unsigned long flags;
-
-	RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-		 "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
-		 regaddr, bitmask, data, rfpath);
-
-	spin_lock_irqsave(&rtlpriv->locks.rf_lock, flags);
-
-	rtlpriv->phydm.ops->phydm_write_rf_reg(rtlpriv, rfpath, regaddr,
-					       bitmask, data);
-
-	spin_unlock_irqrestore(&rtlpriv->locks.rf_lock, flags);
-
-	RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-		 "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
-		 regaddr, bitmask, data, rfpath);
-}
-
-static u32 _rtl8822be_phy_calculate_bit_shift(u32 bitmask)
-{
-	u32 i;
-
-	for (i = 0; i <= 31; i++) {
-		if (((bitmask >> i) & 0x1) == 1)
-			break;
-	}
-	return i;
-}
-
-bool rtl8822be_halmac_cb_init_mac_register(struct rtl_priv *rtlpriv)
-{
-	return rtlpriv->phydm.ops->phydm_phy_mac_config(rtlpriv);
-}
-
-bool rtl8822be_phy_bb_config(struct ieee80211_hw *hw)
-{
-	bool rtstatus = true;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	u8 crystal_cap;
-	/* u32 tmp; */
-
-	rtstatus = rtlpriv->phydm.ops->phydm_phy_bb_config(rtlpriv);
-
-	/* write 0x28[6:1] = 0x24[30:25] = CrystalCap */
-	crystal_cap = rtlefuse->crystalcap & 0x3F;
-	rtl_set_bbreg(hw, REG_AFE_XTAL_CTRL_8822B, 0x7E000000, crystal_cap);
-	rtl_set_bbreg(hw, REG_AFE_PLL_CTRL_8822B, 0x7E, crystal_cap);
-
-	/*rtlphy->reg_837 = rtl_read_byte(rtlpriv, 0x837);*/ /*unused*/
-
-	return rtstatus;
-}
-
-bool rtl8822be_phy_rf_config(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-
-	if (rtlphy->rf_type == RF_1T1R)
-		rtlphy->num_total_rfpath = 1;
-	else
-		rtlphy->num_total_rfpath = 2;
-
-	return rtlpriv->phydm.ops->phydm_phy_rf_config(rtlpriv);
-}
-
-bool rtl8822be_halmac_cb_init_bb_rf_register(struct rtl_priv *rtlpriv)
-{
-	struct ieee80211_hw *hw = rtlpriv->hw;
-	enum radio_mask txpath, rxpath;
-	bool tx2path;
-	bool ret = false;
-
-	_rtl8822be_phy_init_bb_rf_register_definition(hw);
-
-	rtlpriv->halmac.ops->halmac_phy_power_switch(rtlpriv, 1);
-
-	/* beofre bb/rf config */
-	rtlpriv->phydm.ops->phydm_parameter_init(rtlpriv, 0);
-
-	/* do bb/rf config */
-	if (rtl8822be_phy_bb_config(hw) && rtl8822be_phy_rf_config(hw))
-		ret = true;
-
-	/* after bb/rf config */
-	rtlpriv->phydm.ops->phydm_parameter_init(rtlpriv, 1);
-
-	/* set trx mode (keep it to be last, r17376) */
-	txpath = RF_MASK_A | RF_MASK_B;
-	rxpath = RF_MASK_A | RF_MASK_B;
-	tx2path = false;
-	return rtlpriv->phydm.ops->phydm_trx_mode(rtlpriv, txpath, rxpath,
-						 tx2path);
-}
-
-static void _rtl8822be_phy_init_tx_power_by_rate(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-
-	u8 band, rfpath, txnum, rate;
-
-	for (band = BAND_ON_2_4G; band <= BAND_ON_5G; ++band)
-		for (rfpath = 0; rfpath < TX_PWR_BY_RATE_NUM_RF; ++rfpath)
-			for (txnum = 0; txnum < TX_PWR_BY_RATE_NUM_RF; ++txnum)
-				for (rate = 0; rate < TX_PWR_BY_RATE_NUM_RATE;
-				     ++rate)
-					rtlphy->tx_power_by_rate_offset
-						[band][rfpath][txnum][rate] = 0;
-}
-
-static void _rtl8822be_phy_set_txpower_by_rate_base(struct ieee80211_hw *hw,
-						    u8 band, u8 path,
-						    u8 rate_section, u8 txnum,
-						    u8 value)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-
-	if (path > RF90_PATH_D) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Invalid Rf Path %d in phy_SetTxPowerByRatBase()\n",
-			 path);
-		return;
-	}
-
-	if (band != BAND_ON_2_4G && band != BAND_ON_5G) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Invalid band %d in phy_SetTxPowerByRatBase()\n",
-			 band);
-		return;
-	}
-
-	if (rate_section >= MAX_RATE_SECTION ||
-	    (band == BAND_ON_5G && rate_section == CCK)) {
-		RT_TRACE(
-			rtlpriv, COMP_INIT, DBG_LOUD,
-			"Invalid rate_section %d in phy_SetTxPowerByRatBase()\n",
-			rate_section);
-		return;
-	}
-
-	if (band == BAND_ON_2_4G)
-		rtlphy->txpwr_by_rate_base_24g[path][txnum][rate_section] =
-			value;
-	else /* BAND_ON_5G */
-		rtlphy->txpwr_by_rate_base_5g[path][txnum][rate_section - 1] =
-			value;
-}
-
-static u8 _rtl8822be_phy_get_txpower_by_rate_base(struct ieee80211_hw *hw,
-						  u8 band, u8 path, u8 txnum,
-						  u8 rate_section)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 value;
-
-	if (path > RF90_PATH_D) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Invalid Rf Path %d in phy_GetTxPowerByRatBase()\n",
-			 path);
-		return 0;
-	}
-
-	if (band != BAND_ON_2_4G && band != BAND_ON_5G) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "Invalid band %d in phy_GetTxPowerByRatBase()\n",
-			 band);
-		return 0;
-	}
-
-	if (rate_section >= MAX_RATE_SECTION ||
-	    (band == BAND_ON_5G && rate_section == CCK)) {
-		RT_TRACE(
-			rtlpriv, COMP_INIT, DBG_LOUD,
-			"Invalid rate_section %d in phy_GetTxPowerByRatBase()\n",
-			rate_section);
-		return 0;
-	}
-
-	if (band == BAND_ON_2_4G)
-		value = rtlphy->txpwr_by_rate_base_24g[path][txnum]
-						      [rate_section];
-	else /* BAND_ON_5G */
-		value = rtlphy->txpwr_by_rate_base_5g[path][txnum]
-						     [rate_section - 1];
-
-	return value;
-}
-
-static void _rtl8822be_phy_store_txpower_by_rate_base(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-
-	struct {
-		enum rtl_desc_rate rate;
-		enum rate_section section;
-	} rate_sec_base[] = {
-		{DESC_RATE11M, CCK},
-		{DESC_RATE54M, OFDM},
-		{DESC_RATEMCS7, HT_MCS0_MCS7},
-		{DESC_RATEMCS15, HT_MCS8_MCS15},
-		{DESC_RATEVHT1SS_MCS7, VHT_1SSMCS0_1SSMCS9},
-		{DESC_RATEVHT2SS_MCS7, VHT_2SSMCS0_2SSMCS9},
-	};
-
-	u8 band, path, rs, tx_num, base;
-	u8 rate, section;
-
-	for (band = BAND_ON_2_4G; band <= BAND_ON_5G; band++) {
-		for (path = RF90_PATH_A; path <= RF90_PATH_B; path++) {
-			for (rs = 0; rs < MAX_RATE_SECTION; rs++) {
-				rate = rate_sec_base[rs].rate;
-				section = rate_sec_base[rs].section;
-
-				if (IS_1T_RATE(rate))
-					tx_num = RF_1TX;
-				else
-					tx_num = RF_2TX;
-
-				if (band == BAND_ON_5G &&
-				    RX_HAL_IS_CCK_RATE(rate))
-					continue;
-
-				base = rtlphy->tx_power_by_rate_offset
-					       [band][path][tx_num][rate];
-				_rtl8822be_phy_set_txpower_by_rate_base(
-					hw, band, path, section, tx_num, base);
-			}
-		}
-	}
-}
-
-static void __rtl8822be_phy_cross_reference_core(struct ieee80211_hw *hw,
-						 u8 regulation, u8 bw,
-						 u8 channel)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 rs, ref_rs;
-	s8 pwrlmt, ref_pwrlmt;
-
-	for (rs = 0; rs < MAX_RATE_SECTION_NUM; ++rs) {
-		/*5G 20M 40M VHT and HT can cross reference*/
-		if (bw != HT_CHANNEL_WIDTH_20 && bw != HT_CHANNEL_WIDTH_20_40)
-			continue;
-
-		if (rs == HT_MCS0_MCS7)
-			ref_rs = VHT_1SSMCS0_1SSMCS9;
-		else if (rs == HT_MCS8_MCS15)
-			ref_rs = VHT_2SSMCS0_2SSMCS9;
-		else if (rs == VHT_1SSMCS0_1SSMCS9)
-			ref_rs = HT_MCS0_MCS7;
-		else if (rs == VHT_2SSMCS0_2SSMCS9)
-			ref_rs = HT_MCS8_MCS15;
-		else
-			continue;
-
-		ref_pwrlmt = rtlphy->txpwr_limit_5g[regulation][bw][ref_rs]
-						   [channel][RF90_PATH_A];
-		if (ref_pwrlmt == MAX_POWER_INDEX)
-			continue;
-
-		pwrlmt = rtlphy->txpwr_limit_5g[regulation][bw][rs][channel]
-					       [RF90_PATH_A];
-		if (pwrlmt != MAX_POWER_INDEX)
-			continue;
-
-		rtlphy->txpwr_limit_5g[regulation][bw][rs][channel]
-				      [RF90_PATH_A] = ref_pwrlmt;
-	}
-}
-
-static void
-_rtl8822be_phy_cross_reference_ht_and_vht_txpower_limit(struct ieee80211_hw *hw)
-{
-	u8 regulation, bw, channel;
-
-	for (regulation = 0; regulation < MAX_REGULATION_NUM; ++regulation) {
-		for (bw = 0; bw < MAX_5G_BANDWIDTH_NUM; ++bw) {
-			for (channel = 0; channel < CHANNEL_MAX_NUMBER_5G;
-			     ++channel) {
-				__rtl8822be_phy_cross_reference_core(
-					hw, regulation, bw, channel);
-			}
-		}
-	}
-}
-
-static void __rtl8822be_txpwr_limit_to_index_2g(struct ieee80211_hw *hw,
-						u8 regulation, u8 bw,
-						u8 channel)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 bw40_pwr_base_dbm2_4G;
-	u8 rate_section;
-	s8 temp_pwrlmt;
-	enum rf_tx_num txnum;
-	s8 temp_value;
-	u8 rf_path;
-
-	for (rate_section = 0; rate_section < MAX_RATE_SECTION_NUM;
-	     ++rate_section) {
-		/* obtain the base dBm values in 2.4G band
-		 * CCK => 11M, OFDM => 54M, HT 1T => MCS7, HT 2T => MCS15
-		 */
-
-		temp_pwrlmt =
-			rtlphy->txpwr_limit_2_4g[regulation][bw][rate_section]
-						[channel][RF90_PATH_A];
-		txnum = IS_1T_RATESEC(rate_section) ? RF_1TX : RF_2TX;
-
-		if (temp_pwrlmt == MAX_POWER_INDEX)
-			continue;
-
-		for (rf_path = RF90_PATH_A; rf_path < MAX_RF_PATH_NUM;
-		     ++rf_path) {
-			bw40_pwr_base_dbm2_4G =
-				_rtl8822be_phy_get_txpower_by_rate_base(
-					hw, BAND_ON_2_4G, rf_path, txnum,
-					rate_section);
-
-			temp_value = temp_pwrlmt - bw40_pwr_base_dbm2_4G;
-			rtlphy->txpwr_limit_2_4g[regulation][bw][rate_section]
-						[channel][rf_path] = temp_value;
-
-			RT_TRACE(
-				rtlpriv, COMP_INIT, DBG_TRACE,
-				"TxPwrLimit_2_4G[regulation %d][bw %d][rateSection %d][channel %d] = %d\n(TxPwrLimit in dBm %d - BW40PwrLmt2_4G[channel %d][rfPath %d] %d)\n",
-				regulation, bw, rate_section, channel,
-				rtlphy->txpwr_limit_2_4g[regulation][bw]
-							[rate_section][channel]
-							[rf_path],
-				(temp_pwrlmt == 63) ? 0 : temp_pwrlmt / 2,
-				channel, rf_path, bw40_pwr_base_dbm2_4G);
-		}
-	}
-}
-
-static void __rtl8822be_txpwr_limit_to_index_5g(struct ieee80211_hw *hw,
-						u8 regulation, u8 bw,
-						u8 channel)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 bw40_pwr_base_dbm5G;
-	u8 rate_section;
-	s8 temp_pwrlmt;
-	enum rf_tx_num txnum;
-	s8 temp_value;
-	u8 rf_path;
-
-	for (rate_section = 0; rate_section < MAX_RATE_SECTION_NUM;
-	     ++rate_section) {
-		/* obtain the base dBm values in 5G band
-		 * OFDM => 54M, HT 1T => MCS7, HT 2T => MCS15,
-		 * VHT => 1SSMCS7, VHT 2T => 2SSMCS7
-		 */
-
-		temp_pwrlmt =
-			rtlphy->txpwr_limit_5g[regulation][bw][rate_section]
-					      [channel][RF90_PATH_A];
-		txnum = IS_1T_RATESEC(rate_section) ? RF_1TX : RF_2TX;
-
-		if (temp_pwrlmt == MAX_POWER_INDEX)
-			continue;
-
-		for (rf_path = RF90_PATH_A; rf_path < MAX_RF_PATH_NUM;
-		     ++rf_path) {
-			bw40_pwr_base_dbm5G =
-				_rtl8822be_phy_get_txpower_by_rate_base(
-					hw, BAND_ON_5G, rf_path, txnum,
-					rate_section);
-
-			temp_value = temp_pwrlmt - bw40_pwr_base_dbm5G;
-			rtlphy->txpwr_limit_5g[regulation][bw][rate_section]
-					      [channel][rf_path] = temp_value;
-
-			RT_TRACE(
-				rtlpriv, COMP_INIT, DBG_TRACE,
-				"TxPwrLimit_5G[regulation %d][bw %d][rateSection %d][channel %d] =%d\n(TxPwrLimit in dBm %d - BW40PwrLmt5G[chnl group %d][rfPath %d] %d)\n",
-				regulation, bw, rate_section, channel,
-				rtlphy->txpwr_limit_5g[regulation][bw]
-						      [rate_section][channel]
-						      [rf_path],
-				temp_pwrlmt, channel, rf_path,
-				bw40_pwr_base_dbm5G);
-		}
-	}
-}
-
-static void
-_rtl8822be_phy_convert_txpower_limit_to_power_index(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 regulation, bw, channel;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "=====> %s()\n", __func__);
-
-	_rtl8822be_phy_cross_reference_ht_and_vht_txpower_limit(hw);
-
-	for (regulation = 0; regulation < MAX_REGULATION_NUM; ++regulation) {
-		for (bw = 0; bw < MAX_2_4G_BANDWIDTH_NUM; ++bw) {
-			for (channel = 0; channel < CHANNEL_MAX_NUMBER_2G;
-			     ++channel) {
-				__rtl8822be_txpwr_limit_to_index_2g(
-					hw, regulation, bw, channel);
-			}
-		}
-	}
-
-	for (regulation = 0; regulation < MAX_REGULATION_NUM; ++regulation) {
-		for (bw = 0; bw < MAX_5G_BANDWIDTH_NUM; ++bw) {
-			for (channel = 0; channel < CHANNEL_MAX_NUMBER_5G;
-			     ++channel) {
-				__rtl8822be_txpwr_limit_to_index_5g(
-					hw, regulation, bw, channel);
-			}
-		}
-	}
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "<===== %s()\n", __func__);
-}
-
-static void _rtl8822be_phy_init_txpower_limit(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 i, j, k, l, m;
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "=====> %s()!\n", __func__);
-
-	for (i = 0; i < MAX_REGULATION_NUM; ++i) {
-		for (j = 0; j < MAX_2_4G_BANDWIDTH_NUM; ++j)
-			for (k = 0; k < MAX_RATE_SECTION_NUM; ++k)
-				for (m = 0; m < CHANNEL_MAX_NUMBER_2G; ++m)
-					for (l = 0; l < MAX_RF_PATH_NUM; ++l)
-						rtlphy->txpwr_limit_2_4g[i][j]
-									[k][m]
-									[l] =
-							MAX_POWER_INDEX;
-	}
-	for (i = 0; i < MAX_REGULATION_NUM; ++i) {
-		for (j = 0; j < MAX_5G_BANDWIDTH_NUM; ++j)
-			for (k = 0; k < MAX_RATE_SECTION_NUM; ++k)
-				for (m = 0; m < CHANNEL_MAX_NUMBER_5G; ++m)
-					for (l = 0; l < MAX_RF_PATH_NUM; ++l)
-						rtlphy->txpwr_limit_5g[i][j][k]
-								      [m][l] =
-							MAX_POWER_INDEX;
-	}
-
-	RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "<===== %s()!\n", __func__);
-}
-
-static void
-_rtl8822be_phy_convert_txpower_dbm_to_relative_value(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-
-	u8 base = 0, i = 0, value = 0, band = 0, path = 0, txnum = 0;
-
-	for (band = BAND_ON_2_4G; band <= BAND_ON_5G; ++band) {
-		for (path = RF90_PATH_A; path <= RF90_PATH_B; ++path) {
-			for (txnum = RF_1TX; txnum <= RF_2TX; ++txnum) {
-				/* CCK */
-				base = rtlphy->tx_power_by_rate_offset
-					       [band][path][txnum]
-					       [DESC_RATE11M];
-				for (i = 0; i < sizeof(cck_rates); ++i) {
-					value = rtlphy->tx_power_by_rate_offset
-							[band][path][txnum]
-							[cck_rates[i]];
-					rtlphy->tx_power_by_rate_offset
-						[band][path][txnum]
-						[cck_rates[i]] = value - base;
-				}
-
-				/* OFDM */
-				base = rtlphy->tx_power_by_rate_offset
-					       [band][path][txnum]
-					       [DESC_RATE54M];
-				for (i = 0; i < sizeof(ofdm_rates); ++i) {
-					value = rtlphy->tx_power_by_rate_offset
-							[band][path][txnum]
-							[ofdm_rates[i]];
-					rtlphy->tx_power_by_rate_offset
-						[band][path][txnum]
-						[ofdm_rates[i]] = value - base;
-				}
-
-				/* HT MCS0~7 */
-				base = rtlphy->tx_power_by_rate_offset
-					       [band][path][txnum]
-					       [DESC_RATEMCS7];
-				for (i = 0; i < sizeof(ht_rates_1t); ++i) {
-					value = rtlphy->tx_power_by_rate_offset
-							[band][path][txnum]
-							[ht_rates_1t[i]];
-					rtlphy->tx_power_by_rate_offset
-						[band][path][txnum]
-						[ht_rates_1t[i]] = value - base;
-				}
-
-				/* HT MCS8~15 */
-				base = rtlphy->tx_power_by_rate_offset
-					       [band][path][txnum]
-					       [DESC_RATEMCS15];
-				for (i = 0; i < sizeof(ht_rates_2t); ++i) {
-					value = rtlphy->tx_power_by_rate_offset
-							[band][path][txnum]
-							[ht_rates_2t[i]];
-					rtlphy->tx_power_by_rate_offset
-						[band][path][txnum]
-						[ht_rates_2t[i]] = value - base;
-				}
-
-				/* VHT 1SS */
-				base = rtlphy->tx_power_by_rate_offset
-					       [band][path][txnum]
-					       [DESC_RATEVHT1SS_MCS7];
-				for (i = 0; i < sizeof(vht_rates_1t); ++i) {
-					value = rtlphy->tx_power_by_rate_offset
-							[band][path][txnum]
-							[vht_rates_1t[i]];
-					rtlphy->tx_power_by_rate_offset
-						[band][path][txnum]
-						[vht_rates_1t[i]] =
-						value - base;
-				}
-
-				/* VHT 2SS */
-				base = rtlphy->tx_power_by_rate_offset
-					       [band][path][txnum]
-					       [DESC_RATEVHT2SS_MCS7];
-				for (i = 0; i < sizeof(vht_rates_2t); ++i) {
-					value = rtlphy->tx_power_by_rate_offset
-							[band][path][txnum]
-							[vht_rates_2t[i]];
-					rtlphy->tx_power_by_rate_offset
-						[band][path][txnum]
-						[vht_rates_2t[i]] =
-						value - base;
-				}
-			}
-		}
-	}
-
-	RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE, "<===%s()\n", __func__);
-}
-
-static void
-_rtl8822be_phy_txpower_by_rate_configuration(struct ieee80211_hw *hw)
-{
-	/* copy rate_section from
-	 * tx_power_by_rate_offset[][rate] to txpwr_by_rate_base_24g/_5g[][rs]
-	 */
-	_rtl8822be_phy_store_txpower_by_rate_base(hw);
-
-	/* convert tx_power_by_rate_offset[] to relative value */
-	_rtl8822be_phy_convert_txpower_dbm_to_relative_value(hw);
-}
-
-/* string is in decimal */
-static bool _rtl8822be_get_integer_from_string(char *str, u8 *pint)
-{
-	u16 i = 0;
-	*pint = 0;
-
-	while (str[i] != '\0') {
-		if (str[i] >= '0' && str[i] <= '9') {
-			*pint *= 10;
-			*pint += (str[i] - '0');
-		} else {
-			return false;
-		}
-		++i;
-	}
-
-	return true;
-}
-
-static bool _rtl8822be_eq_n_byte(u8 *str1, u8 *str2, u32 num)
-{
-	if (num == 0)
-		return false;
-	while (num > 0) {
-		num--;
-		if (str1[num] != str2[num])
-			return false;
-	}
-	return true;
-}
-
-static char _rtl8822be_phy_get_chnl_idx_of_txpwr_lmt(struct ieee80211_hw *hw,
-						     u8 band, u8 channel)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	char channel_index = -1;
-	u8 i = 0;
-
-	if (band == BAND_ON_2_4G) {
-		channel_index = channel - 1;
-	} else if (band == BAND_ON_5G) {
-		for (i = 0; i < sizeof(rtl_channel5g) / sizeof(u8); ++i) {
-			if (rtl_channel5g[i] == channel)
-				channel_index = i;
-		}
-	} else {
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "Invalid Band %d in %s",
-			 band, __func__);
-	}
-
-	if (channel_index == -1)
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-			 "Invalid Channel %d of Band %d in %s", channel, band,
-			 __func__);
-
-	return channel_index;
-}
-
-void rtl8822be_phy_set_txpower_limit(struct ieee80211_hw *hw, u8 *pregulation,
-				     u8 *pband, u8 *pbandwidth,
-				     u8 *prate_section, u8 *prf_path,
-				     u8 *pchannel, u8 *ppower_limit)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 regulation = 0, bandwidth = 0, rate_section = 0, channel;
-	u8 channel_index;
-	char power_limit = 0, prev_power_limit, ret;
-
-	if (!_rtl8822be_get_integer_from_string((char *)pchannel, &channel) ||
-	    !_rtl8822be_get_integer_from_string((char *)ppower_limit,
-						&power_limit)) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-			 "Illegal index of pwr_lmt table [chnl %d][val %d]\n",
-			 channel, power_limit);
-	}
-
-	power_limit =
-		power_limit > MAX_POWER_INDEX ? MAX_POWER_INDEX : power_limit;
-
-	if (_rtl8822be_eq_n_byte(pregulation, (u8 *)("FCC"), 3))
-		regulation = 0;
-	else if (_rtl8822be_eq_n_byte(pregulation, (u8 *)("MKK"), 3))
-		regulation = 1;
-	else if (_rtl8822be_eq_n_byte(pregulation, (u8 *)("ETSI"), 4))
-		regulation = 2;
-	else if (_rtl8822be_eq_n_byte(pregulation, (u8 *)("WW13"), 4))
-		regulation = 3;
-
-	if (_rtl8822be_eq_n_byte(prate_section, (u8 *)("CCK"), 3))
-		rate_section = CCK;
-	else if (_rtl8822be_eq_n_byte(prate_section, (u8 *)("OFDM"), 4))
-		rate_section = OFDM;
-	else if (_rtl8822be_eq_n_byte(prate_section, (u8 *)("HT"), 2) &&
-		 _rtl8822be_eq_n_byte(prf_path, (u8 *)("1T"), 2))
-		rate_section = HT_MCS0_MCS7;
-	else if (_rtl8822be_eq_n_byte(prate_section, (u8 *)("HT"), 2) &&
-		 _rtl8822be_eq_n_byte(prf_path, (u8 *)("2T"), 2))
-		rate_section = HT_MCS8_MCS15;
-	else if (_rtl8822be_eq_n_byte(prate_section, (u8 *)("VHT"), 3) &&
-		 _rtl8822be_eq_n_byte(prf_path, (u8 *)("1T"), 2))
-		rate_section = VHT_1SSMCS0_1SSMCS9;
-	else if (_rtl8822be_eq_n_byte(prate_section, (u8 *)("VHT"), 3) &&
-		 _rtl8822be_eq_n_byte(prf_path, (u8 *)("2T"), 2))
-		rate_section = VHT_2SSMCS0_2SSMCS9;
-
-	if (_rtl8822be_eq_n_byte(pbandwidth, (u8 *)("20M"), 3))
-		bandwidth = HT_CHANNEL_WIDTH_20;
-	else if (_rtl8822be_eq_n_byte(pbandwidth, (u8 *)("40M"), 3))
-		bandwidth = HT_CHANNEL_WIDTH_20_40;
-	else if (_rtl8822be_eq_n_byte(pbandwidth, (u8 *)("80M"), 3))
-		bandwidth = HT_CHANNEL_WIDTH_80;
-	else if (_rtl8822be_eq_n_byte(pbandwidth, (u8 *)("160M"), 4))
-		bandwidth = 3;
-
-	if (_rtl8822be_eq_n_byte(pband, (u8 *)("2.4G"), 4)) {
-		ret = _rtl8822be_phy_get_chnl_idx_of_txpwr_lmt(hw, BAND_ON_2_4G,
-							       channel);
-
-		if (ret == -1)
-			return;
-
-		channel_index = ret;
-
-		prev_power_limit =
-			rtlphy->txpwr_limit_2_4g[regulation][bandwidth]
-						[rate_section][channel_index]
-						[RF90_PATH_A];
-
-		if (power_limit < prev_power_limit)
-			rtlphy->txpwr_limit_2_4g[regulation][bandwidth]
-						[rate_section][channel_index]
-						[RF90_PATH_A] = power_limit;
-
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-			 "2.4G [regula %d][bw %d][sec %d][chnl %d][val %d]\n",
-			 regulation, bandwidth, rate_section, channel_index,
-			 rtlphy->txpwr_limit_2_4g[regulation][bandwidth]
-						 [rate_section][channel_index]
-						 [RF90_PATH_A]);
-	} else if (_rtl8822be_eq_n_byte(pband, (u8 *)("5G"), 2)) {
-		ret = _rtl8822be_phy_get_chnl_idx_of_txpwr_lmt(hw, BAND_ON_5G,
-							       channel);
-
-		if (ret == -1)
-			return;
-
-		channel_index = ret;
-
-		prev_power_limit =
-			rtlphy->txpwr_limit_5g[regulation][bandwidth]
-					      [rate_section][channel_index]
-					      [RF90_PATH_A];
-
-		if (power_limit < prev_power_limit)
-			rtlphy->txpwr_limit_5g[regulation][bandwidth]
-					      [rate_section][channel_index]
-					      [RF90_PATH_A] = power_limit;
-
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-			 "5G: [regul %d][bw %d][sec %d][chnl %d][val %d]\n",
-			 regulation, bandwidth, rate_section, channel,
-			 rtlphy->txpwr_limit_5g[regulation][bandwidth]
-					       [rate_section][channel_index]
-					       [RF90_PATH_A]);
-
-	} else {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-			 "Cannot recognize the band info in %s\n", pband);
-		return;
-	}
-}
-
-bool rtl8822be_load_txpower_by_rate(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	bool rtstatus = true;
-
-	_rtl8822be_phy_init_tx_power_by_rate(hw);
-
-	rtstatus = rtlpriv->phydm.ops->phydm_load_txpower_by_rate(rtlpriv);
-
-	if (!rtstatus) {
-		pr_err("BB_PG Reg Fail!!\n");
-		return false;
-	}
-
-	_rtl8822be_phy_txpower_by_rate_configuration(hw);
-
-	return true;
-}
-
-bool rtl8822be_load_txpower_limit(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtlpriv);
-	bool rtstatus = true;
-
-	_rtl8822be_phy_init_txpower_limit(hw);
-
-	if (rtlefuse->eeprom_regulatory == 1)
-		;
-	else
-		return true;
-
-	rtstatus = rtlpriv->phydm.ops->phydm_load_txpower_limit(rtlpriv);
-
-	if (!rtstatus) {
-		pr_err("RF TxPwr Limit Fail!!\n");
-		return false;
-	}
-
-	_rtl8822be_phy_convert_txpower_limit_to_power_index(hw);
-
-	return true;
-}
-
-static void _rtl8822be_get_rate_values_of_tx_power_by_rate(
-	struct ieee80211_hw *hw, u32 reg_addr, u32 bit_mask, u32 value,
-	u8 *rate, s8 *pwr_by_rate_val, u8 *rate_num)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 /*index = 0,*/ i = 0;
-
-	switch (reg_addr) {
-	case 0xE00: /*rTxAGC_A_Rate18_06:*/
-	case 0x830: /*rTxAGC_B_Rate18_06:*/
-		rate[0] = DESC_RATE6M;
-		rate[1] = DESC_RATE9M;
-		rate[2] = DESC_RATE12M;
-		rate[3] = DESC_RATE18M;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xE04: /*rTxAGC_A_Rate54_24:*/
-	case 0x834: /*rTxAGC_B_Rate54_24:*/
-		rate[0] = DESC_RATE24M;
-		rate[1] = DESC_RATE36M;
-		rate[2] = DESC_RATE48M;
-		rate[3] = DESC_RATE54M;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xE08: /*rTxAGC_A_CCK1_Mcs32:*/
-		rate[0] = DESC_RATE1M;
-		pwr_by_rate_val[0] = (s8)((((value >> (8 + 4)) & 0xF)) * 10 +
-					  ((value >> 8) & 0xF));
-		*rate_num = 1;
-		break;
-
-	case 0x86C: /*rTxAGC_B_CCK11_A_CCK2_11:*/
-		if (bit_mask == 0xffffff00) {
-			rate[0] = DESC_RATE2M;
-			rate[1] = DESC_RATE5_5M;
-			rate[2] = DESC_RATE11M;
-			for (i = 1; i < 4; ++i) {
-				pwr_by_rate_val[i - 1] = (s8)(
-					(((value >> (i * 8 + 4)) & 0xF)) * 10 +
-					((value >> (i * 8)) & 0xF));
-			}
-			*rate_num = 3;
-		} else if (bit_mask == 0x000000ff) {
-			rate[0] = DESC_RATE11M;
-			pwr_by_rate_val[0] = (s8)((((value >> 4) & 0xF)) * 10 +
-						  (value & 0xF));
-			*rate_num = 1;
-		}
-		break;
-
-	case 0xE10: /*rTxAGC_A_Mcs03_Mcs00:*/
-	case 0x83C: /*rTxAGC_B_Mcs03_Mcs00:*/
-		rate[0] = DESC_RATEMCS0;
-		rate[1] = DESC_RATEMCS1;
-		rate[2] = DESC_RATEMCS2;
-		rate[3] = DESC_RATEMCS3;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xE14: /*rTxAGC_A_Mcs07_Mcs04:*/
-	case 0x848: /*rTxAGC_B_Mcs07_Mcs04:*/
-		rate[0] = DESC_RATEMCS4;
-		rate[1] = DESC_RATEMCS5;
-		rate[2] = DESC_RATEMCS6;
-		rate[3] = DESC_RATEMCS7;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xE18: /*rTxAGC_A_Mcs11_Mcs08:*/
-	case 0x84C: /*rTxAGC_B_Mcs11_Mcs08:*/
-		rate[0] = DESC_RATEMCS8;
-		rate[1] = DESC_RATEMCS9;
-		rate[2] = DESC_RATEMCS10;
-		rate[3] = DESC_RATEMCS11;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xE1C: /*rTxAGC_A_Mcs15_Mcs12:*/
-	case 0x868: /*rTxAGC_B_Mcs15_Mcs12:*/
-		rate[0] = DESC_RATEMCS12;
-		rate[1] = DESC_RATEMCS13;
-		rate[2] = DESC_RATEMCS14;
-		rate[3] = DESC_RATEMCS15;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-
-		break;
-
-	case 0x838: /*rTxAGC_B_CCK1_55_Mcs32:*/
-		rate[0] = DESC_RATE1M;
-		rate[1] = DESC_RATE2M;
-		rate[2] = DESC_RATE5_5M;
-		for (i = 1; i < 4; ++i) {
-			pwr_by_rate_val[i - 1] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 3;
-		break;
-
-	case 0xC20:
-	case 0xE20:
-	case 0x1820:
-	case 0x1a20:
-		rate[0] = DESC_RATE1M;
-		rate[1] = DESC_RATE2M;
-		rate[2] = DESC_RATE5_5M;
-		rate[3] = DESC_RATE11M;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC24:
-	case 0xE24:
-	case 0x1824:
-	case 0x1a24:
-		rate[0] = DESC_RATE6M;
-		rate[1] = DESC_RATE9M;
-		rate[2] = DESC_RATE12M;
-		rate[3] = DESC_RATE18M;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC28:
-	case 0xE28:
-	case 0x1828:
-	case 0x1a28:
-		rate[0] = DESC_RATE24M;
-		rate[1] = DESC_RATE36M;
-		rate[2] = DESC_RATE48M;
-		rate[3] = DESC_RATE54M;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC2C:
-	case 0xE2C:
-	case 0x182C:
-	case 0x1a2C:
-		rate[0] = DESC_RATEMCS0;
-		rate[1] = DESC_RATEMCS1;
-		rate[2] = DESC_RATEMCS2;
-		rate[3] = DESC_RATEMCS3;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC30:
-	case 0xE30:
-	case 0x1830:
-	case 0x1a30:
-		rate[0] = DESC_RATEMCS4;
-		rate[1] = DESC_RATEMCS5;
-		rate[2] = DESC_RATEMCS6;
-		rate[3] = DESC_RATEMCS7;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC34:
-	case 0xE34:
-	case 0x1834:
-	case 0x1a34:
-		rate[0] = DESC_RATEMCS8;
-		rate[1] = DESC_RATEMCS9;
-		rate[2] = DESC_RATEMCS10;
-		rate[3] = DESC_RATEMCS11;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC38:
-	case 0xE38:
-	case 0x1838:
-	case 0x1a38:
-		rate[0] = DESC_RATEMCS12;
-		rate[1] = DESC_RATEMCS13;
-		rate[2] = DESC_RATEMCS14;
-		rate[3] = DESC_RATEMCS15;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC3C:
-	case 0xE3C:
-	case 0x183C:
-	case 0x1a3C:
-		rate[0] = DESC_RATEVHT1SS_MCS0;
-		rate[1] = DESC_RATEVHT1SS_MCS1;
-		rate[2] = DESC_RATEVHT1SS_MCS2;
-		rate[3] = DESC_RATEVHT1SS_MCS3;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC40:
-	case 0xE40:
-	case 0x1840:
-	case 0x1a40:
-		rate[0] = DESC_RATEVHT1SS_MCS4;
-		rate[1] = DESC_RATEVHT1SS_MCS5;
-		rate[2] = DESC_RATEVHT1SS_MCS6;
-		rate[3] = DESC_RATEVHT1SS_MCS7;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC44:
-	case 0xE44:
-	case 0x1844:
-	case 0x1a44:
-		rate[0] = DESC_RATEVHT1SS_MCS8;
-		rate[1] = DESC_RATEVHT1SS_MCS9;
-		rate[2] = DESC_RATEVHT2SS_MCS0;
-		rate[3] = DESC_RATEVHT2SS_MCS1;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC48:
-	case 0xE48:
-	case 0x1848:
-	case 0x1a48:
-		rate[0] = DESC_RATEVHT2SS_MCS2;
-		rate[1] = DESC_RATEVHT2SS_MCS3;
-		rate[2] = DESC_RATEVHT2SS_MCS4;
-		rate[3] = DESC_RATEVHT2SS_MCS5;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	case 0xC4C:
-	case 0xE4C:
-	case 0x184C:
-	case 0x1a4C:
-		rate[0] = DESC_RATEVHT2SS_MCS6;
-		rate[1] = DESC_RATEVHT2SS_MCS7;
-		rate[2] = DESC_RATEVHT2SS_MCS8;
-		rate[3] = DESC_RATEVHT2SS_MCS9;
-		for (i = 0; i < 4; ++i) {
-			pwr_by_rate_val[i] =
-				(s8)((((value >> (i * 8 + 4)) & 0xF)) * 10 +
-				     ((value >> (i * 8)) & 0xF));
-		}
-		*rate_num = 4;
-		break;
-
-	default:
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-			 "Invalid reg_addr 0x%x in %s()\n", reg_addr, __func__);
-		break;
-	}
-}
-
-void rtl8822be_store_tx_power_by_rate(struct ieee80211_hw *hw, u32 band,
-				      u32 rfpath, u32 txnum, u32 regaddr,
-				      u32 bitmask, u32 data)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 i = 0, rates[4] = {0}, rate_num = 0;
-	s8 pwr_by_rate_val[4] = {0};
-
-	_rtl8822be_get_rate_values_of_tx_power_by_rate(
-		hw, regaddr, bitmask, data, rates, pwr_by_rate_val, &rate_num);
-
-	if (band != BAND_ON_2_4G && band != BAND_ON_5G) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_WARNING, "Invalid Band %d\n",
-			 band);
-		band = BAND_ON_2_4G;
-	}
-	if (rfpath >= MAX_RF_PATH) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_WARNING, "Invalid RfPath %d\n",
-			 rfpath);
-		rfpath = MAX_RF_PATH - 1;
-	}
-	if (txnum >= MAX_RF_PATH) {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_WARNING, "Invalid TxNum %d\n",
-			 txnum);
-		txnum = MAX_RF_PATH - 1;
-	}
-
-	for (i = 0; i < rate_num; ++i) {
-		u8 rate_idx = rates[i];
-
-		if (IS_1T_RATE(rates[i]))
-			txnum = RF_1TX;
-		else if (IS_2T_RATE(rates[i]))
-			txnum = RF_2TX;
-		else
-			WARN_ON(1);
-
-		rtlphy->tx_power_by_rate_offset[band][rfpath][txnum][rate_idx] =
-			pwr_by_rate_val[i];
-
-		RT_TRACE(
-			rtlpriv, COMP_INIT, DBG_LOUD,
-			"TxPwrByRateOffset[Band %d][RfPath %d][TxNum %d][rate_idx %d] = 0x%x\n",
-			band, rfpath, txnum, rate_idx,
-			rtlphy->tx_power_by_rate_offset[band][rfpath][txnum]
-						       [rate_idx]);
-	}
-}
-
-static void
-_rtl8822be_phy_init_bb_rf_register_definition(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-
-	rtlphy->phyreg_def[RF90_PATH_A].rfintfs = RFPGA0_XAB_RFINTERFACESW;
-	rtlphy->phyreg_def[RF90_PATH_B].rfintfs = RFPGA0_XAB_RFINTERFACESW;
-
-	rtlphy->phyreg_def[RF90_PATH_A].rfintfo = RFPGA0_XA_RFINTERFACEOE;
-	rtlphy->phyreg_def[RF90_PATH_B].rfintfo = RFPGA0_XB_RFINTERFACEOE;
-
-	rtlphy->phyreg_def[RF90_PATH_A].rfintfe = RFPGA0_XA_RFINTERFACEOE;
-	rtlphy->phyreg_def[RF90_PATH_B].rfintfe = RFPGA0_XB_RFINTERFACEOE;
-
-	rtlphy->phyreg_def[RF90_PATH_A].rf3wire_offset = RA_LSSIWRITE_8822B;
-	rtlphy->phyreg_def[RF90_PATH_B].rf3wire_offset = RB_LSSIWRITE_8822B;
-
-	rtlphy->phyreg_def[RF90_PATH_A].rfhssi_para2 = RHSSIREAD_8822BE;
-	rtlphy->phyreg_def[RF90_PATH_B].rfhssi_para2 = RHSSIREAD_8822BE;
-
-	rtlphy->phyreg_def[RF90_PATH_A].rf_rb = RA_SIREAD_8822B;
-	rtlphy->phyreg_def[RF90_PATH_B].rf_rb = RB_SIREAD_8822B;
-
-	rtlphy->phyreg_def[RF90_PATH_A].rf_rbpi = RA_PIREAD_8822B;
-	rtlphy->phyreg_def[RF90_PATH_B].rf_rbpi = RB_PIREAD_8822B;
-}
-
-void rtl8822be_phy_get_txpower_level(struct ieee80211_hw *hw, long *powerlevel)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 txpwr_level;
-	long txpwr_dbm;
-
-	txpwr_level = rtlphy->cur_cck_txpwridx;
-	txpwr_dbm = _rtl8822be_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_B,
-						    txpwr_level);
-	txpwr_level = rtlphy->cur_ofdm24g_txpwridx;
-	if (_rtl8822be_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_G, txpwr_level) >
-	    txpwr_dbm)
-		txpwr_dbm = _rtl8822be_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_G,
-							    txpwr_level);
-	txpwr_level = rtlphy->cur_ofdm24g_txpwridx;
-	if (_rtl8822be_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_N_24G,
-					    txpwr_level) > txpwr_dbm)
-		txpwr_dbm = _rtl8822be_phy_txpwr_idx_to_dbm(
-			hw, WIRELESS_MODE_N_24G, txpwr_level);
-	*powerlevel = txpwr_dbm;
-}
-
-static bool _rtl8822be_phy_get_chnl_index(u8 channel, u8 *chnl_index)
-{
-	u8 rtl_channel5g[CHANNEL_MAX_NUMBER_5G] = {
-		36,  38,  40,  42,  44,  46,  48, /* Band 1 */
-		52,  54,  56,  58,  60,  62,  64, /* Band 2 */
-		100, 102, 104, 106, 108, 110, 112, /* Band 3 */
-		116, 118, 120, 122, 124, 126, 128, /* Band 3 */
-		132, 134, 136, 138, 140, 142, 144, /* Band 3 */
-		149, 151, 153, 155, 157, 159, 161, /* Band 4 */
-		165, 167, 169, 171, 173, 175, 177}; /* Band 4 */
-	u8 i = 0;
-	bool in_24g = true;
-
-	if (channel <= 14) {
-		in_24g = true;
-		*chnl_index = channel - 1;
-	} else {
-		in_24g = false;
-
-		for (i = 0; i < CHANNEL_MAX_NUMBER_5G; ++i) {
-			if (rtl_channel5g[i] == channel) {
-				*chnl_index = i;
-				return in_24g;
-			}
-		}
-	}
-	return in_24g;
-}
-
-static char _rtl8822be_phy_get_world_wide_limit(char *limit_table)
-{
-	char min = limit_table[0];
-	u8 i = 0;
-
-	for (i = 0; i < MAX_REGULATION_NUM; ++i) {
-		if (limit_table[i] < min)
-			min = limit_table[i];
-	}
-	return min;
-}
-
-static char _rtl8822be_phy_get_txpower_limit(struct ieee80211_hw *hw, u8 band,
-					     enum ht_channel_width bandwidth,
-					     enum radio_path rf_path, u8 rate,
-					     u8 channel)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtlpriv);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	short regulation = -1, rate_section = -1, channel_index = -1;
-	char power_limit = MAX_POWER_INDEX;
-
-	if (rtlefuse->eeprom_regulatory == 2)
-		return MAX_POWER_INDEX;
-
-	regulation = TXPWR_LMT_WW;
-
-	switch (rate) {
-	case DESC_RATE1M:
-	case DESC_RATE2M:
-	case DESC_RATE5_5M:
-	case DESC_RATE11M:
-		rate_section = CCK;
-		break;
-
-	case DESC_RATE6M:
-	case DESC_RATE9M:
-	case DESC_RATE12M:
-	case DESC_RATE18M:
-	case DESC_RATE24M:
-	case DESC_RATE36M:
-	case DESC_RATE48M:
-	case DESC_RATE54M:
-		rate_section = OFDM;
-		break;
-
-	case DESC_RATEMCS0:
-	case DESC_RATEMCS1:
-	case DESC_RATEMCS2:
-	case DESC_RATEMCS3:
-	case DESC_RATEMCS4:
-	case DESC_RATEMCS5:
-	case DESC_RATEMCS6:
-	case DESC_RATEMCS7:
-		rate_section = HT_MCS0_MCS7;
-		break;
-
-	case DESC_RATEMCS8:
-	case DESC_RATEMCS9:
-	case DESC_RATEMCS10:
-	case DESC_RATEMCS11:
-	case DESC_RATEMCS12:
-	case DESC_RATEMCS13:
-	case DESC_RATEMCS14:
-	case DESC_RATEMCS15:
-		rate_section = HT_MCS8_MCS15;
-		break;
-
-	case DESC_RATEVHT1SS_MCS0:
-	case DESC_RATEVHT1SS_MCS1:
-	case DESC_RATEVHT1SS_MCS2:
-	case DESC_RATEVHT1SS_MCS3:
-	case DESC_RATEVHT1SS_MCS4:
-	case DESC_RATEVHT1SS_MCS5:
-	case DESC_RATEVHT1SS_MCS6:
-	case DESC_RATEVHT1SS_MCS7:
-	case DESC_RATEVHT1SS_MCS8:
-	case DESC_RATEVHT1SS_MCS9:
-		rate_section = VHT_1SSMCS0_1SSMCS9;
-		break;
-
-	case DESC_RATEVHT2SS_MCS0:
-	case DESC_RATEVHT2SS_MCS1:
-	case DESC_RATEVHT2SS_MCS2:
-	case DESC_RATEVHT2SS_MCS3:
-	case DESC_RATEVHT2SS_MCS4:
-	case DESC_RATEVHT2SS_MCS5:
-	case DESC_RATEVHT2SS_MCS6:
-	case DESC_RATEVHT2SS_MCS7:
-	case DESC_RATEVHT2SS_MCS8:
-	case DESC_RATEVHT2SS_MCS9:
-		rate_section = VHT_2SSMCS0_2SSMCS9;
-		break;
-
-	default:
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "Wrong rate 0x%x\n",
-			 rate);
-		break;
-	}
-
-	if (band == BAND_ON_5G && rate_section == 0)
-		RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-			 "Wrong rate 0x%x: No CCK in 5G Band\n", rate);
-
-	/* workaround for wrong index combination to obtain tx power limit,
-	 * OFDM only exists in BW 20M
-	 */
-	if (rate_section == 1)
-		bandwidth = 0;
-
-	/* workaround for wrong index combination to obtain tx power limit,
-	 * CCK table will only be given in BW 20M
-	 */
-	if (rate_section == 0)
-		bandwidth = 0;
-
-	/* workaround for wrong indxe combination to obtain tx power limit,
-	 * HT on 80M will reference to HT on 40M
-	 */
-	if ((rate_section == 2 || rate_section == 3) && band == BAND_ON_5G &&
-	    bandwidth == 2)
-		bandwidth = 1;
-
-	if (band == BAND_ON_2_4G)
-		channel_index = _rtl8822be_phy_get_chnl_idx_of_txpwr_lmt(
-			hw, BAND_ON_2_4G, channel);
-	else if (band == BAND_ON_5G)
-		channel_index = _rtl8822be_phy_get_chnl_idx_of_txpwr_lmt(
-			hw, BAND_ON_5G, channel);
-	else if (band == BAND_ON_BOTH)
-		; /* BAND_ON_BOTH don't care temporarily */
-
-	if (band >= BANDMAX || regulation == -1 || bandwidth == -1 ||
-	    rate_section == -1 || channel_index == -1) {
-		RT_TRACE(
-			rtlpriv, COMP_POWER, DBG_LOUD,
-			"Wrong index value to access power limit table [band %d][regulation %d][bandwidth %d][rf_path %d][rate_section %d][chnl %d]\n",
-			band, regulation, bandwidth, rf_path, rate_section,
-			channel_index);
-		return MAX_POWER_INDEX;
-	}
-
-	if (band == BAND_ON_2_4G) {
-		char limits[10] = {0};
-		u8 i = 0;
-
-		for (i = 0; i < 4; ++i)
-			limits[i] = rtlphy->txpwr_limit_2_4g[i][bandwidth]
-							    [rate_section]
-							    [channel_index]
-							    [rf_path];
-
-		power_limit =
-			(regulation == TXPWR_LMT_WW) ?
-				_rtl8822be_phy_get_world_wide_limit(limits) :
-				rtlphy->txpwr_limit_2_4g[regulation][bandwidth]
-							[rate_section]
-							[channel_index]
-							[rf_path];
-
-	} else if (band == BAND_ON_5G) {
-		char limits[10] = {0};
-		u8 i = 0;
-
-		for (i = 0; i < MAX_REGULATION_NUM; ++i)
-			limits[i] =
-				rtlphy->txpwr_limit_5g[i][bandwidth]
-						      [rate_section]
-						      [channel_index][rf_path];
-
-		power_limit =
-			(regulation == TXPWR_LMT_WW) ?
-				_rtl8822be_phy_get_world_wide_limit(limits) :
-				rtlphy->txpwr_limit_5g[regulation]
-						      [channel_index]
-						      [rate_section]
-						      [channel_index][rf_path];
-	} else {
-		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-			 "No power limit table of the specified band\n");
-	}
-
-	return power_limit;
-}
-
-static char
-_rtl8822be_phy_get_txpower_by_rate(struct ieee80211_hw *hw, u8 band, u8 path,
-				   u8 rate /* enum rtl_desc8822b_rate */)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 tx_num;
-	char tx_pwr_diff = 0;
-
-	if (band != BAND_ON_2_4G && band != BAND_ON_5G)
-		return tx_pwr_diff;
-
-	if (path > RF90_PATH_B)
-		return tx_pwr_diff;
-
-	if ((rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
-	    (rate >= DESC_RATEVHT2SS_MCS0 && rate <= DESC_RATEVHT2SS_MCS9))
-		tx_num = RF_2TX;
-	else
-		tx_num = RF_1TX;
-
-	return (char)(rtlphy->tx_power_by_rate_offset[band][path][tx_num]
-							    [rate] &
-			     0xff);
-}
-
-u8 rtl8822be_get_txpower_index(struct ieee80211_hw *hw, u8 path, u8 rate,
-			       u8 bandwidth, u8 channel)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
-	u8 index = (channel - 1);
-	u8 txpower = 0;
-	bool in_24g = false;
-	char limit;
-	char powerdiff_byrate = 0;
-
-	if ((rtlhal->current_bandtype == BAND_ON_2_4G &&
-	     (channel > 14 || channel < 1)) ||
-	    (rtlhal->current_bandtype == BAND_ON_5G && channel <= 14)) {
-		index = 0;
-		RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-			 "Illegal channel!!\n");
-	}
-
-	/* 1. base tx power */
-	in_24g = _rtl8822be_phy_get_chnl_index(channel, &index);
-	if (in_24g) {
-		if (RX_HAL_IS_CCK_RATE(rate))
-			txpower = rtlefuse->txpwrlevel_cck[path][index];
-		else if (rate >= DESC_RATE6M)
-			txpower = rtlefuse->txpwrlevel_ht40_1s[path][index];
-		else
-			RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-				 "invalid rate\n");
-
-		if (rate >= DESC_RATE6M && rate <= DESC_RATE54M &&
-		    !RX_HAL_IS_CCK_RATE(rate))
-			txpower += rtlefuse->txpwr_legacyhtdiff[path][TX_1S];
-
-		if (bandwidth == HT_CHANNEL_WIDTH_20) {
-			if ((rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT1SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower +=
-					rtlefuse->txpwr_ht20diff[path][TX_1S];
-			if ((rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT2SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower +=
-					rtlefuse->txpwr_ht20diff[path][TX_2S];
-		} else if (bandwidth == HT_CHANNEL_WIDTH_20_40) {
-			if ((rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT1SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower +=
-					rtlefuse->txpwr_ht40diff[path][TX_1S];
-			if ((rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT2SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower +=
-					rtlefuse->txpwr_ht40diff[path][TX_2S];
-		} else if (bandwidth == HT_CHANNEL_WIDTH_80) {
-			if ((rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT1SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower +=
-					rtlefuse->txpwr_ht40diff[path][TX_1S];
-			if ((rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT2SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower +=
-					rtlefuse->txpwr_ht40diff[path][TX_2S];
-		}
-
-	} else {
-		if (rate >= DESC_RATE6M)
-			txpower = rtlefuse->txpwr_5g_bw40base[path][index];
-		else
-			RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_WARNING,
-				 "INVALID Rate.\n");
-
-		if (rate >= DESC_RATE6M && rate <= DESC_RATE54M &&
-		    !RX_HAL_IS_CCK_RATE(rate))
-			txpower += rtlefuse->txpwr_5g_ofdmdiff[path][TX_1S];
-
-		if (bandwidth == HT_CHANNEL_WIDTH_20) {
-			if ((rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT1SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower += rtlefuse->txpwr_5g_bw20diff[path]
-								      [TX_1S];
-			if ((rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT2SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower += rtlefuse->txpwr_5g_bw20diff[path]
-								      [TX_2S];
-		} else if (bandwidth == HT_CHANNEL_WIDTH_20_40) {
-			if ((rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT1SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower += rtlefuse->txpwr_5g_bw40diff[path]
-								      [TX_1S];
-			if ((rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT2SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower += rtlefuse->txpwr_5g_bw40diff[path]
-								      [TX_2S];
-		} else if (bandwidth == HT_CHANNEL_WIDTH_80) {
-			u8 i = 0;
-
-			for (i = 0; i < sizeof(rtl_channel5g_80m) / sizeof(u8);
-			     ++i)
-				if (rtl_channel5g_80m[i] == channel)
-					index = i;
-
-			txpower = rtlefuse->txpwr_5g_bw80base[path][index];
-
-			if ((rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT1SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower += rtlefuse->txpwr_5g_bw80diff[path]
-								      [TX_1S];
-			if ((rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
-			    (rate >= DESC_RATEVHT2SS_MCS0 &&
-			     rate <= DESC_RATEVHT2SS_MCS9))
-				txpower += rtlefuse->txpwr_5g_bw80diff[path]
-								      [TX_2S];
-		}
-	}
-
-	/* 2. tx power by rate */
-	if (rtlefuse->eeprom_regulatory != 2)
-		powerdiff_byrate = _rtl8822be_phy_get_txpower_by_rate(
-			hw, (u8)(!in_24g), path, rate);
-
-	/* 3. tx power limit */
-	if (rtlefuse->eeprom_regulatory == 1)
-		limit = _rtl8822be_phy_get_txpower_limit(
-			hw, (u8)(!in_24g), bandwidth, path, rate,
-			channel);
-	else
-		limit = MAX_POWER_INDEX;
-
-	/* ----- */
-	powerdiff_byrate = powerdiff_byrate > limit ? limit : powerdiff_byrate;
-
-	txpower += powerdiff_byrate;
-
-	if (txpower > MAX_POWER_INDEX)
-		txpower = MAX_POWER_INDEX;
-
-	return txpower;
-}
-
-static void _rtl8822be_phy_set_txpower_index(struct ieee80211_hw *hw,
-					     u8 power_index, u8 path, u8 rate)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 shift = 0;
-	static u32 index;
-
-	/*
-	 * For 8822B, phydm api use 4 bytes txagc value driver must
-	 * combine every four 1 byte to one 4 byte and send to phydm
-	 */
-	shift = rate & 0x03;
-	index |= ((u32)power_index << (shift * 8));
-
-	if (shift == 3) {
-		rate = rate - 3;
-
-		if (!rtlpriv->phydm.ops->phydm_write_txagc(rtlpriv, index, path,
-							   rate)) {
-			RT_TRACE(rtlpriv, COMP_TXAGC, DBG_LOUD,
-				 "%s(index:%d, rfpath:%d, rate:0x%02x) fail\n",
-				 __func__, index, path, rate);
-
-			WARN_ON(1);
-		}
-		index = 0;
-	}
-}
-
-static void _rtl8822be_phy_set_txpower_level_by_path(struct ieee80211_hw *hw,
-						     u8 *array, u8 path,
-						     u8 channel, u8 size)
-{
-	struct rtl_phy *rtlphy = &(rtl_priv(hw)->phy);
-	u8 i;
-	u8 power_index;
-
-	for (i = 0; i < size; i++) {
-		power_index = rtl8822be_get_txpower_index(
-			hw, path, array[i], rtlphy->current_chan_bw, channel);
-		_rtl8822be_phy_set_txpower_index(hw, power_index, path,
-						 array[i]);
-	}
-}
-
-void rtl8822be_phy_set_txpower_level_by_path(struct ieee80211_hw *hw,
-					     u8 channel, u8 path)
-{
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-
-	/*
-	 * Below order is *VERY* important!
-	 * Because _rtl8822be_phy_set_txpower_index() do actually writing
-	 * every four power values.
-	 */
-	if (rtlhal->current_bandtype == BAND_ON_2_4G)
-		_rtl8822be_phy_set_txpower_level_by_path(
-			hw, cck_rates, path, channel, sizes_of_cck_retes);
-	_rtl8822be_phy_set_txpower_level_by_path(hw, ofdm_rates, path, channel,
-						 sizes_of_ofdm_retes);
-	_rtl8822be_phy_set_txpower_level_by_path(hw, ht_rates_1t, path, channel,
-						 sizes_of_ht_retes_1t);
-	_rtl8822be_phy_set_txpower_level_by_path(hw, ht_rates_2t, path, channel,
-						 sizes_of_ht_retes_2t);
-	_rtl8822be_phy_set_txpower_level_by_path(hw, vht_rates_1t, path,
-						 channel, sizes_of_vht_retes);
-	_rtl8822be_phy_set_txpower_level_by_path(hw, vht_rates_2t, path,
-						 channel, sizes_of_vht_retes);
-}
-
-void rtl8822be_phy_set_tx_power_index_by_rs(struct ieee80211_hw *hw, u8 channel,
-					    u8 path, enum rate_section rs)
-{
-	struct {
-		u8 *array;
-		u8 size;
-	} rs_ref[MAX_RATE_SECTION] = {
-		{cck_rates, sizes_of_cck_retes},
-		{ofdm_rates, sizes_of_ofdm_retes},
-		{ht_rates_1t, sizes_of_ht_retes_1t},
-		{ht_rates_2t, sizes_of_ht_retes_2t},
-		{vht_rates_1t, sizes_of_vht_retes},
-		{vht_rates_2t, sizes_of_vht_retes},
-	};
-
-	if (rs >= MAX_RATE_SECTION)
-		return;
-
-	_rtl8822be_phy_set_txpower_level_by_path(hw, rs_ref[rs].array, path,
-						 channel, rs_ref[rs].size);
-}
-
-void rtl8822be_phy_set_txpower_level(struct ieee80211_hw *hw, u8 channel)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 path = 0;
-
-	for (path = RF90_PATH_A; path < rtlphy->num_total_rfpath; ++path)
-		rtl8822be_phy_set_txpower_level_by_path(hw, channel, path);
-}
-
-static long _rtl8822be_phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw,
-					    enum wireless_mode wirelessmode,
-					    u8 txpwridx)
-{
-	long offset;
-
-	switch (wirelessmode) {
-	case WIRELESS_MODE_B:
-		offset = -7;
-		break;
-	case WIRELESS_MODE_G:
-	case WIRELESS_MODE_N_24G:
-		offset = -8;
-		break;
-	default:
-		offset = -8;
-		break;
-	}
-	return txpwridx / 2 + offset;
-}
-
-void rtl8822be_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	enum io_type iotype = IO_CMD_PAUSE_BAND0_DM_BY_SCAN;
-
-	if (!is_hal_stop(rtlhal)) {
-		switch (operation) {
-		case SCAN_OPT_BACKUP_BAND0:
-			iotype = IO_CMD_PAUSE_BAND0_DM_BY_SCAN;
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_IO_CMD,
-						      (u8 *)&iotype);
-
-			break;
-		case SCAN_OPT_BACKUP_BAND1:
-			iotype = IO_CMD_PAUSE_BAND1_DM_BY_SCAN;
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_IO_CMD,
-						      (u8 *)&iotype);
-
-			break;
-		case SCAN_OPT_RESTORE:
-			iotype = IO_CMD_RESUME_DM_BY_SCAN;
-			rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_IO_CMD,
-						      (u8 *)&iotype);
-			break;
-		default:
-			pr_err("Unknown Scan Backup operation.\n");
-			break;
-		}
-	}
-}
-
-static u8 _rtl8822be_phy_get_pri_ch_id(struct rtl_priv *rtlpriv)
-{
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	u8 pri_ch_idx = 0;
-
-	if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) {
-		/* primary channel is at lower subband of 80MHz & 40MHz */
-		if (mac->cur_40_prime_sc == HAL_PRIME_CHNL_OFFSET_LOWER &&
-		    mac->cur_80_prime_sc == HAL_PRIME_CHNL_OFFSET_LOWER) {
-			pri_ch_idx = VHT_DATA_SC_20_LOWEST_OF_80MHZ;
-		/* primary channel is at
-		 * lower subband of 80MHz & upper subband of 40MHz
-		 */
-		} else if ((mac->cur_40_prime_sc ==
-			    HAL_PRIME_CHNL_OFFSET_UPPER) &&
-			   (mac->cur_80_prime_sc ==
-			    HAL_PRIME_CHNL_OFFSET_LOWER)) {
-			pri_ch_idx = VHT_DATA_SC_20_LOWER_OF_80MHZ;
-		/* primary channel is at
-		 * upper subband of 80MHz & lower subband of 40MHz
-		 */
-		} else if ((mac->cur_40_prime_sc ==
-			  HAL_PRIME_CHNL_OFFSET_LOWER) &&
-			 (mac->cur_80_prime_sc ==
-			  HAL_PRIME_CHNL_OFFSET_UPPER)) {
-			pri_ch_idx = VHT_DATA_SC_20_UPPER_OF_80MHZ;
-		/* primary channel is at
-		 * upper subband of 80MHz & upper subband of 40MHz
-		 */
-		} else if ((mac->cur_40_prime_sc ==
-			    HAL_PRIME_CHNL_OFFSET_UPPER) &&
-			   (mac->cur_80_prime_sc ==
-			    HAL_PRIME_CHNL_OFFSET_UPPER)) {
-			pri_ch_idx = VHT_DATA_SC_20_UPPERST_OF_80MHZ;
-		} else {
-			if (mac->cur_80_prime_sc == HAL_PRIME_CHNL_OFFSET_LOWER)
-				pri_ch_idx = VHT_DATA_SC_40_LOWER_OF_80MHZ;
-			else if (mac->cur_80_prime_sc ==
-				 HAL_PRIME_CHNL_OFFSET_UPPER)
-				pri_ch_idx = VHT_DATA_SC_40_UPPER_OF_80MHZ;
-		}
-	} else if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) {
-		/* primary channel is at upper subband of 40MHz */
-		if (mac->cur_40_prime_sc == HAL_PRIME_CHNL_OFFSET_UPPER)
-			pri_ch_idx = VHT_DATA_SC_20_UPPER_OF_80MHZ;
-		/* primary channel is at lower subband of 40MHz */
-		else if (mac->cur_40_prime_sc == HAL_PRIME_CHNL_OFFSET_LOWER)
-			pri_ch_idx = VHT_DATA_SC_20_LOWER_OF_80MHZ;
-		else
-			;
-	}
-
-	return pri_ch_idx;
-}
-
-void rtl8822be_phy_set_bw_mode(struct ieee80211_hw *hw,
-			       enum nl80211_channel_type ch_type)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	u8 tmp_bw = rtlphy->current_chan_bw;
-
-	if (rtlphy->set_bwmode_inprogress)
-		return;
-	rtlphy->set_bwmode_inprogress = true;
-	if ((!is_hal_stop(rtlhal)) && !(RT_CANNOT_IO(hw))) {
-		/* get primary channel index */
-		u8 pri_ch_idx = _rtl8822be_phy_get_pri_ch_id(rtlpriv);
-
-		/* 3.1 set MAC register */
-		rtlpriv->halmac.ops->halmac_set_bandwidth(
-			rtlpriv, rtlphy->current_channel, pri_ch_idx,
-			rtlphy->current_chan_bw);
-
-		/* 3.2 set BB/RF registet */
-		rtlpriv->phydm.ops->phydm_switch_bandwidth(
-			rtlpriv, pri_ch_idx, rtlphy->current_chan_bw);
-
-		if (!mac->act_scanning)
-			rtlpriv->phydm.ops->phydm_iq_calibrate(rtlpriv);
-
-		rtlphy->set_bwmode_inprogress = false;
-	} else {
-		RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-			 "FALSE driver sleep or unload\n");
-		rtlphy->set_bwmode_inprogress = false;
-		rtlphy->current_chan_bw = tmp_bw;
-	}
-}
-
-u8 rtl8822be_phy_sw_chnl(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	u32 timeout = 1000, timecount = 0;
-	u8 channel = rtlphy->current_channel;
-
-	if (rtlphy->sw_chnl_inprogress)
-		return 0;
-	if (rtlphy->set_bwmode_inprogress)
-		return 0;
-
-	if ((is_hal_stop(rtlhal)) || (RT_CANNOT_IO(hw))) {
-		RT_TRACE(rtlpriv, COMP_CHAN, DBG_LOUD,
-			 "sw_chnl_inprogress false driver sleep or unload\n");
-		return 0;
-	}
-	while (rtlphy->lck_inprogress && timecount < timeout) {
-		mdelay(50);
-		timecount += 50;
-	}
-
-	if (rtlphy->current_channel > 14)
-		rtlhal->current_bandtype = BAND_ON_5G;
-	else if (rtlphy->current_channel <= 14)
-		rtlhal->current_bandtype = BAND_ON_2_4G;
-
-	if (rtlpriv->cfg->ops->get_btc_status())
-		rtlpriv->btcoexist.btc_ops->btc_switch_band_notify(
-			rtlpriv, rtlhal->current_bandtype, mac->act_scanning);
-	else
-		rtlpriv->btcoexist.btc_ops->btc_switch_band_notify_wifi_only(
-			rtlpriv, rtlhal->current_bandtype, mac->act_scanning);
-
-	rtlpriv->phydm.ops->phydm_switch_band(rtlpriv, rtlphy->current_channel);
-
-	rtlphy->sw_chnl_inprogress = true;
-	if (channel == 0)
-		channel = 1;
-
-	RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE,
-		 "switch to channel%d, band type is %d\n",
-		 rtlphy->current_channel, rtlhal->current_bandtype);
-
-	rtlpriv->phydm.ops->phydm_switch_channel(rtlpriv,
-						 rtlphy->current_channel);
-
-	rtlpriv->phydm.ops->phydm_clear_txpowertracking_state(rtlpriv);
-
-	rtl8822be_phy_set_txpower_level(hw, rtlphy->current_channel);
-
-	RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "\n");
-	rtlphy->sw_chnl_inprogress = false;
-	return 1;
-}
-
-bool rtl8822be_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	bool postprocessing = false;
-
-	RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-		 "-->IO Cmd(%#x), set_io_inprogress(%d)\n", iotype,
-		 rtlphy->set_io_inprogress);
-	do {
-		switch (iotype) {
-		case IO_CMD_RESUME_DM_BY_SCAN:
-			RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-				 "[IO CMD] Resume DM after scan.\n");
-			postprocessing = true;
-			break;
-		case IO_CMD_PAUSE_BAND0_DM_BY_SCAN:
-		case IO_CMD_PAUSE_BAND1_DM_BY_SCAN:
-			RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-				 "[IO CMD] Pause DM before scan.\n");
-			postprocessing = true;
-			break;
-		default:
-			pr_err("switch case not process\n");
-			break;
-		}
-	} while (false);
-	if (postprocessing && !rtlphy->set_io_inprogress) {
-		rtlphy->set_io_inprogress = true;
-		rtlphy->current_io_type = iotype;
-	} else {
-		return false;
-	}
-	rtl8822be_phy_set_io(hw);
-	RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, "IO Type(%#x)\n", iotype);
-	return true;
-}
-
-static void rtl8822be_phy_set_io(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-
-	RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-		 "--->Cmd(%#x), set_io_inprogress(%d)\n",
-		 rtlphy->current_io_type, rtlphy->set_io_inprogress);
-	switch (rtlphy->current_io_type) {
-	case IO_CMD_RESUME_DM_BY_SCAN:
-		break;
-	case IO_CMD_PAUSE_BAND0_DM_BY_SCAN:
-		break;
-	case IO_CMD_PAUSE_BAND1_DM_BY_SCAN:
-		break;
-	default:
-		pr_err("switch case not process\n");
-		break;
-	}
-	rtlphy->set_io_inprogress = false;
-	RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, "(%#x)\n",
-		 rtlphy->current_io_type);
-}
-
-static void rtl8822be_phy_set_rf_on(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtl_write_byte(rtlpriv, REG_SPS0_CTRL_8822B, 0x2b);
-	rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN_8822B, 0xE3);
-	rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN_8822B, 0xE2);
-	rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN_8822B, 0xE3);
-	rtl_write_byte(rtlpriv, REG_TXPAUSE_8822B, 0x00);
-}
-
-static bool _rtl8822be_phy_set_rf_power_state(struct ieee80211_hw *hw,
-					      enum rf_pwrstate rfpwr_state)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-	bool bresult = true;
-	u8 i, queue_id;
-	struct rtl8192_tx_ring *ring = NULL;
-
-	switch (rfpwr_state) {
-	case ERFON:
-		if (ppsc->rfpwr_state == ERFOFF &&
-		    RT_IN_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC)) {
-			bool rtstatus = false;
-			u32 initialize_count = 0;
-
-			do {
-				initialize_count++;
-				RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-					 "IPS Set eRf nic enable\n");
-				rtstatus = rtl_ps_enable_nic(hw);
-			} while ((!rtstatus) && (initialize_count < 10));
-			RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
-		} else {
-			RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-				 "Set ERFON slept:%d ms\n",
-				 jiffies_to_msecs(jiffies -
-						  ppsc->last_sleep_jiffies));
-			ppsc->last_awake_jiffies = jiffies;
-			rtl8822be_phy_set_rf_on(hw);
-		}
-		if (mac->link_state == MAC80211_LINKED)
-			rtlpriv->cfg->ops->led_control(hw, LED_CTL_LINK);
-		else
-			rtlpriv->cfg->ops->led_control(hw, LED_CTL_NO_LINK);
-		break;
-	case ERFOFF:
-		for (queue_id = 0, i = 0;
-		     queue_id < RTL_PCI_MAX_TX_QUEUE_COUNT;) {
-			ring = &pcipriv->dev.tx_ring[queue_id];
-			if (queue_id == BEACON_QUEUE ||
-			    skb_queue_len(&ring->queue) == 0) {
-				queue_id++;
-				continue;
-			} else {
-				RT_TRACE(
-					rtlpriv, COMP_ERR, DBG_WARNING,
-					"eRf Off/Sleep: %d times TcbBusyQueue[%d] =%d before doze!\n",
-					(i + 1), queue_id,
-					skb_queue_len(&ring->queue));
-
-				udelay(10);
-				i++;
-			}
-			if (i >= MAX_DOZE_WAITING_TIMES_9x) {
-				RT_TRACE(
-					rtlpriv, COMP_ERR, DBG_WARNING,
-					"\n ERFSLEEP: %d times TcbBusyQueue[%d] = %d !\n",
-					MAX_DOZE_WAITING_TIMES_9x, queue_id,
-					skb_queue_len(&ring->queue));
-				break;
-			}
-		}
-
-		if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_HALT_NIC) {
-			RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-				 "IPS Set eRf nic disable\n");
-			rtl_ps_disable_nic(hw);
-			RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
-		} else {
-			if (ppsc->rfoff_reason == RF_CHANGE_BY_IPS) {
-				rtlpriv->cfg->ops->led_control(hw,
-							       LED_CTL_NO_LINK);
-			} else {
-				rtlpriv->cfg->ops->led_control(
-					hw, LED_CTL_POWER_OFF);
-			}
-		}
-		break;
-	default:
-		pr_err("switch case not process\n");
-		bresult = false;
-		break;
-	}
-	if (bresult)
-		ppsc->rfpwr_state = rfpwr_state;
-	return bresult;
-}
-
-bool rtl8822be_phy_set_rf_power_state(struct ieee80211_hw *hw,
-				      enum rf_pwrstate rfpwr_state)
-{
-	struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
-
-	bool bresult = false;
-
-	if (rfpwr_state == ppsc->rfpwr_state)
-		return bresult;
-	return _rtl8822be_phy_set_rf_power_state(hw, rfpwr_state);
-}
diff --git a/drivers/staging/rtlwifi/rtl8822be/phy.h b/drivers/staging/rtlwifi/rtl8822be/phy.h
deleted file mode 100644
index f33b086..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/phy.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL8822BE_PHY_H__
-#define __RTL8822BE_PHY_H__
-
-/* It must always set to 4, otherwise read
- * efuse table sequence will be wrong.
- */
-#define MAX_TX_COUNT	4
-#define TX_1S	0
-#define TX_2S	1
-#define TX_3S	2
-#define TX_4S	3
-
-#define MAX_POWER_INDEX	0x3F
-
-#define MAX_PRECMD_CNT	16
-#define MAX_RFDEPENDCMD_CNT	16
-#define MAX_POSTCMD_CNT	16
-
-#define MAX_DOZE_WAITING_TIMES_9x 64
-
-#define RT_CANNOT_IO(hw) false
-#define HIGHPOWER_RADIOA_ARRAYLEN	22
-
-#define IQK_ADDA_REG_NUM	16
-#define IQK_BB_REG_NUM	9
-#define MAX_TOLERANCE	5
-#define IQK_DELAY_TIME	10
-#define index_mapping_NUM 15
-
-#define APK_BB_REG_NUM	5
-#define APK_AFE_REG_NUM	16
-#define APK_CURVE_REG_NUM	4
-#define PATH_NUM	2
-
-#define LOOP_LIMIT	5
-#define MAX_STALL_TIME	50
-#define ANTENNA_DIVERSITY_VALUE	0x80
-#define MAX_TXPWR_IDX_NMODE_92S	63
-#define RESET_CNT_LIMIT	3
-
-#define IQK_ADDA_REG_NUM	16
-#define IQK_MAC_REG_NUM	4
-
-#define RF6052_MAX_PATH	2
-
-#define CT_OFFSET_MAC_ADDR	0X16
-
-#define CT_OFFSET_CCK_TX_PWR_IDX	0x5A
-#define CT_OFFSET_HT401S_TX_PWR_IDX	0x60
-#define CT_OFFSET_HT402S_TX_PWR_IDX_DIFF	0x66
-#define CT_OFFSET_HT20_TX_PWR_IDX_DIFF	0x69
-#define CT_OFFSET_OFDM_TX_PWR_IDX_DIFF	0x6C
-
-#define CT_OFFSET_HT40_MAX_PWR_OFFSET	0x6F
-#define CT_OFFSET_HT20_MAX_PWR_OFFSET	0x72
-
-#define CT_OFFSET_CHANNEL_PLAH	0x75
-#define CT_OFFSET_THERMAL_METER	0x78
-#define CT_OFFSET_RF_OPTION	0x79
-#define CT_OFFSET_VERSION	0x7E
-#define CT_OFFSET_CUSTOMER_ID	0x7F
-
-#define RTL8822BE_MAX_PATH_NUM	2
-
-#define TARGET_CHNL_NUM_2G_5G_8822B	59
-
-u32 rtl8822be_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr,
-			       u32 bitmask);
-void rtl8822be_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask,
-			      u32 data);
-u32 rtl8822be_phy_query_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
-			       u32 regaddr, u32 bitmask);
-void rtl8822be_phy_set_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
-			      u32 regaddr, u32 bitmask, u32 data);
-bool rtl8822be_phy_bb_config(struct ieee80211_hw *hw);
-bool rtl8822be_phy_rf_config(struct ieee80211_hw *hw);
-bool rtl8822be_halmac_cb_init_mac_register(struct rtl_priv *rtlpriv);
-bool rtl8822be_halmac_cb_init_bb_rf_register(struct rtl_priv *rtlpriv);
-void rtl8822be_phy_get_txpower_level(struct ieee80211_hw *hw, long *powerlevel);
-void rtl8822be_phy_set_txpower_level(struct ieee80211_hw *hw, u8 channel);
-void rtl8822be_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation);
-void rtl8822be_phy_set_bw_mode_callback(struct ieee80211_hw *hw);
-void rtl8822be_phy_set_bw_mode(struct ieee80211_hw *hw,
-			       enum nl80211_channel_type ch_type);
-u8 rtl8822be_phy_sw_chnl(struct ieee80211_hw *hw);
-void rtl8822be_phy_iq_calibrate(struct ieee80211_hw *hw, bool b_recovery);
-void rtl8822be_phy_iq_calibrate(struct ieee80211_hw *hw, bool b_recovery);
-void rtl8822be_phy_ap_calibrate(struct ieee80211_hw *hw, char delta);
-void rtl8822be_phy_lc_calibrate(struct ieee80211_hw *hw);
-void rtl8822be_phy_set_rfpath_switch(struct ieee80211_hw *hw, bool bmain);
-bool rtl8822be_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
-					     enum radio_path rfpath);
-bool rtl8822be_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
-					     enum radio_path rfpath);
-bool rtl8822be_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype);
-bool rtl8822be_phy_set_rf_power_state(struct ieee80211_hw *hw,
-				      enum rf_pwrstate rfpwr_state);
-void rtl8822be_phy_set_txpower_level_by_path(struct ieee80211_hw *hw,
-					     u8 channel, u8 path);
-void rtl8822be_do_iqk(struct ieee80211_hw *hw, u8 delta_thermal_index,
-		      u8 thermal_value, u8 threshold);
-void rtl8822be_do_iqk(struct ieee80211_hw *hw, u8 delta_thermal_index,
-		      u8 thermal_value, u8 threshold);
-void rtl8822be_reset_iqk_result(struct ieee80211_hw *hw);
-
-u8 rtl8822be_get_txpower_index(struct ieee80211_hw *hw, u8 path, u8 rate,
-			       u8 bandwidth, u8 channel);
-void rtl8822be_phy_set_tx_power_index_by_rs(struct ieee80211_hw *hw, u8 channel,
-					    u8 path, enum rate_section rs);
-void rtl8822be_store_tx_power_by_rate(struct ieee80211_hw *hw, u32 band,
-				      u32 rfpath, u32 txnum, u32 regaddr,
-				      u32 bitmask, u32 data);
-void rtl8822be_phy_set_txpower_limit(struct ieee80211_hw *hw, u8 *pregulation,
-				     u8 *pband, u8 *pbandwidth,
-				     u8 *prate_section, u8 *prf_path,
-				     u8 *pchannel, u8 *ppower_limit);
-bool rtl8822be_load_txpower_by_rate(struct ieee80211_hw *hw);
-bool rtl8822be_load_txpower_limit(struct ieee80211_hw *hw);
-
-#endif
diff --git a/drivers/staging/rtlwifi/rtl8822be/reg.h b/drivers/staging/rtlwifi/rtl8822be/reg.h
deleted file mode 100644
index 8f0ec5b..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/reg.h
+++ /dev/null
@@ -1,1642 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL8822B_REG_H__
-#define __RTL8822B_REG_H__
-
-#include "../halmac/halmac_reg_8822b.h"
-#include "../halmac/halmac_bit_8822b.h"
-
-#define TXPKT_BUF_SELECT	0x69
-#define RXPKT_BUF_SELECT	0xA5
-#define DISABLE_TRXPKT_BUF_ACCESS	0x0
-
-/* Page 0 */
-#define REG_LEDCFG2_8822B	0x004E /* need review */
-#define REG_SPS0_CTRL_8822B	0x0011 /* need review: swlps */
-
-#define REG_EFUSE_ACCESS_8822B (REG_PMC_DBG_CTRL2_8822B + 3) /*0x00CF*/
-#define REG_AFE_XTAL_CTRL_8822B	REG_AFE_CTRL1_8822B
-#define REG_AFE_PLL_CTRL_8822B	REG_AFE_CTRL2_8822B
-
-/* Page 1 */
-
-#define MSR (REG_CR_8822B + 2)
-
-/* for MSR 0x102 */
-#define MSR_NOLINK	0x00
-#define MSR_ADHOC	0x01
-#define MSR_INFRA	0x02
-#define MSR_AP	0x03
-
-/*-----------------------------------------------------
- *
- *	0x0200h ~ 0x027Fh	TXDMA Configuration
- *
- *-----------------------------------------------------
- */
-
-/*-----------------------------------------------------
- *
- *	0x0280h ~ 0x02FFh	RXDMA Configuration
- *
- *-----------------------------------------------------
- */
-#define REG_RXDMA_CONTROL_8822B (REG_RXPKT_NUM_8822B + 2) /* 0x0286 */
-
-/*-----------------------------------------------------
- *
- *	0x0300h ~ 0x03FFh	PCIe
- *
- *-----------------------------------------------------
- */
-
-/* REG_HIMR3_8822B */
-#define IMR_H2CDOK	BIT_SETH2CDOK_MASK_8822B
-
-/* spec version 11
- *-----------------------------------------------------
- *
- *	0x0400h ~ 0x047Fh	Protocol Configuration
- *
- *-----------------------------------------------------
- */
-
-#define REG_MAX_AGGR_NUM_8822B (REG_PROT_MODE_CTRL_8822B + 2) /*0x04CA*/
-
-/* for RRSR 0x440 */
-#define RRSR_RSC_OFFSET	21
-#define RRSR_SHORT_OFFSET	23
-#define RRSR_RSC_BW_40M	0x600000
-#define RRSR_RSC_UPSUBCHNL	0x400000
-#define RRSR_RSC_LOWSUBCHNL	0x200000
-#define RRSR_1M	BIT(0)
-#define RRSR_2M	BIT(1)
-#define RRSR_5_5M	BIT(2)
-#define RRSR_11M	BIT(3)
-#define RRSR_6M	BIT(4)
-#define RRSR_9M	BIT(5)
-#define RRSR_12M	BIT(6)
-#define RRSR_18M	BIT(7)
-#define RRSR_24M	BIT(8)
-#define RRSR_36M	BIT(9)
-#define RRSR_48M	BIT(10)
-#define RRSR_54M	BIT(11)
-#define RRSR_MCS0	BIT(12)
-#define RRSR_MCS1	BIT(13)
-#define RRSR_MCS2	BIT(14)
-#define RRSR_MCS3	BIT(15)
-#define RRSR_MCS4	BIT(16)
-#define RRSR_MCS5	BIT(17)
-#define RRSR_MCS6	BIT(18)
-#define RRSR_MCS7	BIT(19)
-
-#define RRSR_ALL_CCK (RRSR_1M | RRSR_2M | RRSR_5_5M | RRSR_11M)
-#define RRSR_ALL_OFDM_AG                                                       \
-	(RRSR_6M | RRSR_9M | RRSR_12M | RRSR_18M | RRSR_24M | RRSR_36M |       \
-	 RRSR_48M | RRSR_54M)
-
-/*-----------------------------------------------------
- *
- *	0x0500h ~ 0x05FFh	EDCA Configuration
- *
- *-----------------------------------------------------
- */
-
-#define REG_SIFS_TRX_8822B (REG_SIFS_8822B + 2) /*0x0516*/
-
-/*-----------------------------------------------------
- *
- *	0x0600h ~ 0x07FFh	WMAC Configuration
- *
- *-----------------------------------------------------
- */
-
-#define RATR_1M	0x00000001
-#define RATR_2M	0x00000002
-#define RATR_55M	0x00000004
-#define RATR_11M	0x00000008
-#define RATR_6M	0x00000010
-#define RATR_9M	0x00000020
-#define RATR_12M	0x00000040
-#define RATR_18M	0x00000080
-#define RATR_24M	0x00000100
-#define RATR_36M	0x00000200
-#define RATR_48M	0x00000400
-#define RATR_54M	0x00000800
-#define RATR_MCS0	0x00001000
-#define RATR_MCS1	0x00002000
-#define RATR_MCS2	0x00004000
-#define RATR_MCS3	0x00008000
-#define RATR_MCS4	0x00010000
-#define RATR_MCS5	0x00020000
-#define RATR_MCS6	0x00040000
-#define RATR_MCS7	0x00080000
-#define RATR_MCS8	0x00100000
-#define RATR_MCS9	0x00200000
-#define RATR_MCS10	0x00400000
-#define RATR_MCS11	0x00800000
-#define RATR_MCS12	0x01000000
-#define RATR_MCS13	0x02000000
-#define RATR_MCS14	0x04000000
-#define RATR_MCS15	0x08000000
-
-#define RATE_1M	BIT(0)
-#define RATE_2M	BIT(1)
-#define RATE_5_5M	BIT(2)
-#define RATE_11M	BIT(3)
-#define RATE_6M	BIT(4)
-#define RATE_9M	BIT(5)
-#define RATE_12M	BIT(6)
-#define RATE_18M	BIT(7)
-#define RATE_24M	BIT(8)
-#define RATE_36M	BIT(9)
-#define RATE_48M	BIT(10)
-#define RATE_54M	BIT(11)
-#define RATE_MCS0	BIT(12)
-#define RATE_MCS1	BIT(13)
-#define RATE_MCS2	BIT(14)
-#define RATE_MCS3	BIT(15)
-#define RATE_MCS4	BIT(16)
-#define RATE_MCS5	BIT(17)
-#define RATE_MCS6	BIT(18)
-#define RATE_MCS7	BIT(19)
-#define RATE_MCS8	BIT(20)
-#define RATE_MCS9	BIT(21)
-#define RATE_MCS10	BIT(22)
-#define RATE_MCS11	BIT(23)
-#define RATE_MCS12	BIT(24)
-#define RATE_MCS13	BIT(25)
-#define RATE_MCS14	BIT(26)
-#define RATE_MCS15	BIT(27)
-
-/* CAM definition */
-
-#define CAM_NONE	0x0
-#define CAM_WEP40	0x01
-#define CAM_TKIP	0x02
-#define CAM_AES	0x04
-#define CAM_WEP104	0x05
-
-/*#define	TOTAL_CAM_ENTRY				64*/
-/*#define	HALF_CAM_ENTRY				32*/
-
-#define CAM_WRITE	BIT(16)
-#define CAM_READ	0x00000000
-#define CAM_POLLINIG	BIT(31)
-
-/*********************************************
- *       8822BE IMR/ISR bits
- *********************************************
- */
-#define IMR_DISABLED	0x0
-/* IMR DW0(0x0060-0063) Bit 0-31 */
-#define IMR_TIMER2	BIT(31)
-#define IMR_TIMER1	BIT(30)
-#define IMR_PSTIMEOUT	BIT(29)
-#define IMR_GTINT4	BIT(28)
-#define IMR_GTINT3	BIT(27)
-#define IMR_TBDER	BIT(26)
-#define IMR_TBDOK	BIT(25)
-#define IMR_TSF_BIT32_TOGGLE	BIT(24)
-#define IMR_BCNDMAINT0	BIT(20)
-#define IMR_BCNDOK0	BIT(16)
-#define IMR_HSISR_IND_ON_INT	BIT(15)
-#define IMR_BCNDMAINT_E	BIT(14)
-#define IMR_ATIMEND	BIT(12)
-#define IMR_HISR1_IND_INT	BIT(11)
-#define IMR_C2HCMD	BIT(10)
-#define IMR_CPWM2	BIT(9)
-#define IMR_CPWM	BIT(8)
-#define IMR_HIGHDOK	BIT(7)
-#define IMR_MGNTDOK	BIT(6)
-#define IMR_BKDOK	BIT(5)
-#define IMR_BEDOK	BIT(4)
-#define IMR_VIDOK	BIT(3)
-#define IMR_VODOK	BIT(2)
-#define IMR_RDU	BIT(1)
-#define IMR_ROK	BIT(0)
-
-/* IMR DW1(0x00B4-00B7) Bit 0-31 */
-#define IMR_TXFIFO_TH_INT_8822B	BIT_TXFIFO_TH_INT_8822B
-#define IMR_BTON_STS_UPDATE_MASK_8822B	BIT_BTON_STS_UPDATE_MASK_8822B
-#define IMR_MCUERR	BIT(28)
-#define IMR_BCNDMAINT7	BIT(27)
-#define IMR_BCNDMAINT6	BIT(26)
-#define IMR_BCNDMAINT5	BIT(25)
-#define IMR_BCNDMAINT4	BIT(24)
-#define IMR_BCNDMAINT3	BIT(23)
-#define IMR_BCNDMAINT2	BIT(22)
-#define IMR_BCNDMAINT1	BIT(21)
-#define IMR_BCNDOK7	BIT(20)
-#define IMR_BCNDOK6	BIT(19)
-#define IMR_BCNDOK5	BIT(18)
-#define IMR_BCNDOK4	BIT(17)
-#define IMR_BCNDOK3	BIT(16)
-#define IMR_BCNDOK2	BIT(15)
-#define IMR_BCNDOK1	BIT(14)
-#define IMR_ATIMEND_E	BIT(13)
-#define IMR_ATIMEND	BIT(12)
-#define IMR_TXERR	BIT(11)
-#define IMR_RXERR	BIT(10)
-#define IMR_TXFOVW	BIT(9)
-#define IMR_RXFOVW	BIT(8)
-#define IMR_CPU_MGQ_TXDONE_MSK_8822B	BIT_CPU_MGQ_TXDONE_MSK_8822B
-#define IMR_PS_TIMER_C_MSK_8822B	BIT_PS_TIMER_C_MSK_8822B
-#define IMR_PS_TIMER_B_MSK_8822B	BIT_PS_TIMER_B_MSK_8822B
-#define IMR_PS_TIMER_A_MSK_8822B	BIT_PS_TIMER_A_MSK_8822B
-#define IMR_CPUMGQ_TX_TIMER_MSK_8822B	BIT_CPUMGQ_TX_TIMER_MSK_8822B
-
-/*********************************************
- *       8822BE EFUSE definition
- *********************************************
- */
-#define HWSET_MAX_SIZE	1024
-#define EFUSE_MAX_SECTION	64
-#define EFUSE_REAL_CONTENT_LEN	1024
-#define EFUSE_OOB_PROTECT_BYTES	18
-
-#define EEPROM_DEFAULT_THERMALMETER	0x12
-
-#define RTL8822B_EEPROM_ID	0x8129
-
-#define PPG_BB_GAIN_2G_TXA_OFFSET_8822B	0xEE
-#define PPG_THERMAL_OFFSET_8822B	0xEF
-
-#define EEPROM_TX_PWR_INX_8822B	0x10
-
-#define EEPROM_CHANNEL_PLAN_8822B	0xB8
-#define EEPROM_XTAL_8822B	0xB9
-#define EEPROM_THERMAL_METER_8822B	0xBA
-#define EEPROM_IQK_LCK_8822B	0xBB
-#define EEPROM_2G_5G_PA_TYPE_8822B	0xBC
-/* PATH A & PATH B */
-#define EEPROM_2G_LNA_TYPE_GAIN_SEL_AB_8822B	0xBD
-/* PATH C & PATH D */
-#define EEPROM_2G_LNA_TYPE_GAIN_SEL_CD_8822B	0xBE
-/* PATH A & PATH B */
-#define EEPROM_5G_LNA_TYPE_GAIN_SEL_AB_8822B	0xBF
-/* PATH C & PATH D */
-#define EEPROM_5G_LNA_TYPE_GAIN_SEL_CD_8822B	0xC0
-
-#define EEPROM_RF_BOARD_OPTION_8822B	0xC1
-#define EEPROM_FEATURE_OPTION_8822B	0xC2
-#define EEPROM_RF_BT_SETTING_8822B	0xC3
-#define EEPROM_VERSION_8822B	0xC4
-#define EEPROM_CUSTOM_ID_8822B	0xC5
-#define EEPROM_TX_BBSWING_2G_8822B	0xC6
-#define EEPROM_TX_PWR_CALIBRATE_RATE_8822B	0xC8
-#define EEPROM_RF_ANTENNA_OPT_8822B	0xC9
-#define EEPROM_RFE_OPTION_8822B	0xCA
-#define EEPROM_COUNTRY_CODE_8822B	0xCB
-
-#define EEPROM_VID	0xD6
-#define EEPROM_DID	0xD8
-#define EEPROM_SVID	0xDA
-#define EEPROM_SMID	0xDC
-
-/* RTL8822BU */
-#define EEPROM_MAC_ADDR_8822BU	0x107
-#define EEPROM_VID_8822BU	0x100
-#define EEPROM_PID_8822BU	0x102
-#define EEPROM_USB_OPTIONAL_FUNCTION0_8822BU	0x104
-#define EEPROM_USB_MODE_8822BU	0x06
-
-/* RTL8822BS */
-#define EEPROM_MAC_ADDR_8822BS	0x11A
-
-/* RTL8822BE */
-#define EEPROM_MAC_ADDR_8822BE	0xD0
-
-/* ------------------------- */
-
-#define STOPBECON	BIT(6)
-#define STOPHIGHT	BIT(5)
-#define STOPMGT	BIT(4)
-#define STOPVO	BIT(3)
-#define STOPVI	BIT(2)
-#define STOPBE	BIT(1)
-#define STOPBK	BIT(0)
-
-#define RCR_APPFCS	BIT(31)
-#define RCR_APP_MIC	BIT(30)
-#define RCR_APP_ICV	BIT(29)
-#define RCR_APP_PHYST_RXFF	BIT(28)
-#define RCR_APP_BA_SSN	BIT(27)
-#define RCR_VHT_DACK	BIT(26)
-#define RCR_ENMBID	BIT(24)
-#define RCR_LSIGEN	BIT(23)
-#define RCR_MFBEN	BIT(22)
-#define RCR_HTC_LOC_CTRL	BIT(14)
-#define RCR_AMF	BIT(13)
-#define RCR_ACF	BIT(12)
-#define RCR_ADF	BIT(11)
-#define RCR_AICV	BIT(9)
-#define RCR_ACRC32	BIT(8)
-#define RCR_CBSSID_BCN	BIT(7)
-#define RCR_CBSSID_DATA	BIT(6)
-#define RCR_CBSSID	RCR_CBSSID_DATA
-#define RCR_APWRMGT	BIT(5)
-#define RCR_ADD3	BIT(4)
-#define RCR_AB	BIT(3)
-#define RCR_AM	BIT(2)
-#define RCR_APM	BIT(1)
-#define RCR_AAP	BIT(0)
-#define RCR_MXDMA_OFFSET	8
-#define RCR_FIFO_OFFSET	13
-
-#define RSV_CTRL	0x001C
-#define RD_CTRL	0x0524
-
-#define REG_USB_INFO_8822B	0xFE17
-#define REG_USB_SPECIAL_OPTION_8822B	0xFE55
-#define REG_USB_DMA_AGG_TO_8822B	0xFE5B
-#define REG_USB_AGG_TO_8822B	0xFE5C
-#define REG_USB_AGG_TH_8822B	0xFE5D
-
-#define REG_USB_VID_8822B	0xFE60
-#define REG_USB_PID_8822B	0xFE62
-#define REG_USB_OPTIONAL_8822B	0xFE64
-#define REG_USB_CHIRP_K_8822B	0xFE65
-#define REG_USB_PHY_8822B	0xFE66
-#define REG_USB_MAC_ADDR_8822B	0xFE70
-#define REG_USB_HRPWM_8822B	0xFE58
-#define REG_USB_HCPWM_8822B	0xFE57
-
-#define SW18_FPWM	BIT(3)
-
-#define ISO_MD2PP	BIT(0)
-#define ISO_UA2USB	BIT(1)
-#define ISO_UD2CORE	BIT(2)
-#define ISO_PA2PCIE	BIT(3)
-#define ISO_PD2CORE	BIT(4)
-#define ISO_IP2MAC	BIT(5)
-#define ISO_DIOP	BIT(6)
-#define ISO_DIOE	BIT(7)
-#define ISO_EB2CORE	BIT(8)
-#define ISO_DIOR	BIT(9)
-
-#define PWC_EV25V	BIT(14)
-#define PWC_EV12V	BIT(15)
-
-#define FEN_BBRSTB	BIT(0)
-#define FEN_BB_GLB_RSTN	BIT(1)
-#define FEN_USBA	BIT(2)
-#define FEN_UPLL	BIT(3)
-#define FEN_USBD	BIT(4)
-#define FEN_DIO_PCIE	BIT(5)
-#define FEN_PCIEA	BIT(6)
-#define FEN_PPLL	BIT(7)
-#define FEN_PCIED	BIT(8)
-#define FEN_DIOE	BIT(9)
-#define FEN_CPUEN	BIT(10)
-#define FEN_DCORE	BIT(11)
-#define FEN_ELDR	BIT(12)
-#define FEN_DIO_RF	BIT(13)
-#define FEN_HWPDN	BIT(14)
-#define FEN_MREGEN	BIT(15)
-
-#define PFM_LDALL	BIT(0)
-#define PFM_ALDN	BIT(1)
-#define PFM_LDKP	BIT(2)
-#define PFM_WOWL	BIT(3)
-#define EN_PDN	BIT(4)
-#define PDN_PL	BIT(5)
-#define APFM_ONMAC	BIT(8)
-#define APFM_OFF	BIT(9)
-#define APFM_RSM	BIT(10)
-#define AFSM_HSUS	BIT(11)
-#define AFSM_PCIE	BIT(12)
-#define APDM_MAC	BIT(13)
-#define APDM_HOST	BIT(14)
-#define APDM_HPDN	BIT(15)
-#define RDY_MACON	BIT(16)
-#define SUS_HOST	BIT(17)
-#define ROP_ALD	BIT(20)
-#define ROP_PWR	BIT(21)
-#define ROP_SPS	BIT(22)
-#define SOP_MRST	BIT(25)
-#define SOP_FUSE	BIT(26)
-#define SOP_ABG	BIT(27)
-#define SOP_AMB	BIT(28)
-#define SOP_RCK	BIT(29)
-#define SOP_A8M	BIT(30)
-#define XOP_BTCK	BIT(31)
-
-#define ANAD16V_EN	BIT(0)
-#define ANA8M	BIT(1)
-#define MACSLP	BIT(4)
-#define LOADER_CLK_EN	BIT(5)
-#define _80M_SSC_DIS	BIT(7)
-#define _80M_SSC_EN_HO	BIT(8)
-#define PHY_SSC_RSTB	BIT(9)
-#define SEC_CLK_EN	BIT(10)
-#define MAC_CLK_EN	BIT(11)
-#define SYS_CLK_EN	BIT(12)
-#define RING_CLK_EN	BIT(13)
-
-#define BOOT_FROM_EEPROM	BIT(4)
-#define EEPROM_EN	BIT(5)
-
-#define AFE_BGEN	BIT(0)
-#define AFE_MBEN	BIT(1)
-#define MAC_ID_EN	BIT(7)
-
-#define WLOCK_ALL	BIT(0)
-#define WLOCK_00	BIT(1)
-#define WLOCK_04	BIT(2)
-#define WLOCK_08	BIT(3)
-#define WLOCK_40	BIT(4)
-#define R_DIS_PRST_0	BIT(5)
-#define R_DIS_PRST_1	BIT(6)
-#define LOCK_ALL_EN	BIT(7)
-
-#define RF_EN	BIT(0)
-#define RF_RSTB	BIT(1)
-#define RF_SDMRSTB	BIT(2)
-
-#define LDA15_EN	BIT(0)
-#define LDA15_STBY	BIT(1)
-#define LDA15_OBUF	BIT(2)
-#define LDA15_REG_VOS	BIT(3)
-#define _LDA15_VOADJ(x) (((x) & 0x7) << 4)
-
-#define LDV12_EN	BIT(0)
-#define LDV12_SDBY	BIT(1)
-#define LPLDO_HSM	BIT(2)
-#define LPLDO_LSM_DIS	BIT(3)
-#define _LDV12_VADJ(x) (((x) & 0xF) << 4)
-
-#define XTAL_EN	BIT(0)
-#define XTAL_BSEL	BIT(1)
-#define _XTAL_BOSC(x) (((x) & 0x3) << 2)
-#define _XTAL_CADJ(x) (((x) & 0xF) << 4)
-#define XTAL_GATE_USB	BIT(8)
-#define _XTAL_USB_DRV(x) (((x) & 0x3) << 9)
-#define XTAL_GATE_AFE	BIT(11)
-#define _XTAL_AFE_DRV(x) (((x) & 0x3) << 12)
-#define XTAL_RF_GATE	BIT(14)
-#define _XTAL_RF_DRV(x) (((x) & 0x3) << 15)
-#define XTAL_GATE_DIG	BIT(17)
-#define _XTAL_DIG_DRV(x) (((x) & 0x3) << 18)
-#define XTAL_BT_GATE	BIT(20)
-#define _XTAL_BT_DRV(x) (((x) & 0x3) << 21)
-#define _XTAL_GPIO(x) (((x) & 0x7) << 23)
-
-#define CKDLY_AFE	BIT(26)
-#define CKDLY_USB	BIT(27)
-#define CKDLY_DIG	BIT(28)
-#define CKDLY_BT	BIT(29)
-
-#define APLL_EN	BIT(0)
-#define APLL_320_EN	BIT(1)
-#define APLL_FREF_SEL	BIT(2)
-#define APLL_EDGE_SEL	BIT(3)
-#define APLL_WDOGB	BIT(4)
-#define APLL_LPFEN	BIT(5)
-
-#define APLL_REF_CLK_13MHZ	0x1
-#define APLL_REF_CLK_19_2MHZ	0x2
-#define APLL_REF_CLK_20MHZ	0x3
-#define APLL_REF_CLK_25MHZ	0x4
-#define APLL_REF_CLK_26MHZ	0x5
-#define APLL_REF_CLK_38_4MHZ	0x6
-#define APLL_REF_CLK_40MHZ	0x7
-
-#define APLL_320EN	BIT(14)
-#define APLL_80EN	BIT(15)
-#define APLL_1MEN	BIT(24)
-
-#define ALD_EN	BIT(18)
-#define EF_PD	BIT(19)
-#define EF_FLAG	BIT(31)
-
-#define EF_TRPT	BIT(7)
-#define LDOE25_EN	BIT(31)
-
-#define RSM_EN	BIT(0)
-#define TIMER_EN	BIT(4)
-
-#define TRSW0EN	BIT(2)
-#define TRSW1EN	BIT(3)
-#define EROM_EN	BIT(4)
-#define EN_BT	BIT(5)
-#define EN_UART	BIT(8)
-#define UART_910	BIT(9)
-#define EN_PMAC	BIT(10)
-#define SIC_SWRST	BIT(11)
-#define EN_SIC	BIT(12)
-#define SIC_23	BIT(13)
-#define EN_HDP	BIT(14)
-#define SIC_LBK	BIT(15)
-
-#define LED0PL	BIT(4)
-#define LED1PL	BIT(12)
-#define LED0DIS	BIT(7)
-
-#define MCUFWDL_EN	BIT(0)
-#define MCUFWDL_RDY	BIT(1)
-#define FWDL_CHKSUM_RPT	BIT(2)
-#define MACINI_RDY	BIT(3)
-#define BBINI_RDY	BIT(4)
-#define RFINI_RDY	BIT(5)
-#define WINTINI_RDY	BIT(6)
-#define CPRST	BIT(23)
-
-#define XCLK_VLD	BIT(0)
-#define ACLK_VLD	BIT(1)
-#define UCLK_VLD	BIT(2)
-#define PCLK_VLD	BIT(3)
-#define PCIRSTB	BIT(4)
-#define V15_VLD	BIT(5)
-#define TRP_B15V_EN	BIT(7)
-#define SIC_IDLE	BIT(8)
-#define BD_MAC2	BIT(9)
-#define BD_MAC1	BIT(10)
-#define IC_MACPHY_MODE	BIT(11)
-#define VENDOR_ID	BIT(19)
-#define PAD_HWPD_IDN	BIT(22)
-#define TRP_VAUX_EN	BIT(23)
-#define TRP_BT_EN	BIT(24)
-#define BD_PKG_SEL	BIT(25)
-#define BD_HCI_SEL	BIT(26)
-#define TYPE_ID	BIT(27)
-
-#define CHIP_VER_RTL_MASK	0xF000
-#define CHIP_VER_RTL_SHIFT	12
-
-#define REG_LBMODE_8822B (REG_CR_8822B + 3)
-
-#define HCI_TXDMA_EN	BIT(0)
-#define HCI_RXDMA_EN	BIT(1)
-#define TXDMA_EN	BIT(2)
-#define RXDMA_EN	BIT(3)
-#define PROTOCOL_EN	BIT(4)
-#define SCHEDULE_EN	BIT(5)
-#define MACTXEN	BIT(6)
-#define MACRXEN	BIT(7)
-#define ENSWBCN	BIT(8)
-#define ENSEC	BIT(9)
-
-#define _NETTYPE(x) (((x) & 0x3) << 16)
-#define MASK_NETTYPE	0x30000
-#define NT_NO_LINK	0x0
-#define NT_LINK_AD_HOC	0x1
-#define NT_LINK_AP	0x2
-#define NT_AS_AP	0x3
-
-#define _LBMODE(x) (((x) & 0xF) << 24)
-#define MASK_LBMODE	0xF000000
-#define LOOPBACK_NORMAL	0x0
-#define LOOPBACK_IMMEDIATELY	0xB
-#define LOOPBACK_MAC_DELAY	0x3
-#define LOOPBACK_PHY	0x1
-#define LOOPBACK_DMA	0x7
-
-#define GET_RX_PAGE_SIZE(value) ((value) & 0xF)
-#define GET_TX_PAGE_SIZE(value) (((value) & 0xF0) >> 4)
-#define _PSRX_MASK	0xF
-#define _PSTX_MASK	0xF0
-#define _PSRX(x) (x)
-#define _PSTX(x) ((x) << 4)
-
-#define PBP_64	0x0
-#define PBP_128	0x1
-#define PBP_256	0x2
-#define PBP_512	0x3
-#define PBP_1024	0x4
-
-#define RXDMA_ARBBW_EN	BIT(0)
-#define RXSHFT_EN	BIT(1)
-#define RXDMA_AGG_EN	BIT(2)
-#define QS_VO_QUEUE	BIT(8)
-#define QS_VI_QUEUE	BIT(9)
-#define QS_BE_QUEUE	BIT(10)
-#define QS_BK_QUEUE	BIT(11)
-#define QS_MANAGER_QUEUE	BIT(12)
-#define QS_HIGH_QUEUE	BIT(13)
-
-#define HQSEL_VOQ	BIT(0)
-#define HQSEL_VIQ	BIT(1)
-#define HQSEL_BEQ	BIT(2)
-#define HQSEL_BKQ	BIT(3)
-#define HQSEL_MGTQ	BIT(4)
-#define HQSEL_HIQ	BIT(5)
-
-#define _TXDMA_HIQ_MAP(x) (((x) & 0x3) << 14)
-#define _TXDMA_MGQ_MAP(x) (((x) & 0x3) << 12)
-#define _TXDMA_BKQ_MAP(x) (((x) & 0x3) << 10)
-#define _TXDMA_BEQ_MAP(x) (((x) & 0x3) << 8)
-#define _TXDMA_VIQ_MAP(x) (((x) & 0x3) << 6)
-#define _TXDMA_VOQ_MAP(x) (((x) & 0x3) << 4)
-
-#define QUEUE_LOW	1
-#define QUEUE_NORMAL	2
-#define QUEUE_HIGH	3
-
-#define _LLT_NO_ACTIVE	0x0
-#define _LLT_WRITE_ACCESS	0x1
-#define _LLT_READ_ACCESS	0x2
-
-#define _LLT_INIT_DATA(x) ((x) & 0xFF)
-#define _LLT_INIT_ADDR(x) (((x) & 0xFF) << 8)
-#define _LLT_OP(x) (((x) & 0x3) << 30)
-#define _LLT_OP_VALUE(x) (((x) >> 30) & 0x3)
-
-#define BB_WRITE_READ_MASK (BIT(31) | BIT(30))
-#define BB_WRITE_EN	BIT(30)
-#define BB_READ_EN	BIT(31)
-
-#define _HPQ(x) ((x) & 0xFF)
-#define _LPQ(x) (((x) & 0xFF) << 8)
-#define _PUBQ(x) (((x) & 0xFF) << 16)
-#define _NPQ(x) ((x) & 0xFF)
-
-#define HPQ_PUBLIC_DIS	BIT(24)
-#define LPQ_PUBLIC_DIS	BIT(25)
-#define LD_RQPN	BIT(31)
-
-#define BCN_VALID	BIT(16)
-#define BCN_HEAD(x) (((x) & 0xFF) << 8)
-#define BCN_HEAD_MASK	0xFF00
-
-#define BLK_DESC_NUM_SHIFT	4
-#define BLK_DESC_NUM_MASK	0xF
-
-#define DROP_DATA_EN	BIT(9)
-
-#define EN_AMPDU_RTY_NEW	BIT(7)
-
-#define _INIRTSMCS_SEL(x) ((x) & 0x3F)
-
-#define _SPEC_SIFS_CCK(x) ((x) & 0xFF)
-#define _SPEC_SIFS_OFDM(x) (((x) & 0xFF) << 8)
-
-#define RATE_REG_BITMAP_ALL	0xFFFFF
-
-#define _RRSC_BITMAP(x) ((x) & 0xFFFFF)
-
-#define _RRSR_RSC(x) (((x) & 0x3) << 21)
-#define RRSR_RSC_RESERVED	0x0
-#define RRSR_RSC_UPPER_SUBCHANNEL	0x1
-#define RRSR_RSC_LOWER_SUBCHANNEL	0x2
-#define RRSR_RSC_DUPLICATE_MODE	0x3
-
-#define USE_SHORT_G1	BIT(20)
-
-#define _AGGLMT_MCS0(x) ((x) & 0xF)
-#define _AGGLMT_MCS1(x) (((x) & 0xF) << 4)
-#define _AGGLMT_MCS2(x) (((x) & 0xF) << 8)
-#define _AGGLMT_MCS3(x) (((x) & 0xF) << 12)
-#define _AGGLMT_MCS4(x) (((x) & 0xF) << 16)
-#define _AGGLMT_MCS5(x) (((x) & 0xF) << 20)
-#define _AGGLMT_MCS6(x) (((x) & 0xF) << 24)
-#define _AGGLMT_MCS7(x) (((x) & 0xF) << 28)
-
-#define RETRY_LIMIT_SHORT_SHIFT	8
-#define RETRY_LIMIT_LONG_SHIFT	0
-
-#define _DARF_RC1(x) ((x) & 0x1F)
-#define _DARF_RC2(x) (((x) & 0x1F) << 8)
-#define _DARF_RC3(x) (((x) & 0x1F) << 16)
-#define _DARF_RC4(x) (((x) & 0x1F) << 24)
-#define _DARF_RC5(x) ((x) & 0x1F)
-#define _DARF_RC6(x) (((x) & 0x1F) << 8)
-#define _DARF_RC7(x) (((x) & 0x1F) << 16)
-#define _DARF_RC8(x) (((x) & 0x1F) << 24)
-
-#define _RARF_RC1(x) ((x) & 0x1F)
-#define _RARF_RC2(x) (((x) & 0x1F) << 8)
-#define _RARF_RC3(x) (((x) & 0x1F) << 16)
-#define _RARF_RC4(x) (((x) & 0x1F) << 24)
-#define _RARF_RC5(x) ((x) & 0x1F)
-#define _RARF_RC6(x) (((x) & 0x1F) << 8)
-#define _RARF_RC7(x) (((x) & 0x1F) << 16)
-#define _RARF_RC8(x) (((x) & 0x1F) << 24)
-
-#define AC_PARAM_TXOP_LIMIT_OFFSET	16
-#define AC_PARAM_ECW_MAX_OFFSET	12
-#define AC_PARAM_ECW_MIN_OFFSET	8
-#define AC_PARAM_AIFS_OFFSET	0
-
-#define _AIFS(x) (x)
-#define _ECW_MAX_MIN(x) ((x) << 8)
-#define _TXOP_LIMIT(x) ((x) << 16)
-
-#define _BCNIFS(x) ((x) & 0xFF)
-#define _BCNECW(x) ((((x) & 0xF)) << 8)
-
-#define _LRL(x) ((x) & 0x3F)
-#define _SRL(x) (((x) & 0x3F) << 8)
-
-#define _SIFS_CCK_CTX(x) ((x) & 0xFF)
-#define _SIFS_CCK_TRX(x) (((x) & 0xFF) << 8)
-
-#define _SIFS_OFDM_CTX(x) ((x) & 0xFF)
-#define _SIFS_OFDM_TRX(x) (((x) & 0xFF) << 8)
-
-#define _TBTT_PROHIBIT_HOLD(x) (((x) & 0xFF) << 8)
-
-#define DIS_EDCA_CNT_DWN	BIT(11)
-
-#define EN_MBSSID	BIT(1)
-#define EN_TXBCN_RPT	BIT(2)
-#define EN_BCN_FUNCTION	BIT(3)
-
-#define TSFTR_RST	BIT(0)
-#define TSFTR1_RST	BIT(1)
-
-#define STOP_BCNQ	BIT(6)
-
-#define DIS_TSF_UDT0_NORMAL_CHIP	BIT(4)
-#define DIS_TSF_UDT0_TEST_CHIP	BIT(5)
-
-#define ACMHW_HW_EN	BIT(0)
-#define ACMHW_BEQ_EN	BIT(1)
-#define ACMHW_VIQ_EN	BIT(2)
-#define ACMHW_VOQ_EN	BIT(3)
-#define ACMHW_BEQ_STATUS	BIT(4)
-#define ACMHW_VIQ_STATUS	BIT(5)
-#define ACMHW_VOQ_STATUS	BIT(6)
-
-#define APSDOFF	BIT(6)
-#define APSDOFF_STATUS	BIT(7)
-
-#define BW_20MHZ	BIT(2)
-
-#define RATE_BITMAP_ALL	0xFFFFF
-
-#define RATE_RRSR_CCK_ONLY_1M	0xFFFF1
-
-#define TSFRST	BIT(0)
-#define DIS_GCLK	BIT(1)
-#define PAD_SEL	BIT(2)
-#define PWR_ST	BIT(6)
-#define PWRBIT_OW_EN	BIT(7)
-#define ACRC	BIT(8)
-#define CFENDFORM	BIT(9)
-#define ICV	BIT(10)
-
-#define AAP	BIT(0)
-#define APM	BIT(1)
-#define AM	BIT(2)
-#define AB	BIT(3)
-#define ADD3	BIT(4)
-#define APWRMGT	BIT(5)
-#define CBSSID	BIT(6)
-#define CBSSID_DATA	BIT(6)
-#define CBSSID_BCN	BIT(7)
-#define ACRC32	BIT(8)
-#define AICV	BIT(9)
-#define ADF	BIT(11)
-#define ACF	BIT(12)
-#define AMF	BIT(13)
-#define HTC_LOC_CTRL	BIT(14)
-#define UC_DATA_EN	BIT(16)
-#define BM_DATA_EN	BIT(17)
-#define MFBEN	BIT(22)
-#define LSIGEN	BIT(23)
-#define EN_MBID	BIT(24)
-#define APP_BASSN	BIT(27)
-#define APP_PHYSTS	BIT(28)
-#define APP_ICV	BIT(29)
-#define APP_MIC	BIT(30)
-#define APP_FCS	BIT(31)
-
-#define _MIN_SPACE(x) ((x) & 0x7)
-#define _SHORT_GI_PADDING(x) (((x) & 0x1F) << 3)
-
-#define RXERR_TYPE_OFDM_PPDU	0
-#define RXERR_TYPE_OFDM_FALSE_ALARM	1
-#define RXERR_TYPE_OFDM_MPDU_OK	2
-#define RXERR_TYPE_OFDM_MPDU_FAIL	3
-#define RXERR_TYPE_CCK_PPDU	4
-#define RXERR_TYPE_CCK_FALSE_ALARM	5
-#define RXERR_TYPE_CCK_MPDU_OK	6
-#define RXERR_TYPE_CCK_MPDU_FAIL	7
-#define RXERR_TYPE_HT_PPDU	8
-#define RXERR_TYPE_HT_FALSE_ALARM	9
-#define RXERR_TYPE_HT_MPDU_TOTAL	10
-#define RXERR_TYPE_HT_MPDU_OK	11
-#define RXERR_TYPE_HT_MPDU_FAIL	12
-#define RXERR_TYPE_RX_FULL_DROP	15
-
-#define RXERR_COUNTER_MASK	0xFFFFF
-#define RXERR_RPT_RST	BIT(27)
-#define _RXERR_RPT_SEL(type) ((type) << 28)
-
-#define SCR_TX_USE_DK	BIT(0)
-#define SCR_RX_USE_DK	BIT(1)
-#define SCR_TX_ENC_ENABLE	BIT(2)
-#define SRC_RX_DEC_ENABLE	BIT(3)
-#define SCR_SK_BY_A2	BIT(4)
-#define SCR_NO_SKMC	BIT(5)
-#define SCR_TXBCUSEDK	BIT(6)
-#define SCR_RXBCUSEDK	BIT(7)
-
-#define USB_IS_HIGH_SPEED	0
-#define USB_IS_FULL_SPEED	1
-#define USB_SPEED_MASK	BIT(5)
-
-#define USB_NORMAL_SIE_EP_MASK	0xF
-#define USB_NORMAL_SIE_EP_SHIFT	4
-
-#define USB_TEST_EP_MASK	0x30
-#define USB_TEST_EP_SHIFT	4
-
-#define USB_AGG_EN	BIT(3)
-
-#define MAC_ADDR_LEN	6
-#define LAST_ENTRY_OF_TX_PKT_BUFFER	175
-
-#define POLLING_LLT_THRESHOLD	20
-#define POLLING_READY_TIMEOUT_COUNT	3000
-
-#define MAX_MSS_DENSITY_2T	0x13
-#define MAX_MSS_DENSITY_1T	0x0A
-
-#define EPROM_CMD_OPERATING_MODE_MASK ((1 << 7) | (1 << 6))
-#define EPROM_CMD_CONFIG	0x3
-#define EPROM_CMD_LOAD	1
-
-#define HAL_8822B_HW_GPIO_WPS_BIT	BIT(2)
-
-/*-----------------------------------------------------
- * BB / RF register
- *-----------------------------------------------------
- */
-
-#define RFPGA0_XA_HSSIPARAMETER1	0x820
-#define RFPGA0_XA_HSSIPARAMETER2	0x824
-#define RFPGA0_XB_HSSIPARAMETER1	0x828
-#define RFPGA0_XB_HSSIPARAMETER2 0x82c
-#define RCCAONSEC	0x838
-
-#define RFPGA0_XA_LSSIPARAMETER	0x840
-#define RFPGA0_XB_LSSIPARAMETER	0x844
-#define RL1PEAKTH	0x848
-
-#define RFPGA0_RFWAKEUPPARAMETER	0x850
-#define RFPGA0_RFSLEEPUPPARAMETER	0x854
-
-#define RFPGA0_XAB_SWITCHCONTROL	0x858
-#define RFPGA0_XCD_SWITCHCONTROL 0x85c
-
-#define RFPGA0_XA_RFINTERFACEOE	0x860
-#define RFC_AREA	0x860
-#define RFPGA0_XB_RFINTERFACEOE	0x864
-
-#define RFPGA0_XAB_RFINTERFACESW	0x870
-#define RFPGA0_XCD_RFINTERFACESW	0x874
-
-#define RFPGA0_XAB_RF_PARA_METER	0x878
-#define RFPGA0_XCD_RF_PARA_METER 0x87c
-
-#define RFPGA0_ANALOGPARAMETER1	0x880
-#define RFPGA0_ANALOGPARAMETER2	0x884
-#define RFPGA0_ANALOGPARAMETER3	0x888
-#define RFPGA0_ANALOGPARAMETER4 0x88c
-
-#define RFPGA0_XA_LSSIREADBACK 0x8a0
-#define RFPGA0_XB_LSSIREADBACK 0x8a4
-#define RFPGA0_XC_LSSIREADBACK 0x8a8
-/*#define	RFPGA0_XD_LSSIREADBACK			0x8ac*/
-#define RRFMOD 0x8ac
-#define RHSSIREAD_8822BE 0x8b0
-
-#define RFPGA0_PSDREPORT 0x8b4
-#define TRANSCEIVEA_HSPI_READBACK 0x8b8
-#define TRANSCEIVEB_HSPI_READBACK 0x8bc
-/*#define	REG_SC_CNT_8822B				0x8c4*/
-#define RADC_BUF_CLK 0x8c4
-#define RFPGA0_XAB_RFINTERFACERB 0x8e0
-#define RFPGA0_XCD_RFINTERFACERB 0x8e4
-
-/* PageB(0xB00) */
-
-/*Page C*/
-
-#define RA_TXPWRTRAING 0xc54
-#define RB_TXPWRTRAING 0xe54
-
-#define RA_LSSIWRITE_8822B 0xc90
-#define RB_LSSIWRITE_8822B 0xe90
-
-#define RA_PIREAD_8822B 0xd04
-#define RB_PIREAD_8822B 0xd44
-#define RA_SIREAD_8822B 0xd08
-#define RB_SIREAD_8822B 0xd48
-
-#define RZEBRA1_HSSIENABLE	0x0
-#define RZEBRA1_TRXENABLE1	0x1
-#define RZEBRA1_TRXENABLE2	0x2
-#define RZEBRA1_AGC	0x4
-#define RZEBRA1_CHARGEPUMP	0x5
-#define RZEBRA1_CHANNEL	0x7
-
-#define RZEBRA1_TXGAIN	0x8
-#define RZEBRA1_TXLPF	0x9
-#define RZEBRA1_RXLPF 0xb
-#define RZEBRA1_RXHPFCORNER 0xc
-
-#define RGLOBALCTRL	0
-#define RRTL8256_TXLPF	19
-#define RRTL8256_RXLPF	11
-#define RRTL8258_TXLPF	0x11
-#define RRTL8258_RXLPF	0x13
-#define RRTL8258_RSSILPF 0xa
-
-#define RF_AC	0x00
-
-#define RF_IQADJ_G1	0x01
-#define RF_IQADJ_G2	0x02
-#define RF_POW_TRSW	0x05
-
-#define RF_GAIN_RX	0x06
-#define RF_GAIN_TX	0x07
-
-#define RF_TXM_IDAC	0x08
-#define RF_BS_IQGEN	0x0F
-
-#define RF_MODE1	0x10
-#define RF_MODE2	0x11
-
-#define RF_RX_AGC_HP	0x12
-#define RF_TX_AGC	0x13
-#define RF_BIAS	0x14
-#define RF_IPA	0x15
-#define RF_POW_ABILITY	0x17
-#define RF_MODE_AG	0x18
-#define RRFCHANNEL	0x18
-#define RF_CHNLBW	0x18
-#define RF_TOP	0x19
-
-#define RF_RX_G1	0x1A
-#define RF_RX_G2	0x1B
-
-#define RF_RX_BB2	0x1C
-#define RF_RX_BB1	0x1D
-
-#define RF_RCK1	0x1E
-#define RF_RCK2	0x1F
-
-#define RF_TX_G1	0x20
-#define RF_TX_G2	0x21
-#define RF_TX_G3	0x22
-
-#define RF_TX_BB1	0x23
-#define RF_T_METER	0x42
-
-#define RF_SYN_G1	0x25
-#define RF_SYN_G2	0x26
-#define RF_SYN_G3	0x27
-#define RF_SYN_G4	0x28
-#define RF_SYN_G5	0x29
-#define RF_SYN_G6	0x2A
-#define RF_SYN_G7	0x2B
-#define RF_SYN_G8	0x2C
-
-#define RF_RCK_OS	0x30
-#define RF_TXPA_G1	0x31
-#define RF_TXPA_G2	0x32
-#define RF_TXPA_G3	0x33
-
-#define RF_TX_BIAS_A	0x35
-#define RF_TX_BIAS_D	0x36
-#define RF_LOBF_9	0x38
-#define RF_RXRF_A3	0x3C
-#define RF_TRSW	0x3F
-
-#define RF_TXRF_A2	0x41
-#define RF_TXPA_G4	0x46
-#define RF_TXPA_A4	0x4B
-
-#define RF_APK	0x63
-
-#define RF_WE_LUT	0xEF
-
-#define BBBRESETB	0x100
-#define BGLOBALRESETB	0x200
-#define BOFDMTXSTART	0x4
-#define BCCKTXSTART	0x8
-#define BCRC32DEBUG	0x100
-#define BPMACLOOPBACK	0x10
-#define BTXLSIG 0xffffff
-#define BOFDMTXRATE 0xf
-#define BOFDMTXRESERVED	0x10
-#define BOFDMTXLENGTH 0x1ffe0
-#define BOFDMTXPARITY	0x20000
-#define BTXHTSIG1 0xffffff
-#define BTXHTMCSRATE 0x7f
-#define BTXHTBW	0x80
-#define BTXHTLENGTH 0xffff00
-#define BTXHTSIG2 0xffffff
-#define BTXHTSMOOTHING	0x1
-#define BTXHTSOUNDING	0x2
-#define BTXHTRESERVED	0x4
-#define BTXHTAGGREATION	0x8
-#define BTXHTSTBC	0x30
-#define BTXHTADVANCECODING	0x40
-#define BTXHTSHORTGI	0x80
-#define BTXHTNUMBERHT_LTF	0x300
-#define BTXHTCRC8 0x3fc00
-#define BCOUNTERRESET	0x10000
-#define BNUMOFOFDMTX 0xffff
-#define BNUMOFCCKTX 0xffff0000
-#define BTXIDLEINTERVAL 0xffff
-#define BOFDMSERVICE 0xffff0000
-#define BTXMACHEADER 0xffffffff
-#define BTXDATAINIT 0xff
-#define BTXHTMODE	0x100
-#define BTXDATATYPE	0x30000
-#define BTXRANDOMSEED 0xffffffff
-#define BCCKTXPREAMBLE	0x1
-#define BCCKTXSFD 0xffff0000
-#define BCCKTXSIG 0xff
-#define BCCKTXSERVICE 0xff00
-#define BCCKLENGTHEXT	0x8000
-#define BCCKTXLENGHT 0xffff0000
-#define BCCKTXCRC16 0xffff
-#define BCCKTXSTATUS	0x1
-#define BOFDMTXSTATUS	0x2
-#define IS_BB_REG_OFFSET_92S(_offset) ((_offset >= 0x800) && (_offset <= 0xfff))
-
-#define BRFMOD	0x1
-#define BJAPANMODE	0x2
-#define BCCKTXSC	0x30
-/* Block & Path enable*/
-#define ROFDMCCKEN	0x808
-#define BCCKEN	0x10000000
-#define BOFDMEN	0x20000000
-/* Rx antenna*/
-#define RRXPATH	0x808
-#define BRXPATH 0xff
-/* Tx antenna*/
-#define RTXPATH 0x80c
-#define BTXPATH 0x0fffffff
-/* for cck rx path selection*/
-#define RCCK_RX 0xa04
-#define BCCK_RX 0x0c000000
-/* Use LSIG for VHT length*/
-#define RVHTLEN_USE_LSIG 0x8c3
-
-#define BOFDMRXADCPHASE	0x10000
-#define BOFDMTXDACPHASE	0x40000
-#define BXATXAGC 0x3f
-
-#define BXBTXAGC 0xf00
-#define BXCTXAGC 0xf000
-#define BXDTXAGC 0xf0000
-
-#define BPASTART 0xf0000000
-#define BTRSTART 0x00f00000
-#define BRFSTART 0x0000f000
-#define BBBSTART 0x000000f0
-#define BBBCCKSTART 0x0000000f
-#define BPAEND 0xf
-#define BTREND 0x0f000000
-#define BRFEND 0x000f0000
-#define BCCAMASK 0x000000f0
-#define BR2RCCAMASK 0x00000f00
-#define BHSSI_R2TDELAY 0xf8000000
-#define BHSSI_T2RDELAY 0xf80000
-#define BCONTXHSSI	0x400
-#define BIGFROMCCK	0x200
-#define BAGCADDRESS 0x3f
-#define BRXHPTX	0x7000
-#define BRXHP2RX	0x38000
-#define BRXHPCCKINI 0xc0000
-#define BAGCTXCODE 0xc00000
-#define BAGCRXCODE	0x300000
-
-#define B3WIREDATALENGTH	0x800
-#define B3WIREADDREAALENGTH	0x400
-
-#define B3WIRERFPOWERDOWN	0x1
-#define B5GPAPEPOLARITY	0x40000000
-#define B2GPAPEPOLARITY	0x80000000
-#define BRFSW_TXDEFAULTANT	0x3
-#define BRFSW_TXOPTIONANT	0x30
-#define BRFSW_RXDEFAULTANT	0x300
-#define BRFSW_RXOPTIONANT	0x3000
-#define BRFSI_3WIREDATA	0x1
-#define BRFSI_3WIRECLOCK	0x2
-#define BRFSI_3WIRELOAD	0x4
-#define BRFSI_3WIRERW	0x8
-#define BRFSI_3WIRE 0xf
-
-#define BRFSI_RFENV	0x10
-
-#define BRFSI_TRSW	0x20
-#define BRFSI_TRSWB	0x40
-#define BRFSI_ANTSW	0x100
-#define BRFSI_ANTSWB	0x200
-#define BRFSI_PAPE	0x400
-#define BRFSI_PAPE5G	0x800
-#define BBANDSELECT	0x1
-#define BHTSIG2_GI	0x80
-#define BHTSIG2_SMOOTHING	0x01
-#define BHTSIG2_SOUNDING	0x02
-#define BHTSIG2_AGGREATON	0x08
-#define BHTSIG2_STBC	0x30
-#define BHTSIG2_ADVCODING	0x40
-#define BHTSIG2_NUMOFHTLTF	0x300
-#define BHTSIG2_CRC8 0x3fc
-#define BHTSIG1_MCS 0x7f
-#define BHTSIG1_BANDWIDTH	0x80
-#define BHTSIG1_HTLENGTH 0xffff
-#define BLSIG_RATE 0xf
-#define BLSIG_RESERVED	0x10
-#define BLSIG_LENGTH 0x1fffe
-#define BLSIG_PARITY	0x20
-#define BCCKRXPHASE	0x4
-
-#define BLSSIREADADDRESS 0x7f800000
-#define BLSSIREADEDGE	0x80000000
-
-#define BLSSIREADBACKDATA 0xfffff
-
-#define BLSSIREADOKFLAG	0x1000
-#define BCCKSAMPLERATE	0x8
-#define BREGULATOR0STANDBY	0x1
-#define BREGULATORPLLSTANDBY	0x2
-#define BREGULATOR1STANDBY	0x4
-#define BPLLPOWERUP	0x8
-#define BDPLLPOWERUP	0x10
-#define BDA10POWERUP	0x20
-#define BAD7POWERUP	0x200
-#define BDA6POWERUP	0x2000
-#define BXTALPOWERUP	0x4000
-#define B40MDCLKPOWERUP	0x8000
-#define BDA6DEBUGMODE	0x20000
-#define BDA6SWING	0x380000
-
-#define BADCLKPHASE	0x4000000
-#define B80MCLKDELAY	0x18000000
-#define BAFEWATCHDOGENABLE	0x20000000
-
-#define BXTALCAP01 0xc0000000
-#define BXTALCAP23	0x3
-#define BXTALCAP92X 0x0f000000
-#define BXTALCAP 0x0f000000
-
-#define BINTDIFCLKENABLE	0x400
-#define BEXTSIGCLKENABLE	0x800
-#define BBANDGAP_MBIAS_POWERUP	0x10000
-#define BAD11SH_GAIN 0xc0000
-#define BAD11NPUT_RANGE	0x700000
-#define BAD110P_CURRENT	0x3800000
-#define BLPATH_LOOPBACK	0x4000000
-#define BQPATH_LOOPBACK	0x8000000
-#define BAFE_LOOPBACK	0x10000000
-#define BDA10_SWING 0x7e0
-#define BDA10_REVERSE	0x800
-#define BDA_CLK_SOURCE	0x1000
-#define BDA7INPUT_RANGE	0x6000
-#define BDA7_GAIN	0x38000
-#define BDA7OUTPUT_CM_MODE	0x40000
-#define BDA7INPUT_CM_MODE	0x380000
-#define BDA7CURRENT 0xc00000
-#define BREGULATOR_ADJUST	0x7000000
-#define BAD11POWERUP_ATTX	0x1
-#define BDA10PS_ATTX	0x10
-#define BAD11POWERUP_ATRX	0x100
-#define BDA10PS_ATRX	0x1000
-#define BCCKRX_AGC_FORMAT	0x200
-#define BPSDFFT_SAMPLE_POINT 0xc000
-#define BPSD_AVERAGE_NUM	0x3000
-#define BIQPATH_CONTROL 0xc00
-#define BPSD_FREQ 0x3ff
-#define BPSD_ANTENNA_PATH	0x30
-#define BPSD_IQ_SWITCH	0x40
-#define BPSD_RX_TRIGGER	0x400000
-#define BPSD_TX_TRIGGER	0x80000000
-#define BPSD_SINE_TONE_SCALE 0x7f000000
-#define BPSD_REPORT 0xffff
-
-#define BOFDM_TXSC	0x30000000
-#define BCCK_TXON	0x1
-#define BOFDM_TXON	0x2
-#define BDEBUG_PAGE 0xfff
-#define BDEBUG_ITEM 0xff
-#define BANTL	0x10
-#define BANT_NONHT	0x100
-#define BANT_HT1	0x1000
-#define BANT_HT2	0x10000
-#define BANT_HT1S1	0x100000
-#define BANT_NONHTS1	0x1000000
-
-#define BCCK_BBMODE	0x3
-#define BCCK_TXPOWERSAVING	0x80
-#define BCCK_RXPOWERSAVING	0x40
-
-#define BCCK_SIDEBAND	0x10
-
-#define BCCK_SCRAMBLE	0x8
-#define BCCK_ANTDIVERSITY	0x8000
-#define BCCK_CARRIER_RECOVERY	0x4000
-#define BCCK_TXRATE	0x3000
-#define BCCK_DCCANCEL	0x0800
-#define BCCK_ISICANCEL	0x0400
-#define BCCK_MATCH_FILTER	0x0200
-#define BCCK_EQUALIZER	0x0100
-#define BCCK_PREAMBLE_DETECT	0x800000
-#define BCCK_FAST_FALSECCA	0x400000
-#define BCCK_CH_ESTSTART	0x300000
-#define BCCK_CCA_COUNT	0x080000
-#define BCCK_CS_LIM	0x070000
-#define BCCK_BIST_MODE	0x80000000
-#define BCCK_CCAMASK	0x40000000
-#define BCCK_TX_DAC_PHASE	0x4
-#define BCCK_RX_ADC_PHASE	0x20000000
-#define BCCKR_CP_MODE	0x0100
-#define BCCK_TXDC_OFFSET 0xf0
-#define BCCK_RXDC_OFFSET 0xf
-#define BCCK_CCA_MODE 0xc000
-#define BCCK_FALSECS_LIM 0x3f00
-#define BCCK_CS_RATIO 0xc00000
-#define BCCK_CORGBIT_SEL	0x300000
-#define BCCK_PD_LIM 0x0f0000
-#define BCCK_NEWCCA	0x80000000
-#define BCCK_RXHP_OF_IG	0x8000
-#define BCCK_RXIG 0x7f00
-#define BCCK_LNA_POLARITY	0x800000
-#define BCCK_RX1ST_BAIN 0x7f0000
-#define BCCK_RF_EXTEND	0x20000000
-#define BCCK_RXAGC_SATLEVEL 0x1f000000
-#define BCCK_RXAGC_SATCOUNT 0xe0
-#define BCCK_RX_RF_SETTLE 0x1f
-#define BCCK_FIXED_RXAGC	0x8000
-#define BCCK_ANTENNA_POLARITY	0x2000
-#define BCCK_TXFILTER_TYPE 0x0c00
-#define BCCK_RXAGC_REPORTTYPE	0x0300
-#define BCCK_RXDAGC_EN	0x80000000
-#define BCCK_RXDAGC_PERIOD	0x20000000
-#define BCCK_RXDAGC_SATLEVEL 0x1f000000
-#define BCCK_TIMING_RECOVERY	0x800000
-#define BCCK_TXC0 0x3f0000
-#define BCCK_TXC1 0x3f000000
-#define BCCK_TXC2 0x3f
-#define BCCK_TXC3 0x3f00
-#define BCCK_TXC4 0x3f0000
-#define BCCK_TXC5 0x3f000000
-#define BCCK_TXC6 0x3f
-#define BCCK_TXC7 0x3f00
-#define BCCK_DEBUGPORT 0xff0000
-#define BCCK_DAC_DEBUG 0x0f000000
-#define BCCK_FALSEALARM_ENABLE	0x8000
-#define BCCK_FALSEALARM_READ	0x4000
-#define BCCK_TRSSI 0x7f
-#define BCCK_RXAGC_REPORT 0xfe
-#define BCCK_RXREPORT_ANTSEL	0x80000000
-#define BCCK_RXREPORT_MFOFF	0x40000000
-#define BCCK_RXREPORT_SQLOSS	0x20000000
-#define BCCK_RXREPORT_PKTLOSS	0x10000000
-#define BCCK_RXREPORT_LOCKEDBIT	0x08000000
-#define BCCK_RXREPORT_RATEERROR	0x04000000
-#define BCCK_RXREPORT_RXRATE	0x03000000
-#define BCCK_RXFA_COUNTER_LOWER 0xff
-#define BCCK_RXFA_COUNTER_UPPER 0xff000000
-#define BCCK_RXHPAGC_START 0xe000
-#define BCCK_RXHPAGC_FINAL 0x1c00
-#define BCCK_RXFALSEALARM_ENABLE	0x8000
-#define BCCK_FACOUNTER_FREEZE	0x4000
-#define BCCK_TXPATH_SEL	0x10000000
-#define BCCK_DEFAULT_RXPATH 0xc000000
-#define BCCK_OPTION_RXPATH	0x3000000
-
-#define BNUM_OFSTF	0x3
-#define BSHIFT_L 0xc0
-#define BGI_TH 0xc
-#define BRXPATH_A	0x1
-#define BRXPATH_B	0x2
-#define BRXPATH_C	0x4
-#define BRXPATH_D	0x8
-#define BTXPATH_A	0x1
-#define BTXPATH_B	0x2
-#define BTXPATH_C	0x4
-#define BTXPATH_D	0x8
-#define BTRSSI_FREQ	0x200
-#define BADC_BACKOFF	0x3000
-#define BDFIR_BACKOFF 0xc000
-#define BTRSSI_LATCH_PHASE	0x10000
-#define BRX_LDC_OFFSET 0xff
-#define BRX_QDC_OFFSET 0xff00
-#define BRX_DFIR_MODE	0x1800000
-#define BRX_DCNF_TYPE 0xe000000
-#define BRXIQIMB_A 0x3ff
-#define BRXIQIMB_B 0xfc00
-#define BRXIQIMB_C 0x3f0000
-#define BRXIQIMB_D 0xffc00000
-#define BDC_DC_NOTCH	0x60000
-#define BRXNB_NOTCH 0x1f000000
-#define BPD_TH 0xf
-#define BPD_TH_OPT2 0xc000
-#define BPWED_TH	0x700
-#define BIFMF_WIN_L	0x800
-#define BPD_OPTION	0x1000
-#define BMF_WIN_L 0xe000
-#define BBW_SEARCH_L	0x30000
-#define BWIN_ENH_L 0xc0000
-#define BBW_TH	0x700000
-#define BED_TH2	0x3800000
-#define BBW_OPTION	0x4000000
-#define BRADIO_TH	0x18000000
-#define BWINDOW_L 0xe0000000
-#define BSBD_OPTION	0x1
-#define BFRAME_TH 0x1c
-#define BFS_OPTION	0x60
-#define BDC_SLOPE_CHECK	0x80
-#define BFGUARD_COUNTER_DC_L 0xe00
-#define BFRAME_WEIGHT_SHORT	0x7000
-#define BSUB_TUNE 0xe00000
-#define BFRAME_DC_LENGTH 0xe000000
-#define BSBD_START_OFFSET	0x30000000
-#define BFRAME_TH_2	0x7
-#define BFRAME_GI2_TH	0x38
-#define BGI2_SYNC_EN	0x40
-#define BSARCH_SHORT_EARLY	0x300
-#define BSARCH_SHORT_LATE 0xc00
-#define BSARCH_GI2_LATE	0x70000
-#define BCFOANTSUM	0x1
-#define BCFOACC	0x2
-#define BCFOSTARTOFFSET 0xc
-#define BCFOLOOPBACK	0x70
-#define BCFOSUMWEIGHT	0x80
-#define BDAGCENABLE	0x10000
-#define BTXIQIMB_A 0x3ff
-#define BTXIQIMB_b 0xfc00
-#define BTXIQIMB_C 0x3f0000
-#define BTXIQIMB_D 0xffc00000
-#define BTXIDCOFFSET 0xff
-#define BTXIQDCOFFSET 0xff00
-#define BTXDFIRMODE	0x10000
-#define BTXPESUDO_NOISEON	0x4000000
-#define BTXPESUDO_NOISE_A 0xff
-#define BTXPESUDO_NOISE_B 0xff00
-#define BTXPESUDO_NOISE_C 0xff0000
-#define BTXPESUDO_NOISE_D 0xff000000
-#define BCCA_DROPOPTION	0x20000
-#define BCCA_DROPTHRES 0xfff00000
-#define BEDCCA_H 0xf
-#define BEDCCA_L 0xf0
-#define BLAMBDA_ED	0x300
-#define BRX_INITIALGAIN 0x7f
-#define BRX_ANTDIV_EN	0x80
-#define BRX_AGC_ADDRESS_FOR_LNA 0x7f00
-#define BRX_HIGHPOWER_FLOW	0x8000
-#define BRX_AGC_FREEZE_THRES 0xc0000
-#define BRX_FREEZESTEP_AGC1	0x300000
-#define BRX_FREEZESTEP_AGC2 0xc00000
-#define BRX_FREEZESTEP_AGC3	0x3000000
-#define BRX_FREEZESTEP_AGC0 0xc000000
-#define BRXRSSI_CMP_EN	0x10000000
-#define BRXQUICK_AGCEN	0x20000000
-#define BRXAGC_FREEZE_THRES_MODE	0x40000000
-#define BRX_OVERFLOW_CHECKTYPE	0x80000000
-#define BRX_AGCSHIFT 0x7f
-#define BTRSW_TRI_ONLY	0x80
-#define BPOWER_THRES	0x300
-#define BRXAGC_EN	0x1
-#define BRXAGC_TOGETHER_EN	0x2
-#define BRXAGC_MIN	0x4
-#define BRXHP_INI	0x7
-#define BRXHP_TRLNA	0x70
-#define BRXHP_RSSI	0x700
-#define BRXHP_BBP1	0x7000
-#define BRXHP_BBP2	0x70000
-#define BRXHP_BBP3	0x700000
-#define BRSSI_H 0x7f0000
-#define BRSSI_GEN 0x7f000000
-#define BRXSETTLE_TRSW	0x7
-#define BRXSETTLE_LNA	0x38
-#define BRXSETTLE_RSSI 0x1c0
-#define BRXSETTLE_BBP 0xe00
-#define BRXSETTLE_RXHP	0x7000
-#define BRXSETTLE_ANTSW_RSSI	0x38000
-#define BRXSETTLE_ANTSW 0xc0000
-#define BRXPROCESS_TIME_DAGC	0x300000
-#define BRXSETTLE_HSSI	0x400000
-#define BRXPROCESS_TIME_BBPPW	0x800000
-#define BRXANTENNA_POWER_SHIFT	0x3000000
-#define BRSSI_TABLE_SELECT 0xc000000
-#define BRXHP_FINAL	0x7000000
-#define BRXHPSETTLE_BBP	0x7
-#define BRXHTSETTLE_HSSI	0x8
-#define BRXHTSETTLE_RXHP	0x70
-#define BRXHTSETTLE_BBPPW	0x80
-#define BRXHTSETTLE_IDLE	0x300
-#define BRXHTSETTLE_RESERVED 0x1c00
-#define BRXHT_RXHP_EN	0x8000
-#define BRXAGC_FREEZE_THRES	0x30000
-#define BRXAGC_TOGETHEREN	0x40000
-#define BRXHTAGC_MIN	0x80000
-#define BRXHTAGC_EN	0x100000
-#define BRXHTDAGC_EN	0x200000
-#define BRXHT_RXHP_BBP 0x1c00000
-#define BRXHT_RXHP_FINAL 0xe0000000
-#define BRXPW_RADIO_TH	0x3
-#define BRXPW_RADIO_EN	0x4
-#define BRXMF_HOLD	0x3800
-#define BRXPD_DELAY_TH1	0x38
-#define BRXPD_DELAY_TH2 0x1c0
-#define BRXPD_DC_COUNT_MAX	0x600
-#define BRXPD_DELAY_TH	0x8000
-#define BRXPROCESS_DELAY 0xf0000
-#define BRXSEARCHRANGE_GI2_EARLY	0x700000
-#define BRXFRAME_FUARD_COUNTER_L	0x3800000
-#define BRXSGI_GUARD_L 0xc000000
-#define BRXSGI_SEARCH_L	0x30000000
-#define BRXSGI_TH 0xc0000000
-#define BDFSCNT0 0xff
-#define BDFSCNT1 0xff00
-#define BDFSFLAG 0xf0000
-#define BMF_WEIGHT_SUM	0x300000
-#define BMINIDX_TH 0x7f000000
-#define BDAFORMAT	0x40000
-#define BTXCH_EMU_ENABLE	0x01000000
-#define BTRSW_ISOLATION_A 0x7f
-#define BTRSW_ISOLATION_B 0x7f00
-#define BTRSW_ISOLATION_C 0x7f0000
-#define BTRSW_ISOLATION_D 0x7f000000
-#define BEXT_LNA_GAIN 0x7c00
-
-#define BSTBC_EN	0x4
-#define BANTENNA_MAPPING	0x10
-#define BNSS	0x20
-#define BCFO_ANTSUM_ID	0x200
-#define BPHY_COUNTER_RESET	0x8000000
-#define BCFO_REPORT_GET	0x4000000
-#define BOFDM_CONTINUE_TX	0x10000000
-#define BOFDM_SINGLE_CARRIER	0x20000000
-#define BOFDM_SINGLE_TONE	0x40000000
-#define BHT_DETECT	0x100
-#define BCFOEN	0x10000
-#define BCFOVALUE 0xfff00000
-#define BSIGTONE_RE 0x3f
-#define BSIGTONE_IM 0x7f00
-#define BCOUNTER_CCA 0xffff
-#define BCOUNTER_PARITYFAIL 0xffff0000
-#define BCOUNTER_RATEILLEGAL 0xffff
-#define BCOUNTER_CRC8FAIL 0xffff0000
-#define BCOUNTER_MCSNOSUPPORT 0xffff
-#define BCOUNTER_FASTSYNC 0xffff
-#define BSHORTCFO 0xfff
-#define BSHORTCFOT_LENGTH	12
-#define BSHORTCFOF_LENGTH	11
-#define BLONGCFO 0x7ff
-#define BLONGCFOT_LENGTH	11
-#define BLONGCFOF_LENGTH	11
-#define BTAILCFO 0x1fff
-#define BTAILCFOT_LENGTH	13
-#define BTAILCFOF_LENGTH	12
-#define BNOISE_EN_PWDB 0xffff
-#define BCC_POWER_DB 0xffff0000
-#define BMOISE_PWDB 0xffff
-#define BPOWERMEAST_LENGTH	10
-#define BPOWERMEASF_LENGTH	3
-#define BRX_HT_BW	0x1
-#define BRXSC	0x6
-#define BRX_HT	0x8
-#define BNB_INTF_DET_ON	0x1
-#define BINTF_WIN_LEN_CFG	0x30
-#define BNB_INTF_TH_CFG 0x1c0
-#define BRFGAIN 0x3f
-#define BTABLESEL	0x40
-#define BTRSW	0x80
-#define BRXSNR_A 0xff
-#define BRXSNR_B 0xff00
-#define BRXSNR_C 0xff0000
-#define BRXSNR_D 0xff000000
-#define BSNR_EVMT_LENGTH	8
-#define BSNR_EVMF_LENGTH	1
-#define BCSI1ST 0xff
-#define BCSI2ND 0xff00
-#define BRXEVM1ST 0xff0000
-#define BRXEVM2ND 0xff000000
-#define BSIGEVM 0xff
-#define BPWDB 0xff00
-#define BSGIEN	0x10000
-
-#define BSFACTOR_QMA1 0xf
-#define BSFACTOR_QMA2 0xf0
-#define BSFACTOR_QMA3 0xf00
-#define BSFACTOR_QMA4 0xf000
-#define BSFACTOR_QMA5 0xf0000
-#define BSFACTOR_QMA6 0xf0000
-#define BSFACTOR_QMA7 0xf00000
-#define BSFACTOR_QMA8 0xf000000
-#define BSFACTOR_QMA9 0xf0000000
-#define BCSI_SCHEME	0x100000
-
-#define BNOISE_LVL_TOP_SET	0x3
-#define BCHSMOOTH	0x4
-#define BCHSMOOTH_CFG1	0x38
-#define BCHSMOOTH_CFG2 0x1c0
-#define BCHSMOOTH_CFG3 0xe00
-#define BCHSMOOTH_CFG4	0x7000
-#define BMRCMODE	0x800000
-#define BTHEVMCFG	0x7000000
-
-#define BLOOP_FIT_TYPE	0x1
-#define BUPD_CFO	0x40
-#define BUPD_CFO_OFFDATA	0x80
-#define BADV_UPD_CFO	0x100
-#define BADV_TIME_CTRL	0x800
-#define BUPD_CLKO	0x1000
-#define BFC	0x6000
-#define BTRACKING_MODE	0x8000
-#define BPHCMP_ENABLE	0x10000
-#define BUPD_CLKO_LTF	0x20000
-#define BCOM_CH_CFO	0x40000
-#define BCSI_ESTI_MODE	0x80000
-#define BADV_UPD_EQZ	0x100000
-#define BUCHCFG	0x7000000
-#define BUPDEQZ	0x8000000
-
-#define BRX_PESUDO_NOISE_ON	0x20000000
-#define BRX_PESUDO_NOISE_A 0xff
-#define BRX_PESUDO_NOISE_B 0xff00
-#define BRX_PESUDO_NOISE_C 0xff0000
-#define BRX_PESUDO_NOISE_D 0xff000000
-#define BRX_PESUDO_NOISESTATE_A 0xffff
-#define BRX_PESUDO_NOISESTATE_B 0xffff0000
-#define BRX_PESUDO_NOISESTATE_C 0xffff
-#define BRX_PESUDO_NOISESTATE_D 0xffff0000
-
-#define BZEBRA1_HSSIENABLE	0x8
-#define BZEBRA1_TRXCONTROL 0xc00
-#define BZEBRA1_TRXGAINSETTING 0x07f
-#define BZEBRA1_RXCOUNTER 0xc00
-#define BZEBRA1_TXCHANGEPUMP	0x38
-#define BZEBRA1_RXCHANGEPUMP	0x7
-#define BZEBRA1_CHANNEL_NUM 0xf80
-#define BZEBRA1_TXLPFBW	0x400
-#define BZEBRA1_RXLPFBW	0x600
-
-#define BRTL8256REG_MODE_CTRL1	0x100
-#define BRTL8256REG_MODE_CTRL0	0x40
-#define BRTL8256REG_TXLPFBW	0x18
-#define BRTL8256REG_RXLPFBW	0x600
-
-#define BRTL8258_TXLPFBW 0xc
-#define BRTL8258_RXLPFBW 0xc00
-#define BRTL8258_RSSILPFBW 0xc0
-
-#define BBYTE0	0x1
-#define BBYTE1	0x2
-#define BBYTE2	0x4
-#define BBYTE3	0x8
-#define BWORD0	0x3
-#define BWORD1 0xc
-#define BWORD 0xf
-
-#define MASKBYTE0 0xff
-#define MASKBYTE1 0xff00
-#define MASKBYTE2 0xff0000
-#define MASKBYTE3 0xff000000
-#define MASKHWORD 0xffff0000
-#define MASKLWORD 0x0000ffff
-#define MASKDWORD 0xffffffff
-#define MASK12BITS 0xfff
-#define MASKH4BITS 0xf0000000
-#define MASKOFDM_D 0xffc00000
-#define MASKCCK 0x3f3f3f3f
-
-#define MASK4BITS 0x0f
-#define MASK20BITS 0xfffff
-#define RFREG_OFFSET_MASK 0xfffff
-
-#define BMASKBYTE0 0xff
-#define BMASKBYTE1 0xff00
-#define BMASKBYTE2 0xff0000
-#define BMASKBYTE3 0xff000000
-#define BMASKHWORD 0xffff0000
-#define BMASKLWORD 0x0000ffff
-#define BMASKDWORD 0xffffffff
-#define BMASK12BITS 0xfff
-#define BMASKH4BITS 0xf0000000
-#define BMASKOFDM_D 0xffc00000
-#define BMASKCCK 0x3f3f3f3f
-
-#define BRFREGOFFSETMASK 0xfffff
-
-/* WOL bit information */
-#define WOL_REASON_PTK_UPDATE	BIT(0)
-#define WOL_REASON_GTK_UPDATE	BIT(1)
-#define WOL_REASON_DISASSOC	BIT(2)
-#define WOL_REASON_DEAUTH	BIT(3)
-#define WOL_REASON_FW_DISCONNECT	BIT(4)
-
-#endif
diff --git a/drivers/staging/rtlwifi/rtl8822be/sw.c b/drivers/staging/rtlwifi/rtl8822be/sw.c
deleted file mode 100644
index a2ab19fa..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/sw.c
+++ /dev/null
@@ -1,470 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../wifi.h"
-#include "../core.h"
-#include "../pci.h"
-#include "../base.h"
-#include "reg.h"
-#include "def.h"
-#include "phy.h"
-#include "hw.h"
-#include "sw.h"
-#include "fw.h"
-#include "trx.h"
-#include "led.h"
-#include "../btcoexist/rtl_btc.h"
-#include "../halmac/rtl_halmac.h"
-#include "../phydm/rtl_phydm.h"
-#include <linux/vmalloc.h>
-#include <linux/module.h>
-
-static void rtl8822be_init_aspm_vars(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-	/*close ASPM for AMD defaultly */
-	rtlpci->const_amdpci_aspm = 0;
-
-	/*
-	 * ASPM PS mode.
-	 * 0 - Disable ASPM,
-	 * 1 - Enable ASPM without Clock Req,
-	 * 2 - Enable ASPM with Clock Req,
-	 * 3 - Always Enable ASPM with Clock Req,
-	 * 4 - Always Enable ASPM without Clock Req.
-	 * set default to RTL8822BE:3 RTL8822B:2
-	 *
-	 */
-	rtlpci->const_pci_aspm = 3;
-
-	/*Setting for PCI-E device */
-	rtlpci->const_devicepci_aspm_setting = 0x03;
-
-	/*Setting for PCI-E bridge */
-	rtlpci->const_hostpci_aspm_setting = 0x02;
-
-	/*
-	 * In Hw/Sw Radio Off situation.
-	 * 0 - Default,
-	 * 1 - From ASPM setting without low Mac Pwr,
-	 * 2 - From ASPM setting with low Mac Pwr,
-	 * 3 - Bus D3
-	 * set default to RTL8822BE:0 RTL8192SE:2
-	 */
-	rtlpci->const_hwsw_rfoff_d3 = 0;
-
-	/*
-	 * This setting works for those device with
-	 * backdoor ASPM setting such as EPHY setting.
-	 * 0 - Not support ASPM,
-	 * 1 - Support ASPM,
-	 * 2 - According to chipset.
-	 */
-	rtlpci->const_support_pciaspm = rtlpriv->cfg->mod_params->aspm_support;
-}
-
-int rtl8822be_init_sw_vars(struct ieee80211_hw *hw)
-{
-	int err = 0;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	const char *fw_name;
-	struct rtl_phydm_params params;
-
-	rtl8822be_bt_reg_init(hw);
-	rtlpci->msi_support = rtlpriv->cfg->mod_params->msi_support;
-	rtlpriv->btcoexist.btc_ops = rtl_btc_get_ops_pointer();
-	rtlpriv->halmac.ops = rtl_halmac_get_ops_pointer();
-	rtlpriv->halmac.ops->halmac_init_adapter(rtlpriv);
-
-	/* should after halmac_init_adapter() */
-	rtl8822be_read_eeprom_info(hw, &params);
-
-	/* need eeprom info */
-	rtlpriv->phydm.ops = rtl_phydm_get_ops_pointer();
-	rtlpriv->phydm.ops->phydm_init_priv(rtlpriv, &params);
-
-	rtlpriv->dm.dm_initialgain_enable = 1;
-	rtlpriv->dm.dm_flag = 0;
-	rtlpriv->dm.disable_framebursting = 0;
-	/*rtlpriv->dm.thermalvalue = 0;*/
-	rtlpriv->dm.useramask = 1; /* turn on RA */
-	rtlpci->transmit_config = CFENDFORM | BIT(15);
-
-	rtlpriv->rtlhal.current_bandtype = BAND_ON_2_4G;
-	/*following 2 is for register 5G band, refer to _rtl_init_mac80211()*/
-	rtlpriv->rtlhal.bandset = BAND_ON_BOTH;
-	rtlpriv->rtlhal.macphymode = SINGLEMAC_SINGLEPHY;
-
-	rtlpci->receive_config = (RCR_APPFCS			|
-				  RCR_APP_MIC			|
-				  RCR_APP_ICV			|
-				  RCR_APP_PHYST_RXFF		|
-				  RCR_VHT_DACK			|
-				  RCR_HTC_LOC_CTRL		|
-				  /*RCR_AMF			|*/
-				  RCR_CBSSID_BCN		|
-				  RCR_CBSSID_DATA		|
-				  /*RCR_ACF			|*/
-				  /*RCR_ADF			|*/
-				  /*RCR_AICV			|*/
-				  /*RCR_ACRC32			|*/
-				  RCR_AB			|
-				  RCR_AM			|
-				  RCR_APM			|
-				  0);
-
-	rtlpci->irq_mask[0] = (u32)(IMR_PSTIMEOUT		|
-				    /*IMR_TBDER			|*/
-				    /*IMR_TBDOK			|*/
-				    /*IMR_BCNDMAINT0		|*/
-				    IMR_GTINT3			|
-				    IMR_HSISR_IND_ON_INT	|
-				    IMR_C2HCMD			|
-				    IMR_HIGHDOK			|
-				    IMR_MGNTDOK			|
-				    IMR_BKDOK			|
-				    IMR_BEDOK			|
-				    IMR_VIDOK			|
-				    IMR_VODOK			|
-				    IMR_RDU			|
-				    IMR_ROK			|
-				    0);
-
-	rtlpci->irq_mask[1] = (u32)(IMR_RXFOVW | IMR_TXFOVW | 0);
-	rtlpci->irq_mask[3] = (u32)(BIT_SETH2CDOK_MASK | 0);
-
-	/* for LPS & IPS */
-	rtlpriv->psc.inactiveps = rtlpriv->cfg->mod_params->inactiveps;
-	rtlpriv->psc.swctrl_lps = rtlpriv->cfg->mod_params->swctrl_lps;
-	rtlpriv->psc.fwctrl_lps = rtlpriv->cfg->mod_params->fwctrl_lps;
-	rtlpci->msi_support = rtlpriv->cfg->mod_params->msi_support;
-	if (rtlpriv->cfg->mod_params->disable_watchdog)
-		pr_info("watchdog disabled\n");
-	rtlpriv->psc.reg_fwctrl_lps = 2;
-	rtlpriv->psc.reg_max_lps_awakeintvl = 2;
-	/* for ASPM, you can close aspm through
-	 * set const_support_pciaspm = 0
-	 */
-	rtl8822be_init_aspm_vars(hw);
-
-	if (rtlpriv->psc.reg_fwctrl_lps == 1)
-		rtlpriv->psc.fwctrl_psmode = FW_PS_MIN_MODE;
-	else if (rtlpriv->psc.reg_fwctrl_lps == 2)
-		rtlpriv->psc.fwctrl_psmode = FW_PS_MAX_MODE;
-	else if (rtlpriv->psc.reg_fwctrl_lps == 3)
-		rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE;
-
-	/* for early mode */
-	rtlpriv->rtlhal.earlymode_enable = false;
-
-	/*low power */
-	rtlpriv->psc.low_power_enable = false;
-
-	/* for firmware buf */
-	rtlpriv->rtlhal.pfirmware = vzalloc(0x40000);
-	if (!rtlpriv->rtlhal.pfirmware) {
-		/*pr_err("Can't alloc buffer for fw\n");*/
-		return 1;
-	}
-
-	/* request fw */
-	fw_name = "rtlwifi/rtl8822befw.bin";
-
-	rtlpriv->max_fw_size = 0x40000;
-	pr_info("Using firmware %s\n", fw_name);
-	err = request_firmware_nowait(THIS_MODULE, 1, fw_name, rtlpriv->io.dev,
-				      GFP_KERNEL, hw, rtl_fw_cb);
-	if (err) {
-		pr_err("Failed to request firmware!\n");
-		return 1;
-	}
-
-	/* init table of tx power by rate & limit */
-	rtl8822be_load_txpower_by_rate(hw);
-	rtl8822be_load_txpower_limit(hw);
-
-	return 0;
-}
-
-void rtl8822be_deinit_sw_vars(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtlpriv->halmac.ops->halmac_deinit_adapter(rtlpriv);
-	rtlpriv->phydm.ops->phydm_deinit_priv(rtlpriv);
-
-	if (rtlpriv->rtlhal.pfirmware) {
-		vfree(rtlpriv->rtlhal.pfirmware);
-		rtlpriv->rtlhal.pfirmware = NULL;
-	}
-}
-
-/* get bt coexist status */
-bool rtl8822be_get_btc_status(void)
-{
-	return true;
-}
-
-static void rtl8822be_phydm_watchdog(struct ieee80211_hw *hw)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u32 tmp;
-
-	tmp = rtl_read_dword(rtlpriv, 0xc00);
-	if (tmp & 0xFF000000) { /* Recover 0xC00: 0xF800000C --> 0x0000000C */
-		RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-			 "found regaddr_c00=%08X\n", tmp);
-		tmp &= ~0xFF000000;
-		rtl_write_dword(rtlpriv, 0xc00, tmp);
-		RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-			 "apply regaddr_c00=%08X\n", tmp);
-	}
-
-	rtlpriv->phydm.ops->phydm_watchdog(rtlpriv);
-}
-
-static struct rtl_hal_ops rtl8822be_hal_ops = {
-	.init_sw_vars = rtl8822be_init_sw_vars,
-	.deinit_sw_vars = rtl8822be_deinit_sw_vars,
-	.read_eeprom_info = rtl8822be_read_eeprom_info_dummy,
-	.interrupt_recognized = rtl8822be_interrupt_recognized,
-	.hw_init = rtl8822be_hw_init,
-	.hw_disable = rtl8822be_card_disable,
-	.hw_suspend = rtl8822be_suspend,
-	.hw_resume = rtl8822be_resume,
-	.enable_interrupt = rtl8822be_enable_interrupt,
-	.disable_interrupt = rtl8822be_disable_interrupt,
-	.set_network_type = rtl8822be_set_network_type,
-	.set_chk_bssid = rtl8822be_set_check_bssid,
-	.set_qos = rtl8822be_set_qos,
-	.set_bcn_reg = rtl8822be_set_beacon_related_registers,
-	.set_bcn_intv = rtl8822be_set_beacon_interval,
-	.update_interrupt_mask = rtl8822be_update_interrupt_mask,
-	.get_hw_reg = rtl8822be_get_hw_reg,
-	.set_hw_reg = rtl8822be_set_hw_reg,
-	.update_rate_tbl = rtl8822be_update_hal_rate_tbl,
-	.pre_fill_tx_bd_desc = rtl8822be_pre_fill_tx_bd_desc,
-	.rx_desc_buff_remained_cnt = rtl8822be_rx_desc_buff_remained_cnt,
-	.rx_check_dma_ok = rtl8822be_rx_check_dma_ok,
-	.fill_tx_desc = rtl8822be_tx_fill_desc,
-	.fill_tx_special_desc = rtl8822be_tx_fill_special_desc,
-	.query_rx_desc = rtl8822be_rx_query_desc,
-	.radio_onoff_checking = rtl8822be_gpio_radio_on_off_checking,
-	.switch_channel = rtl8822be_phy_sw_chnl,
-	.set_channel_access = rtl8822be_update_channel_access_setting,
-	.set_bw_mode = rtl8822be_phy_set_bw_mode,
-	.dm_watchdog = rtl8822be_phydm_watchdog,
-	.scan_operation_backup = rtl8822be_phy_scan_operation_backup,
-	.set_rf_power_state = rtl8822be_phy_set_rf_power_state,
-	.led_control = rtl8822be_led_control,
-	.set_desc = rtl8822be_set_desc,
-	.get_desc = rtl8822be_get_desc,
-	.is_tx_desc_closed = rtl8822be_is_tx_desc_closed,
-	.get_available_desc = rtl8822be_get_available_desc,
-	.tx_polling = rtl8822be_tx_polling,
-	.enable_hw_sec = rtl8822be_enable_hw_security_config,
-	.set_key = rtl8822be_set_key,
-	.init_sw_leds = rtl8822be_init_sw_leds,
-	.get_bbreg = rtl8822be_phy_query_bb_reg,
-	.set_bbreg = rtl8822be_phy_set_bb_reg,
-	.get_rfreg = rtl8822be_phy_query_rf_reg,
-	.set_rfreg = rtl8822be_phy_set_rf_reg,
-	.fill_h2c_cmd = rtl8822be_fill_h2c_cmd,
-	.set_default_port_id_cmd = rtl8822be_set_default_port_id_cmd,
-	.get_btc_status = rtl8822be_get_btc_status,
-	.rx_command_packet = rtl8822be_rx_command_packet,
-	.c2h_content_parsing = rtl8822be_c2h_content_parsing,
-	/* ops for halmac cb */
-	.halmac_cb_init_mac_register = rtl8822be_halmac_cb_init_mac_register,
-	.halmac_cb_init_bb_rf_register =
-		rtl8822be_halmac_cb_init_bb_rf_register,
-	.halmac_cb_write_data_rsvd_page =
-		rtl8822b_halmac_cb_write_data_rsvd_page,
-	.halmac_cb_write_data_h2c = rtl8822b_halmac_cb_write_data_h2c,
-	/* ops for phydm cb */
-	.get_txpower_index = rtl8822be_get_txpower_index,
-	.set_tx_power_index_by_rs = rtl8822be_phy_set_tx_power_index_by_rs,
-	.store_tx_power_by_rate = rtl8822be_store_tx_power_by_rate,
-	.phy_set_txpower_limit = rtl8822be_phy_set_txpower_limit,
-};
-
-static struct rtl_mod_params rtl8822be_mod_params = {
-	.sw_crypto = false,
-	.inactiveps = true,
-	.swctrl_lps = false,
-	.fwctrl_lps = true,
-	.msi_support = true,
-	.dma64 = false,
-	.aspm_support = 1,
-	.disable_watchdog = false,
-	.debug_level = 0,
-	.debug_mask = 0,
-};
-
-static struct rtl_hal_cfg rtl8822be_hal_cfg = {
-	.bar_id = 2,
-	.write_readback = false,
-	.name = "rtl8822be_pci",
-	.ops = &rtl8822be_hal_ops,
-	.mod_params = &rtl8822be_mod_params,
-	.spec_ver = RTL_SPEC_NEW_RATEID | RTL_SPEC_SUPPORT_VHT |
-		    RTL_SPEC_NEW_FW_C2H,
-	.maps[SYS_ISO_CTRL] = REG_SYS_ISO_CTRL_8822B,
-	.maps[SYS_FUNC_EN] = REG_SYS_FUNC_EN_8822B,
-	.maps[SYS_CLK] = REG_SYS_CLK_CTRL_8822B,
-	.maps[MAC_RCR_AM] = AM,
-	.maps[MAC_RCR_AB] = AB,
-	.maps[MAC_RCR_ACRC32] = ACRC32,
-	.maps[MAC_RCR_ACF] = ACF,
-	.maps[MAC_RCR_AAP] = AAP,
-	.maps[MAC_HIMR] = REG_HIMR0_8822B,
-	.maps[MAC_HIMRE] = REG_HIMR1_8822B,
-
-	.maps[EFUSE_ACCESS] = REG_EFUSE_ACCESS_8822B,
-
-	.maps[EFUSE_TEST] = REG_LDO_EFUSE_CTRL_8822B,
-	.maps[EFUSE_CTRL] = REG_EFUSE_CTRL_8822B,
-	.maps[EFUSE_CLK] = 0,
-	.maps[EFUSE_CLK_CTRL] = REG_EFUSE_CTRL_8822B,
-	.maps[EFUSE_PWC_EV12V] = PWC_EV12V,
-	.maps[EFUSE_FEN_ELDR] = FEN_ELDR,
-	.maps[EFUSE_LOADER_CLK_EN] = LOADER_CLK_EN,
-	.maps[EFUSE_ANA8M] = ANA8M,
-	.maps[EFUSE_HWSET_MAX_SIZE] = HWSET_MAX_SIZE,
-	.maps[EFUSE_MAX_SECTION_MAP] = EFUSE_MAX_SECTION,
-	.maps[EFUSE_REAL_CONTENT_SIZE] = EFUSE_REAL_CONTENT_LEN,
-	.maps[EFUSE_OOB_PROTECT_BYTES_LEN] = EFUSE_OOB_PROTECT_BYTES,
-
-	.maps[RWCAM] = REG_CAMCMD_8822B,
-	.maps[WCAMI] = REG_CAMWRITE_8822B,
-	.maps[RCAMO] = REG_CAMREAD_8822B,
-	.maps[CAMDBG] = REG_CAMDBG_8822B,
-	.maps[SECR] = REG_SECCFG_8822B,
-	.maps[SEC_CAM_NONE] = CAM_NONE,
-	.maps[SEC_CAM_WEP40] = CAM_WEP40,
-	.maps[SEC_CAM_TKIP] = CAM_TKIP,
-	.maps[SEC_CAM_AES] = CAM_AES,
-	.maps[SEC_CAM_WEP104] = CAM_WEP104,
-
-	.maps[RTL_IMR_BCNDMAINT6] = IMR_BCNDMAINT6,
-	.maps[RTL_IMR_BCNDMAINT5] = IMR_BCNDMAINT5,
-	.maps[RTL_IMR_BCNDMAINT4] = IMR_BCNDMAINT4,
-	.maps[RTL_IMR_BCNDMAINT3] = IMR_BCNDMAINT3,
-	.maps[RTL_IMR_BCNDMAINT2] = IMR_BCNDMAINT2,
-	.maps[RTL_IMR_BCNDMAINT1] = IMR_BCNDMAINT1,
-	/*	.maps[RTL_IMR_BCNDOK8] = IMR_BCNDOK8,     */ /*need check*/
-	.maps[RTL_IMR_BCNDOK7] = IMR_BCNDOK7,
-	.maps[RTL_IMR_BCNDOK6] = IMR_BCNDOK6,
-	.maps[RTL_IMR_BCNDOK5] = IMR_BCNDOK5,
-	.maps[RTL_IMR_BCNDOK4] = IMR_BCNDOK4,
-	.maps[RTL_IMR_BCNDOK3] = IMR_BCNDOK3,
-	.maps[RTL_IMR_BCNDOK2] = IMR_BCNDOK2,
-	.maps[RTL_IMR_BCNDOK1] = IMR_BCNDOK1,
-	/*	.maps[RTL_IMR_TIMEOUT2] = IMR_TIMEOUT2,*/
-	/*	.maps[RTL_IMR_TIMEOUT1] = IMR_TIMEOUT1,*/
-
-	.maps[RTL_IMR_TXFOVW] = IMR_TXFOVW,
-	.maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT,
-	.maps[RTL_IMR_BCNINT] = IMR_BCNDMAINT0,
-	.maps[RTL_IMR_RXFOVW] = IMR_RXFOVW,
-	.maps[RTL_IMR_RDU] = IMR_RDU,
-	.maps[RTL_IMR_ATIMEND] = IMR_ATIMEND,
-	.maps[RTL_IMR_H2CDOK] = IMR_H2CDOK,
-	.maps[RTL_IMR_BDOK] = IMR_BCNDOK0,
-	.maps[RTL_IMR_MGNTDOK] = IMR_MGNTDOK,
-	.maps[RTL_IMR_TBDER] = IMR_TBDER,
-	.maps[RTL_IMR_HIGHDOK] = IMR_HIGHDOK,
-	.maps[RTL_IMR_TBDOK] = IMR_TBDOK,
-	.maps[RTL_IMR_BKDOK] = IMR_BKDOK,
-	.maps[RTL_IMR_BEDOK] = IMR_BEDOK,
-	.maps[RTL_IMR_VIDOK] = IMR_VIDOK,
-	.maps[RTL_IMR_VODOK] = IMR_VODOK,
-	.maps[RTL_IMR_ROK] = IMR_ROK,
-	.maps[RTL_IBSS_INT_MASKS] = (IMR_BCNDMAINT0 | IMR_TBDOK | IMR_TBDER),
-
-	.maps[RTL_RC_CCK_RATE1M] = DESC_RATE1M,
-	.maps[RTL_RC_CCK_RATE2M] = DESC_RATE2M,
-	.maps[RTL_RC_CCK_RATE5_5M] = DESC_RATE5_5M,
-	.maps[RTL_RC_CCK_RATE11M] = DESC_RATE11M,
-	.maps[RTL_RC_OFDM_RATE6M] = DESC_RATE6M,
-	.maps[RTL_RC_OFDM_RATE9M] = DESC_RATE9M,
-	.maps[RTL_RC_OFDM_RATE12M] = DESC_RATE12M,
-	.maps[RTL_RC_OFDM_RATE18M] = DESC_RATE18M,
-	.maps[RTL_RC_OFDM_RATE24M] = DESC_RATE24M,
-	.maps[RTL_RC_OFDM_RATE36M] = DESC_RATE36M,
-	.maps[RTL_RC_OFDM_RATE48M] = DESC_RATE48M,
-	.maps[RTL_RC_OFDM_RATE54M] = DESC_RATE54M,
-
-	.maps[RTL_RC_HT_RATEMCS7] = DESC_RATEMCS7,
-	.maps[RTL_RC_HT_RATEMCS15] = DESC_RATEMCS15,
-
-	/*VHT hightest rate*/
-	.maps[RTL_RC_VHT_RATE_1SS_MCS7] = DESC_RATEVHT1SS_MCS7,
-	.maps[RTL_RC_VHT_RATE_1SS_MCS8] = DESC_RATEVHT1SS_MCS8,
-	.maps[RTL_RC_VHT_RATE_1SS_MCS9] = DESC_RATEVHT1SS_MCS9,
-	.maps[RTL_RC_VHT_RATE_2SS_MCS7] = DESC_RATEVHT2SS_MCS7,
-	.maps[RTL_RC_VHT_RATE_2SS_MCS8] = DESC_RATEVHT2SS_MCS8,
-	.maps[RTL_RC_VHT_RATE_2SS_MCS9] = DESC_RATEVHT2SS_MCS9,
-};
-
-static const struct pci_device_id rtl8822be_pci_ids[] = {
-	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0xB822, rtl8822be_hal_cfg)},
-	{},
-};
-
-MODULE_DEVICE_TABLE(pci, rtl8822be_pci_ids);
-
-MODULE_AUTHOR("Realtek WlanFAE	<wlanfae@realtek.com>");
-MODULE_AUTHOR("Larry Finger	<Larry.Finger@lwfinger.net>");
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Realtek 8822BE 802.11n PCI wireless");
-MODULE_FIRMWARE("rtlwifi/rtl8822befw.bin");
-
-module_param_named(swenc, rtl8822be_mod_params.sw_crypto, bool, 0444);
-module_param_named(debug_level, rtl8822be_mod_params.debug_level, int, 0644);
-module_param_named(debug_mask, rtl8822be_mod_params.debug_mask, ullong, 0644);
-module_param_named(ips, rtl8822be_mod_params.inactiveps, bool, 0444);
-module_param_named(swlps, rtl8822be_mod_params.swctrl_lps, bool, 0444);
-module_param_named(fwlps, rtl8822be_mod_params.fwctrl_lps, bool, 0444);
-module_param_named(msi, rtl8822be_mod_params.msi_support, bool, 0444);
-module_param_named(dma64, rtl8822be_mod_params.dma64, bool, 0444);
-module_param_named(aspm, rtl8822be_mod_params.aspm_support, int, 0444);
-module_param_named(disable_watchdog, rtl8822be_mod_params.disable_watchdog,
-		   bool, 0444);
-MODULE_PARM_DESC(swenc, "Set to 1 for software crypto (default 0)\n");
-MODULE_PARM_DESC(ips, "Set to 0 to not use link power save (default 1)\n");
-MODULE_PARM_DESC(swlps, "Set to 1 to use SW control power save (default 0)\n");
-MODULE_PARM_DESC(fwlps, "Set to 1 to use FW control power save (default 1)\n");
-MODULE_PARM_DESC(msi, "Set to 1 to use MSI interrupts mode (default 1)\n");
-MODULE_PARM_DESC(dma64, "Set to 1 to use DMA 64 (default 0)\n");
-MODULE_PARM_DESC(aspm, "Set to 1 to enable ASPM (default 1)\n");
-MODULE_PARM_DESC(debug, "Set debug level (0-5) (default 0)");
-MODULE_PARM_DESC(debug_mask, "Set debug mask (default 0)");
-MODULE_PARM_DESC(disable_watchdog,
-		 "Set to 1 to disable the watchdog (default 0)\n");
-
-static SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume);
-
-static struct pci_driver rtl8822be_driver = {
-	.name = KBUILD_MODNAME,
-	.id_table = rtl8822be_pci_ids,
-	.probe = rtl_pci_probe,
-	.remove = rtl_pci_disconnect,
-	.driver.pm = &rtlwifi_pm_ops,
-};
-
-module_pci_driver(rtl8822be_driver);
diff --git a/drivers/staging/rtlwifi/rtl8822be/sw.h b/drivers/staging/rtlwifi/rtl8822be/sw.h
deleted file mode 100644
index 0983a8e..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/sw.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL8822B_SW_H__
-#define __RTL8822B_SW_H__
-
-int rtl8822be_init_sw_vars(struct ieee80211_hw *hw);
-void rtl8822be_deinit_sw_vars(struct ieee80211_hw *hw);
-bool rtl8822be_get_btc_status(void);
-#endif
diff --git a/drivers/staging/rtlwifi/rtl8822be/trx.c b/drivers/staging/rtlwifi/rtl8822be/trx.c
deleted file mode 100644
index 8fff2ea..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/trx.c
+++ /dev/null
@@ -1,1004 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#include "../wifi.h"
-#include "../pci.h"
-#include "../base.h"
-#include "../stats.h"
-#include "reg.h"
-#include "def.h"
-#include "phy.h"
-#include "trx.h"
-#include "led.h"
-#include "fw.h"
-
-#include <linux/vermagic.h>
-
-static u8 _rtl8822be_map_hwqueue_to_fwqueue(struct sk_buff *skb, u8 hw_queue)
-{
-	switch (hw_queue) {
-	case BEACON_QUEUE:
-		return QSLT_BEACON;
-	case H2C_QUEUE:
-		return QSLT_CMD;
-	case MGNT_QUEUE:
-		return QSLT_MGNT;
-	case HIGH_QUEUE:
-		return QSLT_HIGH;
-	default:
-		return skb->priority;
-	}
-}
-
-static void _rtl8822be_query_rxphystatus(struct ieee80211_hw *hw, u8 *phystrpt,
-					 struct ieee80211_hdr *hdr,
-					 struct rtl_stats *pstatus)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtlpriv->phydm.ops->phydm_query_phy_status(rtlpriv, phystrpt, hdr,
-						   pstatus);
-
-	/* UI BSS List signal strength(in percentage),
-	 * make it good looking, from 0~100.
-	 */
-	pstatus->signalstrength =
-		(u8)(rtl_signal_scale_mapping(hw, pstatus->rx_pwdb_all));
-}
-
-static void _rtl8822be_translate_rx_signal_stuff(struct ieee80211_hw *hw,
-						 struct sk_buff *skb,
-						 struct rtl_stats *pstatus,
-						 u8 *p_phystrpt)
-{
-	struct ieee80211_hdr *hdr;
-	u8 *tmp_buf;
-
-	tmp_buf = skb->data + pstatus->rx_drvinfo_size + pstatus->rx_bufshift +
-		  24;
-
-	hdr = (struct ieee80211_hdr *)tmp_buf;
-
-	/* query phy status */
-	_rtl8822be_query_rxphystatus(hw, p_phystrpt, hdr, pstatus);
-
-	/* packet statistics */
-	if (pstatus->packet_beacon && pstatus->packet_matchbssid)
-		rtl_priv(hw)->dm.dbginfo.num_qry_beacon_pkt++;
-
-	if (pstatus->packet_matchbssid &&
-	    ieee80211_is_data_qos(hdr->frame_control) &&
-	    !is_multicast_ether_addr(ieee80211_get_DA(hdr))) {
-		struct ieee80211_qos_hdr *hdr_qos =
-			(struct ieee80211_qos_hdr *)tmp_buf;
-		u16 tid = le16_to_cpu(hdr_qos->qos_ctrl) & 0xf;
-
-		if (tid != 0 && tid != 3)
-			rtl_priv(hw)->dm.dbginfo.num_non_be_pkt++;
-	}
-
-	/* signal statistics */
-	if (p_phystrpt)
-		rtl_process_phyinfo(hw, tmp_buf, pstatus);
-}
-
-static void _rtl8822be_insert_emcontent(struct rtl_tcb_desc *ptcb_desc,
-					u8 *virtualaddress)
-{
-	u32 dwtmp = 0;
-
-	memset(virtualaddress, 0, 8);
-
-	SET_EARLYMODE_PKTNUM(virtualaddress, ptcb_desc->empkt_num);
-	if (ptcb_desc->empkt_num == 1) {
-		dwtmp = ptcb_desc->empkt_len[0];
-	} else {
-		dwtmp = ptcb_desc->empkt_len[0];
-		dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4;
-		dwtmp += ptcb_desc->empkt_len[1];
-	}
-	SET_EARLYMODE_LEN0(virtualaddress, dwtmp);
-
-	if (ptcb_desc->empkt_num <= 3) {
-		dwtmp = ptcb_desc->empkt_len[2];
-	} else {
-		dwtmp = ptcb_desc->empkt_len[2];
-		dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4;
-		dwtmp += ptcb_desc->empkt_len[3];
-	}
-	SET_EARLYMODE_LEN1(virtualaddress, dwtmp);
-	if (ptcb_desc->empkt_num <= 5) {
-		dwtmp = ptcb_desc->empkt_len[4];
-	} else {
-		dwtmp = ptcb_desc->empkt_len[4];
-		dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4;
-		dwtmp += ptcb_desc->empkt_len[5];
-	}
-	SET_EARLYMODE_LEN2_1(virtualaddress, dwtmp & 0xF);
-	SET_EARLYMODE_LEN2_2(virtualaddress, dwtmp >> 4);
-	if (ptcb_desc->empkt_num <= 7) {
-		dwtmp = ptcb_desc->empkt_len[6];
-	} else {
-		dwtmp = ptcb_desc->empkt_len[6];
-		dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4;
-		dwtmp += ptcb_desc->empkt_len[7];
-	}
-	SET_EARLYMODE_LEN3(virtualaddress, dwtmp);
-	if (ptcb_desc->empkt_num <= 9) {
-		dwtmp = ptcb_desc->empkt_len[8];
-	} else {
-		dwtmp = ptcb_desc->empkt_len[8];
-		dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4;
-		dwtmp += ptcb_desc->empkt_len[9];
-	}
-	SET_EARLYMODE_LEN4(virtualaddress, dwtmp);
-}
-
-static bool rtl8822be_get_rxdesc_is_ht(struct ieee80211_hw *hw, u8 *pdesc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 rx_rate = 0;
-
-	rx_rate = GET_RX_DESC_RX_RATE(pdesc);
-
-	RT_TRACE(rtlpriv, COMP_RXDESC, DBG_LOUD, "rx_rate=0x%02x.\n", rx_rate);
-
-	if (rx_rate >= DESC_RATEMCS0 && rx_rate <= DESC_RATEMCS15)
-		return true;
-	else
-		return false;
-}
-
-static bool rtl8822be_get_rxdesc_is_vht(struct ieee80211_hw *hw, u8 *pdesc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 rx_rate = 0;
-
-	rx_rate = GET_RX_DESC_RX_RATE(pdesc);
-
-	RT_TRACE(rtlpriv, COMP_RXDESC, DBG_LOUD, "rx_rate=0x%02x.\n", rx_rate);
-
-	if (rx_rate >= DESC_RATEVHT1SS_MCS0)
-		return true;
-	else
-		return false;
-}
-
-static u8 rtl8822be_get_rx_vht_nss(struct ieee80211_hw *hw, u8 *pdesc)
-{
-	u8 rx_rate = 0;
-	u8 vht_nss = 0;
-
-	rx_rate = GET_RX_DESC_RX_RATE(pdesc);
-
-	if (rx_rate >= DESC_RATEVHT1SS_MCS0 &&
-	    rx_rate <= DESC_RATEVHT1SS_MCS9)
-		vht_nss = 1;
-	else if ((rx_rate >= DESC_RATEVHT2SS_MCS0) &&
-		 (rx_rate <= DESC_RATEVHT2SS_MCS9))
-		vht_nss = 2;
-
-	return vht_nss;
-}
-
-bool rtl8822be_rx_query_desc(struct ieee80211_hw *hw, struct rtl_stats *status,
-			     struct ieee80211_rx_status *rx_status, u8 *pdesc,
-			     struct sk_buff *skb)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 *p_phystrpt = NULL;
-	struct ieee80211_hdr *hdr;
-
-	u32 phystatus = GET_RX_DESC_PHYST(pdesc);
-
-	if (GET_RX_DESC_C2H(pdesc) == 0)
-		status->packet_report_type = NORMAL_RX;
-	else
-		status->packet_report_type = C2H_PACKET;
-
-	status->length = (u16)GET_RX_DESC_PKT_LEN(pdesc);
-	status->rx_drvinfo_size =
-		(u8)GET_RX_DESC_DRV_INFO_SIZE(pdesc) * RX_DRV_INFO_SIZE_UNIT;
-	status->rx_bufshift = (u8)(GET_RX_DESC_SHIFT(pdesc) & 0x03);
-	status->icv = (u16)GET_RX_DESC_ICV_ERR(pdesc);
-	status->crc = (u16)GET_RX_DESC_CRC32(pdesc);
-	status->hwerror = (status->crc | status->icv);
-	status->decrypted = !GET_RX_DESC_SWDEC(pdesc);
-	status->rate = (u8)GET_RX_DESC_RX_RATE(pdesc);
-	status->isampdu = (bool)(GET_RX_DESC_PAGGR(pdesc) == 1);
-	status->isfirst_ampdu = (bool)(GET_RX_DESC_PAGGR(pdesc) == 1);
-	status->timestamp_low = GET_RX_DESC_TSFL(pdesc);
-	status->is_ht = rtl8822be_get_rxdesc_is_ht(hw, pdesc);
-	status->is_vht = rtl8822be_get_rxdesc_is_vht(hw, pdesc);
-	status->vht_nss = rtl8822be_get_rx_vht_nss(hw, pdesc);
-	status->is_cck = RX_HAL_IS_CCK_RATE(status->rate);
-
-	status->macid = GET_RX_DESC_MACID(pdesc);
-	if (GET_RX_DESC_PATTERN_MATCH(pdesc))
-		status->wake_match = BIT(2);
-	else if (GET_RX_DESC_MAGIC_WAKE(pdesc))
-		status->wake_match = BIT(1);
-	else if (GET_RX_DESC_UNICAST_WAKE(pdesc))
-		status->wake_match = BIT(0);
-	else
-		status->wake_match = 0;
-	if (status->wake_match)
-		RT_TRACE(rtlpriv, COMP_RXDESC, DBG_LOUD,
-			 "GGGGGGGGGGGGGet Wakeup Packet!! WakeMatch=%d\n",
-			 status->wake_match);
-	rx_status->freq = hw->conf.chandef.chan->center_freq;
-	rx_status->band = hw->conf.chandef.chan->band;
-
-	if (phystatus)
-		p_phystrpt = (skb->data + status->rx_bufshift + 24);
-
-	hdr = (struct ieee80211_hdr *)(skb->data + status->rx_drvinfo_size +
-				       status->rx_bufshift + 24);
-
-	if (status->crc)
-		rx_status->flag |= RX_FLAG_FAILED_FCS_CRC;
-
-	if (status->is_ht)
-		rx_status->encoding = RX_ENC_HT;
-	if (status->is_vht)
-		rx_status->encoding = RX_ENC_VHT;
-
-	rx_status->nss = status->vht_nss;
-
-	rx_status->flag |= RX_FLAG_MACTIME_START;
-
-	/* hw will set status->decrypted true, if it finds the
-	 * frame is open data frame or mgmt frame.
-	 */
-	/* So hw will not decryption robust management frame
-	 * for IEEE80211w but still set status->decrypted
-	 * true, so here we should set it back to undecrypted
-	 * for IEEE80211w frame, and mac80211 sw will help
-	 * to decrypt it
-	 */
-	if (status->decrypted) {
-		if ((!_ieee80211_is_robust_mgmt_frame(hdr)) &&
-		    (ieee80211_has_protected(hdr->frame_control)))
-			rx_status->flag |= RX_FLAG_DECRYPTED;
-		else
-			rx_status->flag &= ~RX_FLAG_DECRYPTED;
-	}
-
-	/* rate_idx: index of data rate into band's
-	 * supported rates or MCS index if HT rates
-	 * are use (RX_FLAG_HT)
-	 */
-	/* Notice: this is diff with windows define */
-	rx_status->rate_idx = rtlwifi_rate_mapping(
-		hw, status->is_ht, status->is_vht, status->rate);
-
-	rx_status->mactime = status->timestamp_low;
-
-	_rtl8822be_translate_rx_signal_stuff(hw, skb, status, p_phystrpt);
-
-	/* below info. are filled by _rtl8822be_translate_rx_signal_stuff() */
-	if (!p_phystrpt)
-		goto label_no_physt;
-
-	rx_status->signal = status->recvsignalpower;
-
-	if (status->rx_packet_bw == HT_CHANNEL_WIDTH_20_40)
-		rx_status->bw = RATE_INFO_BW_40;
-	else if (status->rx_packet_bw == HT_CHANNEL_WIDTH_80)
-		rx_status->bw = RATE_INFO_BW_80;
-
-label_no_physt:
-
-	return true;
-}
-
-void rtl8822be_rx_check_dma_ok(struct ieee80211_hw *hw, u8 *header_desc,
-			       u8 queue_index)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 first_seg;
-	u8 last_seg;
-	u16 total_len;
-	u16 read_cnt = 0;
-
-	if (!header_desc)
-		return;
-
-	do {
-		total_len = (u16)GET_RX_BUFFER_DESC_TOTAL_LENGTH(header_desc);
-		first_seg = (u8)GET_RX_BUFFER_DESC_FS(header_desc);
-		last_seg = (u8)GET_RX_BUFFER_DESC_LS(header_desc);
-
-		if (read_cnt++ > 20) {
-			RT_TRACE(rtlpriv, COMP_RECV, DBG_DMESG,
-				 "RX chk DMA over %d times\n", read_cnt);
-			break;
-		}
-
-	} while (total_len == 0 && first_seg == 0 && last_seg == 0);
-}
-
-u16 rtl8822be_rx_desc_buff_remained_cnt(struct ieee80211_hw *hw, u8 queue_index)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u16 desc_idx_hw = 0, desc_idx_host = 0, remind_cnt = 0;
-	u32 tmp_4byte = 0;
-
-	u32 rw_mask = 0x1ff;
-
-	tmp_4byte = rtl_read_dword(rtlpriv, REG_RXQ_RXBD_IDX_8822B);
-	desc_idx_hw = (u16)((tmp_4byte >> 16) & rw_mask);
-	desc_idx_host = (u16)(tmp_4byte & rw_mask);
-
-	/* may be no data, donot rx */
-	if (desc_idx_hw == desc_idx_host)
-		return 0;
-
-	remind_cnt =
-		(desc_idx_hw > desc_idx_host) ?
-			(desc_idx_hw - desc_idx_host) :
-			(RX_DESC_NUM_8822BE - (desc_idx_host - desc_idx_hw));
-
-	rtlpci->rx_ring[queue_index].next_rx_rp = desc_idx_host;
-
-	return remind_cnt;
-}
-
-static u16 get_desc_address_from_queue_index(u16 queue_index)
-{
-	/*
-	 * Note: Access these registers will take a lot of cost.
-	 */
-	u16 desc_address = REG_BEQ_TXBD_IDX_8822B;
-
-	switch (queue_index) {
-	case BK_QUEUE:
-		desc_address = REG_BKQ_TXBD_IDX_8822B;
-		break;
-	case BE_QUEUE:
-		desc_address = REG_BEQ_TXBD_IDX_8822B;
-		break;
-	case VI_QUEUE:
-		desc_address = REG_VIQ_TXBD_IDX_8822B;
-		break;
-	case VO_QUEUE:
-		desc_address = REG_VOQ_TXBD_IDX_8822B;
-		break;
-	case BEACON_QUEUE:
-		desc_address = REG_BEQ_TXBD_IDX_8822B;
-		break;
-	case H2C_QUEUE:
-		desc_address = REG_H2CQ_TXBD_IDX_8822B;
-		break;
-	case MGNT_QUEUE:
-		desc_address = REG_MGQ_TXBD_IDX_8822B;
-		break;
-	case HIGH_QUEUE:
-		desc_address = REG_HI0Q_TXBD_IDX_8822B;
-		break;
-	case HCCA_QUEUE:
-		desc_address = REG_BEQ_TXBD_IDX_8822B;
-		break;
-	default:
-		break;
-	}
-	return desc_address;
-}
-
-/*free  desc that can be used */
-u16 rtl8822be_get_available_desc(struct ieee80211_hw *hw, u8 q_idx)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[q_idx];
-
-	return calc_fifo_space(ring->cur_tx_rp, ring->cur_tx_wp,
-			       TX_DESC_NUM_8822B);
-}
-
-void rtl8822be_pre_fill_tx_bd_desc(struct ieee80211_hw *hw, u8 *tx_bd_desc,
-				   u8 *desc, u8 queue_index,
-				   struct sk_buff *skb, dma_addr_t data_addr)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	u32 pkt_len = skb->len;
-	u16 desc_size = 48; /*tx desc size*/
-	u32 psblen = 0;
-	u32 total_packet_size = 0;
-	u16 current_bd_desc;
-	u8 i = 0;
-	/*u16 real_desc_size = 0x28;*/
-	u16 append_early_mode_size = 0;
-	u8 segmentnum = 1 << (RTL8822BE_SEG_NUM + 1);
-	dma_addr_t desc_dma_addr;
-	bool dma64 = rtlpriv->cfg->mod_params->dma64;
-
-	current_bd_desc = rtlpci->tx_ring[queue_index].cur_tx_wp;
-
-	total_packet_size = desc_size + pkt_len;
-
-	if (rtlpriv->rtlhal.earlymode_enable) {
-		if (queue_index < BEACON_QUEUE) {
-			append_early_mode_size = 8;
-			total_packet_size += append_early_mode_size;
-		}
-	}
-
-	/* page number (round up) */
-	psblen = (total_packet_size - 1) / 128 + 1;
-
-	/* tx desc addr */
-	desc_dma_addr = rtlpci->tx_ring[queue_index].dma +
-			(current_bd_desc * TX_DESC_SIZE);
-
-	/* Reset */
-	SET_TX_BUFF_DESC_LEN_0(tx_bd_desc, 0);
-	SET_TX_BUFF_DESC_PSB(tx_bd_desc, 0);
-	SET_TX_BUFF_DESC_OWN(tx_bd_desc, 0);
-
-	for (i = 1; i < segmentnum; i++) {
-		SET_TXBUFFER_DESC_LEN_WITH_OFFSET(tx_bd_desc, i, 0);
-		SET_TXBUFFER_DESC_AMSDU_WITH_OFFSET(tx_bd_desc, i, 0);
-		SET_TXBUFFER_DESC_ADD_LOW_WITH_OFFSET(tx_bd_desc, i, 0);
-		SET_TXBUFFER_DESC_ADD_HIGH_WITH_OFFSET(tx_bd_desc, i, 0, dma64);
-	}
-
-	/* Clear all status */
-	CLEAR_PCI_TX_DESC_CONTENT(desc, TX_DESC_SIZE);
-
-	if (rtlpriv->rtlhal.earlymode_enable) {
-		if (queue_index < BEACON_QUEUE)
-			SET_TX_BUFF_DESC_LEN_0(tx_bd_desc, desc_size + 8);
-		else
-			SET_TX_BUFF_DESC_LEN_0(tx_bd_desc, desc_size);
-	} else {
-		SET_TX_BUFF_DESC_LEN_0(tx_bd_desc, desc_size);
-	}
-	SET_TX_BUFF_DESC_PSB(tx_bd_desc, psblen);
-	SET_TX_BUFF_DESC_ADDR_LOW_0(tx_bd_desc, desc_dma_addr);
-	SET_TX_BUFF_DESC_ADDR_HIGH_0(tx_bd_desc, ((u64)desc_dma_addr >> 32),
-				     dma64);
-
-	SET_TXBUFFER_DESC_LEN_WITH_OFFSET(tx_bd_desc, 1, pkt_len);
-	SET_TXBUFFER_DESC_AMSDU_WITH_OFFSET(tx_bd_desc, 1, 0);
-	SET_TXBUFFER_DESC_ADD_LOW_WITH_OFFSET(tx_bd_desc, 1, data_addr);
-	SET_TXBUFFER_DESC_ADD_HIGH_WITH_OFFSET(tx_bd_desc, 1,
-					       ((u64)data_addr >> 32), dma64);
-
-	SET_TX_DESC_TXPKTSIZE(desc, (u16)(pkt_len));
-}
-
-static u8 rtl8822be_bw_mapping(struct ieee80211_hw *hw,
-			       struct rtl_tcb_desc *ptcb_desc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 bw_setting_of_desc = 0;
-
-	RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
-		 "%s, current_chan_bw %d, packet_bw %d\n", __func__,
-		 rtlphy->current_chan_bw, ptcb_desc->packet_bw);
-
-	if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) {
-		if (ptcb_desc->packet_bw == HT_CHANNEL_WIDTH_80)
-			bw_setting_of_desc = 2;
-		else if (ptcb_desc->packet_bw == HT_CHANNEL_WIDTH_20_40)
-			bw_setting_of_desc = 1;
-		else
-			bw_setting_of_desc = 0;
-	} else if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) {
-		if (ptcb_desc->packet_bw == HT_CHANNEL_WIDTH_20_40 ||
-		    ptcb_desc->packet_bw == HT_CHANNEL_WIDTH_80)
-			bw_setting_of_desc = 1;
-		else
-			bw_setting_of_desc = 0;
-	} else {
-		bw_setting_of_desc = 0;
-	}
-
-	return bw_setting_of_desc;
-}
-
-static u8 rtl8822be_sc_mapping(struct ieee80211_hw *hw,
-			       struct rtl_tcb_desc *ptcb_desc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	struct rtl_mac *mac = rtl_mac(rtlpriv);
-	u8 sc_setting_of_desc = 0;
-
-	if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) {
-		if (ptcb_desc->packet_bw == HT_CHANNEL_WIDTH_80) {
-			sc_setting_of_desc = VHT_DATA_SC_DONOT_CARE;
-		} else if (ptcb_desc->packet_bw == HT_CHANNEL_WIDTH_20_40) {
-			if (mac->cur_80_prime_sc == HAL_PRIME_CHNL_OFFSET_LOWER)
-				sc_setting_of_desc =
-					VHT_DATA_SC_40_LOWER_OF_80MHZ;
-			else if (mac->cur_80_prime_sc ==
-				 HAL_PRIME_CHNL_OFFSET_UPPER)
-				sc_setting_of_desc =
-					VHT_DATA_SC_40_UPPER_OF_80MHZ;
-			else
-				RT_TRACE(rtlpriv, COMP_SEND, DBG_LOUD,
-					 "%s: Not Correct Primary40MHz Setting\n",
-					 __func__);
-		} else {
-			if (mac->cur_40_prime_sc ==
-			     HAL_PRIME_CHNL_OFFSET_LOWER &&
-			    mac->cur_80_prime_sc ==
-			     HAL_PRIME_CHNL_OFFSET_LOWER)
-				sc_setting_of_desc =
-					VHT_DATA_SC_20_LOWEST_OF_80MHZ;
-			else if ((mac->cur_40_prime_sc ==
-				  HAL_PRIME_CHNL_OFFSET_UPPER) &&
-				 (mac->cur_80_prime_sc ==
-				  HAL_PRIME_CHNL_OFFSET_LOWER))
-				sc_setting_of_desc =
-					VHT_DATA_SC_20_LOWER_OF_80MHZ;
-			else if ((mac->cur_40_prime_sc ==
-				  HAL_PRIME_CHNL_OFFSET_LOWER) &&
-				 (mac->cur_80_prime_sc ==
-				  HAL_PRIME_CHNL_OFFSET_UPPER))
-				sc_setting_of_desc =
-					VHT_DATA_SC_20_UPPER_OF_80MHZ;
-			else if ((mac->cur_40_prime_sc ==
-				  HAL_PRIME_CHNL_OFFSET_UPPER) &&
-				 (mac->cur_80_prime_sc ==
-				  HAL_PRIME_CHNL_OFFSET_UPPER))
-				sc_setting_of_desc =
-					VHT_DATA_SC_20_UPPERST_OF_80MHZ;
-			else
-				RT_TRACE(rtlpriv, COMP_SEND, DBG_LOUD,
-					 "%s: Not Correct Primary40MHz Setting\n",
-					 __func__);
-		}
-	} else if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) {
-		if (ptcb_desc->packet_bw == HT_CHANNEL_WIDTH_20_40) {
-			sc_setting_of_desc = VHT_DATA_SC_DONOT_CARE;
-		} else if (ptcb_desc->packet_bw == HT_CHANNEL_WIDTH_20) {
-			if (mac->cur_40_prime_sc ==
-			    HAL_PRIME_CHNL_OFFSET_UPPER) {
-				sc_setting_of_desc =
-					VHT_DATA_SC_20_UPPER_OF_80MHZ;
-			} else if (mac->cur_40_prime_sc ==
-				   HAL_PRIME_CHNL_OFFSET_LOWER) {
-				sc_setting_of_desc =
-					VHT_DATA_SC_20_LOWER_OF_80MHZ;
-			} else {
-				sc_setting_of_desc = VHT_DATA_SC_DONOT_CARE;
-			}
-		}
-	} else {
-		sc_setting_of_desc = VHT_DATA_SC_DONOT_CARE;
-	}
-
-	return sc_setting_of_desc;
-}
-
-void rtl8822be_tx_fill_desc(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
-			    u8 *pdesc_tx, u8 *pbd_desc_tx,
-			    struct ieee80211_tx_info *info,
-			    struct ieee80211_sta *sta, struct sk_buff *skb,
-			    u8 hw_queue, struct rtl_tcb_desc *ptcb_desc)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 *pdesc = (u8 *)pdesc_tx;
-	u16 seq_number;
-	__le16 fc = hdr->frame_control;
-	u8 fw_qsel = _rtl8822be_map_hwqueue_to_fwqueue(skb, hw_queue);
-	bool firstseg =
-		((hdr->seq_ctrl & cpu_to_le16(IEEE80211_SCTL_FRAG)) == 0);
-	bool lastseg = ((hdr->frame_control &
-			 cpu_to_le16(IEEE80211_FCTL_MOREFRAGS)) == 0);
-	dma_addr_t mapping;
-	u8 short_gi = 0;
-
-	seq_number = (le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_SEQ) >> 4;
-	rtl_get_tcb_desc(hw, info, sta, skb, ptcb_desc);
-	/* reserve 8 byte for AMPDU early mode */
-	if (rtlhal->earlymode_enable) {
-		skb_push(skb, EM_HDR_LEN);
-		memset(skb->data, 0, EM_HDR_LEN);
-	}
-	mapping = pci_map_single(rtlpci->pdev, skb->data, skb->len,
-				 PCI_DMA_TODEVICE);
-	if (pci_dma_mapping_error(rtlpci->pdev, mapping)) {
-		RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, "DMA mapping error");
-		return;
-	}
-
-	if (pbd_desc_tx)
-		rtl8822be_pre_fill_tx_bd_desc(hw, pbd_desc_tx, pdesc, hw_queue,
-					      skb, mapping);
-
-	if (ieee80211_is_nullfunc(fc) || ieee80211_is_ctl(fc)) {
-		firstseg = true;
-		lastseg = true;
-	}
-	if (firstseg) {
-		if (rtlhal->earlymode_enable) {
-			SET_TX_DESC_PKT_OFFSET(pdesc, 1);
-			SET_TX_DESC_OFFSET(pdesc,
-					   USB_HWDESC_HEADER_LEN + EM_HDR_LEN);
-			if (ptcb_desc->empkt_num) {
-				RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
-					 "Insert 8 byte.pTcb->EMPktNum:%d\n",
-					 ptcb_desc->empkt_num);
-				_rtl8822be_insert_emcontent(ptcb_desc,
-							    (u8 *)(skb->data));
-			}
-		} else {
-			SET_TX_DESC_OFFSET(pdesc, USB_HWDESC_HEADER_LEN);
-		}
-
-		/* tx report */
-		rtl_get_tx_report(ptcb_desc, pdesc, hw);
-
-		if (rtlpriv->rtlhal.current_bandtype == BAND_ON_5G &&
-		    ptcb_desc->hw_rate < DESC_RATE6M) {
-			RT_TRACE(rtlpriv, COMP_SEND, DBG_WARNING,
-				 "hw_rate=0x%X is invalid in 5G\n",
-				 ptcb_desc->hw_rate);
-			ptcb_desc->hw_rate = DESC_RATE6M;
-		}
-		SET_TX_DESC_DATARATE(pdesc, ptcb_desc->hw_rate);
-
-		if (ptcb_desc->hw_rate > DESC_RATEMCS0)
-			short_gi = (ptcb_desc->use_shortgi) ? 1 : 0;
-		else
-			short_gi = (ptcb_desc->use_shortpreamble) ? 1 : 0;
-
-		if (info->flags & IEEE80211_TX_CTL_AMPDU) {
-			SET_TX_DESC_AGG_EN(pdesc, 1);
-			SET_TX_DESC_MAX_AGG_NUM(pdesc, 0x1F);
-		}
-		SET_TX_DESC_SW_SEQ(pdesc, seq_number);
-		SET_TX_DESC_RTSEN(pdesc, ((ptcb_desc->rts_enable &&
-					   !ptcb_desc->cts_enable) ?
-						  1 :
-						  0));
-		SET_TX_DESC_HW_RTS_EN(pdesc, 0);
-		SET_TX_DESC_CTS2SELF(pdesc, ((ptcb_desc->cts_enable) ? 1 : 0));
-
-		SET_TX_DESC_RTSRATE(pdesc, ptcb_desc->rts_rate);
-		SET_TX_DESC_RTS_SC(pdesc, ptcb_desc->rts_sc);
-		SET_TX_DESC_RTS_SHORT(
-			pdesc,
-			((ptcb_desc->rts_rate <= DESC_RATE54M) ?
-				 (ptcb_desc->rts_use_shortpreamble ? 1 : 0) :
-				 (ptcb_desc->rts_use_shortgi ? 1 : 0)));
-
-		if (ptcb_desc->tx_enable_sw_calc_duration)
-			SET_TX_DESC_NAVUSEHDR(pdesc, 1);
-
-		SET_TX_DESC_DATA_BW(pdesc, rtl8822be_bw_mapping(hw, ptcb_desc));
-		SET_TX_DESC_DATA_SC(pdesc, rtl8822be_sc_mapping(hw, ptcb_desc));
-
-		if (sta) {
-			u8 ampdu_density = sta->ht_cap.ampdu_density;
-
-			SET_TX_DESC_AMPDU_DENSITY(pdesc, ampdu_density);
-		}
-		if (info->control.hw_key) {
-			struct ieee80211_key_conf *key = info->control.hw_key;
-
-			switch (key->cipher) {
-			case WLAN_CIPHER_SUITE_WEP40:
-			case WLAN_CIPHER_SUITE_WEP104:
-			case WLAN_CIPHER_SUITE_TKIP:
-				SET_TX_DESC_SEC_TYPE(pdesc, 0x1);
-				break;
-			case WLAN_CIPHER_SUITE_CCMP:
-				SET_TX_DESC_SEC_TYPE(pdesc, 0x3);
-				break;
-			default:
-				SET_TX_DESC_SEC_TYPE(pdesc, 0x0);
-				break;
-			}
-		}
-
-		SET_TX_DESC_QSEL(pdesc, fw_qsel);
-
-		if (rtlphy->current_channel > 14) {
-			/* OFDM 6M */
-			SET_TX_DESC_DATA_RTY_LOWEST_RATE(pdesc, 4);
-			SET_TX_DESC_RTS_RTY_LOWEST_RATE(pdesc, 4);
-		} else {
-			/* CCK 1M */
-			SET_TX_DESC_DATA_RTY_LOWEST_RATE(pdesc, 0);
-			SET_TX_DESC_RTS_RTY_LOWEST_RATE(pdesc, 0);
-		}
-		SET_TX_DESC_DISDATAFB(pdesc,
-				      ptcb_desc->disable_ratefallback ? 1 : 0);
-		SET_TX_DESC_USE_RATE(pdesc, ptcb_desc->use_driver_rate ? 1 : 0);
-
-		/*SET_TX_DESC_PWR_STATUS(pdesc, pwr_status);*/
-		/* Set TxRate and RTSRate in TxDesc  */
-		/* This prevent Tx initial rate of new-coming packets */
-		/* from being overwritten by retried  packet rate.*/
-		if (!ptcb_desc->use_driver_rate) {
-			/*SET_TX_DESC_RTS_RATE(pdesc, 0x08); */
-			/* SET_TX_DESC_TX_RATE(pdesc, 0x0b); */
-		}
-		if (ieee80211_is_data_qos(fc)) {
-			if (mac->rdg_en) {
-				RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
-					 "Enable RDG function.\n");
-				SET_TX_DESC_RDG_EN(pdesc, 1);
-				SET_TX_DESC_HTC(pdesc, 1);
-			}
-		}
-
-		SET_TX_DESC_PORT_ID(pdesc, 0);
-		SET_TX_DESC_MULTIPLE_PORT(pdesc, 0);
-	}
-
-	SET_TX_DESC_LS(pdesc, (lastseg ? 1 : 0));
-	if (rtlpriv->dm.useramask) {
-		SET_TX_DESC_RATE_ID(pdesc, ptcb_desc->ratr_index);
-		SET_TX_DESC_MACID(pdesc, ptcb_desc->mac_id);
-	} else {
-		SET_TX_DESC_RATE_ID(pdesc, 0xC + ptcb_desc->ratr_index);
-		SET_TX_DESC_MACID(pdesc, ptcb_desc->ratr_index);
-	}
-
-	SET_TX_DESC_MOREFRAG(pdesc, (lastseg ? 0 : 1));
-	if (ptcb_desc->multicast || ptcb_desc->broadcast) {
-		SET_TX_DESC_BMC(pdesc, 1);
-		/* BMC must be not AGG */
-		SET_TX_DESC_AGG_EN(pdesc, 0);
-	}
-	RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
-
-	/* debug purpose: used to check tx desc is correct or not */
-	/*rtlpriv->halmac.ops->halmac_chk_txdesc(rtlpriv, pdesc,
-	 *			skb->len + USB_HWDESC_HEADER_LEN);
-	 */
-}
-
-void rtl8822be_tx_fill_special_desc(struct ieee80211_hw *hw, u8 *pdesc,
-				    u8 *pbd_desc, struct sk_buff *skb,
-				    u8 hw_queue)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	u8 fw_queue;
-	u8 txdesc_len = 48;
-
-	dma_addr_t mapping = pci_map_single(rtlpci->pdev, skb->data, skb->len,
-					    PCI_DMA_TODEVICE);
-
-	if (pci_dma_mapping_error(rtlpci->pdev, mapping)) {
-		RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, "DMA mapping error");
-		return;
-	}
-
-	rtl8822be_pre_fill_tx_bd_desc(hw, pbd_desc, pdesc, hw_queue, skb,
-				      mapping);
-
-	/* it should be BEACON_QUEUE or H2C_QUEUE,
-	 * so skb=NULL is safe to assert
-	 */
-	fw_queue = _rtl8822be_map_hwqueue_to_fwqueue(NULL, hw_queue);
-
-	CLEAR_PCI_TX_DESC_CONTENT(pdesc, txdesc_len);
-
-	/* common part for BEACON and H2C */
-	SET_TX_DESC_TXPKTSIZE((u8 *)pdesc, (u16)(skb->len));
-
-	SET_TX_DESC_QSEL(pdesc, fw_queue);
-
-	if (hw_queue == H2C_QUEUE) {
-		/* fill H2C */
-		SET_TX_DESC_OFFSET(pdesc, 0);
-
-	} else {
-		/* fill beacon */
-		SET_TX_DESC_OFFSET(pdesc, txdesc_len);
-
-		SET_TX_DESC_DATARATE(pdesc, DESC_RATE1M);
-
-		SET_TX_DESC_SW_SEQ(pdesc, 0);
-
-		SET_TX_DESC_RATE_ID(pdesc, 7);
-		SET_TX_DESC_MACID(pdesc, 0);
-
-		SET_TX_DESC_LS(pdesc, 1);
-
-		SET_TX_DESC_OFFSET(pdesc, 48);
-
-		SET_TX_DESC_USE_RATE(pdesc, 1);
-	}
-
-	RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD, "H2C Tx Cmd Content\n",
-		      pdesc, txdesc_len);
-}
-
-void rtl8822be_set_desc(struct ieee80211_hw *hw, u8 *pdesc, bool istx,
-			u8 desc_name, u8 *val)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u8 q_idx = *val;
-	bool dma64 = rtlpriv->cfg->mod_params->dma64;
-
-	if (istx) {
-		switch (desc_name) {
-		case HW_DESC_OWN: {
-			struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-			struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[q_idx];
-			u16 max_tx_desc = ring->entries;
-
-			if (q_idx == BEACON_QUEUE) {
-				/* in case of beacon, pdesc is BD desc. */
-				u8 *pbd_desc = pdesc;
-
-				ring->cur_tx_wp = 0;
-				ring->cur_tx_rp = 0;
-				SET_TX_BUFF_DESC_OWN(pbd_desc, 1);
-				return;
-			}
-
-			/* make sure tx desc is available by caller */
-			ring->cur_tx_wp = ((ring->cur_tx_wp + 1) % max_tx_desc);
-
-			rtl_write_word(
-				rtlpriv,
-				get_desc_address_from_queue_index(
-					q_idx),
-				ring->cur_tx_wp);
-		} break;
-		}
-	} else {
-		switch (desc_name) {
-		case HW_DESC_RX_PREPARE:
-			SET_RX_BUFFER_DESC_LS(pdesc, 0);
-			SET_RX_BUFFER_DESC_FS(pdesc, 0);
-			SET_RX_BUFFER_DESC_TOTAL_LENGTH(pdesc, 0);
-
-			SET_RX_BUFFER_DESC_DATA_LENGTH(
-				pdesc, MAX_RECEIVE_BUFFER_SIZE + RX_DESC_SIZE);
-
-			SET_RX_BUFFER_PHYSICAL_LOW(
-				pdesc, (*(dma_addr_t *)val) & DMA_BIT_MASK(32));
-			SET_RX_BUFFER_PHYSICAL_HIGH(
-				pdesc, ((u64)(*(dma_addr_t *)val) >> 32),
-				dma64);
-			break;
-		default:
-			WARN_ONCE(true, "ERR rxdesc :%d not process\n",
-				  desc_name);
-			break;
-		}
-	}
-}
-
-u64 rtl8822be_get_desc(struct ieee80211_hw *hw,
-		       u8 *pdesc, bool istx, u8 desc_name)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u64 ret = 0;
-	u8 *pbd_desc = pdesc;
-	bool dma64 = rtlpriv->cfg->mod_params->dma64;
-
-	if (istx) {
-		switch (desc_name) {
-		case HW_DESC_TXBUFF_ADDR:
-			ret = GET_TXBUFFER_DESC_ADDR_LOW(pbd_desc, 1);
-			ret |= (u64)GET_TXBUFFER_DESC_ADDR_HIGH(pbd_desc, 1,
-								dma64) << 32;
-			break;
-		default:
-			WARN_ONCE(true, "ERR txdesc :%d not process\n",
-				  desc_name);
-			break;
-		}
-	} else {
-		switch (desc_name) {
-		case HW_DESC_RXPKT_LEN:
-			ret = GET_RX_DESC_PKT_LEN(pdesc);
-			break;
-		default:
-			WARN_ONCE(true, "ERR rxdesc :%d not process\n",
-				  desc_name);
-			break;
-		}
-	}
-	return ret;
-}
-
-bool rtl8822be_is_tx_desc_closed(struct ieee80211_hw *hw, u8 hw_queue,
-				 u16 index)
-{
-	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	bool ret = false;
-	struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue];
-	u16 cur_tx_rp, cur_tx_wp;
-	u16 tmp16;
-
-	/*
-	 * design rule:
-	 *     idx <= cur_tx_rp <= hw_rp <= cur_tx_wp = hw_wp
-	 */
-
-	if (index == ring->cur_tx_rp) {
-		/* update only if sw_rp reach hw_rp */
-		tmp16 = rtl_read_word(
-			    rtlpriv,
-			    get_desc_address_from_queue_index(hw_queue) + 2);
-
-		cur_tx_rp = tmp16 & 0x01ff;
-		cur_tx_wp = ring->cur_tx_wp;
-
-		/* don't need to update ring->cur_tx_wp */
-		ring->cur_tx_rp = cur_tx_rp;
-	}
-
-	if (index == ring->cur_tx_rp)
-		ret = false;	/* no more */
-	else
-		ret = true;	/* more */
-
-	if (hw_queue == BEACON_QUEUE)
-		ret = true;
-
-	if (rtlpriv->rtlhal.driver_is_goingto_unload ||
-	    rtlpriv->psc.rfoff_reason > RF_CHANGE_BY_PS)
-		ret = true;
-
-	return ret;
-}
-
-void rtl8822be_tx_polling(struct ieee80211_hw *hw, u8 hw_queue)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	if (hw_queue == BEACON_QUEUE) {
-		/* kick start */
-		rtl_write_byte(
-			rtlpriv, REG_RX_RXBD_NUM_8822B + 1,
-			rtl_read_byte(rtlpriv, REG_RX_RXBD_NUM_8822B + 1) |
-				BIT(4));
-	}
-}
-
-u32 rtl8822be_rx_command_packet(struct ieee80211_hw *hw,
-				const struct rtl_stats *status,
-				struct sk_buff *skb)
-{
-	u32 result = 0;
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	switch (status->packet_report_type) {
-	case NORMAL_RX:
-		result = 0;
-		break;
-	case C2H_PACKET:
-		rtl8822be_c2h_packet_handler(hw, skb->data, (u8)skb->len);
-		result = 1;
-		break;
-	default:
-		RT_TRACE(rtlpriv, COMP_RECV, DBG_TRACE,
-			 "Unknown packet type %d\n",
-			 status->packet_report_type);
-		break;
-	}
-
-	return result;
-}
diff --git a/drivers/staging/rtlwifi/rtl8822be/trx.h b/drivers/staging/rtlwifi/rtl8822be/trx.h
deleted file mode 100644
index d7ba7f3..0000000
--- a/drivers/staging/rtlwifi/rtl8822be/trx.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2016  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL8822B_TRX_H__
-#define __RTL8822B_TRX_H__
-
-#include "../halmac/halmac_tx_desc_nic.h"
-#include "../halmac/halmac_rx_desc_nic.h"
-
-#define TX_DESC_SIZE	64
-
-#define RX_DRV_INFO_SIZE_UNIT	8
-
-#define TX_DESC_NEXT_DESC_OFFSET	48
-#define USB_HWDESC_HEADER_LEN	48
-
-#define RX_DESC_SIZE	24
-#define MAX_RECEIVE_BUFFER_SIZE	8192
-
-#define SET_EARLYMODE_PKTNUM(__paddr, __val)                                   \
-	SET_BITS_TO_LE_4BYTE(__paddr, 0, 4, __val)
-#define SET_EARLYMODE_LEN0(__paddr, __val)                                     \
-	SET_BITS_TO_LE_4BYTE(__paddr, 4, 15, __val)
-#define SET_EARLYMODE_LEN1(__paddr, __val)                                     \
-	SET_BITS_TO_LE_4BYTE(__paddr, 16, 2, __val)
-#define SET_EARLYMODE_LEN1_1(__paddr, __val)                                   \
-	SET_BITS_TO_LE_4BYTE(__paddr, 19, 13, __val)
-#define SET_EARLYMODE_LEN1_2(__paddr, __val)                                   \
-	SET_BITS_TO_LE_4BYTE(__paddr + 4, 0, 2, __val)
-#define SET_EARLYMODE_LEN2(__paddr, __val)                                     \
-	SET_BITS_TO_LE_4BYTE(__paddr + 4, 2, 15, __val)
-#define SET_EARLYMODE_LEN2_1(__paddr, __val)                                   \
-	SET_BITS_TO_LE_4BYTE(__paddr, 2, 4, __val)
-#define SET_EARLYMODE_LEN2_2(__paddr, __val)                                   \
-	SET_BITS_TO_LE_4BYTE(__paddr + 4, 0, 8, __val)
-#define SET_EARLYMODE_LEN3(__paddr, __val)                                     \
-	SET_BITS_TO_LE_4BYTE(__paddr + 4, 17, 15, __val)
-#define SET_EARLYMODE_LEN4(__paddr, __val)                                     \
-	SET_BITS_TO_LE_4BYTE(__paddr + 4, 20, 12, __val)
-
-/* TX/RX buffer descriptor */
-
-/* for Txfilldescroptor8822be, fill the desc content. */
-#define SET_TXBUFFER_DESC_LEN_WITH_OFFSET(__pdesc, __offset, __val)            \
-	SET_BITS_TO_LE_4BYTE((__pdesc) + ((__offset) * 16), 0, 16, __val)
-#define SET_TXBUFFER_DESC_AMSDU_WITH_OFFSET(__pdesc, __offset, __val)          \
-	SET_BITS_TO_LE_4BYTE((__pdesc) + ((__offset) * 16), 31, 1, __val)
-#define SET_TXBUFFER_DESC_ADD_LOW_WITH_OFFSET(__pdesc, __offset, __val)        \
-	SET_BITS_TO_LE_4BYTE((__pdesc) + ((__offset) * 16) + 4, 0, 32, __val)
-#define SET_TXBUFFER_DESC_ADD_HIGH_WITH_OFFSET(pbd, off, val, dma64)	       \
-	(dma64 ? SET_BITS_TO_LE_4BYTE((pbd) + ((off) * 16) + 8, 0, 32, val) : 0)
-#define GET_TXBUFFER_DESC_ADDR_LOW(__pdesc, __offset)                          \
-	LE_BITS_TO_4BYTE((__pdesc) + ((__offset) * 16) + 4, 0, 32)
-#define GET_TXBUFFER_DESC_ADDR_HIGH(pbd, off, dma64)			       \
-	(dma64 ? LE_BITS_TO_4BYTE((pbd) + ((off) * 16) + 8, 0, 32) : 0)
-
-/* Dword 0 */
-#define SET_TX_BUFF_DESC_LEN_0(__pdesc, __val)                                 \
-	SET_BITS_TO_LE_4BYTE(__pdesc, 0, 14, __val)
-#define SET_TX_BUFF_DESC_PSB(__pdesc, __val)                                   \
-	SET_BITS_TO_LE_4BYTE(__pdesc, 16, 15, __val)
-#define SET_TX_BUFF_DESC_OWN(__pdesc, __val)                                   \
-	SET_BITS_TO_LE_4BYTE(__pdesc, 31, 1, __val)
-
-/* Dword 1 */
-#define SET_TX_BUFF_DESC_ADDR_LOW_0(__pdesc, __val)                            \
-	SET_BITS_TO_LE_4BYTE((__pdesc) + 4, 0, 32, __val)
-/* Dword 2 */
-#define SET_TX_BUFF_DESC_ADDR_HIGH_0(bdesc, val, dma64)			       \
-	SET_TXBUFFER_DESC_ADD_HIGH_WITH_OFFSET(bdesc, 0, val, dma64)
-/* Dword 3 / RESERVED 0 */
-
-/* RX buffer  */
-
-/* DWORD 0 */
-#define SET_RX_BUFFER_DESC_DATA_LENGTH(__rx_status_desc, __val)                \
-	SET_BITS_TO_LE_4BYTE(__rx_status_desc, 0, 14, __val)
-#define SET_RX_BUFFER_DESC_LS(__rx_status_desc, __val)                         \
-	SET_BITS_TO_LE_4BYTE(__rx_status_desc, 15, 1, __val)
-#define SET_RX_BUFFER_DESC_FS(__rx_status_desc, __val)                         \
-	SET_BITS_TO_LE_4BYTE(__rx_status_desc, 16, 1, __val)
-#define SET_RX_BUFFER_DESC_TOTAL_LENGTH(__rx_status_desc, __val)               \
-	SET_BITS_TO_LE_4BYTE(__rx_status_desc, 16, 15, __val)
-
-#define GET_RX_BUFFER_DESC_OWN(__rx_status_desc)                               \
-	LE_BITS_TO_4BYTE(__rx_status_desc, 31, 1)
-#define GET_RX_BUFFER_DESC_LS(__rx_status_desc)                                \
-	LE_BITS_TO_4BYTE(__rx_status_desc, 15, 1)
-#define GET_RX_BUFFER_DESC_FS(__rx_status_desc)                                \
-	LE_BITS_TO_4BYTE(__rx_status_desc, 16, 1)
-#define GET_RX_BUFFER_DESC_TOTAL_LENGTH(__rx_status_desc)                      \
-	LE_BITS_TO_4BYTE(__rx_status_desc, 16, 15)
-
-/* DWORD 1 */
-#define SET_RX_BUFFER_PHYSICAL_LOW(__rx_status_desc, __val)                    \
-	SET_BITS_TO_LE_4BYTE(__rx_status_desc + 4, 0, 32, __val)
-
-/* DWORD 2 */
-#define SET_RX_BUFFER_PHYSICAL_HIGH(__rx_status_desc, __val, dma64)            \
-	(dma64 ? SET_BITS_TO_LE_4BYTE((__rx_status_desc) + 8, 0, 32, __val) : 0)
-
-#define CLEAR_PCI_TX_DESC_CONTENT(__pdesc, _size)                              \
-	do {                                                                   \
-		if (_size > TX_DESC_NEXT_DESC_OFFSET)                          \
-			memset(__pdesc, 0, TX_DESC_NEXT_DESC_OFFSET);          \
-		else                                                           \
-			memset(__pdesc, 0, _size);                             \
-	} while (0)
-
-void rtl8822be_rx_check_dma_ok(struct ieee80211_hw *hw, u8 *header_desc,
-			       u8 queue_index);
-u16 rtl8822be_rx_desc_buff_remained_cnt(struct ieee80211_hw *hw,
-					u8 queue_index);
-u16 rtl8822be_get_available_desc(struct ieee80211_hw *hw, u8 queue_index);
-void rtl8822be_pre_fill_tx_bd_desc(struct ieee80211_hw *hw, u8 *tx_bd_desc,
-				   u8 *desc, u8 queue_index,
-				   struct sk_buff *skb, dma_addr_t addr);
-
-void rtl8822be_tx_fill_desc(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
-			    u8 *pdesc_tx, u8 *pbd_desc_tx,
-			    struct ieee80211_tx_info *info,
-			    struct ieee80211_sta *sta, struct sk_buff *skb,
-			    u8 hw_queue, struct rtl_tcb_desc *ptcb_desc);
-void rtl8822be_tx_fill_special_desc(struct ieee80211_hw *hw, u8 *pdesc,
-				    u8 *pbd_desc, struct sk_buff *skb,
-				    u8 hw_queue);
-bool rtl8822be_rx_query_desc(struct ieee80211_hw *hw, struct rtl_stats *status,
-			     struct ieee80211_rx_status *rx_status, u8 *pdesc,
-			     struct sk_buff *skb);
-void rtl8822be_set_desc(struct ieee80211_hw *hw, u8 *pdesc, bool istx,
-			u8 desc_name, u8 *val);
-u64 rtl8822be_get_desc(struct ieee80211_hw *hw,
-		       u8 *pdesc, bool istx, u8 desc_name);
-bool rtl8822be_is_tx_desc_closed(struct ieee80211_hw *hw, u8 hw_queue,
-				 u16 index);
-void rtl8822be_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
-void rtl8822be_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
-			       bool firstseg, bool lastseg,
-			       struct sk_buff *skb);
-u32 rtl8822be_rx_command_packet(struct ieee80211_hw *hw,
-				const struct rtl_stats *status,
-				struct sk_buff *skb);
-#endif
diff --git a/drivers/staging/rtlwifi/stats.c b/drivers/staging/rtlwifi/stats.c
deleted file mode 100644
index 149b665..0000000
--- a/drivers/staging/rtlwifi/stats.c
+++ /dev/null
@@ -1,249 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-#include "wifi.h"
-#include "stats.h"
-#include <linux/export.h>
-
-u8 rtl_query_rxpwrpercentage(s8 antpower)
-{
-	if ((antpower <= -100) || (antpower >= 20))
-		return 0;
-	else if (antpower >= 0)
-		return 100;
-	else
-		return 100 + antpower;
-}
-
-u8 rtl_evm_db_to_percentage(s8 value)
-{
-	s8 ret_val = clamp(-value, 0, 33) * 3;
-
-	if (ret_val == 99)
-		ret_val = 100;
-
-	return ret_val;
-}
-
-static long rtl_translate_todbm(struct ieee80211_hw *hw,
-				u8 signal_strength_index)
-{
-	long signal_power;
-
-	signal_power = (long)((signal_strength_index + 1) >> 1);
-	signal_power -= 95;
-	return signal_power;
-}
-
-long rtl_signal_scale_mapping(struct ieee80211_hw *hw, long currsig)
-{
-	long retsig;
-
-	if (currsig >= 61 && currsig <= 100)
-		retsig = 90 + ((currsig - 60) / 4);
-	else if (currsig >= 41 && currsig <= 60)
-		retsig = 78 + ((currsig - 40) / 2);
-	else if (currsig >= 31 && currsig <= 40)
-		retsig = 66 + (currsig - 30);
-	else if (currsig >= 21 && currsig <= 30)
-		retsig = 54 + (currsig - 20);
-	else if (currsig >= 5 && currsig <= 20)
-		retsig = 42 + (((currsig - 5) * 2) / 3);
-	else if (currsig == 4)
-		retsig = 36;
-	else if (currsig == 3)
-		retsig = 27;
-	else if (currsig == 2)
-		retsig = 18;
-	else if (currsig == 1)
-		retsig = 9;
-	else
-		retsig = currsig;
-
-	return retsig;
-}
-
-static void rtl_process_ui_rssi(struct ieee80211_hw *hw,
-				struct rtl_stats *pstatus)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_phy *rtlphy = &rtlpriv->phy;
-	u8 rfpath;
-	u32 last_rssi, tmpval;
-
-	if (!pstatus->packet_toself && !pstatus->packet_beacon)
-		return;
-
-	rtlpriv->stats.pwdb_all_cnt += pstatus->rx_pwdb_all;
-	rtlpriv->stats.rssi_calculate_cnt++;
-
-	if (rtlpriv->stats.ui_rssi.total_num++ >= PHY_RSSI_SLID_WIN_MAX) {
-		rtlpriv->stats.ui_rssi.total_num = PHY_RSSI_SLID_WIN_MAX;
-		last_rssi = rtlpriv->stats.ui_rssi.elements[
-			rtlpriv->stats.ui_rssi.index];
-		rtlpriv->stats.ui_rssi.total_val -= last_rssi;
-	}
-	rtlpriv->stats.ui_rssi.total_val += pstatus->signalstrength;
-	rtlpriv->stats.ui_rssi.elements[rtlpriv->stats.ui_rssi.index++] =
-	    pstatus->signalstrength;
-	if (rtlpriv->stats.ui_rssi.index >= PHY_RSSI_SLID_WIN_MAX)
-		rtlpriv->stats.ui_rssi.index = 0;
-	tmpval = rtlpriv->stats.ui_rssi.total_val /
-		rtlpriv->stats.ui_rssi.total_num;
-	rtlpriv->stats.signal_strength = rtl_translate_todbm(hw, (u8)tmpval);
-	pstatus->rssi = rtlpriv->stats.signal_strength;
-
-	if (pstatus->is_cck)
-		return;
-
-	for (rfpath = RF90_PATH_A; rfpath < rtlphy->num_total_rfpath;
-	     rfpath++) {
-		if (rtlpriv->stats.rx_rssi_percentage[rfpath] == 0) {
-			rtlpriv->stats.rx_rssi_percentage[rfpath] =
-			    pstatus->rx_mimo_signalstrength[rfpath];
-		}
-		if (pstatus->rx_mimo_signalstrength[rfpath] >
-		    rtlpriv->stats.rx_rssi_percentage[rfpath]) {
-			rtlpriv->stats.rx_rssi_percentage[rfpath] =
-			    ((rtlpriv->stats.rx_rssi_percentage[rfpath] *
-			      (RX_SMOOTH_FACTOR - 1)) +
-			     (pstatus->rx_mimo_signalstrength[rfpath])) /
-			    (RX_SMOOTH_FACTOR);
-			rtlpriv->stats.rx_rssi_percentage[rfpath] =
-			    rtlpriv->stats.rx_rssi_percentage[rfpath] + 1;
-		} else {
-			rtlpriv->stats.rx_rssi_percentage[rfpath] =
-			    ((rtlpriv->stats.rx_rssi_percentage[rfpath] *
-			      (RX_SMOOTH_FACTOR - 1)) +
-			     (pstatus->rx_mimo_signalstrength[rfpath])) /
-			    (RX_SMOOTH_FACTOR);
-		}
-		rtlpriv->stats.rx_snr_db[rfpath] = pstatus->rx_snr[rfpath];
-		rtlpriv->stats.rx_evm_dbm[rfpath] =
-					pstatus->rx_mimo_evm_dbm[rfpath];
-		rtlpriv->stats.rx_cfo_short[rfpath] =
-					pstatus->cfo_short[rfpath];
-		rtlpriv->stats.rx_cfo_tail[rfpath] = pstatus->cfo_tail[rfpath];
-	}
-}
-
-static void rtl_update_rxsignalstatistics(struct ieee80211_hw *hw,
-					  struct rtl_stats *pstatus)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	int weighting = 0;
-
-	if (rtlpriv->stats.recv_signal_power == 0)
-		rtlpriv->stats.recv_signal_power = pstatus->recvsignalpower;
-	if (pstatus->recvsignalpower > rtlpriv->stats.recv_signal_power)
-		weighting = 5;
-	else if (pstatus->recvsignalpower < rtlpriv->stats.recv_signal_power)
-		weighting = (-5);
-	rtlpriv->stats.recv_signal_power = (rtlpriv->stats.recv_signal_power *
-		5 + pstatus->recvsignalpower + weighting) / 6;
-}
-
-static void rtl_process_pwdb(struct ieee80211_hw *hw, struct rtl_stats *pstatus)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	struct rtl_sta_info *drv_priv = NULL;
-	struct ieee80211_sta *sta = NULL;
-	long undec_sm_pwdb;
-
-	rcu_read_lock();
-	if (rtlpriv->mac80211.opmode != NL80211_IFTYPE_STATION)
-		sta = rtl_find_sta(hw, pstatus->psaddr);
-
-	/* adhoc or ap mode */
-	if (sta) {
-		drv_priv = (struct rtl_sta_info *)sta->drv_priv;
-		undec_sm_pwdb = drv_priv->rssi_stat.undec_sm_pwdb;
-	} else {
-		undec_sm_pwdb = rtlpriv->dm.undec_sm_pwdb;
-	}
-
-	if (undec_sm_pwdb < 0)
-		undec_sm_pwdb = pstatus->rx_pwdb_all;
-	if (pstatus->rx_pwdb_all > (u32)undec_sm_pwdb) {
-		undec_sm_pwdb = (((undec_sm_pwdb) *
-		      (RX_SMOOTH_FACTOR - 1)) +
-		     (pstatus->rx_pwdb_all)) / (RX_SMOOTH_FACTOR);
-		undec_sm_pwdb = undec_sm_pwdb + 1;
-	} else {
-		undec_sm_pwdb = (((undec_sm_pwdb) *
-		      (RX_SMOOTH_FACTOR - 1)) +
-		     (pstatus->rx_pwdb_all)) / (RX_SMOOTH_FACTOR);
-	}
-
-	if (sta)
-		drv_priv->rssi_stat.undec_sm_pwdb = undec_sm_pwdb;
-	else
-		rtlpriv->dm.undec_sm_pwdb = undec_sm_pwdb;
-	rcu_read_unlock();
-
-	rtl_update_rxsignalstatistics(hw, pstatus);
-}
-
-static void rtl_process_ui_link_quality(struct ieee80211_hw *hw,
-					struct rtl_stats *pstatus)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-	u32 last_evm, n_stream, tmpval;
-
-	if (pstatus->signalquality == 0)
-		return;
-
-	if (rtlpriv->stats.ui_link_quality.total_num++ >=
-	    PHY_LINKQUALITY_SLID_WIN_MAX) {
-		rtlpriv->stats.ui_link_quality.total_num =
-		    PHY_LINKQUALITY_SLID_WIN_MAX;
-		last_evm = rtlpriv->stats.ui_link_quality.elements[
-			rtlpriv->stats.ui_link_quality.index];
-		rtlpriv->stats.ui_link_quality.total_val -= last_evm;
-	}
-	rtlpriv->stats.ui_link_quality.total_val += pstatus->signalquality;
-	rtlpriv->stats.ui_link_quality.elements[
-		rtlpriv->stats.ui_link_quality.index++] =
-							pstatus->signalquality;
-	if (rtlpriv->stats.ui_link_quality.index >=
-	    PHY_LINKQUALITY_SLID_WIN_MAX)
-		rtlpriv->stats.ui_link_quality.index = 0;
-	tmpval = rtlpriv->stats.ui_link_quality.total_val /
-	    rtlpriv->stats.ui_link_quality.total_num;
-	rtlpriv->stats.signal_quality = tmpval;
-	rtlpriv->stats.last_sigstrength_inpercent = tmpval;
-	for (n_stream = 0; n_stream < 2; n_stream++) {
-		if (pstatus->rx_mimo_sig_qual[n_stream] != -1) {
-			if (rtlpriv->stats.rx_evm_percentage[n_stream] == 0) {
-				rtlpriv->stats.rx_evm_percentage[n_stream] =
-				    pstatus->rx_mimo_sig_qual[n_stream];
-			}
-			rtlpriv->stats.rx_evm_percentage[n_stream] =
-			    ((rtlpriv->stats.rx_evm_percentage[n_stream]
-			      * (RX_SMOOTH_FACTOR - 1)) +
-			     (pstatus->rx_mimo_sig_qual[n_stream] * 1)) /
-			    (RX_SMOOTH_FACTOR);
-		}
-	}
-}
-
-void rtl_process_phyinfo(struct ieee80211_hw *hw, u8 *buffer,
-			 struct rtl_stats *pstatus)
-{
-	if (!pstatus->packet_matchbssid)
-		return;
-
-	rtl_process_ui_rssi(hw, pstatus);
-	rtl_process_pwdb(hw, pstatus);
-	rtl_process_ui_link_quality(hw, pstatus);
-}
diff --git a/drivers/staging/rtlwifi/stats.h b/drivers/staging/rtlwifi/stats.h
deleted file mode 100644
index aa4f30d..0000000
--- a/drivers/staging/rtlwifi/stats.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_STATS_H__
-#define __RTL_STATS_H__
-
-#define	PHY_RSSI_SLID_WIN_MAX			100
-#define	PHY_LINKQUALITY_SLID_WIN_MAX		20
-#define	PHY_BEACON_RSSI_SLID_WIN_MAX		10
-
-/* Rx smooth factor */
-#define	RX_SMOOTH_FACTOR			20
-
-u8 rtl_query_rxpwrpercentage(s8 antpower);
-u8 rtl_evm_db_to_percentage(s8 value);
-long rtl_signal_scale_mapping(struct ieee80211_hw *hw, long currsig);
-void rtl_process_phyinfo(struct ieee80211_hw *hw, u8 *buffer,
-			 struct rtl_stats *pstatus);
-
-#endif
diff --git a/drivers/staging/rtlwifi/wifi.h b/drivers/staging/rtlwifi/wifi.h
deleted file mode 100644
index 9cb6c79..0000000
--- a/drivers/staging/rtlwifi/wifi.h
+++ /dev/null
@@ -1,3362 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/******************************************************************************
- *
- * Copyright(c) 2009-2012  Realtek Corporation.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- *
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
-
-#ifndef __RTL_WIFI_H__
-#define __RTL_WIFI_H__
-
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/sched.h>
-#include <linux/firmware.h>
-#include <linux/etherdevice.h>
-#include <linux/vmalloc.h>
-#include <linux/usb.h>
-#include <net/mac80211.h>
-#include <linux/completion.h>
-#include "debug.h"
-
-#define	MASKBYTE0				0xff
-#define	MASKBYTE1				0xff00
-#define	MASKBYTE2				0xff0000
-#define	MASKBYTE3				0xff000000
-#define	MASKHWORD				0xffff0000
-#define	MASKLWORD				0x0000ffff
-#define	MASKDWORD				0xffffffff
-#define	MASK12BITS				0xfff
-#define	MASKH4BITS				0xf0000000
-#define MASKOFDM_D				0xffc00000
-#define	MASKCCK					0x3f3f3f3f
-
-#define	MASK4BITS				0x0f
-#define	MASK20BITS				0xfffff
-#define RFREG_OFFSET_MASK			0xfffff
-
-#define	MASKBYTE0				0xff
-#define	MASKBYTE1				0xff00
-#define	MASKBYTE2				0xff0000
-#define	MASKBYTE3				0xff000000
-#define	MASKHWORD				0xffff0000
-#define	MASKLWORD				0x0000ffff
-#define	MASKDWORD				0xffffffff
-#define	MASK12BITS				0xfff
-#define	MASKH4BITS				0xf0000000
-#define MASKOFDM_D				0xffc00000
-#define	MASKCCK					0x3f3f3f3f
-
-#define	MASK4BITS				0x0f
-#define	MASK20BITS				0xfffff
-#define RFREG_OFFSET_MASK			0xfffff
-
-#define RF_CHANGE_BY_INIT			0
-#define RF_CHANGE_BY_IPS			BIT(28)
-#define RF_CHANGE_BY_PS				BIT(29)
-#define RF_CHANGE_BY_HW				BIT(30)
-#define RF_CHANGE_BY_SW				BIT(31)
-
-#define IQK_ADDA_REG_NUM			16
-#define IQK_MAC_REG_NUM				4
-#define IQK_THRESHOLD				8
-
-#define MAX_KEY_LEN				61
-#define KEY_BUF_SIZE				5
-
-/* QoS related. */
-/*aci: 0x00	Best Effort*/
-/*aci: 0x01	Background*/
-/*aci: 0x10	Video*/
-/*aci: 0x11	Voice*/
-/*Max: define total number.*/
-#define AC0_BE					0
-#define AC1_BK					1
-#define AC2_VI					2
-#define AC3_VO					3
-#define AC_MAX					4
-#define QOS_QUEUE_NUM				4
-#define RTL_MAC80211_NUM_QUEUE			5
-#define REALTEK_USB_VENQT_MAX_BUF_SIZE		254
-#define RTL_USB_MAX_RX_COUNT			100
-#define QBSS_LOAD_SIZE				5
-#define MAX_WMMELE_LENGTH			64
-#define ASPM_L1_LATENCY				7
-
-#define TOTAL_CAM_ENTRY				32
-
-/*slot time for 11g. */
-#define RTL_SLOT_TIME_9				9
-#define RTL_SLOT_TIME_20			20
-
-/*related to tcp/ip. */
-#define SNAP_SIZE		6
-#define PROTOC_TYPE_SIZE	2
-
-/*related with 802.11 frame*/
-#define MAC80211_3ADDR_LEN			24
-#define MAC80211_4ADDR_LEN			30
-
-#define CHANNEL_MAX_NUMBER	(14 + 24 + 21)	/* 14 is the max channel no */
-#define CHANNEL_MAX_NUMBER_2G		14
-#define CHANNEL_MAX_NUMBER_5G		49 /* Please refer to
-					    *"phy_GetChnlGroup8812A" and
-					    * "Hal_ReadTxPowerInfo8812A"
-					    */
-#define CHANNEL_MAX_NUMBER_5G_80M	7
-#define CHANNEL_GROUP_MAX	(3 + 9)	/*  ch1~3, 4~9, 10~14 = three groups */
-#define MAX_PG_GROUP			13
-#define	CHANNEL_GROUP_MAX_2G		3
-#define	CHANNEL_GROUP_IDX_5GL		3
-#define	CHANNEL_GROUP_IDX_5GM		6
-#define	CHANNEL_GROUP_IDX_5GH		9
-#define	CHANNEL_GROUP_MAX_5G		9
-#define CHANNEL_MAX_NUMBER_2G		14
-#define AVG_THERMAL_NUM			8
-#define AVG_THERMAL_NUM_88E		4
-#define AVG_THERMAL_NUM_8723BE		4
-#define MAX_TID_COUNT			9
-
-/* for early mode */
-#define FCS_LEN				4
-#define EM_HDR_LEN			8
-
-enum rtl8192c_h2c_cmd {
-	H2C_AP_OFFLOAD = 0,
-	H2C_SETPWRMODE = 1,
-	H2C_JOINBSSRPT = 2,
-	H2C_RSVDPAGE = 3,
-	H2C_RSSI_REPORT = 5,
-	H2C_RA_MASK = 6,
-	H2C_MACID_PS_MODE = 7,
-	H2C_P2P_PS_OFFLOAD = 8,
-	H2C_MAC_MODE_SEL = 9,
-	H2C_PWRM = 15,
-	H2C_P2P_PS_CTW_CMD = 24,
-	MAX_H2CCMD
-};
-
-#define MAX_TX_COUNT			4
-#define MAX_REGULATION_NUM		4
-#define MAX_RF_PATH_NUM			4
-#define MAX_RATE_SECTION_NUM		6	/* = MAX_RATE_SECTION */
-#define MAX_2_4G_BANDWIDTH_NUM		4
-#define MAX_5G_BANDWIDTH_NUM		4
-#define	MAX_RF_PATH			4
-#define	MAX_CHNL_GROUP_24G		6
-#define	MAX_CHNL_GROUP_5G		14
-
-#define TX_PWR_BY_RATE_NUM_BAND		2
-#define TX_PWR_BY_RATE_NUM_RF		4
-#define TX_PWR_BY_RATE_NUM_SECTION	12
-/* compatible with TX_PWR_BY_RATE_NUM_SECTION */
-#define TX_PWR_BY_RATE_NUM_RATE		84
-#define MAX_BASE_NUM_IN_PHY_REG_PG_24G  6	/* MAX_RATE_SECTION */
-#define MAX_BASE_NUM_IN_PHY_REG_PG_5G	5	/* MAX_RATE_SECTION -1 */
-
-#define BUFDESC_SEG_NUM		1 /* 0:2 seg, 1: 4 seg, 2: 8 seg */
-
-#define DEL_SW_IDX_SZ		30
-
-/* For now, it's just for 8192ee
- * but not OK yet, keep it 0
- */
-#define RTL8192EE_SEG_NUM		BUFDESC_SEG_NUM
-#define RTL8822BE_SEG_NUM		BUFDESC_SEG_NUM
-
-enum rf_tx_num {
-	RF_1TX = 0,
-	RF_2TX,
-	RF_MAX_TX_NUM,
-	RF_TX_NUM_NONIMPLEMENT,
-};
-
-#define PACKET_NORMAL			0
-#define PACKET_DHCP			1
-#define PACKET_ARP			2
-#define PACKET_EAPOL			3
-
-#define	MAX_SUPPORT_WOL_PATTERN_NUM	16
-#define	RSVD_WOL_PATTERN_NUM		1
-#define	WKFMCAM_ADDR_NUM		6
-#define	WKFMCAM_SIZE			24
-
-#define	MAX_WOL_BIT_MASK_SIZE		16
-/* MIN LEN keeps 13 here */
-#define	MIN_WOL_PATTERN_SIZE		13
-#define	MAX_WOL_PATTERN_SIZE		128
-
-#define	WAKE_ON_MAGIC_PACKET		BIT(0)
-#define	WAKE_ON_PATTERN_MATCH		BIT(1)
-
-#define	WOL_REASON_PTK_UPDATE		BIT(0)
-#define	WOL_REASON_GTK_UPDATE		BIT(1)
-#define	WOL_REASON_DISASSOC		BIT(2)
-#define	WOL_REASON_DEAUTH		BIT(3)
-#define	WOL_REASON_AP_LOST		BIT(4)
-#define	WOL_REASON_MAGIC_PKT		BIT(5)
-#define	WOL_REASON_UNICAST_PKT		BIT(6)
-#define	WOL_REASON_PATTERN_PKT		BIT(7)
-#define	WOL_REASON_RTD3_SSID_MATCH	BIT(8)
-#define	WOL_REASON_REALWOW_V2_WAKEUPPKT	BIT(9)
-#define	WOL_REASON_REALWOW_V2_ACKLOST	BIT(10)
-
-struct rtlwifi_firmware_header {
-	__le16 signature;
-	u8 category;
-	u8 function;
-	__le16 version;
-	u8 subversion;
-	u8 rsvd1;
-	u8 month;
-	u8 date;
-	u8 hour;
-	u8 minute;
-	__le16 ramcodesize;
-	__le16 rsvd2;
-	__le32 svnindex;
-	__le32 rsvd3;
-	__le32 rsvd4;
-	__le32 rsvd5;
-};
-
-struct txpower_info_2g {
-	u8 index_cck_base[MAX_RF_PATH][MAX_CHNL_GROUP_24G];
-	u8 index_bw40_base[MAX_RF_PATH][MAX_CHNL_GROUP_24G];
-	/*If only one tx, only BW20 and OFDM are used.*/
-	u8 cck_diff[MAX_RF_PATH][MAX_TX_COUNT];
-	u8 ofdm_diff[MAX_RF_PATH][MAX_TX_COUNT];
-	u8 bw20_diff[MAX_RF_PATH][MAX_TX_COUNT];
-	u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT];
-	u8 bw80_diff[MAX_RF_PATH][MAX_TX_COUNT];
-	u8 bw160_diff[MAX_RF_PATH][MAX_TX_COUNT];
-};
-
-struct txpower_info_5g {
-	u8 index_bw40_base[MAX_RF_PATH][MAX_CHNL_GROUP_5G];
-	/*If only one tx, only BW20, OFDM, BW80 and BW160 are used.*/
-	u8 ofdm_diff[MAX_RF_PATH][MAX_TX_COUNT];
-	u8 bw20_diff[MAX_RF_PATH][MAX_TX_COUNT];
-	u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT];
-	u8 bw80_diff[MAX_RF_PATH][MAX_TX_COUNT];
-	u8 bw160_diff[MAX_RF_PATH][MAX_TX_COUNT];
-};
-
-enum rate_section {
-	CCK = 0,
-	OFDM,
-	HT_MCS0_MCS7,
-	HT_MCS8_MCS15,
-	VHT_1SSMCS0_1SSMCS9,
-	VHT_2SSMCS0_2SSMCS9,
-	MAX_RATE_SECTION,
-};
-
-enum intf_type {
-	INTF_PCI = 0,
-	INTF_USB = 1,
-};
-
-enum radio_path {
-	RF90_PATH_A = 0,
-	RF90_PATH_B = 1,
-	RF90_PATH_C = 2,
-	RF90_PATH_D = 3,
-};
-
-enum radio_mask {
-	RF_MASK_A = BIT(0),
-	RF_MASK_B = BIT(1),
-	RF_MASK_C = BIT(2),
-	RF_MASK_D = BIT(3),
-};
-
-enum regulation_txpwr_lmt {
-	TXPWR_LMT_FCC = 0,
-	TXPWR_LMT_MKK = 1,
-	TXPWR_LMT_ETSI = 2,
-	TXPWR_LMT_WW = 3,
-
-	TXPWR_LMT_MAX_REGULATION_NUM = 4
-};
-
-enum rt_eeprom_type {
-	EEPROM_93C46,
-	EEPROM_93C56,
-	EEPROM_BOOT_EFUSE,
-};
-
-enum ttl_status {
-	RTL_STATUS_INTERFACE_START = 0,
-};
-
-enum hardware_type {
-	HARDWARE_TYPE_RTL8192E,
-	HARDWARE_TYPE_RTL8192U,
-	HARDWARE_TYPE_RTL8192SE,
-	HARDWARE_TYPE_RTL8192SU,
-	HARDWARE_TYPE_RTL8192CE,
-	HARDWARE_TYPE_RTL8192CU,
-	HARDWARE_TYPE_RTL8192DE,
-	HARDWARE_TYPE_RTL8192DU,
-	HARDWARE_TYPE_RTL8723AE,
-	HARDWARE_TYPE_RTL8723U,
-	HARDWARE_TYPE_RTL8188EE,
-	HARDWARE_TYPE_RTL8723BE,
-	HARDWARE_TYPE_RTL8192EE,
-	HARDWARE_TYPE_RTL8821AE,
-	HARDWARE_TYPE_RTL8812AE,
-	HARDWARE_TYPE_RTL8822BE,
-
-	/* keep it last */
-	HARDWARE_TYPE_NUM
-};
-
-#define RTL_HW_TYPE(rtlpriv)	(rtl_hal((struct rtl_priv *)rtlpriv)->hw_type)
-#define IS_NEW_GENERATION_IC(rtlpriv)			\
-			(RTL_HW_TYPE(rtlpriv) >= HARDWARE_TYPE_RTL8192EE)
-#define IS_HARDWARE_TYPE_8192CE(rtlpriv)		\
-			(RTL_HW_TYPE(rtlpriv) == HARDWARE_TYPE_RTL8192CE)
-#define IS_HARDWARE_TYPE_8812(rtlpriv)			\
-			(RTL_HW_TYPE(rtlpriv) == HARDWARE_TYPE_RTL8812AE)
-#define IS_HARDWARE_TYPE_8821(rtlpriv)			\
-			(RTL_HW_TYPE(rtlpriv) == HARDWARE_TYPE_RTL8821AE)
-#define IS_HARDWARE_TYPE_8723A(rtlpriv)			\
-			(RTL_HW_TYPE(rtlpriv) == HARDWARE_TYPE_RTL8723AE)
-#define IS_HARDWARE_TYPE_8723B(rtlpriv)			\
-			(RTL_HW_TYPE(rtlpriv) == HARDWARE_TYPE_RTL8723BE)
-#define IS_HARDWARE_TYPE_8192E(rtlpriv)			\
-			(RTL_HW_TYPE(rtlpriv) == HARDWARE_TYPE_RTL8192EE)
-#define IS_HARDWARE_TYPE_8822B(rtlpriv)			\
-			(RTL_HW_TYPE(rtlpriv) == HARDWARE_TYPE_RTL8822BE)
-
-#define RX_HAL_IS_CCK_RATE(rxmcs)			\
-	((rxmcs) == DESC_RATE1M ||			\
-	 (rxmcs) == DESC_RATE2M ||			\
-	 (rxmcs) == DESC_RATE5_5M ||			\
-	 (rxmcs) == DESC_RATE11M)
-
-enum scan_operation_backup_opt {
-	SCAN_OPT_BACKUP = 0,
-	SCAN_OPT_BACKUP_BAND0 = 0,
-	SCAN_OPT_BACKUP_BAND1,
-	SCAN_OPT_RESTORE,
-	SCAN_OPT_MAX
-};
-
-/*RF state.*/
-enum rf_pwrstate {
-	ERFON,
-	ERFSLEEP,
-	ERFOFF
-};
-
-struct bb_reg_def {
-	u32 rfintfs;
-	u32 rfintfi;
-	u32 rfintfo;
-	u32 rfintfe;
-	u32 rf3wire_offset;
-	u32 rflssi_select;
-	u32 rftxgain_stage;
-	u32 rfhssi_para1;
-	u32 rfhssi_para2;
-	u32 rfsw_ctrl;
-	u32 rfagc_control1;
-	u32 rfagc_control2;
-	u32 rfrxiq_imbal;
-	u32 rfrx_afe;
-	u32 rftxiq_imbal;
-	u32 rftx_afe;
-	u32 rf_rb;		/* rflssi_readback */
-	u32 rf_rbpi;		/* rflssi_readbackpi */
-};
-
-enum io_type {
-	IO_CMD_PAUSE_DM_BY_SCAN = 0,
-	IO_CMD_PAUSE_BAND0_DM_BY_SCAN = 0,
-	IO_CMD_PAUSE_BAND1_DM_BY_SCAN = 1,
-	IO_CMD_RESUME_DM_BY_SCAN = 2,
-};
-
-enum hw_variables {
-	HW_VAR_ETHER_ADDR = 0x0,
-	HW_VAR_MULTICAST_REG = 0x1,
-	HW_VAR_BASIC_RATE = 0x2,
-	HW_VAR_BSSID = 0x3,
-	HW_VAR_MEDIA_STATUS = 0x4,
-	HW_VAR_SECURITY_CONF = 0x5,
-	HW_VAR_BEACON_INTERVAL = 0x6,
-	HW_VAR_ATIM_WINDOW = 0x7,
-	HW_VAR_LISTEN_INTERVAL = 0x8,
-	HW_VAR_CS_COUNTER = 0x9,
-	HW_VAR_DEFAULTKEY0 = 0xa,
-	HW_VAR_DEFAULTKEY1 = 0xb,
-	HW_VAR_DEFAULTKEY2 = 0xc,
-	HW_VAR_DEFAULTKEY3 = 0xd,
-	HW_VAR_SIFS = 0xe,
-	HW_VAR_R2T_SIFS = 0xf,
-	HW_VAR_DIFS = 0x10,
-	HW_VAR_EIFS = 0x11,
-	HW_VAR_SLOT_TIME = 0x12,
-	HW_VAR_ACK_PREAMBLE = 0x13,
-	HW_VAR_CW_CONFIG = 0x14,
-	HW_VAR_CW_VALUES = 0x15,
-	HW_VAR_RATE_FALLBACK_CONTROL = 0x16,
-	HW_VAR_CONTENTION_WINDOW = 0x17,
-	HW_VAR_RETRY_COUNT = 0x18,
-	HW_VAR_TR_SWITCH = 0x19,
-	HW_VAR_COMMAND = 0x1a,
-	HW_VAR_WPA_CONFIG = 0x1b,
-	HW_VAR_AMPDU_MIN_SPACE = 0x1c,
-	HW_VAR_SHORTGI_DENSITY = 0x1d,
-	HW_VAR_AMPDU_FACTOR = 0x1e,
-	HW_VAR_MCS_RATE_AVAILABLE = 0x1f,
-	HW_VAR_AC_PARAM = 0x20,
-	HW_VAR_ACM_CTRL = 0x21,
-	HW_VAR_DIS_REQ_QSIZE = 0x22,
-	HW_VAR_CCX_CHNL_LOAD = 0x23,
-	HW_VAR_CCX_NOISE_HISTOGRAM = 0x24,
-	HW_VAR_CCX_CLM_NHM = 0x25,
-	HW_VAR_TXOPLIMIT = 0x26,
-	HW_VAR_TURBO_MODE = 0x27,
-	HW_VAR_RF_STATE = 0x28,
-	HW_VAR_RF_OFF_BY_HW = 0x29,
-	HW_VAR_BUS_SPEED = 0x2a,
-	HW_VAR_SET_DEV_POWER = 0x2b,
-
-	HW_VAR_RCR = 0x2c,
-	HW_VAR_RATR_0 = 0x2d,
-	HW_VAR_RRSR = 0x2e,
-	HW_VAR_CPU_RST = 0x2f,
-	HW_VAR_CHECK_BSSID = 0x30,
-	HW_VAR_LBK_MODE = 0x31,
-	HW_VAR_AES_11N_FIX = 0x32,
-	HW_VAR_USB_RX_AGGR = 0x33,
-	HW_VAR_USER_CONTROL_TURBO_MODE = 0x34,
-	HW_VAR_RETRY_LIMIT = 0x35,
-	HW_VAR_INIT_TX_RATE = 0x36,
-	HW_VAR_TX_RATE_REG = 0x37,
-	HW_VAR_EFUSE_USAGE = 0x38,
-	HW_VAR_EFUSE_BYTES = 0x39,
-	HW_VAR_AUTOLOAD_STATUS = 0x3a,
-	HW_VAR_RF_2R_DISABLE = 0x3b,
-	HW_VAR_SET_RPWM = 0x3c,
-	HW_VAR_H2C_FW_PWRMODE = 0x3d,
-	HW_VAR_H2C_FW_JOINBSSRPT = 0x3e,
-	HW_VAR_H2C_FW_MEDIASTATUSRPT = 0x3f,
-	HW_VAR_H2C_FW_P2P_PS_OFFLOAD = 0x40,
-	HW_VAR_FW_PSMODE_STATUS = 0x41,
-	HW_VAR_INIT_RTS_RATE = 0x42,
-	HW_VAR_RESUME_CLK_ON = 0x43,
-	HW_VAR_FW_LPS_ACTION = 0x44,
-	HW_VAR_1X1_RECV_COMBINE = 0x45,
-	HW_VAR_STOP_SEND_BEACON = 0x46,
-	HW_VAR_TSF_TIMER = 0x47,
-	HW_VAR_IO_CMD = 0x48,
-
-	HW_VAR_RF_RECOVERY = 0x49,
-	HW_VAR_H2C_FW_UPDATE_GTK = 0x4a,
-	HW_VAR_WF_MASK = 0x4b,
-	HW_VAR_WF_CRC = 0x4c,
-	HW_VAR_WF_IS_MAC_ADDR = 0x4d,
-	HW_VAR_H2C_FW_OFFLOAD = 0x4e,
-	HW_VAR_RESET_WFCRC = 0x4f,
-
-	HW_VAR_HANDLE_FW_C2H = 0x50,
-	HW_VAR_DL_FW_RSVD_PAGE = 0x51,
-	HW_VAR_AID = 0x52,
-	HW_VAR_HW_SEQ_ENABLE = 0x53,
-	HW_VAR_CORRECT_TSF = 0x54,
-	HW_VAR_BCN_VALID = 0x55,
-	HW_VAR_FWLPS_RF_ON = 0x56,
-	HW_VAR_DUAL_TSF_RST = 0x57,
-	HW_VAR_SWITCH_EPHY_WOWLAN = 0x58,
-	HW_VAR_INT_MIGRATION = 0x59,
-	HW_VAR_INT_AC = 0x5a,
-	HW_VAR_RF_TIMING = 0x5b,
-
-	HAL_DEF_WOWLAN = 0x5c,
-	HW_VAR_MRC = 0x5d,
-	HW_VAR_KEEP_ALIVE = 0x5e,
-	HW_VAR_NAV_UPPER = 0x5f,
-
-	HW_VAR_MGT_FILTER = 0x60,
-	HW_VAR_CTRL_FILTER = 0x61,
-	HW_VAR_DATA_FILTER = 0x62,
-};
-
-enum rt_media_status {
-	RT_MEDIA_DISCONNECT = 0,
-	RT_MEDIA_CONNECT = 1
-};
-
-enum rt_oem_id {
-	RT_CID_DEFAULT = 0,
-	RT_CID_8187_ALPHA0 = 1,
-	RT_CID_8187_SERCOMM_PS = 2,
-	RT_CID_8187_HW_LED = 3,
-	RT_CID_8187_NETGEAR = 4,
-	RT_CID_WHQL = 5,
-	RT_CID_819X_CAMEO = 6,
-	RT_CID_819X_RUNTOP = 7,
-	RT_CID_819X_SENAO = 8,
-	RT_CID_TOSHIBA = 9,
-	RT_CID_819X_NETCORE = 10,
-	RT_CID_NETTRONIX = 11,
-	RT_CID_DLINK = 12,
-	RT_CID_PRONET = 13,
-	RT_CID_COREGA = 14,
-	RT_CID_819X_ALPHA = 15,
-	RT_CID_819X_SITECOM = 16,
-	RT_CID_CCX = 17,
-	RT_CID_819X_LENOVO = 18,
-	RT_CID_819X_QMI = 19,
-	RT_CID_819X_EDIMAX_BELKIN = 20,
-	RT_CID_819X_SERCOMM_BELKIN = 21,
-	RT_CID_819X_CAMEO1 = 22,
-	RT_CID_819X_MSI = 23,
-	RT_CID_819X_ACER = 24,
-	RT_CID_819X_HP = 27,
-	RT_CID_819X_CLEVO = 28,
-	RT_CID_819X_ARCADYAN_BELKIN = 29,
-	RT_CID_819X_SAMSUNG = 30,
-	RT_CID_819X_WNC_COREGA = 31,
-	RT_CID_819X_FOXCOON = 32,
-	RT_CID_819X_DELL = 33,
-	RT_CID_819X_PRONETS = 34,
-	RT_CID_819X_EDIMAX_ASUS = 35,
-	RT_CID_NETGEAR = 36,
-	RT_CID_PLANEX = 37,
-	RT_CID_CC_C = 38,
-};
-
-enum hw_descs {
-	HW_DESC_OWN,
-	HW_DESC_RXOWN,
-	HW_DESC_TX_NEXTDESC_ADDR,
-	HW_DESC_TXBUFF_ADDR,
-	HW_DESC_RXBUFF_ADDR,
-	HW_DESC_RXPKT_LEN,
-	HW_DESC_RXERO,
-	HW_DESC_RX_PREPARE,
-};
-
-enum prime_sc {
-	PRIME_CHNL_OFFSET_DONT_CARE = 0,
-	PRIME_CHNL_OFFSET_LOWER = 1,
-	PRIME_CHNL_OFFSET_UPPER = 2,
-};
-
-enum rf_type {
-	RF_1T1R = 0,
-	RF_1T2R = 1,
-	RF_2T2R = 2,
-	RF_2T2R_GREEN = 3,
-	RF_2T3R = 4,
-	RF_2T4R = 5,
-	RF_3T3R = 6,
-	RF_3T4R = 7,
-	RF_4T4R = 8,
-};
-
-enum ht_channel_width {
-	HT_CHANNEL_WIDTH_20 = 0,
-	HT_CHANNEL_WIDTH_20_40 = 1,
-	HT_CHANNEL_WIDTH_80 = 2,
-	HT_CHANNEL_WIDTH_MAX,
-};
-
-/* Ref: 802.11i spec D10.0 7.3.2.25.1
- * Cipher Suites Encryption Algorithms
- */
-enum rt_enc_alg {
-	NO_ENCRYPTION = 0,
-	WEP40_ENCRYPTION = 1,
-	TKIP_ENCRYPTION = 2,
-	RSERVED_ENCRYPTION = 3,
-	AESCCMP_ENCRYPTION = 4,
-	WEP104_ENCRYPTION = 5,
-	AESCMAC_ENCRYPTION = 6,	/*IEEE802.11w */
-};
-
-enum rtl_hal_state {
-	_HAL_STATE_STOP = 0,
-	_HAL_STATE_START = 1,
-};
-
-enum rtl_desc_rate {
-	DESC_RATE1M = 0x00,
-	DESC_RATE2M = 0x01,
-	DESC_RATE5_5M = 0x02,
-	DESC_RATE11M = 0x03,
-
-	DESC_RATE6M = 0x04,
-	DESC_RATE9M = 0x05,
-	DESC_RATE12M = 0x06,
-	DESC_RATE18M = 0x07,
-	DESC_RATE24M = 0x08,
-	DESC_RATE36M = 0x09,
-	DESC_RATE48M = 0x0a,
-	DESC_RATE54M = 0x0b,
-
-	DESC_RATEMCS0 = 0x0c,
-	DESC_RATEMCS1 = 0x0d,
-	DESC_RATEMCS2 = 0x0e,
-	DESC_RATEMCS3 = 0x0f,
-	DESC_RATEMCS4 = 0x10,
-	DESC_RATEMCS5 = 0x11,
-	DESC_RATEMCS6 = 0x12,
-	DESC_RATEMCS7 = 0x13,
-	DESC_RATEMCS8 = 0x14,
-	DESC_RATEMCS9 = 0x15,
-	DESC_RATEMCS10 = 0x16,
-	DESC_RATEMCS11 = 0x17,
-	DESC_RATEMCS12 = 0x18,
-	DESC_RATEMCS13 = 0x19,
-	DESC_RATEMCS14 = 0x1a,
-	DESC_RATEMCS15 = 0x1b,
-	DESC_RATEMCS15_SG = 0x1c,
-	DESC_RATEMCS32 = 0x20,
-
-	DESC_RATEVHT1SS_MCS0 = 0x2c,
-	DESC_RATEVHT1SS_MCS1 = 0x2d,
-	DESC_RATEVHT1SS_MCS2 = 0x2e,
-	DESC_RATEVHT1SS_MCS3 = 0x2f,
-	DESC_RATEVHT1SS_MCS4 = 0x30,
-	DESC_RATEVHT1SS_MCS5 = 0x31,
-	DESC_RATEVHT1SS_MCS6 = 0x32,
-	DESC_RATEVHT1SS_MCS7 = 0x33,
-	DESC_RATEVHT1SS_MCS8 = 0x34,
-	DESC_RATEVHT1SS_MCS9 = 0x35,
-	DESC_RATEVHT2SS_MCS0 = 0x36,
-	DESC_RATEVHT2SS_MCS1 = 0x37,
-	DESC_RATEVHT2SS_MCS2 = 0x38,
-	DESC_RATEVHT2SS_MCS3 = 0x39,
-	DESC_RATEVHT2SS_MCS4 = 0x3a,
-	DESC_RATEVHT2SS_MCS5 = 0x3b,
-	DESC_RATEVHT2SS_MCS6 = 0x3c,
-	DESC_RATEVHT2SS_MCS7 = 0x3d,
-	DESC_RATEVHT2SS_MCS8 = 0x3e,
-	DESC_RATEVHT2SS_MCS9 = 0x3f,
-};
-
-enum rtl_var_map {
-	/*reg map */
-	SYS_ISO_CTRL = 0,
-	SYS_FUNC_EN,
-	SYS_CLK,
-	MAC_RCR_AM,
-	MAC_RCR_AB,
-	MAC_RCR_ACRC32,
-	MAC_RCR_ACF,
-	MAC_RCR_AAP,
-	MAC_HIMR,
-	MAC_HIMRE,
-	MAC_HSISR,
-
-	/*efuse map */
-	EFUSE_TEST,
-	EFUSE_CTRL,
-	EFUSE_CLK,
-	EFUSE_CLK_CTRL,
-	EFUSE_PWC_EV12V,
-	EFUSE_FEN_ELDR,
-	EFUSE_LOADER_CLK_EN,
-	EFUSE_ANA8M,
-	EFUSE_HWSET_MAX_SIZE,
-	EFUSE_MAX_SECTION_MAP,
-	EFUSE_REAL_CONTENT_SIZE,
-	EFUSE_OOB_PROTECT_BYTES_LEN,
-	EFUSE_ACCESS,
-
-	/*CAM map */
-	RWCAM,
-	WCAMI,
-	RCAMO,
-	CAMDBG,
-	SECR,
-	SEC_CAM_NONE,
-	SEC_CAM_WEP40,
-	SEC_CAM_TKIP,
-	SEC_CAM_AES,
-	SEC_CAM_WEP104,
-
-	/*IMR map */
-	RTL_IMR_BCNDMAINT6,	/*Beacon DMA Interrupt 6 */
-	RTL_IMR_BCNDMAINT5,	/*Beacon DMA Interrupt 5 */
-	RTL_IMR_BCNDMAINT4,	/*Beacon DMA Interrupt 4 */
-	RTL_IMR_BCNDMAINT3,	/*Beacon DMA Interrupt 3 */
-	RTL_IMR_BCNDMAINT2,	/*Beacon DMA Interrupt 2 */
-	RTL_IMR_BCNDMAINT1,	/*Beacon DMA Interrupt 1 */
-	RTL_IMR_BCNDOK8,	/*Beacon Queue DMA OK Interrupt 8 */
-	RTL_IMR_BCNDOK7,	/*Beacon Queue DMA OK Interrupt 7 */
-	RTL_IMR_BCNDOK6,	/*Beacon Queue DMA OK Interrupt 6 */
-	RTL_IMR_BCNDOK5,	/*Beacon Queue DMA OK Interrupt 5 */
-	RTL_IMR_BCNDOK4,	/*Beacon Queue DMA OK Interrupt 4 */
-	RTL_IMR_BCNDOK3,	/*Beacon Queue DMA OK Interrupt 3 */
-	RTL_IMR_BCNDOK2,	/*Beacon Queue DMA OK Interrupt 2 */
-	RTL_IMR_BCNDOK1,	/*Beacon Queue DMA OK Interrupt 1 */
-	RTL_IMR_TIMEOUT2,	/*Timeout interrupt 2 */
-	RTL_IMR_TIMEOUT1,	/*Timeout interrupt 1 */
-	RTL_IMR_TXFOVW,		/*Transmit FIFO Overflow */
-	RTL_IMR_PSTIMEOUT,	/*Power save time out interrupt */
-	RTL_IMR_BCNINT,		/*Beacon DMA Interrupt 0 */
-	RTL_IMR_RXFOVW,		/*Receive FIFO Overflow */
-	RTL_IMR_RDU,		/*Receive Descriptor Unavailable */
-	RTL_IMR_ATIMEND,	/*For 92C,ATIM Window End Interrupt */
-	RTL_IMR_H2CDOK,		/*H2C Queue DMA OK Interrupt */
-	RTL_IMR_BDOK,		/*Beacon Queue DMA OK Interrupt */
-	RTL_IMR_HIGHDOK,	/*High Queue DMA OK Interrupt */
-	RTL_IMR_COMDOK,		/*Command Queue DMA OK Interrupt*/
-	RTL_IMR_TBDOK,		/*Transmit Beacon OK interrupt */
-	RTL_IMR_MGNTDOK,	/*Management Queue DMA OK Interrupt */
-	RTL_IMR_TBDER,		/*For 92C,Transmit Beacon Error Interrupt */
-	RTL_IMR_BKDOK,		/*AC_BK DMA OK Interrupt */
-	RTL_IMR_BEDOK,		/*AC_BE DMA OK Interrupt */
-	RTL_IMR_VIDOK,		/*AC_VI DMA OK Interrupt */
-	RTL_IMR_VODOK,		/*AC_VO DMA Interrupt */
-	RTL_IMR_ROK,		/*Receive DMA OK Interrupt */
-	RTL_IMR_HSISR_IND,	/*HSISR Interrupt*/
-	RTL_IBSS_INT_MASKS,	/*(RTL_IMR_BCNINT | RTL_IMR_TBDOK |
-				 * RTL_IMR_TBDER)
-				 */
-	RTL_IMR_C2HCMD,		/*fw interrupt*/
-
-	/*CCK Rates, TxHT = 0 */
-	RTL_RC_CCK_RATE1M,
-	RTL_RC_CCK_RATE2M,
-	RTL_RC_CCK_RATE5_5M,
-	RTL_RC_CCK_RATE11M,
-
-	/*OFDM Rates, TxHT = 0 */
-	RTL_RC_OFDM_RATE6M,
-	RTL_RC_OFDM_RATE9M,
-	RTL_RC_OFDM_RATE12M,
-	RTL_RC_OFDM_RATE18M,
-	RTL_RC_OFDM_RATE24M,
-	RTL_RC_OFDM_RATE36M,
-	RTL_RC_OFDM_RATE48M,
-	RTL_RC_OFDM_RATE54M,
-
-	RTL_RC_HT_RATEMCS7,
-	RTL_RC_HT_RATEMCS15,
-
-	RTL_RC_VHT_RATE_1SS_MCS7,
-	RTL_RC_VHT_RATE_1SS_MCS8,
-	RTL_RC_VHT_RATE_1SS_MCS9,
-	RTL_RC_VHT_RATE_2SS_MCS7,
-	RTL_RC_VHT_RATE_2SS_MCS8,
-	RTL_RC_VHT_RATE_2SS_MCS9,
-
-	/*keep it last */
-	RTL_VAR_MAP_MAX,
-};
-
-/*Firmware PS mode for control LPS.*/
-enum _fw_ps_mode {
-	FW_PS_ACTIVE_MODE = 0,
-	FW_PS_MIN_MODE = 1,
-	FW_PS_MAX_MODE = 2,
-	FW_PS_DTIM_MODE = 3,
-	FW_PS_VOIP_MODE = 4,
-	FW_PS_UAPSD_WMM_MODE = 5,
-	FW_PS_UAPSD_MODE = 6,
-	FW_PS_IBSS_MODE = 7,
-	FW_PS_WWLAN_MODE = 8,
-	FW_PS_PM_RADIO_OFF = 9,
-	FW_PS_PM_CARD_DISABLE = 10,
-};
-
-enum rt_psmode {
-	EACTIVE,		/*Active/Continuous access. */
-	EMAXPS,			/*Max power save mode. */
-	EFASTPS,		/*Fast power save mode. */
-	EAUTOPS,		/*Auto power save mode. */
-};
-
-/*LED related.*/
-enum led_ctl_mode {
-	LED_CTL_POWER_ON = 1,
-	LED_CTL_LINK = 2,
-	LED_CTL_NO_LINK = 3,
-	LED_CTL_TX = 4,
-	LED_CTL_RX = 5,
-	LED_CTL_SITE_SURVEY = 6,
-	LED_CTL_POWER_OFF = 7,
-	LED_CTL_START_TO_LINK = 8,
-	LED_CTL_START_WPS = 9,
-	LED_CTL_STOP_WPS = 10,
-};
-
-enum rtl_led_pin {
-	LED_PIN_GPIO0,
-	LED_PIN_LED0,
-	LED_PIN_LED1,
-	LED_PIN_LED2
-};
-
-/* QoS related.*/
-/* acm implementation method.*/
-enum acm_method {
-	EACMWAY0_SWANDHW = 0,
-	EACMWAY1_HW = 1,
-	EACMWAY2_SW = 2,
-};
-
-enum macphy_mode {
-	SINGLEMAC_SINGLEPHY = 0,
-	DUALMAC_DUALPHY,
-	DUALMAC_SINGLEPHY,
-};
-
-enum band_type {
-	BAND_ON_2_4G = 0,
-	BAND_ON_5G,
-	BAND_ON_BOTH,
-	BANDMAX
-};
-
-/* aci/aifsn Field.
- * Ref: WMM spec 2.2.2: WME Parameter Element, p.12.
- */
-union aci_aifsn {
-	u8 char_data;
-
-	struct {
-		u8 aifsn:4;
-		u8 acm:1;
-		u8 aci:2;
-		u8 reserved:1;
-	} f;			/* Field */
-};
-
-/*mlme related.*/
-enum wireless_mode {
-	WIRELESS_MODE_UNKNOWN = 0x00,
-	WIRELESS_MODE_A = 0x01,
-	WIRELESS_MODE_B = 0x02,
-	WIRELESS_MODE_G = 0x04,
-	WIRELESS_MODE_AUTO = 0x08,
-	WIRELESS_MODE_N_24G = 0x10,
-	WIRELESS_MODE_N_5G = 0x20,
-	WIRELESS_MODE_AC_5G = 0x40,
-	WIRELESS_MODE_AC_24G  = 0x80,
-	WIRELESS_MODE_AC_ONLY = 0x100,
-	WIRELESS_MODE_MAX = 0x800
-};
-
-#define IS_WIRELESS_MODE_A(wirelessmode)	\
-	(wirelessmode == WIRELESS_MODE_A)
-#define IS_WIRELESS_MODE_B(wirelessmode)	\
-	(wirelessmode == WIRELESS_MODE_B)
-#define IS_WIRELESS_MODE_G(wirelessmode)	\
-	(wirelessmode == WIRELESS_MODE_G)
-#define IS_WIRELESS_MODE_N_24G(wirelessmode)	\
-	(wirelessmode == WIRELESS_MODE_N_24G)
-#define IS_WIRELESS_MODE_N_5G(wirelessmode)	\
-	(wirelessmode == WIRELESS_MODE_N_5G)
-
-enum ratr_table_mode {
-	RATR_INX_WIRELESS_NGB = 0,
-	RATR_INX_WIRELESS_NG = 1,
-	RATR_INX_WIRELESS_NB = 2,
-	RATR_INX_WIRELESS_N = 3,
-	RATR_INX_WIRELESS_GB = 4,
-	RATR_INX_WIRELESS_G = 5,
-	RATR_INX_WIRELESS_B = 6,
-	RATR_INX_WIRELESS_MC = 7,
-	RATR_INX_WIRELESS_A = 8,
-	RATR_INX_WIRELESS_AC_5N = 8,
-	RATR_INX_WIRELESS_AC_24N = 9,
-};
-
-enum ratr_table_mode_new {
-	RATEID_IDX_BGN_40M_2SS = 0,
-	RATEID_IDX_BGN_40M_1SS = 1,
-	RATEID_IDX_BGN_20M_2SS_BN = 2,
-	RATEID_IDX_BGN_20M_1SS_BN = 3,
-	RATEID_IDX_GN_N2SS = 4,
-	RATEID_IDX_GN_N1SS = 5,
-	RATEID_IDX_BG = 6,
-	RATEID_IDX_G = 7,
-	RATEID_IDX_B = 8,
-	RATEID_IDX_VHT_2SS = 9,
-	RATEID_IDX_VHT_1SS = 10,
-	RATEID_IDX_MIX1 = 11,
-	RATEID_IDX_MIX2 = 12,
-	RATEID_IDX_VHT_3SS = 13,
-	RATEID_IDX_BGN_3SS = 14,
-};
-
-enum rtl_link_state {
-	MAC80211_NOLINK = 0,
-	MAC80211_LINKING = 1,
-	MAC80211_LINKED = 2,
-	MAC80211_LINKED_SCANNING = 3,
-};
-
-enum act_category {
-	ACT_CAT_QOS = 1,
-	ACT_CAT_DLS = 2,
-	ACT_CAT_BA = 3,
-	ACT_CAT_HT = 7,
-	ACT_CAT_WMM = 17,
-};
-
-enum ba_action {
-	ACT_ADDBAREQ = 0,
-	ACT_ADDBARSP = 1,
-	ACT_DELBA = 2,
-};
-
-enum rt_polarity_ctl {
-	RT_POLARITY_LOW_ACT = 0,
-	RT_POLARITY_HIGH_ACT = 1,
-};
-
-/* After 8188E, we use V2 reason define. 88C/8723A use V1 reason. */
-enum fw_wow_reason_v2 {
-	FW_WOW_V2_PTK_UPDATE_EVENT = 0x01,
-	FW_WOW_V2_GTK_UPDATE_EVENT = 0x02,
-	FW_WOW_V2_DISASSOC_EVENT = 0x04,
-	FW_WOW_V2_DEAUTH_EVENT = 0x08,
-	FW_WOW_V2_FW_DISCONNECT_EVENT = 0x10,
-	FW_WOW_V2_MAGIC_PKT_EVENT = 0x21,
-	FW_WOW_V2_UNICAST_PKT_EVENT = 0x22,
-	FW_WOW_V2_PATTERN_PKT_EVENT = 0x23,
-	FW_WOW_V2_RTD3_SSID_MATCH_EVENT = 0x24,
-	FW_WOW_V2_REALWOW_V2_WAKEUPPKT = 0x30,
-	FW_WOW_V2_REALWOW_V2_ACKLOST = 0x31,
-	FW_WOW_V2_REASON_MAX = 0xff,
-};
-
-enum wolpattern_type {
-	UNICAST_PATTERN = 0,
-	MULTICAST_PATTERN = 1,
-	BROADCAST_PATTERN = 2,
-	DONT_CARE_DA = 3,
-	UNKNOWN_TYPE = 4,
-};
-
-enum package_type {
-	PACKAGE_DEFAULT,
-	PACKAGE_QFN68,
-	PACKAGE_TFBGA90,
-	PACKAGE_TFBGA80,
-	PACKAGE_TFBGA79
-};
-
-enum rtl_spec_ver {
-	RTL_SPEC_NEW_RATEID = BIT(0),	/* use ratr_table_mode_new */
-	RTL_SPEC_SUPPORT_VHT = BIT(1),	/* support VHT */
-	RTL_SPEC_NEW_FW_C2H = BIT(2),	/* new FW C2H (e.g. TX REPORT) */
-};
-
-struct octet_string {
-	u8 *octet;
-	u16 length;
-};
-
-struct rtl_hdr_3addr {
-	__le16 frame_ctl;
-	__le16 duration_id;
-	u8 addr1[ETH_ALEN];
-	u8 addr2[ETH_ALEN];
-	u8 addr3[ETH_ALEN];
-	__le16 seq_ctl;
-	u8 payload[0];
-} __packed;
-
-struct rtl_info_element {
-	u8 id;
-	u8 len;
-	u8 data[0];
-} __packed;
-
-struct rtl_probe_rsp {
-	struct rtl_hdr_3addr header;
-	u32 time_stamp[2];
-	__le16 beacon_interval;
-	__le16 capability;
-	/* SSID, supported rates, FH params, DS params,
-	 * CF params, IBSS params, TIM (if beacon), RSN
-	 */
-	struct rtl_info_element info_element[0];
-} __packed;
-
-struct rtl_beacon_keys {
-	/*u8 ssid[32];*/
-	/*u32 ssid_len;*/
-	u8 bcn_channel;
-	__le16 ht_cap_info;
-	u8 ht_info_infos_0_sco; /* bit0 & bit1 in infos[0] is 2nd ch offset */
-	bool valid;
-};
-
-/*LED related.*/
-/*ledpin Identify how to implement this SW led.*/
-struct rtl_led {
-	void *hw;
-	enum rtl_led_pin ledpin;
-	bool ledon;
-};
-
-struct rtl_led_ctl {
-	bool led_opendrain;
-	struct rtl_led sw_led0;
-	struct rtl_led sw_led1;
-};
-
-struct rtl_qos_parameters {
-	__le16 cw_min;
-	__le16 cw_max;
-	u8 aifs;
-	u8 flag;
-	__le16 tx_op;
-} __packed;
-
-struct rt_smooth_data {
-	u32 elements[100];	/*array to store values */
-	u32 index;		/*index to current array to store */
-	u32 total_num;		/*num of valid elements */
-	u32 total_val;		/*sum of valid elements */
-};
-
-struct false_alarm_statistics {
-	u32 cnt_parity_fail;
-	u32 cnt_rate_illegal;
-	u32 cnt_crc8_fail;
-	u32 cnt_mcs_fail;
-	u32 cnt_fast_fsync_fail;
-	u32 cnt_sb_search_fail;
-	u32 cnt_ofdm_fail;
-	u32 cnt_cck_fail;
-	u32 cnt_all;
-	u32 cnt_ofdm_cca;
-	u32 cnt_cck_cca;
-	u32 cnt_cca_all;
-	u32 cnt_bw_usc;
-	u32 cnt_bw_lsc;
-};
-
-struct init_gain {
-	u8 xaagccore1;
-	u8 xbagccore1;
-	u8 xcagccore1;
-	u8 xdagccore1;
-	u8 cca;
-
-};
-
-struct wireless_stats {
-	u64 txbytesunicast;
-	u64 txbytesmulticast;
-	u64 txbytesbroadcast;
-	u64 rxbytesunicast;
-
-	u64 txbytesunicast_inperiod;
-	u64 rxbytesunicast_inperiod;
-	u32 txbytesunicast_inperiod_tp;
-	u32 rxbytesunicast_inperiod_tp;
-	u64 txbytesunicast_last;
-	u64 rxbytesunicast_last;
-
-	long rx_snr_db[4];
-	/* Correct smoothed ss in Dbm, only used
-	 * in driver to report real power now.
-	 */
-	long recv_signal_power;
-	long signal_quality;
-	long last_sigstrength_inpercent;
-
-	u32 rssi_calculate_cnt;
-	u32 pwdb_all_cnt;
-
-	/* Transformed, in dbm. Beautified signal
-	 * strength for UI, not correct.
-	 */
-	long signal_strength;
-
-	u8 rx_rssi_percentage[4];
-	u8 rx_evm_dbm[4];
-	u8 rx_evm_percentage[2];
-
-	u16 rx_cfo_short[4];
-	u16 rx_cfo_tail[4];
-
-	struct rt_smooth_data ui_rssi;
-	struct rt_smooth_data ui_link_quality;
-};
-
-struct rate_adaptive {
-	u8 rate_adaptive_disabled;
-	u8 ratr_state;
-	u16 reserve;
-
-	u32 high_rssi_thresh_for_ra;
-	u32 high2low_rssi_thresh_for_ra;
-	u8 low2high_rssi_thresh_for_ra40m;
-	u32 low_rssi_thresh_for_ra40m;
-	u8 low2high_rssi_thresh_for_ra20m;
-	u32 low_rssi_thresh_for_ra20m;
-	u32 upper_rssi_threshold_ratr;
-	u32 middleupper_rssi_threshold_ratr;
-	u32 middle_rssi_threshold_ratr;
-	u32 middlelow_rssi_threshold_ratr;
-	u32 low_rssi_threshold_ratr;
-	u32 ultralow_rssi_threshold_ratr;
-	u32 low_rssi_threshold_ratr_40m;
-	u32 low_rssi_threshold_ratr_20m;
-	u8 ping_rssi_enable;
-	u32 ping_rssi_ratr;
-	u32 ping_rssi_thresh_for_ra;
-	u32 last_ratr;
-	u8 pre_ratr_state;
-	u8 ldpc_thres;
-	bool use_ldpc;
-	bool lower_rts_rate;
-	bool is_special_data;
-};
-
-struct regd_pair_mapping {
-	u16 reg_dmnenum;
-	u16 reg_5ghz_ctl;
-	u16 reg_2ghz_ctl;
-};
-
-struct dynamic_primary_cca {
-	u8 pricca_flag;
-	u8 intf_flag;
-	u8 intf_type;
-	u8 dup_rts_flag;
-	u8 monitor_flag;
-	u8 ch_offset;
-	u8 mf_state;
-};
-
-struct rtl_regulatory {
-	s8 alpha2[2];
-	u16 country_code;
-	u16 max_power_level;
-	u32 tp_scale;
-	u16 current_rd;
-	u16 current_rd_ext;
-	s16 power_limit;
-	struct regd_pair_mapping *regpair;
-};
-
-struct rtl_rfkill {
-	bool rfkill_state;	/*0 is off, 1 is on */
-};
-
-/*for P2P PS**/
-#define	P2P_MAX_NOA_NUM		2
-
-enum p2p_role {
-	P2P_ROLE_DISABLE = 0,
-	P2P_ROLE_DEVICE = 1,
-	P2P_ROLE_CLIENT = 2,
-	P2P_ROLE_GO = 3
-};
-
-enum p2p_ps_state {
-	P2P_PS_DISABLE = 0,
-	P2P_PS_ENABLE = 1,
-	P2P_PS_SCAN = 2,
-	P2P_PS_SCAN_DONE = 3,
-	P2P_PS_ALLSTASLEEP = 4, /* for P2P GO */
-};
-
-enum p2p_ps_mode {
-	P2P_PS_NONE = 0,
-	P2P_PS_CTWINDOW = 1,
-	P2P_PS_NOA	 = 2,
-	P2P_PS_MIX = 3, /* CTWindow and NoA */
-};
-
-struct rtl_p2p_ps_info {
-	enum p2p_ps_mode p2p_ps_mode; /* indicate p2p ps mode */
-	enum p2p_ps_state p2p_ps_state; /*  indicate p2p ps state */
-	u8 noa_index; /*  Identifies instance of Notice of Absence timing. */
-	/*  Client traffic window. A period of time in TU after TBTT. */
-	u8 ctwindow;
-	u8 opp_ps; /*  opportunistic power save. */
-	u8 noa_num; /*  number of NoA descriptor in P2P IE. */
-	/*  Count for owner, Type of client. */
-	u8 noa_count_type[P2P_MAX_NOA_NUM];
-	/*  Max duration for owner, preferred or min acceptable duration
-	 * for client.
-	 */
-	u32 noa_duration[P2P_MAX_NOA_NUM];
-	/*  Length of interval for owner, preferred or max acceptable intervali
-	 * of client.
-	 */
-	u32 noa_interval[P2P_MAX_NOA_NUM];
-	/*  schedule in terms of the lower 4 bytes of the TSF timer. */
-	u32 noa_start_time[P2P_MAX_NOA_NUM];
-};
-
-struct p2p_ps_offload_t {
-	u8 offload_en:1;
-	u8 role:1; /* 1: Owner, 0: Client */
-	u8 ctwindow_en:1;
-	u8 noa0_en:1;
-	u8 noa1_en:1;
-	u8 allstasleep:1;
-	u8 discovery:1;
-	u8 reserved:1;
-};
-
-#define IQK_MATRIX_REG_NUM	8
-#define IQK_MATRIX_SETTINGS_NUM	(1 + 24 + 21)
-
-struct iqk_matrix_regs {
-	bool iqk_done;
-	long value[1][IQK_MATRIX_REG_NUM];
-};
-
-struct phy_parameters {
-	u16 length;
-	u32 *pdata;
-};
-
-enum hw_param_tab_index {
-	PHY_REG_2T,
-	PHY_REG_1T,
-	PHY_REG_PG,
-	RADIOA_2T,
-	RADIOB_2T,
-	RADIOA_1T,
-	RADIOB_1T,
-	MAC_REG,
-	AGCTAB_2T,
-	AGCTAB_1T,
-	MAX_TAB
-};
-
-struct rtl_phy {
-	struct bb_reg_def phyreg_def[4];	/*Radio A/B/C/D */
-	struct init_gain initgain_backup;
-	enum io_type current_io_type;
-
-	u8 rf_mode;
-	u8 rf_type;
-	u8 current_chan_bw;
-	u8 max_ht_chan_bw;
-	u8 max_vht_chan_bw;
-	u8 set_bwmode_inprogress;
-	u8 sw_chnl_inprogress;
-	u8 sw_chnl_stage;
-	u8 sw_chnl_step;
-	u8 current_channel;
-	u8 h2c_box_num;
-	u8 set_io_inprogress;
-	u8 lck_inprogress;
-
-	/* record for power tracking */
-	s32 reg_e94;
-	s32 reg_e9c;
-	s32 reg_ea4;
-	s32 reg_eac;
-	s32 reg_eb4;
-	s32 reg_ebc;
-	s32 reg_ec4;
-	s32 reg_ecc;
-	u8 rfpienable;
-	u8 reserve_0;
-	u16 reserve_1;
-	u32 reg_c04, reg_c08, reg_874;
-	u32 adda_backup[16];
-	u32 iqk_mac_backup[IQK_MAC_REG_NUM];
-	u32 iqk_bb_backup[10];
-	bool iqk_initialized;
-
-	bool rfpath_rx_enable[MAX_RF_PATH];
-	u8 reg_837;
-	/* Dual mac */
-	bool need_iqk;
-	struct iqk_matrix_regs iqk_matrix[IQK_MATRIX_SETTINGS_NUM];
-
-	bool rfpi_enable;
-	bool iqk_in_progress;
-
-	u8 pwrgroup_cnt;
-	u8 cck_high_power;
-	/* this is for 88E & 8723A */
-	u32 mcs_txpwrlevel_origoffset[MAX_PG_GROUP][16];
-	/* MAX_PG_GROUP groups of pwr diff by rates */
-	u32 mcs_offset[MAX_PG_GROUP][16];
-	u32 tx_power_by_rate_offset[TX_PWR_BY_RATE_NUM_BAND]
-				   [TX_PWR_BY_RATE_NUM_RF]
-				   [TX_PWR_BY_RATE_NUM_RF]
-				   [TX_PWR_BY_RATE_NUM_RATE];
-	/* compatible with TX_PWR_BY_RATE_NUM_SECTION*/
-	u8 txpwr_by_rate_base_24g[TX_PWR_BY_RATE_NUM_RF]
-				 [TX_PWR_BY_RATE_NUM_RF]
-				 [MAX_BASE_NUM_IN_PHY_REG_PG_24G];
-	u8 txpwr_by_rate_base_5g[TX_PWR_BY_RATE_NUM_RF]
-				[TX_PWR_BY_RATE_NUM_RF]
-				[MAX_BASE_NUM_IN_PHY_REG_PG_5G];
-	u8 default_initialgain[4];
-
-	/* the current Tx power level */
-	u8 cur_cck_txpwridx;
-	u8 cur_ofdm24g_txpwridx;
-	u8 cur_bw20_txpwridx;
-	u8 cur_bw40_txpwridx;
-
-	s8 txpwr_limit_2_4g[MAX_REGULATION_NUM]
-			   [MAX_2_4G_BANDWIDTH_NUM]
-			   [MAX_RATE_SECTION_NUM]
-			   [CHANNEL_MAX_NUMBER_2G]
-			   [MAX_RF_PATH_NUM];
-	s8 txpwr_limit_5g[MAX_REGULATION_NUM]
-			 [MAX_5G_BANDWIDTH_NUM]
-			 [MAX_RATE_SECTION_NUM]
-			 [CHANNEL_MAX_NUMBER_5G]
-			 [MAX_RF_PATH_NUM];
-
-	u32 rfreg_chnlval[2];
-	bool apk_done;
-	u32 reg_rf3c[2];	/* pathA / pathB  */
-
-	u32 backup_rf_0x1a;/*92ee*/
-	/* bfsync */
-	u8 framesync;
-	u32 framesync_c34;
-
-	u8 num_total_rfpath;
-	struct phy_parameters hwparam_tables[MAX_TAB];
-	u16 rf_pathmap;
-
-	u8 hw_rof_enable; /*Enable GPIO[9] as WL RF HW PDn source*/
-	enum rt_polarity_ctl polarity_ctl;
-};
-
-#define MAX_TID_COUNT				9
-#define RTL_AGG_STOP				0
-#define RTL_AGG_PROGRESS			1
-#define RTL_AGG_START				2
-#define RTL_AGG_OPERATIONAL			3
-#define RTL_AGG_OFF				0
-#define RTL_AGG_ON				1
-#define RTL_RX_AGG_START			1
-#define RTL_RX_AGG_STOP				0
-#define RTL_AGG_EMPTYING_HW_QUEUE_ADDBA		2
-#define RTL_AGG_EMPTYING_HW_QUEUE_DELBA		3
-
-struct rtl_ht_agg {
-	u16 txq_id;
-	u16 wait_for_ba;
-	u16 start_idx;
-	u64 bitmap;
-	u32 rate_n_flags;
-	u8 agg_state;
-	u8 rx_agg_state;
-};
-
-struct rssi_sta {
-	/* for old dm */
-	long undec_sm_pwdb;
-	long undec_sm_cck;
-
-	/* for new phydm_mod */
-	s32 undecorated_smoothed_pwdb;
-	s32 undecorated_smoothed_cck;
-	s32 undecorated_smoothed_ofdm;
-	u8 ofdm_pkt;
-	u8 cck_pkt;
-	u16 cck_sum_power;
-	u8 is_send_rssi;
-	u64 packet_map;
-	u8 valid_bit;
-};
-
-struct rtl_tid_data {
-	u16 seq_number;
-	struct rtl_ht_agg agg;
-};
-
-struct rtl_sta_info {
-	struct list_head list;
-	struct rtl_tid_data tids[MAX_TID_COUNT];
-	/* just used for ap adhoc or mesh*/
-	struct rssi_sta rssi_stat;
-	u8 rssi_level;
-	u16 wireless_mode;
-	u8 ratr_index;
-	u8 mimo_ps;
-	u8 mac_addr[ETH_ALEN];
-} __packed;
-
-struct rtl_priv;
-struct rtl_io {
-	struct device *dev;
-	struct mutex bb_mutex;
-
-	/*PCI MEM map */
-	unsigned long pci_mem_end;	/*shared mem end        */
-	unsigned long pci_mem_start;	/*shared mem start */
-
-	/*PCI IO map */
-	unsigned long pci_base_addr;	/*device I/O address */
-
-	void (*write8_async)(struct rtl_priv *rtlpriv, u32 addr, u8 val);
-	void (*write16_async)(struct rtl_priv *rtlpriv, u32 addr, u16 val);
-	void (*write32_async)(struct rtl_priv *rtlpriv, u32 addr, u32 val);
-	void (*writeN_sync)(struct rtl_priv *rtlpriv, u32 addr, void *buf,
-			    u16 len);
-
-	u8 (*read8_sync)(struct rtl_priv *rtlpriv, u32 addr);
-	u16 (*read16_sync)(struct rtl_priv *rtlpriv, u32 addr);
-	u32 (*read32_sync)(struct rtl_priv *rtlpriv, u32 addr);
-
-};
-
-struct rtl_mac {
-	u8 mac_addr[ETH_ALEN];
-	u8 mac80211_registered;
-	u8 beacon_enabled;
-
-	u32 tx_ss_num;
-	u32 rx_ss_num;
-
-	struct ieee80211_supported_band bands[NUM_NL80211_BANDS];
-	struct ieee80211_hw *hw;
-	struct ieee80211_vif *vif;
-	enum nl80211_iftype opmode;
-
-	/*Probe Beacon management */
-	struct rtl_tid_data tids[MAX_TID_COUNT];
-	enum rtl_link_state link_state;
-	struct rtl_beacon_keys cur_beacon_keys;
-	u8 new_beacon_cnt;
-
-	int n_channels;
-	int n_bitrates;
-
-	bool offchan_delay;
-	u8 p2p;	/*using p2p role*/
-	bool p2p_in_use;
-
-	/*filters */
-	u32 rx_conf;
-	u16 rx_mgt_filter;
-	u16 rx_ctrl_filter;
-	u16 rx_data_filter;
-
-	bool act_scanning;
-	u8 cnt_after_linked;
-	bool skip_scan;
-
-	/* early mode */
-	/* skb wait queue */
-	struct sk_buff_head skb_waitq[MAX_TID_COUNT];
-
-	u8 ht_stbc_cap;
-	u8 ht_cur_stbc;
-
-	/*vht support*/
-	u8 vht_enable;
-	u8 bw_80;
-	u8 vht_cur_ldpc;
-	u8 vht_cur_stbc;
-	u8 vht_stbc_cap;
-	u8 vht_ldpc_cap;
-
-	/*RDG*/
-	bool rdg_en;
-
-	/*AP*/
-	u8 bssid[ETH_ALEN] __aligned(2);
-	u32 vendor;
-	u8 mcs[16];	/* 16 bytes mcs for HT rates. */
-	u32 basic_rates; /* b/g rates */
-	u8 ht_enable;
-	u8 sgi_40;
-	u8 sgi_20;
-	u8 bw_40;
-	u16 mode;		/* wireless mode */
-	u8 slot_time;
-	u8 short_preamble;
-	u8 use_cts_protect;
-	u8 cur_40_prime_sc;
-	u8 cur_40_prime_sc_bk;
-	u8 cur_80_prime_sc;
-	u64 tsf;
-	u8 retry_short;
-	u8 retry_long;
-	u16 assoc_id;
-	bool hiddenssid;
-
-	/*IBSS*/
-	int beacon_interval;
-
-	/*AMPDU*/
-	u8 min_space_cfg;	/*For Min spacing configurations */
-	u8 max_mss_density;
-	u8 current_ampdu_factor;
-	u8 current_ampdu_density;
-
-	/*QOS & EDCA */
-	struct ieee80211_tx_queue_params edca_param[RTL_MAC80211_NUM_QUEUE];
-	struct rtl_qos_parameters ac[AC_MAX];
-
-	/* counters */
-	u64 last_txok_cnt;
-	u64 last_rxok_cnt;
-	u32 last_bt_edca_ul;
-	u32 last_bt_edca_dl;
-};
-
-struct btdm_8723 {
-	bool all_off;
-	bool agc_table_en;
-	bool adc_back_off_on;
-	bool b2_ant_hid_en;
-	bool low_penalty_rate_adaptive;
-	bool rf_rx_lpf_shrink;
-	bool reject_aggre_pkt;
-	bool tra_tdma_on;
-	u8 tra_tdma_nav;
-	u8 tra_tdma_ant;
-	bool tdma_on;
-	u8 tdma_ant;
-	u8 tdma_nav;
-	u8 tdma_dac_swing;
-	u8 fw_dac_swing_lvl;
-	bool ps_tdma_on;
-	u8 ps_tdma_byte[5];
-	bool pta_on;
-	u32 val_0x6c0;
-	u32 val_0x6c8;
-	u32 val_0x6cc;
-	bool sw_dac_swing_on;
-	u32 sw_dac_swing_lvl;
-	u32 wlan_act_hi;
-	u32 wlan_act_lo;
-	u32 bt_retry_index;
-	bool dec_bt_pwr;
-	bool ignore_wlan_act;
-};
-
-struct bt_coexist_8723 {
-	u32 high_priority_tx;
-	u32 high_priority_rx;
-	u32 low_priority_tx;
-	u32 low_priority_rx;
-	u8 c2h_bt_info;
-	bool c2h_bt_info_req_sent;
-	bool c2h_bt_inquiry_page;
-	u32 bt_inq_page_start_time;
-	u8 bt_retry_cnt;
-	u8 c2h_bt_info_original;
-	u8 bt_inquiry_page_cnt;
-	struct btdm_8723 btdm;
-};
-
-struct rtl_hal {
-	struct ieee80211_hw *hw;
-	bool driver_is_goingto_unload;
-	bool up_first_time;
-	bool first_init;
-	bool being_init_adapter;
-	bool bbrf_ready;
-	bool mac_func_enable;
-	bool pre_edcca_enable;
-	struct bt_coexist_8723 hal_coex_8723;
-
-	enum intf_type interface;
-	u16 hw_type;		/*92c or 92d or 92s and so on */
-	u8 ic_class;
-	u8 oem_id;
-	u32 version;		/*version of chip */
-	u8 state;		/*stop 0, start 1 */
-	u8 board_type;
-	u8 package_type;
-	u8 external_pa;
-
-	u8 pa_mode;
-	u8 pa_type_2g;
-	u8 pa_type_5g;
-	u8 lna_type_2g;
-	u8 lna_type_5g;
-	u8 external_pa_2g;
-	u8 external_lna_2g;
-	u8 external_pa_5g;
-	u8 external_lna_5g;
-	u8 type_glna;
-	u8 type_gpa;
-	u8 type_alna;
-	u8 type_apa;
-	u8 rfe_type;
-
-	/*firmware */
-	u32 fwsize;
-	u8 *pfirmware;
-	u16 fw_version;
-	u16 fw_subversion;
-	bool h2c_setinprogress;
-	u8 last_hmeboxnum;
-	bool fw_ready;
-	/*Reserve page start offset except beacon in TxQ. */
-	u8 fw_rsvdpage_startoffset;
-	u8 h2c_txcmd_seq;
-	u8 current_ra_rate;
-
-	/* FW Cmd IO related */
-	u16 fwcmd_iomap;
-	u32 fwcmd_ioparam;
-	bool set_fwcmd_inprogress;
-	u8 current_fwcmd_io;
-
-	struct p2p_ps_offload_t p2p_ps_offload;
-	bool fw_clk_change_in_progress;
-	bool allow_sw_to_change_hwclc;
-	u8 fw_ps_state;
-	/**/
-	bool driver_going2unload;
-
-	/*AMPDU init min space*/
-	u8 minspace_cfg;	/*For Min spacing configurations */
-
-	/* Dual mac */
-	enum macphy_mode macphymode;
-	enum band_type current_bandtype;	/* 0:2.4G, 1:5G */
-	enum band_type current_bandtypebackup;
-	enum band_type bandset;
-	/* dual MAC 0--Mac0 1--Mac1 */
-	u32 interfaceindex;
-	/* just for DualMac S3S4 */
-	u8 macphyctl_reg;
-	bool earlymode_enable;
-	u8 max_earlymode_num;
-	/* Dual mac*/
-	bool during_mac0init_radiob;
-	bool during_mac1init_radioa;
-	bool reloadtxpowerindex;
-	/* True if IMR or IQK  have done
-	 * for 2.4G in scan progress
-	 */
-	bool load_imrandiqk_setting_for2g;
-
-	bool disable_amsdu_8k;
-	bool master_of_dmsp;
-	bool slave_of_dmsp;
-
-	u16 rx_tag;/*for 92ee*/
-	u8 rts_en;
-
-	/*for wowlan*/
-	bool wow_enable;
-	bool enter_pnp_sleep;
-	bool wake_from_pnp_sleep;
-	bool wow_enabled;
-	time64_t last_suspend_sec;
-	u32 wowlan_fwsize;
-	u8 *wowlan_firmware;
-
-	u8 hw_rof_enable; /*Enable GPIO[9] as WL RF HW PDn source*/
-
-	bool real_wow_v2_enable;
-	bool re_init_llt_table;
-};
-
-struct rtl_security {
-	/*default 0 */
-	bool use_sw_sec;
-
-	bool being_setkey;
-	bool use_defaultkey;
-	/*Encryption Algorithm for Unicast Packet */
-	enum rt_enc_alg pairwise_enc_algorithm;
-	/*Encryption Algorithm for Brocast/Multicast */
-	enum rt_enc_alg group_enc_algorithm;
-	/*Cam Entry Bitmap */
-	u32 hwsec_cam_bitmap;
-	u8 hwsec_cam_sta_addr[TOTAL_CAM_ENTRY][ETH_ALEN];
-	/* local Key buffer, indx 0 is for
-	 * pairwise key 1-4 is for agoup key.
-	 */
-	u8 key_buf[KEY_BUF_SIZE][MAX_KEY_LEN];
-	u8 key_len[KEY_BUF_SIZE];
-
-	/* The pointer of Pairwise Key,
-	 * it always points to KeyBuf[4]
-	 */
-	u8 *pairwise_key;
-};
-
-#define ASSOCIATE_ENTRY_NUM	33
-
-struct fast_ant_training {
-	u8	bssid[6];
-	u8	antsel_rx_keep_0;
-	u8	antsel_rx_keep_1;
-	u8	antsel_rx_keep_2;
-	u32	ant_sum[7];
-	u32	ant_cnt[7];
-	u32	ant_ave[7];
-	u8	fat_state;
-	u32	train_idx;
-	u8	antsel_a[ASSOCIATE_ENTRY_NUM];
-	u8	antsel_b[ASSOCIATE_ENTRY_NUM];
-	u8	antsel_c[ASSOCIATE_ENTRY_NUM];
-	u32	main_ant_sum[ASSOCIATE_ENTRY_NUM];
-	u32	aux_ant_sum[ASSOCIATE_ENTRY_NUM];
-	u32	main_ant_cnt[ASSOCIATE_ENTRY_NUM];
-	u32	aux_ant_cnt[ASSOCIATE_ENTRY_NUM];
-	u8	rx_idle_ant;
-	bool	becomelinked;
-};
-
-struct dm_phy_dbg_info {
-	s8 rx_snrdb[4];
-	u64 num_qry_phy_status;
-	u64 num_qry_phy_status_cck;
-	u64 num_qry_phy_status_ofdm;
-	u16 num_qry_beacon_pkt;
-	u16 num_non_be_pkt;
-	s32 rx_evm[4];
-};
-
-struct rtl_dm {
-	/*PHY status for Dynamic Management */
-	long entry_min_undec_sm_pwdb;
-	long undec_sm_cck;
-	long undec_sm_pwdb;	/*out dm */
-	long entry_max_undec_sm_pwdb;
-	s32 ofdm_pkt_cnt;
-	bool dm_initialgain_enable;
-	bool dynamic_txpower_enable;
-	bool current_turbo_edca;
-	bool is_any_nonbepkts;	/*out dm */
-	bool is_cur_rdlstate;
-	bool txpower_trackinginit;
-	bool disable_framebursting;
-	bool cck_inch14;
-	bool txpower_tracking;
-	bool useramask;
-	bool rfpath_rxenable[4];
-	bool inform_fw_driverctrldm;
-	bool current_mrc_switch;
-	u8 txpowercount;
-	u8 powerindex_backup[6];
-
-	u8 thermalvalue_rxgain;
-	u8 thermalvalue_iqk;
-	u8 thermalvalue_lck;
-	u8 thermalvalue;
-	u8 last_dtp_lvl;
-	u8 thermalvalue_avg[AVG_THERMAL_NUM];
-	u8 thermalvalue_avg_index;
-	u8 tm_trigger;
-	bool done_txpower;
-	u8 dynamic_txhighpower_lvl;	/*Tx high power level */
-	u8 dm_flag;		/*Indicate each dynamic mechanism's status. */
-	u8 dm_flag_tmp;
-	u8 dm_type;
-	u8 dm_rssi_sel;
-	u8 txpower_track_control;
-	bool interrupt_migration;
-	bool disable_tx_int;
-	s8 ofdm_index[MAX_RF_PATH];
-	u8 default_ofdm_index;
-	u8 default_cck_index;
-	s8 cck_index;
-	s8 delta_power_index[MAX_RF_PATH];
-	s8 delta_power_index_last[MAX_RF_PATH];
-	s8 power_index_offset[MAX_RF_PATH];
-	s8 absolute_ofdm_swing_idx[MAX_RF_PATH];
-	s8 remnant_ofdm_swing_idx[MAX_RF_PATH];
-	s8 remnant_cck_idx;
-	bool modify_txagc_flag_path_a;
-	bool modify_txagc_flag_path_b;
-
-	bool one_entry_only;
-	struct dm_phy_dbg_info dbginfo;
-
-	/* Dynamic ATC switch */
-	bool atc_status;
-	bool large_cfo_hit;
-	bool is_freeze;
-	int cfo_tail[2];
-	int cfo_ave_pre;
-	int crystal_cap;
-	u8 cfo_threshold;
-	u32 packet_count;
-	u32 packet_count_pre;
-	u8 tx_rate;
-
-	/*88e tx power tracking*/
-	u8	swing_idx_ofdm[MAX_RF_PATH];
-	u8	swing_idx_ofdm_cur;
-	u8	swing_idx_ofdm_base[MAX_RF_PATH];
-	bool	swing_flag_ofdm;
-	u8	swing_idx_cck;
-	u8	swing_idx_cck_cur;
-	u8	swing_idx_cck_base;
-	bool	swing_flag_cck;
-
-	s8	swing_diff_2g;
-	s8	swing_diff_5g;
-
-	/* DMSP */
-	bool supp_phymode_switch;
-
-	/* DulMac */
-	struct fast_ant_training fat_table;
-
-	u8	resp_tx_path;
-	u8	path_sel;
-	u32	patha_sum;
-	u32	pathb_sum;
-	u32	patha_cnt;
-	u32	pathb_cnt;
-
-	u8 pre_channel;
-	u8 *p_channel;
-	u8 linked_interval;
-
-	u64 last_tx_ok_cnt;
-	u64 last_rx_ok_cnt;
-};
-
-#define	EFUSE_MAX_LOGICAL_SIZE			512
-
-struct rtl_efuse {
-	bool autoload_ok;
-	bool bootfromefuse;
-	u16 max_physical_size;
-
-	u8 efuse_map[2][EFUSE_MAX_LOGICAL_SIZE];
-	u16 efuse_usedbytes;
-	u8 efuse_usedpercentage;
-
-	u8 autoload_failflag;
-	u8 autoload_status;
-
-	short epromtype;
-	u16 eeprom_vid;
-	u16 eeprom_did;
-	u16 eeprom_svid;
-	u16 eeprom_smid;
-	u8 eeprom_oemid;
-	u16 eeprom_channelplan;
-	u8 eeprom_version;
-	u8 board_type;
-	u8 external_pa;
-
-	u8 dev_addr[6];
-	u8 wowlan_enable;
-	u8 antenna_div_cfg;
-	u8 antenna_div_type;
-
-	bool txpwr_fromeprom;
-	u8 eeprom_crystalcap;
-	u8 eeprom_tssi[2];
-	u8 eeprom_tssi_5g[3][2]; /* for 5GL/5GM/5GH band. */
-	u8 eeprom_pwrlimit_ht20[CHANNEL_GROUP_MAX];
-	u8 eeprom_pwrlimit_ht40[CHANNEL_GROUP_MAX];
-	u8 eeprom_chnlarea_txpwr_cck[MAX_RF_PATH][CHANNEL_GROUP_MAX_2G];
-	u8 eeprom_chnlarea_txpwr_ht40_1s[MAX_RF_PATH][CHANNEL_GROUP_MAX];
-	u8 eprom_chnl_txpwr_ht40_2sdf[MAX_RF_PATH][CHANNEL_GROUP_MAX];
-
-	u8 internal_pa_5g[2];	/* pathA / pathB */
-	u8 eeprom_c9;
-	u8 eeprom_cc;
-
-	/*For power group */
-	u8 eeprom_pwrgroup[2][3];
-	u8 pwrgroup_ht20[2][CHANNEL_MAX_NUMBER];
-	u8 pwrgroup_ht40[2][CHANNEL_MAX_NUMBER];
-
-	u8 txpwrlevel_cck[MAX_RF_PATH][CHANNEL_MAX_NUMBER_2G];
-	/*For HT 40MHZ pwr */
-	u8 txpwrlevel_ht40_1s[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
-	/*For HT 40MHZ pwr */
-	u8 txpwrlevel_ht40_2s[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
-
-	/*--------------------------------------------------------*
-	 * 8192CE\8192SE\8192DE\8723AE use the following 4 arrays,
-	 * other ICs (8188EE\8723BE\8192EE\8812AE...)
-	 * define new arrays in Windows code.
-	 * BUT, in linux code, we use the same array for all ICs.
-	 *
-	 * The Correspondance relation between two arrays is:
-	 * txpwr_cckdiff[][] == CCK_24G_Diff[][]
-	 * txpwr_ht20diff[][] == BW20_24G_Diff[][]
-	 * txpwr_ht40diff[][] == BW40_24G_Diff[][]
-	 * txpwr_legacyhtdiff[][] == OFDM_24G_Diff[][]
-	 *
-	 * Sizes of these arrays are decided by the larger ones.
-	 */
-	s8 txpwr_cckdiff[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
-	s8 txpwr_ht20diff[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
-	s8 txpwr_ht40diff[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
-	s8 txpwr_legacyhtdiff[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
-
-	u8 txpwr_5g_bw40base[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
-	u8 txpwr_5g_bw80base[MAX_RF_PATH][CHANNEL_MAX_NUMBER_5G_80M];
-	s8 txpwr_5g_ofdmdiff[MAX_RF_PATH][MAX_TX_COUNT];
-	s8 txpwr_5g_bw20diff[MAX_RF_PATH][MAX_TX_COUNT];
-	s8 txpwr_5g_bw40diff[MAX_RF_PATH][MAX_TX_COUNT];
-	s8 txpwr_5g_bw80diff[MAX_RF_PATH][MAX_TX_COUNT];
-
-	u8 txpwr_safetyflag;			/* Band edge enable flag */
-	u16 eeprom_txpowerdiff;
-	u8 legacy_httxpowerdiff;	/* Legacy to HT rate power diff */
-	u8 antenna_txpwdiff[3];
-
-	u8 eeprom_regulatory;
-	u8 eeprom_thermalmeter;
-	u8 thermalmeter[2]; /*ThermalMeter, index 0 for RFIC0, 1 for RFIC1 */
-	u16 tssi_13dbm;
-	u8 crystalcap;		/* CrystalCap. */
-	u8 delta_iqk;
-	u8 delta_lck;
-
-	u8 legacy_ht_txpowerdiff;	/*Legacy to HT rate power diff */
-	bool apk_thermalmeterignore;
-
-	bool b1x1_recvcombine;
-	bool b1ss_support;
-
-	/*channel plan */
-	u8 channel_plan;
-};
-
-struct rtl_tx_report {
-	atomic_t sn;
-	u16 last_sent_sn;
-	unsigned long last_sent_time;
-	u16 last_recv_sn;
-};
-
-struct rtl_ps_ctl {
-	bool pwrdomain_protect;
-	bool in_powersavemode;
-	bool rfchange_inprogress;
-	bool swrf_processing;
-	bool hwradiooff;
-	/* just for PCIE ASPM
-	 * If it supports ASPM, Offset[560h] = 0x40,
-	 * otherwise Offset[560h] = 0x00.
-	 */
-	bool support_aspm;
-	bool support_backdoor;
-
-	/*for LPS */
-	enum rt_psmode dot11_psmode;	/*Power save mode configured. */
-	bool swctrl_lps;
-	bool leisure_ps;
-	bool fwctrl_lps;
-	u8 fwctrl_psmode;
-	/*For Fw control LPS mode */
-	u8 reg_fwctrl_lps;
-	/*Record Fw PS mode status. */
-	bool fw_current_inpsmode;
-	u8 reg_max_lps_awakeintvl;
-	bool report_linked;
-	bool low_power_enable;/*for 32k*/
-
-	/*for IPS */
-	bool inactiveps;
-
-	u32 rfoff_reason;
-
-	/*RF OFF Level */
-	u32 cur_ps_level;
-	u32 reg_rfps_level;
-
-	/*just for PCIE ASPM */
-	u8 const_amdpci_aspm;
-	bool pwrdown_mode;
-
-	enum rf_pwrstate inactive_pwrstate;
-	enum rf_pwrstate rfpwr_state;	/*cur power state */
-
-	/* for SW LPS*/
-	bool sw_ps_enabled;
-	bool state;
-	bool state_inap;
-	bool multi_buffered;
-	u16 nullfunc_seq;
-	unsigned int dtim_counter;
-	unsigned int sleep_ms;
-	unsigned long last_sleep_jiffies;
-	unsigned long last_awake_jiffies;
-	unsigned long last_delaylps_stamp_jiffies;
-	unsigned long last_dtim;
-	unsigned long last_beacon;
-	unsigned long last_action;
-	unsigned long last_slept;
-
-	/*For P2P PS */
-	struct rtl_p2p_ps_info p2p_ps_info;
-	u8 pwr_mode;
-	u8 smart_ps;
-
-	/* wake up on line */
-	u8 wo_wlan_mode;
-	u8 arp_offload_enable;
-	u8 gtk_offload_enable;
-	/* Used for WOL, indicates the reason for waking event.*/
-	u32 wakeup_reason;
-	/* Record the last waking time for comparison with setting key. */
-	u64 last_wakeup_time;
-};
-
-struct rtl_stats {
-	u8 psaddr[ETH_ALEN];
-	u32 mac_time[2];
-	s8 rssi;
-	u8 signal;
-	u8 noise;
-	u8 rate;		/* hw desc rate */
-	u8 received_channel;
-	u8 control;
-	u8 mask;
-	u8 freq;
-	u16 len;
-	u64 tsf;
-	u32 beacon_time;
-	u8 nic_type;
-	u16 length;
-	u8 signalquality;	/*in 0-100 index. */
-	/*
-	 * Real power in dBm for this packet,
-	 * no beautification and aggregation.
-	 */
-	s32 recvsignalpower;
-	s8 rxpower;		/*in dBm Translate from PWdB */
-	u8 signalstrength;	/*in 0-100 index. */
-	u16 hwerror:1;
-	u16 crc:1;
-	u16 icv:1;
-	u16 shortpreamble:1;
-	u16 antenna:1;
-	u16 decrypted:1;
-	u16 wakeup:1;
-	u32 timestamp_low;
-	u32 timestamp_high;
-	bool shift;
-
-	u8 rx_drvinfo_size;
-	u8 rx_bufshift;
-	bool isampdu;
-	bool isfirst_ampdu;
-	bool rx_is40mhzpacket;
-	u8 rx_packet_bw;
-	u32 rx_pwdb_all;
-	u8 rx_mimo_signalstrength[4];	/*in 0~100 index */
-	s8 rx_mimo_signalquality[4];
-	u8 rx_mimo_evm_dbm[4];
-	u16 cfo_short[4];		/* per-path's Cfo_short */
-	u16 cfo_tail[4];
-
-	s8 rx_mimo_sig_qual[4];
-	u8 rx_pwr[4]; /* per-path's pwdb */
-	u8 rx_snr[4]; /* per-path's SNR */
-	u8 bandwidth;
-	u8 bt_coex_pwr_adjust;
-	bool packet_matchbssid;
-	bool is_cck;
-	bool is_ht;
-	bool packet_toself;
-	bool packet_beacon;	/*for rssi */
-	s8 cck_adc_pwdb[4];	/*for rx path selection */
-
-	bool is_vht;
-	bool is_short_gi;
-	u8 vht_nss;
-
-	u8 packet_report_type;
-
-	u32 macid;
-	u8 wake_match;
-	u32 bt_rx_rssi_percentage;
-	u32 macid_valid_entry[2];
-};
-
-struct rt_link_detect {
-	/* count for roaming */
-	u32 bcn_rx_inperiod;
-	u32 roam_times;
-
-	u32 num_tx_in4period[4];
-	u32 num_rx_in4period[4];
-
-	u32 num_tx_inperiod;
-	u32 num_rx_inperiod;
-
-	bool busytraffic;
-	bool tx_busy_traffic;
-	bool rx_busy_traffic;
-	bool higher_busytraffic;
-	bool higher_busyrxtraffic;
-
-	u32 tidtx_in4period[MAX_TID_COUNT][4];
-	u32 tidtx_inperiod[MAX_TID_COUNT];
-	bool higher_busytxtraffic[MAX_TID_COUNT];
-};
-
-struct rtl_tcb_desc {
-	u8 packet_bw:2;
-	u8 multicast:1;
-	u8 broadcast:1;
-
-	u8 rts_stbc:1;
-	u8 rts_enable:1;
-	u8 cts_enable:1;
-	u8 rts_use_shortpreamble:1;
-	u8 rts_use_shortgi:1;
-	u8 rts_sc:1;
-	u8 rts_bw:1;
-	u8 rts_rate;
-
-	u8 use_shortgi:1;
-	u8 use_shortpreamble:1;
-	u8 use_driver_rate:1;
-	u8 disable_ratefallback:1;
-
-	u8 use_spe_rpt:1;
-
-	u8 ratr_index;
-	u8 mac_id;
-	u8 hw_rate;
-
-	u8 last_inipkt:1;
-	u8 cmd_or_init:1;
-	u8 queue_index;
-
-	/* early mode */
-	u8 empkt_num;
-	/* The max value by HW */
-	u32 empkt_len[10];
-	bool tx_enable_sw_calc_duration;
-};
-
-struct rtl_wow_pattern {
-	u8 type;
-	u16 crc;
-	u32 mask[4];
-};
-
-struct rtl_hal_ops {
-	int (*init_sw_vars)(struct ieee80211_hw *hw);
-	void (*deinit_sw_vars)(struct ieee80211_hw *hw);
-	void (*read_chip_version)(struct ieee80211_hw *hw);
-	void (*read_eeprom_info)(struct ieee80211_hw *hw);
-	void (*interrupt_recognized)(struct ieee80211_hw *hw,
-				     u32 *p_inta, u32 *p_intb,
-				     u32 *p_intc, u32 *p_intd);
-	int (*hw_init)(struct ieee80211_hw *hw);
-	void (*hw_disable)(struct ieee80211_hw *hw);
-	void (*hw_suspend)(struct ieee80211_hw *hw);
-	void (*hw_resume)(struct ieee80211_hw *hw);
-	void (*enable_interrupt)(struct ieee80211_hw *hw);
-	void (*disable_interrupt)(struct ieee80211_hw *hw);
-	int (*set_network_type)(struct ieee80211_hw *hw,
-				enum nl80211_iftype type);
-	void (*set_chk_bssid)(struct ieee80211_hw *hw,
-			      bool check_bssid);
-	void (*set_bw_mode)(struct ieee80211_hw *hw,
-			    enum nl80211_channel_type ch_type);
-	 u8 (*switch_channel)(struct ieee80211_hw *hw);
-	void (*set_qos)(struct ieee80211_hw *hw, int aci);
-	void (*set_bcn_reg)(struct ieee80211_hw *hw);
-	void (*set_bcn_intv)(struct ieee80211_hw *hw);
-	void (*update_interrupt_mask)(struct ieee80211_hw *hw,
-				      u32 add_msr, u32 rm_msr);
-	void (*get_hw_reg)(struct ieee80211_hw *hw, u8 variable, u8 *val);
-	void (*set_hw_reg)(struct ieee80211_hw *hw, u8 variable, u8 *val);
-	void (*update_rate_tbl)(struct ieee80211_hw *hw,
-				struct ieee80211_sta *sta, u8 rssi_leve,
-				bool update_bw);
-	void (*pre_fill_tx_bd_desc)(struct ieee80211_hw *hw, u8 *tx_bd_desc,
-				    u8 *desc, u8 queue_index,
-				    struct sk_buff *skb, dma_addr_t addr);
-	void (*update_rate_mask)(struct ieee80211_hw *hw, u8 rssi_level);
-	u16 (*rx_desc_buff_remained_cnt)(struct ieee80211_hw *hw,
-					 u8 queue_index);
-	void (*rx_check_dma_ok)(struct ieee80211_hw *hw, u8 *header_desc,
-				u8 queue_index);
-	void (*fill_tx_desc)(struct ieee80211_hw *hw,
-			     struct ieee80211_hdr *hdr, u8 *pdesc_tx,
-			     u8 *pbd_desc_tx,
-			     struct ieee80211_tx_info *info,
-			     struct ieee80211_sta *sta,
-			     struct sk_buff *skb, u8 hw_queue,
-			     struct rtl_tcb_desc *ptcb_desc);
-	void (*fill_fake_txdesc)(struct ieee80211_hw *hw, u8 *pdesc,
-				 u32 buffer_len, bool bispspoll);
-	void (*fill_tx_cmddesc)(struct ieee80211_hw *hw, u8 *pdesc,
-				bool firstseg, bool lastseg,
-				struct sk_buff *skb);
-	void (*fill_tx_special_desc)(struct ieee80211_hw *hw,
-				     u8 *pdesc, u8 *pbd_desc,
-				     struct sk_buff *skb, u8 hw_queue);
-	bool (*query_rx_desc)(struct ieee80211_hw *hw,
-			      struct rtl_stats *stats,
-			      struct ieee80211_rx_status *rx_status,
-			      u8 *pdesc, struct sk_buff *skb);
-	void (*set_channel_access)(struct ieee80211_hw *hw);
-	bool (*radio_onoff_checking)(struct ieee80211_hw *hw, u8 *valid);
-	void (*dm_watchdog)(struct ieee80211_hw *hw);
-	void (*scan_operation_backup)(struct ieee80211_hw *hw, u8 operation);
-	bool (*set_rf_power_state)(struct ieee80211_hw *hw,
-				   enum rf_pwrstate rfpwr_state);
-	void (*led_control)(struct ieee80211_hw *hw,
-			    enum led_ctl_mode ledaction);
-	void (*set_desc)(struct ieee80211_hw *hw, u8 *pdesc, bool istx,
-			 u8 desc_name, u8 *val);
-	u64 (*get_desc)(struct ieee80211_hw *hw, u8 *pdesc, bool istx,
-			u8 desc_name);
-	bool (*is_tx_desc_closed)(struct ieee80211_hw *hw,
-				  u8 hw_queue, u16 index);
-	void (*tx_polling)(struct ieee80211_hw *hw, u8 hw_queue);
-	void (*enable_hw_sec)(struct ieee80211_hw *hw);
-	void (*set_key)(struct ieee80211_hw *hw, u32 key_index,
-			u8 *macaddr, bool is_group, u8 enc_algo,
-			bool is_wepkey, bool clear_all);
-	void (*init_sw_leds)(struct ieee80211_hw *hw);
-	void (*deinit_sw_leds)(struct ieee80211_hw *hw);
-	u32 (*get_bbreg)(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask);
-	void (*set_bbreg)(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask,
-			  u32 data);
-	u32 (*get_rfreg)(struct ieee80211_hw *hw, enum radio_path rfpath,
-			 u32 regaddr, u32 bitmask);
-	void (*set_rfreg)(struct ieee80211_hw *hw, enum radio_path rfpath,
-			  u32 regaddr, u32 bitmask, u32 data);
-	void (*linked_set_reg)(struct ieee80211_hw *hw);
-	void (*chk_switch_dmdp)(struct ieee80211_hw *hw);
-	void (*dualmac_easy_concurrent)(struct ieee80211_hw *hw);
-	void (*dualmac_switch_to_dmdp)(struct ieee80211_hw *hw);
-	bool (*phy_rf6052_config)(struct ieee80211_hw *hw);
-	void (*phy_rf6052_set_cck_txpower)(struct ieee80211_hw *hw,
-					   u8 *powerlevel);
-	void (*phy_rf6052_set_ofdm_txpower)(struct ieee80211_hw *hw,
-					    u8 *ppowerlevel, u8 channel);
-	bool (*config_bb_with_headerfile)(struct ieee80211_hw *hw,
-					  u8 configtype);
-	bool (*config_bb_with_pgheaderfile)(struct ieee80211_hw *hw,
-					    u8 configtype);
-	void (*phy_lc_calibrate)(struct ieee80211_hw *hw, bool is2t);
-	void (*phy_set_bw_mode_callback)(struct ieee80211_hw *hw);
-	void (*dm_dynamic_txpower)(struct ieee80211_hw *hw);
-	void (*c2h_command_handle)(struct ieee80211_hw *hw);
-	void (*bt_wifi_media_status_notify)(struct ieee80211_hw *hw,
-					    bool mstate);
-	void (*bt_coex_off_before_lps)(struct ieee80211_hw *hw);
-	void (*fill_h2c_cmd)(struct ieee80211_hw *hw, u8 element_id,
-			     u32 cmd_len, u8 *p_cmdbuffer);
-	void (*set_default_port_id_cmd)(struct ieee80211_hw *hw);
-	bool (*get_btc_status)(void);
-	bool (*is_fw_header)(struct rtlwifi_firmware_header *hdr);
-	u32 (*rx_command_packet)(struct ieee80211_hw *hw,
-				 const struct rtl_stats *status,
-				 struct sk_buff *skb);
-	void (*add_wowlan_pattern)(struct ieee80211_hw *hw,
-				   struct rtl_wow_pattern *rtl_pattern,
-				   u8 index);
-	u16 (*get_available_desc)(struct ieee80211_hw *hw, u8 q_idx);
-	void (*c2h_content_parsing)(struct ieee80211_hw *hw, u8 tag, u8 len,
-				    u8 *val);
-	/* ops for halmac cb */
-	bool (*halmac_cb_init_mac_register)(struct rtl_priv *rtlpriv);
-	bool (*halmac_cb_init_bb_rf_register)(struct rtl_priv *rtlpriv);
-	bool (*halmac_cb_write_data_rsvd_page)(struct rtl_priv *rtlpriv,
-					       u8 *buf, u32 size);
-	bool (*halmac_cb_write_data_h2c)(struct rtl_priv *rtlpriv, u8 *buf,
-					 u32 size);
-	/* ops for phydm cb */
-	u8 (*get_txpower_index)(struct ieee80211_hw *hw, u8 path,
-				u8 rate, u8 bandwidth, u8 channel);
-	void (*set_tx_power_index_by_rs)(struct ieee80211_hw *hw,
-					 u8 channel, u8 path,
-					 enum rate_section rs);
-	void (*store_tx_power_by_rate)(struct ieee80211_hw *hw,
-				       u32 band, u32 rfpath,
-				       u32 txnum, u32 regaddr,
-				       u32 bitmask, u32 data);
-	void (*phy_set_txpower_limit)(struct ieee80211_hw *hw, u8 *pregulation,
-				      u8 *pband, u8 *pbandwidth,
-				      u8 *prate_section, u8 *prf_path,
-				      u8 *pchannel, u8 *ppower_limit);
-};
-
-struct rtl_intf_ops {
-	/*com */
-	void (*read_efuse_byte)(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf);
-	int (*adapter_start)(struct ieee80211_hw *hw);
-	void (*adapter_stop)(struct ieee80211_hw *hw);
-	bool (*check_buddy_priv)(struct ieee80211_hw *hw,
-				 struct rtl_priv **buddy_priv);
-
-	int (*adapter_tx)(struct ieee80211_hw *hw,
-			  struct ieee80211_sta *sta,
-			  struct sk_buff *skb,
-			  struct rtl_tcb_desc *ptcb_desc);
-	void (*flush)(struct ieee80211_hw *hw, u32 queues, bool drop);
-	int (*reset_trx_ring)(struct ieee80211_hw *hw);
-	bool (*waitq_insert)(struct ieee80211_hw *hw,
-			     struct ieee80211_sta *sta,
-			     struct sk_buff *skb);
-
-	/*pci */
-	void (*disable_aspm)(struct ieee80211_hw *hw);
-	void (*enable_aspm)(struct ieee80211_hw *hw);
-
-	/*usb */
-};
-
-struct rtl_mod_params {
-	/* default: 0,0 */
-	u64 debug_mask;
-	/* default: 0 = using hardware encryption */
-	bool sw_crypto;
-
-	/* default: 0 = DBG_EMERG (0)*/
-	int debug_level;
-
-	/* default: 1 = using no linked power save */
-	bool inactiveps;
-
-	/* default: 1 = using linked sw power save */
-	bool swctrl_lps;
-
-	/* default: 1 = using linked fw power save */
-	bool fwctrl_lps;
-
-	/* default: 0 = not using MSI interrupts mode
-	 * submodules should set their own default value
-	 */
-	bool msi_support;
-
-	/* default: 0 = dma 32 */
-	bool dma64;
-
-	/* default: 1 = enable aspm */
-	int aspm_support;
-
-	/* default 0: 1 means disable */
-	bool disable_watchdog;
-
-	/* default 0: 1 means do not disable interrupts */
-	bool int_clear;
-
-	/* select antenna */
-	int ant_sel;
-};
-
-struct rtl_hal_usbint_cfg {
-	/* data - rx */
-	u32 in_ep_num;
-	u32 rx_urb_num;
-	u32 rx_max_size;
-
-	/* op - rx */
-	void (*usb_rx_hdl)(struct ieee80211_hw *hw, struct sk_buff *skb);
-	void (*usb_rx_segregate_hdl)(struct ieee80211_hw *hw,
-				     struct sk_buff *skb,
-				     struct sk_buff_head *skbh);
-
-	/* tx */
-	void (*usb_tx_cleanup)(struct ieee80211_hw *hw, struct sk_buff *skb);
-	int (*usb_tx_post_hdl)(struct ieee80211_hw *hw, struct urb *urb,
-			       struct sk_buff *skb);
-	struct sk_buff *(*usb_tx_aggregate_hdl)(struct ieee80211_hw *hw,
-						struct sk_buff_head *skbh);
-
-	/* endpoint mapping */
-	int (*usb_endpoint_mapping)(struct ieee80211_hw *hw);
-	u16 (*usb_mq_to_hwq)(__le16 fc, u16 mac80211_queue_index);
-};
-
-struct rtl_hal_cfg {
-	u8 bar_id;
-	bool write_readback;
-	char *name;
-	char *alt_fw_name;
-	struct rtl_hal_ops *ops;
-	struct rtl_mod_params *mod_params;
-	struct rtl_hal_usbint_cfg *usb_interface_cfg;
-	enum rtl_spec_ver spec_ver;
-
-	/* this map used for some registers or vars
-	 * defined int HAL but used in MAIN
-	 */
-	u32 maps[RTL_VAR_MAP_MAX];
-
-};
-
-struct rtl_locks {
-	/* mutex */
-	struct mutex conf_mutex;
-	struct mutex ips_mutex;	/* mutex for enter/leave IPS */
-	struct mutex lps_mutex;	/* mutex for enter/leave LPS */
-
-	/*spin lock */
-	spinlock_t irq_th_lock;
-	spinlock_t h2c_lock;
-	spinlock_t rf_ps_lock;
-	spinlock_t rf_lock;
-	spinlock_t waitq_lock;
-	spinlock_t entry_list_lock;
-	spinlock_t usb_lock;
-	spinlock_t c2hcmd_lock;
-	spinlock_t scan_list_lock; /* lock for the scan list */
-
-	/*FW clock change */
-	spinlock_t fw_ps_lock;
-
-	/*Dual mac*/
-	spinlock_t cck_and_rw_pagea_lock;
-
-	spinlock_t iqk_lock;
-};
-
-struct rtl_works {
-	struct ieee80211_hw *hw;
-
-	/*timer */
-	struct timer_list watchdog_timer;
-	struct timer_list dualmac_easyconcurrent_retrytimer;
-	struct timer_list fw_clockoff_timer;
-	struct timer_list fast_antenna_training_timer;
-	/*task */
-	struct tasklet_struct irq_tasklet;
-	struct tasklet_struct irq_prepare_bcn_tasklet;
-
-	/*work queue */
-	struct workqueue_struct *rtl_wq;
-	struct delayed_work watchdog_wq;
-	struct delayed_work ips_nic_off_wq;
-	struct delayed_work c2hcmd_wq;
-
-	/* For SW LPS */
-	struct delayed_work ps_work;
-	struct delayed_work ps_rfon_wq;
-	struct delayed_work fwevt_wq;
-
-	struct work_struct lps_change_work;
-	struct work_struct fill_h2c_cmd;
-};
-
-struct rtl_debug {
-	/* add for debug */
-	struct dentry *debugfs_dir;
-	char debugfs_name[20];
-
-	char *msg_buf;
-};
-
-#define MIMO_PS_STATIC			0
-#define MIMO_PS_DYNAMIC			1
-#define MIMO_PS_NOLIMIT			3
-
-struct rtl_dualmac_easy_concurrent_ctl {
-	enum band_type currentbandtype_backfordmdp;
-	bool close_bbandrf_for_dmsp;
-	bool change_to_dmdp;
-	bool change_to_dmsp;
-	bool switch_in_process;
-};
-
-struct rtl_dmsp_ctl {
-	bool activescan_for_slaveofdmsp;
-	bool scan_for_anothermac_fordmsp;
-	bool scan_for_itself_fordmsp;
-	bool writedig_for_anothermacofdmsp;
-	u32 curdigvalue_for_anothermacofdmsp;
-	bool changecckpdstate_for_anothermacofdmsp;
-	u8 curcckpdstate_for_anothermacofdmsp;
-	bool changetxhighpowerlvl_for_anothermacofdmsp;
-	u8 curtxhighlvl_for_anothermacofdmsp;
-	long rssivalmin_for_anothermacofdmsp;
-};
-
-struct ps_t {
-	u8 pre_ccastate;
-	u8 cur_ccasate;
-	u8 pre_rfstate;
-	u8 cur_rfstate;
-	u8 initialize;
-	long rssi_val_min;
-};
-
-struct dig_t {
-	u32 rssi_lowthresh;
-	u32 rssi_highthresh;
-	u32 fa_lowthresh;
-	u32 fa_highthresh;
-	long last_min_undec_pwdb_for_dm;
-	long rssi_highpower_lowthresh;
-	long rssi_highpower_highthresh;
-	u32 recover_cnt;
-	u32 pre_igvalue;
-	u32 cur_igvalue;
-	long rssi_val;
-	u8 dig_enable_flag;
-	u8 dig_ext_port_stage;
-	u8 dig_algorithm;
-	u8 dig_twoport_algorithm;
-	u8 dig_dbgmode;
-	u8 dig_slgorithm_switch;
-	u8 cursta_cstate;
-	u8 presta_cstate;
-	u8 curmultista_cstate;
-	u8 stop_dig;
-	s8 back_val;
-	s8 back_range_max;
-	s8 back_range_min;
-	u8 rx_gain_max;
-	u8 rx_gain_min;
-	u8 min_undec_pwdb_for_dm;
-	u8 rssi_val_min;
-	u8 pre_cck_cca_thres;
-	u8 cur_cck_cca_thres;
-	u8 pre_cck_pd_state;
-	u8 cur_cck_pd_state;
-	u8 pre_cck_fa_state;
-	u8 cur_cck_fa_state;
-	u8 pre_ccastate;
-	u8 cur_ccasate;
-	u8 large_fa_hit;
-	u8 forbidden_igi;
-	u8 dig_state;
-	u8 dig_highpwrstate;
-	u8 cur_sta_cstate;
-	u8 pre_sta_cstate;
-	u8 cur_ap_cstate;
-	u8 pre_ap_cstate;
-	u8 cur_pd_thstate;
-	u8 pre_pd_thstate;
-	u8 cur_cs_ratiostate;
-	u8 pre_cs_ratiostate;
-	u8 backoff_enable_flag;
-	s8 backoffval_range_max;
-	s8 backoffval_range_min;
-	u8 dig_min_0;
-	u8 dig_min_1;
-	u8 bt30_cur_igi;
-	bool media_connect_0;
-	bool media_connect_1;
-
-	u32 antdiv_rssi_max;
-	u32 rssi_max;
-};
-
-struct rtl_global_var {
-	/* from this list we can get
-	 * other adapter's rtl_priv
-	 */
-	struct list_head glb_priv_list;
-	spinlock_t glb_list_lock;
-};
-
-#define IN_4WAY_TIMEOUT_TIME	(30 * MSEC_PER_SEC)	/* 30 seconds */
-
-struct rtl_btc_info {
-	u8 bt_type;
-	u8 btcoexist;
-	u8 ant_num;
-	u8 single_ant_path;
-
-	u8 ap_num;
-	bool in_4way;
-	unsigned long in_4way_ts;
-};
-
-struct bt_coexist_info {
-	struct rtl_btc_ops *btc_ops;
-	struct rtl_btc_info btc_info;
-	/* btc context */
-	void *btc_context;
-	void *wifi_only_context;
-	/* EEPROM BT info. */
-	u8 eeprom_bt_coexist;
-	u8 eeprom_bt_type;
-	u8 eeprom_bt_ant_num;
-	u8 eeprom_bt_ant_isol;
-	u8 eeprom_bt_radio_shared;
-
-	u8 bt_coexistence;
-	u8 bt_ant_num;
-	u8 bt_coexist_type;
-	u8 bt_state;
-	u8 bt_cur_state;	/* 0:on, 1:off */
-	u8 bt_ant_isolation;	/* 0:good, 1:bad */
-	u8 bt_pape_ctrl;	/* 0:SW, 1:SW/HW dynamic */
-	u8 bt_service;
-	u8 bt_radio_shared_type;
-	u8 bt_rfreg_origin_1e;
-	u8 bt_rfreg_origin_1f;
-	u8 bt_rssi_state;
-	u32 ratio_tx;
-	u32 ratio_pri;
-	u32 bt_edca_ul;
-	u32 bt_edca_dl;
-
-	bool init_set;
-	bool bt_busy_traffic;
-	bool bt_traffic_mode_set;
-	bool bt_non_traffic_mode_set;
-
-	bool fw_coexist_all_off;
-	bool sw_coexist_all_off;
-	bool hw_coexist_all_off;
-	u32 cstate;
-	u32 previous_state;
-	u32 cstate_h;
-	u32 previous_state_h;
-
-	u8 bt_pre_rssi_state;
-	u8 bt_pre_rssi_state1;
-
-	u8 reg_bt_iso;
-	u8 reg_bt_sco;
-	bool balance_on;
-	u8 bt_active_zero_cnt;
-	bool cur_bt_disabled;
-	bool pre_bt_disabled;
-
-	u8 bt_profile_case;
-	u8 bt_profile_action;
-	bool bt_busy;
-	bool hold_for_bt_operation;
-	u8 lps_counter;
-};
-
-struct rtl_btc_ops {
-	void (*btc_init_variables)(struct rtl_priv *rtlpriv);
-	void (*btc_init_variables_wifi_only)(struct rtl_priv *rtlpriv);
-	void (*btc_deinit_variables)(struct rtl_priv *rtlpriv);
-	void (*btc_init_hal_vars)(struct rtl_priv *rtlpriv);
-	void (*btc_power_on_setting)(struct rtl_priv *rtlpriv);
-	void (*btc_init_hw_config)(struct rtl_priv *rtlpriv);
-	void (*btc_init_hw_config_wifi_only)(struct rtl_priv *rtlpriv);
-	void (*btc_ips_notify)(struct rtl_priv *rtlpriv, u8 type);
-	void (*btc_lps_notify)(struct rtl_priv *rtlpriv, u8 type);
-	void (*btc_scan_notify)(struct rtl_priv *rtlpriv, u8 scantype);
-	void (*btc_scan_notify_wifi_only)(struct rtl_priv *rtlpriv,
-					  u8 scantype);
-	void (*btc_connect_notify)(struct rtl_priv *rtlpriv, u8 action);
-	void (*btc_mediastatus_notify)(struct rtl_priv *rtlpriv,
-				       enum rt_media_status mstatus);
-	void (*btc_periodical)(struct rtl_priv *rtlpriv);
-	void (*btc_halt_notify)(struct rtl_priv *rtlpriv);
-	void (*btc_btinfo_notify)(struct rtl_priv *rtlpriv,
-				  u8 *tmp_buf, u8 length);
-	void (*btc_btmpinfo_notify)(struct rtl_priv *rtlpriv,
-				    u8 *tmp_buf, u8 length);
-	bool (*btc_is_limited_dig)(struct rtl_priv *rtlpriv);
-	bool (*btc_is_disable_edca_turbo)(struct rtl_priv *rtlpriv);
-	bool (*btc_is_bt_disabled)(struct rtl_priv *rtlpriv);
-	void (*btc_special_packet_notify)(struct rtl_priv *rtlpriv,
-					  u8 pkt_type);
-	void (*btc_switch_band_notify)(struct rtl_priv *rtlpriv, u8 type,
-				       bool scanning);
-	void (*btc_switch_band_notify_wifi_only)(struct rtl_priv *rtlpriv,
-						 u8 type, bool scanning);
-	void (*btc_display_bt_coex_info)(struct rtl_priv *rtlpriv,
-					 struct seq_file *m);
-	void (*btc_record_pwr_mode)(struct rtl_priv *rtlpriv, u8 *buf, u8 len);
-	u8   (*btc_get_lps_val)(struct rtl_priv *rtlpriv);
-	u8   (*btc_get_rpwm_val)(struct rtl_priv *rtlpriv);
-	bool (*btc_is_bt_ctrl_lps)(struct rtl_priv *rtlpriv);
-	void (*btc_get_ampdu_cfg)(struct rtl_priv *rtlpriv, u8 *reject_agg,
-				  u8 *ctrl_agg_size, u8 *agg_size);
-	bool (*btc_is_bt_lps_on)(struct rtl_priv *rtlpriv);
-};
-
-struct rtl_halmac_ops {
-	int (*halmac_init_adapter)(struct rtl_priv *rtlpriv);
-	int (*halmac_deinit_adapter)(struct rtl_priv *rtlpriv);
-	int (*halmac_init_hal)(struct rtl_priv *rtlpriv);
-	int (*halmac_deinit_hal)(struct rtl_priv *rtlpriv);
-	int (*halmac_poweron)(struct rtl_priv *rtlpriv);
-	int (*halmac_poweroff)(struct rtl_priv *rtlpriv);
-
-	int (*halmac_phy_power_switch)(struct rtl_priv *rtlpriv, u8 enable);
-	int (*halmac_set_mac_address)(struct rtl_priv *rtlpriv, u8 hwport,
-				      u8 *addr);
-	int (*halmac_set_bssid)(struct rtl_priv *rtlpriv, u8 hwport, u8 *addr);
-
-	int (*halmac_get_physical_efuse_size)(struct rtl_priv *rtlpriv,
-					      u32 *size);
-	int (*halmac_read_physical_efuse_map)(struct rtl_priv *rtlpriv,
-					      u8 *map, u32 size);
-	int (*halmac_get_logical_efuse_size)(struct rtl_priv *rtlpriv,
-					     u32 *size);
-	int (*halmac_read_logical_efuse_map)(struct rtl_priv *rtlpriv, u8 *map,
-					     u32 size);
-
-	int (*halmac_set_bandwidth)(struct rtl_priv *rtlpriv, u8 channel,
-				    u8 pri_ch_idx, u8 bw);
-
-	int (*halmac_c2h_handle)(struct rtl_priv *rtlpriv, u8 *c2h, u32 size);
-
-	int (*halmac_chk_txdesc)(struct rtl_priv *rtlpriv, u8 *txdesc,
-				 u32 size);
-};
-
-struct rtl_halmac_indicator {
-	struct completion *comp;
-	u32 wait_ms;
-
-	u8 *buffer;
-	u32 buf_size;
-	u32 ret_size;
-	u32 status;
-};
-
-struct rtl_halmac {
-	struct rtl_halmac_ops *ops; /* halmac ops (halmac.ko own this object) */
-	void *internal;	/* internal context of halmac, i.e. PHALMAC_ADAPTER */
-	struct rtl_halmac_indicator *indicator;	/* size=10 */
-
-	/* flags */
-	/*
-	 * send_general_info
-	 *	0: no need to call halmac_send_general_info()
-	 *	1: need to call halmac_send_general_info()
-	 */
-	u8 send_general_info;
-};
-
-struct rtl_phydm_params {
-	u8 mp_chip;	/* 1: MP chip, 0: test chip */
-	u8 fab_ver;	/* 0: TSMC, 1: UMC, ...*/
-	u8 cut_ver;	/* 0: A, 1: B, ..., 10: K */
-	u8 efuse0x3d7;	/* default: 0xff */
-	u8 efuse0x3d8;	/* default: 0xff */
-};
-
-struct rtl_phydm_ops {
-	/* init/deinit priv */
-	int (*phydm_init_priv)(struct rtl_priv *rtlpriv,
-			       struct rtl_phydm_params *params);
-	int (*phydm_deinit_priv)(struct rtl_priv *rtlpriv);
-	bool (*phydm_load_txpower_by_rate)(struct rtl_priv *rtlpriv);
-	bool (*phydm_load_txpower_limit)(struct rtl_priv *rtlpriv);
-
-	/* init hw */
-	int  (*phydm_init_dm)(struct rtl_priv *rtlpriv);
-	int  (*phydm_deinit_dm)(struct rtl_priv *rtlpriv);
-	int  (*phydm_reset_dm)(struct rtl_priv *rtlpriv);
-	bool (*phydm_parameter_init)(struct rtl_priv *rtlpriv, bool post);
-	bool (*phydm_phy_bb_config)(struct rtl_priv *rtlpriv);
-	bool (*phydm_phy_rf_config)(struct rtl_priv *rtlpriv);
-	bool (*phydm_phy_mac_config)(struct rtl_priv *rtlpriv);
-	bool (*phydm_trx_mode)(struct rtl_priv *rtlpriv,
-			       enum radio_mask tx_path, enum radio_mask rx_path,
-			       bool is_tx2_path);
-	/* watchdog */
-	bool (*phydm_watchdog)(struct rtl_priv *rtlpriv);
-
-	/* channel */
-	bool (*phydm_switch_band)(struct rtl_priv *rtlpriv, u8 central_ch);
-	bool (*phydm_switch_channel)(struct rtl_priv *rtlpriv, u8 central_ch);
-	bool (*phydm_switch_bandwidth)(struct rtl_priv *rtlpriv,
-				       u8 primary_ch_idx,
-				       enum ht_channel_width width);
-	bool (*phydm_iq_calibrate)(struct rtl_priv *rtlpriv);
-	bool (*phydm_clear_txpowertracking_state)(struct rtl_priv *rtlpriv);
-	bool (*phydm_pause_dig)(struct rtl_priv *rtlpriv, bool pause);
-
-	/* read/write reg */
-	u32  (*phydm_read_rf_reg)(struct rtl_priv *rtlpriv,
-				  enum radio_path rfpath,
-				  u32 addr, u32 mask);
-	bool (*phydm_write_rf_reg)(struct rtl_priv *rtlpriv,
-				   enum radio_path rfpath,
-				   u32 addr, u32 mask, u32 data);
-	u8   (*phydm_read_txagc)(struct rtl_priv *rtlpriv,
-				 enum radio_path rfpath, u8 hw_rate);
-	bool (*phydm_write_txagc)(struct rtl_priv *rtlpriv, u32 power_index,
-				  enum radio_path rfpath, u8 hw_rate);
-
-	/* RX */
-	bool (*phydm_c2h_content_parsing)(struct rtl_priv *rtlpriv, u8 cmd_id,
-					  u8 cmd_len, u8 *content);
-	bool (*phydm_query_phy_status)(struct rtl_priv *rtlpriv, u8 *phystrpt,
-				       struct ieee80211_hdr *hdr,
-				       struct rtl_stats *pstatus);
-
-	/* TX */
-	u8 (*phydm_rate_id_mapping)(struct rtl_priv *rtlpriv,
-				    enum wireless_mode wireless_mode,
-				    enum rf_type rf_type,
-				    enum ht_channel_width bw);
-	bool (*phydm_get_ra_bitmap)(struct rtl_priv *rtlpriv,
-				    enum wireless_mode wireless_mode,
-				    enum rf_type rf_type,
-				    enum ht_channel_width bw,
-				    u8 tx_rate_level, /* 0~6 */
-				    u32 *tx_bitmap_msb,
-				    u32 *tx_bitmap_lsb);
-
-	/* STA */
-	bool (*phydm_add_sta)(struct rtl_priv *rtlpriv,
-			      struct ieee80211_sta *sta);
-	bool (*phydm_del_sta)(struct rtl_priv *rtlpriv,
-			      struct ieee80211_sta *sta);
-
-	/* BTC */
-	u32  (*phydm_get_version)(struct rtl_priv *rtlpriv);
-	bool (*phydm_modify_ra_pcr_threshold)(struct rtl_priv *rtlpriv,
-					      u8 ra_offset_direction,
-					      u8 ra_threshold_offset);
-	u32  (*phydm_query_counter)(struct rtl_priv *rtlpriv,
-				    const char *info_type);
-
-	/* debug */
-	bool (*phydm_debug_cmd)(struct rtl_priv *rtlpriv, char *in, u32 in_len,
-				char *out, u32 out_len);
-
-};
-
-struct rtl_phydm {
-	struct rtl_phydm_ops *ops;/* phydm ops (phydm_mod.ko own this object) */
-	void *internal;	/* internal context of phydm, i.e. PHY_DM_STRUCT */
-
-	u8 adaptivity_en;
-	/* debug */
-	u16 forced_data_rate;
-	u8 forced_igi_lb;
-	u8 antenna_test;
-};
-
-struct proxim {
-	bool proxim_on;
-
-	void *proximity_priv;
-	int (*proxim_rx)(struct ieee80211_hw *hw, struct rtl_stats *status,
-			 struct sk_buff *skb);
-	u8  (*proxim_get_var)(struct ieee80211_hw *hw, u8 type);
-};
-
-struct rtl_c2hcmd {
-	struct list_head list;
-	u8 tag;
-	u8 len;
-	u8 *val;
-};
-
-struct rtl_bssid_entry {
-	struct list_head list;
-	u8 bssid[ETH_ALEN];
-	u32 age;
-};
-
-struct rtl_scan_list {
-	int num;
-	struct list_head list;	/* sort by age */
-};
-
-struct rtl_priv {
-	struct ieee80211_hw *hw;
-	struct completion firmware_loading_complete;
-	struct list_head list;
-	struct rtl_priv *buddy_priv;
-	struct rtl_global_var *glb_var;
-	struct rtl_dualmac_easy_concurrent_ctl easy_concurrent_ctl;
-	struct rtl_dmsp_ctl dmsp_ctl;
-	struct rtl_locks locks;
-	struct rtl_works works;
-	struct rtl_mac mac80211;
-	struct rtl_hal rtlhal;
-	struct rtl_regulatory regd;
-	struct rtl_rfkill rfkill;
-	struct rtl_io io;
-	struct rtl_phy phy;
-	struct rtl_dm dm;
-	struct rtl_security sec;
-	struct rtl_efuse efuse;
-	struct rtl_led_ctl ledctl;
-	struct rtl_tx_report tx_report;
-	struct rtl_scan_list scan_list;
-	struct rtl_ps_ctl psc;
-	struct rate_adaptive ra;
-	struct dynamic_primary_cca primarycca;
-	struct wireless_stats stats;
-	struct rt_link_detect link_info;
-	struct false_alarm_statistics falsealm_cnt;
-	struct rtl_rate_priv *rate_priv;
-	/* sta entry list for ap adhoc or mesh */
-	struct list_head entry_list;
-	/* c2hcmd list for kthread level access */
-	struct list_head c2hcmd_list;
-	struct rtl_debug dbg;
-	int max_fw_size;
-
-	/*hal_cfg : for diff cards
-	 *intf_ops : for diff interface usb/pcie
-	 */
-	struct rtl_hal_cfg *cfg;
-	const struct rtl_intf_ops *intf_ops;
-
-	/* this var will be set by set_bit,
-	 * and was used to indicate status of
-	 * interface or hardware
-	 */
-	unsigned long status;
-
-	/* tables for dm */
-	struct dig_t dm_digtable;
-	struct ps_t dm_pstable;
-
-	u32 reg_874;
-	u32 reg_c70;
-	u32 reg_85c;
-	u32 reg_a74;
-	bool reg_init;	/* true if regs saved */
-	bool bt_operation_on;
-	__le32 *usb_data;
-	int usb_data_index;
-	bool initialized;
-	bool enter_ps;	/* true when entering PS */
-	u8 rate_mask[5];
-
-	/* intel Proximity, should be alloc mem
-	 * in intel Proximity module and can only
-	 * be used in intel Proximity mode
-	 */
-	struct proxim proximity;
-
-	/*for bt coexist use*/
-	struct bt_coexist_info btcoexist;
-
-	/* halmac for newer IC. (e.g. 8822B) */
-	struct rtl_halmac halmac;
-
-	/* phydm for newer IC. (e.g. 8822B) */
-	struct rtl_phydm phydm;
-
-	/* separate 92ee from other ICs,
-	 * 92ee use new trx flow.
-	 */
-	bool use_new_trx_flow;
-
-#ifdef CONFIG_PM
-	struct wiphy_wowlan_support wowlan;
-#endif
-	/* This must be the last item so
-	 * that it points to the data allocated
-	 * beyond  this structure like:
-	 * rtl_pci_priv or rtl_usb_priv
-	 */
-	u8 priv[0] __aligned(sizeof(void *));
-};
-
-#define rtl_priv(hw)		(((struct rtl_priv *)(hw)->priv))
-#define rtl_mac(rtlpriv)	(&((rtlpriv)->mac80211))
-#define rtl_hal(rtlpriv)	(&((rtlpriv)->rtlhal))
-#define rtl_efuse(rtlpriv)	(&((rtlpriv)->efuse))
-#define rtl_psc(rtlpriv)	(&((rtlpriv)->psc))
-
-/***************************************
- *    Bluetooth Co-existence Related
- ***************************************/
-
-enum bt_ant_num {
-	ANT_X2 = 0,
-	ANT_X1 = 1,
-};
-
-enum bt_co_type {
-	BT_2WIRE = 0,
-	BT_ISSC_3WIRE = 1,
-	BT_ACCEL = 2,
-	BT_CSR_BC4 = 3,
-	BT_CSR_BC8 = 4,
-	BT_RTL8756 = 5,
-	BT_RTL8723A = 6,
-	BT_RTL8821A = 7,
-	BT_RTL8723B = 8,
-	BT_RTL8192E = 9,
-	BT_RTL8812A = 11,
-	BT_RTL8822B = 12,
-};
-
-enum bt_total_ant_num {
-	ANT_TOTAL_X2 = 0,
-	ANT_TOTAL_X1 = 1
-};
-
-enum bt_cur_state {
-	BT_OFF = 0,
-	BT_ON = 1,
-};
-
-enum bt_service_type {
-	BT_SCO = 0,
-	BT_A2DP = 1,
-	BT_HID = 2,
-	BT_HID_IDLE = 3,
-	BT_SCAN = 4,
-	BT_IDLE = 5,
-	BT_OTHER_ACTION = 6,
-	BT_BUSY = 7,
-	BT_OTHERBUSY = 8,
-	BT_PAN = 9,
-};
-
-enum bt_radio_shared {
-	BT_RADIO_SHARED = 0,
-	BT_RADIO_INDIVIDUAL = 1,
-};
-
-/****************************************
- *	mem access macro define start
- *	Call endian free function when
- *	1. Read/write packet content.
- *	2. Before write integer to IO.
- *	3. After read integer from IO.
- ***************************************/
-/* Convert little data endian to host ordering */
-#define EF1BYTE(_val)		\
-	((u8)(_val))
-#define EF2BYTE(_val)		\
-	(le16_to_cpu(_val))
-#define EF4BYTE(_val)		\
-	(le32_to_cpu(_val))
-
-/* Read data from memory */
-#define READEF1BYTE(_ptr)      \
-	EF1BYTE(*((u8 *)(_ptr)))
-/* Read le16 data from memory and convert to host ordering */
-#define READEF2BYTE(_ptr)      \
-	EF2BYTE(*(_ptr))
-#define READEF4BYTE(_ptr)      \
-	EF4BYTE(*(_ptr))
-
-/* Create a bit mask
- * Examples:
- * BIT_LEN_MASK_32(0) => 0x00000000
- * BIT_LEN_MASK_32(1) => 0x00000001
- * BIT_LEN_MASK_32(2) => 0x00000003
- * BIT_LEN_MASK_32(32) => 0xFFFFFFFF
- */
-#define BIT_LEN_MASK_32(__bitlen)	 \
-	(0xFFFFFFFF >> (32 - (__bitlen)))
-#define BIT_LEN_MASK_16(__bitlen)	 \
-	(0xFFFF >> (16 - (__bitlen)))
-#define BIT_LEN_MASK_8(__bitlen) \
-	(0xFF >> (8 - (__bitlen)))
-
-/* Create an offset bit mask
- * Examples:
- * BIT_OFFSET_LEN_MASK_32(0, 2) => 0x00000003
- * BIT_OFFSET_LEN_MASK_32(16, 2) => 0x00030000
- */
-#define BIT_OFFSET_LEN_MASK_32(__bitoffset, __bitlen) \
-	(BIT_LEN_MASK_32(__bitlen) << (__bitoffset))
-#define BIT_OFFSET_LEN_MASK_16(__bitoffset, __bitlen) \
-	(BIT_LEN_MASK_16(__bitlen) << (__bitoffset))
-#define BIT_OFFSET_LEN_MASK_8(__bitoffset, __bitlen) \
-	(BIT_LEN_MASK_8(__bitlen) << (__bitoffset))
-
-/*Description:
- * Return 4-byte value in host byte ordering from
- * 4-byte pointer in little-endian system.
- */
-#define LE_P4BYTE_TO_HOST_4BYTE(__pstart) \
-	(EF4BYTE(*((__le32 *)(__pstart))))
-#define LE_P2BYTE_TO_HOST_2BYTE(__pstart) \
-	(EF2BYTE(*((__le16 *)(__pstart))))
-#define LE_P1BYTE_TO_HOST_1BYTE(__pstart) \
-	(EF1BYTE(*((u8 *)(__pstart))))
-
-/* Description:
- * Translate subfield (continuous bits in little-endian) of 4-byte
- * value to host byte ordering.
- */
-#define LE_BITS_TO_4BYTE(__pstart, __bitoffset, __bitlen) \
-	( \
-		(LE_P4BYTE_TO_HOST_4BYTE(__pstart) >> (__bitoffset))  & \
-		BIT_LEN_MASK_32(__bitlen) \
-	)
-#define LE_BITS_TO_2BYTE(__pstart, __bitoffset, __bitlen) \
-	( \
-		(LE_P2BYTE_TO_HOST_2BYTE(__pstart) >> (__bitoffset)) & \
-		BIT_LEN_MASK_16(__bitlen) \
-	)
-#define LE_BITS_TO_1BYTE(__pstart, __bitoffset, __bitlen) \
-	( \
-		(LE_P1BYTE_TO_HOST_1BYTE(__pstart) >> (__bitoffset)) & \
-		BIT_LEN_MASK_8(__bitlen) \
-	)
-
-/* Description:
- * Mask subfield (continuous bits in little-endian) of 4-byte value
- * and return the result in 4-byte value in host byte ordering.
- */
-#define LE_BITS_CLEARED_TO_4BYTE(__pstart, __bitoffset, __bitlen) \
-	( \
-		LE_P4BYTE_TO_HOST_4BYTE(__pstart)  & \
-		(~BIT_OFFSET_LEN_MASK_32(__bitoffset, __bitlen)) \
-	)
-#define LE_BITS_CLEARED_TO_2BYTE(__pstart, __bitoffset, __bitlen) \
-	( \
-		LE_P2BYTE_TO_HOST_2BYTE(__pstart) & \
-		(~BIT_OFFSET_LEN_MASK_16(__bitoffset, __bitlen)) \
-	)
-#define LE_BITS_CLEARED_TO_1BYTE(__pstart, __bitoffset, __bitlen) \
-	( \
-		LE_P1BYTE_TO_HOST_1BYTE(__pstart) & \
-		(~BIT_OFFSET_LEN_MASK_8(__bitoffset, __bitlen)) \
-	)
-
-/* Description:
- * Set subfield of little-endian 4-byte value to specified value.
- */
-#define SET_BITS_TO_LE_4BYTE(__pstart, __bitoffset, __bitlen, __val) \
-	(*((__le32 *)(__pstart)) = \
-	cpu_to_le32( \
-		LE_BITS_CLEARED_TO_4BYTE(__pstart, __bitoffset, __bitlen) | \
-		((((u32)__val) & BIT_LEN_MASK_32(__bitlen)) << (__bitoffset)) \
-	))
-#define SET_BITS_TO_LE_2BYTE(__pstart, __bitoffset, __bitlen, __val) \
-	(*((__le16 *)(__pstart)) = \
-	cpu_to_le16( \
-		LE_BITS_CLEARED_TO_2BYTE(__pstart, __bitoffset, __bitlen) | \
-		((((u16)__val) & BIT_LEN_MASK_16(__bitlen)) << (__bitoffset)) \
-	))
-#define SET_BITS_TO_LE_1BYTE(__pstart, __bitoffset, __bitlen, __val) \
-	(*((u8 *)(__pstart)) = EF1BYTE \
-	( \
-		LE_BITS_CLEARED_TO_1BYTE(__pstart, __bitoffset, __bitlen) | \
-		((((u8)__val) & BIT_LEN_MASK_8(__bitlen)) << (__bitoffset)) \
-	))
-
-#define	N_BYTE_ALIGNMENT(__value, __alignment) ((__alignment == 1) ? \
-	(__value) : (((__value + __alignment - 1) /		    \
-	 __alignment) * __alignment))
-
-/****************************************
- *	mem access macro define end
- ****************************************/
-
-#define byte(x, n) ((x >> (8 * n)) & 0xff)
-
-#define packet_get_type(_packet) (EF1BYTE((_packet).octet[0]) & 0xFC)
-#define RTL_WATCH_DOG_TIME	2000
-#define MSECS(t)		msecs_to_jiffies(t)
-#define WLAN_FC_GET_VERS(fc)	(le16_to_cpu(fc) & IEEE80211_FCTL_VERS)
-#define WLAN_FC_GET_TYPE(fc)	(le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE)
-#define WLAN_FC_GET_STYPE(fc)	(le16_to_cpu(fc) & IEEE80211_FCTL_STYPE)
-#define WLAN_FC_MORE_DATA(fc)	(le16_to_cpu(fc) & IEEE80211_FCTL_MOREDATA)
-#define rtl_dm(rtlpriv)		(&((rtlpriv)->dm))
-
-#define	RT_RF_OFF_LEVL_ASPM		BIT(0)	/*PCI ASPM */
-#define	RT_RF_OFF_LEVL_CLK_REQ		BIT(1)	/*PCI clock request */
-#define	RT_RF_OFF_LEVL_PCI_D3		BIT(2)	/*PCI D3 mode */
-/*NIC halt, re-initialize hw parameters*/
-#define	RT_RF_OFF_LEVL_HALT_NIC		BIT(3)
-#define	RT_RF_OFF_LEVL_FREE_FW		BIT(4)	/*FW free, re-download the FW */
-#define	RT_RF_OFF_LEVL_FW_32K		BIT(5)	/*FW in 32k */
-/*Always enable ASPM and Clock Req in initialization.*/
-#define	RT_RF_PS_LEVEL_ALWAYS_ASPM	BIT(6)
-/* no matter RFOFF or SLEEP we set PS_ASPM_LEVL*/
-#define	RT_PS_LEVEL_ASPM		BIT(7)
-/*When LPS is on, disable 2R if no packet is received or transmitted.*/
-#define	RT_RF_LPS_DISALBE_2R		BIT(30)
-#define	RT_RF_LPS_LEVEL_ASPM		BIT(31)	/*LPS with ASPM */
-#define	RT_IN_PS_LEVEL(ppsc, _ps_flg)		\
-	((ppsc->cur_ps_level & _ps_flg) ? true : false)
-#define	RT_CLEAR_PS_LEVEL(ppsc, _ps_flg)	\
-	(ppsc->cur_ps_level &= (~(_ps_flg)))
-#define	RT_SET_PS_LEVEL(ppsc, _ps_flg)		\
-	(ppsc->cur_ps_level |= _ps_flg)
-
-#define container_of_dwork_rtl(x, y, z) \
-	container_of(to_delayed_work(x), y, z)
-
-#define FILL_OCTET_STRING(_os, _octet, _len)	\
-		(_os).octet = (u8 *)(_octet);		\
-		(_os).length = (_len)
-
-#define CP_MACADDR(des, src)	\
-	((des)[0] = (src)[0], (des)[1] = (src)[1],\
-	(des)[2] = (src)[2], (des)[3] = (src)[3],\
-	(des)[4] = (src)[4], (des)[5] = (src)[5])
-
-#define	LDPC_HT_ENABLE_RX			BIT(0)
-#define	LDPC_HT_ENABLE_TX			BIT(1)
-#define	LDPC_HT_TEST_TX_ENABLE			BIT(2)
-#define	LDPC_HT_CAP_TX				BIT(3)
-
-#define	STBC_HT_ENABLE_RX			BIT(0)
-#define	STBC_HT_ENABLE_TX			BIT(1)
-#define	STBC_HT_TEST_TX_ENABLE			BIT(2)
-#define	STBC_HT_CAP_TX				BIT(3)
-
-#define	LDPC_VHT_ENABLE_RX			BIT(0)
-#define	LDPC_VHT_ENABLE_TX			BIT(1)
-#define	LDPC_VHT_TEST_TX_ENABLE			BIT(2)
-#define	LDPC_VHT_CAP_TX				BIT(3)
-
-#define	STBC_VHT_ENABLE_RX			BIT(0)
-#define	STBC_VHT_ENABLE_TX			BIT(1)
-#define	STBC_VHT_TEST_TX_ENABLE			BIT(2)
-#define	STBC_VHT_CAP_TX				BIT(3)
-
-extern u8 channel5g[CHANNEL_MAX_NUMBER_5G];
-
-extern u8 channel5g_80m[CHANNEL_MAX_NUMBER_5G_80M];
-
-static inline u8 rtl_read_byte(struct rtl_priv *rtlpriv, u32 addr)
-{
-	return rtlpriv->io.read8_sync(rtlpriv, addr);
-}
-
-static inline u16 rtl_read_word(struct rtl_priv *rtlpriv, u32 addr)
-{
-	return rtlpriv->io.read16_sync(rtlpriv, addr);
-}
-
-static inline u32 rtl_read_dword(struct rtl_priv *rtlpriv, u32 addr)
-{
-	return rtlpriv->io.read32_sync(rtlpriv, addr);
-}
-
-static inline void rtl_write_byte(struct rtl_priv *rtlpriv, u32 addr, u8 val8)
-{
-	rtlpriv->io.write8_async(rtlpriv, addr, val8);
-
-	if (rtlpriv->cfg->write_readback)
-		rtlpriv->io.read8_sync(rtlpriv, addr);
-}
-
-static inline void rtl_write_byte_with_val32(struct ieee80211_hw *hw,
-					     u32 addr, u32 val8)
-{
-	struct rtl_priv *rtlpriv = rtl_priv(hw);
-
-	rtl_write_byte(rtlpriv, addr, (u8)val8);
-}
-
-static inline void rtl_write_word(struct rtl_priv *rtlpriv, u32 addr, u16 val16)
-{
-	rtlpriv->io.write16_async(rtlpriv, addr, val16);
-
-	if (rtlpriv->cfg->write_readback)
-		rtlpriv->io.read16_sync(rtlpriv, addr);
-}
-
-static inline void rtl_write_dword(struct rtl_priv *rtlpriv,
-				   u32 addr, u32 val32)
-{
-	rtlpriv->io.write32_async(rtlpriv, addr, val32);
-
-	if (rtlpriv->cfg->write_readback)
-		rtlpriv->io.read32_sync(rtlpriv, addr);
-}
-
-static inline u32 rtl_get_bbreg(struct ieee80211_hw *hw,
-				u32 regaddr, u32 bitmask)
-{
-	struct rtl_priv *rtlpriv = hw->priv;
-
-	return rtlpriv->cfg->ops->get_bbreg(hw, regaddr, bitmask);
-}
-
-static inline void rtl_set_bbreg(struct ieee80211_hw *hw, u32 regaddr,
-				 u32 bitmask, u32 data)
-{
-	struct rtl_priv *rtlpriv = hw->priv;
-
-	rtlpriv->cfg->ops->set_bbreg(hw, regaddr, bitmask, data);
-}
-
-static inline void rtl_set_bbreg_with_dwmask(struct ieee80211_hw *hw,
-					     u32 regaddr, u32 data)
-{
-	rtl_set_bbreg(hw, regaddr, 0xffffffff, data);
-}
-
-static inline u32 rtl_get_rfreg(struct ieee80211_hw *hw,
-				enum radio_path rfpath, u32 regaddr,
-				u32 bitmask)
-{
-	struct rtl_priv *rtlpriv = hw->priv;
-
-	return rtlpriv->cfg->ops->get_rfreg(hw, rfpath, regaddr, bitmask);
-}
-
-static inline void rtl_set_rfreg(struct ieee80211_hw *hw,
-				 enum radio_path rfpath, u32 regaddr,
-				 u32 bitmask, u32 data)
-{
-	struct rtl_priv *rtlpriv = hw->priv;
-
-	rtlpriv->cfg->ops->set_rfreg(hw, rfpath, regaddr, bitmask, data);
-}
-
-static inline bool is_hal_stop(struct rtl_hal *rtlhal)
-{
-	return (rtlhal->state == _HAL_STATE_STOP);
-}
-
-static inline void set_hal_start(struct rtl_hal *rtlhal)
-{
-	rtlhal->state = _HAL_STATE_START;
-}
-
-static inline void set_hal_stop(struct rtl_hal *rtlhal)
-{
-	rtlhal->state = _HAL_STATE_STOP;
-}
-
-static inline u8 get_rf_type(struct rtl_phy *rtlphy)
-{
-	return rtlphy->rf_type;
-}
-
-static inline struct ieee80211_hdr *rtl_get_hdr(struct sk_buff *skb)
-{
-	return (struct ieee80211_hdr *)(skb->data);
-}
-
-static inline __le16 rtl_get_fc(struct sk_buff *skb)
-{
-	return rtl_get_hdr(skb)->frame_control;
-}
-
-static inline u16 rtl_get_tid_h(struct ieee80211_hdr *hdr)
-{
-	return (ieee80211_get_qos_ctl(hdr))[0] & IEEE80211_QOS_CTL_TID_MASK;
-}
-
-static inline u16 rtl_get_tid(struct sk_buff *skb)
-{
-	return rtl_get_tid_h(rtl_get_hdr(skb));
-}
-
-static inline struct ieee80211_sta *get_sta(struct ieee80211_hw *hw,
-					    struct ieee80211_vif *vif,
-					    const u8 *bssid)
-{
-	return ieee80211_find_sta(vif, bssid);
-}
-
-static inline struct ieee80211_sta *rtl_find_sta(struct ieee80211_hw *hw,
-						 u8 *mac_addr)
-{
-	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
-
-	return ieee80211_find_sta(mac->vif, mac_addr);
-}
-
-#endif