Lines Matching refs:priv

100 		   struct cw1200_common *priv)  in cw1200_pm_init()  argument
141 static int cw1200_resume_work(struct cw1200_common *priv, in cw1200_resume_work() argument
148 return queue_delayed_work(priv->workqueue, work, tmo); in cw1200_resume_work()
151 int cw1200_can_suspend(struct cw1200_common *priv) in cw1200_can_suspend() argument
153 if (atomic_read(&priv->bh_rx)) { in cw1200_can_suspend()
154 wiphy_dbg(priv->hw->wiphy, "Suspend interrupted.\n"); in cw1200_can_suspend()
163 struct cw1200_common *priv = hw->priv; in cw1200_wow_suspend() local
164 struct cw1200_pm_state *pm_state = &priv->pm_state; in cw1200_wow_suspend()
175 if (priv->tx_queue_stats.num_queued) in cw1200_wow_suspend()
179 if (!mutex_trylock(&priv->conf_mutex)) in cw1200_wow_suspend()
186 if (priv->channel_switch_in_progress) in cw1200_wow_suspend()
190 if (priv->join_pending) in cw1200_wow_suspend()
194 if (down_trylock(&priv->scan.lock)) in cw1200_wow_suspend()
198 wsm_lock_tx_async(priv); in cw1200_wow_suspend()
203 if (wait_event_timeout(priv->bh_evt_wq, in cw1200_wow_suspend()
204 !priv->hw_bufs_used, HZ / 10) <= 0) in cw1200_wow_suspend()
208 wsm_set_udp_port_filter(priv, &cw1200_udp_port_filter_on.hdr); in cw1200_wow_suspend()
211 wsm_set_ether_type_filter(priv, &cw1200_ether_type_filter_on.hdr); in cw1200_wow_suspend()
219 if (!priv->vif->p2p && in cw1200_wow_suspend()
220 priv->join_status == CW1200_JOIN_STATUS_STA && in cw1200_wow_suspend()
221 priv->powersave_mode.mode != WSM_PSM_PS) { in cw1200_wow_suspend()
222 state->prev_ps_mode = priv->powersave_mode.mode; in cw1200_wow_suspend()
223 priv->powersave_mode.mode = WSM_PSM_PS; in cw1200_wow_suspend()
224 cw1200_set_pm(priv, &priv->powersave_mode); in cw1200_wow_suspend()
225 if (wait_event_interruptible_timeout(priv->ps_mode_switch_done, in cw1200_wow_suspend()
226 !priv->ps_mode_switch_in_progress, 1*HZ) <= 0) { in cw1200_wow_suspend()
233 cw1200_suspend_work(&priv->bss_loss_work); in cw1200_wow_suspend()
235 cw1200_suspend_work(&priv->join_timeout); in cw1200_wow_suspend()
237 cw1200_suspend_work(&priv->scan.probe_work); in cw1200_wow_suspend()
239 cw1200_suspend_work(&priv->link_id_gc_work); in cw1200_wow_suspend()
241 cancel_delayed_work_sync(&priv->clear_recent_scan_work); in cw1200_wow_suspend()
242 atomic_set(&priv->recent_scan, 0); in cw1200_wow_suspend()
245 if (priv->join_status == CW1200_JOIN_STATUS_STA && in cw1200_wow_suspend()
246 priv->join_dtim_period && in cw1200_wow_suspend()
247 !priv->has_multicast_subscription) { in cw1200_wow_suspend()
249 wsm_set_beacon_wakeup_period(priv, in cw1200_wow_suspend()
250 priv->join_dtim_period, in cw1200_wow_suspend()
251 CW1200_BEACON_SKIPPING_MULTIPLIER * priv->join_dtim_period); in cw1200_wow_suspend()
255 if (cw1200_bh_suspend(priv)) in cw1200_wow_suspend()
258 ret = timer_pending(&priv->mcast_timeout); in cw1200_wow_suspend()
266 ret = priv->hwbus_ops->power_mgmt(priv->hwbus_priv, true); in cw1200_wow_suspend()
268 wiphy_err(priv->hw->wiphy, in cw1200_wow_suspend()
275 if (atomic_read(&priv->bh_rx)) { in cw1200_wow_suspend()
283 WARN_ON(cw1200_bh_resume(priv)); in cw1200_wow_suspend()
285 cw1200_resume_work(priv, &priv->bss_loss_work, in cw1200_wow_suspend()
287 cw1200_resume_work(priv, &priv->join_timeout, in cw1200_wow_suspend()
289 cw1200_resume_work(priv, &priv->scan.probe_work, in cw1200_wow_suspend()
291 cw1200_resume_work(priv, &priv->link_id_gc_work, in cw1200_wow_suspend()
296 wsm_set_udp_port_filter(priv, &cw1200_udp_port_filter_off); in cw1200_wow_suspend()
297 wsm_set_ether_type_filter(priv, &cw1200_ether_type_filter_off); in cw1200_wow_suspend()
299 wsm_unlock_tx(priv); in cw1200_wow_suspend()
300 up(&priv->scan.lock); in cw1200_wow_suspend()
302 mutex_unlock(&priv->conf_mutex); in cw1200_wow_suspend()
308 struct cw1200_common *priv = hw->priv; in cw1200_wow_resume() local
309 struct cw1200_pm_state *pm_state = &priv->pm_state; in cw1200_wow_resume()
316 priv->hwbus_ops->power_mgmt(priv->hwbus_priv, false); in cw1200_wow_resume()
322 up(&priv->scan.lock); in cw1200_wow_resume()
325 WARN_ON(cw1200_bh_resume(priv)); in cw1200_wow_resume()
328 if (!priv->vif->p2p && priv->join_status == CW1200_JOIN_STATUS_STA) { in cw1200_wow_resume()
329 priv->powersave_mode.mode = state->prev_ps_mode; in cw1200_wow_resume()
330 cw1200_set_pm(priv, &priv->powersave_mode); in cw1200_wow_resume()
334 wsm_set_beacon_wakeup_period(priv, priv->beacon_int * in cw1200_wow_resume()
335 priv->join_dtim_period > in cw1200_wow_resume()
337 priv->join_dtim_period, 0); in cw1200_wow_resume()
342 cw1200_resume_work(priv, &priv->bss_loss_work, in cw1200_wow_resume()
344 cw1200_resume_work(priv, &priv->join_timeout, in cw1200_wow_resume()
346 cw1200_resume_work(priv, &priv->scan.probe_work, in cw1200_wow_resume()
348 cw1200_resume_work(priv, &priv->link_id_gc_work, in cw1200_wow_resume()
352 wsm_set_udp_port_filter(priv, &cw1200_udp_port_filter_off); in cw1200_wow_resume()
355 wsm_set_ether_type_filter(priv, &cw1200_ether_type_filter_off); in cw1200_wow_resume()
358 wsm_unlock_tx(priv); in cw1200_wow_resume()
361 mutex_unlock(&priv->conf_mutex); in cw1200_wow_resume()