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
286 evt = list_first_entry(&rc->uwbd.event_list, struct uwb_event, list_node); in uwbd()
287 list_del(&evt->list_node); in uwbd()
289 evt = NULL; in uwbd()
292 if (evt) { in uwbd()
293 uwbd_event_handle(evt); in uwbd()
294 kfree(evt); in uwbd()
333 void uwbd_event_queue(struct uwb_event *evt) in uwbd_event_queue() argument
335 struct uwb_rc *rc = evt->rc; in uwbd_event_queue()
340 list_add(&evt->list_node, &rc->uwbd.event_list); in uwbd_event_queue()
343 __uwb_rc_put(evt->rc); in uwbd_event_queue()
344 if (evt->type == UWB_EVT_TYPE_NOTIF) in uwbd_event_queue()
345 kfree(evt->notif.rceb); in uwbd_event_queue()
346 kfree(evt); in uwbd_event_queue()
354 struct uwb_event *evt, *nxt; in uwbd_flush() local
357 list_for_each_entry_safe(evt, nxt, &rc->uwbd.event_list, list_node) { in uwbd_flush()
358 if (evt->rc == rc) { in uwbd_flush()
360 list_del(&evt->list_node); in uwbd_flush()
361 if (evt->type == UWB_EVT_TYPE_NOTIF) in uwbd_flush()
362 kfree(evt->notif.rceb); in uwbd_flush()
363 kfree(evt); in uwbd_flush()