NFC: Set rf_mode to NFC_RF_NONE where necessary
authorThierry Escande <thierry.escande@linux.intel.com>
Fri, 5 Oct 2012 09:05:45 +0000 (11:05 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 26 Oct 2012 16:26:47 +0000 (18:26 +0200)
rf_mode is now set to NFC_RF_NONE when a device gets allocated,
when the link goes down, and when stop polling.

Signed-off-by: Thierry Escande <thierry.escande@linux.intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
net/nfc/core.c

index 4cb0697..f1c33f2 100644 (file)
@@ -181,6 +181,7 @@ int nfc_stop_poll(struct nfc_dev *dev)
 
        dev->ops->stop_poll(dev);
        dev->polling = false;
+       dev->rf_mode = NFC_RF_NONE;
 
 error:
        device_unlock(&dev->dev);
@@ -274,12 +275,14 @@ int nfc_dep_link_down(struct nfc_dev *dev)
        if (!rc) {
                dev->dep_link_up = false;
                dev->active_target = NULL;
+               dev->rf_mode = NFC_RF_NONE;
                nfc_llcp_mac_is_down(dev);
                nfc_genl_dep_link_down_event(dev);
        }
 
 error:
        device_unlock(&dev->dev);
+
        return rc;
 }
 
@@ -503,6 +506,7 @@ EXPORT_SYMBOL(nfc_tm_activated);
 int nfc_tm_deactivated(struct nfc_dev *dev)
 {
        dev->dep_link_up = false;
+       dev->rf_mode = NFC_RF_NONE;
 
        return nfc_genl_tm_deactivated(dev);
 }
@@ -782,6 +786,7 @@ struct nfc_dev *nfc_allocate_device(struct nfc_ops *ops,
 
        nfc_genl_data_init(&dev->genl_data);
 
+       dev->rf_mode = NFC_RF_NONE;
 
        /* first generation must not be 0 */
        dev->targets_generation = 1;