NFC: HCI drivers don't have to keep track of polling state
authorEric Lapuyade <eric.lapuyade@intel.com>
Mon, 7 May 2012 10:31:31 +0000 (12:31 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 15 May 2012 21:31:22 +0000 (17:31 -0400)
The NFC core code already does that for them.

Signed-off-by: Eric Lapuyade <eric.lapuyade@intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
include/net/nfc/hci.h
net/nfc/hci/core.c

index ae042008571e3f3245db31421fade4e6d2859441..4467c9460857a5d18e3d6dde187875a05b1c4586 100644 (file)
@@ -84,8 +84,6 @@ struct nfc_hci_dev {
 
        u8 gate2pipe[NFC_HCI_MAX_GATES];
 
-       bool poll_started;
-
        u8 sw_romlib;
        u8 sw_patch;
        u8 sw_flashlib_major;
index 0fdb96f152b10bcbb74fc13ee171699e3a5a4e9f..e1a640d2b588eedbe4f0a32b8f24cbfb74b1ff64 100644 (file)
@@ -251,11 +251,6 @@ void nfc_hci_event_received(struct nfc_hci_dev *hdev, u8 pipe, u8 event,
 
        switch (event) {
        case NFC_HCI_EVT_TARGET_DISCOVERED:
-               if (hdev->poll_started == false) {
-                       r = -EPROTO;
-                       goto exit;
-               }
-
                if (skb->len < 1) {     /* no status data? */
                        r = -EPROTO;
                        goto exit;
@@ -489,28 +484,20 @@ static int hci_dev_down(struct nfc_dev *nfc_dev)
 static int hci_start_poll(struct nfc_dev *nfc_dev, u32 protocols)
 {
        struct nfc_hci_dev *hdev = nfc_get_drvdata(nfc_dev);
-       int r;
 
        if (hdev->ops->start_poll)
-               r = hdev->ops->start_poll(hdev, protocols);
+               return hdev->ops->start_poll(hdev, protocols);
        else
-               r = nfc_hci_send_event(hdev, NFC_HCI_RF_READER_A_GATE,
+               return nfc_hci_send_event(hdev, NFC_HCI_RF_READER_A_GATE,
                                       NFC_HCI_EVT_READER_REQUESTED, NULL, 0);
-       if (r == 0)
-               hdev->poll_started = true;
-
-       return r;
 }
 
 static void hci_stop_poll(struct nfc_dev *nfc_dev)
 {
        struct nfc_hci_dev *hdev = nfc_get_drvdata(nfc_dev);
 
-       if (hdev->poll_started) {
-               nfc_hci_send_event(hdev, NFC_HCI_RF_READER_A_GATE,
-                                  NFC_HCI_EVT_END_OPERATION, NULL, 0);
-               hdev->poll_started = false;
-       }
+       nfc_hci_send_event(hdev, NFC_HCI_RF_READER_A_GATE,
+                          NFC_HCI_EVT_END_OPERATION, NULL, 0);
 }
 
 static int hci_activate_target(struct nfc_dev *nfc_dev,