mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 17:57:38 -04:00
NFC: nci: Support all destinations type when creating a connection
The current implementation limits nci_core_conn_create_req() to only manage NCI_DESTINATION_NFCEE. Add new parameters to nci_core_conn_create() to support all destination types described in the NCI specification. Because there are some parameters with variable size dynamic buffer allocation is needed. Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
committed by
Samuel Ortiz
parent
12bdf27d46
commit
b16ae7160a
@@ -244,21 +244,23 @@ struct nci_core_set_config_cmd {
|
||||
} __packed;
|
||||
|
||||
#define NCI_OP_CORE_CONN_CREATE_CMD nci_opcode_pack(NCI_GID_CORE, 0x04)
|
||||
#define DEST_SPEC_PARAMS_ID_INDEX 0
|
||||
#define DEST_SPEC_PARAMS_PROTOCOL_INDEX 1
|
||||
struct dest_spec_params {
|
||||
__u8 id;
|
||||
__u8 protocol;
|
||||
__u8 id;
|
||||
__u8 protocol;
|
||||
} __packed;
|
||||
|
||||
struct core_conn_create_dest_spec_params {
|
||||
__u8 type;
|
||||
__u8 length;
|
||||
struct dest_spec_params value;
|
||||
__u8 type;
|
||||
__u8 length;
|
||||
__u8 value[0];
|
||||
} __packed;
|
||||
|
||||
struct nci_core_conn_create_cmd {
|
||||
__u8 destination_type;
|
||||
__u8 number_destination_params;
|
||||
struct core_conn_create_dest_spec_params params;
|
||||
__u8 destination_type;
|
||||
__u8 number_destination_params;
|
||||
struct core_conn_create_dest_spec_params params[0];
|
||||
} __packed;
|
||||
|
||||
#define NCI_OP_CORE_CONN_CLOSE_CMD nci_opcode_pack(NCI_GID_CORE, 0x05)
|
||||
|
||||
@@ -263,7 +263,9 @@ int nci_set_config(struct nci_dev *ndev, __u8 id, size_t len, __u8 *val);
|
||||
|
||||
int nci_nfcee_discover(struct nci_dev *ndev, u8 action);
|
||||
int nci_nfcee_mode_set(struct nci_dev *ndev, u8 nfcee_id, u8 nfcee_mode);
|
||||
int nci_core_conn_create(struct nci_dev *ndev,
|
||||
int nci_core_conn_create(struct nci_dev *ndev, u8 destination_type,
|
||||
u8 number_destination_params,
|
||||
size_t params_len,
|
||||
struct core_conn_create_dest_spec_params *params);
|
||||
int nci_core_conn_close(struct nci_dev *ndev, u8 conn_id);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user