gpio: make several const arrays static, shrinks object size

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>
This commit is contained in:
Colin Ian King 2018-04-18 18:26:34 +01:00 коммит произвёл Linus Walleij
Родитель 537a1dc10f
Коммит 413f9e9918
2 изменённых файлов: 2 добавлений и 2 удалений

Просмотреть файл

@ -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;

Просмотреть файл

@ -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;