summaryrefslogtreecommitdiffstats
path: root/include/net/nfc
diff options
context:
space:
mode:
authorMark A. Greer <mgreer@animalcreek.com>2014-09-23 16:38:09 -0700
committerSamuel Ortiz <sameo@linux.intel.com>2014-11-28 12:39:10 +0100
commit3bd2a5bcc6cd7b8d588aa9ffa947177721eba18e (patch)
tree25d3b453b7733af2144bfff7654aae944240010f /include/net/nfc
parentb08147cbc4d1b63d65f6c7c522fed9ef3212bc52 (diff)
downloadlinux-3bd2a5bcc6cd7b8d588aa9ffa947177721eba18e.tar.bz2
NFC: digital: Add NFC-DEP Send Chaining Support
When the NFC-DEP code is given a packet to send that is larger than the peer's maximum payload, its supposed to set the 'MI' bit in the 'I' PDU's Protocol Frame Byte (PFB). Setting this bit indicates that NFC-DEP chaining is to occur. When NFC-DEP chaining is progress, sender 'I' PDUs are acknowledged with 'ACK' PDUs until the last 'I' PDU in the chain (which has the 'MI' bit cleared) is responded to with a normal 'I' PDU. This can occur while in Initiator mode or in Target mode. Sender NFC-DEP chaining is currently not implemented in the digital layer so add that support. Unfortunately, since sending a frame may require writing the CRC to the end of the data, the relevant data part of the original skb must be copied for each intermediate frame. 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 42dbc6e6ee21..2fdff00e06cd 100644
--- a/include/net/nfc/digital.h
+++ b/include/net/nfc/digital.h
@@ -230,6 +230,9 @@ struct nfc_digital_dev {
u8 local_payload_max;
u8 remote_payload_max;
+ struct sk_buff *chaining_skb;
+ struct digital_data_exch *data_exch;
+
u16 target_fsc;
int (*skb_check_crc)(struct sk_buff *skb);