call idle() from driver-dependent close() rather than from nfc_close() as some driver still need to do an ack() before

This commit is contained in:
Philippe Teuwen 2013-01-31 01:18:23 +01:00
parent 683505f39b
commit 8bc7a1c291
8 changed files with 12 additions and 5 deletions

View file

@ -447,14 +447,14 @@ pn53x_usb_close(nfc_device *pnd)
{
pn53x_usb_ack(pnd);
pn53x_idle(pnd);
if (DRIVER_DATA(pnd)->model == ASK_LOGO) {
/* Set P30, P31, P32, P33, P35 to logic 1 and P34 to 0 logic */
/* ie. Switch all LEDs off and turn off progressive field */
pn53x_write_register(pnd, PN53X_SFR_P3, 0xFF, _BV(P30) | _BV(P31) | _BV(P32) | _BV(P33) | _BV(P35));
}
pn53x_idle(pnd);
int res;
if ((res = usb_release_interface(DRIVER_DATA(pnd)->pudh, 0)) < 0) {
log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_ERROR, "Unable to release USB interface (%s)", _usb_strerror(res));