summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/pm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/cw1200/pm.c')
-rw-r--r--drivers/staging/cw1200/pm.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/staging/cw1200/pm.c b/drivers/staging/cw1200/pm.c
index 7b2ba504cb2..7c1a957de3e 100644
--- a/drivers/staging/cw1200/pm.c
+++ b/drivers/staging/cw1200/pm.c
@@ -79,7 +79,7 @@ static void cw1200_pm_deinit_common(struct cw1200_pm_state *pm)
#ifdef CONFIG_WAKELOCK
int cw1200_pm_init(struct cw1200_pm_state *pm,
- struct cw1200_common *priv)
+ struct cw1200_common *priv)
{
int ret = cw1200_pm_init_common(pm, priv);
if (!ret)
@@ -110,14 +110,15 @@ void cw1200_pm_stay_awake(struct cw1200_pm_state *pm,
#else /* CONFIG_WAKELOCK */
-static void cw1200_pm_stay_awake_tmo(unsigned long)
+static void cw1200_pm_stay_awake_tmo(unsigned long arg)
{
}
-int cw1200_pm_init(struct cw1200_pm_state *pm)
+int cw1200_pm_init(struct cw1200_pm_state *pm,
+ struct cw1200_common *priv)
{
- int ret = cw1200_pm_init_common(pm);
- if (!ret)
+ int ret = cw1200_pm_init_common(pm, priv);
+ if (!ret) {
init_timer(&pm->stay_awake);
pm->stay_awake.data = (unsigned long)pm;
pm->stay_awake.function = cw1200_pm_stay_awake_tmo;
@@ -128,6 +129,7 @@ int cw1200_pm_init(struct cw1200_pm_state *pm)
void cw1200_pm_deinit(struct cw1200_pm_state *pm)
{
del_timer_sync(&pm->stay_awake);
+ cw1200_pm_deinit_common(pm);
}
void cw1200_pm_stay_awake(struct cw1200_pm_state *pm,
@@ -199,9 +201,9 @@ int cw1200_wow_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
int ret;
#ifndef CONFIG_WAKELOCK
- spin_lock_bh(&pm->lock);
- ret = timer_pending(&pm->stay_awake);
- spin_unlock_bh(&pm->lock);
+ spin_lock_bh(&pm_state->lock);
+ ret = timer_pending(&pm_state->stay_awake);
+ spin_unlock_bh(&pm_state->lock);
if (ret)
return -EAGAIN;
#endif