staging: fbtft: make several arrays static const, makes object smaller
authorColin Ian King <colin.king@canonical.com>
Fri, 6 Sep 2019 15:30:52 +0000 (16:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Sep 2019 09:35:52 +0000 (10:35 +0100)
Don't populate the arrays on the stack but instead make them
static const. Makes the object code smaller by 1329 bytes.

Before:
   text    data     bss     dec     hex filename
   5581    1488      64    7133    1bdd drivers/staging/fbtft/fb_hx8340bn.o
   5444    1264       0    6708    1a34 drivers/staging/fbtft/fb_hx8347d.o
   3581    1360       0    4941    134d drivers/staging/fbtft/fb_ili9163.o
   7154    1552       0    8706    2202 drivers/staging/fbtft/fb_ili9320.o
   7478    2544       0   10022    2726 drivers/staging/fbtft/fb_ili9325.o
   6327    1424       0    7751    1e47 drivers/staging/fbtft/fb_s6d1121.o
   6498    1776       0    8274    2052 drivers/staging/fbtft/fb_ssd1289.o

After:
   text    data     bss     dec     hex filename
   5376    1584      64    7024    1b70 drivers/staging/fbtft/fb_hx8340bn.o
   5276    1328       0    6604    19cc drivers/staging/fbtft/fb_hx8347d.o
   3581    1360       0    4941    134d drivers/staging/fbtft/fb_ili9163.o
   6905    1616       0    8521    2149 drivers/staging/fbtft/fb_ili9320.o
   7229    2608       0    9837    266d drivers/staging/fbtft/fb_ili9325.o
   6030    1488       0    7518    1d5e drivers/staging/fbtft/fb_s6d1121.o
   6249    1872       0    8121    1fb9 drivers/staging/fbtft/fb_ssd1289.o

(gcc version 9.2.1, amd64)

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20190906153052.31846-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fbtft/fb_hx8340bn.c
drivers/staging/fbtft/fb_hx8347d.c
drivers/staging/fbtft/fb_ili9163.c
drivers/staging/fbtft/fb_ili9320.c
drivers/staging/fbtft/fb_ili9325.c
drivers/staging/fbtft/fb_s6d1121.c
drivers/staging/fbtft/fb_ssd1289.c

index d47dcf31fffb1558573799855fcb5aac7f3caa1d..2fd7b87ea0cefa76ced8368627bc4b1aac996eb6 100644 (file)
@@ -151,7 +151,7 @@ static int set_var(struct fbtft_par *par)
 #define CURVE(num, idx)  curves[(num) * par->gamma.num_values + (idx)]
 static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
-       unsigned long mask[] = {
+       static const unsigned long mask[] = {
                0x0f, 0x0f, 0x1f, 0x0f, 0x0f, 0x0f, 0x1f, 0x07, 0x07, 0x07,
                0x07, 0x07, 0x07, 0x03, 0x03, 0x0f, 0x0f, 0x1f, 0x0f, 0x0f,
                0x0f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00,
index 3427a858d17c5efcb9e40e67cd94d470b3ec0695..37eaf0862c5bd841dd9c8a4bae13f0d4b394be96 100644 (file)
@@ -95,7 +95,7 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye)
 #define CURVE(num, idx)  curves[(num) * par->gamma.num_values + (idx)]
 static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
-       unsigned long mask[] = {
+       static const unsigned long mask[] = {
                0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x1f, 0x1f,
                0x1f, 0x1f, 0x1f, 0x0f,
        };
index fd32376700e288b944308c09b5718f0329dcfefd..05648c3ffe474c78260ab3985f544ebaa63b9d57 100644 (file)
@@ -195,7 +195,7 @@ static int set_var(struct fbtft_par *par)
 #define CURVE(num, idx)  curves[(num) * par->gamma.num_values + (idx)]
 static int gamma_adj(struct fbtft_par *par, u32 *curves)
 {
-       unsigned long mask[] = {
+       static const unsigned long mask[] = {
                0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
                0x1f, 0x3f, 0x0f, 0x0f, 0x7f, 0x1f,
                0x3F, 0x3F, 0x3F, 0x3F, 0x3F};
index ea6e001288cef42aa65a1517abbd2a1f04e4927a..f2e72d14431dba301859c74882f64c7ae2943ba5 100644 (file)
@@ -214,7 +214,7 @@ static int set_var(struct fbtft_par *par)
 #define CURVE(num, idx)  curves[(num) * par->gamma.num_values + (idx)]
 static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
-       unsigned long mask[] = {
+       static const unsigned long mask[] = {
                0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
                0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
        };
index 85e54a10ed72c4c9d866d59fac20a2f6e41e1527..c9aa4cb431236b73d303d8cd9df8993883f31b10 100644 (file)
@@ -208,7 +208,7 @@ static int set_var(struct fbtft_par *par)
 #define CURVE(num, idx)  curves[(num) * par->gamma.num_values + (idx)]
 static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
-       unsigned long mask[] = {
+       static const unsigned long mask[] = {
                0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
                0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
        };
index 5a129b1352cc8ec010ec027322ad1b662ceaf0c8..8c7de3290343417b28f8ff4fa91e6c87c60053c2 100644 (file)
@@ -123,7 +123,7 @@ static int set_var(struct fbtft_par *par)
 #define CURVE(num, idx)  curves[(num) * par->gamma.num_values + (idx)]
 static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
-       unsigned long mask[] = {
+       static const unsigned long mask[] = {
                0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
                0x3f, 0x3f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
                0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f,
index 88a5b6925901d39456efd02f7816b567534cb627..7a3fe022cc69db283c2af2d35613cd89e550265d 100644 (file)
@@ -129,7 +129,7 @@ static int set_var(struct fbtft_par *par)
 #define CURVE(num, idx)  curves[(num) * par->gamma.num_values + (idx)]
 static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
-       unsigned long mask[] = {
+       static const unsigned long mask[] = {
                0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
                0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
        };