On Thu, 2017-02-02 at 15:43 +0100, Arnd Bergmann wrote: > 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. [] > diff --git 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, presumably these should be static const and maybe u8 or u32 too > diff --git 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, etc... _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel