NFC: nci: Add nci_prop_cmd allowing to send proprietary nci cmd
Handle allowing to send proprietary nci commands anywhere in the nci state machine. Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
c39daeee50
commit
759afb8d28
2 changed files with 28 additions and 0 deletions
|
@ -275,6 +275,8 @@ int nci_request(struct nci_dev *ndev,
|
||||||
void (*req)(struct nci_dev *ndev,
|
void (*req)(struct nci_dev *ndev,
|
||||||
unsigned long opt),
|
unsigned long opt),
|
||||||
unsigned long opt, __u32 timeout);
|
unsigned long opt, __u32 timeout);
|
||||||
|
int nci_prop_cmd(struct nci_dev *ndev, __u8 oid, size_t len, __u8 *payload);
|
||||||
|
|
||||||
int nci_recv_frame(struct nci_dev *ndev, struct sk_buff *skb);
|
int nci_recv_frame(struct nci_dev *ndev, struct sk_buff *skb);
|
||||||
int nci_set_config(struct nci_dev *ndev, __u8 id, size_t len, __u8 *val);
|
int nci_set_config(struct nci_dev *ndev, __u8 id, size_t len, __u8 *val);
|
||||||
|
|
||||||
|
|
|
@ -324,6 +324,32 @@ static void nci_rf_deactivate_req(struct nci_dev *ndev, unsigned long opt)
|
||||||
sizeof(struct nci_rf_deactivate_cmd), &cmd);
|
sizeof(struct nci_rf_deactivate_cmd), &cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct nci_prop_cmd_param {
|
||||||
|
__u16 opcode;
|
||||||
|
size_t len;
|
||||||
|
__u8 *payload;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void nci_prop_cmd_req(struct nci_dev *ndev, unsigned long opt)
|
||||||
|
{
|
||||||
|
struct nci_prop_cmd_param *param = (struct nci_prop_cmd_param *)opt;
|
||||||
|
|
||||||
|
nci_send_cmd(ndev, param->opcode, param->len, param->payload);
|
||||||
|
}
|
||||||
|
|
||||||
|
int nci_prop_cmd(struct nci_dev *ndev, __u8 oid, size_t len, __u8 *payload)
|
||||||
|
{
|
||||||
|
struct nci_prop_cmd_param param;
|
||||||
|
|
||||||
|
param.opcode = nci_opcode_pack(NCI_GID_PROPRIETARY, oid);
|
||||||
|
param.len = len;
|
||||||
|
param.payload = payload;
|
||||||
|
|
||||||
|
return __nci_request(ndev, nci_prop_cmd_req, (unsigned long)¶m,
|
||||||
|
msecs_to_jiffies(NCI_CMD_TIMEOUT));
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(nci_prop_cmd);
|
||||||
|
|
||||||
static int nci_open_device(struct nci_dev *ndev)
|
static int nci_open_device(struct nci_dev *ndev)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue