lkml.org 
[lkml]   [2019]   [Sep]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 23/63] iwlwifi: mvm: always init rs_fw with 20MHz bandwidth rates
    Date
    From: Naftali Goldstein <naftali.goldstein@intel.com>

    commit 2859de7637b541dc7191f4d3fce4a1adba80fb3e upstream.

    As with the non-offloaded rs case, during assoc on the ap side the phy
    context is set to 20MHz until authorization of a client that supports
    wider channel-widths. Support this by sending the initial
    tlc_config_cmd with max supported channel width of 20MHz until
    authorization succeeds.

    Fixes: 6b7a5aea71b3 ("iwlwifi: mvm: always init rs with 20mhz bandwidth rates")
    Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 5 +++--
    drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 2 +-
    drivers/net/wireless/intel/iwlwifi/mvm/rs.h | 2 +-
    3 files changed, 5 insertions(+), 4 deletions(-)

    --- a/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
    +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
    @@ -315,7 +315,7 @@ out:
    }

    void rs_fw_rate_init(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
    - enum nl80211_band band)
    + enum nl80211_band band, bool update)
    {
    struct ieee80211_hw *hw = mvm->hw;
    struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
    @@ -324,7 +324,8 @@ void rs_fw_rate_init(struct iwl_mvm *mvm
    struct ieee80211_supported_band *sband;
    struct iwl_tlc_config_cmd cfg_cmd = {
    .sta_id = mvmsta->sta_id,
    - .max_ch_width = rs_fw_bw_from_sta_bw(sta),
    + .max_ch_width = update ?
    + rs_fw_bw_from_sta_bw(sta) : RATE_MCS_CHAN_WIDTH_20,
    .flags = cpu_to_le16(rs_fw_set_config_flags(mvm, sta)),
    .chains = rs_fw_set_active_chains(iwl_mvm_get_valid_tx_ant(mvm)),
    .max_mpdu_len = cpu_to_le16(sta->max_amsdu_len),
    --- a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
    +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
    @@ -4113,7 +4113,7 @@ void iwl_mvm_rs_rate_init(struct iwl_mvm
    enum nl80211_band band, bool update)
    {
    if (iwl_mvm_has_tlc_offload(mvm))
    - rs_fw_rate_init(mvm, sta, band);
    + rs_fw_rate_init(mvm, sta, band, update);
    else
    rs_drv_rate_init(mvm, sta, band, update);
    }
    --- a/drivers/net/wireless/intel/iwlwifi/mvm/rs.h
    +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs.h
    @@ -461,7 +461,7 @@ void rs_remove_sta_debugfs(void *mvm, vo

    void iwl_mvm_rs_add_sta(struct iwl_mvm *mvm, struct iwl_mvm_sta *mvmsta);
    void rs_fw_rate_init(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
    - enum nl80211_band band);
    + enum nl80211_band band, bool update);
    int rs_fw_tx_protection(struct iwl_mvm *mvm, struct iwl_mvm_sta *mvmsta,
    bool enable);
    void iwl_mvm_tlc_update_notif(struct iwl_mvm *mvm,

    \
     
     \ /
      Last update: 2019-09-29 15:59    [W:4.147 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site