summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jtag/rlink/rlink.c109
1 files changed, 54 insertions, 55 deletions
diff --git a/src/jtag/rlink/rlink.c b/src/jtag/rlink/rlink.c
index c88067c9..2cdc70a1 100644
--- a/src/jtag/rlink/rlink.c
+++ b/src/jtag/rlink/rlink.c
@@ -1635,66 +1635,65 @@ int rlink_init(void)
for (dev = bus->devices; dev; dev = dev->next)
{
- if ((dev->descriptor.idVendor == USB_IDVENDOR) && (dev->descriptor.idProduct == USB_IDPRODUCT))
+ if ((dev->descriptor.idVendor != USB_IDVENDOR) ||
+ (dev->descriptor.idProduct != USB_IDPRODUCT))
{
- found = 1;
- LOG_DEBUG("Found device on bus.\n");
+ continue;
+ }
+ found = 1;
+ LOG_DEBUG("Found device on bus.\n");
- do
- {
- if (dev->descriptor.bNumConfigurations > 1)
- {
- LOG_ERROR("Whoops! NumConfigurations is not 1, don't know what to do...\n");
- break;
- }
- if (dev->config->bNumInterfaces > 1)
- {
- LOG_ERROR("Whoops! NumInterfaces is not 1, don't know what to do...\n");
- break;
- }
+ if (dev->descriptor.bNumConfigurations > 1)
+ {
+ LOG_ERROR("Whoops! NumConfigurations is not 1, don't know what to do...\n");
+ break;
+ }
+ if (dev->config->bNumInterfaces > 1)
+ {
+ LOG_ERROR("Whoops! NumInterfaces is not 1, don't know what to do...\n");
+ break;
+ }
+
+ pHDev = usb_open(dev);
+ if (!pHDev)
+ {
+ LOG_ERROR ("Failed to open device.\n");
+ break;
+ }
+ LOG_DEBUG("Opened device, pHDev = %p\n",pHDev);
+
+ /* usb_set_configuration required under win32 */
+ usb_set_configuration(pHDev, dev->config[0].bConfigurationValue);
- pHDev = usb_open(dev);
- if (!pHDev)
- LOG_ERROR ("Failed to open device.\n");
- else
- {
- LOG_DEBUG("Opened device, pHDev = %p\n",pHDev);
-
- /* usb_set_configuration required under win32 */
- usb_set_configuration(pHDev, dev->config[0].bConfigurationValue);
-
- retries = 3;
- do
- {
- i = usb_claim_interface(pHDev,0);
- if (i)
- {
- LOG_ERROR("usb_claim_interface: %s", usb_strerror());
+ retries = 3;
+ do
+ {
+ i = usb_claim_interface(pHDev,0);
+ if (i)
+ {
+ LOG_ERROR("usb_claim_interface: %s", usb_strerror());
#ifdef LIBUSB_HAS_DETACH_KERNEL_DRIVER_NP
- j = usb_detach_kernel_driver_np(pHDev, 0);
- if (j)
- LOG_ERROR("detach kernel driver: %s", usb_strerror());
+ j = usb_detach_kernel_driver_np(pHDev, 0);
+ if (j)
+ LOG_ERROR("detach kernel driver: %s", usb_strerror());
#endif
- }
- else
- {
- LOG_DEBUG("interface claimed!\n");
- break;
- }
- } while (--retries);
-
- if (!i)
- {
- if (usb_set_altinterface(pHDev,0))
- {
- LOG_ERROR("Failed to set interface.\n");
- break;
- }
- else
- success = 1;
- }
- }
- } while (0);
+ }
+ else
+ {
+ LOG_DEBUG("interface claimed!\n");
+ break;
+ }
+ } while (--retries);
+
+ if (!i)
+ {
+ if (usb_set_altinterface(pHDev,0))
+ {
+ LOG_ERROR("Failed to set interface.\n");
+ break;
+ }
+ else
+ success = 1;
}
}
}