Commit cb180840 authored by John W. Linville's avatar John W. Linville
parents 5631becb 8eb38710
...@@ -62,8 +62,7 @@ ...@@ -62,8 +62,7 @@
#ifndef __iwl_drv_h__ #ifndef __iwl_drv_h__
#define __iwl_drv_h__ #define __iwl_drv_h__
#include <linux/export.h>
#include <linux/module.h>
/* for all modules */ /* for all modules */
#define DRV_NAME "iwlwifi" #define DRV_NAME "iwlwifi"
......
...@@ -413,6 +413,9 @@ static int iwl_phy_db_send_all_channel_groups( ...@@ -413,6 +413,9 @@ static int iwl_phy_db_send_all_channel_groups(
if (!entry) if (!entry)
return -EINVAL; return -EINVAL;
if (WARN_ON_ONCE(!entry->size))
continue;
/* Send the requested PHY DB section */ /* Send the requested PHY DB section */
err = iwl_send_phy_db_cmd(phy_db, err = iwl_send_phy_db_cmd(phy_db,
type, type,
......
...@@ -193,14 +193,11 @@ static void iwl_mvm_mac_iface_iterator(void *_data, u8 *mac, ...@@ -193,14 +193,11 @@ static void iwl_mvm_mac_iface_iterator(void *_data, u8 *mac,
u32 iwl_mvm_mac_get_queues_mask(struct iwl_mvm *mvm, u32 iwl_mvm_mac_get_queues_mask(struct iwl_mvm *mvm,
struct ieee80211_vif *vif) struct ieee80211_vif *vif)
{ {
u32 qmask, ac; u32 qmask = 0, ac;
if (vif->type == NL80211_IFTYPE_P2P_DEVICE) if (vif->type == NL80211_IFTYPE_P2P_DEVICE)
return BIT(IWL_MVM_OFFCHANNEL_QUEUE); return BIT(IWL_MVM_OFFCHANNEL_QUEUE);
qmask = (vif->cab_queue != IEEE80211_INVAL_HW_QUEUE) ?
BIT(vif->cab_queue) : 0;
for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) for (ac = 0; ac < IEEE80211_NUM_ACS; ac++)
if (vif->hw_queue[ac] != IEEE80211_INVAL_HW_QUEUE) if (vif->hw_queue[ac] != IEEE80211_INVAL_HW_QUEUE)
qmask |= BIT(vif->hw_queue[ac]); qmask |= BIT(vif->hw_queue[ac]);
......
...@@ -81,12 +81,12 @@ ...@@ -81,12 +81,12 @@
static const struct ieee80211_iface_limit iwl_mvm_limits[] = { static const struct ieee80211_iface_limit iwl_mvm_limits[] = {
{ {
.max = 1, .max = 1,
.types = BIT(NL80211_IFTYPE_STATION) | .types = BIT(NL80211_IFTYPE_STATION),
BIT(NL80211_IFTYPE_AP),
}, },
{ {
.max = 1, .max = 1,
.types = BIT(NL80211_IFTYPE_P2P_CLIENT) | .types = BIT(NL80211_IFTYPE_AP) |
BIT(NL80211_IFTYPE_P2P_CLIENT) |
BIT(NL80211_IFTYPE_P2P_GO), BIT(NL80211_IFTYPE_P2P_GO),
}, },
{ {
...@@ -651,8 +651,7 @@ static void iwl_mvm_prepare_mac_removal(struct iwl_mvm *mvm, ...@@ -651,8 +651,7 @@ static void iwl_mvm_prepare_mac_removal(struct iwl_mvm *mvm,
* By now, all the AC queues are empty. The AGG queues are * By now, all the AC queues are empty. The AGG queues are
* empty too. We already got all the Tx responses for all the * empty too. We already got all the Tx responses for all the
* packets in the queues. The drain work can have been * packets in the queues. The drain work can have been
* triggered. Flush it. This work item takes the mutex, so kill * triggered. Flush it.
* it before we take it.
*/ */
flush_work(&mvm->sta_drained_wk); flush_work(&mvm->sta_drained_wk);
} }
......
...@@ -689,16 +689,11 @@ void iwl_mvm_bt_coex_vif_assoc(struct iwl_mvm *mvm, struct ieee80211_vif *vif); ...@@ -689,16 +689,11 @@ void iwl_mvm_bt_coex_vif_assoc(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
void void
iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif, iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif,
struct iwl_beacon_filter_cmd *cmd); struct iwl_beacon_filter_cmd *cmd);
int iwl_mvm_dbgfs_set_fw_dbg_log(struct iwl_mvm *mvm);
#else #else
static inline void static inline void
iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif, iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif,
struct iwl_beacon_filter_cmd *cmd) struct iwl_beacon_filter_cmd *cmd)
{} {}
static inline int iwl_mvm_dbgfs_set_fw_dbg_log(struct iwl_mvm *mvm)
{
return 0;
}
#endif #endif
int iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm, int iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm,
struct ieee80211_vif *vif); struct ieee80211_vif *vif);
......
...@@ -229,9 +229,6 @@ int iwl_mvm_add_sta(struct iwl_mvm *mvm, ...@@ -229,9 +229,6 @@ int iwl_mvm_add_sta(struct iwl_mvm *mvm,
if (vif->hw_queue[i] != IEEE80211_INVAL_HW_QUEUE) if (vif->hw_queue[i] != IEEE80211_INVAL_HW_QUEUE)
mvm_sta->tfd_queue_msk |= BIT(vif->hw_queue[i]); mvm_sta->tfd_queue_msk |= BIT(vif->hw_queue[i]);
if (vif->cab_queue != IEEE80211_INVAL_HW_QUEUE)
mvm_sta->tfd_queue_msk |= BIT(vif->cab_queue);
/* for HW restart - need to reset the seq_number etc... */ /* for HW restart - need to reset the seq_number etc... */
memset(mvm_sta->tid_data, 0, sizeof(mvm_sta->tid_data)); memset(mvm_sta->tid_data, 0, sizeof(mvm_sta->tid_data));
...@@ -1292,17 +1289,11 @@ void iwl_mvm_sta_modify_ps_wake(struct iwl_mvm *mvm, ...@@ -1292,17 +1289,11 @@ void iwl_mvm_sta_modify_ps_wake(struct iwl_mvm *mvm,
struct iwl_mvm_add_sta_cmd cmd = { struct iwl_mvm_add_sta_cmd cmd = {
.add_modify = STA_MODE_MODIFY, .add_modify = STA_MODE_MODIFY,
.sta_id = mvmsta->sta_id, .sta_id = mvmsta->sta_id,
.modify_mask = STA_MODIFY_SLEEPING_STA_TX_COUNT, .station_flags_msk = cpu_to_le32(STA_FLG_PS),
.sleep_state_flags = cpu_to_le16(STA_SLEEP_STATE_AWAKE),
.mac_id_n_color = cpu_to_le32(mvmsta->mac_id_n_color), .mac_id_n_color = cpu_to_le32(mvmsta->mac_id_n_color),
}; };
int ret; int ret;
/*
* Same modify mask for sleep_tx_count and sleep_state_flags but this
* should be fine since if we set the STA as "awake", then
* sleep_tx_count is not relevant.
*/
ret = iwl_mvm_send_cmd_pdu(mvm, ADD_STA, CMD_ASYNC, sizeof(cmd), &cmd); ret = iwl_mvm_send_cmd_pdu(mvm, ADD_STA, CMD_ASYNC, sizeof(cmd), &cmd);
if (ret) if (ret)
IWL_ERR(mvm, "Failed to send ADD_STA command (%d)\n", ret); IWL_ERR(mvm, "Failed to send ADD_STA command (%d)\n", ret);
......
...@@ -250,7 +250,6 @@ enum iwl_mvm_agg_state { ...@@ -250,7 +250,6 @@ enum iwl_mvm_agg_state {
* the first packet to be sent in legacy HW queue in Tx AGG stop flow. * the first packet to be sent in legacy HW queue in Tx AGG stop flow.
* Basically when next_reclaimed reaches ssn, we can tell mac80211 that * Basically when next_reclaimed reaches ssn, we can tell mac80211 that
* we are ready to finish the Tx AGG stop / start flow. * we are ready to finish the Tx AGG stop / start flow.
* @wait_for_ba: Expect block-ack before next Tx reply
*/ */
struct iwl_mvm_tid_data { struct iwl_mvm_tid_data {
u16 seq_number; u16 seq_number;
...@@ -260,7 +259,6 @@ struct iwl_mvm_tid_data { ...@@ -260,7 +259,6 @@ struct iwl_mvm_tid_data {
enum iwl_mvm_agg_state state; enum iwl_mvm_agg_state state;
u16 txq_id; u16 txq_id;
u16 ssn; u16 ssn;
bool wait_for_ba;
}; };
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment