Lines Matching refs:gdev

70  * @gdev: the GPIO device the handle pertains to
76 struct gpio_device *gdev;
207 guard(srcu)(&lh->gdev->srcu);
209 if (!rcu_access_pointer(lh->gdev->chip))
274 gpio_device_put(lh->gdev);
294 static int linehandle_create(struct gpio_device *gdev, void __user *ip)
316 lh->gdev = gpio_device_get(gdev);
334 struct gpio_desc *desc = gpio_device_get_desc(gdev, offset);
369 dev_dbg(&gdev->dev, "registered chardev handle for line %d\n",
401 dev_dbg(&gdev->dev, "registered chardev handle for %d lines\n",
526 * @gdev: the GPIO device the line request pertains to
530 * @device_unregistered_nb: notifier block for receiving gdev unregister events
542 struct gpio_device *gdev;
1569 guard(srcu)(&lr->gdev->srcu);
1571 if (!rcu_access_pointer(lr->gdev->chip))
1600 guard(srcu)(&lr->gdev->srcu);
1602 if (!rcu_access_pointer(lr->gdev->chip))
1622 guard(srcu)(&lr->gdev->srcu);
1624 if (!rcu_access_pointer(lr->gdev->chip))
1671 blocking_notifier_chain_unregister(&lr->gdev->device_notifier,
1686 gpio_device_put(lr->gdev);
1702 struct device *dev = &lr->gdev->dev;
1728 static int linereq_create(struct gpio_device *gdev, void __user *ip)
1757 lr->gdev = gpio_device_get(gdev);
1788 struct gpio_desc *desc = gpio_device_get_desc(gdev, offset);
1833 dev_dbg(&gdev->dev, "registered chardev handle for line %d\n",
1838 ret = blocking_notifier_chain_register(&gdev->device_notifier,
1869 dev_dbg(&gdev->dev, "registered chardev handle for %d lines\n",
1889 * @gdev: the GPIO device the event pertains to
1895 * @device_unregistered_nb: notifier block for receiving gdev unregister events
1902 struct gpio_device *gdev;
1923 guard(srcu)(&le->gdev->srcu);
1925 if (!rcu_access_pointer(le->gdev->chip))
1961 guard(srcu)(&le->gdev->srcu);
1963 if (!rcu_access_pointer(le->gdev->chip))
2020 blocking_notifier_chain_unregister(&le->gdev->device_notifier,
2027 gpio_device_put(le->gdev);
2044 guard(srcu)(&le->gdev->srcu);
2046 if (!rcu_access_pointer(le->gdev->chip))
2152 static int lineevent_create(struct gpio_device *gdev, void __user *ip)
2173 desc = gpio_device_get_desc(gdev, offset);
2199 le->gdev = gpio_device_get(gdev);
2244 ret = blocking_notifier_chain_register(&gdev->device_notifier,
2368 scoped_guard(srcu, &desc->gdev->desc_srcu) {
2428 struct gpio_device *gdev;
2441 struct gpio_device *gdev = cdev->gdev;
2446 strscpy(chipinfo.name, dev_name(&gdev->dev), sizeof(chipinfo.name));
2447 strscpy(chipinfo.label, gdev->label, sizeof(chipinfo.label));
2448 chipinfo.lines = gdev->ngpio;
2480 desc = gpio_device_get_desc(cdev->gdev, lineinfo.line_offset);
2517 desc = gpio_device_get_desc(cdev->gdev, lineinfo.offset);
2548 if (offset >= cdev->gdev->ngpio)
2563 struct gpio_device *gdev = cdev->gdev;
2566 guard(srcu)(&gdev->srcu);
2569 if (!rcu_access_pointer(gdev->chip))
2578 return linehandle_create(gdev, ip);
2580 return lineevent_create(gdev, ip);
2591 return linereq_create(gdev, ip);
2652 guard(srcu)(&cdev->gdev->srcu);
2654 if (!rcu_access_pointer(cdev->gdev->chip))
2675 guard(srcu)(&cdev->gdev->srcu);
2677 if (!rcu_access_pointer(cdev->gdev->chip))
2747 struct gpio_device *gdev = container_of(inode->i_cdev,
2752 guard(srcu)(&gdev->srcu);
2755 if (!rcu_access_pointer(gdev->chip))
2762 cdev->watched_lines = bitmap_zalloc(gdev->ngpio, GFP_KERNEL);
2768 cdev->gdev = gpio_device_get(gdev);
2771 ret = blocking_notifier_chain_register(&gdev->line_state_notifier,
2778 ret = blocking_notifier_chain_register(&gdev->device_notifier,
2792 blocking_notifier_chain_unregister(&gdev->device_notifier,
2795 blocking_notifier_chain_unregister(&gdev->line_state_notifier,
2798 gpio_device_put(gdev);
2814 struct gpio_device *gdev = cdev->gdev;
2816 blocking_notifier_chain_unregister(&gdev->device_notifier,
2818 blocking_notifier_chain_unregister(&gdev->line_state_notifier,
2821 gpio_device_put(gdev);
2840 int gpiolib_cdev_register(struct gpio_device *gdev, dev_t devt)
2845 cdev_init(&gdev->chrdev, &gpio_fileops);
2846 gdev->chrdev.owner = THIS_MODULE;
2847 gdev->dev.devt = MKDEV(MAJOR(devt), gdev->id);
2849 ret = cdev_device_add(&gdev->chrdev, &gdev->dev);
2853 guard(srcu)(&gdev->srcu);
2854 gc = srcu_dereference(gdev->chip, &gdev->srcu);
2858 chip_dbg(gc, "added GPIO chardev (%d:%d)\n", MAJOR(devt), gdev->id);
2863 void gpiolib_cdev_unregister(struct gpio_device *gdev)
2865 cdev_device_del(&gdev->chrdev, &gdev->dev);
2866 blocking_notifier_call_chain(&gdev->device_notifier, 0, NULL);