NFC: NCI: Add set_config API
authorAmitkumar Karwar <akarwar@marvell.com>
Mon, 6 Jan 2014 20:58:18 +0000 (12:58 -0800)
committerSamuel Ortiz <sameo@linux.intel.com>
Tue, 7 Jan 2014 00:32:40 +0000 (01:32 +0100)
This API can be used by drivers to send their custom
configuration using SET_CONFIG NCI command to the device.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
include/net/nfc/nci_core.h
net/nfc/nci/core.c

index 5c6fadd..2b93b77 100644 (file)
@@ -155,6 +155,7 @@ void nci_free_device(struct nci_dev *ndev);
 int nci_register_device(struct nci_dev *ndev);
 void nci_unregister_device(struct nci_dev *ndev);
 int nci_recv_frame(struct nci_dev *ndev, struct sk_buff *skb);
+int nci_set_config(struct nci_dev *ndev, __u8 id, size_t len, __u8 *val);
 
 static inline struct sk_buff *nci_skb_alloc(struct nci_dev *ndev,
                                            unsigned int len,
index 29c1caf..46bda01 100644 (file)
@@ -413,6 +413,22 @@ static int nci_dev_down(struct nfc_dev *nfc_dev)
        return nci_close_device(ndev);
 }
 
+int nci_set_config(struct nci_dev *ndev, __u8 id, size_t len, __u8 *val)
+{
+       struct nci_set_config_param param;
+
+       if (!val || !len)
+               return 0;
+
+       param.id = id;
+       param.len = len;
+       param.val = val;
+
+       return __nci_request(ndev, nci_set_config_req, (unsigned long)&param,
+                            msecs_to_jiffies(NCI_SET_CONFIG_TIMEOUT));
+}
+EXPORT_SYMBOL(nci_set_config);
+
 static int nci_set_local_general_bytes(struct nfc_dev *nfc_dev)
 {
        struct nci_dev *ndev = nfc_get_drvdata(nfc_dev);