Lines Matching refs:ev_int

45 bool iio_event_enabled(const struct iio_event_interface *ev_int)  in iio_event_enabled()  argument
47 return !!test_bit(IIO_BUSY_BIT_POS, &ev_int->flags); in iio_event_enabled()
67 struct iio_event_interface *ev_int = iio_dev_opaque->event_interface; in iio_push_event() local
71 if (!ev_int) in iio_push_event()
75 if (iio_event_enabled(ev_int)) { in iio_push_event()
80 copied = kfifo_put(&ev_int->det_events, ev); in iio_push_event()
82 wake_up_poll(&ev_int->wait, EPOLLIN); in iio_push_event()
102 struct iio_event_interface *ev_int = iio_dev_opaque->event_interface; in iio_event_poll() local
108 poll_wait(filep, &ev_int->wait, wait); in iio_event_poll()
110 if (!kfifo_is_empty(&ev_int->det_events)) in iio_event_poll()
123 struct iio_event_interface *ev_int = iio_dev_opaque->event_interface; in iio_event_chrdev_read() local
134 if (kfifo_is_empty(&ev_int->det_events)) { in iio_event_chrdev_read()
138 ret = wait_event_interruptible(ev_int->wait, in iio_event_chrdev_read()
139 !kfifo_is_empty(&ev_int->det_events) || in iio_event_chrdev_read()
147 if (mutex_lock_interruptible(&ev_int->read_lock)) in iio_event_chrdev_read()
149 ret = kfifo_to_user(&ev_int->det_events, buf, count, &copied); in iio_event_chrdev_read()
150 mutex_unlock(&ev_int->read_lock); in iio_event_chrdev_read()
173 struct iio_event_interface *ev_int = iio_dev_opaque->event_interface; in iio_event_chrdev_release() local
175 clear_bit(IIO_BUSY_BIT_POS, &ev_int->flags); in iio_event_chrdev_release()
193 struct iio_event_interface *ev_int = iio_dev_opaque->event_interface; in iio_event_getfd() local
196 if (ev_int == NULL) in iio_event_getfd()
203 if (test_and_set_bit(IIO_BUSY_BIT_POS, &ev_int->flags)) { in iio_event_getfd()
213 clear_bit(IIO_BUSY_BIT_POS, &ev_int->flags); in iio_event_getfd()
216 kfifo_reset_out(&ev_int->det_events); in iio_event_getfd()
476 static void iio_setup_ev_int(struct iio_event_interface *ev_int) in iio_setup_ev_int() argument
478 INIT_KFIFO(ev_int->det_events); in iio_setup_ev_int()
479 init_waitqueue_head(&ev_int->wait); in iio_setup_ev_int()
480 mutex_init(&ev_int->read_lock); in iio_setup_ev_int()
487 struct iio_event_interface *ev_int; in iio_device_register_eventset() local
496 ev_int = kzalloc(sizeof(struct iio_event_interface), GFP_KERNEL); in iio_device_register_eventset()
497 if (ev_int == NULL) in iio_device_register_eventset()
500 iio_dev_opaque->event_interface = ev_int; in iio_device_register_eventset()
502 INIT_LIST_HEAD(&ev_int->dev_attr_list); in iio_device_register_eventset()
504 iio_setup_ev_int(ev_int); in iio_device_register_eventset()
518 ev_int->group.name = iio_event_group_name; in iio_device_register_eventset()
519 ev_int->group.attrs = kcalloc(attrcount + 1, in iio_device_register_eventset()
520 sizeof(ev_int->group.attrs[0]), in iio_device_register_eventset()
522 if (ev_int->group.attrs == NULL) { in iio_device_register_eventset()
527 memcpy(ev_int->group.attrs, in iio_device_register_eventset()
529 sizeof(ev_int->group.attrs[0]) * attrcount_orig); in iio_device_register_eventset()
532 list_for_each_entry(p, &ev_int->dev_attr_list, l) in iio_device_register_eventset()
533 ev_int->group.attrs[attrn++] = &p->dev_attr.attr; in iio_device_register_eventset()
534 indio_dev->groups[indio_dev->groupcounter++] = &ev_int->group; in iio_device_register_eventset()
539 iio_free_chan_devattr_list(&ev_int->dev_attr_list); in iio_device_register_eventset()
540 kfree(ev_int); in iio_device_register_eventset()
564 struct iio_event_interface *ev_int = iio_dev_opaque->event_interface; in iio_device_unregister_eventset() local
566 if (ev_int == NULL) in iio_device_unregister_eventset()
568 iio_free_chan_devattr_list(&ev_int->dev_attr_list); in iio_device_unregister_eventset()
569 kfree(ev_int->group.attrs); in iio_device_unregister_eventset()
570 kfree(ev_int); in iio_device_unregister_eventset()