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

Commit 25a1d9dc authored by Ilan Elias's avatar Ilan Elias Committed by John W. Linville
Browse files

NFC: NFC core layer should not set the target_idx



The NFC core layer should not set the target_idx.
Instead, the driver layer (e.g. NCI, PN533) should set the
target_idx, so that it will be able to identify the target
when its I/F (e.g. activate_target) is called.
This is required in order to support multiple targets.
Note that currently supported drivers (PN533 and NCI) don't
use the target_idx in their implementation.

Signed-off-by: default avatarIlan Elias <ilane@ti.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 8939e47f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -87,7 +87,6 @@ struct nfc_genl_data {

struct nfc_dev {
	unsigned idx;
	unsigned target_idx;
	struct nfc_target *targets;
	int n_targets;
	int targets_generation;
+0 −5
Original line number Diff line number Diff line
@@ -431,15 +431,10 @@ EXPORT_SYMBOL(nfc_alloc_recv_skb);
int nfc_targets_found(struct nfc_dev *dev, struct nfc_target *targets,
							int n_targets)
{
	int i;

	pr_debug("dev_name=%s n_targets=%d\n", dev_name(&dev->dev), n_targets);

	dev->polling = false;

	for (i = 0; i < n_targets; i++)
		targets[i].idx = dev->target_idx++;

	spin_lock_bh(&dev->targets_lock);

	dev->targets_generation++;
+0 −12
Original line number Diff line number Diff line
@@ -92,18 +92,6 @@ static int rawsock_connect(struct socket *sock, struct sockaddr *_addr,
		goto error;
	}

	if (addr->target_idx > dev->target_idx - 1 ||
		addr->target_idx < dev->target_idx - dev->n_targets) {
		rc = -EINVAL;
		goto error;
	}

	if (addr->target_idx > dev->target_idx - 1 ||
		addr->target_idx < dev->target_idx - dev->n_targets) {
		rc = -EINVAL;
		goto error;
	}

	rc = nfc_activate_target(dev, addr->target_idx, addr->nfc_protocol);
	if (rc)
		goto put_dev;