Commit 9295b5b5 authored by Christophe Ricard's avatar Christophe Ricard Committed by Samuel Ortiz

NFC: nci: Add support for different NCI_DEACTIVATE_TYPE

nci_rf_deactivate_req only support NCI_DEACTIVATE_TYPE_IDLE_MODE.
In some situation, it might be necessary to be able to support other
NCI_DEACTIVATE_TYPE such as NCI_DEACTIVATE_TYPE_SLEEP_MODE in order for
example to reactivate the selected target.
Signed-off-by: default avatarChristophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 4391590c
...@@ -299,7 +299,7 @@ static void nci_rf_deactivate_req(struct nci_dev *ndev, unsigned long opt) ...@@ -299,7 +299,7 @@ static void nci_rf_deactivate_req(struct nci_dev *ndev, unsigned long opt)
{ {
struct nci_rf_deactivate_cmd cmd; struct nci_rf_deactivate_cmd cmd;
cmd.type = NCI_DEACTIVATE_TYPE_IDLE_MODE; cmd.type = opt;
nci_send_cmd(ndev, NCI_OP_RF_DEACTIVATE_CMD, nci_send_cmd(ndev, NCI_OP_RF_DEACTIVATE_CMD,
sizeof(struct nci_rf_deactivate_cmd), &cmd); sizeof(struct nci_rf_deactivate_cmd), &cmd);
...@@ -527,7 +527,8 @@ static int nci_start_poll(struct nfc_dev *nfc_dev, ...@@ -527,7 +527,8 @@ static int nci_start_poll(struct nfc_dev *nfc_dev,
(atomic_read(&ndev->state) == NCI_POLL_ACTIVE)) { (atomic_read(&ndev->state) == NCI_POLL_ACTIVE)) {
pr_debug("target active or w4 select, implicitly deactivate\n"); pr_debug("target active or w4 select, implicitly deactivate\n");
rc = nci_request(ndev, nci_rf_deactivate_req, 0, rc = nci_request(ndev, nci_rf_deactivate_req,
NCI_DEACTIVATE_TYPE_IDLE_MODE,
msecs_to_jiffies(NCI_RF_DEACTIVATE_TIMEOUT)); msecs_to_jiffies(NCI_RF_DEACTIVATE_TIMEOUT));
if (rc) if (rc)
return -EBUSY; return -EBUSY;
...@@ -568,7 +569,7 @@ static void nci_stop_poll(struct nfc_dev *nfc_dev) ...@@ -568,7 +569,7 @@ static void nci_stop_poll(struct nfc_dev *nfc_dev)
return; return;
} }
nci_request(ndev, nci_rf_deactivate_req, 0, nci_request(ndev, nci_rf_deactivate_req, NCI_DEACTIVATE_TYPE_IDLE_MODE,
msecs_to_jiffies(NCI_RF_DEACTIVATE_TIMEOUT)); msecs_to_jiffies(NCI_RF_DEACTIVATE_TIMEOUT));
} }
...@@ -653,7 +654,8 @@ static void nci_deactivate_target(struct nfc_dev *nfc_dev, ...@@ -653,7 +654,8 @@ static void nci_deactivate_target(struct nfc_dev *nfc_dev,
ndev->target_active_prot = 0; ndev->target_active_prot = 0;
if (atomic_read(&ndev->state) == NCI_POLL_ACTIVE) { if (atomic_read(&ndev->state) == NCI_POLL_ACTIVE) {
nci_request(ndev, nci_rf_deactivate_req, 0, nci_request(ndev, nci_rf_deactivate_req,
NCI_DEACTIVATE_TYPE_SLEEP_MODE,
msecs_to_jiffies(NCI_RF_DEACTIVATE_TIMEOUT)); msecs_to_jiffies(NCI_RF_DEACTIVATE_TIMEOUT));
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment