Skip to contentSkip to conversation

Some GCC 4.6 build warning fixes

PATCH Superseded Anatolij Gustschin 5 participants 32 messages Nov 15, 2011 – Nov 23, 2011

Subsystems (9)
lore
Share & tools
lore
#0 lore raw

cover Some GCC 4.6 build warning fixes

These patches can also be pulled from

git://git.denx.de/u-boot-video.git gcc46-warning-fixes

Anatolij Gustschin (12):
drivers/spi/atmel_spi.c: Fix GCC 4.6 warning drivers/mtd/dataflash.c: Fix GCC 4.6 warning drivers/net/at91_emac.c: Fix GCC 4.6 warning drivers/net/enc28j60.c: Fix GCC 4.6 warnings board/cm41xx/flash.c: Fix GCC 4.6 warnings board/cm4008/flash.c: Fix GCC 4.6 warnings drivers/video/da8xx-fb.c: Fix GCC 4.6 warning drivers/video/bus_vcxk.c: Fix GCC 4.6 warning drivers/i2c/davinci_i2c.c: Fix GCC 4.6 warning arch/arm/cpu/armv7/s5p-common/pwm.c: fix GCC 4.6 warning fs/yaffs2/yaffs_guts.c: Fix some GCC 4.6 warnings drivers/rtc/s3c24x0_rtc.c: fix GCC 4.6 warnings

 arch/arm/cpu/armv7/s5p-common/pwm.c |    2 --
 board/cm4008/flash.c                |    7 +++----
 board/cm41xx/flash.c                |    7 +++----
 drivers/i2c/davinci_i2c.c           |    4 +---
 drivers/mtd/dataflash.c             |    3 ---
 drivers/net/at91_emac.c             |    2 --
 drivers/net/enc28j60.c              |    8 +++-----
 drivers/rtc/s3c24x0_rtc.c           |    6 +++---
 drivers/spi/atmel_spi.c             |    2 --
 drivers/video/bus_vcxk.c            |    2 --
 drivers/video/da8xx-fb.c            |    3 ---
 fs/yaffs2/yaffs_guts.c              |   32 +++++++++-----------------------
 12 files changed, 22 insertions(+), 56 deletions(-)
#1 lore raw

PATCH 1/12 drivers/spi/atmel_spi.c: Fix GCC 4.6 warning

Fix:
atmel_spi.c: In function 'spi_xfer':
atmel_spi.c:139:7: warning: variable 'ret' set but not used [-Wunused-but-set-variable]

---
 drivers/spi/atmel_spi.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)
drivers/spi/atmel_spi.c +0 -2
index 33e38b6..83ef8e8 100644
@@ -136,13 +136,11 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
 	unsigned int	len_tx;
 	unsigned int	len_rx;
 	unsigned int	len;
-	int		ret;
 	u32		status;
 	const u8	*txp = dout;
 	u8		*rxp = din;
 	u8		value;
 
-	ret = 0;
 	if (bitlen == 0)
 		/* Finish any previously submitted transfers */
 		goto out;
Signature · 1 line
1.7.1
#2 lore raw

PATCH 1/12 drivers/spi/atmel_spi.c: Fix GCC 4.6 warning

Dear Anatolij Gustschin,

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

Fix:
atmel_spi.c: In function 'spi_xfer':
atmel_spi.c:139:7: warning: variable 'ret' set but not used [-Wunused-but-set-variable]

---
 drivers/spi/atmel_spi.c |    2 --
 1 files changed, 0 insertions(+), 2 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
"Who is the oldest inhabitant of this village?"
"We haven't got one; we had one, but he died three weeks ago."
#3 lore raw

PATCH 2/12 drivers/mtd/dataflash.c: Fix GCC 4.6 warning

In reply to Anatolij Gustschin

Fix:
dataflash.c: In function 'AT91F_DataflashInit':
dataflash.c:42:6: warning: variable 'last_part' set but not used [-Wunused-but-set-variable]

---
 drivers/mtd/dataflash.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)
drivers/mtd/dataflash.c +0 -3
index 96cd395..981ccd5 100644
@@ -39,7 +39,6 @@ int AT91F_DataflashInit (void)
 	int i, j;
 	int dfcode;
 	int part;
-	int last_part;
 	int found[CONFIG_SYS_MAX_DATAFLASH_BANKS];
 	unsigned char protected;
 
@@ -136,7 +135,6 @@ int AT91F_DataflashInit (void)
 				dataflash_info[i].Device.pages_size) - 1;
 
 		part = 0;
-		last_part = 0;
 		/* set the area addresses */
 		for(j = 0; j < NB_DATAFLASH_AREA; j++) {
 			if(found[i]!=0) {
@@ -147,7 +145,6 @@ int AT91F_DataflashInit (void)
 					dataflash_info[i].Device.area_list[j].end =
 						dataflash_info[i].end_address +
 						dataflash_info[i].logical_address;
-					last_part = 1;
 				} else {
 					dataflash_info[i].Device.area_list[j].end =
 						area_list[part].end +
Signature · 1 line
1.7.1
#4 lore raw

PATCH 2/12 drivers/mtd/dataflash.c: Fix GCC 4.6 warning

Dear Anatolij Gustschin,

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

Fix:
dataflash.c: In function 'AT91F_DataflashInit':
dataflash.c:42:6: warning: variable 'last_part' set but not used [-Wunused-but-set-variable]

---
 drivers/mtd/dataflash.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 6 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
Perfection is reached, not when there is no longer anything  to  add,
but when there is no longer anything to take away.
                                           - Antoine de Saint-Exupery
#5 lore raw

PATCH 3/12 drivers/net/at91_emac.c: Fix GCC 4.6 warning

In reply to Anatolij Gustschin

Fix:
at91_emac.c: In function 'at91emac_write_hwaddr':
at91_emac.c:477:15: warning: variable 'dev' set but not used [-Wunused-but-set-variable]

---
 drivers/net/at91_emac.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)
drivers/net/at91_emac.c +0 -2
index 97d2739..9bda1fc 100644
@@ -474,11 +474,9 @@ static int at91emac_recv(struct eth_device *netdev)
 
 static int at91emac_write_hwaddr(struct eth_device *netdev)
 {
-	emac_device *dev;
 	at91_emac_t *emac;
 	at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC;
 	emac = (at91_emac_t *) netdev->iobase;
-	dev = (emac_device *) netdev->priv;
 
 	writel(1 << ATMEL_ID_EMAC, &pmc->pcer);
 	DEBUG_AT91EMAC("init MAC-ADDR %02x:%02x:%02x:%02x:%02x:%02x\n",
Signature · 1 line
1.7.1
#6 lore raw

PATCH 3/12 drivers/net/at91_emac.c: Fix GCC 4.6 warning

Dear Anatolij Gustschin,

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

Fix:
at91_emac.c: In function 'at91emac_write_hwaddr':
at91_emac.c:477:15: warning: variable 'dev' set but not used [-Wunused-but-set-variable]

---
 drivers/net/at91_emac.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 7 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
... The things love can drive a man to -- the  ecstasies,  the  mise-
ries,  the broken rules, the desperate chances, the glorious failures
and the glorious victories.
	-- McCoy, "Requiem for Methuselah", stardate 5843.7
#7 lore raw

PATCH 4/12 drivers/net/enc28j60.c: Fix GCC 4.6 warnings

In reply to Anatolij Gustschin

Fix:
enc28j60.c: In function 'enc_receive':
enc28j60.c:435:5: warning: variable 'eir_reg' set but not used [-Wunused-but-set-variable]
enc28j60.c: In function 'enc_poll':
enc28j60.c:503:5: warning: variable 'estat_reg' set but not used [-Wunused-but-set-variable]

---
 drivers/net/enc28j60.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)
drivers/net/enc28j60.c +3 -5
index d55cacd..e2011ae 100644
@@ -432,7 +432,6 @@ static void enc_receive(enc_dev_t *enc)
 	u16 pkt_len;
 	u16 copy_len;
 	u16 status;
-	u8 eir_reg;
 	u8 pkt_cnt = 0;
 	u16 rxbuf_rdpt;
 	u8 hbuf[6];
@@ -476,7 +475,7 @@ static void enc_receive(enc_dev_t *enc)
 		/* read pktcnt */
 		pkt_cnt = enc_r8(enc, CTL_REG_EPKTCNT);
 		if (copy_len == 0) {
-			eir_reg = enc_r8(enc, CTL_REG_EIR);
+			(void)enc_r8(enc, CTL_REG_EIR);
 			enc_reset_rx(enc);
 			printf("%s: receive copy_len=0\n", enc->dev->name);
 			continue;
@@ -489,7 +488,7 @@ static void enc_receive(enc_dev_t *enc)
 		NetReceive(packet, pkt_len);
 		if (enc_claim_bus(enc))
 			return;
-		eir_reg = enc_r8(enc, CTL_REG_EIR);
+		(void)enc_r8(enc, CTL_REG_EIR);
 	} while (pkt_cnt);
 	/* Use EPKTCNT not EIR.PKTIF flag, see errata pt. 6 */
 }
@@ -500,14 +499,13 @@ static void enc_receive(enc_dev_t *enc)
 static void enc_poll(enc_dev_t *enc)
 {
 	u8 eir_reg;
-	u8 estat_reg;
 	u8 pkt_cnt;
 
 #ifdef CONFIG_USE_IRQ
 	/* clear global interrupt enable bit in enc28j60 */
 	enc_bclr(enc, CTL_REG_EIE, ENC_EIE_INTIE);
 #endif
-	estat_reg = enc_r8(enc, CTL_REG_ESTAT);
+	(void)enc_r8(enc, CTL_REG_ESTAT);
 	eir_reg = enc_r8(enc, CTL_REG_EIR);
 	if (eir_reg & ENC_EIR_TXIF) {
 		/* clear TXIF bit in EIR */
Signature · 1 line
1.7.1
#8 lore raw

PATCH 4/12 drivers/net/enc28j60.c: Fix GCC 4.6 warnings

Review

Quoted 2 lines · On Tuesday 15 November 2011 18:20:55 Anatolij Gustschin wrote:
(quoted diff) +1 -1
-		eir_reg = enc_r8(enc, CTL_REG_EIR);
+		(void)enc_r8(enc, CTL_REG_EIR);

is that (void) actually necessary ? last i looked, gcc didn't actually care. which means you should drop the (void).
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20111116/fd856c76/attachment.pgp

#9 lore raw

PATCH 4/12 drivers/net/enc28j60.c: Fix GCC 4.6 warnings

Dear Mike Frysinger,

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

Review

Quoted 2 lines · On Tuesday 15 November 2011 18:20:55 Anatolij Gustschin wrote:
(quoted diff) +1 -1
-		eir_reg = enc_r8(enc, CTL_REG_EIR);
+		(void)enc_r8(enc, CTL_REG_EIR);

is that (void) actually necessary ? last i looked, gcc didn't actually care. which means you should drop the (void).

It's not really necessary, but always a good indication to the reader that we intentionally ignore the return code.

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
It all seemed, he thought, to be rather a lot of  trouble  to  go  to
just sharpen a razor blade.  - Terry Pratchett, _The Light Fantastic_
#10 lore raw

PATCH 4/12 drivers/net/enc28j60.c: Fix GCC 4.6 warnings

In reply to Anatolij Gustschin

Dear Anatolij Gustschin,

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

Fix:
enc28j60.c: In function 'enc_receive':
enc28j60.c:435:5: warning: variable 'eir_reg' set but not used [-Wunused-but-set-variable]
enc28j60.c: In function 'enc_poll':
enc28j60.c:503:5: warning: variable 'estat_reg' set but not used [-Wunused-but-set-variable]

Quoted 4 lines
---
 drivers/net/enc28j60.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 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
Business is like a wheelbarrow. Nothing ever happens until you  start
pushing.
#11 lore raw

PATCH 5/12 board/cm41xx/flash.c: Fix GCC 4.6 warnings

In reply to Anatolij Gustschin

Fix:
flash.c: In function 'flash_erase':
flash.c:209:6: warning: variable 'flag' set but not used [-Wunused-but-set-variable]
flash.c: In function 'write_data':
flash.c:373:6: warning: variable 'flag' set but not used [-Wunused-but-set-variable]

---
 board/cm41xx/flash.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
board/cm41xx/flash.c +3 -4
index 2e1356f..5522bf0 100644
@@ -206,7 +206,7 @@ static ulong flash_get_size (unsigned char * addr, flash_info_t * info)
 
 int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
-	int flag, prot, sect;
+	int prot, sect;
 	ulong type;
 	int rcode = 0;
 	ulong start;
@@ -240,7 +240,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("\n");
 
 	/* Disable interrupts which might cause a timeout here */
-	flag = disable_interrupts ();
+	disable_interrupts();
 
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect <= s_last; sect++) {
@@ -370,7 +370,6 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
 {
 	volatile unsigned char *addr = (volatile unsigned char *) dest;
 	ulong status;
-	int flag;
 	ulong start;
 
 	/* Check if Flash is (sufficiently) erased */
@@ -380,7 +379,7 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
 		return (2);
 	}
 	/* Disable interrupts which might cause a timeout here */
-	flag = disable_interrupts ();
+	disable_interrupts();
 
 	*addr = 0x40;	/* write setup */
 	*addr = data;
Signature · 1 line
1.7.1
#12 lore raw

PATCH 5/12 board/cm41xx/flash.c: Fix GCC 4.6 warnings

Dear Anatolij Gustschin,

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

Fix:
flash.c: In function 'flash_erase':
flash.c:209:6: warning: variable 'flag' set but not used [-Wunused-but-set-variable]
flash.c: In function 'write_data':
flash.c:373:6: warning: variable 'flag' set but not used [-Wunused-but-set-variable]

Quoted 4 lines
---
 board/cm41xx/flash.c |    7 +++----
 1 files changed, 3 insertions(+), 4 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
What about WRITING it first and rationalizing it afterwords?  :-)
                       - Larry Wall in <[email protected]>
#13 lore raw

PATCH 6/12 board/cm4008/flash.c: Fix GCC 4.6 warnings

In reply to Anatolij Gustschin

Fix:
flash.c: In function 'flash_erase':
flash.c:209:6: warning: variable 'flag' set but not used [-Wunused-but-set-variable]
flash.c: In function 'write_data':
flash.c:373:6: warning: variable 'flag' set but not used [-Wunused-but-set-variable]

---
 board/cm4008/flash.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
board/cm4008/flash.c +3 -4
index 2e1356f..5522bf0 100644
@@ -206,7 +206,7 @@ static ulong flash_get_size (unsigned char * addr, flash_info_t * info)
 
 int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
-	int flag, prot, sect;
+	int prot, sect;
 	ulong type;
 	int rcode = 0;
 	ulong start;
@@ -240,7 +240,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("\n");
 
 	/* Disable interrupts which might cause a timeout here */
-	flag = disable_interrupts ();
+	disable_interrupts();
 
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect <= s_last; sect++) {
@@ -370,7 +370,6 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
 {
 	volatile unsigned char *addr = (volatile unsigned char *) dest;
 	ulong status;
-	int flag;
 	ulong start;
 
 	/* Check if Flash is (sufficiently) erased */
@@ -380,7 +379,7 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
 		return (2);
 	}
 	/* Disable interrupts which might cause a timeout here */
-	flag = disable_interrupts ();
+	disable_interrupts();
 
 	*addr = 0x40;	/* write setup */
 	*addr = data;
Signature · 1 line
1.7.1
#14 lore raw

PATCH 6/12 board/cm4008/flash.c: Fix GCC 4.6 warnings

Dear Anatolij Gustschin,

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

Fix:
flash.c: In function 'flash_erase':
flash.c:209:6: warning: variable 'flag' set but not used [-Wunused-but-set-variable]
flash.c: In function 'write_data':
flash.c:373:6: warning: variable 'flag' set but not used [-Wunused-but-set-variable]

Quoted 4 lines
---
 board/cm4008/flash.c |    7 +++----
 1 files changed, 3 insertions(+), 4 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
To know how another being, another creature feels -  that  is  impos-
sible.                  - Terry Pratchett, _The Dark Side of the Sun_
#15 lore raw

PATCH 7/12 drivers/video/da8xx-fb.c: Fix GCC 4.6 warning

In reply to Anatolij Gustschin

Fix:
da8xx-fb.c: In function 'video_hw_init':
da8xx-fb.c:688:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]

---
 drivers/video/da8xx-fb.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)
drivers/video/da8xx-fb.c +0 -3
index bca9fb5..a2981b1 100644
@@ -685,7 +685,6 @@ static u32 wait_for_event(u32 event)
 void *video_hw_init(void)
 {
 	struct da8xx_fb_par *par;
-	int ret;
 	u32 size;
 	char *p;
 
@@ -738,7 +737,6 @@ void *video_hw_init(void)
 
 	if (lcd_init(par, &lcd_cfg, lcd_panel) < 0) {
 		printf("lcd_init failed\n");
-		ret = -EFAULT;
 		goto err_release_fb;
 	}
 
@@ -754,7 +752,6 @@ void *video_hw_init(void)
 		(unsigned int)par->vram_virt);
 	if (!par->vram_virt) {
 		printf("GLCD: malloc for frame buffer failed\n");
-		ret = -EINVAL;
 		goto err_release_fb;
 	}
 
Signature · 1 line
1.7.1
#16 lore raw

PATCH 7/12 drivers/video/da8xx-fb.c: Fix GCC 4.6 warning

Dear Anatolij Gustschin,

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

Fix:
da8xx-fb.c: In function 'video_hw_init':
da8xx-fb.c:688:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]

---
 drivers/video/da8xx-fb.c |    3 ---
 1 files changed, 0 insertions(+), 3 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
A consultant is a person who borrows your watch, tells you what  time
it is, pockets the watch, and sends you a bill for it.
#17 lore raw

PATCH 8/12 drivers/video/bus_vcxk.c: Fix GCC 4.6 warning

In reply to Anatolij Gustschin

Fix:
bus_vcxk.c: In function 'vcxk_display_bitmap':
bus_vcxk.c:396:16: warning: variable 'compression' set but not used [-Wunused-but-set-variable]

---
 drivers/video/bus_vcxk.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)
drivers/video/bus_vcxk.c +0 -2
index 7aecb92..9c4714d 100644
@@ -393,7 +393,6 @@ int vcxk_display_bitmap(ulong addr, int x, int y)
 	unsigned long width;
 	unsigned long height;
 	unsigned long bpp;
-	unsigned long compression;
 
 	unsigned long lw;
 
@@ -404,7 +403,6 @@ int vcxk_display_bitmap(ulong addr, int x, int y)
 	bmp = (bmp_image_t *) addr;
 	if ((bmp->header.signature[0] == 'B') &&
 	    (bmp->header.signature[1] == 'M')) {
-		compression  = le32_to_cpu(bmp->header.compression);
 		width        = le32_to_cpu(bmp->header.width);
 		height       = le32_to_cpu(bmp->header.height);
 		bpp          = le16_to_cpu(bmp->header.bit_count);
Signature · 1 line
1.7.1
#18 lore raw

PATCH 8/12 drivers/video/bus_vcxk.c: Fix GCC 4.6 warning

Dear Anatolij Gustschin,

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

Fix:
bus_vcxk.c: In function 'vcxk_display_bitmap':
bus_vcxk.c:396:16: warning: variable 'compression' set but not used [-Wunused-but-set-variable]

---
 drivers/video/bus_vcxk.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 6 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
Our OS who art in CPU, UNIX be thy name.
Thy programs run, thy syscalls done,
In kernel as it is in user!
#19 lore raw

PATCH 9/12 drivers/i2c/davinci_i2c.c: Fix GCC 4.6 warning

In reply to Anatolij Gustschin

Fix:
davinci_i2c.c: In function 'flush_rx':
davinci_i2c.c:81:6: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]

---
 drivers/i2c/davinci_i2c.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)
drivers/i2c/davinci_i2c.c +1 -3
index 5e3406d..a09dc76 100644
@@ -78,13 +78,11 @@ static int poll_i2c_irq(int mask)
 
 void flush_rx(void)
 {
-	int	dummy;
-
 	while (1) {
 		if (!(REG(I2C_STAT) & I2C_STAT_RRDY))
 			break;
 
-		dummy = REG(I2C_DRR);
+		(void)REG(I2C_DRR);
 		REG(I2C_STAT) = I2C_STAT_RRDY;
 		udelay(1000);
 	}
Signature · 1 line
1.7.1
#20 lore raw

PATCH 9/12 drivers/i2c/davinci_i2c.c: Fix GCC 4.6 warning

Hello Anatolij,

Quoted 10 lines · Anatolij Gustschin

Fix:
davinci_i2c.c: In function 'flush_rx':
davinci_i2c.c:81:6: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]

---
 drivers/i2c/davinci_i2c.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

Thanks for fixing this!

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#21 lore raw

PATCH 9/12 drivers/i2c/davinci_i2c.c: Fix GCC 4.6 warning

In reply to Anatolij Gustschin
Quoted 17 lines · Anatolij Gustschin

Fix:
davinci_i2c.c: In function 'flush_rx':
davinci_i2c.c:81:6: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]

---
?drivers/i2c/davinci_i2c.c | ? ?4 +---
?1 files changed, 1 insertions(+), 3 deletions(-)

drivers/i2c/davinci_i2c.c +0 -0
index 5e3406d..a09dc76 100644
@@ -78,13 +78,11 @@ static int poll_i2c_irq(int mask)
 

drivers/i2c/davinci_i2c.c static int poll_i2c_irq(int mask) · line 85

Quoted 10 lines
drivers/i2c/davinci_i2c.c +1 -3
 ?void flush_rx(void)
 ?{
- ? ? ? int ? ? dummy;
-
 ? ? ? ?while (1) {
 ? ? ? ? ? ? ? ?if (!(REG(I2C_STAT) & I2C_STAT_RRDY))
 ? ? ? ? ? ? ? ? ? ? ? ?break;
 
- ? ? ? ? ? ? ? dummy = REG(I2C_DRR);
+ ? ? ? ? ? ? ? (void)REG(I2C_DRR);

This becomes:
(void)(*(volatile unsigned int *)(I2C_DDR))

So we don't need that cast. Also, can we at get a comment about what / why we're doing this?

Signature · 1 line
Tom
#22 lore raw

PATCH 9/12 drivers/i2c/davinci_i2c.c: Fix GCC 4.6 warning

On Wed, 16 Nov 2011 08:42:07 -0700
Tom Rini <[email protected]> wrote:
...

Quoted 12 lines
Quoted 12 lines
drivers/i2c/davinci_i2c.c +0 -2
@@ -78,13 +78,11 @@ static int poll_i2c_irq(int mask)
 
 ?void flush_rx(void)
 ?{
- ? ? ? int ? ? dummy;
-
 ? ? ? ?while (1) {
 ? ? ? ? ? ? ? ?if (!(REG(I2C_STAT) & I2C_STAT_RRDY))
 ? ? ? ? ? ? ? ? ? ? ? ?break;
 
Quoted 8 lines

drivers/i2c/davinci_i2c.c static int poll_i2c_irq(int mask) · line 85

Quoted 2 lines
drivers/i2c/davinci_i2c.c +1 -1
- ? ? ? ? ? ? ? dummy = REG(I2C_DRR);
+ ? ? ? ? ? ? ? (void)REG(I2C_DRR);

This becomes:
(void)(*(volatile unsigned int *)(I2C_DDR))

So we don't need that cast. Also, can we at get a comment about what / why we're doing this?

Ah, thanks for the pointer. Fixed in patch v2. I think that the code is self-explanatory and we don't need a comment. As long there is something shifted in and placed in data reception register we read and throw it away since this is a flush_rx().

Anatolij

#23 lore raw

PATCH v2 9/12 drivers/i2c/davinci_i2c.c: Fix GCC 4.6 warning

In reply to Anatolij Gustschin

Fix:
davinci_i2c.c: In function 'flush_rx':
davinci_i2c.c:81:6: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]

---
v2:
- drop void cast since REG() is not a function call but expands to (*(volatile unsigned int *)(I2C_DDR))
and thus we don't need to indicate that return value is ignored intentionally

 drivers/i2c/davinci_i2c.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)
drivers/i2c/davinci_i2c.c +1 -3
index 5e3406d..a09dc76 100644
@@ -78,13 +78,11 @@ static int poll_i2c_irq(int mask)
 
 void flush_rx(void)
 {
-	int	dummy;
-
 	while (1) {
 		if (!(REG(I2C_STAT) & I2C_STAT_RRDY))
 			break;
 
-		dummy = REG(I2C_DRR);
+		REG(I2C_DRR);
 		REG(I2C_STAT) = I2C_STAT_RRDY;
 		udelay(1000);
 	}
Signature · 1 line
1.7.1
#24 lore raw

PATCH v2 9/12 drivers/i2c/davinci_i2c.c: Fix GCC 4.6 warning

Hello Heiko,

Quoted 14 lines · On Sat, 19 Nov 2011 13:51:38 +0100 Anatolij Gustschin <[email protected]> wrote:

Fix:
davinci_i2c.c: In function 'flush_rx':
davinci_i2c.c:81:6: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]

---
v2:
- drop void cast since REG() is not a function call but expands to (*(volatile unsigned int *)(I2C_DDR))
and thus we don't need to indicate that return value is ignored intentionally

Quoted 2 lines
 drivers/i2c/davinci_i2c.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

Could you apply this patch, too? Thanks!

Anatolij

#25 lore raw

PATCH v2 9/12 drivers/i2c/davinci_i2c.c: Fix GCC 4.6 warning

Hello Anatolij,

Quoted 19 lines · Anatolij Gustschin

Hello Heiko,

Quoted 14 lines · On Sat, 19 Nov 2011 13:51:38 +0100 Anatolij Gustschin <[email protected]> wrote:

Fix:
davinci_i2c.c: In function 'flush_rx':
davinci_i2c.c:81:6: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]

---
v2:
- drop void cast since REG() is not a function call but expands to (*(volatile unsigned int *)(I2C_DDR))
and thus we don't need to indicate that return value is ignored intentionally

Quoted 4 lines
Quoted 2 lines
 drivers/i2c/davinci_i2c.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

Could you apply this patch, too? Thanks!

Had this on my Todo list ;-) done.

Thanks!

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#26 lore raw

PATCH 10/12 arch/arm/cpu/armv7/s5p-common/pwm.c: fix GCC 4.6 warning

In reply to Anatolij Gustschin

Fix:
pwm.c: In function 'pwm_config':
pwm.c:85:16: warning: variable 'timer_rate_hz' set but not used [-Wunused-but-set-variable]

---
 arch/arm/cpu/armv7/s5p-common/pwm.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)
arch/arm/cpu/armv7/s5p-common/pwm.c +0 -2
index ff95b84..58d279e 100644
@@ -82,7 +82,6 @@ int pwm_config(int pwm_id, int duty_ns, int period_ns)
 	unsigned long period;
 	unsigned long tcon;
 	unsigned long tcnt;
-	unsigned long timer_rate_hz;
 	unsigned long tcmp;
 
 	/*
@@ -100,7 +99,6 @@ int pwm_config(int pwm_id, int duty_ns, int period_ns)
 
 	/* Check to see if we are changing the clock rate of the PWM */
 	tin_rate = pwm_calc_tin(pwm_id, period);
-	timer_rate_hz = tin_rate;
 
 	tin_ns = NS_IN_HZ / tin_rate;
 	tcnt = period_ns / tin_ns;
Signature · 1 line
1.7.1
#27 lore raw

PATCH 10/12 arch/arm/cpu/armv7/s5p-common/pwm.c: fix GCC 4.6 warning

Dear Anatolij Gustschin,

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

Fix:
pwm.c: In function 'pwm_config':
pwm.c:85:16: warning: variable 'timer_rate_hz' set but not used [-Wunused-but-set-variable]

---
 arch/arm/cpu/armv7/s5p-common/pwm.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 4 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
The world is no nursery.                              - Sigmund Freud
#28 lore raw

PATCH 11/12 fs/yaffs2/yaffs_guts.c: Fix some GCC 4.6 warnings

In reply to Anatolij Gustschin

Fix:
yaffs_guts.c: In function 'yaffs_CheckChunkErased':
yaffs_guts.c:854:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_UpdateObjectHeader':
yaffs_guts.c:3463:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_GrabChunkCache':
yaffs_guts.c:3774:6: warning: variable 'pushout' set but not used yaffs_guts.c: In function 'yaffs_Scan':
yaffs_guts.c:5237:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_CheckObjectDetailsLoaded':
yaffs_guts.c:5748:6: warning: variable 'alloc_failed' set but not used yaffs_guts.c:5747:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_ScanBackwards':
yaffs_guts.c:5808:6: warning: variable 'deleted' set but not used yaffs_guts.c:5806:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_GetObjectName':
yaffs_guts.c:6657:7: warning: variable 'result' set but not used [-Wunused-but-set-variable]

---
 fs/yaffs2/yaffs_guts.c |   32 +++++++++-----------------------
 1 files changed, 9 insertions(+), 23 deletions(-)
fs/yaffs2/yaffs_guts.c +9 -23
index c4329af..f0ef8db 100644
@@ -851,9 +851,8 @@ static int yaffs_CheckChunkErased(struct yaffs_DeviceStruct *dev,
 	int retval = YAFFS_OK;
 	__u8 *data = yaffs_GetTempBuffer(dev, __LINE__);
 	yaffs_ExtendedTags tags;
-	int result;
 
-	result = yaffs_ReadChunkWithTagsFromNAND(dev, chunkInNAND, data, &tags);
+	yaffs_ReadChunkWithTagsFromNAND(dev, chunkInNAND, data, &tags);
 
 	if(tags.eccResult > YAFFS_ECC_RESULT_NO_ERROR)
 		retval = YAFFS_FAIL;
@@ -3460,7 +3459,6 @@ int yaffs_UpdateObjectHeader(yaffs_Object * in, const YCHAR * name, int force,
 
 	int prevChunkId;
 	int retVal = 0;
-	int result = 0;
 
 	int newChunkId;
 	yaffs_ExtendedTags newTags;
@@ -3484,7 +3482,7 @@ int yaffs_UpdateObjectHeader(yaffs_Object * in, const YCHAR * name, int force,
 		prevChunkId = in->chunkId;
 
 		if (prevChunkId >= 0) {
-			result = yaffs_ReadChunkWithTagsFromNAND(dev, prevChunkId,
+			yaffs_ReadChunkWithTagsFromNAND(dev, prevChunkId,
 							buffer, &oldTags);
 
 			yaffs_VerifyObjectHeader(in,oh,&oldTags,0);
@@ -3771,7 +3769,6 @@ static yaffs_ChunkCache *yaffs_GrabChunkCache(yaffs_Device * dev)
 	yaffs_Object *theObj;
 	int usage;
 	int i;
-	int pushout;
 
 	if (dev->nShortOpCaches > 0) {
 		/* Try find a non-dirty one... */
@@ -3790,7 +3787,6 @@ static yaffs_ChunkCache *yaffs_GrabChunkCache(yaffs_Device * dev)
 			theObj = NULL;
 			usage = -1;
 			cache = NULL;
-			pushout = -1;
 
 			for (i = 0; i < dev->nShortOpCaches; i++) {
 				if (dev->srCache[i].object &&
@@ -3800,7 +3796,6 @@ static yaffs_ChunkCache *yaffs_GrabChunkCache(yaffs_Device * dev)
 					usage = dev->srCache[i].lastUse;
 					theObj = dev->srCache[i].object;
 					cache = &dev->srCache[i];
-					pushout = i;
 				}
 			}
 
@@ -5234,7 +5229,6 @@ static int yaffs_Scan(yaffs_Device * dev)
 	int startIterator;
 	int endIterator;
 	int nBlocksToScan = 0;
-	int result;
 
 	int chunk;
 	int c;
@@ -5377,7 +5371,7 @@ static int yaffs_Scan(yaffs_Device * dev)
 			/* Read the tags and decide what to do */
 			chunk = blk * dev->nChunksPerBlock + c;
 
-			result = yaffs_ReadChunkWithTagsFromNAND(dev, chunk, NULL,
+			yaffs_ReadChunkWithTagsFromNAND(dev, chunk, NULL,
 							&tags);
 
 			/* Let's have a good look at this chunk... */
@@ -5474,7 +5468,7 @@ static int yaffs_Scan(yaffs_Device * dev)
 				yaffs_SetChunkBit(dev, blk, c);
 				bi->pagesInUse++;
 
-				result = yaffs_ReadChunkWithTagsFromNAND(dev, chunk,
+				yaffs_ReadChunkWithTagsFromNAND(dev, chunk,
 								chunkData,
 								NULL);
 
@@ -5744,8 +5738,6 @@ static void yaffs_CheckObjectDetailsLoaded(yaffs_Object *in)
 	yaffs_ObjectHeader *oh;
 	yaffs_Device *dev = in->myDev;
 	yaffs_ExtendedTags tags;
-	int result;
-	int alloc_failed = 0;
 
 	if(!in)
 		return;
@@ -5760,7 +5752,8 @@ static void yaffs_CheckObjectDetailsLoaded(yaffs_Object *in)
 		in->lazyLoaded = 0;
 		chunkData = yaffs_GetTempBuffer(dev, __LINE__);
 
-		result = yaffs_ReadChunkWithTagsFromNAND(dev,in->chunkId,chunkData,&tags);
+		yaffs_ReadChunkWithTagsFromNAND(dev, in->chunkId,
+						chunkData, &tags);
 		oh = (yaffs_ObjectHeader *) chunkData;
 
 		in->yst_mode = oh->yst_mode;
@@ -5785,8 +5778,6 @@ static void yaffs_CheckObjectDetailsLoaded(yaffs_Object *in)
 		if(in->variantType == YAFFS_OBJECT_TYPE_SYMLINK){
 			 in->variant.symLinkVariant.alias =
 						    yaffs_CloneString(oh->alias);
-			if(!in->variant.symLinkVariant.alias)
-				alloc_failed = 1; /* Not returned to caller */
 		}
 
 		yaffs_ReleaseTempBuffer(dev,chunkData, __LINE__);
@@ -5803,9 +5794,7 @@ static int yaffs_ScanBackwards(yaffs_Device * dev)
 	int nBlocksToScan = 0;
 
 	int chunk;
-	int result;
 	int c;
-	int deleted;
 	yaffs_BlockState state;
 	yaffs_Object *hardList = NULL;
 	yaffs_BlockInfo *bi;
@@ -5971,8 +5960,6 @@ static int yaffs_ScanBackwards(yaffs_Device * dev)
 
 		state = bi->blockState;
 
-		deleted = 0;
-
 		/* For each chunk in each block that needs scanning.... */
 		foundChunksInBlock = 0;
 		for (c = dev->nChunksPerBlock - 1;
@@ -5985,7 +5972,7 @@ static int yaffs_ScanBackwards(yaffs_Device * dev)
 
 			chunk = blk * dev->nChunksPerBlock + c;
 
-			result = yaffs_ReadChunkWithTagsFromNAND(dev, chunk, NULL,
+			yaffs_ReadChunkWithTagsFromNAND(dev, chunk, NULL,
 							&tags);
 
 			/* Let's have a good look at this chunk... */
@@ -6132,7 +6119,7 @@ static int yaffs_ScanBackwards(yaffs_Device * dev)
 					 * living with invalid data until needed.
 					 */
 
-					result = yaffs_ReadChunkWithTagsFromNAND(dev,
+					yaffs_ReadChunkWithTagsFromNAND(dev,
 									chunk,
 									chunkData,
 									NULL);
@@ -6654,7 +6641,6 @@ int yaffs_GetObjectName(yaffs_Object * obj, YCHAR * name, int buffSize)
 	}
 #endif
 	else {
-		int result;
 		__u8 *buffer = yaffs_GetTempBuffer(obj->myDev, __LINE__);
 
 		yaffs_ObjectHeader *oh = (yaffs_ObjectHeader *) buffer;
@@ -6662,7 +6648,7 @@ int yaffs_GetObjectName(yaffs_Object * obj, YCHAR * name, int buffSize)
 		memset(buffer, 0, obj->myDev->nDataBytesPerChunk);
 
 		if (obj->chunkId >= 0) {
-			result = yaffs_ReadChunkWithTagsFromNAND(obj->myDev,
+			yaffs_ReadChunkWithTagsFromNAND(obj->myDev,
 							obj->chunkId, buffer,
 							NULL);
 		}
Signature · 1 line
1.7.1
#29 lore raw

PATCH 11/12 fs/yaffs2/yaffs_guts.c: Fix some GCC 4.6 warnings

Dear Anatolij Gustschin,

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

Fix:
yaffs_guts.c: In function 'yaffs_CheckChunkErased':
yaffs_guts.c:854:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_UpdateObjectHeader':
yaffs_guts.c:3463:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_GrabChunkCache':
yaffs_guts.c:3774:6: warning: variable 'pushout' set but not used yaffs_guts.c: In function 'yaffs_Scan':
yaffs_guts.c:5237:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_CheckObjectDetailsLoaded':
yaffs_guts.c:5748:6: warning: variable 'alloc_failed' set but not used yaffs_guts.c:5747:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_ScanBackwards':
yaffs_guts.c:5808:6: warning: variable 'deleted' set but not used yaffs_guts.c:5806:6: warning: variable 'result' set but not used yaffs_guts.c: In function 'yaffs_GetObjectName':
yaffs_guts.c:6657:7: warning: variable 'result' set but not used [-Wunused-but-set-variable]

Quoted 4 lines
---
 fs/yaffs2/yaffs_guts.c |   32 +++++++++-----------------------
 1 files changed, 9 insertions(+), 23 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
Reader, suppose you were an idiot. And suppose you were a  member  of
Congress. But I repeat myself.                           - Mark Twain
#30 lore raw

PATCH 12/12 drivers/rtc/s3c24x0_rtc.c: fix GCC 4.6 warnings

In reply to Anatolij Gustschin

Fix:
s3c24x0_rtc.c: In function 'rtc_get':
s3c24x0_rtc.c:67:53: warning: variable 'a_armed' set but not used s3c24x0_rtc.c:67:45: warning: variable 'a_year' set but not used s3c24x0_rtc.c:67:38: warning: variable 'a_mon' set but not used s3c24x0_rtc.c:67:30: warning: variable 'a_date' set but not used s3c24x0_rtc.c:67:22: warning: variable 'a_hour' set but not used s3c24x0_rtc.c:67:15: warning: variable 'a_min' set but not used s3c24x0_rtc.c:67:8: warning: variable 'a_sec' set but not used [-Wunused-but-set-variable]

---
 drivers/rtc/s3c24x0_rtc.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
drivers/rtc/s3c24x0_rtc.c +3 -3
index 9667939..c16ff2e 100644
@@ -34,8 +34,7 @@
 
 #include <rtc.h>
 #include <asm/io.h>
-
-/*#define	DEBUG*/
+#include <linux/compiler.h>
 
 typedef enum {
 	RTC_ENABLE,
@@ -64,7 +63,8 @@ int rtc_get(struct rtc_time *tmp)
 {
 	struct s3c24x0_rtc *rtc = s3c24x0_get_base_rtc();
 	uchar sec, min, hour, mday, wday, mon, year;
-	uchar a_sec, a_min, a_hour, a_date, a_mon, a_year, a_armed;
+	__maybe_unused uchar a_sec, a_min, a_hour, a_date,
+			     a_mon, a_year, a_armed;
 
 	/* enable access to RTC registers */
 	SetRTC_Access(RTC_ENABLE);
Signature · 1 line
1.7.1
#31 lore raw

PATCH 12/12 drivers/rtc/s3c24x0_rtc.c: fix GCC 4.6 warnings

Dear Anatolij Gustschin,

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

Fix:
s3c24x0_rtc.c: In function 'rtc_get':
s3c24x0_rtc.c:67:53: warning: variable 'a_armed' set but not used s3c24x0_rtc.c:67:45: warning: variable 'a_year' set but not used s3c24x0_rtc.c:67:38: warning: variable 'a_mon' set but not used s3c24x0_rtc.c:67:30: warning: variable 'a_date' set but not used s3c24x0_rtc.c:67:22: warning: variable 'a_hour' set but not used s3c24x0_rtc.c:67:15: warning: variable 'a_min' set but not used s3c24x0_rtc.c:67:8: warning: variable 'a_sec' set but not used [-Wunused-but-set-variable]

Quoted 4 lines
---
 drivers/rtc/s3c24x0_rtc.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 4 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
I read part of it all the way through.