|
|
@@ -844,6 +844,13 @@ static int iwl_mvm_enter_d0i3(struct iwl_op_mode *op_mode)
|
|
|
{
|
|
|
struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode);
|
|
|
u32 flags = CMD_ASYNC | CMD_HIGH_PRIO | CMD_SEND_IN_IDLE;
|
|
|
+ int ret;
|
|
|
+ struct iwl_wowlan_config_cmd wowlan_config_cmd = {
|
|
|
+ .wakeup_filter = cpu_to_le32(IWL_WOWLAN_WAKEUP_RX_FRAME |
|
|
|
+ IWL_WOWLAN_WAKEUP_BEACON_MISS |
|
|
|
+ IWL_WOWLAN_WAKEUP_LINK_CHANGE |
|
|
|
+ IWL_WOWLAN_WAKEUP_BCN_FILTERING),
|
|
|
+ };
|
|
|
struct iwl_d3_manager_config d3_cfg_cmd = {
|
|
|
.min_sleep_time = cpu_to_le32(1000),
|
|
|
};
|
|
|
@@ -855,6 +862,12 @@ static int iwl_mvm_enter_d0i3(struct iwl_op_mode *op_mode)
|
|
|
iwl_mvm_enter_d0i3_iterator,
|
|
|
mvm);
|
|
|
|
|
|
+ ret = iwl_mvm_send_cmd_pdu(mvm, WOWLAN_CONFIGURATION, flags,
|
|
|
+ sizeof(wowlan_config_cmd),
|
|
|
+ &wowlan_config_cmd);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
return iwl_mvm_send_cmd_pdu(mvm, D3_CONFIG_CMD,
|
|
|
flags | CMD_MAKE_TRANS_IDLE,
|
|
|
sizeof(d3_cfg_cmd), &d3_cfg_cmd);
|