aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Dolca <robert.dolca@intel.com>2015-10-22 05:11:34 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2015-10-25 14:11:42 -0400
commit2663589ce67e5429bac89544bb0e102bb1fcf617 (patch)
treee96bcdecd2780609370d590988b0410e56c6b90b
parentea785c094d38bc5eae8011330759d68f45236559 (diff)
NFC: nci: Add function to get max packet size for conn
FDP driver needs to send the firmware as regular packets (not fragmented). The driver should have a way to get the max packet size for a given connection. Signed-off-by: Robert Dolca <robert.dolca@intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
-rw-r--r--include/net/nfc/nci_core.h1
-rw-r--r--net/nfc/nci/data.c12
2 files changed, 13 insertions, 0 deletions
diff --git a/include/net/nfc/nci_core.h b/include/net/nfc/nci_core.h
index d0d0f1e53bb9..aaada20bf78e 100644
--- a/include/net/nfc/nci_core.h
+++ b/include/net/nfc/nci_core.h
@@ -351,6 +351,7 @@ int nci_prop_ntf_packet(struct nci_dev *ndev, __u16 opcode,
351void nci_rx_data_packet(struct nci_dev *ndev, struct sk_buff *skb); 351void nci_rx_data_packet(struct nci_dev *ndev, struct sk_buff *skb);
352int nci_send_cmd(struct nci_dev *ndev, __u16 opcode, __u8 plen, void *payload); 352int nci_send_cmd(struct nci_dev *ndev, __u16 opcode, __u8 plen, void *payload);
353int nci_send_data(struct nci_dev *ndev, __u8 conn_id, struct sk_buff *skb); 353int nci_send_data(struct nci_dev *ndev, __u8 conn_id, struct sk_buff *skb);
354int nci_conn_max_data_pkt_payload_size(struct nci_dev *ndev, __u8 conn_id);
354void nci_data_exchange_complete(struct nci_dev *ndev, struct sk_buff *skb, 355void nci_data_exchange_complete(struct nci_dev *ndev, struct sk_buff *skb,
355 __u8 conn_id, int err); 356 __u8 conn_id, int err);
356void nci_hci_data_received_cb(void *context, struct sk_buff *skb, int err); 357void nci_hci_data_received_cb(void *context, struct sk_buff *skb, int err);
diff --git a/net/nfc/nci/data.c b/net/nfc/nci/data.c
index 83acd189c13a..dbd24254412a 100644
--- a/net/nfc/nci/data.c
+++ b/net/nfc/nci/data.c
@@ -90,6 +90,18 @@ static inline void nci_push_data_hdr(struct nci_dev *ndev,
90 nci_pbf_set((__u8 *)hdr, pbf); 90 nci_pbf_set((__u8 *)hdr, pbf);
91} 91}
92 92
93int nci_conn_max_data_pkt_payload_size(struct nci_dev *ndev, __u8 conn_id)
94{
95 struct nci_conn_info *conn_info;
96
97 conn_info = nci_get_conn_info_by_conn_id(ndev, conn_id);
98 if (!conn_info)
99 return -EPROTO;
100
101 return conn_info->max_pkt_payload_len;
102}
103EXPORT_SYMBOL(nci_conn_max_data_pkt_payload_size);
104
93static int nci_queue_tx_data_frags(struct nci_dev *ndev, 105static int nci_queue_tx_data_frags(struct nci_dev *ndev,
94 __u8 conn_id, 106 __u8 conn_id,
95 struct sk_buff *skb) { 107 struct sk_buff *skb) {