Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 351907
b: refs/heads/master
c: bf71ab8
h: refs/heads/master
i:
  351905: 3d4b469
  351903: ab90454
v: v3
  • Loading branch information
Eric Lapuyade authored and Samuel Ortiz committed Jan 9, 2013
1 parent dd0d2e2 commit 098018a
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 3 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: 924d4a023ee6da2e40c78578829e68bcbabee2dd
refs/heads/master: bf71ab8ba53081c28b960d48e0c4cd1c17588aa6
2 changes: 1 addition & 1 deletion trunk/drivers/nfc/pn544/pn544.c
Original file line number Diff line number Diff line change
Expand Up @@ -833,7 +833,7 @@ int pn544_hci_probe(void *phy_id, struct nfc_phy_ops *phy_ops, char *llc_name,
NFC_PROTO_ISO14443_B_MASK |
NFC_PROTO_NFC_DEP_MASK;

info->hdev = nfc_hci_allocate_device(&pn544_hci_ops, &init_data,
info->hdev = nfc_hci_allocate_device(&pn544_hci_ops, &init_data, 0,
protocols, llc_name,
phy_headroom + PN544_CMDS_HEADROOM,
phy_tailroom, phy_payload);
Expand Down
13 changes: 13 additions & 0 deletions trunk/include/net/nfc/hci.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,16 @@ typedef int (*xmit) (struct sk_buff *skb, void *cb_data);

#define NFC_HCI_MAX_GATES 256

/*
* These values can be specified by a driver to indicate it requires some
* adaptation of the HCI standard.
*
* NFC_HCI_QUIRK_SHORT_CLEAR - send HCI_ADM_CLEAR_ALL_PIPE cmd with no params
*/
enum {
NFC_HCI_QUIRK_SHORT_CLEAR = 0,
};

struct nfc_hci_dev {
struct nfc_dev *ndev;

Expand Down Expand Up @@ -131,11 +141,14 @@ struct nfc_hci_dev {

u8 *gb;
size_t gb_len;

unsigned long quirks;
};

/* hci device allocation */
struct nfc_hci_dev *nfc_hci_allocate_device(struct nfc_hci_ops *ops,
struct nfc_hci_init_data *init_data,
unsigned long quirks,
u32 protocols,
const char *llc_name,
int tx_headroom,
Expand Down
7 changes: 6 additions & 1 deletion trunk/net/nfc/hci/command.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,14 +280,19 @@ static int nfc_hci_delete_pipe(struct nfc_hci_dev *hdev, u8 pipe)
static int nfc_hci_clear_all_pipes(struct nfc_hci_dev *hdev)
{
u8 param[2];
size_t param_len = 2;

/* TODO: Find out what the identity reference data is
* and fill param with it. HCI spec 6.1.3.5 */

pr_debug("\n");

if (test_bit(NFC_HCI_QUIRK_SHORT_CLEAR, &hdev->quirks))
param_len = 0;

return nfc_hci_execute_cmd(hdev, NFC_HCI_ADMIN_PIPE,
NFC_HCI_ADM_CLEAR_ALL_PIPE, param, 2, NULL);
NFC_HCI_ADM_CLEAR_ALL_PIPE, param, param_len,
NULL);
}

int nfc_hci_disconnect_gate(struct nfc_hci_dev *hdev, u8 gate)
Expand Down
3 changes: 3 additions & 0 deletions trunk/net/nfc/hci/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -795,6 +795,7 @@ static struct nfc_ops hci_nfc_ops = {

struct nfc_hci_dev *nfc_hci_allocate_device(struct nfc_hci_ops *ops,
struct nfc_hci_init_data *init_data,
unsigned long quirks,
u32 protocols,
const char *llc_name,
int tx_headroom,
Expand Down Expand Up @@ -838,6 +839,8 @@ struct nfc_hci_dev *nfc_hci_allocate_device(struct nfc_hci_ops *ops,

memset(hdev->gate2pipe, NFC_HCI_INVALID_PIPE, sizeof(hdev->gate2pipe));

hdev->quirks = quirks;

return hdev;
}
EXPORT_SYMBOL(nfc_hci_allocate_device);
Expand Down

0 comments on commit 098018a

Please sign in to comment.