From 2d9863e121ff0c02b33f1b8a3e74fae55d901fa6 Mon Sep 17 00:00:00 2001
From: David Brownell <dbrownell@users.sourceforge.net>
Date: Wed, 4 Nov 2009 21:41:08 -0800
Subject: ft2232: cleanup

Previous patch somehow made GCC lose some of its cookies;
work around, zero-init that struct.

Clean up code from the previous patch.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
---
 src/jtag/ft2232.c | 207 +++++++++++++++++++++++++-----------------------------
 1 file changed, 97 insertions(+), 110 deletions(-)

(limited to 'src')

diff --git a/src/jtag/ft2232.c b/src/jtag/ft2232.c
index 7e8c84f6..bd910b35 100644
--- a/src/jtag/ft2232.c
+++ b/src/jtag/ft2232.c
@@ -3256,7 +3256,7 @@ static int signalyzer_h_init(void)
 
 	char *end_of_desc;
 
-	uint16_t read_buf[12];
+	uint16_t read_buf[12] = { 0 };
 	uint8_t  buf[3];
 	uint32_t bytes_written;
 
@@ -3909,122 +3909,109 @@ static void signalyzer_h_blink(void)
  *******************************************************************/
 static int ktlink_init(void)
 {
-  uint8_t  buf[3];
-  uint32_t bytes_written;
-  uint8_t  swd_en = 0x20; //0x20 SWD disable, 0x00 SWD enable (ADBUS5)
-
-  low_output    = 0x08 | swd_en; // value; TMS=1,TCK=0,TDI=0,SWD=swd_en
-  low_direction = 0x3B;          // out=1; TCK/TDI/TMS=out,TDO=in,SWD=out,RTCK=in,SRSTIN=in
-
-  // initialize low port
-  buf[0] = 0x80;          // command "set data bits low byte"
-  buf[1] = low_output;
-  buf[2] = low_direction;
-  LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);
-
-  if ( ( ( ft2232_write(buf, 3, &bytes_written) ) != ERROR_OK ) || (bytes_written != 3) )
-    {
-      LOG_ERROR("couldn't initialize FT2232 with 'ktlink' layout");
-      return ERROR_JTAG_INIT_FAILED;
-    }
-
-  nTRST    = 0x01;
-  nSRST    = 0x02;
-  nTRSTnOE = 0x04;
-  nSRSTnOE = 0x08;
-
-  high_output    = 0x80; // turn LED on
-  high_direction = 0xFF; // all outputs
-
-  enum reset_types jtag_reset_config = jtag_get_reset_config();
-
-  if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
-    {
-      high_output |= nTRSTnOE;
-      high_output &= ~nTRST;
-    }
-  else
-    {
-      high_output &= ~nTRSTnOE;
-      high_output |= nTRST;
-    }
-
-  if (jtag_reset_config & RESET_SRST_PUSH_PULL)
-    {
-      high_output &= ~nSRSTnOE;
-      high_output |= nSRST;
-    }
-  else
-    {
-      high_output |= nSRSTnOE;
-      high_output &= ~nSRST;
-    }
-
-  // initialize high port
-  buf[0] = 0x82;              // command "set data bits high byte"
-  buf[1] = high_output;       // value
-  buf[2] = high_direction;
-  LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);
-
-  if ( ( ( ft2232_write(buf, 3, &bytes_written) ) != ERROR_OK ) || (bytes_written != 3) )
-    {
-      LOG_ERROR("couldn't initialize FT2232 with 'ktlink' layout");
-      return ERROR_JTAG_INIT_FAILED;
-    }
-
-  return ERROR_OK;
+	uint8_t  buf[3];
+	uint32_t bytes_written;
+	uint8_t  swd_en = 0x20; //0x20 SWD disable, 0x00 SWD enable (ADBUS5)
+
+	low_output    = 0x08 | swd_en; // value; TMS=1,TCK=0,TDI=0,SWD=swd_en
+	low_direction = 0x3B;          // out=1; TCK/TDI/TMS=out,TDO=in,SWD=out,RTCK=in,SRSTIN=in
+
+	// initialize low port
+	buf[0] = 0x80;          // command "set data bits low byte"
+	buf[1] = low_output;
+	buf[2] = low_direction;
+	LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);
+
+	if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
+	{
+		LOG_ERROR("couldn't initialize FT2232 with 'ktlink' layout");
+		return ERROR_JTAG_INIT_FAILED;
+	}
+
+	nTRST    = 0x01;
+	nSRST    = 0x02;
+	nTRSTnOE = 0x04;
+	nSRSTnOE = 0x08;
+
+	high_output    = 0x80; // turn LED on
+	high_direction = 0xFF; // all outputs
+
+	enum reset_types jtag_reset_config = jtag_get_reset_config();
+
+	if (jtag_reset_config & RESET_TRST_OPEN_DRAIN) {
+		high_output |= nTRSTnOE;
+		high_output &= ~nTRST;
+	} else {
+		high_output &= ~nTRSTnOE;
+		high_output |= nTRST;
+	}
+
+	if (jtag_reset_config & RESET_SRST_PUSH_PULL) {
+		high_output &= ~nSRSTnOE;
+		high_output |= nSRST;
+	} else {
+		high_output |= nSRSTnOE;
+		high_output &= ~nSRST;
+	}
+
+	// initialize high port
+	buf[0] = 0x82;              // command "set data bits high byte"
+	buf[1] = high_output;       // value
+	buf[2] = high_direction;
+	LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);
+
+	if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
+	{
+		LOG_ERROR("couldn't initialize FT2232 with 'ktlink' layout");
+		return ERROR_JTAG_INIT_FAILED;
+	}
+
+	return ERROR_OK;
 }
 
 static void ktlink_reset(int trst, int srst)
 {
-  enum reset_types jtag_reset_config = jtag_get_reset_config();
-
-  if (trst == 1)
-    {
-      if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
-        high_output &= ~nTRSTnOE;
-      else
-        high_output &= ~nTRST;
-    }
-  else if (trst == 0)
-    {
-      if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
-        high_output |= nTRSTnOE;
-      else
-        high_output |= nTRST;
-    }
-
-  if (srst == 1)
-    {
-      if (jtag_reset_config & RESET_SRST_PUSH_PULL)
-        high_output &= ~nSRST;
-      else
-        high_output &= ~nSRSTnOE;
-    }
-  else if (srst == 0)
-    {
-      if (jtag_reset_config & RESET_SRST_PUSH_PULL)
-        high_output |= nSRST;
-      else
-        high_output |= nSRSTnOE;
-    }
-
-  buffer_write(0x82); // command "set data bits high byte"
-  buffer_write(high_output);
-  buffer_write(high_direction);
-  LOG_DEBUG("trst: %i, srst: %i, high_output: 0x%2.2x, high_direction: 0x%2.2x", trst, srst, high_output,high_direction);
+	enum reset_types jtag_reset_config = jtag_get_reset_config();
+
+	if (trst == 1) {
+		if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
+			high_output &= ~nTRSTnOE;
+		else
+			high_output &= ~nTRST;
+	} else if (trst == 0) {
+		if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
+			high_output |= nTRSTnOE;
+		else
+			high_output |= nTRST;
+	}
+
+	if (srst == 1) {
+		if (jtag_reset_config & RESET_SRST_PUSH_PULL)
+			high_output &= ~nSRST;
+		else
+			high_output &= ~nSRSTnOE;
+	} else if (srst == 0) {
+		if (jtag_reset_config & RESET_SRST_PUSH_PULL)
+			high_output |= nSRST;
+		else
+			high_output |= nSRSTnOE;
+	}
+
+	buffer_write(0x82); // command "set data bits high byte"
+	buffer_write(high_output);
+	buffer_write(high_direction);
+	LOG_DEBUG("trst: %i, srst: %i, high_output: 0x%2.2x, high_direction: 0x%2.2x", trst, srst, high_output,high_direction);
 }
 
 static void ktlink_blink(void)
 {
-  /*LED connected to ACBUS7 */
-  if (high_output & 0x80)
-    high_output &= 0x7F;
-  else
-    high_output |= 0x80;
+	/* LED connected to ACBUS7 */
+	if (high_output & 0x80)
+		high_output &= 0x7F;
+	else
+		high_output |= 0x80;
 
-  buffer_write(0x82);  // command "set data bits high byte"
-  buffer_write(high_output);
-  buffer_write(high_direction);
+	buffer_write(0x82);  // command "set data bits high byte"
+	buffer_write(high_output);
+	buffer_write(high_direction);
 }
-
-- 
cgit v1.2.3