Lines Matching refs:rc

205 		dev_err(&evt->rc->uwb_dev.dev,  in uwbd_event_handle_urc()
213 struct uwb_rc *rc; in uwbd_event_handle_message() local
216 rc = evt->rc; 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()
225 dev_err(&rc->uwb_dev.dev, "UWBD: '%s' message failed: %d\n", in uwbd_event_handle_message()
231 struct uwb_rc *rc; in uwbd_event_handle() local
234 rc = evt->rc; in uwbd_event_handle()
236 if (rc->ready) { in uwbd_event_handle()
247 dev_err(&rc->uwb_dev.dev, "UWBD: invalid event type %d\n", evt->type); in uwbd_event_handle()
252 __uwb_rc_put(rc); /* for the __uwb_rc_get() in uwb_rc_notif_cb() */ in uwbd_event_handle()
269 struct uwb_rc *rc = param; in uwbd() local
276 rc->uwbd.wq, in uwbd()
277 !list_empty(&rc->uwbd.event_list) in uwbd()
284 spin_lock_irqsave(&rc->uwbd.event_list_lock, flags); in uwbd()
285 if (!list_empty(&rc->uwbd.event_list)) { in uwbd()
286 evt = list_first_entry(&rc->uwbd.event_list, struct uwb_event, list_node); in uwbd()
290 spin_unlock_irqrestore(&rc->uwbd.event_list_lock, flags); in uwbd()
297 uwb_beca_purge(rc); /* Purge devices that left */ in uwbd()
304 void uwbd_start(struct uwb_rc *rc) in uwbd_start() argument
306 rc->uwbd.task = kthread_run(uwbd, rc, "uwbd"); in uwbd_start()
307 if (rc->uwbd.task == NULL) in uwbd_start()
311 rc->uwbd.pid = rc->uwbd.task->pid; in uwbd_start()
315 void uwbd_stop(struct uwb_rc *rc) in uwbd_stop() argument
317 kthread_stop(rc->uwbd.task); in uwbd_stop()
318 uwbd_flush(rc); in uwbd_stop()
335 struct uwb_rc *rc = evt->rc; in uwbd_event_queue() local
338 spin_lock_irqsave(&rc->uwbd.event_list_lock, flags); in uwbd_event_queue()
339 if (rc->uwbd.pid != 0) { in uwbd_event_queue()
340 list_add(&evt->list_node, &rc->uwbd.event_list); in uwbd_event_queue()
341 wake_up_all(&rc->uwbd.wq); in uwbd_event_queue()
343 __uwb_rc_put(evt->rc); in uwbd_event_queue()
348 spin_unlock_irqrestore(&rc->uwbd.event_list_lock, flags); in uwbd_event_queue()
352 void uwbd_flush(struct uwb_rc *rc) in uwbd_flush() argument
356 spin_lock_irq(&rc->uwbd.event_list_lock); in uwbd_flush()
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()
359 __uwb_rc_put(rc); in uwbd_flush()
366 spin_unlock_irq(&rc->uwbd.event_list_lock); in uwbd_flush()