Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
This commit is contained in:
commit
039aafba1b
5 changed files with 16 additions and 8 deletions
|
@ -707,11 +707,14 @@ static int rs_toggle_antenna(u32 valid_ant, u32 *rate_n_flags,
|
||||||
*/
|
*/
|
||||||
static bool rs_use_green(struct ieee80211_sta *sta)
|
static bool rs_use_green(struct ieee80211_sta *sta)
|
||||||
{
|
{
|
||||||
struct iwl_station_priv *sta_priv = (void *)sta->drv_priv;
|
/*
|
||||||
struct iwl_rxon_context *ctx = sta_priv->ctx;
|
* There's a bug somewhere in this code that causes the
|
||||||
|
* scaling to get stuck because GF+SGI can't be combined
|
||||||
return (sta->ht_cap.cap & IEEE80211_HT_CAP_GRN_FLD) &&
|
* in SISO rates. Until we find that bug, disable GF, it
|
||||||
!(ctx->ht.non_gf_sta_present);
|
* has only limited benefit and we still interoperate with
|
||||||
|
* GF APs since we can always receive GF transmissions.
|
||||||
|
*/
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2243,8 +2243,7 @@ static void rt61pci_txdone(struct rt2x00_dev *rt2x00dev)
|
||||||
|
|
||||||
static void rt61pci_wakeup(struct rt2x00_dev *rt2x00dev)
|
static void rt61pci_wakeup(struct rt2x00_dev *rt2x00dev)
|
||||||
{
|
{
|
||||||
struct ieee80211_conf conf = { .flags = 0 };
|
struct rt2x00lib_conf libconf = { .conf = &rt2x00dev->hw->conf };
|
||||||
struct rt2x00lib_conf libconf = { .conf = &conf };
|
|
||||||
|
|
||||||
rt61pci_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
|
rt61pci_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
|
||||||
}
|
}
|
||||||
|
|
|
@ -952,6 +952,11 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
|
||||||
*/
|
*/
|
||||||
synchronize_rcu();
|
synchronize_rcu();
|
||||||
INIT_LIST_HEAD(&wdev->list);
|
INIT_LIST_HEAD(&wdev->list);
|
||||||
|
/*
|
||||||
|
* Ensure that all events have been processed and
|
||||||
|
* freed.
|
||||||
|
*/
|
||||||
|
cfg80211_process_wdev_events(wdev);
|
||||||
break;
|
break;
|
||||||
case NETDEV_PRE_UP:
|
case NETDEV_PRE_UP:
|
||||||
if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)))
|
if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)))
|
||||||
|
|
|
@ -426,6 +426,7 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
|
||||||
struct net_device *dev, enum nl80211_iftype ntype,
|
struct net_device *dev, enum nl80211_iftype ntype,
|
||||||
u32 *flags, struct vif_params *params);
|
u32 *flags, struct vif_params *params);
|
||||||
void cfg80211_process_rdev_events(struct cfg80211_registered_device *rdev);
|
void cfg80211_process_rdev_events(struct cfg80211_registered_device *rdev);
|
||||||
|
void cfg80211_process_wdev_events(struct wireless_dev *wdev);
|
||||||
|
|
||||||
int cfg80211_can_use_iftype_chan(struct cfg80211_registered_device *rdev,
|
int cfg80211_can_use_iftype_chan(struct cfg80211_registered_device *rdev,
|
||||||
struct wireless_dev *wdev,
|
struct wireless_dev *wdev,
|
||||||
|
|
|
@ -735,7 +735,7 @@ void cfg80211_upload_connect_keys(struct wireless_dev *wdev)
|
||||||
wdev->connect_keys = NULL;
|
wdev->connect_keys = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cfg80211_process_wdev_events(struct wireless_dev *wdev)
|
void cfg80211_process_wdev_events(struct wireless_dev *wdev)
|
||||||
{
|
{
|
||||||
struct cfg80211_event *ev;
|
struct cfg80211_event *ev;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
Loading…
Add table
Reference in a new issue