gpio: make several const arrays static, shrinks object size
authorColin Ian King <colin.king@canonical.com>
Wed, 18 Apr 2018 17:26:34 +0000 (18:26 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 16 May 2018 12:35:24 +0000 (14:35 +0200)
Don't populate the const read-only arrays 'port' on the stack but
instead make them static. Makes the object code smaller:

Before:
  text    data     bss     dec    hex filename
  8542    4088     672   13302   33f6 drivers/gpio/gpio-gpio-mm.o
 10959    4952     832   16743   4167 drivers/gpio/gpio-104-dio-48e.o
  9022    5064    1408   15494   3c86 drivers/gpio/gpio-104-idi-48.o

After:
  text    data     bss     dec    hex filename
  8372    4144     672   13188   3384 drivers/gpio/gpio-gpio-mm.o
 10790    5008     832   16630   40f6 drivers/gpio/gpio-104-dio-48e.o
  8853    5152    1408   15413   3c35 linux/drivers/gpio/gpio-104-idi-48.o

(gcc version 7.2.0 x86_64)

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: William Breathitt Gray <vilhelm.gray@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-104-idi-48.c
drivers/gpio/gpio-gpio-mm.c

index f356326..2c9738a 100644 (file)
@@ -94,7 +94,7 @@ static int idi_48_gpio_get_multiple(struct gpio_chip *chip, unsigned long *mask,
 {
        struct idi_48_gpio *const idi48gpio = gpiochip_get_data(chip);
        size_t i;
-       const size_t ports[] = { 0, 1, 2, 4, 5, 6 };
+       static const size_t ports[] = { 0, 1, 2, 4, 5, 6 };
        const unsigned int gpio_reg_size = 8;
        unsigned int bits_offset;
        size_t word_index;
index d496cc5..b56ff2e 100644 (file)
@@ -177,7 +177,7 @@ static int gpiomm_gpio_get_multiple(struct gpio_chip *chip, unsigned long *mask,
 {
        struct gpiomm_gpio *const gpiommgpio = gpiochip_get_data(chip);
        size_t i;
-       const size_t ports[] = { 0, 1, 2, 4, 5, 6 };
+       static const size_t ports[] = { 0, 1, 2, 4, 5, 6 };
        const unsigned int gpio_reg_size = 8;
        unsigned int bits_offset;
        size_t word_index;