Lines Matching refs:raw

38 	struct ir_raw_event_ctrl *raw = (struct ir_raw_event_ctrl *)data;  in ir_raw_event_thread()  local
43 spin_lock_irq(&raw->lock); in ir_raw_event_thread()
44 retval = kfifo_len(&raw->kfifo); in ir_raw_event_thread()
52 spin_unlock_irq(&raw->lock); in ir_raw_event_thread()
57 retval = kfifo_out(&raw->kfifo, &ev, sizeof(ev)); in ir_raw_event_thread()
58 spin_unlock_irq(&raw->lock); in ir_raw_event_thread()
62 handler->decode(raw->dev, ev); in ir_raw_event_thread()
63 raw->prev_ev = ev; in ir_raw_event_thread()
82 if (!dev->raw) in ir_raw_event_store()
88 if (kfifo_in(&dev->raw->kfifo, ev, sizeof(*ev)) != sizeof(*ev)) in ir_raw_event_store()
114 if (!dev->raw) in ir_raw_event_store_edge()
118 delta = ktime_to_ns(ktime_sub(now, dev->raw->last_event)); in ir_raw_event_store_edge()
125 if (delta > delay || !dev->raw->last_type) in ir_raw_event_store_edge()
132 else if (dev->raw->last_type & IR_SPACE) { in ir_raw_event_store_edge()
135 } else if (dev->raw->last_type & IR_PULSE) { in ir_raw_event_store_edge()
141 dev->raw->last_event = now; in ir_raw_event_store_edge()
142 dev->raw->last_type = type; in ir_raw_event_store_edge()
161 if (!dev->raw) in ir_raw_event_store_with_filter()
170 if (!dev->raw->this_ev.duration) in ir_raw_event_store_with_filter()
171 dev->raw->this_ev = *ev; in ir_raw_event_store_with_filter()
172 else if (ev->pulse == dev->raw->this_ev.pulse) in ir_raw_event_store_with_filter()
173 dev->raw->this_ev.duration += ev->duration; in ir_raw_event_store_with_filter()
175 ir_raw_event_store(dev, &dev->raw->this_ev); in ir_raw_event_store_with_filter()
176 dev->raw->this_ev = *ev; in ir_raw_event_store_with_filter()
181 dev->raw->this_ev.duration >= dev->timeout) in ir_raw_event_store_with_filter()
195 if (!dev->raw) in ir_raw_event_set_idle()
201 dev->raw->this_ev.timeout = true; in ir_raw_event_set_idle()
202 ir_raw_event_store(dev, &dev->raw->this_ev); in ir_raw_event_set_idle()
203 init_ir_raw_event(&dev->raw->this_ev); in ir_raw_event_set_idle()
223 if (!dev->raw) in ir_raw_event_handle()
226 spin_lock_irqsave(&dev->raw->lock, flags); in ir_raw_event_handle()
227 wake_up_process(dev->raw->thread); in ir_raw_event_handle()
228 spin_unlock_irqrestore(&dev->raw->lock, flags); in ir_raw_event_handle()
260 dev->raw = kzalloc(sizeof(*dev->raw), GFP_KERNEL); in ir_raw_event_register()
261 if (!dev->raw) in ir_raw_event_register()
264 dev->raw->dev = dev; in ir_raw_event_register()
266 rc = kfifo_alloc(&dev->raw->kfifo, in ir_raw_event_register()
272 spin_lock_init(&dev->raw->lock); in ir_raw_event_register()
273 dev->raw->thread = kthread_run(ir_raw_event_thread, dev->raw, in ir_raw_event_register()
276 if (IS_ERR(dev->raw->thread)) { in ir_raw_event_register()
277 rc = PTR_ERR(dev->raw->thread); in ir_raw_event_register()
282 list_add_tail(&dev->raw->list, &ir_raw_client_list); in ir_raw_event_register()
291 kfree(dev->raw); in ir_raw_event_register()
292 dev->raw = NULL; in ir_raw_event_register()
300 if (!dev || !dev->raw) in ir_raw_event_unregister()
303 kthread_stop(dev->raw->thread); in ir_raw_event_unregister()
306 list_del(&dev->raw->list); in ir_raw_event_unregister()
312 kfifo_free(&dev->raw->kfifo); in ir_raw_event_unregister()
313 kfree(dev->raw); in ir_raw_event_unregister()
314 dev->raw = NULL; in ir_raw_event_unregister()
323 struct ir_raw_event_ctrl *raw; in ir_raw_handler_register() local
328 list_for_each_entry(raw, &ir_raw_client_list, list) in ir_raw_handler_register()
329 ir_raw_handler->raw_register(raw->dev); in ir_raw_handler_register()
339 struct ir_raw_event_ctrl *raw; in ir_raw_handler_unregister() local
344 list_for_each_entry(raw, &ir_raw_client_list, list) in ir_raw_handler_unregister()
345 ir_raw_handler->raw_unregister(raw->dev); in ir_raw_handler_unregister()