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:

	6af978713e

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2020-09-29 13:25:14 +09:00
parent 30693dfb6f
commit 48565e7a08
1 changed files with 1 additions and 3 deletions

View File

@ -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,