iwlwifi: mvm: add iwl_mvm_sta_from_mac80211
This is just a helper function to go from the mac80211 station struct to our internal one, to later allow us to avoid temporary 'mvmsta' variables. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This commit is contained in:
parent
a7b8b2ca91
commit
5b577a90fb
|
@ -514,7 +514,7 @@ static int iwl_mvm_bt_coex_reduced_txp(struct iwl_mvm *mvm, u8 sta_id,
|
||||||
if (IS_ERR_OR_NULL(sta))
|
if (IS_ERR_OR_NULL(sta))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
mvmsta = (void *)sta->drv_priv;
|
mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
|
|
||||||
/* nothing to do */
|
/* nothing to do */
|
||||||
if (mvmsta->bt_reduced_txpower == enable)
|
if (mvmsta->bt_reduced_txpower == enable)
|
||||||
|
@ -846,7 +846,7 @@ static void iwl_mvm_bt_rssi_iterator(void *_data, u8 *mac,
|
||||||
if (IS_ERR_OR_NULL(sta))
|
if (IS_ERR_OR_NULL(sta))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mvmsta = (void *)sta->drv_priv;
|
mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
|
|
||||||
data->num_bss_ifaces++;
|
data->num_bss_ifaces++;
|
||||||
|
|
||||||
|
@ -917,7 +917,7 @@ void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||||
u16 iwl_mvm_bt_coex_agg_time_limit(struct iwl_mvm *mvm,
|
u16 iwl_mvm_bt_coex_agg_time_limit(struct iwl_mvm *mvm,
|
||||||
struct ieee80211_sta *sta)
|
struct ieee80211_sta *sta)
|
||||||
{
|
{
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
enum iwl_bt_coex_lut_type lut_type;
|
enum iwl_bt_coex_lut_type lut_type;
|
||||||
|
|
||||||
if (le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) <
|
if (le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) <
|
||||||
|
@ -936,7 +936,7 @@ u16 iwl_mvm_bt_coex_agg_time_limit(struct iwl_mvm *mvm,
|
||||||
bool iwl_mvm_bt_coex_is_mimo_allowed(struct iwl_mvm *mvm,
|
bool iwl_mvm_bt_coex_is_mimo_allowed(struct iwl_mvm *mvm,
|
||||||
struct ieee80211_sta *sta)
|
struct ieee80211_sta *sta)
|
||||||
{
|
{
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
|
|
||||||
if (le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) <
|
if (le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) <
|
||||||
BT_HIGH_TRAFFIC)
|
BT_HIGH_TRAFFIC)
|
||||||
|
|
|
@ -1091,7 +1091,7 @@ static void iwl_mvm_mac_sta_notify(struct ieee80211_hw *hw,
|
||||||
struct ieee80211_sta *sta)
|
struct ieee80211_sta *sta)
|
||||||
{
|
{
|
||||||
struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
|
struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case STA_NOTIFY_SLEEP:
|
case STA_NOTIFY_SLEEP:
|
||||||
|
|
|
@ -840,7 +840,7 @@ static const u8 tid_to_ac[] = {
|
||||||
int iwl_mvm_sta_tx_agg_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
int iwl_mvm_sta_tx_agg_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||||
struct ieee80211_sta *sta, u16 tid, u16 *ssn)
|
struct ieee80211_sta *sta, u16 tid, u16 *ssn)
|
||||||
{
|
{
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
struct iwl_mvm_tid_data *tid_data;
|
struct iwl_mvm_tid_data *tid_data;
|
||||||
int txq_id;
|
int txq_id;
|
||||||
|
|
||||||
|
@ -895,7 +895,7 @@ int iwl_mvm_sta_tx_agg_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||||
int iwl_mvm_sta_tx_agg_oper(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
int iwl_mvm_sta_tx_agg_oper(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||||
struct ieee80211_sta *sta, u16 tid, u8 buf_size)
|
struct ieee80211_sta *sta, u16 tid, u8 buf_size)
|
||||||
{
|
{
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
struct iwl_mvm_tid_data *tid_data = &mvmsta->tid_data[tid];
|
struct iwl_mvm_tid_data *tid_data = &mvmsta->tid_data[tid];
|
||||||
int queue, fifo, ret;
|
int queue, fifo, ret;
|
||||||
u16 ssn;
|
u16 ssn;
|
||||||
|
@ -951,7 +951,7 @@ int iwl_mvm_sta_tx_agg_oper(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||||
int iwl_mvm_sta_tx_agg_stop(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
int iwl_mvm_sta_tx_agg_stop(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||||
struct ieee80211_sta *sta, u16 tid)
|
struct ieee80211_sta *sta, u16 tid)
|
||||||
{
|
{
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
struct iwl_mvm_tid_data *tid_data = &mvmsta->tid_data[tid];
|
struct iwl_mvm_tid_data *tid_data = &mvmsta->tid_data[tid];
|
||||||
u16 txq_id;
|
u16 txq_id;
|
||||||
int err;
|
int err;
|
||||||
|
@ -1023,7 +1023,7 @@ int iwl_mvm_sta_tx_agg_stop(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||||
int iwl_mvm_sta_tx_agg_flush(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
int iwl_mvm_sta_tx_agg_flush(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||||
struct ieee80211_sta *sta, u16 tid)
|
struct ieee80211_sta *sta, u16 tid)
|
||||||
{
|
{
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
struct iwl_mvm_tid_data *tid_data = &mvmsta->tid_data[tid];
|
struct iwl_mvm_tid_data *tid_data = &mvmsta->tid_data[tid];
|
||||||
u16 txq_id;
|
u16 txq_id;
|
||||||
enum iwl_mvm_agg_state old_state;
|
enum iwl_mvm_agg_state old_state;
|
||||||
|
@ -1416,7 +1416,7 @@ void iwl_mvm_update_tkip_key(struct iwl_mvm *mvm,
|
||||||
void iwl_mvm_sta_modify_ps_wake(struct iwl_mvm *mvm,
|
void iwl_mvm_sta_modify_ps_wake(struct iwl_mvm *mvm,
|
||||||
struct ieee80211_sta *sta)
|
struct ieee80211_sta *sta)
|
||||||
{
|
{
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
struct iwl_mvm_add_sta_cmd_v6 cmd = {
|
struct iwl_mvm_add_sta_cmd_v6 cmd = {
|
||||||
.add_modify = STA_MODE_MODIFY,
|
.add_modify = STA_MODE_MODIFY,
|
||||||
.sta_id = mvmsta->sta_id,
|
.sta_id = mvmsta->sta_id,
|
||||||
|
@ -1438,7 +1438,7 @@ void iwl_mvm_sta_modify_sleep_tx_count(struct iwl_mvm *mvm,
|
||||||
u16 sleep_state_flags =
|
u16 sleep_state_flags =
|
||||||
(reason == IEEE80211_FRAME_RELEASE_UAPSD) ?
|
(reason == IEEE80211_FRAME_RELEASE_UAPSD) ?
|
||||||
STA_SLEEP_STATE_UAPSD : STA_SLEEP_STATE_PS_POLL;
|
STA_SLEEP_STATE_UAPSD : STA_SLEEP_STATE_PS_POLL;
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
struct iwl_mvm_add_sta_cmd_v6 cmd = {
|
struct iwl_mvm_add_sta_cmd_v6 cmd = {
|
||||||
.add_modify = STA_MODE_MODIFY,
|
.add_modify = STA_MODE_MODIFY,
|
||||||
.sta_id = mvmsta->sta_id,
|
.sta_id = mvmsta->sta_id,
|
||||||
|
|
|
@ -298,6 +298,12 @@ struct iwl_mvm_sta {
|
||||||
bool tt_tx_protection;
|
bool tt_tx_protection;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static inline struct iwl_mvm_sta *
|
||||||
|
iwl_mvm_sta_from_mac80211(struct ieee80211_sta *sta)
|
||||||
|
{
|
||||||
|
return (void *)sta->drv_priv;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct iwl_mvm_int_sta - representation of an internal station (auxiliary or
|
* struct iwl_mvm_int_sta - representation of an internal station (auxiliary or
|
||||||
* broadcast)
|
* broadcast)
|
||||||
|
|
|
@ -388,7 +388,7 @@ static void iwl_mvm_tt_tx_protection(struct iwl_mvm *mvm, bool enable)
|
||||||
lockdep_is_held(&mvm->mutex));
|
lockdep_is_held(&mvm->mutex));
|
||||||
if (IS_ERR_OR_NULL(sta))
|
if (IS_ERR_OR_NULL(sta))
|
||||||
continue;
|
continue;
|
||||||
mvmsta = (void *)sta->drv_priv;
|
mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
if (enable == mvmsta->tt_tx_protection)
|
if (enable == mvmsta->tt_tx_protection)
|
||||||
continue;
|
continue;
|
||||||
err = iwl_mvm_tx_protection(mvm, mvmsta, enable);
|
err = iwl_mvm_tx_protection(mvm, mvmsta, enable);
|
||||||
|
|
|
@ -362,7 +362,7 @@ int iwl_mvm_tx_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
|
||||||
u8 txq_id = info->hw_queue;
|
u8 txq_id = info->hw_queue;
|
||||||
bool is_data_qos = false, is_ampdu = false;
|
bool is_data_qos = false, is_ampdu = false;
|
||||||
|
|
||||||
mvmsta = (void *)sta->drv_priv;
|
mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
fc = hdr->frame_control;
|
fc = hdr->frame_control;
|
||||||
|
|
||||||
if (WARN_ON_ONCE(!mvmsta))
|
if (WARN_ON_ONCE(!mvmsta))
|
||||||
|
@ -433,7 +433,7 @@ drop:
|
||||||
static void iwl_mvm_check_ratid_empty(struct iwl_mvm *mvm,
|
static void iwl_mvm_check_ratid_empty(struct iwl_mvm *mvm,
|
||||||
struct ieee80211_sta *sta, u8 tid)
|
struct ieee80211_sta *sta, u8 tid)
|
||||||
{
|
{
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
struct iwl_mvm_tid_data *tid_data = &mvmsta->tid_data[tid];
|
struct iwl_mvm_tid_data *tid_data = &mvmsta->tid_data[tid];
|
||||||
struct ieee80211_vif *vif = mvmsta->vif;
|
struct ieee80211_vif *vif = mvmsta->vif;
|
||||||
|
|
||||||
|
@ -663,7 +663,7 @@ static void iwl_mvm_rx_tx_cmd_single(struct iwl_mvm *mvm,
|
||||||
sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]);
|
sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]);
|
||||||
|
|
||||||
if (!IS_ERR_OR_NULL(sta)) {
|
if (!IS_ERR_OR_NULL(sta)) {
|
||||||
mvmsta = (void *)sta->drv_priv;
|
mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
|
|
||||||
if (tid != IWL_TID_NON_QOS) {
|
if (tid != IWL_TID_NON_QOS) {
|
||||||
struct iwl_mvm_tid_data *tid_data =
|
struct iwl_mvm_tid_data *tid_data =
|
||||||
|
@ -794,7 +794,7 @@ static void iwl_mvm_rx_tx_cmd_agg(struct iwl_mvm *mvm,
|
||||||
sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]);
|
sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]);
|
||||||
|
|
||||||
if (!WARN_ON_ONCE(IS_ERR_OR_NULL(sta))) {
|
if (!WARN_ON_ONCE(IS_ERR_OR_NULL(sta))) {
|
||||||
struct iwl_mvm_sta *mvmsta = (void *)sta->drv_priv;
|
struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
mvmsta->tid_data[tid].rate_n_flags =
|
mvmsta->tid_data[tid].rate_n_flags =
|
||||||
le32_to_cpu(tx_resp->initial_rate);
|
le32_to_cpu(tx_resp->initial_rate);
|
||||||
}
|
}
|
||||||
|
@ -850,7 +850,7 @@ int iwl_mvm_rx_ba_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
mvmsta = (void *)sta->drv_priv;
|
mvmsta = iwl_mvm_sta_from_mac80211(sta);
|
||||||
tid_data = &mvmsta->tid_data[tid];
|
tid_data = &mvmsta->tid_data[tid];
|
||||||
|
|
||||||
if (WARN_ONCE(tid_data->txq_id != scd_flow, "Q %d, tid %d, flow %d",
|
if (WARN_ONCE(tid_data->txq_id != scd_flow, "Q %d, tid %d, flow %d",
|
||||||
|
|
Loading…
Reference in New Issue