| /* | |
| * Mac80211 power management interface for ST-Ericsson CW1200 mac80211 drivers | |
| * | |
| * Copyright (c) 2011, ST-Ericsson | |
| * Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no> | |
| * | |
| * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License version 2 as | |
| * published by the Free Software Foundation. | |
| */ | |
| #ifndef PM_H_INCLUDED | |
| #define PM_H_INCLUDED | |
| /* ******************************************************************** */ | |
| /* mac80211 API */ | |
| /* extern */ struct cw1200_common; | |
| /* private */ struct cw1200_suspend_state; | |
| struct cw1200_pm_state { | |
| struct cw1200_suspend_state *suspend_state; | |
| struct timer_list stay_awake; | |
| struct platform_device *pm_dev; | |
| spinlock_t lock; /* Protect access */ | |
| }; | |
| #ifdef CONFIG_PM | |
| int cw1200_pm_init(struct cw1200_pm_state *pm, | |
| struct cw1200_common *priv); | |
| void cw1200_pm_deinit(struct cw1200_pm_state *pm); | |
| int cw1200_wow_suspend(struct ieee80211_hw *hw, | |
| struct cfg80211_wowlan *wowlan); | |
| int cw1200_wow_resume(struct ieee80211_hw *hw); | |
| int cw1200_can_suspend(struct cw1200_common *priv); | |
| void cw1200_pm_stay_awake(struct cw1200_pm_state *pm, | |
| unsigned long tmo); | |
| #else | |
| static inline void cw1200_pm_stay_awake(struct cw1200_pm_state *pm, | |
| unsigned long tmo) { | |
| } | |
| #endif | |
| #endif |