|
@@ -843,18 +843,35 @@ static void btc8821a1ant_set_fw_ps_tdma(struct btc_coexist *btcoexist, u8 byte1,
|
|
|
{
|
|
|
struct rtl_priv *rtlpriv = btcoexist->adapter;
|
|
|
u8 h2c_parameter[5] = {0};
|
|
|
+ u8 real_byte1 = byte1, real_byte5 = byte5;
|
|
|
+ bool ap_enable = false;
|
|
|
|
|
|
- h2c_parameter[0] = byte1;
|
|
|
+ btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE,
|
|
|
+ &ap_enable);
|
|
|
+
|
|
|
+ if (ap_enable) {
|
|
|
+ if (byte1 & BIT4 && !(byte1 & BIT5)) {
|
|
|
+ RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
|
|
+ "[BTCoex], FW for 1Ant AP mode\n");
|
|
|
+ real_byte1 &= ~BIT4;
|
|
|
+ real_byte1 |= BIT5;
|
|
|
+
|
|
|
+ real_byte5 |= BIT5;
|
|
|
+ real_byte5 &= ~BIT6;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ h2c_parameter[0] = real_byte1;
|
|
|
h2c_parameter[1] = byte2;
|
|
|
h2c_parameter[2] = byte3;
|
|
|
h2c_parameter[3] = byte4;
|
|
|
- h2c_parameter[4] = byte5;
|
|
|
+ h2c_parameter[4] = real_byte5;
|
|
|
|
|
|
- coex_dm->ps_tdma_para[0] = byte1;
|
|
|
+ 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] = byte5;
|
|
|
+ coex_dm->ps_tdma_para[4] = real_byte5;
|
|
|
|
|
|
RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD,
|
|
|
"[BTCoex], PS-TDMA H2C cmd =0x%x%08x\n",
|