Skip to contentSkip to conversation

PPC4xx: ALPR: constify FPGA code

PATCH New Wolfgang Denk 3 participants 9 messages Sep 5, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 PPC4xx: ALPR: constify FPGA code

The ALPR custom FPGA code was missed by commit e6a857d "fpga:
constify to fix build warning" resulting in such warnings:

fpga.c:226: warning: initialization from incompatible pointer type

---
 board/prodrive/alpr/fpga.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
board/prodrive/alpr/fpga.c +1 -1
index 93f2449..3666a9a 100644
@@ -168,7 +168,7 @@ int fpga_done_fn (int cookie)
 /* writes the complete buffer to the FPGA
    writing the complete buffer in one function is much faster,
    then calling it for every bit */
-int fpga_write_fn (void *buf, size_t len, int flush, int cookie)
+int fpga_write_fn (const void *buf, size_t len, int flush, int cookie)
 {
 	size_t bytecount = 0;
 	unsigned char *data = (unsigned char *) buf;
Signature · 1 line
1.7.6
#1 lore raw

PATCH 1/1 PPC4xx: ALPR: constify FPGA code

Hi Wolfgang,

Quoted 7 lines · On Monday 05 September 2011 11:43:29 Wolfgang Denk wrote:

The ALPR custom FPGA code was missed by commit e6a857d "fpga:
constify to fix build warning" resulting in such warnings:

fpga.c:226: warning: initialization from incompatible pointer type

Wolfgang, please feel free to pull this directly if you prefer.

Thanks.

Best regards,
Stefan

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

#2 lore raw

PATCH 1/1 PPC4xx: ALPR: constify FPGA code

Dear Stefan Roese,

Quoted 2 lines · In message <[email protected]> you wrote:

Thanks.

Quoted 1 line

Wolfgang, please feel free to pull this directly if you prefer.

Will do, thanks.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Either one of us, by himself, is expendable.  Both of us are not.
	-- Kirk, "The Devil in the Dark", stardate 3196.1
#3 lore raw

PATCH 1/1 PPC4xx: ALPR: constify FPGA code

In reply to Wolfgang Denk

Hello.

Quoted 16 lines · Wolfgang Denk

The ALPR custom FPGA code was missed by commit e6a857d "fpga:
constify to fix build warning" resulting in such warnings:

fpga.c:226: warning: initialization from incompatible pointer type

---
  board/prodrive/alpr/fpga.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
board/prodrive/alpr/fpga.c +0 -0
index 93f2449..3666a9a 100644

board/prodrive/alpr/fpga.c int fpga_done_fn (int cookie) · line 171

Quoted 5 lines
board/prodrive/alpr/fpga.c +1 -1
@@ -168,7 +168,7 @@ int fpga_done_fn (int cookie)
  /* writes the complete buffer to the FPGA
     writing the complete buffer in one function is much faster,
     then calling it for every bit */
-int fpga_write_fn (void *buf, size_t len, int flush, int cookie)
+int fpga_write_fn (const void *buf, size_t len, int flush, int cookie)

I guess this causes checkpatch.pl to complain due to space before (...

WBR, Sergei

#4 lore raw

PATCH 1/1 PPC4xx: ALPR: constify FPGA code

Dear Sergei Shtylyov,

Quoted 5 lines · In message <[email protected]> you wrote:

board/prodrive/alpr/fpga.c int fpga_done_fn (int cookie) · line 171

Quoted 3 lines
board/prodrive/alpr/fpga.c +1 -1
-int fpga_write_fn (void *buf, size_t len, int flush, int cookie)
+int fpga_write_fn (const void *buf, size_t len, int flush, int cookie)

I guess this causes checkpatch.pl to complain due to space before (...

Right. I'll send a separate cleanup patch later.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Der Irrtum wiederholt sich immerfort in der Tat.  Deshalb mu? man das
Wahre unerm?dlich in Worten wiederholen.                     - Goethe
#5 lore raw

PATCH 1/1 board/prodrive/alpr/fpga.c: Coding style cleanup

In reply to Sergei Shtylyov

---
No functional changes, only coding style cleanup.

 board/prodrive/alpr/fpga.c |   68 ++++++++++++++++++++++---------------------
 1 files changed, 35 insertions(+), 33 deletions(-)
board/prodrive/alpr/fpga.c +35 -33
index 3666a9a..1778688 100644
@@ -39,9 +39,9 @@ DECLARE_GLOBAL_DATA_PTR;
 #if defined(CONFIG_FPGA)
 
 #ifdef FPGA_DEBUG
-#define	PRINTF(fmt,args...)	printf (fmt ,##args)
+#define	PRINTF(fmt, args...)	printf(fmt , ##args)
 #else
-#define	PRINTF(fmt,args...)
+#define	PRINTF(fmt, args...)
 #endif
 
 static unsigned long regval;
@@ -69,19 +69,21 @@ static unsigned long regval;
 
 #define SET_FPGA(data)		out32(GPIO0_OR, data)
 
-#define FPGA_WRITE_1 {							\
-		SET_FPGA(OLD_VAL | 0        | FPGA_DATA);  /* set data to 1  */	\
-		SET_FPGA(OLD_VAL | FPGA_CLK | FPGA_DATA);} /* set data to 1  */
+#define FPGA_WRITE_1 {							    \
+	SET_FPGA(OLD_VAL | 0	    | FPGA_DATA);	/* set data to 1 */ \
+	SET_FPGA(OLD_VAL | FPGA_CLK | FPGA_DATA);	/* set data to 1 */ \
+}
 
-#define FPGA_WRITE_0 {							\
-		SET_FPGA(OLD_VAL | 0        | 0        );   /* set data to 0  */ \
-		SET_FPGA(OLD_VAL | FPGA_CLK | 0        );}  /* set data to 1  */
+#define FPGA_WRITE_0 {							    \
+	SET_FPGA(OLD_VAL | 0	    | 0);		/* set data to 0 */ \
+	SET_FPGA(OLD_VAL | FPGA_CLK | 0);		/* set data to 1 */ \
+}
 
 /* Plattforminitializations */
 /* Here we have to set the FPGA Chain */
 /* PROGRAM_PROG_EN	= HIGH */
 /* PROGRAM_SEL_DPR	= LOW */
-int fpga_pre_fn (int cookie)
+int fpga_pre_fn(int cookie)
 {
 	unsigned long	reg;
 
@@ -128,23 +130,23 @@ int fpga_pre_fn (int cookie)
 }
 
 /* Set the state of CONFIG Pin */
-int fpga_config_fn (int assert_config, int flush, int cookie)
+int fpga_config_fn(int assert_config, int flush, int cookie)
 {
-	if (assert_config) {
+	if (assert_config)
 		SET_GPIO_1(CONFIG_SYS_GPIO_CONFIG);
-	} else {
+	else
 		SET_GPIO_0(CONFIG_SYS_GPIO_CONFIG);
-	}
+
 	return FPGA_SUCCESS;
 }
 
 /* Returns the state of STATUS Pin */
-int fpga_status_fn (int cookie)
+int fpga_status_fn(int cookie)
 {
 	unsigned long	reg;
 
 	reg = in32(GPIO0_IR);
-	if (reg &= (0x80000000 >> CONFIG_SYS_GPIO_STATUS)) {
+	if (reg & (0x80000000 >> CONFIG_SYS_GPIO_STATUS)) {
 		PRINTF("STATUS = HIGH\n");
 		return FPGA_FAIL;
 	}
@@ -153,11 +155,11 @@ int fpga_status_fn (int cookie)
 }
 
 /* Returns the state of CONF_DONE Pin */
-int fpga_done_fn (int cookie)
+int fpga_done_fn(int cookie)
 {
 	unsigned long	reg;
 	reg = in32(GPIO0_IR);
-	if (reg &= (0x80000000 >> CONFIG_SYS_GPIO_CON_DON)) {
+	if (reg & (0x80000000 >> CONFIG_SYS_GPIO_CON_DON)) {
 		PRINTF("CONF_DON = HIGH\n");
 		return FPGA_FAIL;
 	}
@@ -168,11 +170,11 @@ int fpga_done_fn (int cookie)
 /* writes the complete buffer to the FPGA
    writing the complete buffer in one function is much faster,
    then calling it for every bit */
-int fpga_write_fn (const void *buf, size_t len, int flush, int cookie)
+int fpga_write_fn(const void *buf, size_t len, int flush, int cookie)
 {
 	size_t bytecount = 0;
 	unsigned char *data = (unsigned char *) buf;
-	unsigned char val=0;
+	unsigned char val = 0;
 	int		i;
 	int len_40 = len / 40;
 
@@ -180,20 +182,20 @@ int fpga_write_fn (const void *buf, size_t len, int flush, int cookie)
 		val = data[bytecount++];
 		i = 8;
 		do {
-			if (val & 0x01) {
+			if (val & 0x01)
 				FPGA_WRITE_1;
-			} else {
+			else
 				FPGA_WRITE_0;
-			}
+
 			val >>= 1;
-			i --;
+			i--;
 		} while (i > 0);
 
 #ifdef CONFIG_SYS_FPGA_PROG_FEEDBACK
 		if (bytecount % len_40 == 0) {
-			putc ('.');		/* let them know we are alive */
+			putc('.');		/* let them know we are alive */
 #ifdef CONFIG_SYS_FPGA_CHECK_CTRLC
-			if (ctrlc ())
+			if (ctrlc())
 				return FPGA_FAIL;
 #endif
 		}
@@ -203,16 +205,16 @@ int fpga_write_fn (const void *buf, size_t len, int flush, int cookie)
 }
 
 /* called, when programming is aborted */
-int fpga_abort_fn (int cookie)
+int fpga_abort_fn(int cookie)
 {
 	SET_GPIO_1((CONFIG_SYS_GPIO_SEL_DPR));
 	return FPGA_SUCCESS;
 }
 
 /* called, when programming was succesful */
-int fpga_post_fn (int cookie)
+int fpga_post_fn(int cookie)
 {
-	return fpga_abort_fn (cookie);
+	return fpga_abort_fn(cookie);
 }
 
 /* Note that these are pointers to code that is in Flash.  They will be
@@ -240,16 +242,16 @@ Altera_desc fpga[CONFIG_FPGA_COUNT] = {
 /*
  * Initialize the fpga.  Return 1 on success, 0 on failure.
  */
-int alpr_fpga_init (void)
+int alpr_fpga_init(void)
 {
 	int i;
 
-	PRINTF ("%s:%d: Initialize FPGA interface\n", __FUNCTION__, __LINE__);
-	fpga_init ();
+	PRINTF("%s:%d: Initialize FPGA interface\n", __func__, __LINE__);
+	fpga_init();
 
 	for (i = 0; i < CONFIG_FPGA_COUNT; i++) {
-		PRINTF ("%s:%d: Adding fpga %d\n", __FUNCTION__, __LINE__, i);
-		fpga_add (fpga_altera, &fpga[i]);
+		PRINTF("%s:%d: Adding fpga %d\n", __func__, __LINE__, i);
+		fpga_add(fpga_altera, &fpga[i]);
 	}
 	return 1;
 }
Signature · 1 line
1.7.6
#6 lore raw

PATCH v2 1/1 board/prodrive/alpr/fpga.c: Coding style cleanup

---
v2: fix compile issues; must use "do {} while (0)" in macros
definitions if we want to omit the braces in if...else statements. Should have done this anyway.

 board/prodrive/alpr/fpga.c |   76 ++++++++++++++++++++++---------------------
 1 files changed, 39 insertions(+), 37 deletions(-)
board/prodrive/alpr/fpga.c +39 -37
index 3666a9a..e7686ad 100644
@@ -39,24 +39,24 @@ DECLARE_GLOBAL_DATA_PTR;
 #if defined(CONFIG_FPGA)
 
 #ifdef FPGA_DEBUG
-#define	PRINTF(fmt,args...)	printf (fmt ,##args)
+#define	PRINTF(fmt, args...)	printf(fmt , ##args)
 #else
-#define	PRINTF(fmt,args...)
+#define	PRINTF(fmt, args...)
 #endif
 
 static unsigned long regval;
 
-#define SET_GPIO_REG_0(reg, bit) {				\
+#define SET_GPIO_REG_0(reg, bit) do {				\
 		regval = in32(reg);				\
 		regval &= ~(0x80000000 >> bit);			\
 		out32(reg, regval);				\
-	}
+	} while (0)
 
-#define SET_GPIO_REG_1(reg, bit) {				\
+#define SET_GPIO_REG_1(reg, bit) do {				\
 		regval = in32(reg);				\
 		regval |= (0x80000000 >> bit);			\
 		out32(reg, regval);				\
-	}
+	} while (0)
 
 #define	SET_GPIO_0(bit)		SET_GPIO_REG_0(GPIO0_OR, bit)
 #define	SET_GPIO_1(bit)		SET_GPIO_REG_1(GPIO0_OR, bit)
@@ -69,19 +69,21 @@ static unsigned long regval;
 
 #define SET_FPGA(data)		out32(GPIO0_OR, data)
 
-#define FPGA_WRITE_1 {							\
-		SET_FPGA(OLD_VAL | 0        | FPGA_DATA);  /* set data to 1  */	\
-		SET_FPGA(OLD_VAL | FPGA_CLK | FPGA_DATA);} /* set data to 1  */
+#define FPGA_WRITE_1 do {							    \
+	SET_FPGA(OLD_VAL | 0	    | FPGA_DATA);	/* set data to 1 */ \
+	SET_FPGA(OLD_VAL | FPGA_CLK | FPGA_DATA);	/* set data to 1 */ \
+} while (0)
 
-#define FPGA_WRITE_0 {							\
-		SET_FPGA(OLD_VAL | 0        | 0        );   /* set data to 0  */ \
-		SET_FPGA(OLD_VAL | FPGA_CLK | 0        );}  /* set data to 1  */
+#define FPGA_WRITE_0 do {							    \
+	SET_FPGA(OLD_VAL | 0	    | 0);		/* set data to 0 */ \
+	SET_FPGA(OLD_VAL | FPGA_CLK | 0);		/* set data to 1 */ \
+} while (0)
 
 /* Plattforminitializations */
 /* Here we have to set the FPGA Chain */
 /* PROGRAM_PROG_EN	= HIGH */
 /* PROGRAM_SEL_DPR	= LOW */
-int fpga_pre_fn (int cookie)
+int fpga_pre_fn(int cookie)
 {
 	unsigned long	reg;
 
@@ -128,23 +130,23 @@ int fpga_pre_fn (int cookie)
 }
 
 /* Set the state of CONFIG Pin */
-int fpga_config_fn (int assert_config, int flush, int cookie)
+int fpga_config_fn(int assert_config, int flush, int cookie)
 {
-	if (assert_config) {
+	if (assert_config)
 		SET_GPIO_1(CONFIG_SYS_GPIO_CONFIG);
-	} else {
+	else
 		SET_GPIO_0(CONFIG_SYS_GPIO_CONFIG);
-	}
+
 	return FPGA_SUCCESS;
 }
 
 /* Returns the state of STATUS Pin */
-int fpga_status_fn (int cookie)
+int fpga_status_fn(int cookie)
 {
 	unsigned long	reg;
 
 	reg = in32(GPIO0_IR);
-	if (reg &= (0x80000000 >> CONFIG_SYS_GPIO_STATUS)) {
+	if (reg & (0x80000000 >> CONFIG_SYS_GPIO_STATUS)) {
 		PRINTF("STATUS = HIGH\n");
 		return FPGA_FAIL;
 	}
@@ -153,11 +155,11 @@ int fpga_status_fn (int cookie)
 }
 
 /* Returns the state of CONF_DONE Pin */
-int fpga_done_fn (int cookie)
+int fpga_done_fn(int cookie)
 {
 	unsigned long	reg;
 	reg = in32(GPIO0_IR);
-	if (reg &= (0x80000000 >> CONFIG_SYS_GPIO_CON_DON)) {
+	if (reg & (0x80000000 >> CONFIG_SYS_GPIO_CON_DON)) {
 		PRINTF("CONF_DON = HIGH\n");
 		return FPGA_FAIL;
 	}
@@ -168,11 +170,11 @@ int fpga_done_fn (int cookie)
 /* writes the complete buffer to the FPGA
    writing the complete buffer in one function is much faster,
    then calling it for every bit */
-int fpga_write_fn (const void *buf, size_t len, int flush, int cookie)
+int fpga_write_fn(const void *buf, size_t len, int flush, int cookie)
 {
 	size_t bytecount = 0;
 	unsigned char *data = (unsigned char *) buf;
-	unsigned char val=0;
+	unsigned char val = 0;
 	int		i;
 	int len_40 = len / 40;
 
@@ -180,20 +182,20 @@ int fpga_write_fn (const void *buf, size_t len, int flush, int cookie)
 		val = data[bytecount++];
 		i = 8;
 		do {
-			if (val & 0x01) {
+			if (val & 0x01)
 				FPGA_WRITE_1;
-			} else {
+			else
 				FPGA_WRITE_0;
-			}
+
 			val >>= 1;
-			i --;
+			i--;
 		} while (i > 0);
 
 #ifdef CONFIG_SYS_FPGA_PROG_FEEDBACK
 		if (bytecount % len_40 == 0) {
-			putc ('.');		/* let them know we are alive */
+			putc('.');		/* let them know we are alive */
 #ifdef CONFIG_SYS_FPGA_CHECK_CTRLC
-			if (ctrlc ())
+			if (ctrlc())
 				return FPGA_FAIL;
 #endif
 		}
@@ -203,16 +205,16 @@ int fpga_write_fn (const void *buf, size_t len, int flush, int cookie)
 }
 
 /* called, when programming is aborted */
-int fpga_abort_fn (int cookie)
+int fpga_abort_fn(int cookie)
 {
 	SET_GPIO_1((CONFIG_SYS_GPIO_SEL_DPR));
 	return FPGA_SUCCESS;
 }
 
 /* called, when programming was succesful */
-int fpga_post_fn (int cookie)
+int fpga_post_fn(int cookie)
 {
-	return fpga_abort_fn (cookie);
+	return fpga_abort_fn(cookie);
 }
 
 /* Note that these are pointers to code that is in Flash.  They will be
@@ -240,16 +242,16 @@ Altera_desc fpga[CONFIG_FPGA_COUNT] = {
 /*
  * Initialize the fpga.  Return 1 on success, 0 on failure.
  */
-int alpr_fpga_init (void)
+int alpr_fpga_init(void)
 {
 	int i;
 
-	PRINTF ("%s:%d: Initialize FPGA interface\n", __FUNCTION__, __LINE__);
-	fpga_init ();
+	PRINTF("%s:%d: Initialize FPGA interface\n", __func__, __LINE__);
+	fpga_init();
 
 	for (i = 0; i < CONFIG_FPGA_COUNT; i++) {
-		PRINTF ("%s:%d: Adding fpga %d\n", __FUNCTION__, __LINE__, i);
-		fpga_add (fpga_altera, &fpga[i]);
+		PRINTF("%s:%d: Adding fpga %d\n", __func__, __LINE__, i);
+		fpga_add(fpga_altera, &fpga[i]);
 	}
 	return 1;
 }
Signature · 1 line
1.7.6
#7 lore raw

PATCH v2 1/1 board/prodrive/alpr/fpga.c: Coding style cleanup

Quoted 2 lines · On Monday 05 September 2011 13:34:39 Wolfgang Denk wrote:

Again, please apply directly if you prefer.

Thanks.

Best regards,
Stefan

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

author Applied
#8 lore raw

PATCH v2 1/1 board/prodrive/alpr/fpga.c: Coding style cleanup

In reply to Wolfgang Denk

Dear Wolfgang Denk,

Quoted 9 lines · In message <[email protected]> you wrote:

---
v2: fix compile issues; must use "do {} while (0)" in macros
definitions if we want to omit the braces in if...else statements. Should have done this anyway.

 board/prodrive/alpr/fpga.c |   76 ++++++++++++++++++++++---------------------
 1 files changed, 39 insertions(+), 37 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
In general, they do what you want, unless you want consistency.
                                    - Larry Wall in the perl man page