Lines Matching refs:gdev

67 				 struct gpio_device *gdev, poll_fn func)  in call_poll_locked()  argument
71 down_read(&gdev->sem); in call_poll_locked()
73 up_read(&gdev->sem); in call_poll_locked()
79 unsigned long arg, struct gpio_device *gdev, in call_ioctl_locked() argument
84 down_read(&gdev->sem); in call_ioctl_locked()
86 up_read(&gdev->sem); in call_ioctl_locked()
93 struct gpio_device *gdev, read_fn func) in call_read_locked() argument
97 down_read(&gdev->sem); in call_read_locked()
99 up_read(&gdev->sem); in call_read_locked()
117 struct gpio_device *gdev; member
248 if (!lh->gdev->chip) in linehandle_ioctl_unlocked()
302 return call_ioctl_locked(file, cmd, arg, lh->gdev, in linehandle_ioctl()
322 gpio_device_put(lh->gdev); in linehandle_free()
342 static int linehandle_create(struct gpio_device *gdev, void __user *ip) in linehandle_create() argument
364 lh->gdev = gpio_device_get(gdev); in linehandle_create()
382 struct gpio_desc *desc = gpiochip_get_desc(gdev->chip, offset); in linehandle_create()
417 dev_dbg(&gdev->dev, "registered chardev handle for line %d\n", in linehandle_create()
449 dev_dbg(&gdev->dev, "registered chardev handle for %d lines\n", in linehandle_create()
566 struct gpio_device *gdev; member
1452 if (!lr->gdev->chip) in linereq_ioctl_unlocked()
1472 return call_ioctl_locked(file, cmd, arg, lr->gdev, in linereq_ioctl()
1490 if (!lr->gdev->chip) in linereq_poll_unlocked()
1507 return call_poll_locked(file, wait, lr->gdev, linereq_poll_unlocked); in linereq_poll()
1518 if (!lr->gdev->chip) in linereq_read_unlocked()
1570 return call_read_locked(file, buf, count, f_ps, lr->gdev, in linereq_read()
1579 blocking_notifier_chain_unregister(&lr->gdev->device_notifier, in linereq_free()
1590 gpio_device_put(lr->gdev); in linereq_free()
1606 struct device *dev = &lr->gdev->dev; in linereq_show_fdinfo()
1632 static int linereq_create(struct gpio_device *gdev, void __user *ip) in linereq_create() argument
1660 lr->gdev = gpio_device_get(gdev); in linereq_create()
1692 struct gpio_desc *desc = gpiochip_get_desc(gdev->chip, offset); in linereq_create()
1737 dev_dbg(&gdev->dev, "registered chardev handle for line %d\n", in linereq_create()
1742 ret = blocking_notifier_chain_register(&gdev->device_notifier, in linereq_create()
1773 dev_dbg(&gdev->dev, "registered chardev handle for %d lines\n", in linereq_create()
1806 struct gpio_device *gdev; member
1827 if (!le->gdev->chip) in lineevent_poll_unlocked()
1843 return call_poll_locked(file, wait, le->gdev, lineevent_poll_unlocked); in lineevent_poll()
1871 if (!le->gdev->chip) in lineevent_read_unlocked()
1936 return call_read_locked(file, buf, count, f_ps, le->gdev, in lineevent_read()
1943 blocking_notifier_chain_unregister(&le->gdev->device_notifier, in lineevent_free()
1950 gpio_device_put(le->gdev); in lineevent_free()
1967 if (!le->gdev->chip) in lineevent_ioctl_unlocked()
1997 return call_ioctl_locked(file, cmd, arg, le->gdev, in lineevent_ioctl()
2082 static int lineevent_create(struct gpio_device *gdev, void __user *ip) in lineevent_create() argument
2102 desc = gpiochip_get_desc(gdev->chip, offset); in lineevent_create()
2128 le->gdev = gpio_device_get(gdev); in lineevent_create()
2173 ret = blocking_notifier_chain_register(&gdev->device_notifier, in lineevent_create()
2274 struct gpio_chip *gc = desc->gdev->chip; in gpio_desc_to_lineinfo()
2357 struct gpio_device *gdev; member
2370 struct gpio_device *gdev = cdev->gdev; in chipinfo_get() local
2375 strscpy(chipinfo.name, dev_name(&gdev->dev), sizeof(chipinfo.name)); in chipinfo_get()
2376 strscpy(chipinfo.label, gdev->label, sizeof(chipinfo.label)); in chipinfo_get()
2377 chipinfo.lines = gdev->ngpio; in chipinfo_get()
2409 desc = gpiochip_get_desc(cdev->gdev->chip, lineinfo.line_offset); in lineinfo_get_v1()
2446 desc = gpiochip_get_desc(cdev->gdev->chip, lineinfo.offset); in lineinfo_get()
2476 if (offset >= cdev->gdev->ngpio) in lineinfo_unwatch()
2491 struct gpio_device *gdev = cdev->gdev; in gpio_ioctl() local
2495 if (!gdev->chip) in gpio_ioctl()
2504 return linehandle_create(gdev, ip); in gpio_ioctl()
2506 return lineevent_create(gdev, ip); in gpio_ioctl()
2517 return linereq_create(gdev, ip); in gpio_ioctl()
2577 if (!cdev->gdev->chip) in lineinfo_watch_poll_unlocked()
2594 return call_poll_locked(file, pollt, cdev->gdev, in lineinfo_watch_poll()
2607 if (!cdev->gdev->chip) in lineinfo_watch_read_unlocked()
2682 return call_read_locked(file, buf, count, off, cdev->gdev, in lineinfo_watch_read()
2694 struct gpio_device *gdev = container_of(inode->i_cdev, in gpio_chrdev_open() local
2699 down_read(&gdev->sem); in gpio_chrdev_open()
2702 if (!gdev->chip) { in gpio_chrdev_open()
2711 cdev->watched_lines = bitmap_zalloc(gdev->chip->ngpio, GFP_KERNEL); in gpio_chrdev_open()
2717 cdev->gdev = gpio_device_get(gdev); in gpio_chrdev_open()
2720 ret = blocking_notifier_chain_register(&gdev->line_state_notifier, in gpio_chrdev_open()
2727 ret = blocking_notifier_chain_register(&gdev->device_notifier, in gpio_chrdev_open()
2738 up_read(&gdev->sem); in gpio_chrdev_open()
2743 blocking_notifier_chain_unregister(&gdev->device_notifier, in gpio_chrdev_open()
2746 blocking_notifier_chain_unregister(&gdev->line_state_notifier, in gpio_chrdev_open()
2749 gpio_device_put(gdev); in gpio_chrdev_open()
2754 up_read(&gdev->sem); in gpio_chrdev_open()
2767 struct gpio_device *gdev = cdev->gdev; in gpio_chrdev_release() local
2770 blocking_notifier_chain_unregister(&gdev->device_notifier, in gpio_chrdev_release()
2772 blocking_notifier_chain_unregister(&gdev->line_state_notifier, in gpio_chrdev_release()
2774 gpio_device_put(gdev); in gpio_chrdev_release()
2793 int gpiolib_cdev_register(struct gpio_device *gdev, dev_t devt) in gpiolib_cdev_register() argument
2797 cdev_init(&gdev->chrdev, &gpio_fileops); in gpiolib_cdev_register()
2798 gdev->chrdev.owner = THIS_MODULE; in gpiolib_cdev_register()
2799 gdev->dev.devt = MKDEV(MAJOR(devt), gdev->id); in gpiolib_cdev_register()
2801 ret = cdev_device_add(&gdev->chrdev, &gdev->dev); in gpiolib_cdev_register()
2805 chip_dbg(gdev->chip, "added GPIO chardev (%d:%d)\n", in gpiolib_cdev_register()
2806 MAJOR(devt), gdev->id); in gpiolib_cdev_register()
2811 void gpiolib_cdev_unregister(struct gpio_device *gdev) in gpiolib_cdev_unregister() argument
2813 cdev_device_del(&gdev->chrdev, &gdev->dev); in gpiolib_cdev_unregister()
2814 blocking_notifier_call_chain(&gdev->device_notifier, 0, NULL); in gpiolib_cdev_unregister()