scd: Internal CCID driver fix.

* scd/ccid-driver.c (intr_cb): More useful debug output.
(ccid_slot_status): Remove redundant condition.

--

Backport master commit of:

	1444203ca3

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2020-09-29 13:27:19 +09:00
parent 48565e7a08
commit 33a2d4bd7f
1 changed files with 5 additions and 2 deletions

View File

@ -1496,7 +1496,8 @@ intr_cb (struct libusb_transfer *transfer)
{
ccid_driver_t handle = transfer->user_data;
DEBUGOUT_1 ("CCID: interrupt callback %d\n", transfer->status);
DEBUGOUT_2 ("CCID: interrupt callback %d (%d)\n",
transfer->status, transfer->actual_length);
if (transfer->status == LIBUSB_TRANSFER_TIMED_OUT)
{
@ -1523,6 +1524,8 @@ intr_cb (struct libusb_transfer *transfer)
if (len < 2)
break;
DEBUGOUT_1 ("CCID: NotifySlotChange: %02x\n", p[1]);
if ((p[1] & 1))
card_removed = 0;
else
@ -2422,7 +2425,7 @@ ccid_slot_status (ccid_driver_t handle, int *statusbits, int on_wire)
{
/* Setup interrupt transfer at the initial call of slot_status
with ON_WIRE == 0 */
if (handle->transfer == NULL && handle->ep_intr >= 0)
if (handle->transfer == NULL)
{
ccid_setup_intr (handle);
if (handle->id_vendor == VENDOR_SCM)