* [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement
@ 2022-12-28 9:20 Andy Shevchenko
2022-12-28 9:20 ` [PATCH v4 1/3] gpiolib: Introduce gpio_device_get() and gpio_device_put() Andy Shevchenko
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Andy Shevchenko @ 2022-12-28 9:20 UTC (permalink / raw)
To: Andy Shevchenko, Dmitry Torokhov, Bartosz Golaszewski,
Linus Walleij, linux-gpio, linux-acpi, linux-kernel
Cc: Mika Westerberg, Bartosz Golaszewski, Thierry Reding
Now that all GPIO library users are converted to use fwnode,
Drop redundant field from struct gpio_chip and accompanying
code.
Bart, I prefer this series to go as soon as possible if you
have no objection. Or even as v6.2 material.
Thierry, can you please test it once again, so we will be sure
there is no breakage for OF platforms?
Cc: Thierry Reding <treding@nvidia.com>
v4: added couple of additional patches to the bundle that missed
the merge window by one or another reason
v3: rebased against latest Linux Next: expected not to fail now
(Also keeping in mind Thierry's report, so reworked a bit)
v2: resent against latest Linux Next: expected not to fail now
(Linux Next has no more users of of_node member of gpio_chip)
v1: to test for now (using CIs and build bots) what is left unconverted
(Expected to fail in some configurations!)
Andy Shevchenko (3):
gpiolib: Introduce gpio_device_get() and gpio_device_put()
gpiolib: Get rid of not used of_node member
gpiolib: sort header inclusion alphabetically
drivers/gpio/gpiolib-acpi.c | 10 -------
drivers/gpio/gpiolib-acpi.h | 4 ---
drivers/gpio/gpiolib-cdev.c | 21 ++++++-------
drivers/gpio/gpiolib-of.c | 25 ++++------------
drivers/gpio/gpiolib-of.h | 5 ----
drivers/gpio/gpiolib.c | 60 +++++++++++++++++--------------------
drivers/gpio/gpiolib.h | 10 +++++++
include/linux/gpio/driver.h | 7 -----
8 files changed, 51 insertions(+), 91 deletions(-)
base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2
--
2.35.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 1/3] gpiolib: Introduce gpio_device_get() and gpio_device_put()
2022-12-28 9:20 [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Andy Shevchenko
@ 2022-12-28 9:20 ` Andy Shevchenko
2022-12-28 9:20 ` [PATCH v4 2/3] gpiolib: Get rid of not used of_node member Andy Shevchenko
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Andy Shevchenko @ 2022-12-28 9:20 UTC (permalink / raw)
To: Andy Shevchenko, Dmitry Torokhov, Bartosz Golaszewski,
Linus Walleij, linux-gpio, linux-acpi, linux-kernel
Cc: Mika Westerberg, Bartosz Golaszewski
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 e878e3f22b0e..0a33971c964c 100644
--- a/drivers/gpio/gpiolib-cdev.c
+++ b/drivers/gpio/gpiolib-cdev.c
@@ -321,7 +321,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);
}
@@ -363,8 +363,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 */
@@ -1576,7 +1575,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);
}
@@ -1646,8 +1645,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;
@@ -1916,7 +1914,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);
}
@@ -2094,8 +2092,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 */
@@ -2671,7 +2668,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,
@@ -2679,7 +2676,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);
@@ -2694,6 +2690,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);
@@ -2716,7 +2713,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 5a66d9616d7c..fdb0dc464218 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -882,7 +882,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:
@@ -972,7 +972,7 @@ void gpiochip_remove(struct gpio_chip *gc)
*/
gcdev_unregister(gdev);
up_write(&gdev->sem);
- put_device(&gdev->dev);
+ gpio_device_put(gdev);
}
EXPORT_SYMBOL_GPL(gpiochip_remove);
@@ -2063,17 +2063,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)
@@ -2134,7 +2132,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 b3c2db6eba80..cca81375f127 100644
--- a/drivers/gpio/gpiolib.h
+++ b/drivers/gpio/gpiolib.h
@@ -82,6 +82,16 @@ static inline struct gpio_device *to_gpio_device(struct device *dev)
return 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] 9+ messages in thread
* [PATCH v4 2/3] gpiolib: Get rid of not used of_node member
2022-12-28 9:20 [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Andy Shevchenko
2022-12-28 9:20 ` [PATCH v4 1/3] gpiolib: Introduce gpio_device_get() and gpio_device_put() Andy Shevchenko
@ 2022-12-28 9:20 ` Andy Shevchenko
2022-12-28 9:20 ` [PATCH v4 3/3] gpiolib: sort header inclusion alphabetically Andy Shevchenko
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Andy Shevchenko @ 2022-12-28 9:20 UTC (permalink / raw)
To: Andy Shevchenko, Dmitry Torokhov, Bartosz Golaszewski,
Linus Walleij, linux-gpio, linux-acpi, linux-kernel
Cc: Mika Westerberg, Bartosz Golaszewski, Thierry Reding
All new drivers should use fwnode and / or parent to provide the
necessary information to the GPIO library.
Cc: Thierry Reding <treding@nvidia.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/gpio/gpiolib-acpi.c | 10 ----------
drivers/gpio/gpiolib-acpi.h | 4 ----
drivers/gpio/gpiolib-of.c | 25 +++++--------------------
drivers/gpio/gpiolib-of.h | 5 -----
drivers/gpio/gpiolib.c | 11 +++--------
include/linux/gpio/driver.h | 7 -------
6 files changed, 8 insertions(+), 54 deletions(-)
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index bed0380c5136..466622a8fb36 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -1387,16 +1387,6 @@ void acpi_gpiochip_remove(struct gpio_chip *chip)
kfree(acpi_gpio);
}
-void acpi_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev)
-{
- /* Set default fwnode to parent's one if present */
- if (gc->parent)
- ACPI_COMPANION_SET(&gdev->dev, ACPI_COMPANION(gc->parent));
-
- if (gc->fwnode)
- device_set_node(&gdev->dev, gc->fwnode);
-}
-
static int acpi_gpio_package_count(const union acpi_object *obj)
{
const union acpi_object *element = obj->package.elements;
diff --git a/drivers/gpio/gpiolib-acpi.h b/drivers/gpio/gpiolib-acpi.h
index 9475f99a9694..5fa315b3c912 100644
--- a/drivers/gpio/gpiolib-acpi.h
+++ b/drivers/gpio/gpiolib-acpi.h
@@ -26,8 +26,6 @@ struct gpio_device;
void acpi_gpiochip_add(struct gpio_chip *chip);
void acpi_gpiochip_remove(struct gpio_chip *chip);
-void acpi_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev);
-
void acpi_gpiochip_request_interrupts(struct gpio_chip *chip);
void acpi_gpiochip_free_interrupts(struct gpio_chip *chip);
@@ -42,8 +40,6 @@ int acpi_gpio_count(struct device *dev, const char *con_id);
static inline void acpi_gpiochip_add(struct gpio_chip *chip) { }
static inline void acpi_gpiochip_remove(struct gpio_chip *chip) { }
-static inline void acpi_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev) { }
-
static inline void
acpi_gpiochip_request_interrupts(struct gpio_chip *chip) { }
diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
index 4fff7258ee41..a6f9788d6db0 100644
--- a/drivers/gpio/gpiolib-of.c
+++ b/drivers/gpio/gpiolib-of.c
@@ -668,7 +668,7 @@ static struct gpio_desc *of_parse_own_gpio(struct device_node *np,
u32 tmp;
int ret;
- chip_np = chip->of_node;
+ chip_np = dev_of_node(&chip->gpiodev->dev);
if (!chip_np)
return ERR_PTR(-EINVAL);
@@ -760,7 +760,7 @@ static int of_gpiochip_scan_gpios(struct gpio_chip *chip)
struct device_node *np;
int ret;
- for_each_available_child_of_node(chip->of_node, np) {
+ for_each_available_child_of_node(dev_of_node(&chip->gpiodev->dev), np) {
if (!of_property_read_bool(np, "gpio-hog"))
continue;
@@ -970,14 +970,15 @@ EXPORT_SYMBOL_GPL(of_mm_gpiochip_remove);
#ifdef CONFIG_PINCTRL
static int of_gpiochip_add_pin_range(struct gpio_chip *chip)
{
- struct device_node *np = chip->of_node;
struct of_phandle_args pinspec;
struct pinctrl_dev *pctldev;
+ struct device_node *np;
int index = 0, ret;
const char *name;
static const char group_names_propname[] = "gpio-ranges-group-names";
struct property *group_names;
+ np = dev_of_node(&chip->gpiodev->dev);
if (!np)
return 0;
@@ -1063,7 +1064,7 @@ int of_gpiochip_add(struct gpio_chip *chip)
struct device_node *np;
int ret;
- np = to_of_node(dev_fwnode(&chip->gpiodev->dev));
+ np = dev_of_node(&chip->gpiodev->dev);
if (!np)
return 0;
@@ -1092,19 +1093,3 @@ void of_gpiochip_remove(struct gpio_chip *chip)
{
fwnode_handle_put(chip->fwnode);
}
-
-void of_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev)
-{
- /* Set default OF node to parent's one if present */
- if (gc->parent)
- gdev->dev.of_node = gc->parent->of_node;
-
- if (gc->fwnode)
- gc->of_node = to_of_node(gc->fwnode);
-
- /* If the gpiochip has an assigned OF node this takes precedence */
- if (gc->of_node)
- gdev->dev.of_node = gc->of_node;
- else
- gc->of_node = gdev->dev.of_node;
-}
diff --git a/drivers/gpio/gpiolib-of.h b/drivers/gpio/gpiolib-of.h
index a6c593e6766c..e5bb065d82ef 100644
--- a/drivers/gpio/gpiolib-of.h
+++ b/drivers/gpio/gpiolib-of.h
@@ -23,7 +23,6 @@ struct gpio_desc *of_find_gpio(struct device_node *np,
int of_gpiochip_add(struct gpio_chip *gc);
void of_gpiochip_remove(struct gpio_chip *gc);
int of_gpio_get_count(struct device *dev, const char *con_id);
-void of_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev);
#else
static inline struct gpio_desc *of_find_gpio(struct device_node *np,
const char *con_id,
@@ -38,10 +37,6 @@ static inline int of_gpio_get_count(struct device *dev, const char *con_id)
{
return 0;
}
-static inline void of_gpio_dev_init(struct gpio_chip *gc,
- struct gpio_device *gdev)
-{
-}
#endif /* CONFIG_OF_GPIO */
extern struct notifier_block gpio_of_notifier;
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index fdb0dc464218..e72c539fbec5 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -659,10 +659,12 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
int base = 0;
int ret = 0;
+ /* If the calling driver did not initialize firmware node, do it here */
if (gc->fwnode)
fwnode = gc->fwnode;
else if (gc->parent)
fwnode = dev_fwnode(gc->parent);
+ gc->fwnode = fwnode;
/*
* First: allocate and populate the internal stat container, and
@@ -676,14 +678,7 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
gdev->chip = gc;
gc->gpiodev = gdev;
- of_gpio_dev_init(gc, gdev);
- acpi_gpio_dev_init(gc, gdev);
-
- /*
- * Assign fwnode depending on the result of the previous calls,
- * if none of them succeed, assign it to the parent's one.
- */
- gc->fwnode = gdev->dev.fwnode = dev_fwnode(&gdev->dev) ?: fwnode;
+ device_set_node(&gdev->dev, gc->fwnode);
gdev->id = ida_alloc(&gpio_ida, GFP_KERNEL);
if (gdev->id < 0) {
diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h
index 44783fc16125..2316cb7fa667 100644
--- a/include/linux/gpio/driver.h
+++ b/include/linux/gpio/driver.h
@@ -503,13 +503,6 @@ struct gpio_chip {
* the device tree automatically may have an OF translation
*/
- /**
- * @of_node:
- *
- * Pointer to a device tree node representing this GPIO controller.
- */
- struct device_node *of_node;
-
/**
* @of_gpio_n_cells:
*
--
2.35.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 3/3] gpiolib: sort header inclusion alphabetically
2022-12-28 9:20 [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Andy Shevchenko
2022-12-28 9:20 ` [PATCH v4 1/3] gpiolib: Introduce gpio_device_get() and gpio_device_put() Andy Shevchenko
2022-12-28 9:20 ` [PATCH v4 2/3] gpiolib: Get rid of not used of_node member Andy Shevchenko
@ 2022-12-28 9:20 ` Andy Shevchenko
2022-12-29 21:20 ` [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Linus Walleij
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Andy Shevchenko @ 2022-12-28 9:20 UTC (permalink / raw)
To: Andy Shevchenko, Dmitry Torokhov, Bartosz Golaszewski,
Linus Walleij, linux-gpio, linux-acpi, linux-kernel
Cc: Mika Westerberg, Bartosz Golaszewski
Sort header inclusion alphabetically.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/gpio/gpiolib.c | 35 ++++++++++++++++++-----------------
1 file changed, 18 insertions(+), 17 deletions(-)
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index e72c539fbec5..ace11a89d24a 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1,34 +1,35 @@
// SPDX-License-Identifier: GPL-2.0
+#include <linux/acpi.h>
#include <linux/bitmap.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/spinlock.h>
-#include <linux/list.h>
+#include <linux/compat.h>
+#include <linux/debugfs.h>
#include <linux/device.h>
#include <linux/err.h>
-#include <linux/debugfs.h>
-#include <linux/seq_file.h>
+#include <linux/file.h>
+#include <linux/fs.h>
#include <linux/gpio.h>
-#include <linux/idr.h>
-#include <linux/slab.h>
-#include <linux/acpi.h>
#include <linux/gpio/driver.h>
#include <linux/gpio/machine.h>
+#include <linux/idr.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/kernel.h>
+#include <linux/list.h>
+#include <linux/module.h>
#include <linux/pinctrl/consumer.h>
-#include <linux/fs.h>
-#include <linux/compat.h>
-#include <linux/file.h>
+#include <linux/seq_file.h>
+#include <linux/slab.h>
+#include <linux/spinlock.h>
+
#include <uapi/linux/gpio.h>
-#include "gpiolib.h"
-#include "gpiolib-of.h"
#include "gpiolib-acpi.h"
-#include "gpiolib-swnode.h"
#include "gpiolib-cdev.h"
+#include "gpiolib-of.h"
+#include "gpiolib-swnode.h"
#include "gpiolib-sysfs.h"
+#include "gpiolib.h"
#define CREATE_TRACE_POINTS
#include <trace/events/gpio.h>
--
2.35.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement
2022-12-28 9:20 [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Andy Shevchenko
` (2 preceding siblings ...)
2022-12-28 9:20 ` [PATCH v4 3/3] gpiolib: sort header inclusion alphabetically Andy Shevchenko
@ 2022-12-29 21:20 ` Linus Walleij
2023-01-04 8:51 ` Bartosz Golaszewski
2023-01-04 16:41 ` Thierry Reding
5 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2022-12-29 21:20 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Dmitry Torokhov, Bartosz Golaszewski, linux-gpio, linux-acpi,
linux-kernel, Mika Westerberg, Bartosz Golaszewski,
Thierry Reding
On Wed, Dec 28, 2022 at 10:20 AM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
> Now that all GPIO library users are converted to use fwnode,
> Drop redundant field from struct gpio_chip and accompanying
> code.
This is great stuff.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement
2022-12-28 9:20 [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Andy Shevchenko
` (3 preceding siblings ...)
2022-12-29 21:20 ` [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Linus Walleij
@ 2023-01-04 8:51 ` Bartosz Golaszewski
2023-01-04 16:41 ` Thierry Reding
5 siblings, 0 replies; 9+ messages in thread
From: Bartosz Golaszewski @ 2023-01-04 8:51 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Dmitry Torokhov, Bartosz Golaszewski, Linus Walleij, linux-gpio,
linux-acpi, linux-kernel, Mika Westerberg, Thierry Reding
On Wed, Dec 28, 2022 at 10:20 AM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> Now that all GPIO library users are converted to use fwnode,
> Drop redundant field from struct gpio_chip and accompanying
> code.
>
> Bart, I prefer this series to go as soon as possible if you
> have no objection. Or even as v6.2 material.
>
> Thierry, can you please test it once again, so we will be sure
> there is no breakage for OF platforms?
>
> Cc: Thierry Reding <treding@nvidia.com>
>
> v4: added couple of additional patches to the bundle that missed
> the merge window by one or another reason
>
> v3: rebased against latest Linux Next: expected not to fail now
> (Also keeping in mind Thierry's report, so reworked a bit)
>
> v2: resent against latest Linux Next: expected not to fail now
> (Linux Next has no more users of of_node member of gpio_chip)
>
> v1: to test for now (using CIs and build bots) what is left unconverted
> (Expected to fail in some configurations!)
>
> Andy Shevchenko (3):
> gpiolib: Introduce gpio_device_get() and gpio_device_put()
> gpiolib: Get rid of not used of_node member
> gpiolib: sort header inclusion alphabetically
>
> drivers/gpio/gpiolib-acpi.c | 10 -------
> drivers/gpio/gpiolib-acpi.h | 4 ---
> drivers/gpio/gpiolib-cdev.c | 21 ++++++-------
> drivers/gpio/gpiolib-of.c | 25 ++++------------
> drivers/gpio/gpiolib-of.h | 5 ----
> drivers/gpio/gpiolib.c | 60 +++++++++++++++++--------------------
> drivers/gpio/gpiolib.h | 10 +++++++
> include/linux/gpio/driver.h | 7 -----
> 8 files changed, 51 insertions(+), 91 deletions(-)
>
>
> base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2
> --
> 2.35.1
>
I applied the series, let's give it some time in next and see that
nothing breaks.
Bart
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement
2022-12-28 9:20 [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Andy Shevchenko
` (4 preceding siblings ...)
2023-01-04 8:51 ` Bartosz Golaszewski
@ 2023-01-04 16:41 ` Thierry Reding
2023-01-04 16:51 ` Andy Shevchenko
5 siblings, 1 reply; 9+ messages in thread
From: Thierry Reding @ 2023-01-04 16:41 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Dmitry Torokhov, Bartosz Golaszewski, Linus Walleij, linux-gpio,
linux-acpi, linux-kernel, Mika Westerberg, Bartosz Golaszewski,
Thierry Reding
[-- Attachment #1: Type: text/plain, Size: 535 bytes --]
On Wed, Dec 28, 2022 at 11:20:42AM +0200, Andy Shevchenko wrote:
> Now that all GPIO library users are converted to use fwnode,
> Drop redundant field from struct gpio_chip and accompanying
> code.
>
> Bart, I prefer this series to go as soon as possible if you
> have no objection. Or even as v6.2 material.
>
> Thierry, can you please test it once again, so we will be sure
> there is no breakage for OF platforms?
Seems to be working fine on at least Jetson TX1, so:
Tested-by: Thierry Reding <treding@nvidia.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement
2023-01-04 16:41 ` Thierry Reding
@ 2023-01-04 16:51 ` Andy Shevchenko
2023-01-05 9:55 ` Thierry Reding
0 siblings, 1 reply; 9+ messages in thread
From: Andy Shevchenko @ 2023-01-04 16:51 UTC (permalink / raw)
To: Thierry Reding
Cc: Dmitry Torokhov, Bartosz Golaszewski, Linus Walleij, linux-gpio,
linux-acpi, linux-kernel, Mika Westerberg, Bartosz Golaszewski,
Thierry Reding
On Wed, Jan 04, 2023 at 05:41:46PM +0100, Thierry Reding wrote:
> On Wed, Dec 28, 2022 at 11:20:42AM +0200, Andy Shevchenko wrote:
> > Now that all GPIO library users are converted to use fwnode,
> > Drop redundant field from struct gpio_chip and accompanying
> > code.
> >
> > Bart, I prefer this series to go as soon as possible if you
> > have no objection. Or even as v6.2 material.
> >
> > Thierry, can you please test it once again, so we will be sure
> > there is no breakage for OF platforms?
>
> Seems to be working fine on at least Jetson TX1, so:
>
> Tested-by: Thierry Reding <treding@nvidia.com>
Thank you and HNY!
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement
2023-01-04 16:51 ` Andy Shevchenko
@ 2023-01-05 9:55 ` Thierry Reding
0 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2023-01-05 9:55 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Thierry Reding, Dmitry Torokhov, Bartosz Golaszewski,
Linus Walleij, linux-gpio, linux-acpi, linux-kernel,
Mika Westerberg, Bartosz Golaszewski
[-- Attachment #1: Type: text/plain, Size: 780 bytes --]
On Wed, Jan 04, 2023 at 06:51:24PM +0200, Andy Shevchenko wrote:
> On Wed, Jan 04, 2023 at 05:41:46PM +0100, Thierry Reding wrote:
> > On Wed, Dec 28, 2022 at 11:20:42AM +0200, Andy Shevchenko wrote:
> > > Now that all GPIO library users are converted to use fwnode,
> > > Drop redundant field from struct gpio_chip and accompanying
> > > code.
> > >
> > > Bart, I prefer this series to go as soon as possible if you
> > > have no objection. Or even as v6.2 material.
> > >
> > > Thierry, can you please test it once again, so we will be sure
> > > there is no breakage for OF platforms?
> >
> > Seems to be working fine on at least Jetson TX1, so:
> >
> > Tested-by: Thierry Reding <treding@nvidia.com>
>
> Thank you and HNY!
Happy New Year!
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-01-05 9:55 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-28 9:20 [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Andy Shevchenko
2022-12-28 9:20 ` [PATCH v4 1/3] gpiolib: Introduce gpio_device_get() and gpio_device_put() Andy Shevchenko
2022-12-28 9:20 ` [PATCH v4 2/3] gpiolib: Get rid of not used of_node member Andy Shevchenko
2022-12-28 9:20 ` [PATCH v4 3/3] gpiolib: sort header inclusion alphabetically Andy Shevchenko
2022-12-29 21:20 ` [rft, PATCH v4 0/3] gpiolib: eventual of_node retirement Linus Walleij
2023-01-04 8:51 ` Bartosz Golaszewski
2023-01-04 16:41 ` Thierry Reding
2023-01-04 16:51 ` Andy Shevchenko
2023-01-05 9:55 ` Thierry Reding
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).