• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/staging/iio/

Lines Matching defs:dev_info

102 int iio_push_event(struct iio_dev *dev_info,
107 return __iio_push_event(&dev_info->event_interfaces[ev_line],
116 struct iio_dev *dev_info = int_info->dev_info;
135 p->handler(dev_info, 1, time_ns, !(p->refcount > 1));
139 p->handler(dev_info, 1, time_ns, 0);
158 struct iio_dev *dev_info,
165 dev_info->interrupts[line_number] = iio_allocate_interrupt();
166 if (dev_info->interrupts[line_number] == NULL) {
170 dev_info->interrupts[line_number]->line_number = line_number;
171 dev_info->interrupts[line_number]->irq = irq;
172 dev_info->interrupts[line_number]->dev_info = dev_info;
182 dev_info->interrupts[line_number]);
199 void iio_unregister_interrupt_line(struct iio_dev *dev_info, int line_number)
203 free_irq(dev_info->interrupts[line_number]->irq,
204 dev_info->interrupts[line_number]);
205 kfree(dev_info->interrupts[line_number]);
499 static int iio_device_register_sysfs(struct iio_dev *dev_info)
503 ret = sysfs_create_group(&dev_info->dev.kobj, dev_info->attrs);
505 dev_err(dev_info->dev.parent,
510 if (dev_info->scan_el_attrs) {
511 ret = sysfs_create_group(&dev_info->dev.kobj,
512 dev_info->scan_el_attrs);
514 dev_err(&dev_info->dev,
522 static void iio_device_unregister_sysfs(struct iio_dev *dev_info)
524 if (dev_info->scan_el_attrs)
525 sysfs_remove_group(&dev_info->dev.kobj,
526 dev_info->scan_el_attrs);
528 sysfs_remove_group(&dev_info->dev.kobj, dev_info->attrs);
561 static int iio_device_register_id(struct iio_dev *dev_info,
565 dev_info->id = iio_get_new_idr_val(&iio_idr);
566 if (dev_info->id < 0)
567 return dev_info->id;
571 static void iio_device_unregister_id(struct iio_dev *dev_info)
573 iio_free_idr_val(&iio_idr, dev_info->id);
576 static inline int __iio_add_event_config_attrs(struct iio_dev *dev_info, int i)
582 if (dev_info->event_conf_attrs && dev_info->event_conf_attrs[i].attrs) {
583 attrp = dev_info->event_conf_attrs[i].attrs;
585 ret = sysfs_add_file_to_group(&dev_info->dev.kobj,
587 dev_info
597 attrq = dev_info->event_conf_attrs[i].attrs;
599 sysfs_remove_file_from_group(&dev_info->dev.kobj,
601 dev_info->event_attrs[i].name);
608 static inline int __iio_remove_event_config_attrs(struct iio_dev *dev_info,
613 if (dev_info->event_conf_attrs
614 && dev_info->event_conf_attrs[i].attrs) {
615 attrq = dev_info->event_conf_attrs[i].attrs;
617 sysfs_remove_file_from_group(&dev_info->dev.kobj,
619 dev_info
628 static int iio_device_register_eventset(struct iio_dev *dev_info)
632 if (dev_info->num_interrupt_lines == 0)
635 dev_info->event_interfaces =
637 *dev_info->num_interrupt_lines,
639 if (dev_info->event_interfaces == NULL) {
644 dev_info->interrupts = kzalloc(sizeof(struct iio_interrupt *)
645 *dev_info->num_interrupt_lines,
647 if (dev_info->interrupts == NULL) {
652 for (i = 0; i < dev_info->num_interrupt_lines; i++) {
653 dev_info->event_interfaces[i].owner = dev_info->driver_module;
655 snprintf(dev_info->event_interfaces[i]._name, 20,
657 dev_name(&dev_info->dev),
660 ret = iio_setup_ev_int(&dev_info->event_interfaces[i],
661 (const char *)(dev_info
664 dev_info->driver_module,
665 &dev_info->dev);
667 dev_err(&dev_info->dev,
672 dev_set_drvdata(&dev_info->event_interfaces[i].dev,
673 (void *)dev_info);
674 ret = sysfs_create_group(&dev_info
677 &dev_info->event_attrs[i]);
680 dev_err(&dev_info->dev,
686 for (i = 0; i < dev_info->num_interrupt_lines; i++) {
687 ret = __iio_add_event_config_attrs(dev_info, i);
696 __iio_remove_event_config_attrs(dev_info, i);
697 i = dev_info->num_interrupt_lines - 1;
700 sysfs_remove_group(&dev_info
702 &dev_info->event_attrs[j]);
705 iio_free_ev_int(&dev_info->event_interfaces[j]);
706 kfree(dev_info->interrupts);
708 kfree(dev_info->event_interfaces);
714 static void iio_device_unregister_eventset(struct iio_dev *dev_info)
718 if (dev_info->num_interrupt_lines == 0)
720 for (i = 0; i < dev_info->num_interrupt_lines; i++)
721 sysfs_remove_group(&dev_info
723 &dev_info->event_attrs[i]);
725 for (i = 0; i < dev_info->num_interrupt_lines; i++)
726 iio_free_ev_int(&dev_info->event_interfaces[i]);
727 kfree(dev_info->interrupts);
728 kfree(dev_info->event_interfaces);
768 int iio_device_register(struct iio_dev *dev_info)
772 ret = iio_device_register_id(dev_info, &iio_idr);
774 dev_err(&dev_info->dev, "Failed to get id\n");
777 dev_set_name(&dev_info->dev, "device%d", dev_info->id);
779 ret = device_add(&dev_info->dev);
782 ret = iio_device_register_sysfs(dev_info);
784 dev_err(dev_info->dev.parent,
788 ret = iio_device_register_eventset(dev_info);
790 dev_err(dev_info->dev.parent,
794 if (dev_info->modes & INDIO_RING_TRIGGERED)
795 iio_device_register_trigger_consumer(dev_info);
800 iio_device_unregister_sysfs(dev_info);
802 device_del(&dev_info->dev);
804 iio_device_unregister_id(dev_info);
810 void iio_device_unregister(struct iio_dev *dev_info)
812 if (dev_info->modes & INDIO_RING_TRIGGERED)
813 iio_device_unregister_trigger_consumer(dev_info);
814 iio_device_unregister_eventset(dev_info);
815 iio_device_unregister_sysfs(dev_info);
816 iio_device_unregister_id(dev_info);
817 device_unregister(&dev_info->dev);