提交 b39adc63 编写于 作者: S Sujith Manoharan 提交者: Kalle Valo

ath9k: Check MCI PowerSave state

The power save state of MCI has to be disabled
when enabling WoW sleep, check this properly.
ar9003_mci_state() doesn't handle MCI_STATE_GET_WLAN_PS_STATE
right now, but this will be done later when proper
support for MCI/PS is added.
Signed-off-by: NSujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
上级 ff6f0c03
......@@ -188,6 +188,13 @@ enum mci_bt_state {
MCI_BT_CAL
};
enum mci_ps_state {
MCI_PS_DISABLE,
MCI_PS_ENABLE,
MCI_PS_ENABLE_OFF,
MCI_PS_ENABLE_ON
};
/* Type of state query */
enum mci_state_type {
MCI_STATE_ENABLE,
......
......@@ -20,11 +20,25 @@
#include "reg_wow.h"
#include "hw-ops.h"
static void ath9k_hw_set_sta_powersave(struct ath_hw *ah)
{
if (!ath9k_hw_mci_is_enabled(ah))
goto set;
/*
* If MCI is being used, set PWR_SAV only when MCI's
* PS state is disabled.
*/
if (ar9003_mci_state(ah, MCI_STATE_GET_WLAN_PS_STATE) != MCI_PS_DISABLE)
return;
set:
REG_SET_BIT(ah, AR_STA_ID1, AR_STA_ID1_PWR_SAV);
}
static void ath9k_hw_set_powermode_wow_sleep(struct ath_hw *ah)
{
struct ath_common *common = ath9k_hw_common(ah);
REG_SET_BIT(ah, AR_STA_ID1, AR_STA_ID1_PWR_SAV);
ath9k_hw_set_sta_powersave(ah);
/* set rx disable bit */
REG_WRITE(ah, AR_CR, AR_CR_RXD);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册