Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 351904
b: refs/heads/master
c: 27c3119
h: refs/heads/master
v: v3
  • Loading branch information
Eric Lapuyade authored and Samuel Ortiz committed Jan 9, 2013
1 parent ab90454 commit e7b299e
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 20 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: f0c9103813b3045bd5b43220b6a78c9908a45d24
refs/heads/master: 27c31191b3d7ff32c266a5dbea344b9aa96ebf14
27 changes: 13 additions & 14 deletions trunk/drivers/nfc/pn544/pn544.c
Original file line number Diff line number Diff line change
Expand Up @@ -714,8 +714,8 @@ static int pn544_hci_check_presence(struct nfc_hci_dev *hdev,
return 0;
}

static void pn544_hci_event_received(struct nfc_hci_dev *hdev, u8 gate,
u8 event, struct sk_buff *skb)
static int pn544_hci_event_received(struct nfc_hci_dev *hdev, u8 gate, u8 event,
struct sk_buff *skb)
{
struct sk_buff *rgb_skb = NULL;
int r = 0;
Expand All @@ -724,25 +724,23 @@ static void pn544_hci_event_received(struct nfc_hci_dev *hdev, u8 gate,
switch (event) {
case PN544_HCI_EVT_ACTIVATED:
if (gate == PN544_RF_READER_NFCIP1_INITIATOR_GATE)
nfc_hci_target_discovered(hdev, gate);
r = nfc_hci_target_discovered(hdev, gate);
else if (gate == PN544_RF_READER_NFCIP1_TARGET_GATE) {
r = nfc_hci_get_param(hdev, gate, PN544_DEP_ATR_REQ,
&rgb_skb);

&rgb_skb);
if (r < 0)
goto exit;

nfc_tm_activated(hdev->ndev, NFC_PROTO_NFC_DEP_MASK,
NFC_COMM_PASSIVE, rgb_skb->data,
rgb_skb->len);
r = nfc_tm_activated(hdev->ndev, NFC_PROTO_NFC_DEP_MASK,
NFC_COMM_PASSIVE, rgb_skb->data,
rgb_skb->len);

kfree_skb(rgb_skb);
}

break;
case PN544_HCI_EVT_DEACTIVATED:
nfc_hci_send_event(hdev, gate,
NFC_HCI_EVT_END_OPERATION, NULL, 0);
r = nfc_hci_send_event(hdev, gate, NFC_HCI_EVT_END_OPERATION,
NULL, 0);
break;
case PN544_HCI_EVT_RCV_DATA:
if (skb->len < 2) {
Expand All @@ -757,15 +755,16 @@ static void pn544_hci_event_received(struct nfc_hci_dev *hdev, u8 gate,
}

skb_pull(skb, 2);
nfc_tm_data_received(hdev->ndev, skb);

return;
return nfc_tm_data_received(hdev->ndev, skb);
default:
pr_err("Discarded unknown event %x to gate %x\n", event, gate);
break;
}

exit:
kfree_skb(skb);

return r;
}

static struct nfc_hci_ops pn544_hci_ops = {
Expand Down
4 changes: 2 additions & 2 deletions trunk/include/net/nfc/hci.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ struct nfc_hci_ops {
int (*tm_send)(struct nfc_hci_dev *hdev, struct sk_buff *skb);
int (*check_presence)(struct nfc_hci_dev *hdev,
struct nfc_target *target);
void (*event_received)(struct nfc_hci_dev *hdev, u8 gate, u8 event,
struct sk_buff *skb);
int (*event_received)(struct nfc_hci_dev *hdev, u8 gate, u8 event,
struct sk_buff *skb);
};

/* Pipes */
Expand Down
8 changes: 5 additions & 3 deletions trunk/net/nfc/hci/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -323,16 +323,18 @@ void nfc_hci_event_received(struct nfc_hci_dev *hdev, u8 pipe, u8 event,
break;
default:
if (hdev->ops->event_received) {
hdev->ops->event_received(hdev, gate, event, skb);
return;
r = hdev->ops->event_received(hdev, gate, event, skb);
goto exit_noskb;
} else {
r = -EINVAL;
}

break;
}

exit:
kfree_skb(skb);

exit_noskb:
if (r) {
/* TODO: There was an error dispatching the event,
* how to propagate up to nfc core?
Expand Down

0 comments on commit e7b299e

Please sign in to comment.