iwlwifi: mvm: Add number of DTIMs to skip
New host-device API provides the ability to set the number of DTIMs to skip. Add this parameter to the command and set it (to a sane default value.) Signed-off-by: Alexander Bondar <alexander.bondar@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
4270b871a2
commit
5b1dbfc3aa
|
@ -101,19 +101,19 @@ enum iwl_power_flags {
|
|||
* @tx_data_timeout: Minimum time (usec) from last Tx packet for AM to
|
||||
* PSM transition - legacy PM
|
||||
* @sleep_interval: not in use
|
||||
* @keep_alive_beacons: not in use
|
||||
* @num_skip_dtim: Number of DTIMs to skip if Skip over DTIM flag is set
|
||||
* @lprx_rssi_threshold: Signal strength up to which LP RX can be enabled.
|
||||
* Default: 80dbm
|
||||
*/
|
||||
struct iwl_powertable_cmd {
|
||||
/* PM_POWER_TABLE_CMD_API_S_VER_5 */
|
||||
/* PM_POWER_TABLE_CMD_API_S_VER_6 */
|
||||
__le16 flags;
|
||||
u8 keep_alive_seconds;
|
||||
u8 debug_flags;
|
||||
__le32 rx_data_timeout;
|
||||
__le32 tx_data_timeout;
|
||||
__le32 sleep_interval[IWL_POWER_VEC_SIZE];
|
||||
__le32 keep_alive_beacons;
|
||||
__le32 num_skip_dtim;
|
||||
__le32 lprx_rssi_threshold;
|
||||
} __packed;
|
||||
|
||||
|
|
|
@ -91,6 +91,9 @@ static void iwl_mvm_power_log(struct iwl_mvm *mvm,
|
|||
le32_to_cpu(cmd->tx_data_timeout));
|
||||
IWL_DEBUG_POWER(mvm, "LP RX RSSI threshold = %u\n",
|
||||
cmd->lprx_rssi_threshold);
|
||||
if (cmd->flags & cpu_to_le16(POWER_FLAGS_SKIP_OVER_DTIM_MSK))
|
||||
IWL_DEBUG_POWER(mvm, "DTIMs to skip = %u\n",
|
||||
le32_to_cpu(cmd->num_skip_dtim));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -135,8 +138,10 @@ void iwl_mvm_power_build_cmd(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
|||
|
||||
/* Check skip over DTIM conditions */
|
||||
if (!radar_detect && (dtimper <= 10) &&
|
||||
(iwlmvm_mod_params.power_scheme == IWL_POWER_SCHEME_LP))
|
||||
(iwlmvm_mod_params.power_scheme == IWL_POWER_SCHEME_LP)) {
|
||||
cmd->flags |= cpu_to_le16(POWER_FLAGS_SKIP_OVER_DTIM_MSK);
|
||||
cmd->num_skip_dtim = cpu_to_le32(2);
|
||||
}
|
||||
|
||||
/* Check that keep alive period is at least 3 * DTIM */
|
||||
dtimper_msec = dtimper * vif->bss_conf.beacon_int;
|
||||
|
|
Loading…
Reference in New Issue