NFC: NCI: Forward data received in Target mode to nfc core
authorJulien Lefrique <lefrique@marvell.com>
Tue, 21 Oct 2014 14:52:49 +0000 (16:52 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 28 Nov 2014 13:07:51 +0000 (14:07 +0100)
Signed-off-by: Julien Lefrique <lefrique@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
net/nfc/nci/data.c

index 427ef2c7ab681245c8d392e76ccaace41cab10e3..91f5d55bd04c50d78c826acc04f02881908921d8 100644 (file)
@@ -3,6 +3,7 @@
  *  NFC Controller (NFCC) and a Device Host (DH).
  *
  *  Copyright (C) 2011 Texas Instruments, Inc.
+ *  Copyright (C) 2014 Marvell International Ltd.
  *
  *  Written by Ilan Elias <ilane@ti.com>
  *
@@ -223,7 +224,17 @@ static void nci_add_rx_data_frag(struct nci_dev *ndev,
        }
 
 exit:
-       nci_data_exchange_complete(ndev, skb, err);
+       if (ndev->nfc_dev->rf_mode == NFC_RF_INITIATOR) {
+               nci_data_exchange_complete(ndev, skb, err);
+       } else if (ndev->nfc_dev->rf_mode == NFC_RF_TARGET) {
+               /* Data received in Target mode, forward to nfc core */
+               err = nfc_tm_data_received(ndev->nfc_dev, skb);
+               if (err)
+                       pr_err("unable to handle received data\n");
+       } else {
+               pr_err("rf mode unknown\n");
+               kfree_skb(skb);
+       }
 }
 
 /* Rx Data packet */