Lines Matching refs:notif_wait

71 void iwl_notification_wait_init(struct iwl_notif_wait_data *notif_wait)  in iwl_notification_wait_init()  argument
73 spin_lock_init(&notif_wait->notif_wait_lock); in iwl_notification_wait_init()
74 INIT_LIST_HEAD(&notif_wait->notif_waits); in iwl_notification_wait_init()
75 init_waitqueue_head(&notif_wait->notif_waitq); in iwl_notification_wait_init()
79 void iwl_notification_wait_notify(struct iwl_notif_wait_data *notif_wait, in iwl_notification_wait_notify() argument
84 if (!list_empty(&notif_wait->notif_waits)) { in iwl_notification_wait_notify()
87 spin_lock(&notif_wait->notif_wait_lock); in iwl_notification_wait_notify()
88 list_for_each_entry(w, &notif_wait->notif_waits, list) { in iwl_notification_wait_notify()
111 if (!w->fn || w->fn(notif_wait, pkt, w->fn_data)) { in iwl_notification_wait_notify()
116 spin_unlock(&notif_wait->notif_wait_lock); in iwl_notification_wait_notify()
121 wake_up_all(&notif_wait->notif_waitq); in iwl_notification_wait_notify()
125 void iwl_abort_notification_waits(struct iwl_notif_wait_data *notif_wait) in iwl_abort_notification_waits() argument
129 spin_lock(&notif_wait->notif_wait_lock); in iwl_abort_notification_waits()
130 list_for_each_entry(wait_entry, &notif_wait->notif_waits, list) in iwl_abort_notification_waits()
132 spin_unlock(&notif_wait->notif_wait_lock); in iwl_abort_notification_waits()
134 wake_up_all(&notif_wait->notif_waitq); in iwl_abort_notification_waits()
139 iwl_init_notification_wait(struct iwl_notif_wait_data *notif_wait, in iwl_init_notification_wait() argument
142 bool (*fn)(struct iwl_notif_wait_data *notif_wait, in iwl_init_notification_wait() argument
156 spin_lock_bh(&notif_wait->notif_wait_lock); in iwl_init_notification_wait()
157 list_add(&wait_entry->list, &notif_wait->notif_waits); in iwl_init_notification_wait()
158 spin_unlock_bh(&notif_wait->notif_wait_lock); in iwl_init_notification_wait()
162 int iwl_wait_notification(struct iwl_notif_wait_data *notif_wait, in iwl_wait_notification() argument
168 ret = wait_event_timeout(notif_wait->notif_waitq, in iwl_wait_notification()
172 spin_lock_bh(&notif_wait->notif_wait_lock); in iwl_wait_notification()
174 spin_unlock_bh(&notif_wait->notif_wait_lock); in iwl_wait_notification()
186 void iwl_remove_notification(struct iwl_notif_wait_data *notif_wait, in iwl_remove_notification() argument
189 spin_lock_bh(&notif_wait->notif_wait_lock); in iwl_remove_notification()
191 spin_unlock_bh(&notif_wait->notif_wait_lock); in iwl_remove_notification()