[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1486080687.22276.59.camel@perches.com>
Date: Thu, 02 Feb 2017 16:11:27 -0800
From: Joe Perches <joe@...ches.com>
To: Arnd Bergmann <arnd@...db.de>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Thomas Petazzoni <thomas.petazzoni@...e-electrons.com>,
Noralf Trønnes <noralf@...nnes.org>,
Anson Jacob <ansonjacob.aj@...il.com>,
devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] staging: fbtft: change 'gamma' array to u32
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...
Powered by blists - more mailing lists