Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[PATCH] staging: fbtft: Do not use binary constants

3 views
Skip to first unread message

Geert Uytterhoeven

unread,
Mar 10, 2015, 5:35:00 PM3/10/15
to Thomas Petazzoni, Noralf Trønnes, Greg Kroah-Hartman, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, Geert Uytterhoeven
Gcc < 4.3 doesn't understand binary constants (0b*):

drivers/staging/fbtft/fbtft-sysfs.c:156:19: error: invalid suffix "b111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:3: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:11: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:19: error: invalid suffix "b11111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:28: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:36: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:44: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:52: error: invalid suffix "b11111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:160:3: error: invalid suffix "b111" on integer constant
..

Hence use hexadecimal constants (0x*) instead.

Signed-off-by: Geert Uytterhoeven <ge...@linux-m68k.org>
---
This is against v4.0-rc3. In next-20150310 there are two whitespace
differences.
---
drivers/staging/fbtft/fb_hx8340bn.c | 8 ++++----
drivers/staging/fbtft/fb_hx8347d.c | 7 +++----
drivers/staging/fbtft/fb_ili9320.c | 7 +++----
drivers/staging/fbtft/fb_ili9325.c | 27 +++++++++++++--------------
drivers/staging/fbtft/fb_s6d1121.c | 10 ++++------
drivers/staging/fbtft/fb_ssd1289.c | 15 +++++++--------
drivers/staging/fbtft/fb_ssd1351.c | 8 ++++----
drivers/staging/fbtft/fb_st7735r.c | 2 +-
drivers/staging/fbtft/fbtft-sysfs.c | 2 +-
drivers/staging/fbtft/fbtft_device.c | 6 +++---
10 files changed, 43 insertions(+), 49 deletions(-)

diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c
index 3939502f2c81c3d4..caff53b5a7b65de7 100644
--- a/drivers/staging/fbtft/fb_hx8340bn.c
+++ b/drivers/staging/fbtft/fb_hx8340bn.c
@@ -156,10 +156,10 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b1111, 0b1111, 0b11111, 0b1111, 0b1111, 0b1111, 0b11111,
- 0b111, 0b111, 0b111, 0b111, 0b111, 0b111, 0b11, 0b11,
- 0b1111, 0b1111, 0b11111, 0b1111, 0b1111, 0b1111, 0b11111,
- 0b111, 0b111, 0b111, 0b111, 0b111, 0b111, 0b0, 0b0 };
+ 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,
+ };
int i, j;

fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__);
diff --git a/drivers/staging/fbtft/fb_hx8347d.c b/drivers/staging/fbtft/fb_hx8347d.c
index 8139a8f587b75549..03ae95b4f79e80e1 100644
--- a/drivers/staging/fbtft/fb_hx8347d.c
+++ b/drivers/staging/fbtft/fb_hx8347d.c
@@ -115,10 +115,9 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b111111, 0b111111, 0b111111, 0b111111, 0b111111, 0b111111,
- 0b1111111, 0b1111111,
- 0b11111, 0b11111, 0b11111, 0b11111, 0b11111,
- 0b1111};
+ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x1f, 0x1f,
+ 0x1f, 0x1f, 0x1f, 0x0f,
+ };
int i, j;
int acc = 0;

diff --git a/drivers/staging/fbtft/fb_ili9320.c b/drivers/staging/fbtft/fb_ili9320.c
index b26d89368da7ca83..8e1a35e41870f3a3 100644
--- a/drivers/staging/fbtft/fb_ili9320.c
+++ b/drivers/staging/fbtft/fb_ili9320.c
@@ -178,10 +178,9 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111,
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111 };
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ };
int i, j;

fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__);
diff --git a/drivers/staging/fbtft/fb_ili9325.c b/drivers/staging/fbtft/fb_ili9325.c
index 5f88145fac9be568..19d254e9a4206c72 100644
--- a/drivers/staging/fbtft/fb_ili9325.c
+++ b/drivers/staging/fbtft/fb_ili9325.c
@@ -41,22 +41,22 @@ static unsigned bt = 6; /* VGL=Vci*4 , VGH=Vci*4 */
module_param(bt, uint, 0);
MODULE_PARM_DESC(bt, "Sets the factor used in the step-up circuits");

-static unsigned vc = 0b011; /* Vci1=Vci*0.80 */
+static unsigned vc = 0x03; /* Vci1=Vci*0.80 */
module_param(vc, uint, 0);
MODULE_PARM_DESC(vc,
"Sets the ratio factor of Vci to generate the reference voltages Vci1");

-static unsigned vrh = 0b1101; /* VREG1OUT=Vci*1.85 */
+static unsigned vrh = 0x0d; /* VREG1OUT=Vci*1.85 */
module_param(vrh, uint, 0);
MODULE_PARM_DESC(vrh,
"Set the amplifying rate (1.6 ~ 1.9) of Vci applied to output the VREG1OUT");

-static unsigned vdv = 0b10010; /* VCOMH amplitude=VREG1OUT*0.98 */
+static unsigned vdv = 0x12; /* VCOMH amplitude=VREG1OUT*0.98 */
module_param(vdv, uint, 0);
MODULE_PARM_DESC(vdv,
"Select the factor of VREG1OUT to set the amplitude of Vcom");

-static unsigned vcm = 0b001010; /* VCOMH=VREG1OUT*0.735 */
+static unsigned vcm = 0x0a; /* VCOMH=VREG1OUT*0.735 */
module_param(vcm, uint, 0);
MODULE_PARM_DESC(vcm, "Set the internal VcomH voltage");

@@ -108,11 +108,11 @@ static int init_display(struct fbtft_par *par)
if (par->gpio.cs != -1)
gpio_set_value(par->gpio.cs, 0); /* Activate chip */

- bt &= 0b111;
- vc &= 0b111;
- vrh &= 0b1111;
- vdv &= 0b11111;
- vcm &= 0b111111;
+ bt &= 0x07;
+ vc &= 0x07;
+ vrh &= 0x0f;
+ vdv &= 0x1f;
+ vcm &= 0x3f;

/* Initialization sequence from ILI9325 Application Notes */

@@ -137,7 +137,7 @@ static int init_display(struct fbtft_par *par)
write_reg(par, 0x0013, 0x0000); /* VDV[4:0] for VCOM amplitude */
mdelay(200); /* Dis-charge capacitor power voltage */
write_reg(par, 0x0010, /* SAP, BT[3:0], AP, DSTB, SLP, STB */
- (1 << 12) | (bt << 8) | (1 << 7) | (0b001 << 4));
+ (1 << 12) | (bt << 8) | (1 << 7) | (0x01 << 4));
write_reg(par, 0x0011, 0x220 | vc); /* DC1[2:0], DC0[2:0], VC[2:0] */
mdelay(50); /* Delay 50ms */
write_reg(par, 0x0012, vrh); /* Internal reference voltage= Vci; */
@@ -233,10 +233,9 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111,
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111 };
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ };
int i, j;

fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__);
diff --git a/drivers/staging/fbtft/fb_s6d1121.c b/drivers/staging/fbtft/fb_s6d1121.c
index 1ef8c1ad827e2492..2e1b72ad54aa95e4 100644
--- a/drivers/staging/fbtft/fb_s6d1121.c
+++ b/drivers/staging/fbtft/fb_s6d1121.c
@@ -143,12 +143,10 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b111111, 0b111111, 0b111111, 0b111111, 0b111111, 0b111111,
- 0b111111, 0b111111, 0b111111, 0b111111, 0b111111, 0b111111,
- 0b11111, 0b11111,
- 0b111111, 0b111111, 0b111111, 0b111111, 0b111111, 0b111111,
- 0b111111, 0b111111, 0b111111, 0b111111, 0b111111, 0b111111,
- 0b11111, 0b11111 };
+ 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,
+ };
int i, j;

fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__);
diff --git a/drivers/staging/fbtft/fb_ssd1289.c b/drivers/staging/fbtft/fb_ssd1289.c
index ef46fbca27004c89..17a77e0614987d5a 100644
--- a/drivers/staging/fbtft/fb_ssd1289.c
+++ b/drivers/staging/fbtft/fb_ssd1289.c
@@ -126,16 +126,16 @@ static int set_var(struct fbtft_par *par)

switch (par->info->var.rotate) {
case 0:
- write_reg(par, 0x11, reg11 | 0b110000);
+ write_reg(par, 0x11, reg11 | 0x30);
break;
case 270:
- write_reg(par, 0x11, reg11 | 0b101000);
+ write_reg(par, 0x11, reg11 | 0x28);
break;
case 180:
- write_reg(par, 0x11, reg11 | 0b000000);
+ write_reg(par, 0x11, reg11 | 0x00);
break;
case 90:
- write_reg(par, 0x11, reg11 | 0b011000);
+ write_reg(par, 0x11, reg11 | 0x18);
break;
}

@@ -151,10 +151,9 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111,
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111 };
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ };
int i, j;

fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__);
diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c
index 062d98660f6378ea..8af72bff156524d4 100644
--- a/drivers/staging/fbtft/fb_ssd1351.c
+++ b/drivers/staging/fbtft/fb_ssd1351.c
@@ -86,16 +86,16 @@ static int set_var(struct fbtft_par *par)

switch (par->info->var.rotate) {
case 0:
- write_reg(par, 0xA0, remap | 0b00 | 1<<4);
+ write_reg(par, 0xA0, remap | 0x00 | 1<<4);
break;
case 270:
- write_reg(par, 0xA0, remap | 0b11 | 1<<4);
+ write_reg(par, 0xA0, remap | 0x03 | 1<<4);
break;
case 180:
- write_reg(par, 0xA0, remap | 0b10);
+ write_reg(par, 0xA0, remap | 0x02);
break;
case 90:
- write_reg(par, 0xA0, remap | 0b01);
+ write_reg(par, 0xA0, remap | 0x01);
break;
}

diff --git a/drivers/staging/fbtft/fb_st7735r.c b/drivers/staging/fbtft/fb_st7735r.c
index b63aa38e51cf3629..5c0593db0839386f 100644
--- a/drivers/staging/fbtft/fb_st7735r.c
+++ b/drivers/staging/fbtft/fb_st7735r.c
@@ -155,7 +155,7 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves)
/* apply mask */
for (i = 0; i < par->gamma.num_curves; i++)
for (j = 0; j < par->gamma.num_values; j++)
- CURVE(i,j) &= 0b111111;
+ CURVE(i,j) &= 0x3f;

for (i = 0; i < par->gamma.num_curves; i++)
write_reg(par, 0xE0 + i,
diff --git a/drivers/staging/fbtft/fbtft-sysfs.c b/drivers/staging/fbtft/fbtft-sysfs.c
index 45f8de3d11ad45d0..daca9dc9c9cb8c35 100644
--- a/drivers/staging/fbtft/fbtft-sysfs.c
+++ b/drivers/staging/fbtft/fbtft-sysfs.c
@@ -153,7 +153,7 @@ static struct device_attribute gamma_device_attrs[] = {

void fbtft_expand_debug_value(unsigned long *debug)
{
- switch (*debug & 0b111) {
+ switch (*debug & 0x7) {
case 1:
*debug |= DEBUG_LEVEL_1;
break;
diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c
index b9f4c30e39c6a3a9..ec0e9461c9aefcec 100644
--- a/drivers/staging/fbtft/fbtft_device.c
+++ b/drivers/staging/fbtft/fbtft_device.c
@@ -463,7 +463,7 @@ static struct fbtft_device_display displays[] = {
.buswidth = 8,
.backlight = 1,
},
- .startbyte = 0b01110000,
+ .startbyte = 0x70,
.bgr = true,
.gpios = (const struct fbtft_gpio []) {
{ "reset", 25 },
@@ -484,7 +484,7 @@ static struct fbtft_device_display displays[] = {
.backlight = 1,
.init_sequence = hy28b_init_sequence,
},
- .startbyte = 0b01110000,
+ .startbyte = 0x70,
.bgr = true,
.fps= 50,
.gpios = (const struct fbtft_gpio []) {
@@ -597,7 +597,7 @@ static struct fbtft_device_display displays[] = {
.buswidth = 8,
.backlight = 1,
},
- .startbyte = 0b01110000,
+ .startbyte = 0x70,
.bgr = true,
.gpios = (const struct fbtft_gpio []) {
{ "reset", 25 },
--
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Joe Perches

unread,
Mar 10, 2015, 5:50:54 PM3/10/15
to Geert Uytterhoeven, Thomas Petazzoni, Noralf Trønnes, Greg Kroah-Hartman, de...@driverdev.osuosl.org, linux-...@vger.kernel.org
On Tue, 2015-03-10 at 22:34 +0100, Geert Uytterhoeven wrote:
> Gcc < 4.3 doesn't understand binary constants (0b*):

trivia:

> diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c
[]
> @@ -156,10 +156,10 @@ static int set_var(struct fbtft_par *par)
> static int set_gamma(struct fbtft_par *par, unsigned long *curves)
> {
> unsigned long mask[] = {

static const

> - 0b1111, 0b1111, 0b11111, 0b1111, 0b1111, 0b1111, 0b11111,
> - 0b111, 0b111, 0b111, 0b111, 0b111, 0b111, 0b11, 0b11,
> - 0b1111, 0b1111, 0b11111, 0b1111, 0b1111, 0b1111, 0b11111,
> - 0b111, 0b111, 0b111, 0b111, 0b111, 0b111, 0b0, 0b0 };
> + 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,
> + };

[]

> diff --git a/drivers/staging/fbtft/fb_hx8347d.c b/drivers/staging/fbtft/fb_hx8347d.c
[]
> @@ -115,10 +115,9 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye)
> static int set_gamma(struct fbtft_par *par, unsigned long *curves)
> {
> unsigned long mask[] = {

etc...

Geert Uytterhoeven

unread,
Mar 10, 2015, 5:53:54 PM3/10/15
to Joe Perches, Thomas Petazzoni, Noralf Trønnes, Greg Kroah-Hartman, driverdevel, linux-...@vger.kernel.org
Hi Joe,

On Tue, Mar 10, 2015 at 10:50 PM, Joe Perches <j...@perches.com> wrote:
> On Tue, 2015-03-10 at 22:34 +0100, Geert Uytterhoeven wrote:
>> Gcc < 4.3 doesn't understand binary constants (0b*):
>
> trivia:
>
>> diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c
> []
>> @@ -156,10 +156,10 @@ static int set_var(struct fbtft_par *par)
>> static int set_gamma(struct fbtft_par *par, unsigned long *curves)
>> {
>> unsigned long mask[] = {
>
> static const

"static const u8", and convert all the wasteful "unsigned long" curve arrays
to u8 arrays, as they store 5-bit quantities only.

This is staging, so your eyes start hurting as soon as you dive into it...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

Greg Kroah-Hartman

unread,
Mar 20, 2015, 10:42:57 AM3/20/15
to Geert Uytterhoeven, Thomas Petazzoni, Noralf Trønnes, de...@driverdev.osuosl.org, linux-...@vger.kernel.org
On Tue, Mar 10, 2015 at 10:34:43PM +0100, Geert Uytterhoeven wrote:
> Gcc < 4.3 doesn't understand binary constants (0b*):
>
> drivers/staging/fbtft/fbtft-sysfs.c:156:19: error: invalid suffix "b111" on integer constant
> drivers/staging/fbtft/fb_hx8340bn.c:159:3: error: invalid suffix "b1111" on integer constant
> drivers/staging/fbtft/fb_hx8340bn.c:159:11: error: invalid suffix "b1111" on integer constant
> drivers/staging/fbtft/fb_hx8340bn.c:159:19: error: invalid suffix "b11111" on integer constant
> drivers/staging/fbtft/fb_hx8340bn.c:159:28: error: invalid suffix "b1111" on integer constant
> drivers/staging/fbtft/fb_hx8340bn.c:159:36: error: invalid suffix "b1111" on integer constant
> drivers/staging/fbtft/fb_hx8340bn.c:159:44: error: invalid suffix "b1111" on integer constant
> drivers/staging/fbtft/fb_hx8340bn.c:159:52: error: invalid suffix "b11111" on integer constant
> drivers/staging/fbtft/fb_hx8340bn.c:160:3: error: invalid suffix "b111" on integer constant
> ...
>
> Hence use hexadecimal constants (0x*) instead.
>
> Signed-off-by: Geert Uytterhoeven <ge...@linux-m68k.org>
> ---
> This is against v4.0-rc3. In next-20150310 there are two whitespace
> differences.

Can you make it against -next? I can't get this to apply as-is, sorry.

thanks,

greg k-h

Geert Uytterhoeven

unread,
Mar 20, 2015, 11:19:47 AM3/20/15
to Greg Kroah-Hartman, Thomas Petazzoni, Noralf Trønnes, driverdevel, linux-...@vger.kernel.org
Hi Greg,

On Fri, Mar 20, 2015 at 1:54 PM, Greg Kroah-Hartman
<gre...@linuxfoundation.org> wrote:
> On Tue, Mar 10, 2015 at 10:34:43PM +0100, Geert Uytterhoeven wrote:
>> Gcc < 4.3 doesn't understand binary constants (0b*):
>>
>> drivers/staging/fbtft/fbtft-sysfs.c:156:19: error: invalid suffix "b111" on integer constant
>> drivers/staging/fbtft/fb_hx8340bn.c:159:3: error: invalid suffix "b1111" on integer constant
>> drivers/staging/fbtft/fb_hx8340bn.c:159:11: error: invalid suffix "b1111" on integer constant
>> drivers/staging/fbtft/fb_hx8340bn.c:159:19: error: invalid suffix "b11111" on integer constant
>> drivers/staging/fbtft/fb_hx8340bn.c:159:28: error: invalid suffix "b1111" on integer constant
>> drivers/staging/fbtft/fb_hx8340bn.c:159:36: error: invalid suffix "b1111" on integer constant
>> drivers/staging/fbtft/fb_hx8340bn.c:159:44: error: invalid suffix "b1111" on integer constant
>> drivers/staging/fbtft/fb_hx8340bn.c:159:52: error: invalid suffix "b11111" on integer constant
>> drivers/staging/fbtft/fb_hx8340bn.c:160:3: error: invalid suffix "b111" on integer constant
>> ...
>>
>> Hence use hexadecimal constants (0x*) instead.
>>
>> Signed-off-by: Geert Uytterhoeven <ge...@linux-m68k.org>
>> ---
>> This is against v4.0-rc3. In next-20150310 there are two whitespace
>> differences.
>
> Can you make it against -next? I can't get this to apply as-is, sorry.

Sure, will do. I was wondering if you wanted to sent this fix to Linus for v4.0,
as the build is broken for gcc < 4.3, and keep the changes in -next for v4.1.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

Geert Uytterhoeven

unread,
Mar 20, 2015, 11:22:10 AM3/20/15
to Thomas Petazzoni, Noralf Trønnes, Greg Kroah-Hartman, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, Geert Uytterhoeven
Gcc < 4.3 doesn't understand binary constants (0b*):

drivers/staging/fbtft/fbtft-sysfs.c:156:19: error: invalid suffix "b111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:3: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:11: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:19: error: invalid suffix "b11111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:28: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:36: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:44: error: invalid suffix "b1111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:159:52: error: invalid suffix "b11111" on integer constant
drivers/staging/fbtft/fb_hx8340bn.c:160:3: error: invalid suffix "b111" on integer constant
..

Hence use hexadecimal constants (0x*) instead.

Signed-off-by: Geert Uytterhoeven <ge...@linux-m68k.org>
---
Against next-20150320

drivers/staging/fbtft/fb_hx8340bn.c | 8 ++++----
drivers/staging/fbtft/fb_hx8347d.c | 7 +++----
drivers/staging/fbtft/fb_ili9320.c | 7 +++----
drivers/staging/fbtft/fb_ili9325.c | 27 +++++++++++++--------------
drivers/staging/fbtft/fb_s6d1121.c | 10 ++++------
drivers/staging/fbtft/fb_ssd1289.c | 15 +++++++--------
drivers/staging/fbtft/fb_ssd1351.c | 8 ++++----
drivers/staging/fbtft/fb_st7735r.c | 2 +-
drivers/staging/fbtft/fbtft-sysfs.c | 2 +-
drivers/staging/fbtft/fbtft_device.c | 6 +++---
10 files changed, 43 insertions(+), 49 deletions(-)

diff --git a/drivers/staging/fbtft/fb_hx8340bn.c b/drivers/staging/fbtft/fb_hx8340bn.c
index 53edf253ed63a761..cfe2b5b805cb7f05 100644
--- a/drivers/staging/fbtft/fb_hx8340bn.c
+++ b/drivers/staging/fbtft/fb_hx8340bn.c
@@ -149,10 +149,10 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b1111, 0b1111, 0b11111, 0b1111, 0b1111, 0b1111, 0b11111,
- 0b111, 0b111, 0b111, 0b111, 0b111, 0b111, 0b11, 0b11,
- 0b1111, 0b1111, 0b11111, 0b1111, 0b1111, 0b1111, 0b11111,
- 0b111, 0b111, 0b111, 0b111, 0b111, 0b111, 0b0, 0b0 };
+ 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,
+ };
int i, j;

/* apply mask */
diff --git a/drivers/staging/fbtft/fb_hx8347d.c b/drivers/staging/fbtft/fb_hx8347d.c
index 8139a8f587b75549..03ae95b4f79e80e1 100644
--- a/drivers/staging/fbtft/fb_hx8347d.c
+++ b/drivers/staging/fbtft/fb_hx8347d.c
@@ -115,10 +115,9 @@ static void set_addr_win(struct fbtft_par *par, int xs, int ys, int xe, int ye)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b111111, 0b111111, 0b111111, 0b111111, 0b111111, 0b111111,
- 0b1111111, 0b1111111,
- 0b11111, 0b11111, 0b11111, 0b11111, 0b11111,
- 0b1111};
+ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0x1f, 0x1f,
+ 0x1f, 0x1f, 0x1f, 0x0f,
+ };
int i, j;
int acc = 0;

diff --git a/drivers/staging/fbtft/fb_ili9320.c b/drivers/staging/fbtft/fb_ili9320.c
index 880f548158e68be8..3a02edd447d4908b 100644
--- a/drivers/staging/fbtft/fb_ili9320.c
+++ b/drivers/staging/fbtft/fb_ili9320.c
@@ -179,10 +179,9 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111,
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
@@ -233,10 +233,9 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111,
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111 };
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ };
int i, j;

fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__);
diff --git a/drivers/staging/fbtft/fb_s6d1121.c b/drivers/staging/fbtft/fb_s6d1121.c
index 7bbb21b28effafab..2e1b72ad54aa95e4 100644
--- a/drivers/staging/fbtft/fb_s6d1121.c
+++ b/drivers/staging/fbtft/fb_s6d1121.c
@@ -143,12 +143,10 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
@@ -151,10 +151,9 @@ static int set_var(struct fbtft_par *par)
static int set_gamma(struct fbtft_par *par, unsigned long *curves)
{
unsigned long mask[] = {
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111,
- 0b11111, 0b11111, 0b111, 0b111, 0b111,
- 0b111, 0b111, 0b111, 0b111, 0b111 };
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x1f, 0x1f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ };
int i, j;

fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, "%s()\n", __func__);
diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c
index fd492b4eaad6fef2..9bcd7a0aeed4b035 100644
--- a/drivers/staging/fbtft/fb_ssd1351.c
+++ b/drivers/staging/fbtft/fb_ssd1351.c
@@ -87,16 +87,16 @@ static int set_var(struct fbtft_par *par)

switch (par->info->var.rotate) {
case 0:
- write_reg(par, 0xA0, remap | 0b00 | 1<<4);
+ write_reg(par, 0xA0, remap | 0x00 | 1<<4);
break;
case 270:
- write_reg(par, 0xA0, remap | 0b11 | 1<<4);
+ write_reg(par, 0xA0, remap | 0x03 | 1<<4);
break;
case 180:
- write_reg(par, 0xA0, remap | 0b10);
+ write_reg(par, 0xA0, remap | 0x02);
break;
case 90:
- write_reg(par, 0xA0, remap | 0b01);
+ write_reg(par, 0xA0, remap | 0x01);
break;
}

diff --git a/drivers/staging/fbtft/fb_st7735r.c b/drivers/staging/fbtft/fb_st7735r.c
index eb3af1d712d01627..1aeac7b80b4ebaea 100644
--- a/drivers/staging/fbtft/fb_st7735r.c
+++ b/drivers/staging/fbtft/fb_st7735r.c
@@ -155,7 +155,7 @@ static int set_gamma(struct fbtft_par *par, unsigned long *curves)
/* apply mask */
for (i = 0; i < par->gamma.num_curves; i++)
for (j = 0; j < par->gamma.num_values; j++)
- CURVE(i, j) &= 0b111111;
+ CURVE(i, j) &= 0x3f;

for (i = 0; i < par->gamma.num_curves; i++)
write_reg(par, 0xE0 + i,
diff --git a/drivers/staging/fbtft/fbtft-sysfs.c b/drivers/staging/fbtft/fbtft-sysfs.c
index 45f8de3d11ad45d0..daca9dc9c9cb8c35 100644
--- a/drivers/staging/fbtft/fbtft-sysfs.c
+++ b/drivers/staging/fbtft/fbtft-sysfs.c
@@ -153,7 +153,7 @@ static struct device_attribute gamma_device_attrs[] = {

void fbtft_expand_debug_value(unsigned long *debug)
{
- switch (*debug & 0b111) {
+ switch (*debug & 0x7) {
case 1:
*debug |= DEBUG_LEVEL_1;
break;
diff --git a/drivers/staging/fbtft/fbtft_device.c b/drivers/staging/fbtft/fbtft_device.c
index 1afeebb95c5453b1..1880864c4d7ceb4c 100644
--- a/drivers/staging/fbtft/fbtft_device.c
+++ b/drivers/staging/fbtft/fbtft_device.c
@@ -489,7 +489,7 @@ static struct fbtft_device_display displays[] = {
.buswidth = 8,
.backlight = 1,
},
- .startbyte = 0b01110000,
+ .startbyte = 0x70,
.bgr = true,
.gpios = (const struct fbtft_gpio []) {
{ "reset", 25 },
@@ -510,7 +510,7 @@ static struct fbtft_device_display displays[] = {
.backlight = 1,
.init_sequence = hy28b_init_sequence,
},
- .startbyte = 0b01110000,
+ .startbyte = 0x70,
.bgr = true,
.fps = 50,
.gpios = (const struct fbtft_gpio []) {
@@ -623,7 +623,7 @@ static struct fbtft_device_display displays[] = {
.buswidth = 8,
.backlight = 1,
},
- .startbyte = 0b01110000,
+ .startbyte = 0x70,
.bgr = true,
.gpios = (const struct fbtft_gpio []) {
{ "reset", 25 },
--
1.9.1

Greg Kroah-Hartman

unread,
Mar 24, 2015, 6:07:51 PM3/24/15
to Geert Uytterhoeven, driverdevel, Noralf Trønnes, linux-...@vger.kernel.org
On Fri, Mar 20, 2015 at 04:19:36PM +0100, Geert Uytterhoeven wrote:
> Hi Greg,
>
> On Fri, Mar 20, 2015 at 1:54 PM, Greg Kroah-Hartman
> <gre...@linuxfoundation.org> wrote:
> > On Tue, Mar 10, 2015 at 10:34:43PM +0100, Geert Uytterhoeven wrote:
> >> Gcc < 4.3 doesn't understand binary constants (0b*):
> >>
> >> drivers/staging/fbtft/fbtft-sysfs.c:156:19: error: invalid suffix "b111" on integer constant
> >> drivers/staging/fbtft/fb_hx8340bn.c:159:3: error: invalid suffix "b1111" on integer constant
> >> drivers/staging/fbtft/fb_hx8340bn.c:159:11: error: invalid suffix "b1111" on integer constant
> >> drivers/staging/fbtft/fb_hx8340bn.c:159:19: error: invalid suffix "b11111" on integer constant
> >> drivers/staging/fbtft/fb_hx8340bn.c:159:28: error: invalid suffix "b1111" on integer constant
> >> drivers/staging/fbtft/fb_hx8340bn.c:159:36: error: invalid suffix "b1111" on integer constant
> >> drivers/staging/fbtft/fb_hx8340bn.c:159:44: error: invalid suffix "b1111" on integer constant
> >> drivers/staging/fbtft/fb_hx8340bn.c:159:52: error: invalid suffix "b11111" on integer constant
> >> drivers/staging/fbtft/fb_hx8340bn.c:160:3: error: invalid suffix "b111" on integer constant
> >> ...
> >>
> >> Hence use hexadecimal constants (0x*) instead.
> >>
> >> Signed-off-by: Geert Uytterhoeven <ge...@linux-m68k.org>
> >> ---
> >> This is against v4.0-rc3. In next-20150310 there are two whitespace
> >> differences.
> >
> > Can you make it against -next? I can't get this to apply as-is, sorry.
>
> Sure, will do. I was wondering if you wanted to sent this fix to Linus for v4.0,
> as the build is broken for gcc < 4.3, and keep the changes in -next for v4.1.

Nah, it's just staging code, it's ok to be broken on old compilers :)

thanks,

greg k-h
0 new messages