cfg80211/mac80211: enable proper device_set_wakeup_enable handling
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / net / wireless / nl80211.c
index b12a05243d7174808692acc8429837b24c1e5339..40e5620e5fde124a0e16a1da65c720c35ba1e7b4 100644 (file)
@@ -6014,6 +6014,7 @@ static int nl80211_set_wowlan(struct sk_buff *skb, struct genl_info *info)
        struct cfg80211_wowlan new_triggers = {};
        struct wiphy_wowlan_support *wowlan = &rdev->wiphy.wowlan;
        int err, i;
+       bool prev_enabled = rdev->wowlan;
 
        if (!rdev->wiphy.wowlan.flags && !rdev->wiphy.wowlan.n_patterns)
                return -EOPNOTSUPP;
@@ -6146,6 +6147,9 @@ static int nl80211_set_wowlan(struct sk_buff *skb, struct genl_info *info)
                rdev->wowlan = NULL;
        }
 
+       if (rdev->ops->set_wakeup && prev_enabled != !!rdev->wowlan)
+               rdev->ops->set_wakeup(&rdev->wiphy, rdev->wowlan);
+
        return 0;
  error:
        for (i = 0; i < new_triggers.n_patterns; i++)