ccid: Fix dwProtocols advertisement of T=0
commit0ee86bb6c5beb6498488850104f7557c376d0bef
authorJason Andryuk <jandryuk@gmail.com>
Fri, 20 Apr 2018 18:32:19 +0000 (20 14:32 -0400)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 27 Apr 2018 08:28:20 +0000 (27 10:28 +0200)
treeb0991b927adea23feb0c8ee340887d733acb60d1
parentb8846a4d6352b2a1d2012f8b3b9115640524aeda
ccid: Fix dwProtocols advertisement of T=0

Commit d7d218ef02d87c637d20d64da8f575d434ff6f78 attempted to change
dwProtocols to only advertise support for T=0 and not T=1.  The change
was incorrect as it changed 0x00000003 to 0x00010000.

lsusb -v in a linux guest shows:
"dwProtocols         65536  (Invalid values detected)", though the
smart card could still be accessed.  Windows 7 does not detect inserted
smart cards and logs the the following Error in the Event Logs:

    Source: Smart Card Service
    Event ID: 610
    Smart Card Reader 'QEMU QEMU USB CCID 0' rejected IOCTL SET_PROTOCOL:
    Incorrect function. If this error persists, your smart card or reader
    may not be functioning correctly

    Command Header: 03 00 00 00

Setting to 0x00000001 fixes the Windows issue.

Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Message-id: 20180420183219.20722-1-jandryuk@gmail.com
Cc: qemu-stable@nongnu.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/dev-smartcard-reader.c