Lines Matching full:w
64 mt76_worker_setup(struct ieee80211_hw *hw, struct mt76_worker *w, in mt76_worker_setup() argument
72 w->fn = fn; in mt76_worker_setup()
73 w->task = kthread_create(__mt76_worker_fn, w, "mt76-%s %s", in mt76_worker_setup()
76 ret = PTR_ERR_OR_ZERO(w->task); in mt76_worker_setup()
78 w->task = NULL; in mt76_worker_setup()
82 wake_up_process(w->task); in mt76_worker_setup()
87 static inline void mt76_worker_schedule(struct mt76_worker *w) in mt76_worker_schedule() argument
89 if (!w->task) in mt76_worker_schedule()
92 if (!test_and_set_bit(MT76_WORKER_SCHEDULED, &w->state) && in mt76_worker_schedule()
93 !test_bit(MT76_WORKER_RUNNING, &w->state)) in mt76_worker_schedule()
94 wake_up_process(w->task); in mt76_worker_schedule()
97 static inline void mt76_worker_disable(struct mt76_worker *w) in mt76_worker_disable() argument
99 if (!w->task) in mt76_worker_disable()
102 kthread_park(w->task); in mt76_worker_disable()
103 WRITE_ONCE(w->state, 0); in mt76_worker_disable()
106 static inline void mt76_worker_enable(struct mt76_worker *w) in mt76_worker_enable() argument
108 if (!w->task) in mt76_worker_enable()
111 kthread_unpark(w->task); in mt76_worker_enable()
112 mt76_worker_schedule(w); in mt76_worker_enable()
115 static inline void mt76_worker_teardown(struct mt76_worker *w) in mt76_worker_teardown() argument
117 if (!w->task) in mt76_worker_teardown()
120 kthread_stop(w->task); in mt76_worker_teardown()
121 w->task = NULL; in mt76_worker_teardown()