Skip to content

Commit

Permalink
iwlwifi: properly handle device_set_wakeup_enable
Browse files Browse the repository at this point in the history
This is intended to be set whenever wakeup will be
needed upon suspend, not only when suspending, so
use the new callbacks to set it then.

Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Johannes Berg authored and John W. Linville committed Jun 5, 2012
1 parent ff110c8 commit 76ed2ed
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions drivers/net/wireless/iwlwifi/iwl-mac80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -417,8 +417,6 @@ int iwlagn_mac_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
if (ret)
goto error;

device_set_wakeup_enable(priv->trans->dev, true);

iwl_trans_wowlan_suspend(priv->trans);

goto out;
Expand Down Expand Up @@ -485,8 +483,6 @@ static int iwlagn_mac_resume(struct ieee80211_hw *hw)

priv->wowlan = false;

device_set_wakeup_enable(priv->trans->dev, false);

iwlagn_prepare_restart(priv);

memset((void *)&ctx->active, 0, sizeof(ctx->active));
Expand All @@ -501,6 +497,12 @@ static int iwlagn_mac_resume(struct ieee80211_hw *hw)
return 1;
}

static void iwlagn_mac_set_wakeup(struct ieee80211_hw *hw, bool enabled)
{
struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);

device_set_wakeup_enable(priv->trans->dev, enabled);
}
#endif

void iwlagn_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
Expand Down Expand Up @@ -1581,6 +1583,7 @@ struct ieee80211_ops iwlagn_hw_ops = {
#ifdef CONFIG_PM_SLEEP
.suspend = iwlagn_mac_suspend,
.resume = iwlagn_mac_resume,
.set_wakeup = iwlagn_mac_set_wakeup,
#endif
.add_interface = iwlagn_mac_add_interface,
.remove_interface = iwlagn_mac_remove_interface,
Expand Down

0 comments on commit 76ed2ed

Please sign in to comment.