Re: [PATCH 04/23] gpiolib: generalize devprop_gpiochip_set_names() for device properties
From: Bartosz Golaszewski <hidden>
Date: 2020-09-07 11:05:23
Also in:
linux-acpi, linux-doc, lkml
On Fri, Sep 4, 2020 at 6:44 PM Andy Shevchenko [off-list ref] wrote:
On Fri, Sep 04, 2020 at 05:45:28PM +0200, Bartosz Golaszewski wrote:quoted
From: Bartosz Golaszewski <redacted> devprop_gpiochip_set_names() is overly complicated with taking the fwnode argument (which requires using dev_fwnode() & of_fwnode_handle() in ACPI and OF GPIO code respectively). Let's just switch to using the generic device properties. This allows us to pull the code setting line names directly into gpiochip_add_data_with_key() instead of handling it separately for ACPI and OF. Signed-off-by: Bartosz Golaszewski <redacted> --- drivers/gpio/gpiolib-acpi.c | 3 --- drivers/gpio/gpiolib-devprop.c | 19 ++++++++++--------- drivers/gpio/gpiolib-of.c | 5 ----- drivers/gpio/gpiolib.c | 8 ++++---- include/linux/gpio/driver.h | 3 +-- 5 files changed, 15 insertions(+), 23 deletions(-)diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c index 54ca3c18b291..834a12f3219e 100644 --- a/drivers/gpio/gpiolib-acpi.c +++ b/drivers/gpio/gpiolib-acpi.c@@ -1221,9 +1221,6 @@ void acpi_gpiochip_add(struct gpio_chip *chip) return; } - if (!chip->names) - devprop_gpiochip_set_names(chip, dev_fwnode(chip->parent)); - acpi_gpiochip_request_regions(acpi_gpio); acpi_gpiochip_scan_gpios(acpi_gpio); acpi_walk_dep_device_list(handle);diff --git a/drivers/gpio/gpiolib-devprop.c b/drivers/gpio/gpiolib-devprop.c index 26741032fa9e..a28659b4f9c9 100644 --- a/drivers/gpio/gpiolib-devprop.c +++ b/drivers/gpio/gpiolib-devprop.c@@ -17,25 +17,24 @@ /** * devprop_gpiochip_set_names - Set GPIO line names using device properties * @chip: GPIO chip whose lines should be named, if possible - * @fwnode: Property Node containing the gpio-line-names property * * Looks for device property "gpio-line-names" and if it exists assigns * GPIO line names for the chip. The memory allocated for the assigned - * names belong to the underlying firmware node and should not be released + * names belong to the underlying software node and should not be released * by the caller. */ -void devprop_gpiochip_set_names(struct gpio_chip *chip, - const struct fwnode_handle *fwnode) +int devprop_gpiochip_set_names(struct gpio_chip *chip) { struct gpio_device *gdev = chip->gpiodev; + struct device *dev = chip->parent; const char **names; int ret, i; int count; - count = fwnode_property_read_string_array(fwnode, "gpio-line-names", + count = device_property_read_string_array(dev, "gpio-line-names", NULL, 0); if (count < 0) - return; + return 0;Can we introduce a followup to 33ee09cd59ce ("device property: Add helpers to count items in an array") for strings?
Sure, I'll do this in v2. Bart