diff options
Diffstat (limited to 'net/nfc')
-rw-r--r-- | net/nfc/nci/ntf.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/net/nfc/nci/ntf.c b/net/nfc/nci/ntf.c index ccc3606fd8b2..17ee28aff68f 100644 --- a/net/nfc/nci/ntf.c +++ b/net/nfc/nci/ntf.c | |||
@@ -680,11 +680,21 @@ static void nci_rf_deactivate_ntf_packet(struct nci_dev *ndev, | |||
680 | if (test_bit(NCI_DATA_EXCHANGE, &ndev->flags)) | 680 | if (test_bit(NCI_DATA_EXCHANGE, &ndev->flags)) |
681 | nci_data_exchange_complete(ndev, NULL, -EIO); | 681 | nci_data_exchange_complete(ndev, NULL, -EIO); |
682 | 682 | ||
683 | nci_clear_target_list(ndev); | 683 | switch (ntf->type) { |
684 | if (ntf->type == NCI_DEACTIVATE_TYPE_DISCOVERY) | 684 | case NCI_DEACTIVATE_TYPE_IDLE_MODE: |
685 | atomic_set(&ndev->state, NCI_DISCOVERY); | 685 | nci_clear_target_list(ndev); |
686 | else | ||
687 | atomic_set(&ndev->state, NCI_IDLE); | 686 | atomic_set(&ndev->state, NCI_IDLE); |
687 | break; | ||
688 | case NCI_DEACTIVATE_TYPE_SLEEP_MODE: | ||
689 | case NCI_DEACTIVATE_TYPE_SLEEP_AF_MODE: | ||
690 | atomic_set(&ndev->state, NCI_W4_HOST_SELECT); | ||
691 | break; | ||
692 | case NCI_DEACTIVATE_TYPE_DISCOVERY: | ||
693 | nci_clear_target_list(ndev); | ||
694 | atomic_set(&ndev->state, NCI_DISCOVERY); | ||
695 | break; | ||
696 | } | ||
697 | |||
688 | nci_req_complete(ndev, NCI_STATUS_OK); | 698 | nci_req_complete(ndev, NCI_STATUS_OK); |
689 | } | 699 | } |
690 | 700 | ||