Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 315282
b: refs/heads/master
c: 6c1c5b9
h: refs/heads/master
v: v3
  • Loading branch information
Eric Lapuyade authored and John W. Linville committed Jul 9, 2012
1 parent 3670a5a commit c8a27f4
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 23 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 72b06f75fea45fa861f2e137bc94e56aab306c4b
refs/heads/master: 6c1c5b9e1d8a25268a607c762576b5c16e3e7230
18 changes: 3 additions & 15 deletions trunk/net/nfc/hci/command.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,26 +28,14 @@

#include "hci.h"

static int nfc_hci_result_to_errno(u8 result)
{
switch (result) {
case NFC_HCI_ANY_OK:
return 0;
case NFC_HCI_ANY_E_TIMEOUT:
return -ETIMEDOUT;
default:
return -1;
}
}

static void nfc_hci_execute_cb(struct nfc_hci_dev *hdev, u8 result,
static void nfc_hci_execute_cb(struct nfc_hci_dev *hdev, int err,
struct sk_buff *skb, void *cb_data)
{
struct hcp_exec_waiter *hcp_ew = (struct hcp_exec_waiter *)cb_data;

pr_debug("HCI Cmd completed with HCI result=%d\n", result);
pr_debug("HCI Cmd completed with result=%d\n", err);

hcp_ew->exec_result = nfc_hci_result_to_errno(result);
hcp_ew->exec_result = err;
if (hcp_ew->exec_result == 0)
hcp_ew->result_skb = skb;
else
Expand Down
20 changes: 16 additions & 4 deletions trunk/net/nfc/hci/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,18 @@
/* Largest headroom needed for outgoing HCI commands */
#define HCI_CMDS_HEADROOM 1

static int nfc_hci_result_to_errno(u8 result)
{
switch (result) {
case NFC_HCI_ANY_OK:
return 0;
case NFC_HCI_ANY_E_TIMEOUT:
return -ETIME;
default:
return -1;
}
}

static void nfc_hci_msg_tx_work(struct work_struct *work)
{
struct nfc_hci_dev *hdev = container_of(work, struct nfc_hci_dev,
Expand All @@ -46,7 +58,7 @@ static void nfc_hci_msg_tx_work(struct work_struct *work)
if (timer_pending(&hdev->cmd_timer) == 0) {
if (hdev->cmd_pending_msg->cb)
hdev->cmd_pending_msg->cb(hdev,
NFC_HCI_ANY_E_TIMEOUT,
-ETIME,
NULL,
hdev->
cmd_pending_msg->
Expand All @@ -71,8 +83,7 @@ static void nfc_hci_msg_tx_work(struct work_struct *work)
kfree_skb(skb);
skb_queue_purge(&msg->msg_frags);
if (msg->cb)
msg->cb(hdev, NFC_HCI_ANY_E_NOK, NULL,
msg->cb_context);
msg->cb(hdev, r, NULL, msg->cb_context);
kfree(msg);
break;
}
Expand Down Expand Up @@ -129,7 +140,8 @@ void nfc_hci_resp_received(struct nfc_hci_dev *hdev, u8 result,
del_timer_sync(&hdev->cmd_timer);

if (hdev->cmd_pending_msg->cb)
hdev->cmd_pending_msg->cb(hdev, result, skb,
hdev->cmd_pending_msg->cb(hdev, nfc_hci_result_to_errno(result),
skb,
hdev->cmd_pending_msg->cb_context);
else
kfree_skb(skb);
Expand Down
7 changes: 4 additions & 3 deletions trunk/net/nfc/hci/hci.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@ struct hcp_packet {

/*
* HCI command execution completion callback.
* result will be one of the HCI response codes.
* skb contains the response data and must be disposed.
* result will be a standard linux error (may be converted from HCI response)
* skb contains the response data and must be disposed, or may be NULL if
* an error occured
*/
typedef void (*hci_cmd_cb_t) (struct nfc_hci_dev *hdev, u8 result,
typedef void (*hci_cmd_cb_t) (struct nfc_hci_dev *hdev, int result,
struct sk_buff *skb, void *cb_data);

struct hcp_exec_waiter {
Expand Down

0 comments on commit c8a27f4

Please sign in to comment.