mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
staging: wilc1000: add ops resuem/suspend/wakeup in cfg80211
This patch adds ops resume, suspend and set_wakeup in cfg80211. Together with previous patches, driver will support suspend/resume functionality. Signed-off-by: Glen Lee <glen.lee@atmel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5397cbc231
commit
73584a40d7
|
|
@ -74,6 +74,10 @@ static const struct ieee80211_txrx_stypes
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct wiphy_wowlan_support wowlan_support = {
|
||||||
|
.flags = WIPHY_WOWLAN_ANY
|
||||||
|
};
|
||||||
|
|
||||||
#define WILC_WFI_DWELL_PASSIVE 100
|
#define WILC_WFI_DWELL_PASSIVE 100
|
||||||
#define WILC_WFI_DWELL_ACTIVE 40
|
#define WILC_WFI_DWELL_ACTIVE 40
|
||||||
|
|
||||||
|
|
@ -2673,6 +2677,36 @@ static int del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int wilc_suspend(struct wiphy *wiphy, struct cfg80211_wowlan *wow)
|
||||||
|
{
|
||||||
|
struct wilc_priv *priv = wiphy_priv(wiphy);
|
||||||
|
struct wilc_vif *vif = netdev_priv(priv->dev);
|
||||||
|
|
||||||
|
if (!wow && wilc_wlan_get_num_conn_ifcs(vif->wilc))
|
||||||
|
vif->wilc->suspend_event = true;
|
||||||
|
else
|
||||||
|
vif->wilc->suspend_event = false;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int wilc_resume(struct wiphy *wiphy)
|
||||||
|
{
|
||||||
|
struct wilc_priv *priv = wiphy_priv(wiphy);
|
||||||
|
struct wilc_vif *vif = netdev_priv(priv->dev);
|
||||||
|
|
||||||
|
netdev_info(vif->ndev, "cfg resume\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void wilc_set_wakeup(struct wiphy *wiphy, bool enabled)
|
||||||
|
{
|
||||||
|
struct wilc_priv *priv = wiphy_priv(wiphy);
|
||||||
|
struct wilc_vif *vif = netdev_priv(priv->dev);
|
||||||
|
|
||||||
|
netdev_info(vif->ndev, "cfg set wake up = %d\n", enabled);
|
||||||
|
}
|
||||||
|
|
||||||
static struct cfg80211_ops wilc_cfg80211_ops = {
|
static struct cfg80211_ops wilc_cfg80211_ops = {
|
||||||
.set_monitor_channel = set_channel,
|
.set_monitor_channel = set_channel,
|
||||||
.scan = scan,
|
.scan = scan,
|
||||||
|
|
@ -2708,6 +2742,10 @@ static struct cfg80211_ops wilc_cfg80211_ops = {
|
||||||
.set_power_mgmt = set_power_mgmt,
|
.set_power_mgmt = set_power_mgmt,
|
||||||
.set_cqm_rssi_config = set_cqm_rssi_config,
|
.set_cqm_rssi_config = set_cqm_rssi_config,
|
||||||
|
|
||||||
|
.suspend = wilc_suspend,
|
||||||
|
.resume = wilc_resume,
|
||||||
|
.set_wakeup = wilc_set_wakeup,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed)
|
int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed)
|
||||||
|
|
@ -2792,6 +2830,7 @@ struct wireless_dev *wilc_create_wiphy(struct net_device *net, struct device *de
|
||||||
sema_init(&(priv->SemHandleUpdateStats), 1);
|
sema_init(&(priv->SemHandleUpdateStats), 1);
|
||||||
priv->wdev = wdev;
|
priv->wdev = wdev;
|
||||||
wdev->wiphy->max_scan_ssids = MAX_NUM_PROBED_SSID;
|
wdev->wiphy->max_scan_ssids = MAX_NUM_PROBED_SSID;
|
||||||
|
wdev->wiphy->wowlan = &wowlan_support;
|
||||||
wdev->wiphy->max_num_pmkids = WILC_MAX_NUM_PMKIDS;
|
wdev->wiphy->max_num_pmkids = WILC_MAX_NUM_PMKIDS;
|
||||||
PRINT_INFO(CFG80211_DBG, "Max number of PMKIDs = %d\n", wdev->wiphy->max_num_pmkids);
|
PRINT_INFO(CFG80211_DBG, "Max number of PMKIDs = %d\n", wdev->wiphy->max_num_pmkids);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user