* [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper @ 2022-11-25 18:11 Andy Shevchenko 2022-11-25 18:11 ` [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() Andy Shevchenko 2022-11-28 18:04 ` [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper Bartosz Golaszewski 0 siblings, 2 replies; 11+ messages in thread From: Andy Shevchenko @ 2022-11-25 18:11 UTC (permalink / raw) To: Andy Shevchenko, Bartosz Golaszewski, linux-gpio, linux-kernel Cc: Linus Walleij Provide to_gpio_device() helper which can be utilized in the existing and future code. While at it, make sure it becomes no-op at compilation time. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/gpio/gpiolib.c | 2 +- drivers/gpio/gpiolib.h | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 119c9c3a2a50..9b935288db9d 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -547,7 +547,7 @@ EXPORT_SYMBOL_GPL(gpiochip_line_is_valid); static void gpiodevice_release(struct device *dev) { - struct gpio_device *gdev = container_of(dev, struct gpio_device, dev); + struct gpio_device *gdev = to_gpio_device(dev); unsigned long flags; spin_lock_irqsave(&gpio_lock, flags); diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h index d900ecdbac46..027674025561 100644 --- a/drivers/gpio/gpiolib.h +++ b/drivers/gpio/gpiolib.h @@ -20,9 +20,9 @@ /** * struct gpio_device - internal state container for GPIO devices - * @id: numerical ID number for the GPIO chip * @dev: the GPIO device struct * @chrdev: character device for the GPIO device + * @id: numerical ID number for the GPIO chip * @mockdev: class device used by the deprecated sysfs interface (may be * NULL) * @owner: helps prevent removal of modules exporting active GPIOs @@ -47,9 +47,9 @@ * userspace. */ struct gpio_device { - int id; struct device dev; struct cdev chrdev; + int id; struct device *mockdev; struct module *owner; struct gpio_chip *chip; @@ -72,6 +72,8 @@ struct gpio_device { #endif }; +#define to_gpio_device(_dev_) container_of(_dev_, struct gpio_device, dev) + /* gpio suffixes used for ACPI and device tree lookup */ static __maybe_unused const char * const gpio_suffixes[] = { "gpios", "gpio" }; -- 2.35.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() 2022-11-25 18:11 [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper Andy Shevchenko @ 2022-11-25 18:11 ` Andy Shevchenko 2022-11-28 20:27 ` Linus Walleij 2022-11-29 13:54 ` Bartosz Golaszewski 2022-11-28 18:04 ` [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper Bartosz Golaszewski 1 sibling, 2 replies; 11+ messages in thread From: Andy Shevchenko @ 2022-11-25 18:11 UTC (permalink / raw) To: Andy Shevchenko, Bartosz Golaszewski, linux-gpio, linux-kernel Cc: Linus Walleij Introduce gpio_device_get() and gpio_device_put() helpers and convert existing users. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/gpio/gpiolib-cdev.c | 21 +++++++++------------ drivers/gpio/gpiolib.c | 14 ++++++-------- drivers/gpio/gpiolib.h | 10 ++++++++++ 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index f9288e41e3a7..acfb779767ed 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -265,7 +265,7 @@ static void linehandle_free(struct linehandle_state *lh) if (lh->descs[i]) gpiod_free(lh->descs[i]); kfree(lh->label); - put_device(&lh->gdev->dev); + gpio_device_put(lh->gdev); kfree(lh); } @@ -307,8 +307,7 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) lh = kzalloc(sizeof(*lh), GFP_KERNEL); if (!lh) return -ENOMEM; - lh->gdev = gdev; - get_device(&gdev->dev); + lh->gdev = gpio_device_get(gdev); if (handlereq.consumer_label[0] != '\0') { /* label is only initialized if consumer_label is set */ @@ -1480,7 +1479,7 @@ static void linereq_free(struct linereq *lr) } kfifo_free(&lr->events); kfree(lr->label); - put_device(&lr->gdev->dev); + gpio_device_put(lr->gdev); kfree(lr); } @@ -1550,8 +1549,7 @@ static int linereq_create(struct gpio_device *gdev, void __user *ip) if (!lr) return -ENOMEM; - lr->gdev = gdev; - get_device(&gdev->dev); + lr->gdev = gpio_device_get(gdev); for (i = 0; i < ulr.num_lines; i++) { lr->lines[i].req = lr; @@ -1799,7 +1797,7 @@ static void lineevent_free(struct lineevent_state *le) if (le->desc) gpiod_free(le->desc); kfree(le->label); - put_device(&le->gdev->dev); + gpio_device_put(le->gdev); kfree(le); } @@ -1965,8 +1963,7 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) le = kzalloc(sizeof(*le), GFP_KERNEL); if (!le) return -ENOMEM; - le->gdev = gdev; - get_device(&gdev->dev); + le->gdev = gpio_device_get(gdev); if (eventreq.consumer_label[0] != '\0') { /* label is only initialized if consumer_label is set */ @@ -2514,7 +2511,7 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file) init_waitqueue_head(&cdev->wait); INIT_KFIFO(cdev->events); - cdev->gdev = gdev; + cdev->gdev = gpio_device_get(gdev); cdev->lineinfo_changed_nb.notifier_call = lineinfo_changed_notify; ret = blocking_notifier_chain_register(&gdev->notifier, @@ -2522,7 +2519,6 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file) if (ret) goto out_free_bitmap; - get_device(&gdev->dev); file->private_data = cdev; ret = nonseekable_open(inode, file); @@ -2535,6 +2531,7 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file) blocking_notifier_chain_unregister(&gdev->notifier, &cdev->lineinfo_changed_nb); out_free_bitmap: + gpio_device_put(gdev); bitmap_free(cdev->watched_lines); out_free_cdev: kfree(cdev); @@ -2555,7 +2552,7 @@ static int gpio_chrdev_release(struct inode *inode, struct file *file) bitmap_free(cdev->watched_lines); blocking_notifier_chain_unregister(&gdev->notifier, &cdev->lineinfo_changed_nb); - put_device(&gdev->dev); + gpio_device_put(gdev); kfree(cdev); return 0; diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 9b935288db9d..52a1b03987dc 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -874,7 +874,7 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data, gpiochip_free_valid_mask(gc); if (gdev->dev.release) { /* release() has been registered by gpiochip_setup_dev() */ - put_device(&gdev->dev); + gpio_device_put(gdev); goto err_print_message; } err_remove_from_list: @@ -961,7 +961,7 @@ void gpiochip_remove(struct gpio_chip *gc) * gone. */ gcdev_unregister(gdev); - put_device(&gdev->dev); + gpio_device_put(gdev); } EXPORT_SYMBOL_GPL(gpiochip_remove); @@ -2052,17 +2052,15 @@ static int validate_desc(const struct gpio_desc *desc, const char *func) int gpiod_request(struct gpio_desc *desc, const char *label) { int ret = -EPROBE_DEFER; - struct gpio_device *gdev; VALIDATE_DESC(desc); - gdev = desc->gdev; - if (try_module_get(gdev->owner)) { + if (try_module_get(desc->gdev->owner)) { ret = gpiod_request_commit(desc, label); if (ret) - module_put(gdev->owner); + module_put(desc->gdev->owner); else - get_device(&gdev->dev); + gpio_device_get(desc->gdev); } if (ret) @@ -2123,7 +2121,7 @@ void gpiod_free(struct gpio_desc *desc) { if (desc && desc->gdev && gpiod_free_commit(desc)) { module_put(desc->gdev->owner); - put_device(&desc->gdev->dev); + gpio_device_put(desc->gdev); } else { WARN_ON(extra_checks); } diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h index 027674025561..13b2c02ec328 100644 --- a/drivers/gpio/gpiolib.h +++ b/drivers/gpio/gpiolib.h @@ -74,6 +74,16 @@ struct gpio_device { #define to_gpio_device(_dev_) container_of(_dev_, struct gpio_device, dev) +static inline struct gpio_device *gpio_device_get(struct gpio_device *gdev) +{ + return to_gpio_device(get_device(&gdev->dev)); +} + +static inline void gpio_device_put(struct gpio_device *gdev) +{ + put_device(&gdev->dev); +} + /* gpio suffixes used for ACPI and device tree lookup */ static __maybe_unused const char * const gpio_suffixes[] = { "gpios", "gpio" }; -- 2.35.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() 2022-11-25 18:11 ` [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() Andy Shevchenko @ 2022-11-28 20:27 ` Linus Walleij 2022-11-29 13:54 ` Bartosz Golaszewski 1 sibling, 0 replies; 11+ messages in thread From: Linus Walleij @ 2022-11-28 20:27 UTC (permalink / raw) To: Andy Shevchenko; +Cc: Bartosz Golaszewski, linux-gpio, linux-kernel On Fri, Nov 25, 2022 at 7:11 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > Introduce gpio_device_get() and gpio_device_put() helpers > and convert existing users. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> That's nice coding taste. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() 2022-11-25 18:11 ` [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() Andy Shevchenko 2022-11-28 20:27 ` Linus Walleij @ 2022-11-29 13:54 ` Bartosz Golaszewski 2022-11-29 14:47 ` Andy Shevchenko 1 sibling, 1 reply; 11+ messages in thread From: Bartosz Golaszewski @ 2022-11-29 13:54 UTC (permalink / raw) To: Andy Shevchenko; +Cc: linux-gpio, linux-kernel, Linus Walleij On Fri, Nov 25, 2022 at 7:11 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > Introduce gpio_device_get() and gpio_device_put() helpers > and convert existing users. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- This doesn't apply to my for-next branch, can you rebase and resend (just this one, the other is applied). Bartosz ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() 2022-11-29 13:54 ` Bartosz Golaszewski @ 2022-11-29 14:47 ` Andy Shevchenko 2022-11-29 15:49 ` Bartosz Golaszewski 2022-12-03 22:19 ` Linus Walleij 0 siblings, 2 replies; 11+ messages in thread From: Andy Shevchenko @ 2022-11-29 14:47 UTC (permalink / raw) To: Bartosz Golaszewski; +Cc: linux-gpio, linux-kernel, Linus Walleij On Tue, Nov 29, 2022 at 02:54:10PM +0100, Bartosz Golaszewski wrote: > On Fri, Nov 25, 2022 at 7:11 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: > > > > Introduce gpio_device_get() and gpio_device_put() helpers > > and convert existing users. > This doesn't apply to my for-next branch, can you rebase and resend > (just this one, the other is applied). The problem is that you don't merge or cherry-pick fixes into your for-next branch and they are getting diverged. In PDx86 subsystem we decided to cherry-pick the fixes into for-next. Some other subsystems are doing back-merges (but I remember that Linus T. complained about back merges, although I dunno if it's still the case). Some subsystems merges their fixes into for-next, dunno if it's the best practice either. That said, this can be submitted after v6.2-rc1 is out. -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() 2022-11-29 14:47 ` Andy Shevchenko @ 2022-11-29 15:49 ` Bartosz Golaszewski 2022-11-29 16:21 ` Andy Shevchenko 2022-12-03 22:19 ` Linus Walleij 1 sibling, 1 reply; 11+ messages in thread From: Bartosz Golaszewski @ 2022-11-29 15:49 UTC (permalink / raw) To: Andy Shevchenko; +Cc: linux-gpio, linux-kernel, Linus Walleij On Tue, Nov 29, 2022 at 3:47 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > On Tue, Nov 29, 2022 at 02:54:10PM +0100, Bartosz Golaszewski wrote: > > On Fri, Nov 25, 2022 at 7:11 PM Andy Shevchenko > > <andriy.shevchenko@linux.intel.com> wrote: > > > > > > Introduce gpio_device_get() and gpio_device_put() helpers > > > and convert existing users. > > > This doesn't apply to my for-next branch, can you rebase and resend > > (just this one, the other is applied). > > The problem is that you don't merge or cherry-pick fixes into your > for-next branch and they are getting diverged. > > In PDx86 subsystem we decided to cherry-pick the fixes into for-next. > Some other subsystems are doing back-merges (but I remember that Linus > T. complained about back merges, although I dunno if it's still > the case). Some subsystems merges their fixes into for-next, dunno > if it's the best practice either. > > That said, this can be submitted after v6.2-rc1 is out. > I do merge tags if I need to. Normally you'd mention any requirements for the series in the cover letter. I have not sent any fixes so far in this release cycle BTW. Bart ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() 2022-11-29 15:49 ` Bartosz Golaszewski @ 2022-11-29 16:21 ` Andy Shevchenko 2022-11-29 16:48 ` Andy Shevchenko 0 siblings, 1 reply; 11+ messages in thread From: Andy Shevchenko @ 2022-11-29 16:21 UTC (permalink / raw) To: Bartosz Golaszewski; +Cc: linux-gpio, linux-kernel, Linus Walleij On Tue, Nov 29, 2022 at 04:49:34PM +0100, Bartosz Golaszewski wrote: > On Tue, Nov 29, 2022 at 3:47 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: > > On Tue, Nov 29, 2022 at 02:54:10PM +0100, Bartosz Golaszewski wrote: > > > On Fri, Nov 25, 2022 at 7:11 PM Andy Shevchenko > > > <andriy.shevchenko@linux.intel.com> wrote: > > > > > > > > Introduce gpio_device_get() and gpio_device_put() helpers > > > > and convert existing users. > > > > > This doesn't apply to my for-next branch, can you rebase and resend > > > (just this one, the other is applied). > > > > The problem is that you don't merge or cherry-pick fixes into your > > for-next branch and they are getting diverged. > > > > In PDx86 subsystem we decided to cherry-pick the fixes into for-next. > > Some other subsystems are doing back-merges (but I remember that Linus > > T. complained about back merges, although I dunno if it's still > > the case). Some subsystems merges their fixes into for-next, dunno > > if it's the best practice either. > > > > That said, this can be submitted after v6.2-rc1 is out. > > I do merge tags if I need to. Normally you'd mention any requirements > for the series in the cover letter. It's my fault. But thanks for clarifying the process. > I have not sent any fixes so far in this release cycle BTW. Yes, that's now obvious... -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() 2022-11-29 16:21 ` Andy Shevchenko @ 2022-11-29 16:48 ` Andy Shevchenko 0 siblings, 0 replies; 11+ messages in thread From: Andy Shevchenko @ 2022-11-29 16:48 UTC (permalink / raw) To: Bartosz Golaszewski; +Cc: linux-gpio, linux-kernel, Linus Walleij On Tue, Nov 29, 2022 at 06:21:28PM +0200, Andy Shevchenko wrote: > On Tue, Nov 29, 2022 at 04:49:34PM +0100, Bartosz Golaszewski wrote: > > On Tue, Nov 29, 2022 at 3:47 PM Andy Shevchenko > > <andriy.shevchenko@linux.intel.com> wrote: > > > On Tue, Nov 29, 2022 at 02:54:10PM +0100, Bartosz Golaszewski wrote: ... > > > That said, this can be submitted after v6.2-rc1 is out. Btw, since you are trying to fix a user space race, I would like to postpone this since it will conflict with that one anyway. -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() 2022-11-29 14:47 ` Andy Shevchenko 2022-11-29 15:49 ` Bartosz Golaszewski @ 2022-12-03 22:19 ` Linus Walleij 1 sibling, 0 replies; 11+ messages in thread From: Linus Walleij @ 2022-12-03 22:19 UTC (permalink / raw) To: Andy Shevchenko; +Cc: Bartosz Golaszewski, linux-gpio, linux-kernel On Tue, Nov 29, 2022 at 3:47 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > In PDx86 subsystem we decided to cherry-pick the fixes into for-next. > Some other subsystems are doing back-merges (but I remember that Linus > T. complained about back merges, although I dunno if it's still > the case). Some subsystems merges their fixes into for-next, dunno > if it's the best practice either. I usually (A) let it conflict (Torvalds will solve) if it is small and Rothwell fixed it up in next (B) back-merge some -rcN if is is big and annoying or as last resort (C) apply the patch to for-next (git will cope, but not elegant). Yours, Linus Walleij ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper 2022-11-25 18:11 [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper Andy Shevchenko 2022-11-25 18:11 ` [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() Andy Shevchenko @ 2022-11-28 18:04 ` Bartosz Golaszewski 2022-11-28 19:01 ` Andy Shevchenko 1 sibling, 1 reply; 11+ messages in thread From: Bartosz Golaszewski @ 2022-11-28 18:04 UTC (permalink / raw) To: Andy Shevchenko; +Cc: linux-gpio, linux-kernel, Linus Walleij On Fri, Nov 25, 2022 at 7:11 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > Provide to_gpio_device() helper which can be utilized in the existing > and future code. > > While at it, make sure it becomes no-op at compilation time. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/gpio/gpiolib.c | 2 +- > drivers/gpio/gpiolib.h | 6 ++++-- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > index 119c9c3a2a50..9b935288db9d 100644 > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -547,7 +547,7 @@ EXPORT_SYMBOL_GPL(gpiochip_line_is_valid); > > static void gpiodevice_release(struct device *dev) > { > - struct gpio_device *gdev = container_of(dev, struct gpio_device, dev); > + struct gpio_device *gdev = to_gpio_device(dev); > unsigned long flags; > > spin_lock_irqsave(&gpio_lock, flags); > diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h > index d900ecdbac46..027674025561 100644 > --- a/drivers/gpio/gpiolib.h > +++ b/drivers/gpio/gpiolib.h > @@ -20,9 +20,9 @@ > > /** > * struct gpio_device - internal state container for GPIO devices > - * @id: numerical ID number for the GPIO chip > * @dev: the GPIO device struct > * @chrdev: character device for the GPIO device > + * @id: numerical ID number for the GPIO chip > * @mockdev: class device used by the deprecated sysfs interface (may be > * NULL) > * @owner: helps prevent removal of modules exporting active GPIOs > @@ -47,9 +47,9 @@ > * userspace. > */ > struct gpio_device { > - int id; > struct device dev; > struct cdev chrdev; > + int id; > struct device *mockdev; > struct module *owner; > struct gpio_chip *chip; > @@ -72,6 +72,8 @@ struct gpio_device { > #endif > }; > > +#define to_gpio_device(_dev_) container_of(_dev_, struct gpio_device, dev) > + Just make it a static inline, please. Bartosz > /* gpio suffixes used for ACPI and device tree lookup */ > static __maybe_unused const char * const gpio_suffixes[] = { "gpios", "gpio" }; > > -- > 2.35.1 > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper 2022-11-28 18:04 ` [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper Bartosz Golaszewski @ 2022-11-28 19:01 ` Andy Shevchenko 0 siblings, 0 replies; 11+ messages in thread From: Andy Shevchenko @ 2022-11-28 19:01 UTC (permalink / raw) To: Bartosz Golaszewski; +Cc: linux-gpio, linux-kernel, Linus Walleij On Mon, Nov 28, 2022 at 07:04:28PM +0100, Bartosz Golaszewski wrote: > On Fri, Nov 25, 2022 at 7:11 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: ... > > +#define to_gpio_device(_dev_) container_of(_dev_, struct gpio_device, dev) > > + > > Just make it a static inline, please. Made in v2. Thanks for review! -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-12-03 22:20 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-11-25 18:11 [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper Andy Shevchenko 2022-11-25 18:11 ` [PATCH v1 2/2] gpiolib: Introduce gpio_device_get() and gpio_device_put() Andy Shevchenko 2022-11-28 20:27 ` Linus Walleij 2022-11-29 13:54 ` Bartosz Golaszewski 2022-11-29 14:47 ` Andy Shevchenko 2022-11-29 15:49 ` Bartosz Golaszewski 2022-11-29 16:21 ` Andy Shevchenko 2022-11-29 16:48 ` Andy Shevchenko 2022-12-03 22:19 ` Linus Walleij 2022-11-28 18:04 ` [PATCH v1 1/2] gpiolib: Provide to_gpio_device() helper Bartosz Golaszewski 2022-11-28 19:01 ` Andy Shevchenko
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.