Message ID | 20180405120012.7671-1-colin.king@canonical.com |
---|---|
State | New |
Headers | show |
Series | gpio: 104-dio-48e: make array 'ports' static, shrinks object size | expand |
On Thu, Apr 05, 2018 at 01:00:12PM +0100, Colin King wrote: >From: Colin Ian King <colin.king@canonical.com> > >Don't populate the const read-only array 'ports' on the stack but instead >make it static. Makes the object code smaller by over 100 buytes: > >Before: > text data bss dec hex filename > 10959 4952 832 16743 4167 drivers/gpio/gpio-104-dio-48e.o > >After: > text data bss dec hex filename > 10790 5008 832 16630 40f6 drivers/gpio/gpio-104-dio-48e.o > >(gcc version 7.2.0 x86_64) > >Signed-off-by: Colin Ian King <colin.king@canonical.com> >--- > drivers/gpio/gpio-104-dio-48e.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/drivers/gpio/gpio-104-dio-48e.c b/drivers/gpio/gpio-104-dio-48e.c >index 31e22c93e844..9c4e07fcb74b 100644 >--- a/drivers/gpio/gpio-104-dio-48e.c >+++ b/drivers/gpio/gpio-104-dio-48e.c >@@ -188,7 +188,7 @@ static int dio48e_gpio_get_multiple(struct gpio_chip *chip, unsigned long *mask, > { > struct dio48e_gpio *const dio48egpio = 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; >-- >2.15.1 > If this makes gpio-104-dio-48e.o smaller, then it may be worthwhile to apply similar changes to gpio-104-idi-48.c and gpio-gpio-mm.c which have similar get_multiple callback implementations. Acked-by: William Breathitt Gray <vilhelm.gray@gmail.com> -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Apr 5, 2018 at 2:00 PM, Colin King <colin.king@canonical.com> wrote: > From: Colin Ian King <colin.king@canonical.com> > > Don't populate the const read-only array 'ports' on the stack but instead > make it static. Makes the object code smaller by over 100 buytes: > > Before: > text data bss dec hex filename > 10959 4952 832 16743 4167 drivers/gpio/gpio-104-dio-48e.o > > After: > text data bss dec hex filename > 10790 5008 832 16630 40f6 drivers/gpio/gpio-104-dio-48e.o > > (gcc version 7.2.0 x86_64) > > Signed-off-by: Colin Ian King <colin.king@canonical.com> Patch applied with William's ACK. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Apr 26, 2018 at 11:06:05AM +0200, Linus Walleij wrote: >On Thu, Apr 5, 2018 at 2:00 PM, Colin King <colin.king@canonical.com> wrote: > >> From: Colin Ian King <colin.king@canonical.com> >> >> Don't populate the const read-only array 'ports' on the stack but instead >> make it static. Makes the object code smaller by over 100 buytes: >> >> Before: >> text data bss dec hex filename >> 10959 4952 832 16743 4167 drivers/gpio/gpio-104-dio-48e.o >> >> After: >> text data bss dec hex filename >> 10790 5008 832 16630 40f6 drivers/gpio/gpio-104-dio-48e.o >> >> (gcc version 7.2.0 x86_64) >> >> Signed-off-by: Colin Ian King <colin.king@canonical.com> > >Patch applied with William's ACK. > >Yours, >Linus Walleij Hi Linus, A more recent version of this patch including similar changes to gpio-gpio-mm.c and gpio-104-idi-48.c is located here: https://lkml.org/lkml/2018/4/18/613 William Breathitt Gray -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpio/gpio-104-dio-48e.c b/drivers/gpio/gpio-104-dio-48e.c index 31e22c93e844..9c4e07fcb74b 100644 --- a/drivers/gpio/gpio-104-dio-48e.c +++ b/drivers/gpio/gpio-104-dio-48e.c @@ -188,7 +188,7 @@ static int dio48e_gpio_get_multiple(struct gpio_chip *chip, unsigned long *mask, { struct dio48e_gpio *const dio48egpio = 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;