Commit 0e70cba7 authored by Christophe Ricard's avatar Christophe Ricard Committed by Samuel Ortiz

NFC: nci: Move close ops call in nci_close_device

When closing the device some data (proprietary commands)
might be sent. The core state machine needs to be set for
correct command execution.
Signed-off-by: default avatarChristophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent dbd70b40
...@@ -440,6 +440,12 @@ static int nci_close_device(struct nci_dev *ndev) ...@@ -440,6 +440,12 @@ static int nci_close_device(struct nci_dev *ndev)
set_bit(NCI_INIT, &ndev->flags); set_bit(NCI_INIT, &ndev->flags);
__nci_request(ndev, nci_reset_req, 0, __nci_request(ndev, nci_reset_req, 0,
msecs_to_jiffies(NCI_RESET_TIMEOUT)); msecs_to_jiffies(NCI_RESET_TIMEOUT));
/* After this point our queues are empty
* and no works are scheduled.
*/
ndev->ops->close(ndev);
clear_bit(NCI_INIT, &ndev->flags); clear_bit(NCI_INIT, &ndev->flags);
del_timer_sync(&ndev->cmd_timer); del_timer_sync(&ndev->cmd_timer);
...@@ -447,10 +453,6 @@ static int nci_close_device(struct nci_dev *ndev) ...@@ -447,10 +453,6 @@ static int nci_close_device(struct nci_dev *ndev)
/* Flush cmd wq */ /* Flush cmd wq */
flush_workqueue(ndev->cmd_wq); flush_workqueue(ndev->cmd_wq);
/* After this point our queues are empty
* and no works are scheduled. */
ndev->ops->close(ndev);
/* Clear flags */ /* Clear flags */
ndev->flags = 0; ndev->flags = 0;
......
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