aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/ar9003_mci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ar9003_mci.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_mci.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mci.c b/drivers/net/wireless/ath/ath9k/ar9003_mci.c
index b2e39e8a21b5..8dbb60b53f1a 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_mci.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_mci.c
@@ -1027,6 +1027,7 @@ void ar9003_mci_2g5g_switch(struct ath_hw *ah, bool force)
1027 1027
1028 if (!(mci->config & ATH_MCI_CONFIG_DISABLE_OSLA)) 1028 if (!(mci->config & ATH_MCI_CONFIG_DISABLE_OSLA))
1029 ar9003_mci_osla_setup(ah, true); 1029 ar9003_mci_osla_setup(ah, true);
1030 REG_WRITE(ah, AR_SELFGEN_MASK, 0x02);
1030 } else { 1031 } else {
1031 ar9003_mci_send_lna_take(ah, true); 1032 ar9003_mci_send_lna_take(ah, true);
1032 udelay(5); 1033 udelay(5);
@@ -1235,6 +1236,10 @@ u32 ar9003_mci_state(struct ath_hw *ah, u32 state_type)
1235 case MCI_STATE_NEED_FTP_STOMP: 1236 case MCI_STATE_NEED_FTP_STOMP:
1236 value = !(mci->config & ATH_MCI_CONFIG_DISABLE_FTP_STOMP); 1237 value = !(mci->config & ATH_MCI_CONFIG_DISABLE_FTP_STOMP);
1237 break; 1238 break;
1239 case MCI_STATE_NEED_FLUSH_BT_INFO:
1240 value = (!mci->unhalt_bt_gpm && mci->need_flush_btinfo) ? 1 : 0;
1241 mci->need_flush_btinfo = false;
1242 break;
1238 default: 1243 default:
1239 break; 1244 break;
1240 } 1245 }
@@ -1284,7 +1289,7 @@ void ar9003_mci_set_power_awake(struct ath_hw *ah)
1284 } 1289 }
1285 REG_WRITE(ah, AR_DIAG_SW, (diag_sw | BIT(27) | BIT(19) | BIT(18))); 1290 REG_WRITE(ah, AR_DIAG_SW, (diag_sw | BIT(27) | BIT(19) | BIT(18)));
1286 lna_ctrl = REG_READ(ah, AR_OBS_BUS_CTRL) & 0x3; 1291 lna_ctrl = REG_READ(ah, AR_OBS_BUS_CTRL) & 0x3;
1287 bt_sleep = REG_READ(ah, AR_MCI_RX_STATUS) & AR_MCI_RX_REMOTE_SLEEP; 1292 bt_sleep = MS(REG_READ(ah, AR_MCI_RX_STATUS), AR_MCI_RX_REMOTE_SLEEP);
1288 1293
1289 REG_WRITE(ah, AR_BTCOEX_CTRL2, btcoex_ctrl2); 1294 REG_WRITE(ah, AR_BTCOEX_CTRL2, btcoex_ctrl2);
1290 REG_WRITE(ah, AR_DIAG_SW, diag_sw); 1295 REG_WRITE(ah, AR_DIAG_SW, diag_sw);