]> git.karo-electronics.de Git - linux-beck.git/commitdiff
NFC: nci: Add reference to the RF logical connection
authorChristophe Ricard <christophe.ricard@gmail.com>
Tue, 3 Feb 2015 18:48:04 +0000 (19:48 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Wed, 4 Feb 2015 08:09:53 +0000 (09:09 +0100)
The NCI_STATIC_RF_CONN_ID logical connection is the most used
connection. Keeping it directly accessible in the nci_dev
structure will simplify and optimize the access.

Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
include/net/nfc/nci_core.h
net/nfc/nci/core.c
net/nfc/nci/ntf.c
net/nfc/nci/rsp.c

index be858870dace471a44ddc6296b44e2ab43b0bfc9..731fa5be9989f9dd79da504576d5d741fd4e5d8f 100644 (file)
@@ -189,6 +189,7 @@ struct nci_dev {
        __u8                    cur_conn_id;
 
        struct list_head        conn_info_list;
+       struct nci_conn_info    *rf_conn_info;
 
        struct timer_list       cmd_timer;
        struct timer_list       data_timer;
index f74d420e2ead81ca7399ccc5ec65809af60af1b0..17ff5f83393c91d51eedb5f8e9e41ebbae5b27bd 100644 (file)
@@ -803,7 +803,7 @@ static int nci_transceive(struct nfc_dev *nfc_dev, struct nfc_target *target,
        int rc;
        struct nci_conn_info    *conn_info;
 
-       conn_info = nci_get_conn_info_by_conn_id(ndev, NCI_STATIC_RF_CONN_ID);
+       conn_info = ndev->rf_conn_info;
        if (!conn_info)
                return -EPROTO;
 
index 33f5f00ecf4c598e6d40706cb4ebfa93c50a1496..6bbbf6fdacc0e3067793d9a32f0fb6b0d8de6db3 100644 (file)
@@ -625,8 +625,7 @@ static void nci_rf_intf_activated_ntf_packet(struct nci_dev *ndev,
 
 exit:
        if (err == NCI_STATUS_OK) {
-               conn_info = nci_get_conn_info_by_conn_id(ndev,
-                                                        NCI_STATIC_RF_CONN_ID);
+               conn_info = ndev->rf_conn_info;
                if (!conn_info)
                        return;
 
@@ -684,8 +683,7 @@ static void nci_rf_deactivate_ntf_packet(struct nci_dev *ndev,
 
        pr_debug("entry, type 0x%x, reason 0x%x\n", ntf->type, ntf->reason);
 
-       conn_info =
-               nci_get_conn_info_by_conn_id(ndev, NCI_STATIC_RF_CONN_ID);
+       conn_info = ndev->rf_conn_info;
        if (!conn_info)
                return;
 
index 31ccf7d05e824c7a3fc574c4580730cdf0f12e67..05268eb473dfb07d66a6928281d99ad14b42e944 100644 (file)
@@ -148,8 +148,7 @@ static void nci_rf_disc_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb)
        if (status == NCI_STATUS_OK) {
                atomic_set(&ndev->state, NCI_DISCOVERY);
 
-               conn_info = nci_get_conn_info_by_conn_id(ndev,
-                                                        NCI_STATIC_RF_CONN_ID);
+               conn_info = ndev->rf_conn_info;
                if (!conn_info) {
                        conn_info = devm_kzalloc(&ndev->nfc_dev->dev,
                                                 sizeof(struct nci_conn_info),
@@ -161,6 +160,7 @@ static void nci_rf_disc_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb)
                        conn_info->conn_id = NCI_STATIC_RF_CONN_ID;
                        INIT_LIST_HEAD(&conn_info->list);
                        list_add(&conn_info->list, &ndev->conn_info_list);
+                       ndev->rf_conn_info = conn_info;
                }
        }