ath11k: enable idle power save mode
Host sends wmi command to allow hardware enter idle power save mode in ath11k_mac_op_start function. hw parameter idle_ps indicates whether idle power save is supported. Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1 Signed-off-by: Carl Huang <cjhuang@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/1601544890-13450-8-git-send-email-kvalo@codeaurora.org
This commit is contained in:
parent
9b309970c4
commit
c83c500b55
@ -64,6 +64,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
|
||||
BIT(NL80211_IFTYPE_MESH_POINT),
|
||||
.supports_monitor = true,
|
||||
.supports_shadow_regs = false,
|
||||
.idle_ps = false,
|
||||
},
|
||||
{
|
||||
.hw_rev = ATH11K_HW_IPQ6018_HW10,
|
||||
@ -100,6 +101,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
|
||||
BIT(NL80211_IFTYPE_MESH_POINT),
|
||||
.supports_monitor = true,
|
||||
.supports_shadow_regs = false,
|
||||
.idle_ps = false,
|
||||
},
|
||||
{
|
||||
.name = "qca6390 hw2.0",
|
||||
@ -135,6 +137,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
|
||||
BIT(NL80211_IFTYPE_AP),
|
||||
.supports_monitor = false,
|
||||
.supports_shadow_regs = true,
|
||||
.idle_ps = true,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -160,6 +160,7 @@ struct ath11k_hw_params {
|
||||
u16 interface_modes;
|
||||
bool supports_monitor;
|
||||
bool supports_shadow_regs;
|
||||
bool idle_ps;
|
||||
};
|
||||
|
||||
struct ath11k_hw_ops {
|
||||
|
@ -4208,6 +4208,15 @@ static int ath11k_mac_op_start(struct ieee80211_hw *hw)
|
||||
rcu_assign_pointer(ab->pdevs_active[ar->pdev_idx],
|
||||
&ab->pdevs[ar->pdev_idx]);
|
||||
|
||||
/* allow device to enter IMPS */
|
||||
if (ab->hw_params.idle_ps) {
|
||||
ret = ath11k_wmi_pdev_set_param(ar, WMI_PDEV_PARAM_IDLE_PS_CONFIG,
|
||||
1, pdev->pdev_id);
|
||||
if (ret) {
|
||||
ath11k_err(ab, "failed to enable idle ps: %d\n", ret);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
err:
|
||||
|
Loading…
x
Reference in New Issue
Block a user