diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c index 7319ada41..39e45a0ab 100644 --- a/scd/ccid-driver.c +++ b/scd/ccid-driver.c @@ -1805,7 +1805,10 @@ ccid_open_usb_reader (const char *spec_reader_name, } /* Submit SET_INTERFACE control transfer which can reset the device. */ - rc = libusb_set_interface_alt_setting (idev, ifc_no, set_no); + if ((*handle)->id_vendor == VENDOR_ACR && (*handle)->id_product == ACR_122U) + rc = 0; /* Not supported by this reader. */ + else + rc = libusb_set_interface_alt_setting (idev, ifc_no, set_no); if (rc) { #ifdef USE_NPTH @@ -1820,6 +1823,7 @@ ccid_open_usb_reader (const char *spec_reader_name, npth_protect (); #endif + /* Perform any vendor specific intialization. */ rc = ccid_vendor_specific_init (*handle); leave: diff --git a/scd/ccid-driver.h b/scd/ccid-driver.h index 18cbc87f0..bac5fac07 100644 --- a/scd/ccid-driver.h +++ b/scd/ccid-driver.h @@ -70,6 +70,7 @@ enum { VENDOR_FSIJ = 0x234b, VENDOR_VASCO = 0x1a44, VENDOR_NXP = 0x1fc9, + VENDOR_ACR = 0x072f }; @@ -88,6 +89,7 @@ enum { #define VEGA_ALPHA 0x0008 #define CYBERJACK_GO 0x0504 #define CRYPTOUCAN 0x81e6 +#define ACR_122U 0x2200 /* NFC Reader */ #endif /*CCID_DRIVER_INCLUDE_USB_IDS*/