Lines Matching refs:gdev

76 	struct gpio_device *gdev;  member
211 guard(srcu)(&lh->gdev->srcu); in linehandle_ioctl()
213 if (!rcu_access_pointer(lh->gdev->chip)) in linehandle_ioctl()
278 gpio_device_put(lh->gdev); in linehandle_free()
298 static int linehandle_create(struct gpio_device *gdev, void __user *ip) in linehandle_create() argument
320 lh->gdev = gpio_device_get(gdev); in linehandle_create()
338 struct gpio_desc *desc = gpio_device_get_desc(gdev, offset); in linehandle_create()
373 dev_dbg(&gdev->dev, "registered chardev handle for line %d\n", in linehandle_create()
405 dev_dbg(&gdev->dev, "registered chardev handle for %d lines\n", in linehandle_create()
546 struct gpio_device *gdev; member
1575 guard(srcu)(&lr->gdev->srcu); in linereq_ioctl()
1577 if (!rcu_access_pointer(lr->gdev->chip)) in linereq_ioctl()
1606 guard(srcu)(&lr->gdev->srcu); in linereq_poll()
1608 if (!rcu_access_pointer(lr->gdev->chip)) in linereq_poll()
1628 guard(srcu)(&lr->gdev->srcu); in linereq_read()
1630 if (!rcu_access_pointer(lr->gdev->chip)) in linereq_read()
1676 blocking_notifier_chain_unregister(&lr->gdev->device_notifier, in linereq_free()
1691 gpio_device_put(lr->gdev); in linereq_free()
1707 struct device *dev = &lr->gdev->dev; in linereq_show_fdinfo()
1733 static int linereq_create(struct gpio_device *gdev, void __user *ip) in linereq_create() argument
1762 lr->gdev = gpio_device_get(gdev); in linereq_create()
1794 struct gpio_desc *desc = gpio_device_get_desc(gdev, offset); in linereq_create()
1839 dev_dbg(&gdev->dev, "registered chardev handle for line %d\n", in linereq_create()
1844 ret = blocking_notifier_chain_register(&gdev->device_notifier, in linereq_create()
1875 dev_dbg(&gdev->dev, "registered chardev handle for %d lines\n", in linereq_create()
1908 struct gpio_device *gdev; member
1929 guard(srcu)(&le->gdev->srcu); in lineevent_poll()
1931 if (!rcu_access_pointer(le->gdev->chip)) in lineevent_poll()
1967 guard(srcu)(&le->gdev->srcu); in lineevent_read()
1969 if (!rcu_access_pointer(le->gdev->chip)) in lineevent_read()
2025 blocking_notifier_chain_unregister(&le->gdev->device_notifier, in lineevent_free()
2032 gpio_device_put(le->gdev); in lineevent_free()
2049 guard(srcu)(&le->gdev->srcu); in lineevent_ioctl()
2051 if (!rcu_access_pointer(le->gdev->chip)) in lineevent_ioctl()
2157 static int lineevent_create(struct gpio_device *gdev, void __user *ip) in lineevent_create() argument
2178 desc = gpio_device_get_desc(gdev, offset); in lineevent_create()
2204 le->gdev = gpio_device_get(gdev); in lineevent_create()
2249 ret = blocking_notifier_chain_register(&gdev->device_notifier, in lineevent_create()
2373 scoped_guard(srcu, &desc->gdev->desc_srcu) { in gpio_desc_to_lineinfo()
2433 struct gpio_device *gdev; member
2446 struct gpio_device *gdev = cdev->gdev; in chipinfo_get() local
2451 strscpy(chipinfo.name, dev_name(&gdev->dev), sizeof(chipinfo.name)); in chipinfo_get()
2452 strscpy(chipinfo.label, gdev->label, sizeof(chipinfo.label)); in chipinfo_get()
2453 chipinfo.lines = gdev->ngpio; in chipinfo_get()
2485 desc = gpio_device_get_desc(cdev->gdev, lineinfo.line_offset); in lineinfo_get_v1()
2522 desc = gpio_device_get_desc(cdev->gdev, lineinfo.offset); in lineinfo_get()
2553 if (offset >= cdev->gdev->ngpio) in lineinfo_unwatch()
2568 struct gpio_device *gdev = cdev->gdev; in gpio_ioctl() local
2571 guard(srcu)(&gdev->srcu); in gpio_ioctl()
2574 if (!rcu_access_pointer(gdev->chip)) in gpio_ioctl()
2583 return linehandle_create(gdev, ip); in gpio_ioctl()
2585 return lineevent_create(gdev, ip); in gpio_ioctl()
2596 return linereq_create(gdev, ip); in gpio_ioctl()
2657 guard(srcu)(&cdev->gdev->srcu); in lineinfo_watch_poll()
2659 if (!rcu_access_pointer(cdev->gdev->chip)) in lineinfo_watch_poll()
2680 guard(srcu)(&cdev->gdev->srcu); in lineinfo_watch_read()
2682 if (!rcu_access_pointer(cdev->gdev->chip)) in lineinfo_watch_read()
2757 struct gpio_device *gdev = container_of(inode->i_cdev, in gpio_chrdev_open() local
2762 guard(srcu)(&gdev->srcu); in gpio_chrdev_open()
2765 if (!rcu_access_pointer(gdev->chip)) in gpio_chrdev_open()
2772 cdev->watched_lines = bitmap_zalloc(gdev->ngpio, GFP_KERNEL); in gpio_chrdev_open()
2778 cdev->gdev = gpio_device_get(gdev); in gpio_chrdev_open()
2781 ret = blocking_notifier_chain_register(&gdev->line_state_notifier, in gpio_chrdev_open()
2788 ret = blocking_notifier_chain_register(&gdev->device_notifier, in gpio_chrdev_open()
2802 blocking_notifier_chain_unregister(&gdev->device_notifier, in gpio_chrdev_open()
2805 blocking_notifier_chain_unregister(&gdev->line_state_notifier, in gpio_chrdev_open()
2808 gpio_device_put(gdev); in gpio_chrdev_open()
2826 struct gpio_device *gdev = cdev->gdev; in gpio_chrdev_release() local
2828 blocking_notifier_chain_unregister(&gdev->device_notifier, in gpio_chrdev_release()
2830 blocking_notifier_chain_unregister(&gdev->line_state_notifier, in gpio_chrdev_release()
2833 gpio_device_put(gdev); in gpio_chrdev_release()
2851 int gpiolib_cdev_register(struct gpio_device *gdev, dev_t devt) in gpiolib_cdev_register() argument
2856 cdev_init(&gdev->chrdev, &gpio_fileops); in gpiolib_cdev_register()
2857 gdev->chrdev.owner = THIS_MODULE; in gpiolib_cdev_register()
2858 gdev->dev.devt = MKDEV(MAJOR(devt), gdev->id); in gpiolib_cdev_register()
2860 ret = cdev_device_add(&gdev->chrdev, &gdev->dev); in gpiolib_cdev_register()
2864 guard(srcu)(&gdev->srcu); in gpiolib_cdev_register()
2865 gc = srcu_dereference(gdev->chip, &gdev->srcu); in gpiolib_cdev_register()
2869 chip_dbg(gc, "added GPIO chardev (%d:%d)\n", MAJOR(devt), gdev->id); in gpiolib_cdev_register()
2874 void gpiolib_cdev_unregister(struct gpio_device *gdev) in gpiolib_cdev_unregister() argument
2876 cdev_device_del(&gdev->chrdev, &gdev->dev); in gpiolib_cdev_unregister()
2877 blocking_notifier_call_chain(&gdev->device_notifier, 0, NULL); in gpiolib_cdev_unregister()