NFC: hci: Change nfc_hci_send_response gate parameter to pipe
As there can be several pipes connected to the same gate, we need to know which pipe ID to use when sending an HCI response. A gate ID is not enough. Instead of changing the nfc_hci_send_response() API to something not aligned with the rest of the HCI API, we call nfc_hci_hcp_message_tx directly. 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
118278f20a
commit
af77522320
|
@ -260,8 +260,6 @@ int nfc_hci_send_cmd(struct nfc_hci_dev *hdev, u8 gate, u8 cmd,
|
||||||
int nfc_hci_send_cmd_async(struct nfc_hci_dev *hdev, u8 gate, u8 cmd,
|
int nfc_hci_send_cmd_async(struct nfc_hci_dev *hdev, u8 gate, u8 cmd,
|
||||||
const u8 *param, size_t param_len,
|
const u8 *param, size_t param_len,
|
||||||
data_exchange_cb_t cb, void *cb_context);
|
data_exchange_cb_t cb, void *cb_context);
|
||||||
int nfc_hci_send_response(struct nfc_hci_dev *hdev, u8 gate, u8 response,
|
|
||||||
const u8 *param, size_t param_len);
|
|
||||||
int nfc_hci_send_event(struct nfc_hci_dev *hdev, u8 gate, u8 event,
|
int nfc_hci_send_event(struct nfc_hci_dev *hdev, u8 gate, u8 event,
|
||||||
const u8 *param, size_t param_len);
|
const u8 *param, size_t param_len);
|
||||||
int nfc_hci_target_discovered(struct nfc_hci_dev *hdev, u8 gate);
|
int nfc_hci_target_discovered(struct nfc_hci_dev *hdev, u8 gate);
|
||||||
|
|
|
@ -116,23 +116,6 @@ int nfc_hci_send_event(struct nfc_hci_dev *hdev, u8 gate, u8 event,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(nfc_hci_send_event);
|
EXPORT_SYMBOL(nfc_hci_send_event);
|
||||||
|
|
||||||
int nfc_hci_send_response(struct nfc_hci_dev *hdev, u8 gate, u8 response,
|
|
||||||
const u8 *param, size_t param_len)
|
|
||||||
{
|
|
||||||
u8 pipe;
|
|
||||||
|
|
||||||
pr_debug("\n");
|
|
||||||
|
|
||||||
pipe = hdev->gate2pipe[gate];
|
|
||||||
if (pipe == NFC_HCI_INVALID_PIPE)
|
|
||||||
return -EADDRNOTAVAIL;
|
|
||||||
|
|
||||||
return nfc_hci_hcp_message_tx(hdev, pipe, NFC_HCI_HCP_RESPONSE,
|
|
||||||
response, param, param_len, NULL, NULL,
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(nfc_hci_send_response);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Execute an hci command sent to gate.
|
* Execute an hci command sent to gate.
|
||||||
* skb will contain response data if success. skb can be NULL if you are not
|
* skb will contain response data if success. skb can be NULL if you are not
|
||||||
|
|
|
@ -209,7 +209,8 @@ void nfc_hci_cmd_received(struct nfc_hci_dev *hdev, u8 pipe, u8 cmd,
|
||||||
|
|
||||||
local_gate = skb->data[3];
|
local_gate = skb->data[3];
|
||||||
new_pipe = skb->data[4];
|
new_pipe = skb->data[4];
|
||||||
nfc_hci_send_response(hdev, gate, NFC_HCI_ANY_OK, NULL, 0);
|
nfc_hci_hcp_message_tx(hdev, pipe, NFC_HCI_HCP_RESPONSE,
|
||||||
|
NFC_HCI_ANY_OK, NULL, 0, NULL, NULL, 0);
|
||||||
|
|
||||||
/* save the new created pipe and bind with local gate,
|
/* save the new created pipe and bind with local gate,
|
||||||
* the description for skb->data[3] is destination gate id
|
* the description for skb->data[3] is destination gate id
|
||||||
|
@ -223,11 +224,14 @@ void nfc_hci_cmd_received(struct nfc_hci_dev *hdev, u8 pipe, u8 cmd,
|
||||||
* open it
|
* open it
|
||||||
*/
|
*/
|
||||||
if (gate != 0xff)
|
if (gate != 0xff)
|
||||||
nfc_hci_send_response(hdev, gate, NFC_HCI_ANY_OK,
|
nfc_hci_hcp_message_tx(hdev, pipe, NFC_HCI_HCP_RESPONSE,
|
||||||
&gate_opened, 1);
|
NFC_HCI_ANY_OK, &gate_opened, 1,
|
||||||
|
NULL, NULL, 0);
|
||||||
break;
|
break;
|
||||||
case NFC_HCI_ADM_NOTIFY_ALL_PIPE_CLEARED:
|
case NFC_HCI_ADM_NOTIFY_ALL_PIPE_CLEARED:
|
||||||
nfc_hci_send_response(hdev, gate, NFC_HCI_ANY_OK, NULL, 0);
|
nfc_hci_hcp_message_tx(hdev, pipe, NFC_HCI_HCP_RESPONSE,
|
||||||
|
NFC_HCI_ANY_OK, NULL, 0, NULL, NULL, 0);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
pr_info("Discarded unknown cmd %x to gate %x\n", cmd, gate);
|
pr_info("Discarded unknown cmd %x to gate %x\n", cmd, gate);
|
||||||
|
|
Loading…
Reference in New Issue