Lines Matching refs:indio_dev

66 int iio_push_event(struct iio_dev *indio_dev, u64 ev_code, s64 timestamp)  in iio_push_event()  argument
68 struct iio_event_interface *ev_int = indio_dev->event_interface; in iio_push_event()
101 struct iio_dev *indio_dev = filep->private_data; in iio_event_poll() local
102 struct iio_event_interface *ev_int = indio_dev->event_interface; in iio_event_poll()
105 if (!indio_dev->info) in iio_event_poll()
121 struct iio_dev *indio_dev = filep->private_data; in iio_event_chrdev_read() local
122 struct iio_event_interface *ev_int = indio_dev->event_interface; in iio_event_chrdev_read()
126 if (!indio_dev->info) in iio_event_chrdev_read()
139 indio_dev->info == NULL); in iio_event_chrdev_read()
142 if (indio_dev->info == NULL) in iio_event_chrdev_read()
170 struct iio_dev *indio_dev = filep->private_data; in iio_event_chrdev_release() local
171 struct iio_event_interface *ev_int = indio_dev->event_interface; in iio_event_chrdev_release()
175 iio_device_put(indio_dev); in iio_event_chrdev_release()
188 int iio_event_getfd(struct iio_dev *indio_dev) in iio_event_getfd() argument
190 struct iio_event_interface *ev_int = indio_dev->event_interface; in iio_event_getfd()
196 fd = mutex_lock_interruptible(&indio_dev->mlock); in iio_event_getfd()
205 iio_device_get(indio_dev); in iio_event_getfd()
208 indio_dev, O_RDONLY | O_CLOEXEC); in iio_event_getfd()
211 iio_device_put(indio_dev); in iio_event_getfd()
217 mutex_unlock(&indio_dev->mlock); in iio_event_getfd()
265 struct iio_dev *indio_dev = dev_to_iio_dev(dev); in iio_ev_state_store() local
274 ret = indio_dev->info->write_event_config(indio_dev, in iio_ev_state_store()
285 struct iio_dev *indio_dev = dev_to_iio_dev(dev); in iio_ev_state_show() local
289 val = indio_dev->info->read_event_config(indio_dev, in iio_ev_state_show()
302 struct iio_dev *indio_dev = dev_to_iio_dev(dev); in iio_ev_value_show() local
307 ret = indio_dev->info->read_event_value(indio_dev, in iio_ev_value_show()
323 struct iio_dev *indio_dev = dev_to_iio_dev(dev); in iio_ev_value_store() local
328 if (!indio_dev->info->write_event_value) in iio_ev_value_store()
334 ret = indio_dev->info->write_event_value(indio_dev, in iio_ev_value_store()
344 static int iio_device_add_event(struct iio_dev *indio_dev, in iio_device_add_event() argument
381 (i << 16) | spec_index, shared_by, &indio_dev->dev, in iio_device_add_event()
382 &indio_dev->event_interface->dev_attr_list); in iio_device_add_event()
397 static int iio_device_add_event_sysfs(struct iio_dev *indio_dev, in iio_device_add_event_sysfs() argument
408 ret = iio_device_add_event(indio_dev, chan, i, type, dir, in iio_device_add_event_sysfs()
414 ret = iio_device_add_event(indio_dev, chan, i, type, dir, in iio_device_add_event_sysfs()
421 ret = iio_device_add_event(indio_dev, chan, i, type, dir, in iio_device_add_event_sysfs()
428 ret = iio_device_add_event(indio_dev, chan, i, type, dir, in iio_device_add_event_sysfs()
439 static inline int __iio_add_event_config_attrs(struct iio_dev *indio_dev) in __iio_add_event_config_attrs() argument
444 for (j = 0; j < indio_dev->num_channels; j++) { in __iio_add_event_config_attrs()
445 ret = iio_device_add_event_sysfs(indio_dev, in __iio_add_event_config_attrs()
446 &indio_dev->channels[j]); in __iio_add_event_config_attrs()
454 static bool iio_check_for_dynamic_events(struct iio_dev *indio_dev) in iio_check_for_dynamic_events() argument
458 for (j = 0; j < indio_dev->num_channels; j++) { in iio_check_for_dynamic_events()
459 if (indio_dev->channels[j].num_event_specs != 0) in iio_check_for_dynamic_events()
473 int iio_device_register_eventset(struct iio_dev *indio_dev) in iio_device_register_eventset() argument
479 if (!(indio_dev->info->event_attrs || in iio_device_register_eventset()
480 iio_check_for_dynamic_events(indio_dev))) in iio_device_register_eventset()
483 indio_dev->event_interface = in iio_device_register_eventset()
485 if (indio_dev->event_interface == NULL) in iio_device_register_eventset()
488 INIT_LIST_HEAD(&indio_dev->event_interface->dev_attr_list); in iio_device_register_eventset()
490 iio_setup_ev_int(indio_dev->event_interface); in iio_device_register_eventset()
491 if (indio_dev->info->event_attrs != NULL) { in iio_device_register_eventset()
492 attr = indio_dev->info->event_attrs->attrs; in iio_device_register_eventset()
497 if (indio_dev->channels) { in iio_device_register_eventset()
498 ret = __iio_add_event_config_attrs(indio_dev); in iio_device_register_eventset()
504 indio_dev->event_interface->group.name = iio_event_group_name; in iio_device_register_eventset()
505 indio_dev->event_interface->group.attrs = kcalloc(attrcount + 1, in iio_device_register_eventset()
506 sizeof(indio_dev->event_interface->group.attrs[0]), in iio_device_register_eventset()
508 if (indio_dev->event_interface->group.attrs == NULL) { in iio_device_register_eventset()
512 if (indio_dev->info->event_attrs) in iio_device_register_eventset()
513 memcpy(indio_dev->event_interface->group.attrs, in iio_device_register_eventset()
514 indio_dev->info->event_attrs->attrs, in iio_device_register_eventset()
515 sizeof(indio_dev->event_interface->group.attrs[0]) in iio_device_register_eventset()
520 &indio_dev->event_interface->dev_attr_list, in iio_device_register_eventset()
522 indio_dev->event_interface->group.attrs[attrn++] = in iio_device_register_eventset()
524 indio_dev->groups[indio_dev->groupcounter++] = in iio_device_register_eventset()
525 &indio_dev->event_interface->group; in iio_device_register_eventset()
530 iio_free_chan_devattr_list(&indio_dev->event_interface->dev_attr_list); in iio_device_register_eventset()
531 kfree(indio_dev->event_interface); in iio_device_register_eventset()
532 indio_dev->event_interface = NULL; in iio_device_register_eventset()
543 void iio_device_wakeup_eventset(struct iio_dev *indio_dev) in iio_device_wakeup_eventset() argument
545 if (indio_dev->event_interface == NULL) in iio_device_wakeup_eventset()
547 wake_up(&indio_dev->event_interface->wait); in iio_device_wakeup_eventset()
550 void iio_device_unregister_eventset(struct iio_dev *indio_dev) in iio_device_unregister_eventset() argument
552 if (indio_dev->event_interface == NULL) in iio_device_unregister_eventset()
554 iio_free_chan_devattr_list(&indio_dev->event_interface->dev_attr_list); in iio_device_unregister_eventset()
555 kfree(indio_dev->event_interface->group.attrs); in iio_device_unregister_eventset()
556 kfree(indio_dev->event_interface); in iio_device_unregister_eventset()