Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next
This commit is contained in:
@@ -1137,7 +1137,8 @@ done:
|
||||
static int iwlagn_mac_remain_on_channel(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_channel *channel,
|
||||
int duration)
|
||||
int duration,
|
||||
enum ieee80211_roc_type type)
|
||||
{
|
||||
struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
|
||||
struct iwl_rxon_context *ctx = &priv->contexts[IWL_RXON_CTX_PAN];
|
||||
|
@@ -418,7 +418,8 @@ int iwlagn_tx_skb(struct iwl_priv *priv,
|
||||
" Tx flags = 0x%08x, agg.state = %d",
|
||||
info->flags, tid_data->agg.state);
|
||||
IWL_ERR(priv, "sta_id = %d, tid = %d seq_num = %d",
|
||||
sta_id, tid, SEQ_TO_SN(tid_data->seq_number));
|
||||
sta_id, tid,
|
||||
IEEE80211_SEQ_TO_SN(tid_data->seq_number));
|
||||
goto drop_unlock_sta;
|
||||
}
|
||||
|
||||
@@ -569,7 +570,7 @@ int iwlagn_tx_agg_stop(struct iwl_priv *priv, struct ieee80211_vif *vif,
|
||||
return 0;
|
||||
}
|
||||
|
||||
tid_data->agg.ssn = SEQ_TO_SN(tid_data->seq_number);
|
||||
tid_data->agg.ssn = IEEE80211_SEQ_TO_SN(tid_data->seq_number);
|
||||
|
||||
/* There are still packets for this RA / TID in the HW */
|
||||
if (!test_bit(txq_id, priv->agg_q_alloc)) {
|
||||
@@ -651,7 +652,7 @@ int iwlagn_tx_agg_start(struct iwl_priv *priv, struct ieee80211_vif *vif,
|
||||
|
||||
spin_lock_bh(&priv->sta_lock);
|
||||
tid_data = &priv->tid_data[sta_id][tid];
|
||||
tid_data->agg.ssn = SEQ_TO_SN(tid_data->seq_number);
|
||||
tid_data->agg.ssn = IEEE80211_SEQ_TO_SN(tid_data->seq_number);
|
||||
tid_data->agg.txq_id = txq_id;
|
||||
|
||||
*ssn = tid_data->agg.ssn;
|
||||
@@ -911,7 +912,7 @@ static void iwlagn_count_agg_tx_err_status(struct iwl_priv *priv, u16 status)
|
||||
static inline u32 iwlagn_get_scd_ssn(struct iwlagn_tx_resp *tx_resp)
|
||||
{
|
||||
return le32_to_cpup((__le32 *)&tx_resp->status +
|
||||
tx_resp->frame_count) & MAX_SN;
|
||||
tx_resp->frame_count) & IEEE80211_MAX_SN;
|
||||
}
|
||||
|
||||
static void iwl_rx_reply_tx_agg(struct iwl_priv *priv,
|
||||
@@ -1148,7 +1149,7 @@ int iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_cmd_buffer *rxb,
|
||||
|
||||
if (tx_resp->frame_count == 1) {
|
||||
u16 next_reclaimed = le16_to_cpu(tx_resp->seq_ctl);
|
||||
next_reclaimed = SEQ_TO_SN(next_reclaimed + 0x10);
|
||||
next_reclaimed = IEEE80211_SEQ_TO_SN(next_reclaimed + 0x10);
|
||||
|
||||
if (is_agg) {
|
||||
/* If this is an aggregation queue, we can rely on the
|
||||
|
@@ -114,9 +114,6 @@
|
||||
* completely agnostic to these differences.
|
||||
* The transport does provide helper functionnality (i.e. SYNC / ASYNC mode),
|
||||
*/
|
||||
#define SEQ_TO_SN(seq) (((seq) & IEEE80211_SCTL_SEQ) >> 4)
|
||||
#define SN_TO_SEQ(ssn) (((ssn) << 4) & IEEE80211_SCTL_SEQ)
|
||||
#define MAX_SN ((IEEE80211_SCTL_SEQ) >> 4)
|
||||
#define SEQ_TO_QUEUE(s) (((s) >> 8) & 0x1f)
|
||||
#define QUEUE_TO_SEQ(q) (((q) & 0x1f) << 8)
|
||||
#define SEQ_TO_INDEX(s) ((s) & 0xff)
|
||||
|
@@ -1139,7 +1139,8 @@ static void iwl_mvm_mac_update_tkip_key(struct ieee80211_hw *hw,
|
||||
static int iwl_mvm_roc(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_channel *channel,
|
||||
int duration)
|
||||
int duration,
|
||||
enum ieee80211_roc_type type)
|
||||
{
|
||||
struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
|
||||
struct cfg80211_chan_def chandef;
|
||||
@@ -1150,8 +1151,8 @@ static int iwl_mvm_roc(struct ieee80211_hw *hw,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
IWL_DEBUG_MAC80211(mvm, "enter (%d, %d)\n", channel->hw_value,
|
||||
duration);
|
||||
IWL_DEBUG_MAC80211(mvm, "enter (%d, %d, %d)\n", channel->hw_value,
|
||||
duration, type);
|
||||
|
||||
mutex_lock(&mvm->mutex);
|
||||
|
||||
|
@@ -733,7 +733,7 @@ int iwl_mvm_sta_tx_agg_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||
|
||||
spin_lock_bh(&mvmsta->lock);
|
||||
tid_data = &mvmsta->tid_data[tid];
|
||||
tid_data->ssn = SEQ_TO_SN(tid_data->seq_number);
|
||||
tid_data->ssn = IEEE80211_SEQ_TO_SN(tid_data->seq_number);
|
||||
tid_data->txq_id = txq_id;
|
||||
*ssn = tid_data->ssn;
|
||||
|
||||
@@ -836,7 +836,7 @@ int iwl_mvm_sta_tx_agg_stop(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||
|
||||
switch (tid_data->state) {
|
||||
case IWL_AGG_ON:
|
||||
tid_data->ssn = SEQ_TO_SN(tid_data->seq_number);
|
||||
tid_data->ssn = IEEE80211_SEQ_TO_SN(tid_data->seq_number);
|
||||
|
||||
IWL_DEBUG_TX_QUEUES(mvm,
|
||||
"ssn = %d, next_recl = %d\n",
|
||||
|
@@ -637,7 +637,7 @@ static void iwl_mvm_rx_tx_cmd_single(struct iwl_mvm *mvm,
|
||||
next_reclaimed = ssn;
|
||||
} else {
|
||||
/* The next packet to be reclaimed is the one after this one */
|
||||
next_reclaimed = SEQ_TO_SN(seq_ctl + 0x10);
|
||||
next_reclaimed = IEEE80211_SEQ_TO_SN(seq_ctl + 0x10);
|
||||
}
|
||||
|
||||
IWL_DEBUG_TX_REPLY(mvm,
|
||||
|
@@ -1612,7 +1612,7 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb,
|
||||
* Check here that the packets are in the right place on the ring.
|
||||
*/
|
||||
#ifdef CONFIG_IWLWIFI_DEBUG
|
||||
wifi_seq = SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
|
||||
wifi_seq = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
|
||||
WARN_ONCE((iwl_read_prph(trans, SCD_AGGR_SEL) & BIT(txq_id)) &&
|
||||
((wifi_seq & 0xff) != q->write_ptr),
|
||||
"Q: %d WiFi Seq %d tfdNum %d",
|
||||
|
Reference in New Issue
Block a user