]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
staging: fbtft: change 'gamma' array to u32
authorArnd Bergmann <arnd@arndb.de>
Thu, 2 Feb 2017 14:43:42 +0000 (15:43 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Feb 2017 12:01:36 +0000 (13:01 +0100)
Having a local variable of 1024 bytes on 64-bit architectures is a bit
too much, and I ran into this warning while trying to see what functions
use the largest stack:

drivers/staging/fbtft/fbtft-sysfs.c: In function 'store_gamma_curve':
drivers/staging/fbtft/fbtft-sysfs.c:132:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]

As there is no need for 64-bit gamma values (on 32-bit architectures,
we don't use those either), I'm changing the type from 'unsigned long'
to 'u32' here, which cuts the required space in half everywhere.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
22 files changed:
drivers/staging/fbtft/fb_hx8340bn.c
drivers/staging/fbtft/fb_hx8347d.c
drivers/staging/fbtft/fb_hx8353d.c
drivers/staging/fbtft/fb_ili9163.c
drivers/staging/fbtft/fb_ili9320.c
drivers/staging/fbtft/fb_ili9325.c
drivers/staging/fbtft/fb_ili9341.c
drivers/staging/fbtft/fb_pcd8544.c
drivers/staging/fbtft/fb_s6d1121.c
drivers/staging/fbtft/fb_ssd1289.c
drivers/staging/fbtft/fb_ssd1305.c
drivers/staging/fbtft/fb_ssd1306.c
drivers/staging/fbtft/fb_ssd1325.c
drivers/staging/fbtft/fb_ssd1331.c
drivers/staging/fbtft/fb_ssd1351.c
drivers/staging/fbtft/fb_st7735r.c
drivers/staging/fbtft/fb_st7789v.c
drivers/staging/fbtft/fb_tls8204.c
drivers/staging/fbtft/fbtft-core.c
drivers/staging/fbtft/fbtft-sysfs.c
drivers/staging/fbtft/fbtft.h
drivers/staging/fbtft/internal.h

index c24331cc179c20bd4323deed98c613e8b8591cb4..1ca1fcd353d660b42bc62db55dde2e81cbf047dc 100644 (file)
@@ -158,7 +158,7 @@ static int set_var(struct fbtft_par *par)
  *   ON0 ON1 CN0 CN1 CN2 CN3 CN4 MN0 MN1 MN2 MN3 MN4 MN5 XXXX  GC
  */
 #define CURVE(num, idx)  curves[num * par->gamma.num_values + idx]
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        unsigned long mask[] = {
                0x0f, 0x0f, 0x1f, 0x0f, 0x0f, 0x0f, 0x1f, 0x07, 0x07, 0x07,
index 450a61e3f99c63686dbd46c6bca8e4b104bb7e19..bbf78f8644a87341a491d5cca603f5820ee13357 100644 (file)
@@ -102,7 +102,7 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye)
  *   VRN0 VRN1 VRN2 VRN3 VRN4 VRN5 PRN0 PRN1 PKN0 PKN1 PKN2 PKN3 PKN4 CGM
  */
 #define CURVE(num, idx)  curves[num * par->gamma.num_values + idx]
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        unsigned long mask[] = {
                0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x1f, 0x1f,
index 72e4ff8c5553eca1d4ee10fe392f8210136be5a6..2c18051a44b32802a5879318b3ae044799d2c8f3 100644 (file)
@@ -118,7 +118,7 @@ static int set_var(struct fbtft_par *par)
 }
 
 /* gamma string format: */
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        write_reg(par, 0xE0,
                  curves[0], curves[1], curves[2], curves[3],
index 6b8f8b17e9a3acac520bbc56150ae562a8ff212e..579e17734612ac44188a7adcad7630df498937e9 100644 (file)
@@ -202,7 +202,7 @@ static int set_var(struct fbtft_par *par)
 
 #ifdef GAMMA_ADJ
 #define CURVE(num, idx)  curves[num * par->gamma.num_values + idx]
-static int gamma_adj(struct fbtft_par *par, unsigned long *curves)
+static int gamma_adj(struct fbtft_par *par, u32 *curves)
 {
        unsigned long mask[] = {
                0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
index 278e4c7e95e54ff73c5ca0b950fcb05681891e6e..20ba86da028ba4dc2eb39dde0e0c5bf0892d42f8 100644 (file)
@@ -221,7 +221,7 @@ static int set_var(struct fbtft_par *par)
  *  VRN0 VRN1 RN0 RN1 KN0 KN1 KN2 KN3 KN4 KN5
  */
 #define CURVE(num, idx)  curves[num * par->gamma.num_values + idx]
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        unsigned long mask[] = {
                0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
index 19e33bab9cacd0ea79d5461f6167588aefea43cc..7189de5ae4b37061311db84d6701baefebe7ef9d 100644 (file)
@@ -215,7 +215,7 @@ static int set_var(struct fbtft_par *par)
  *  VRN0 VRN1 RN0 RN1 KN0 KN1 KN2 KN3 KN4 KN5
  */
 #define CURVE(num, idx)  curves[num * par->gamma.num_values + idx]
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        unsigned long mask[] = {
                0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
index ff35c8624ca330e9bd0138ef3ef82764bd03a9e5..21a98e9e1a1477271614487468f31dc6a8fe129d 100644 (file)
@@ -121,7 +121,7 @@ static int set_var(struct fbtft_par *par)
  *  Negative: Par1 Par2 [...] Par15
  */
 #define CURVE(num, idx)  curves[num * par->gamma.num_values + idx]
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        int i;
 
index 636cc83594bc4445d016a3e283d465c20bcc51dc..87f678a314ccf5591ecbf1434848f281f8b951ec 100644 (file)
@@ -137,7 +137,7 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len)
        return ret;
 }
 
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        /* apply mask */
        curves[0] &= 0x7F;
index 9b1d70b218df14f177907010d12948bbc8471316..3b36ed50d491a58961cd0580ae906c8017c03f4c 100644 (file)
@@ -130,7 +130,7 @@ static int set_var(struct fbtft_par *par)
  * PKN0 PKN1 PKN2 PKN3 PKN4 PKN5 PKN6 PKN7 PRN8 PRN9 PRN10 PRN11 VRN0 VRN1
  */
 #define CURVE(num, idx)  curves[num * par->gamma.num_values + idx]
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        unsigned long mask[] = {
                0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
index 6dc085846948280b9b74532cc7a45a91c1fae30a..c603e1516e647f938ee029cb871782535a18ba67 100644 (file)
@@ -136,7 +136,7 @@ static int set_var(struct fbtft_par *par)
  * VRN0 VRN1 PRN0 PRN1 PKN0 PKN1 PKN2 PKN3 PKN4 PKN5
  */
 #define CURVE(num, idx)  curves[num * par->gamma.num_values + idx]
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        unsigned long mask[] = {
                0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
index 4b38c3fadd60b3d3db507c8a1c26be575268972d..33c03872ca849ff6d82826191eca556df33fd42e 100644 (file)
@@ -148,7 +148,7 @@ static int blank(struct fbtft_par *par, bool on)
 }
 
 /* Gamma is used to control Contrast */
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        curves[0] &= 0xFF;
        /* Set Contrast Control for BANK0 */
index 76f7da3c7703906ab674c8380ac9a09e89781640..722baca03d3a63e8ec96808b978c5a9e9e0f20ef 100644 (file)
@@ -168,7 +168,7 @@ static int blank(struct fbtft_par *par, bool on)
 }
 
 /* Gamma is used to control Contrast */
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        /* apply mask */
        curves[0] &= 0xFF;
index 15078bf2aa4b352e77cf2ed88673c1afd35720e8..b7e40c24f58ed70569a084902377060d24351127 100644 (file)
@@ -116,7 +116,7 @@ static int blank(struct fbtft_par *par, bool on)
  * 0 = Setting of GS1 < Setting of GS2 < Setting of GS3.....<
  * Setting of GS14 < Setting of GS15
  */
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        int i;
 
index 1d74ac1343a808e6a52f55f6532d3cb12eb26feb..3de21897aeafae3aa13826f4b355424de0c55c72 100644 (file)
@@ -122,7 +122,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
  * Setting of GS63 has to be > Setting of GS62 +1
  *
  */
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        unsigned long tmp[GAMMA_NUM * GAMMA_LEN];
        int i, acc = 0;
index 200aa9ba98f91670e76b7abc0c54580cd8e903c8..d006ba20ef443a69d05c9b97c36b636884e9e11c 100644 (file)
@@ -117,7 +117,7 @@ static int set_var(struct fbtft_par *par)
  *             Setting of GS63 has to be > Setting of GS62 +1
  *
  */
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        unsigned long tmp[GAMMA_NUM * GAMMA_LEN];
        int i, acc = 0;
index 710b74bbba97c57086fcf74bc34e1f6af4a6f4d3..24d17cdc71ab401761f705ed9719d41fd8b13602 100644 (file)
@@ -143,7 +143,7 @@ static int set_var(struct fbtft_par *par)
  * VRF0N VOS0N PK0N PK1N PK2N PK3N PK4N PK5N PK6N PK7N PK8N PK9N SELV0N SELV1N SELV62N SELV63N
  */
 #define CURVE(num, idx)  curves[num * par->gamma.num_values + idx]
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        int i, j;
 
index 085e9872c46d445c43654aa520e9c182fb76747d..8935a97ec048872f4d4a624a74127acd359ed19e 100644 (file)
@@ -178,7 +178,7 @@ static int set_var(struct fbtft_par *par)
  *
  * Return: 0 on success, < 0 if error occurred.
  */
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        int i;
        int j;
index ae8393b023e4803c988da74474572961b1fbb514..4302e822de3b90e54581f4495ffc44118ec1e9a0 100644 (file)
@@ -130,7 +130,7 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len)
        return ret;
 }
 
-static int set_gamma(struct fbtft_par *par, unsigned long *curves)
+static int set_gamma(struct fbtft_par *par, u32 *curves)
 {
        /* apply mask */
        curves[0] &= 0x7F;
index 51c4481db45163bd072e893590bff9080823d314..7c8af29cdb7581ae0e85a6648d062164e7a4ff24 100644 (file)
@@ -661,7 +661,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
        int vmem_size, i;
        s16 *init_sequence = display->init_sequence;
        char *gamma = display->gamma;
-       unsigned long *gamma_curves = NULL;
+       u32 *gamma_curves = NULL;
 
        /* sanity check */
        if (display->gamma_num * display->gamma_len >
index 5922f1b6d8d66599642a8409d8989a7fde44ea47..6b6fbaa794f45497a067554597104871c4e01a11 100644 (file)
@@ -16,7 +16,7 @@ static int get_next_ulong(char **str_p, unsigned long *val, char *sep, int base)
        return kstrtoul(p_val, base, val);
 }
 
-int fbtft_gamma_parse_str(struct fbtft_par *par, unsigned long *curves,
+int fbtft_gamma_parse_str(struct fbtft_par *par, u32 *curves,
                                                const char *str, int size)
 {
        char *str_p, *curve_p = NULL;
@@ -89,7 +89,7 @@ int fbtft_gamma_parse_str(struct fbtft_par *par, unsigned long *curves,
 }
 
 static ssize_t
-sprintf_gamma(struct fbtft_par *par, unsigned long *curves, char *buf)
+sprintf_gamma(struct fbtft_par *par, u32 *curves, char *buf)
 {
        ssize_t len = 0;
        unsigned int i, j;
@@ -98,7 +98,7 @@ sprintf_gamma(struct fbtft_par *par, unsigned long *curves, char *buf)
        for (i = 0; i < par->gamma.num_curves; i++) {
                for (j = 0; j < par->gamma.num_values; j++)
                        len += scnprintf(&buf[len], PAGE_SIZE,
-                            "%04lx ", curves[i * par->gamma.num_values + j]);
+                            "%04x ", curves[i * par->gamma.num_values + j]);
                buf[len - 1] = '\n';
        }
        mutex_unlock(&par->gamma.lock);
@@ -112,7 +112,7 @@ static ssize_t store_gamma_curve(struct device *device,
 {
        struct fb_info *fb_info = dev_get_drvdata(device);
        struct fbtft_par *par = fb_info->par;
-       unsigned long tmp_curves[FBTFT_GAMMA_MAX_VALUES_TOTAL];
+       u32 tmp_curves[FBTFT_GAMMA_MAX_VALUES_TOTAL];
        int ret;
 
        ret = fbtft_gamma_parse_str(par, tmp_curves, buf, count);
index b09804773ff294cd5f25cd55dea4f2f3e676b0d8..44cf94d160d4bda994a23fe904b2b39f6df90200 100644 (file)
@@ -92,7 +92,7 @@ struct fbtft_ops {
        void (*unregister_backlight)(struct fbtft_par *par);
 
        int (*set_var)(struct fbtft_par *par);
-       int (*set_gamma)(struct fbtft_par *par, unsigned long *curves);
+       int (*set_gamma)(struct fbtft_par *par, u32 *curves);
 };
 
 /**
@@ -231,7 +231,7 @@ struct fbtft_par {
        s16 *init_sequence;
        struct {
                struct mutex lock;
-               unsigned long *curves;
+               u32 *curves;
                int num_values;
                int num_curves;
        } gamma;
index eea0ec5ff4d39bf277288edc02a216c8af3f749b..25b9bf6f54bbdc7cd07b6a163a9dd01a0364f617 100644 (file)
@@ -19,7 +19,7 @@
 void fbtft_sysfs_init(struct fbtft_par *par);
 void fbtft_sysfs_exit(struct fbtft_par *par);
 void fbtft_expand_debug_value(unsigned long *debug);
-int fbtft_gamma_parse_str(struct fbtft_par *par, unsigned long *curves,
+int fbtft_gamma_parse_str(struct fbtft_par *par, u32 *curves,
                          const char *str, int size);
 
 #endif /* __LINUX_FBTFT_INTERNAL_H */