diff options
author | Robert Dolca <robert.dolca@intel.com> | 2015-10-22 05:11:34 -0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2015-10-25 14:11:42 -0400 |
commit | 2663589ce67e5429bac89544bb0e102bb1fcf617 (patch) | |
tree | e96bcdecd2780609370d590988b0410e56c6b90b | |
parent | ea785c094d38bc5eae8011330759d68f45236559 (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.h | 1 | ||||
-rw-r--r-- | net/nfc/nci/data.c | 12 |
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, | |||
351 | void nci_rx_data_packet(struct nci_dev *ndev, struct sk_buff *skb); | 351 | void nci_rx_data_packet(struct nci_dev *ndev, struct sk_buff *skb); |
352 | int nci_send_cmd(struct nci_dev *ndev, __u16 opcode, __u8 plen, void *payload); | 352 | int nci_send_cmd(struct nci_dev *ndev, __u16 opcode, __u8 plen, void *payload); |
353 | int nci_send_data(struct nci_dev *ndev, __u8 conn_id, struct sk_buff *skb); | 353 | int nci_send_data(struct nci_dev *ndev, __u8 conn_id, struct sk_buff *skb); |
354 | int nci_conn_max_data_pkt_payload_size(struct nci_dev *ndev, __u8 conn_id); | ||
354 | void nci_data_exchange_complete(struct nci_dev *ndev, struct sk_buff *skb, | 355 | void nci_data_exchange_complete(struct nci_dev *ndev, struct sk_buff *skb, |
355 | __u8 conn_id, int err); | 356 | __u8 conn_id, int err); |
356 | void nci_hci_data_received_cb(void *context, struct sk_buff *skb, int err); | 357 | void 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 | ||
93 | int 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 | } | ||
103 | EXPORT_SYMBOL(nci_conn_max_data_pkt_payload_size); | ||
104 | |||
93 | static int nci_queue_tx_data_frags(struct nci_dev *ndev, | 105 | static 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) { |