Skip to content

Commit

Permalink
iwlwifi: mvm: look for the first supported channel when add/remove ph…
Browse files Browse the repository at this point in the history
…y ctxt

Can't rely that band 2.4 is always supported by the NIC and use the
first channel in this band for the phy ctxt.
Instead, look for the first channel in the first band that is supported

Signed-off-by: Tova Mussai <tova.mussai@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
  • Loading branch information
Tova Mussai authored and Luca Coelho committed Sep 6, 2019
1 parent c8cfa08 commit dd36a50
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
11 changes: 10 additions & 1 deletion drivers/net/wireless/intel/iwlwifi/mvm/fw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1282,6 +1282,7 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
int ret, i;
struct ieee80211_channel *chan;
struct cfg80211_chan_def chandef;
struct ieee80211_supported_band *sband = NULL;

lockdep_assert_held(&mvm->mutex);

Expand Down Expand Up @@ -1371,7 +1372,15 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
goto error;

/* Add all the PHY contexts */
chan = &mvm->hw->wiphy->bands[NL80211_BAND_2GHZ]->channels[0];
i = 0;
while (!sband && i < NUM_NL80211_BANDS)
sband = mvm->hw->wiphy->bands[i++];

if (WARN_ON_ONCE(!sband))
goto error;

chan = &sband->channels[0];

cfg80211_chandef_create(&chandef, chan, NL80211_CHAN_NO_HT);
for (i = 0; i < NUM_PHY_CTX; i++) {
/*
Expand Down
11 changes: 10 additions & 1 deletion drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c
Original file line number Diff line number Diff line change
Expand Up @@ -289,8 +289,17 @@ void iwl_mvm_phy_ctxt_unref(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt)
if (ctxt->ref == 0) {
struct ieee80211_channel *chan;
struct cfg80211_chan_def chandef;
struct ieee80211_supported_band *sband = NULL;
enum nl80211_band band = NL80211_BAND_2GHZ;

while (!sband && band < NUM_NL80211_BANDS)
sband = mvm->hw->wiphy->bands[band++];

if (WARN_ON(!sband))
return;

chan = &sband->channels[0];

chan = &mvm->hw->wiphy->bands[NL80211_BAND_2GHZ]->channels[0];
cfg80211_chandef_create(&chandef, chan, NL80211_CHAN_NO_HT);
iwl_mvm_phy_ctxt_changed(mvm, ctxt, &chandef, 1, 1);
}
Expand Down

0 comments on commit dd36a50

Please sign in to comment.