pm.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Mac80211 power management interface for ST-Ericsson CW1200 mac80211 drivers
  4. *
  5. * Copyright (c) 2011, ST-Ericsson
  6. * Author: Dmitry Tarnyagin <[email protected]>
  7. */
  8. #ifndef PM_H_INCLUDED
  9. #define PM_H_INCLUDED
  10. /* ******************************************************************** */
  11. /* mac80211 API */
  12. /* extern */ struct cw1200_common;
  13. /* private */ struct cw1200_suspend_state;
  14. struct cw1200_pm_state {
  15. struct cw1200_suspend_state *suspend_state;
  16. struct timer_list stay_awake;
  17. struct platform_device *pm_dev;
  18. spinlock_t lock; /* Protect access */
  19. };
  20. #ifdef CONFIG_PM
  21. int cw1200_pm_init(struct cw1200_pm_state *pm,
  22. struct cw1200_common *priv);
  23. void cw1200_pm_deinit(struct cw1200_pm_state *pm);
  24. int cw1200_wow_suspend(struct ieee80211_hw *hw,
  25. struct cfg80211_wowlan *wowlan);
  26. int cw1200_can_suspend(struct cw1200_common *priv);
  27. int cw1200_wow_resume(struct ieee80211_hw *hw);
  28. void cw1200_pm_stay_awake(struct cw1200_pm_state *pm,
  29. unsigned long tmo);
  30. #else
  31. static inline void cw1200_pm_stay_awake(struct cw1200_pm_state *pm,
  32. unsigned long tmo)
  33. {
  34. }
  35. static inline int cw1200_can_suspend(struct cw1200_common *priv)
  36. {
  37. return 0;
  38. }
  39. #endif
  40. #endif