aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath6kl/cfg80211.c
diff options
context:
space:
mode:
authorKalle Valo <kvalo@qca.qualcomm.com>2011-07-22 01:26:20 -0400
committerKalle Valo <kvalo@qca.qualcomm.com>2011-08-31 03:10:54 -0400
commitabcb344b3b823c8c9eac6e13e45a53eaf1d5d00b (patch)
tree7748263227daccbb7f3d4de01a9102218ddee1b7 /drivers/net/wireless/ath/ath6kl/cfg80211.c
parent1df94a8578eb099d9362cc0b84ef85015c47bbc5 (diff)
ath6kl: implement suspend support
For now this is implemented so that if host supports power is kept in the chip. If that's not supported, an error is returned and sdio stack will remove the device during suspend. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/cfg80211.c')
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index b2b70e6618f5..9128aa3c2b63 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -17,6 +17,7 @@
17#include "core.h" 17#include "core.h"
18#include "cfg80211.h" 18#include "cfg80211.h"
19#include "debug.h" 19#include "debug.h"
20#include "hif-ops.h"
20 21
21#define RATETAB_ENT(_rate, _rateid, _flags) { \ 22#define RATETAB_ENT(_rate, _rateid, _flags) { \
22 .bitrate = (_rate), \ 23 .bitrate = (_rate), \
@@ -1424,6 +1425,16 @@ static int ath6kl_flush_pmksa(struct wiphy *wiphy, struct net_device *netdev)
1424 return 0; 1425 return 0;
1425} 1426}
1426 1427
1428#ifdef CONFIG_PM
1429static int ar6k_cfg80211_suspend(struct wiphy *wiphy,
1430 struct cfg80211_wowlan *wow)
1431{
1432 struct ath6kl *ar = wiphy_priv(wiphy);
1433
1434 return ath6kl_hif_suspend(ar);
1435}
1436#endif
1437
1427static struct cfg80211_ops ath6kl_cfg80211_ops = { 1438static struct cfg80211_ops ath6kl_cfg80211_ops = {
1428 .change_virtual_intf = ath6kl_cfg80211_change_iface, 1439 .change_virtual_intf = ath6kl_cfg80211_change_iface,
1429 .scan = ath6kl_cfg80211_scan, 1440 .scan = ath6kl_cfg80211_scan,
@@ -1443,6 +1454,9 @@ static struct cfg80211_ops ath6kl_cfg80211_ops = {
1443 .set_pmksa = ath6kl_set_pmksa, 1454 .set_pmksa = ath6kl_set_pmksa,
1444 .del_pmksa = ath6kl_del_pmksa, 1455 .del_pmksa = ath6kl_del_pmksa,
1445 .flush_pmksa = ath6kl_flush_pmksa, 1456 .flush_pmksa = ath6kl_flush_pmksa,
1457#ifdef CONFIG_PM
1458 .suspend = ar6k_cfg80211_suspend,
1459#endif
1446}; 1460};
1447 1461
1448struct wireless_dev *ath6kl_cfg80211_init(struct device *dev) 1462struct wireless_dev *ath6kl_cfg80211_init(struct device *dev)