--- /dev/null
+From b789e3fe7047296be0ccdbb7ceb0b58856053572 Mon Sep 17 00:00:00 2001
+From: Guo-Feng Fan <vincent_fann@realtek.com>
+Date: Wed, 22 Sep 2021 10:36:36 +0800
+Subject: rtw88: 8821c: support RFE type4 wifi NIC
+
+From: Guo-Feng Fan <vincent_fann@realtek.com>
+
+commit b789e3fe7047296be0ccdbb7ceb0b58856053572 upstream.
+
+RFE type4 is a new NIC which has one RF antenna shares with BT.
+RFE type4 HW is the same as RFE type2 but attaching antenna to
+aux antenna connector.
+
+RFE type2 attach antenna to main antenna connector.
+Load the same parameter as RFE type2 when initializing NIC.
+
+Signed-off-by: Guo-Feng Fan <vincent_fann@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Link: https://lore.kernel.org/r/20210922023637.9357-1-pkshih@realtek.com
+Signed-off-by: Meng Tang <tangmeng@uniontech.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/wireless/realtek/rtw88/rtw8821c.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+@@ -304,7 +304,8 @@ static void rtw8821c_set_channel_rf(stru
+ if (channel <= 14) {
+ if (rtwdev->efuse.rfe_option == 0)
+ rtw8821c_switch_rf_set(rtwdev, SWITCH_TO_WLG);
+- else if (rtwdev->efuse.rfe_option == 2)
++ else if (rtwdev->efuse.rfe_option == 2 ||
++ rtwdev->efuse.rfe_option == 4)
+ rtw8821c_switch_rf_set(rtwdev, SWITCH_TO_BTG);
+ rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTDBG, BIT(6), 0x1);
+ rtw_write_rf(rtwdev, RF_PATH_A, 0x64, 0xf, 0xf);
+@@ -777,6 +778,15 @@ static void rtw8821c_coex_cfg_ant_switch
+ if (switch_status == coex_dm->cur_switch_status)
+ return;
+
++ if (coex_rfe->wlg_at_btg) {
++ ctrl_type = COEX_SWITCH_CTRL_BY_BBSW;
++
++ if (coex_rfe->ant_switch_polarity)
++ pos_type = COEX_SWITCH_TO_WLA;
++ else
++ pos_type = COEX_SWITCH_TO_WLG_BT;
++ }
++
+ coex_dm->cur_switch_status = switch_status;
+
+ if (coex_rfe->ant_switch_diversity &&
+@@ -1502,6 +1512,7 @@ static const struct rtw_intf_phy_para_ta
+ static const struct rtw_rfe_def rtw8821c_rfe_defs[] = {
+ [0] = RTW_DEF_RFE(8821c, 0, 0),
+ [2] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
++ [4] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
+ };
+
+ static struct rtw_hw_reg rtw8821c_dig[] = {
--- /dev/null
+From e109e3617e5d563b431a52e6e2f07f0fc65a93ae Mon Sep 17 00:00:00 2001
+From: Ping-Ke Shih <pkshih@realtek.com>
+Date: Thu, 6 Jan 2022 20:47:39 -0600
+Subject: rtw88: rtw8821c: enable rfe 6 devices
+
+From: Ping-Ke Shih <pkshih@realtek.com>
+
+commit e109e3617e5d563b431a52e6e2f07f0fc65a93ae upstream.
+
+Ping-Ke Shih answered[1] a question for a user about an rtl8821ce device that
+reported RFE 6, which the driver did not support. Ping-Ke suggested a possible
+fix, but the user never reported back.
+
+A second user discovered the above thread and tested the proposed fix.
+Accordingly, I am pushing this change, even though I am not the author.
+
+[1] https://lore.kernel.org/linux-wireless/3f5e2f6eac344316b5dd518ebfea2f95@realtek.com/
+
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Reported-and-tested-by: masterzorag <masterzorag@gmail.com>
+Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
+Signed-off-by: Kalle Valo <kvalo@kernel.org>
+Link: https://lore.kernel.org/r/20220107024739.20967-1-Larry.Finger@lwfinger.net
+Signed-off-by: Meng Tang <tangmeng@uniontech.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/wireless/realtek/rtw88/rtw8821c.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+@@ -1513,6 +1513,7 @@ static const struct rtw_rfe_def rtw8821c
+ [0] = RTW_DEF_RFE(8821c, 0, 0),
+ [2] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
+ [4] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
++ [6] = RTW_DEF_RFE(8821c, 0, 0),
+ };
+
+ static struct rtw_hw_reg rtw8821c_dig[] = {