mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
cfg80211/mac80211: enable proper device_set_wakeup_enable handling
In WoWLAN, we only get the triggers when we actually get to suspend. As a consequence, drivers currently don't know that the device should enable wakeup. However, the device_set_wakeup_enable() API is intended to be called when the wakeup is enabled, not later when needed. Add a new set_wakeup() call to cfg80211 and mac80211 to allow drivers to properly call device_set_wakeup_enable. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
da951c2417
commit
6d52563f2b
7 changed files with 50 additions and 1 deletions
|
|
@ -1344,6 +1344,9 @@ struct cfg80211_gtk_rekey_data {
|
|||
* be %NULL or contain the enabled Wake-on-Wireless triggers that are
|
||||
* configured for the device.
|
||||
* @resume: wiphy device needs to be resumed
|
||||
* @set_wakeup: Called when WoWLAN is enabled/disabled, use this callback
|
||||
* to call device_set_wakeup_enable() to enable/disable wakeup from
|
||||
* the device.
|
||||
*
|
||||
* @add_virtual_intf: create a new virtual interface with the given name,
|
||||
* must set the struct wireless_dev's iftype. Beware: You must create
|
||||
|
|
@ -1515,6 +1518,7 @@ struct cfg80211_gtk_rekey_data {
|
|||
struct cfg80211_ops {
|
||||
int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
|
||||
int (*resume)(struct wiphy *wiphy);
|
||||
void (*set_wakeup)(struct wiphy *wiphy, bool enabled);
|
||||
|
||||
struct net_device * (*add_virtual_intf)(struct wiphy *wiphy,
|
||||
char *name,
|
||||
|
|
|
|||
|
|
@ -2233,6 +2233,7 @@ struct ieee80211_ops {
|
|||
#ifdef CONFIG_PM
|
||||
int (*suspend)(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan);
|
||||
int (*resume)(struct ieee80211_hw *hw);
|
||||
void (*set_wakeup)(struct ieee80211_hw *hw, bool enabled);
|
||||
#endif
|
||||
int (*add_interface)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif);
|
||||
|
|
|
|||
Loading…
Reference in a new issue