From 48565e7a08d64e3628da8baa80541841af0a6166 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 29 Sep 2020 13:25:14 +0900 Subject: [PATCH] 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 --- scd/ccid-driver.c | 4 +--- 1 file changed, 1 insertion(+), 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,