Lines Matching refs:evt
179 int uwbd_event_handle_urc(struct uwb_event *evt) in uwbd_event_handle_urc() argument
187 type = evt->notif.rceb->bEventType; in uwbd_event_handle_urc()
188 event = le16_to_cpu(evt->notif.rceb->wEvent); in uwbd_event_handle_urc()
189 context = evt->notif.rceb->bEventContext; in uwbd_event_handle_urc()
202 result = (*handler)(evt); in uwbd_event_handle_urc()
205 dev_err(&evt->rc->uwb_dev.dev, in uwbd_event_handle_urc()
211 static void uwbd_event_handle_message(struct uwb_event *evt) in uwbd_event_handle_message() argument
216 rc = evt->rc; in uwbd_event_handle_message()
218 if (evt->message < 0 || evt->message >= ARRAY_SIZE(uwbd_message_handlers)) { in uwbd_event_handle_message()
219 dev_err(&rc->uwb_dev.dev, "UWBD: invalid message type %d\n", evt->message); in uwbd_event_handle_message()
223 result = uwbd_message_handlers[evt->message].handler(evt); in uwbd_event_handle_message()
226 uwbd_message_handlers[evt->message].name, result); in uwbd_event_handle_message()
229 static void uwbd_event_handle(struct uwb_event *evt) in uwbd_event_handle() argument
234 rc = evt->rc; in uwbd_event_handle()
237 switch (evt->type) { in uwbd_event_handle()
239 should_keep = uwbd_event_handle_urc(evt); in uwbd_event_handle()
241 kfree(evt->notif.rceb); in uwbd_event_handle()
244 uwbd_event_handle_message(evt); in uwbd_event_handle()
247 dev_err(&rc->uwb_dev.dev, "UWBD: invalid event type %d\n", evt->type); in uwbd_event_handle()
271 struct uwb_event *evt; in uwbd() local
285 evt = list_first_entry(&rc->uwbd.event_list, struct uwb_event, list_node); in uwbd()
286 list_del(&evt->list_node); in uwbd()
288 evt = NULL; in uwbd()
291 if (evt) { in uwbd()
292 uwbd_event_handle(evt); in uwbd()
293 kfree(evt); in uwbd()
336 void uwbd_event_queue(struct uwb_event *evt) in uwbd_event_queue() argument
338 struct uwb_rc *rc = evt->rc; in uwbd_event_queue()
343 list_add(&evt->list_node, &rc->uwbd.event_list); in uwbd_event_queue()
346 __uwb_rc_put(evt->rc); in uwbd_event_queue()
347 if (evt->type == UWB_EVT_TYPE_NOTIF) in uwbd_event_queue()
348 kfree(evt->notif.rceb); in uwbd_event_queue()
349 kfree(evt); in uwbd_event_queue()
357 struct uwb_event *evt, *nxt; in uwbd_flush() local
360 list_for_each_entry_safe(evt, nxt, &rc->uwbd.event_list, list_node) { in uwbd_flush()
361 if (evt->rc == rc) { in uwbd_flush()
363 list_del(&evt->list_node); in uwbd_flush()
364 if (evt->type == UWB_EVT_TYPE_NOTIF) in uwbd_flush()
365 kfree(evt->notif.rceb); in uwbd_flush()
366 kfree(evt); in uwbd_flush()