summaryrefslogtreecommitdiffstats
path: root/include/net/nfc
diff options
context:
space:
mode:
authorEric Lapuyade <eric.lapuyade@linux.intel.com>2012-12-18 14:15:49 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2013-01-10 00:51:51 +0100
commitbf71ab8ba53081c28b960d48e0c4cd1c17588aa6 (patch)
treefb6444f45ac21850fa5b7bed05fb19a93b4ee313 /include/net/nfc
parentNFC: Fixed skb leak in tm_send() nfc and hci ops implementations (diff)
downloadlinux-bf71ab8ba53081c28b960d48e0c4cd1c17588aa6.tar.xz
linux-bf71ab8ba53081c28b960d48e0c4cd1c17588aa6.zip
NFC: Add HCI quirks to support driver (non)standard implementations
Some chips diverge from the HCI spec in their implementation of standard features. This adds a new quirks parameter to nfc_hci_allocate_device() to let the driver indicate its divergence. Signed-off-by: Eric Lapuyade <eric.lapuyade@intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'include/net/nfc')
-rw-r--r--include/net/nfc/hci.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/net/nfc/hci.h b/include/net/nfc/hci.h
index 834e36481aff..2ff71750c428 100644
--- a/include/net/nfc/hci.h
+++ b/include/net/nfc/hci.h
@@ -82,6 +82,16 @@ typedef int (*xmit) (struct sk_buff *skb, void *cb_data);
#define NFC_HCI_MAX_GATES 256
+/*
+ * These values can be specified by a driver to indicate it requires some
+ * adaptation of the HCI standard.
+ *
+ * NFC_HCI_QUIRK_SHORT_CLEAR - send HCI_ADM_CLEAR_ALL_PIPE cmd with no params
+ */
+enum {
+ NFC_HCI_QUIRK_SHORT_CLEAR = 0,
+};
+
struct nfc_hci_dev {
struct nfc_dev *ndev;
@@ -131,11 +141,14 @@ struct nfc_hci_dev {
u8 *gb;
size_t gb_len;
+
+ unsigned long quirks;
};
/* hci device allocation */
struct nfc_hci_dev *nfc_hci_allocate_device(struct nfc_hci_ops *ops,
struct nfc_hci_init_data *init_data,
+ unsigned long quirks,
u32 protocols,
const char *llc_name,
int tx_headroom,