Lines Matching refs:fweh
136 static void brcmf_fweh_queue_event(struct brcmf_fweh_info *fweh, in brcmf_fweh_queue_event() argument
141 spin_lock_irqsave(&fweh->evt_q_lock, flags); in brcmf_fweh_queue_event()
142 list_add_tail(&event->q, &fweh->event_q); in brcmf_fweh_queue_event()
143 spin_unlock_irqrestore(&fweh->evt_q_lock, flags); in brcmf_fweh_queue_event()
144 schedule_work(&fweh->event_work); in brcmf_fweh_queue_event()
152 struct brcmf_fweh_info *fweh; in brcmf_fweh_call_event_handler() local
156 fweh = &ifp->drvr->fweh; in brcmf_fweh_call_event_handler()
159 if (fweh->evt_handler[code]) in brcmf_fweh_call_event_handler()
160 err = fweh->evt_handler[code](ifp, emsg, data); in brcmf_fweh_call_event_handler()
197 (drvr->fweh.p2pdev_setup_ongoing)))); in brcmf_fweh_handle_if_event()
218 if (!drvr->fweh.evt_handler[BRCMF_E_IF]) in brcmf_fweh_handle_if_event()
238 brcmf_fweh_dequeue_event(struct brcmf_fweh_info *fweh) in brcmf_fweh_dequeue_event() argument
243 spin_lock_irqsave(&fweh->evt_q_lock, flags); in brcmf_fweh_dequeue_event()
244 if (!list_empty(&fweh->event_q)) { in brcmf_fweh_dequeue_event()
245 event = list_first_entry(&fweh->event_q, in brcmf_fweh_dequeue_event()
249 spin_unlock_irqrestore(&fweh->evt_q_lock, flags); in brcmf_fweh_dequeue_event()
263 struct brcmf_fweh_info *fweh; in brcmf_fweh_event_worker() local
269 fweh = container_of(work, struct brcmf_fweh_info, event_work); in brcmf_fweh_event_worker()
270 drvr = container_of(fweh, struct brcmf_pub, fweh); in brcmf_fweh_event_worker()
272 while ((event = brcmf_fweh_dequeue_event(fweh))) { in brcmf_fweh_event_worker()
328 ifp->drvr->fweh.p2pdev_setup_ongoing = ongoing; in brcmf_fweh_p2pdev_setup()
338 struct brcmf_fweh_info *fweh = &drvr->fweh; in brcmf_fweh_attach() local
339 INIT_WORK(&fweh->event_work, brcmf_fweh_event_worker); in brcmf_fweh_attach()
340 spin_lock_init(&fweh->evt_q_lock); in brcmf_fweh_attach()
341 INIT_LIST_HEAD(&fweh->event_q); in brcmf_fweh_attach()
351 struct brcmf_fweh_info *fweh = &drvr->fweh; in brcmf_fweh_detach() local
363 cancel_work_sync(&fweh->event_work); in brcmf_fweh_detach()
364 WARN_ON(!list_empty(&fweh->event_q)); in brcmf_fweh_detach()
365 memset(fweh->evt_handler, 0, sizeof(fweh->evt_handler)); in brcmf_fweh_detach()
378 if (drvr->fweh.evt_handler[code]) { in brcmf_fweh_register()
382 drvr->fweh.evt_handler[code] = handler; in brcmf_fweh_register()
399 drvr->fweh.evt_handler[code] = NULL; in brcmf_fweh_unregister()
413 if (ifp->drvr->fweh.evt_handler[i]) { in brcmf_fweh_activate_events()
445 struct brcmf_fweh_info *fweh = &drvr->fweh; in brcmf_fweh_process_event() local
459 if (code != BRCMF_E_IF && !fweh->evt_handler[code]) in brcmf_fweh_process_event()
477 brcmf_fweh_queue_event(fweh, event); in brcmf_fweh_process_event()