Re: [PATCH] gpiolib: make fwnode_get_named_gpiod() static

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Sep 4, 2022 at 9:22 AM Dmitry Torokhov
<dmitry.torokhov@xxxxxxxxx> wrote:
>
> There are no external users of fwnode_get_named_gpiod() anymore, so
> let's stop exporting it and mark it as static.

Agree.
Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>

> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> ---
>  drivers/gpio/gpiolib.c        | 132 +++++++++++++++++-----------------
>  include/linux/gpio/consumer.h |  13 ----
>  2 files changed, 66 insertions(+), 79 deletions(-)
>
> diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> index cc9c0a12259e..4756ea08894f 100644
> --- a/drivers/gpio/gpiolib.c
> +++ b/drivers/gpio/gpiolib.c
> @@ -3798,6 +3798,72 @@ static int platform_gpio_count(struct device *dev, const char *con_id)
>         return count;
>  }
>
> +/**
> + * fwnode_get_named_gpiod - obtain a GPIO from firmware node
> + * @fwnode:    handle of the firmware node
> + * @propname:  name of the firmware property representing the GPIO
> + * @index:     index of the GPIO to obtain for the consumer
> + * @dflags:    GPIO initialization flags
> + * @label:     label to attach to the requested GPIO
> + *
> + * This function can be used for drivers that get their configuration
> + * from opaque firmware.
> + *
> + * The function properly finds the corresponding GPIO using whatever is the
> + * underlying firmware interface and then makes sure that the GPIO
> + * descriptor is requested before it is returned to the caller.
> + *
> + * Returns:
> + * On successful request the GPIO pin is configured in accordance with
> + * provided @dflags.
> + *
> + * In case of error an ERR_PTR() is returned.
> + */
> +static struct gpio_desc *fwnode_get_named_gpiod(struct fwnode_handle *fwnode,
> +                                               const char *propname, int index,
> +                                               enum gpiod_flags dflags,
> +                                               const char *label)
> +{
> +       unsigned long lflags = GPIO_LOOKUP_FLAGS_DEFAULT;
> +       struct gpio_desc *desc = ERR_PTR(-ENODEV);
> +       int ret;
> +
> +       if (is_of_node(fwnode)) {
> +               desc = gpiod_get_from_of_node(to_of_node(fwnode),
> +                                             propname, index,
> +                                             dflags,
> +                                             label);
> +               return desc;
> +       } else if (is_acpi_node(fwnode)) {
> +               struct acpi_gpio_info info;
> +
> +               desc = acpi_node_get_gpiod(fwnode, propname, index, &info);
> +               if (IS_ERR(desc))
> +                       return desc;
> +
> +               acpi_gpio_update_gpiod_flags(&dflags, &info);
> +               acpi_gpio_update_gpiod_lookup_flags(&lflags, &info);
> +       } else {
> +               return ERR_PTR(-EINVAL);
> +       }
> +
> +       /* Currently only ACPI takes this path */
> +       ret = gpiod_request(desc, label);
> +       if (ret)
> +               return ERR_PTR(ret);
> +
> +       ret = gpiod_configure_flags(desc, propname, lflags, dflags);
> +       if (ret < 0) {
> +               gpiod_put(desc);
> +               return ERR_PTR(ret);
> +       }
> +
> +       blocking_notifier_call_chain(&desc->gdev->notifier,
> +                                    GPIOLINE_CHANGED_REQUESTED, desc);
> +
> +       return desc;
> +}
> +
>  /**
>   * fwnode_gpiod_get_index - obtain a GPIO from firmware node
>   * @fwnode:    handle of the firmware node
> @@ -4063,72 +4129,6 @@ struct gpio_desc *__must_check gpiod_get_index(struct device *dev,
>  }
>  EXPORT_SYMBOL_GPL(gpiod_get_index);
>
> -/**
> - * fwnode_get_named_gpiod - obtain a GPIO from firmware node
> - * @fwnode:    handle of the firmware node
> - * @propname:  name of the firmware property representing the GPIO
> - * @index:     index of the GPIO to obtain for the consumer
> - * @dflags:    GPIO initialization flags
> - * @label:     label to attach to the requested GPIO
> - *
> - * This function can be used for drivers that get their configuration
> - * from opaque firmware.
> - *
> - * The function properly finds the corresponding GPIO using whatever is the
> - * underlying firmware interface and then makes sure that the GPIO
> - * descriptor is requested before it is returned to the caller.
> - *
> - * Returns:
> - * On successful request the GPIO pin is configured in accordance with
> - * provided @dflags.
> - *
> - * In case of error an ERR_PTR() is returned.
> - */
> -struct gpio_desc *fwnode_get_named_gpiod(struct fwnode_handle *fwnode,
> -                                        const char *propname, int index,
> -                                        enum gpiod_flags dflags,
> -                                        const char *label)
> -{
> -       unsigned long lflags = GPIO_LOOKUP_FLAGS_DEFAULT;
> -       struct gpio_desc *desc = ERR_PTR(-ENODEV);
> -       int ret;
> -
> -       if (is_of_node(fwnode)) {
> -               desc = gpiod_get_from_of_node(to_of_node(fwnode),
> -                                             propname, index,
> -                                             dflags,
> -                                             label);
> -               return desc;
> -       } else if (is_acpi_node(fwnode)) {
> -               struct acpi_gpio_info info;
> -
> -               desc = acpi_node_get_gpiod(fwnode, propname, index, &info);
> -               if (IS_ERR(desc))
> -                       return desc;
> -
> -               acpi_gpio_update_gpiod_flags(&dflags, &info);
> -               acpi_gpio_update_gpiod_lookup_flags(&lflags, &info);
> -       } else
> -               return ERR_PTR(-EINVAL);
> -
> -       /* Currently only ACPI takes this path */
> -       ret = gpiod_request(desc, label);
> -       if (ret)
> -               return ERR_PTR(ret);
> -
> -       ret = gpiod_configure_flags(desc, propname, lflags, dflags);
> -       if (ret < 0) {
> -               gpiod_put(desc);
> -               return ERR_PTR(ret);
> -       }
> -
> -       blocking_notifier_call_chain(&desc->gdev->notifier,
> -                                    GPIOLINE_CHANGED_REQUESTED, desc);
> -
> -       return desc;
> -}
> -EXPORT_SYMBOL_GPL(fwnode_get_named_gpiod);
> -
>  /**
>   * gpiod_get_index_optional - obtain an optional GPIO from a multi-index GPIO
>   *                            function
> diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h
> index 37448ee17e81..cf7d64b0ced3 100644
> --- a/include/linux/gpio/consumer.h
> +++ b/include/linux/gpio/consumer.h
> @@ -174,10 +174,6 @@ int desc_to_gpio(const struct gpio_desc *desc);
>  /* Child properties interface */
>  struct fwnode_handle;
>
> -struct gpio_desc *fwnode_get_named_gpiod(struct fwnode_handle *fwnode,
> -                                        const char *propname, int index,
> -                                        enum gpiod_flags dflags,
> -                                        const char *label);
>  struct gpio_desc *fwnode_gpiod_get_index(struct fwnode_handle *fwnode,
>                                          const char *con_id, int index,
>                                          enum gpiod_flags flags,
> @@ -553,15 +549,6 @@ static inline int desc_to_gpio(const struct gpio_desc *desc)
>  /* Child properties interface */
>  struct fwnode_handle;
>
> -static inline
> -struct gpio_desc *fwnode_get_named_gpiod(struct fwnode_handle *fwnode,
> -                                        const char *propname, int index,
> -                                        enum gpiod_flags dflags,
> -                                        const char *label)
> -{
> -       return ERR_PTR(-ENOSYS);
> -}
> -
>  static inline
>  struct gpio_desc *fwnode_gpiod_get_index(struct fwnode_handle *fwnode,
>                                          const char *con_id, int index,
> --
> 2.37.2.789.g6183377224-goog
>
>
> --
> Dmitry



-- 
With Best Regards,
Andy Shevchenko



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux