iwlwifi: follow main beacon interval
It is necessary that the PAN context always use the same beacon interval as the BSS context unless it is in dual-station mode, ie. the PAN context is a station as well, so implement that. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
This commit is contained in:
parent
b01efe434b
commit
bde4530e9d
|
@ -525,9 +525,16 @@ int iwl_send_rxon_timing(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
|
|||
*/
|
||||
ctx->timing.atim_window = 0;
|
||||
|
||||
beacon_int = iwl_adjust_beacon_interval(beacon_int,
|
||||
if (ctx->ctxid == IWL_RXON_CTX_PAN &&
|
||||
(!ctx->vif || ctx->vif->type != NL80211_IFTYPE_STATION)) {
|
||||
ctx->timing.beacon_interval =
|
||||
priv->contexts[IWL_RXON_CTX_BSS].timing.beacon_interval;
|
||||
beacon_int = le16_to_cpu(ctx->timing.beacon_interval);
|
||||
} else {
|
||||
beacon_int = iwl_adjust_beacon_interval(beacon_int,
|
||||
priv->hw_params.max_beacon_itrvl * TIME_UNIT);
|
||||
ctx->timing.beacon_interval = cpu_to_le16(beacon_int);
|
||||
ctx->timing.beacon_interval = cpu_to_le16(beacon_int);
|
||||
}
|
||||
|
||||
tsf = priv->timestamp; /* tsf is modifed by do_div: copy it */
|
||||
interval_tm = beacon_int * TIME_UNIT;
|
||||
|
|
Loading…
Reference in New Issue