aboutsummaryrefslogtreecommitdiff
path: root/src/jtag
diff options
context:
space:
mode:
authorMatthias Welwarsky <matthias.welwarsky@sysgo.com>2016-04-06 10:35:13 +0200
committerFreddie Chopin <freddie.chopin@gmail.com>2016-05-05 22:33:41 +0100
commit414e4eb40e9a5decfaa2a5aef9ceac9768b7740b (patch)
treef1b6efc4c7bc3b9d423d0f5417575bd55ebe6b82 /src/jtag
parent18a6fdc154ed61c641e2238c0f0ea6af0331c248 (diff)
ftdi: make ftdi_location command depend on libusb1 version
The function libusb_get_port_numbers(), required for the command ftdi_location, is only available in recent version of libusb1. Compilation will break if the function is not available. This patch enables the command only if libusb1 contains the necessary function. Change-Id: I091e72dafa4ed22eea51692751d43246a8152987 Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com> Reviewed-on: http://openocd.zylin.com/3396 Tested-by: jenkins Reviewed-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
Diffstat (limited to 'src/jtag')
-rw-r--r--src/jtag/drivers/ftdi.c4
-rw-r--r--src/jtag/drivers/mpsse.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c
index b32fa6cb..3f74f1ca 100644
--- a/src/jtag/drivers/ftdi.c
+++ b/src/jtag/drivers/ftdi.c
@@ -699,6 +699,7 @@ COMMAND_HANDLER(ftdi_handle_serial_command)
return ERROR_OK;
}
+#ifdef HAVE_LIBUSB_GET_PORT_NUMBERS
COMMAND_HANDLER(ftdi_handle_location_command)
{
if (CMD_ARGC == 1) {
@@ -711,6 +712,7 @@ COMMAND_HANDLER(ftdi_handle_location_command)
return ERROR_OK;
}
+#endif
COMMAND_HANDLER(ftdi_handle_channel_command)
{
@@ -889,6 +891,7 @@ static const struct command_registration ftdi_command_handlers[] = {
.help = "set the serial number of the FTDI device",
.usage = "serial_string",
},
+#ifdef HAVE_LIBUSB_GET_PORT_NUMBERS
{
.name = "ftdi_location",
.handler = &ftdi_handle_location_command,
@@ -896,6 +899,7 @@ static const struct command_registration ftdi_command_handlers[] = {
.help = "set the USB bus location of the FTDI device",
.usage = "<bus>:port[,port]...",
},
+#endif
{
.name = "ftdi_channel",
.handler = &ftdi_handle_channel_command,
diff --git a/src/jtag/drivers/mpsse.c b/src/jtag/drivers/mpsse.c
index a3820a22..0d19f388 100644
--- a/src/jtag/drivers/mpsse.c
+++ b/src/jtag/drivers/mpsse.c
@@ -106,12 +106,13 @@ static bool string_descriptor_equal(libusb_device_handle *device, uint8_t str_in
static bool device_location_equal(libusb_device *device, const char *location)
{
+ bool result = false;
+#ifdef HAVE_LIBUSB_GET_PORT_NUMBERS
char *loc = strdup(location);
uint8_t port_path[7];
int path_step, path_len;
uint8_t dev_bus = libusb_get_bus_number(device);
char *ptr;
- bool result = false;
path_len = libusb_get_port_numbers(device, port_path, 7);
if (path_len == LIBUSB_ERROR_OVERFLOW) {
@@ -154,6 +155,7 @@ static bool device_location_equal(libusb_device *device, const char *location)
done:
free(loc);
+#endif
return result;
}