NFC: pn533: Send ATR_REQ only if NFC_PROTO_NFC_DEP bit is set

Currently it is not possible to only poll for passive targets
with the pn533 driver. To change this ATR_REQ is only sent when
NFC_PROTO_NFC_DEP is explicitly requested in poll_protocols.
As most implementations (e.g. neard) poll for all protocols
that are reported to be supported by the adapter, this should
not have much of an effect on current implementations.

Signed-off-by: Michael Thalmeier <michael.thalmeier@hale.at>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Michael Thalmeier 2016-03-25 15:46:51 +01:00 committed by Samuel Ortiz
parent 03c5b53418
commit e997ebbe46

View File

@ -1540,7 +1540,8 @@ static int pn533_start_poll_complete(struct pn533 *dev, struct sk_buff *resp)
int rc, tgdata_len;
/* Toggle the DEP polling */
dev->poll_dep = 1;
if (dev->poll_protocols & NFC_PROTO_NFC_DEP_MASK)
dev->poll_dep = 1;
nbtg = resp->data[0];
tg = resp->data[1];
@ -2054,7 +2055,7 @@ static int pn533_send_poll_frame(struct pn533 *dev)
dev_dbg(&dev->interface->dev, "%s mod len %d\n",
__func__, mod->len);
if (dev->poll_dep) {
if ((dev->poll_protocols & NFC_PROTO_NFC_DEP_MASK) && dev->poll_dep) {
dev->poll_dep = 0;
return pn533_poll_dep(dev->nfc_dev);
}