From 526d23cc6732bdab45b10c988494bc8ff96ed6d0 Mon Sep 17 00:00:00 2001 From: Juuso Oikarinen Date: Mon, 31 Jan 2011 15:52:58 +0200 Subject: [PATCH] --- yaml --- r: 237007 b: refs/heads/master c: bf6a0579f60ae5225280c82cc52b51db1255e7fb h: refs/heads/master i: 237005: aa617ee30aecdc33ac6ebd4ed5bd7abb43f05312 237003: 259b44ee4049a519fa3e89e0608405e8ca7d9e74 236999: 675a88bcd4df12c5f0d21a784e96aea6e909e189 236991: 28d2a48ceafeed52e818da59d8f589e3360263c8 v: v3 --- [refs] | 2 +- trunk/net/wireless/core.c | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index bcc0660fa612..11c0d590c16e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 73b30dfe4f756315b8cc431fca3ff340090c0ae4 +refs/heads/master: bf6a0579f60ae5225280c82cc52b51db1255e7fb diff --git a/trunk/net/wireless/core.c b/trunk/net/wireless/core.c index e9a5f8ca4c27..fe01de29bfe8 100644 --- a/trunk/net/wireless/core.c +++ b/trunk/net/wireless/core.c @@ -718,13 +718,6 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb, wdev->ps = false; /* allow mac80211 to determine the timeout */ wdev->ps_timeout = -1; - if (rdev->ops->set_power_mgmt) - if (rdev->ops->set_power_mgmt(wdev->wiphy, dev, - wdev->ps, - wdev->ps_timeout)) { - /* assume this means it's off */ - wdev->ps = false; - } if (!dev->ethtool_ops) dev->ethtool_ops = &cfg80211_ethtool_ops; @@ -813,6 +806,19 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb, rdev->opencount++; mutex_unlock(&rdev->devlist_mtx); cfg80211_unlock_rdev(rdev); + + /* + * Configure power management to the driver here so that its + * correctly set also after interface type changes etc. + */ + if (wdev->iftype == NL80211_IFTYPE_STATION && + rdev->ops->set_power_mgmt) + if (rdev->ops->set_power_mgmt(wdev->wiphy, dev, + wdev->ps, + wdev->ps_timeout)) { + /* assume this means it's off */ + wdev->ps = false; + } break; case NETDEV_UNREGISTER: /*