Commit dd36a507 authored by Tova Mussai's avatar Tova Mussai Committed by Luca Coelho

iwlwifi: mvm: look for the first supported channel when add/remove phy 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: default avatarTova Mussai <tova.mussai@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent c8cfa08e
...@@ -1282,6 +1282,7 @@ int iwl_mvm_up(struct iwl_mvm *mvm) ...@@ -1282,6 +1282,7 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
int ret, i; int ret, i;
struct ieee80211_channel *chan; struct ieee80211_channel *chan;
struct cfg80211_chan_def chandef; struct cfg80211_chan_def chandef;
struct ieee80211_supported_band *sband = NULL;
lockdep_assert_held(&mvm->mutex); lockdep_assert_held(&mvm->mutex);
...@@ -1371,7 +1372,15 @@ int iwl_mvm_up(struct iwl_mvm *mvm) ...@@ -1371,7 +1372,15 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
goto error; goto error;
/* Add all the PHY contexts */ /* 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); cfg80211_chandef_create(&chandef, chan, NL80211_CHAN_NO_HT);
for (i = 0; i < NUM_PHY_CTX; i++) { for (i = 0; i < NUM_PHY_CTX; i++) {
/* /*
......
...@@ -289,8 +289,17 @@ void iwl_mvm_phy_ctxt_unref(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt) ...@@ -289,8 +289,17 @@ void iwl_mvm_phy_ctxt_unref(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt)
if (ctxt->ref == 0) { if (ctxt->ref == 0) {
struct ieee80211_channel *chan; struct ieee80211_channel *chan;
struct cfg80211_chan_def chandef; 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); cfg80211_chandef_create(&chandef, chan, NL80211_CHAN_NO_HT);
iwl_mvm_phy_ctxt_changed(mvm, ctxt, &chandef, 1, 1); iwl_mvm_phy_ctxt_changed(mvm, ctxt, &chandef, 1, 1);
} }
......
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