Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 529ee066 authored by Julien Lefrique's avatar Julien Lefrique Committed by Samuel Ortiz
Browse files

NFC: NCI: Configure ATR_RES general bytes



The Target responds to the ATR_REQ with the ATR_RES. Configure the General
Bytes in ATR_RES with the first three octets equal to the NFC Forum LLCP
magic number, followed by some LLC Parameters TLVs described in section
4.5 of [LLCP].

Signed-off-by: default avatarJulien Lefrique <lefrique@marvell.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent a99903ec
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -110,6 +110,7 @@

/* NCI Configuration Parameter Tags */
#define NCI_PN_ATR_REQ_GEN_BYTES				0x29
#define NCI_LN_ATR_RES_GEN_BYTES				0x61
#define NCI_LA_SEL_INFO						0x32
#define NCI_LF_PROTOCOL_TYPE					0x50
#define NCI_LF_CON_BITR_F					0x54
+9 −1
Original line number Diff line number Diff line
@@ -460,6 +460,7 @@ static int nci_set_local_general_bytes(struct nfc_dev *nfc_dev)
{
	struct nci_dev *ndev = nfc_get_drvdata(nfc_dev);
	struct nci_set_config_param param;
	int rc;

	param.val = nfc_get_local_general_bytes(nfc_dev, &param.len);
	if ((param.val == NULL) || (param.len == 0))
@@ -470,6 +471,13 @@ static int nci_set_local_general_bytes(struct nfc_dev *nfc_dev)

	param.id = NCI_PN_ATR_REQ_GEN_BYTES;

	rc = nci_request(ndev, nci_set_config_req, (unsigned long)&param,
			 msecs_to_jiffies(NCI_SET_CONFIG_TIMEOUT));
	if (rc)
		return rc;

	param.id = NCI_LN_ATR_RES_GEN_BYTES;

	return nci_request(ndev, nci_set_config_req, (unsigned long)&param,
			   msecs_to_jiffies(NCI_SET_CONFIG_TIMEOUT));
}
@@ -525,7 +533,7 @@ static int nci_start_poll(struct nfc_dev *nfc_dev,
			return -EBUSY;
	}

	if (im_protocols & NFC_PROTO_NFC_DEP_MASK) {
	if ((im_protocols | tm_protocols) & NFC_PROTO_NFC_DEP_MASK) {
		rc = nci_set_local_general_bytes(nfc_dev);
		if (rc) {
			pr_err("failed to set local general bytes\n");