aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/nfc
diff options
context:
space:
mode:
authorMark A. Greer <mgreer@animalcreek.com>2014-09-23 19:38:08 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2014-11-28 06:38:59 -0500
commitb08147cbc4d1b63d65f6c7c522fed9ef3212bc52 (patch)
tree4e58372b062ffba93328d78a4f84e7cc8c2abd52 /include/net/nfc
parent485fdc9bb6f81d68aa30b399b9bc33cf27d65ba4 (diff)
NFC: digital: Implement NFC-DEP max payload lengths
The maximum payload for NFC-DEP exchanges (i.e., the number of bytes between SoD and EoD) is negotiated using the ATR_REQ, ATR_RES, and PSL_REQ commands. The valid maximum lengths are 64, 128, 192, and 254 bytes. Currently, NFC-DEP code assumes that both sides are always using 254 byte maximums and ignores attempts by the peer to change it. Instead, implement the negotiation code, enforce the local maximum when receiving data from the peer, and don't send payloads that exceed the remote's maximum. The default local maximum is 254 bytes. Reviewed-by: Thierry Escande <thierry.escande@linux.intel.com> Tested-by: Thierry Escande <thierry.escande@linux.intel.com> Signed-off-by: Mark A. Greer <mgreer@animalcreek.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'include/net/nfc')
-rw-r--r--include/net/nfc/digital.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/net/nfc/digital.h b/include/net/nfc/digital.h
index 80c6183989f3..42dbc6e6ee21 100644
--- a/include/net/nfc/digital.h
+++ b/include/net/nfc/digital.h
@@ -227,6 +227,9 @@ struct nfc_digital_dev {
227 u8 curr_nfc_dep_pni; 227 u8 curr_nfc_dep_pni;
228 u8 did; 228 u8 did;
229 229
230 u8 local_payload_max;
231 u8 remote_payload_max;
232
230 u16 target_fsc; 233 u16 target_fsc;
231 234
232 int (*skb_check_crc)(struct sk_buff *skb); 235 int (*skb_check_crc)(struct sk_buff *skb);