jtag/drivers/cmsis_dap: fix usb bulk connection logic
authorTomas Vanek <vanekt@fbl.cz>
Thu, 30 Jul 2020 08:26:34 +0000 (10:26 +0200)
committerTomas Vanek <vanekt@fbl.cz>
Sun, 15 Nov 2020 21:38:10 +0000 (21:38 +0000)
commite6770f1ab6b9a34dbe90d3fa6ae4093914a0d707
tree7ec9a6d39ac1764a3673ae461deb48614df57b9a
parent8f927d51643ceb6b3696772c5fabd5ba9f48fcd3
jtag/drivers/cmsis_dap: fix usb bulk connection logic

http://openocd.zylin.com/4831 has following problems in selecting
USB device/interface to connect:
- attempts connection to any device with user class and 2 bulk endpoints
- regardless of cmsis_dap_vid_pid or cmsis_dap_serial setting
  connects to the first suitable device

Distinguish between real match and no filtering cases and use that info
appropriately.

Add debug messages to show why the interface is refused.

Move CMSIS-DAP interface string detection before checking of class/endpoints
to give more understandable debug log in the case the device is refused.

Keep track of reliable matches in both device and interface enumeration.
First search for the interface with CMSIS-DAP in the interface string.
If it fails, chose the first suitable interface.

Change-Id: Ia1aacd5631a9f5c5db580bfb5745ceb6240d61ad
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: http://openocd.zylin.com/5789
Tested-by: jenkins
Reviewed-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
src/jtag/drivers/cmsis_dap_usb_bulk.c