Lines Matching refs:fweh
84 static void brcmf_fweh_queue_event(struct brcmf_fweh_info *fweh, in brcmf_fweh_queue_event() argument
89 spin_lock_irqsave(&fweh->evt_q_lock, flags); in brcmf_fweh_queue_event()
90 list_add_tail(&event->q, &fweh->event_q); in brcmf_fweh_queue_event()
91 spin_unlock_irqrestore(&fweh->evt_q_lock, flags); in brcmf_fweh_queue_event()
92 schedule_work(&fweh->event_work); in brcmf_fweh_queue_event()
101 struct brcmf_fweh_info *fweh; in brcmf_fweh_call_event_handler() local
105 fweh = &ifp->drvr->fweh; in brcmf_fweh_call_event_handler()
108 if (fweh->evt_handler[code]) in brcmf_fweh_call_event_handler()
109 err = fweh->evt_handler[code](ifp, emsg, data); in brcmf_fweh_call_event_handler()
145 (drvr->fweh.p2pdev_setup_ongoing)))); in brcmf_fweh_handle_if_event()
166 if (!drvr->fweh.evt_handler[BRCMF_E_IF]) in brcmf_fweh_handle_if_event()
192 brcmf_fweh_dequeue_event(struct brcmf_fweh_info *fweh) in brcmf_fweh_dequeue_event() argument
197 spin_lock_irqsave(&fweh->evt_q_lock, flags); in brcmf_fweh_dequeue_event()
198 if (!list_empty(&fweh->event_q)) { in brcmf_fweh_dequeue_event()
199 event = list_first_entry(&fweh->event_q, in brcmf_fweh_dequeue_event()
203 spin_unlock_irqrestore(&fweh->evt_q_lock, flags); in brcmf_fweh_dequeue_event()
217 struct brcmf_fweh_info *fweh; in brcmf_fweh_event_worker() local
223 fweh = container_of(work, struct brcmf_fweh_info, event_work); in brcmf_fweh_event_worker()
224 drvr = container_of(fweh, struct brcmf_pub, fweh); in brcmf_fweh_event_worker()
226 while ((event = brcmf_fweh_dequeue_event(fweh))) { in brcmf_fweh_event_worker()
286 ifp->drvr->fweh.p2pdev_setup_ongoing = ongoing; in brcmf_fweh_p2pdev_setup()
296 struct brcmf_fweh_info *fweh = &drvr->fweh; in brcmf_fweh_attach() local
297 INIT_WORK(&fweh->event_work, brcmf_fweh_event_worker); in brcmf_fweh_attach()
298 spin_lock_init(&fweh->evt_q_lock); in brcmf_fweh_attach()
299 INIT_LIST_HEAD(&fweh->event_q); in brcmf_fweh_attach()
309 struct brcmf_fweh_info *fweh = &drvr->fweh; in brcmf_fweh_detach() local
312 if (fweh->event_work.func) { in brcmf_fweh_detach()
313 cancel_work_sync(&fweh->event_work); in brcmf_fweh_detach()
314 WARN_ON(!list_empty(&fweh->event_q)); in brcmf_fweh_detach()
315 memset(fweh->evt_handler, 0, sizeof(fweh->evt_handler)); in brcmf_fweh_detach()
329 if (drvr->fweh.evt_handler[code]) { in brcmf_fweh_register()
333 drvr->fweh.evt_handler[code] = handler; in brcmf_fweh_register()
350 drvr->fweh.evt_handler[code] = NULL; in brcmf_fweh_unregister()
366 if (ifp->drvr->fweh.evt_handler[i]) { in brcmf_fweh_activate_events()
401 struct brcmf_fweh_info *fweh = &drvr->fweh; in brcmf_fweh_process_event() local
414 if (code != BRCMF_E_IF && !fweh->evt_handler[code]) in brcmf_fweh_process_event()
434 brcmf_fweh_queue_event(fweh, event); in brcmf_fweh_process_event()