From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751948AbdBBOtu (ORCPT ); Thu, 2 Feb 2017 09:49:50 -0500 Received: from mout.kundenserver.de ([212.227.126.135]:55334 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751414AbdBBOqS (ORCPT ); Thu, 2 Feb 2017 09:46:18 -0500 From: Arnd Bergmann To: Greg Kroah-Hartman Cc: Arnd Bergmann , Thomas Petazzoni , =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , Anson Jacob , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: [PATCH] staging: fbtft: change 'gamma' array to u32 Date: Thu, 2 Feb 2017 15:43:42 +0100 Message-Id: <20170202144544.3680633-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:L/Mw198yAxTd2hVDbBybHWCM8XcSSbpWmy+q1WCb2m+69VJoHb5 BV3uTO9+5Ed/FqM2WoXEy6fmTCAzvmvyDwR8JQ2VmeanOIBnxcd25u0JbHUonC57Dq+5BxP DOQhSwxBWVE9rU+Sizsru5KC2gFMy2PZpOu06Swmf3KZE2Nq+RrWljWZREmkwqvk6lXVx7N rKjOzQsf4do+wKTgodl3g== X-UI-Out-Filterresults: notjunk:1;V01:K0:RjT332/ZW0Y=:VpYHrYafhyvSj+5O92YCHN CqHR2eRYjI5dhG9vp+Ei9azS7vLC+f35Jm2bmXHXz7zlWAIhYsKAlA4i+cY3dbwRpAvmzY4Fs bVEQM16Eodxf80bFjhRGX5POdW7V3nOondP1BYQ+UYT5b/n+dLd89DDxa1krz2sQGkQ05wKDo a7fD1V8mCWgz4KH04S0QPZJ87Su/65E99SVMi8yNheVb71PvKLLs1uVfO7bYgNX5B68yAqA+B FdwyOGDY+Q9VOa3V8/M5jp0ODB+LUzUpz03m/MuBbF80b5xjVBGn/j6IzL9/WAryJrtuAx4Oh tINdcreTHcCCnYzKXD2CYC42su3J8CsRdoO5AFOMs9EPaDQZN4ePSabUfKSEW5uBKzNiOeN+k 6RIDVQrh9i6sKXs2c6mwhJ8BOt15h5iTqgoeSYAPAo5bOZxe4Q84Ds+/iv+0gd+siRwywsgyh 4EYdA7ksdAAaDBnu3bakeHtYjuTIYm0G5tyGQjN7fIf5iBUspK080E/VXXchyHogGBTMXwG3i D8Buk2GPZRL7ha4elk8BFvjORspKkJouh9RSrVCvmK4lLtfjLly4m2VIRXe1CT31o9F1YM/dI IZK8YsqeP9ippthfJm9udZJo72qddC6lnVSdkWdWIReSltpGFRPObKTj6JLqmL2j8GaHD2MQ6 KAj9z08faeqcxtDR19krSKsbgeqS653EM4S2XkH/KHlRyxEwusTbxgqrFn/Ie6+1zWQE= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- drivers/staging/fbtft/fb_hx8340bn.c | 2 +- drivers/staging/fbtft/fb_hx8347d.c | 2 +- drivers/staging/fbtft/fb_hx8353d.c | 2 +- drivers/staging/fbtft/fb_ili9163.c | 2 +- drivers/staging/fbtft/fb_ili9320.c | 2 +- drivers/staging/fbtft/fb_ili9325.c | 2 +- drivers/staging/fbtft/fb_ili9341.c | 2 +- drivers/staging/fbtft/fb_pcd8544.c | 2 +- drivers/staging/fbtft/fb_s6d1121.c | 2 +- drivers/staging/fbtft/fb_ssd1289.c | 2 +- drivers/staging/fbtft/fb_ssd1305.c | 2 +- drivers/staging/fbtft/fb_ssd1306.c | 2 +- drivers/staging/fbtft/fb_ssd1325.c | 2 +- drivers/staging/fbtft/fb_ssd1331.c | 2 +- drivers/staging/fbtft/fb_ssd1351.c | 2 +- drivers/staging/fbtft/fb_st7735r.c | 2 +- drivers/staging/fbtft/fb_st7789v.c | 2 +- drivers/staging/fbtft/fb_tls8204.c | 2 +- drivers/staging/fbtft/fbtft-core.c | 2 +- drivers/staging/fbtft/fbtft-sysfs.c | 8 ++++---- drivers/staging/fbtft/fbtft.h | 4 ++-- drivers/staging/fbtft/internal.h | 2 +- 22 files changed, 26 insertions(+), 26 deletions(-) diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c index c24331cc179c..1ca1fcd353d6 100644 --- a/drivers/staging/fbtft/fb_hx8340bn.c +++ b/drivers/staging/fbtft/fb_hx8340bn.c @@ -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, diff --git a/drivers/staging/fbtft/fb_hx8347d.c b/drivers/staging/fbtft/fb_hx8347d.c index 450a61e3f99c..bbf78f8644a8 100644 --- a/drivers/staging/fbtft/fb_hx8347d.c +++ b/drivers/staging/fbtft/fb_hx8347d.c @@ -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, diff --git a/drivers/staging/fbtft/fb_hx8353d.c b/drivers/staging/fbtft/fb_hx8353d.c index 72e4ff8c5553..2c18051a44b3 100644 --- a/drivers/staging/fbtft/fb_hx8353d.c +++ b/drivers/staging/fbtft/fb_hx8353d.c @@ -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], diff --git a/drivers/staging/fbtft/fb_ili9163.c b/drivers/staging/fbtft/fb_ili9163.c index 6b8f8b17e9a3..579e17734612 100644 --- a/drivers/staging/fbtft/fb_ili9163.c +++ b/drivers/staging/fbtft/fb_ili9163.c @@ -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, diff --git a/drivers/staging/fbtft/fb_ili9320.c b/drivers/staging/fbtft/fb_ili9320.c index 278e4c7e95e5..20ba86da028b 100644 --- a/drivers/staging/fbtft/fb_ili9320.c +++ b/drivers/staging/fbtft/fb_ili9320.c @@ -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, diff --git a/drivers/staging/fbtft/fb_ili9325.c b/drivers/staging/fbtft/fb_ili9325.c index 19e33bab9cac..7189de5ae4b3 100644 --- a/drivers/staging/fbtft/fb_ili9325.c +++ b/drivers/staging/fbtft/fb_ili9325.c @@ -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, diff --git a/drivers/staging/fbtft/fb_ili9341.c b/drivers/staging/fbtft/fb_ili9341.c index ff35c8624ca3..21a98e9e1a14 100644 --- a/drivers/staging/fbtft/fb_ili9341.c +++ b/drivers/staging/fbtft/fb_ili9341.c @@ -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; diff --git a/drivers/staging/fbtft/fb_pcd8544.c b/drivers/staging/fbtft/fb_pcd8544.c index 636cc83594bc..87f678a314cc 100644 --- a/drivers/staging/fbtft/fb_pcd8544.c +++ b/drivers/staging/fbtft/fb_pcd8544.c @@ -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; diff --git a/drivers/staging/fbtft/fb_s6d1121.c b/drivers/staging/fbtft/fb_s6d1121.c index 9b1d70b218df..3b36ed50d491 100644 --- a/drivers/staging/fbtft/fb_s6d1121.c +++ b/drivers/staging/fbtft/fb_s6d1121.c @@ -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, diff --git a/drivers/staging/fbtft/fb_ssd1289.c b/drivers/staging/fbtft/fb_ssd1289.c index 6dc085846948..c603e1516e64 100644 --- a/drivers/staging/fbtft/fb_ssd1289.c +++ b/drivers/staging/fbtft/fb_ssd1289.c @@ -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, diff --git a/drivers/staging/fbtft/fb_ssd1305.c b/drivers/staging/fbtft/fb_ssd1305.c index 4b38c3fadd60..33c03872ca84 100644 --- a/drivers/staging/fbtft/fb_ssd1305.c +++ b/drivers/staging/fbtft/fb_ssd1305.c @@ -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 */ diff --git a/drivers/staging/fbtft/fb_ssd1306.c b/drivers/staging/fbtft/fb_ssd1306.c index 76f7da3c7703..722baca03d3a 100644 --- a/drivers/staging/fbtft/fb_ssd1306.c +++ b/drivers/staging/fbtft/fb_ssd1306.c @@ -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; diff --git a/drivers/staging/fbtft/fb_ssd1325.c b/drivers/staging/fbtft/fb_ssd1325.c index 15078bf2aa4b..b7e40c24f58e 100644 --- a/drivers/staging/fbtft/fb_ssd1325.c +++ b/drivers/staging/fbtft/fb_ssd1325.c @@ -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; diff --git a/drivers/staging/fbtft/fb_ssd1331.c b/drivers/staging/fbtft/fb_ssd1331.c index 1d74ac1343a8..3de21897aeaf 100644 --- a/drivers/staging/fbtft/fb_ssd1331.c +++ b/drivers/staging/fbtft/fb_ssd1331.c @@ -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; diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c index 200aa9ba98f9..d006ba20ef44 100644 --- a/drivers/staging/fbtft/fb_ssd1351.c +++ b/drivers/staging/fbtft/fb_ssd1351.c @@ -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; diff --git a/drivers/staging/fbtft/fb_st7735r.c b/drivers/staging/fbtft/fb_st7735r.c index 710b74bbba97..24d17cdc71ab 100644 --- a/drivers/staging/fbtft/fb_st7735r.c +++ b/drivers/staging/fbtft/fb_st7735r.c @@ -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; diff --git a/drivers/staging/fbtft/fb_st7789v.c b/drivers/staging/fbtft/fb_st7789v.c index 085e9872c46d..8935a97ec048 100644 --- a/drivers/staging/fbtft/fb_st7789v.c +++ b/drivers/staging/fbtft/fb_st7789v.c @@ -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; diff --git a/drivers/staging/fbtft/fb_tls8204.c b/drivers/staging/fbtft/fb_tls8204.c index ae8393b023e4..4302e822de3b 100644 --- a/drivers/staging/fbtft/fb_tls8204.c +++ b/drivers/staging/fbtft/fb_tls8204.c @@ -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; diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 51c4481db451..7c8af29cdb75 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -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 > diff --git a/drivers/staging/fbtft/fbtft-sysfs.c b/drivers/staging/fbtft/fbtft-sysfs.c index 5922f1b6d8d6..6b6fbaa794f4 100644 --- a/drivers/staging/fbtft/fbtft-sysfs.c +++ b/drivers/staging/fbtft/fbtft-sysfs.c @@ -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); diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h index b09804773ff2..44cf94d160d4 100644 --- a/drivers/staging/fbtft/fbtft.h +++ b/drivers/staging/fbtft/fbtft.h @@ -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; diff --git a/drivers/staging/fbtft/internal.h b/drivers/staging/fbtft/internal.h index eea0ec5ff4d3..25b9bf6f54bb 100644 --- a/drivers/staging/fbtft/internal.h +++ b/drivers/staging/fbtft/internal.h @@ -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 */ -- 2.9.0