ft2232: cleanup ft2232_write

* Include the size check into ft2232_write, so calling it is simpler.
* Use sizeof(buffer) when possible
This commit is contained in:
Marc Pignat 2010-06-17 09:54:34 +02:00 committed by Øyvind Harboe
parent 2986320cde
commit cd7f443103

View File

@ -480,7 +480,6 @@ static int ft2232_write(uint8_t* buf, int size, uint32_t* bytes_written)
else
{
*bytes_written = dw_bytes_written;
return ERROR_OK;
}
#elif BUILD_FT2232_LIBFTDI == 1
int retval;
@ -493,9 +492,15 @@ static int ft2232_write(uint8_t* buf, int size, uint32_t* bytes_written)
else
{
*bytes_written = retval;
return ERROR_OK;
}
#endif
if (*bytes_written != (uint32_t)size)
{
return ERROR_JTAG_DEVICE_ERROR;
}
return ERROR_OK;
}
static int ft2232_read(uint8_t* buf, uint32_t size, uint32_t* bytes_read)
@ -569,8 +574,9 @@ static int ft2232h_ft4232h_adaptive_clocking(bool enable)
LOG_DEBUG("%2.2x", buf);
uint32_t bytes_written;
int retval = ft2232_write(&buf, 1, &bytes_written);
if ((ERROR_OK != retval) || (bytes_written != 1))
int retval;
if ((retval = ft2232_write(&buf, sizeof(buf), &bytes_written)) != ERROR_OK)
{
LOG_ERROR("couldn't write command to %s adaptive clocking"
, enable ? "enable" : "disable");
@ -589,8 +595,8 @@ static int ft2232h_ft4232h_clk_divide_by_5(bool enable)
{
uint32_t bytes_written;
uint8_t buf = enable ? 0x8b : 0x8a;
int retval = ft2232_write(&buf, 1, &bytes_written);
if ((ERROR_OK != retval) || (bytes_written != 1))
if (ft2232_write(&buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't write command to %s clk divide by 5"
, enable ? "enable" : "disable");
@ -627,7 +633,7 @@ static int ft2232_speed(int speed)
buf[2] = (speed >> 8) & 0xff; /* valueH */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);
if (((retval = ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if ((retval = ft2232_write(buf, sizeof(buf), &bytes_written)) != ERROR_OK)
{
LOG_ERROR("couldn't set FT2232 TCK speed");
return retval;
@ -737,7 +743,7 @@ static void ft2232_debug_dump_buffer(void)
for (i = 0; i < ft2232_buffer_size; i++)
{
line_p += snprintf(line_p, 256 - (line_p - line), "%2.2x ", ft2232_buffer[i]);
line_p += snprintf(line_p, sizeof(line) - (line_p - line), "%2.2x ", ft2232_buffer[i]);
if (i % 16 == 15)
{
LOG_DEBUG("%s", line);
@ -2369,7 +2375,7 @@ static int ft2232_init(void)
ft2232_speed(jtag_get_speed());
buf[0] = 0x85; /* Disconnect TDI/DO to TDO/DI for Loopback */
if (((retval = ft2232_write(buf, 1, &bytes_written)) != ERROR_OK) || (bytes_written != 1))
if ((retval = ft2232_write(buf, 1, &bytes_written)) != ERROR_OK)
{
LOG_ERROR("couldn't write to FT2232 to disable loopback");
return ERROR_JTAG_INIT_FAILED;
@ -2431,7 +2437,7 @@ static int ftx232_init_tail(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 DBUS");
return ERROR_JTAG_INIT_FAILED;
@ -2517,7 +2523,7 @@ static int axm0432_jtag_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'JTAGkey' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2564,7 +2570,7 @@ static int axm0432_jtag_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'Dicarlo' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2590,8 +2596,7 @@ static int redbee_init(void)
buf[1] = low_output;
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'redbee' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2630,8 +2635,7 @@ static int redbee_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'redbee' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2654,7 +2658,7 @@ static int jtagkey_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'JTAGkey' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2713,7 +2717,7 @@ static int jtagkey_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'JTAGkey' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2736,7 +2740,7 @@ static int olimex_jtag_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'Olimex' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2780,7 +2784,7 @@ static int olimex_jtag_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'Olimex' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2803,7 +2807,7 @@ static int flyswatter_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE[12]=out, n[ST]srst = out */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'flyswatter' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2826,7 +2830,7 @@ static int flyswatter_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'flyswatter' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2849,7 +2853,7 @@ static int turtle_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'turtelizer2' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2866,7 +2870,7 @@ static int turtle_init(void)
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'turtelizer2' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2889,7 +2893,7 @@ static int comstick_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'comstick' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2909,7 +2913,7 @@ static int comstick_init(void)
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'comstick' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2932,7 +2936,7 @@ static int stm32stick_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'stm32stick' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2952,7 +2956,7 @@ static int stm32stick_init(void)
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'stm32stick' layout");
return ERROR_JTAG_INIT_FAILED;
@ -2975,7 +2979,7 @@ static int sheevaplug_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'sheevaplug' layout");
return ERROR_JTAG_INIT_FAILED;
@ -3003,7 +3007,7 @@ static int sheevaplug_init(void)
buf[2] = high_direction; /* all outputs - xRST */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'sheevaplug' layout");
return ERROR_JTAG_INIT_FAILED;
@ -3026,7 +3030,7 @@ static int cortino_jtag_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'cortino' layout");
return ERROR_JTAG_INIT_FAILED;
@ -3046,7 +3050,7 @@ static int cortino_jtag_init(void)
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'stm32stick' layout");
return ERROR_JTAG_INIT_FAILED;
@ -3341,7 +3345,7 @@ static int icebear_jtag_init(void) {
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)) {
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK) {
LOG_ERROR("couldn't initialize FT2232 with 'IceBear' layout (low)");
return ERROR_JTAG_INIT_FAILED;
}
@ -3356,7 +3360,7 @@ static int icebear_jtag_init(void) {
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
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)) {
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK) {
LOG_ERROR("couldn't initialize FT2232 with 'IceBear' layout (high)");
return ERROR_JTAG_INIT_FAILED;
}
@ -4003,8 +4007,7 @@ static int signalyzer_h_init(void)
buf[1] = low_output;
buf[2] = low_direction;
if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK)
|| (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize Signalyzer-H layout");
return ERROR_JTAG_INIT_FAILED;
@ -4018,8 +4021,7 @@ static int signalyzer_h_init(void)
buf[1] = high_output;
buf[2] = high_direction;
if ((ft2232_write(buf, 3, &bytes_written) != ERROR_OK)
|| (bytes_written != 3))
if ((retval = ft2232_write(buf, sizeof(buf), &bytes_written)) != ERROR_OK)
{
LOG_ERROR("couldn't initialize Signalyzer-H layout");
return ERROR_JTAG_INIT_FAILED;
@ -4033,8 +4035,7 @@ static int signalyzer_h_init(void)
buf[1] = high_output;
buf[2] = high_direction;
if ((ft2232_write(buf, 3, &bytes_written) != ERROR_OK)
|| (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize Signalyzer-H layout");
return ERROR_JTAG_INIT_FAILED;
@ -4218,7 +4219,7 @@ static int ktlink_init(void)
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'ktlink' layout");
return ERROR_JTAG_INIT_FAILED;
@ -4256,7 +4257,7 @@ static int ktlink_init(void)
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))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'ktlink' layout");
return ERROR_JTAG_INIT_FAILED;