| 
									
										
										
										
											2013-05-24 20:04:38 -04:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * 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 */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-29 22:22:05 -04:00
										 |  |  | #ifdef CONFIG_PM
 | 
					
						
							| 
									
										
										
										
											2013-05-24 20:04:38 -04:00
										 |  |  | 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); | 
					
						
							| 
									
										
										
										
											2013-05-29 22:22:05 -04:00
										 |  |  | 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
 | 
					
						
							| 
									
										
										
										
											2013-05-24 20:04:38 -04:00
										 |  |  | #endif
 |