gpiolib: put gpio_suffixes in a single compilation unit
The gpio_suffixes array is defined in the gpiolib.h header. This means the array is stored in .rodata of every compilation unit that includes it. Put the definition for the array in gpiolib.c and export just the symbol in the header. We need the size of the array so expose it too. Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Link: https://lore.kernel.org/r/20240612184821.58053-1-brgl@bgdev.pl Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
08d94c7428
commit
7e92061f1e
@ -976,7 +976,7 @@ __acpi_find_gpio(struct fwnode_handle *fwnode, const char *con_id, unsigned int
|
||||
int i;
|
||||
|
||||
/* Try first from _DSD */
|
||||
for (i = 0; i < ARRAY_SIZE(gpio_suffixes); i++) {
|
||||
for (i = 0; i < gpio_suffix_count; i++) {
|
||||
if (con_id) {
|
||||
snprintf(propname, sizeof(propname), "%s-%s",
|
||||
con_id, gpio_suffixes[i]);
|
||||
@ -1453,7 +1453,7 @@ int acpi_gpio_count(const struct fwnode_handle *fwnode, const char *con_id)
|
||||
unsigned int i;
|
||||
|
||||
/* Try first from _DSD */
|
||||
for (i = 0; i < ARRAY_SIZE(gpio_suffixes); i++) {
|
||||
for (i = 0; i < gpio_suffix_count; i++) {
|
||||
if (con_id)
|
||||
snprintf(propname, sizeof(propname), "%s-%s",
|
||||
con_id, gpio_suffixes[i]);
|
||||
|
@ -103,7 +103,7 @@ int of_gpio_count(const struct fwnode_handle *fwnode, const char *con_id)
|
||||
if (ret > 0)
|
||||
return ret;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(gpio_suffixes); i++) {
|
||||
for (i = 0; i < gpio_suffix_count; i++) {
|
||||
if (con_id)
|
||||
snprintf(propname, sizeof(propname), "%s-%s",
|
||||
con_id, gpio_suffixes[i]);
|
||||
@ -676,7 +676,7 @@ struct gpio_desc *of_find_gpio(struct device_node *np, const char *con_id,
|
||||
unsigned int i;
|
||||
|
||||
/* Try GPIO property "foo-gpios" and "foo-gpio" */
|
||||
for (i = 0; i < ARRAY_SIZE(gpio_suffixes); i++) {
|
||||
for (i = 0; i < gpio_suffix_count; i++) {
|
||||
if (con_id)
|
||||
snprintf(prop_name, sizeof(prop_name), "%s-%s", con_id,
|
||||
gpio_suffixes[i]);
|
||||
|
@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/array_size.h>
|
||||
#include <linux/bitmap.h>
|
||||
#include <linux/cleanup.h>
|
||||
#include <linux/compat.h>
|
||||
@ -89,6 +90,9 @@ DEFINE_STATIC_SRCU(gpio_devices_srcu);
|
||||
static DEFINE_MUTEX(gpio_machine_hogs_mutex);
|
||||
static LIST_HEAD(gpio_machine_hogs);
|
||||
|
||||
const char *const gpio_suffixes[] = { "gpios", "gpio" };
|
||||
const size_t gpio_suffix_count = ARRAY_SIZE(gpio_suffixes);
|
||||
|
||||
static void gpiochip_free_hogs(struct gpio_chip *gc);
|
||||
static int gpiochip_add_irqchip(struct gpio_chip *gc,
|
||||
struct lock_class_key *lock_key,
|
||||
|
@ -90,7 +90,8 @@ static inline struct gpio_device *to_gpio_device(struct device *dev)
|
||||
}
|
||||
|
||||
/* gpio suffixes used for ACPI and device tree lookup */
|
||||
static __maybe_unused const char * const gpio_suffixes[] = { "gpios", "gpio" };
|
||||
extern const char *const gpio_suffixes[];
|
||||
extern const size_t gpio_suffix_count;
|
||||
|
||||
/**
|
||||
* struct gpio_array - Opaque descriptor for a structure of GPIO array attributes
|
||||
|
Loading…
x
Reference in New Issue
Block a user