aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2020-09-29 04:25:14 +0000
committerNIIBE Yutaka <[email protected]>2020-10-06 02:44:57 +0000
commit48565e7a08d64e3628da8baa80541841af0a6166 (patch)
treee5c883b36b38d7f561a0142e9d92925087d7838b
parentscd: Internal CCID driver: Fix a failure path. (diff)
downloadgnupg-48565e7a08d64e3628da8baa80541841af0a6166.tar.gz
gnupg-48565e7a08d64e3628da8baa80541841af0a6166.zip
scd: Internal CCID driver: Call libusb_clear_halt at ccid_setup_intr.
* scd/ccid-driver.c (ccid_setup_intr): Reset the endpoint. (ccid_vendor_specific_init): Don't call libusb_clear_halt. -- Backport master commit of: 6af978713e4c69d7814f47e709f1dfb3fe9076d1 Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r--scd/ccid-driver.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c
index 0ff3dc902..a508ac5cc 100644
--- a/scd/ccid-driver.c
+++ b/scd/ccid-driver.c
@@ -1289,9 +1289,6 @@ ccid_vendor_specific_init (ccid_driver_t handle)
* and SET_INTERFACE doesn't reset it. Make sure it works at the init.
*/
abort_cmd (handle, 0);
- r = libusb_clear_halt (handle->idev, handle->ep_intr);
- DEBUGOUT_1 ("libusb_clear_halt intr: %s\n", libusb_error_name (r));
- r = 0;
}
if (r != 0 && r != CCID_DRIVER_ERR_CARD_INACTIVE
@@ -1583,6 +1580,7 @@ ccid_setup_intr (ccid_driver_t handle)
struct libusb_transfer *transfer;
int err;
+ libusb_clear_halt (handle->idev, handle->ep_intr);
transfer = libusb_alloc_transfer (0);
handle->transfer = transfer;
libusb_fill_interrupt_transfer (transfer, handle->idev, handle->ep_intr,