|
@@ -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;
|