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)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 17 Sep 2019 12:38:53 +0000 (14:38 +0200)
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>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190906153052.31846-1-colin.king@canonical.com
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 d47dcf3..2fd7b87 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 3427a85..37eaf08 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 d609a2b..0d847ea 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 ea6e001..f2e72d1 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 b090e7a..dd40b02 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 b3d0701..1666fba 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 bbf75f7..3115fe0 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,
        };