Hi all,

This series begins to transform the J-Link driver into something that I
can tolerate staring at for long periods of time (w/ apologies to its
original author(s)).  These should be able to be applied in any order.
I have tested for regressions with my Yellow unit (no net gain/loss).

This first patch unwinds the logic in the jlink_speed function.

Cheers,

Zach
Index: src/jtag/jlink.c
===================================================================
--- src/jtag/jlink.c	(revision 1497)
+++ src/jtag/jlink.c	(working copy)
@@ -230,31 +230,26 @@
 {
 	int result;
 
-	if (speed <= JLINK_MAX_SPEED)
+	if (speed > JLINK_MAX_SPEED)
 	{
-		/* check for RTCK setting */
-		if (speed == 0)
-			speed = -1;
+		LOG_INFO("Ignoring speed request: %dkHz exceeds %dkHz maximum",
+				speed, JLINK_MAX_SPEED);
+		return ERROR_OK;
+	}
 
-		usb_out_buffer[0] = EMU_CMD_SET_SPEED;
-		usb_out_buffer[1] = (speed >> 0) & 0xff;
-		usb_out_buffer[2] = (speed >> 8) & 0xff;
+	/* check for RTCK setting */
+	if (speed == 0)
+		speed = -1;
 
-		result = jlink_usb_write(jlink_jtag_handle, 3);
+	usb_out_buffer[0] = EMU_CMD_SET_SPEED;
+	usb_out_buffer[1] = (speed >> 0) & 0xff;
+	usb_out_buffer[2] = (speed >> 8) & 0xff;
 
-		if (result == 3)
-		{
-			return ERROR_OK;
-		}
-		else
-		{
-			LOG_ERROR("J-Link setting speed failed (%d)", result);
-			return ERROR_JTAG_DEVICE_ERROR;
-		}
-	}
-	else
+	result = jlink_usb_write(jlink_jtag_handle, 3);
+	if (result != 3)
 	{
-		LOG_INFO("Requested speed %dkHz exceeds maximum of %dkHz, ignored", speed, JLINK_MAX_SPEED);
+		LOG_ERROR("J-Link setting speed failed (%d)", result);
+		return ERROR_JTAG_DEVICE_ERROR;
 	}
 
 	return ERROR_OK;
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to