Commit 318d86db authored by John W. Linville's avatar John W. Linville

Merge branch 'master' of...

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
parents 547b4e71 d786f67e
...@@ -318,20 +318,20 @@ struct mwl8k_sta { ...@@ -318,20 +318,20 @@ struct mwl8k_sta {
#define MWL8K_STA(_sta) ((struct mwl8k_sta *)&((_sta)->drv_priv)) #define MWL8K_STA(_sta) ((struct mwl8k_sta *)&((_sta)->drv_priv))
static const struct ieee80211_channel mwl8k_channels_24[] = { static const struct ieee80211_channel mwl8k_channels_24[] = {
{ .center_freq = 2412, .hw_value = 1, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2412, .hw_value = 1, },
{ .center_freq = 2417, .hw_value = 2, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2417, .hw_value = 2, },
{ .center_freq = 2422, .hw_value = 3, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2422, .hw_value = 3, },
{ .center_freq = 2427, .hw_value = 4, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2427, .hw_value = 4, },
{ .center_freq = 2432, .hw_value = 5, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2432, .hw_value = 5, },
{ .center_freq = 2437, .hw_value = 6, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2437, .hw_value = 6, },
{ .center_freq = 2442, .hw_value = 7, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2442, .hw_value = 7, },
{ .center_freq = 2447, .hw_value = 8, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2447, .hw_value = 8, },
{ .center_freq = 2452, .hw_value = 9, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2452, .hw_value = 9, },
{ .center_freq = 2457, .hw_value = 10, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2457, .hw_value = 10, },
{ .center_freq = 2462, .hw_value = 11, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2462, .hw_value = 11, },
{ .center_freq = 2467, .hw_value = 12, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2467, .hw_value = 12, },
{ .center_freq = 2472, .hw_value = 13, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2472, .hw_value = 13, },
{ .center_freq = 2484, .hw_value = 14, }, { .band = IEEE80211_BAND_2GHZ, .center_freq = 2484, .hw_value = 14, },
}; };
static const struct ieee80211_rate mwl8k_rates_24[] = { static const struct ieee80211_rate mwl8k_rates_24[] = {
...@@ -352,10 +352,10 @@ static const struct ieee80211_rate mwl8k_rates_24[] = { ...@@ -352,10 +352,10 @@ static const struct ieee80211_rate mwl8k_rates_24[] = {
}; };
static const struct ieee80211_channel mwl8k_channels_50[] = { static const struct ieee80211_channel mwl8k_channels_50[] = {
{ .center_freq = 5180, .hw_value = 36, }, { .band = IEEE80211_BAND_5GHZ, .center_freq = 5180, .hw_value = 36, },
{ .center_freq = 5200, .hw_value = 40, }, { .band = IEEE80211_BAND_5GHZ, .center_freq = 5200, .hw_value = 40, },
{ .center_freq = 5220, .hw_value = 44, }, { .band = IEEE80211_BAND_5GHZ, .center_freq = 5220, .hw_value = 44, },
{ .center_freq = 5240, .hw_value = 48, }, { .band = IEEE80211_BAND_5GHZ, .center_freq = 5240, .hw_value = 48, },
}; };
static const struct ieee80211_rate mwl8k_rates_50[] = { static const struct ieee80211_rate mwl8k_rates_50[] = {
......
...@@ -2004,7 +2004,8 @@ static int ieee80211_set_mcast_rate(struct wiphy *wiphy, struct net_device *dev, ...@@ -2004,7 +2004,8 @@ static int ieee80211_set_mcast_rate(struct wiphy *wiphy, struct net_device *dev,
{ {
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
memcpy(sdata->vif.bss_conf.mcast_rate, rate, sizeof(rate)); memcpy(sdata->vif.bss_conf.mcast_rate, rate,
sizeof(int) * IEEE80211_NUM_BANDS);
return 0; return 0;
} }
......
...@@ -3400,6 +3400,7 @@ ieee80211_determine_chantype(struct ieee80211_sub_if_data *sdata, ...@@ -3400,6 +3400,7 @@ ieee80211_determine_chantype(struct ieee80211_sub_if_data *sdata,
ret = 0; ret = 0;
out:
while (!cfg80211_chandef_usable(sdata->local->hw.wiphy, chandef, while (!cfg80211_chandef_usable(sdata->local->hw.wiphy, chandef,
IEEE80211_CHAN_DISABLED)) { IEEE80211_CHAN_DISABLED)) {
if (WARN_ON(chandef->width == NL80211_CHAN_WIDTH_20_NOHT)) { if (WARN_ON(chandef->width == NL80211_CHAN_WIDTH_20_NOHT)) {
...@@ -3408,14 +3409,13 @@ ieee80211_determine_chantype(struct ieee80211_sub_if_data *sdata, ...@@ -3408,14 +3409,13 @@ ieee80211_determine_chantype(struct ieee80211_sub_if_data *sdata,
goto out; goto out;
} }
ret = chandef_downgrade(chandef); ret |= chandef_downgrade(chandef);
} }
if (chandef->width != vht_chandef.width) if (chandef->width != vht_chandef.width)
sdata_info(sdata, sdata_info(sdata,
"local regulatory prevented using AP HT/VHT configuration, downgraded\n"); "capabilities/regulatory prevented using AP HT/VHT configuration, downgraded\n");
out:
WARN_ON_ONCE(!cfg80211_chandef_valid(chandef)); WARN_ON_ONCE(!cfg80211_chandef_valid(chandef));
return ret; return ret;
} }
...@@ -3529,8 +3529,11 @@ static int ieee80211_prep_channel(struct ieee80211_sub_if_data *sdata, ...@@ -3529,8 +3529,11 @@ static int ieee80211_prep_channel(struct ieee80211_sub_if_data *sdata,
*/ */
ret = ieee80211_vif_use_channel(sdata, &chandef, ret = ieee80211_vif_use_channel(sdata, &chandef,
IEEE80211_CHANCTX_SHARED); IEEE80211_CHANCTX_SHARED);
while (ret && chandef.width != NL80211_CHAN_WIDTH_20_NOHT) while (ret && chandef.width != NL80211_CHAN_WIDTH_20_NOHT) {
ifmgd->flags |= chandef_downgrade(&chandef); ifmgd->flags |= chandef_downgrade(&chandef);
ret = ieee80211_vif_use_channel(sdata, &chandef,
IEEE80211_CHANCTX_SHARED);
}
return ret; return ret;
} }
......
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