diff options
author | Christophe Ricard <christophe.ricard@gmail.com> | 2014-11-12 23:30:34 (GMT) |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2014-12-02 00:49:58 (GMT) |
commit | 9b8d32b7acdcd237d3e58154d59551c71556fec1 (patch) | |
tree | f7e2377ecb268b5913e4e7eb25017fadc7bffe99 /net/nfc | |
parent | a80d0cb6f6addc5a1f3852466fe8d37ca4fe1350 (diff) | |
download | linux-9b8d32b7acdcd237d3e58154d59551c71556fec1.tar.xz |
NFC: hci: Add se_io HCI operand
se_io allows to send apdu over the CLF to the embedded Secure Element.
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'net/nfc')
-rw-r--r-- | net/nfc/hci/core.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/net/nfc/hci/core.c b/net/nfc/hci/core.c index 1177082..58b1610 100644 --- a/net/nfc/hci/core.c +++ b/net/nfc/hci/core.c @@ -717,6 +717,19 @@ static int hci_disable_se(struct nfc_dev *nfc_dev, u32 se_idx) return 0; } +static int hci_se_io(struct nfc_dev *nfc_dev, u32 se_idx, + u8 *apdu, size_t apdu_length, + se_io_cb_t cb, void *cb_context) +{ + struct nfc_hci_dev *hdev = nfc_get_drvdata(nfc_dev); + + if (hdev->ops->se_io) + return hdev->ops->se_io(hdev, se_idx, apdu, + apdu_length, cb, cb_context); + + return 0; +} + static void nfc_hci_failure(struct nfc_hci_dev *hdev, int err) { mutex_lock(&hdev->msg_tx_mutex); @@ -830,6 +843,7 @@ static struct nfc_ops hci_nfc_ops = { .discover_se = hci_discover_se, .enable_se = hci_enable_se, .disable_se = hci_disable_se, + .se_io = hci_se_io, }; struct nfc_hci_dev *nfc_hci_allocate_device(struct nfc_hci_ops *ops, |