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()
214 if (!drvr->fweh.evt_handler[BRCMF_E_IF]) in brcmf_fweh_handle_if_event()
234 brcmf_fweh_dequeue_event(struct brcmf_fweh_info *fweh) in brcmf_fweh_dequeue_event() argument
239 spin_lock_irqsave(&fweh->evt_q_lock, flags); in brcmf_fweh_dequeue_event()
240 if (!list_empty(&fweh->event_q)) { in brcmf_fweh_dequeue_event()
241 event = list_first_entry(&fweh->event_q, in brcmf_fweh_dequeue_event()
245 spin_unlock_irqrestore(&fweh->evt_q_lock, flags); in brcmf_fweh_dequeue_event()
259 struct brcmf_fweh_info *fweh; in brcmf_fweh_event_worker() local
265 fweh = container_of(work, struct brcmf_fweh_info, event_work); in brcmf_fweh_event_worker()
266 drvr = container_of(fweh, struct brcmf_pub, fweh); in brcmf_fweh_event_worker()
268 while ((event = brcmf_fweh_dequeue_event(fweh))) { in brcmf_fweh_event_worker()
324 struct brcmf_fweh_info *fweh = &drvr->fweh; in brcmf_fweh_attach() local
325 INIT_WORK(&fweh->event_work, brcmf_fweh_event_worker); in brcmf_fweh_attach()
326 spin_lock_init(&fweh->evt_q_lock); in brcmf_fweh_attach()
327 INIT_LIST_HEAD(&fweh->event_q); in brcmf_fweh_attach()
337 struct brcmf_fweh_info *fweh = &drvr->fweh; in brcmf_fweh_detach() local
349 cancel_work_sync(&fweh->event_work); in brcmf_fweh_detach()
350 WARN_ON(!list_empty(&fweh->event_q)); in brcmf_fweh_detach()
351 memset(fweh->evt_handler, 0, sizeof(fweh->evt_handler)); in brcmf_fweh_detach()
364 if (drvr->fweh.evt_handler[code]) { in brcmf_fweh_register()
368 drvr->fweh.evt_handler[code] = handler; in brcmf_fweh_register()
385 drvr->fweh.evt_handler[code] = NULL; in brcmf_fweh_unregister()
399 if (ifp->drvr->fweh.evt_handler[i]) { in brcmf_fweh_activate_events()
431 struct brcmf_fweh_info *fweh = &drvr->fweh; in brcmf_fweh_process_event() local
445 if (code != BRCMF_E_IF && !fweh->evt_handler[code]) in brcmf_fweh_process_event()
463 brcmf_fweh_queue_event(fweh, event); in brcmf_fweh_process_event()