diff mbox

[1/4] NFC: nci: Add FWDL support

Message ID 1421940460-14049-2-git-send-email-clement.perrochaud@effinnov.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

clement.perrochaud@effinnov.com Jan. 22, 2015, 3:27 p.m. UTC
From: Clément Perrochaud <clement.perrochaud@nxp.com>

Signed-off-by: Clément Perrochaud <clement.perrochaud@nxp.com>
Signed-off-by: Clément Perrochaud <clement.perrochaud@effinnov.com>
---
 include/net/nfc/nci_core.h |  1 +
 net/nfc/nci/core.c         | 11 +++++++++++
 2 files changed, 12 insertions(+)

Comments

Samuel Ortiz Jan. 29, 2015, 11:28 p.m. UTC | #1
Hi Clement,

On Thu, Jan 22, 2015 at 04:27:37PM +0100, clement.perrochaud@effinnov.com wrote:
> From: Clément Perrochaud <clement.perrochaud@nxp.com>

- It really is not obvious that FWDL actually means firmware download
- A small commit message explaining why you need this (Mostly for the
  NXP chipset for now) would be nice.

Cheers,
Samuel.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
clement.perrochaud@effinnov.com March 9, 2015, 10:26 a.m. UTC | #2
On 01/30/2015 12:28 AM, Samuel Ortiz wrote:
> - It really is not obvious that FWDL actually means firmware download
> - A small commit message explaining why you need this (Mostly for the
>   NXP chipset for now) would be nice.

Hi Samuel,

Thank you for all your comments, I just sent an improved version of the
patches taking them into account.

Regards,
diff mbox

Patch

diff --git a/include/net/nfc/nci_core.h b/include/net/nfc/nci_core.h
index 9e51bb4..137e059 100644
--- a/include/net/nfc/nci_core.h
+++ b/include/net/nfc/nci_core.h
@@ -71,6 +71,7 @@  struct nci_ops {
 	int   (*close)(struct nci_dev *ndev);
 	int   (*send)(struct nci_dev *ndev, struct sk_buff *skb);
 	int   (*setup)(struct nci_dev *ndev);
+	int   (*fw_download)(struct nci_dev *ndev, const char *firmware_name);
 	__u32 (*get_rfprotocol)(struct nci_dev *ndev, __u8 rf_protocol);
 	int   (*discover_se)(struct nci_dev *ndev);
 	int   (*disable_se)(struct nci_dev *ndev, u32 se_idx);
diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c
index 51feb5e..1342c7d 100644
--- a/net/nfc/nci/core.c
+++ b/net/nfc/nci/core.c
@@ -789,6 +789,16 @@  static int nci_se_io(struct nfc_dev *nfc_dev, u32 se_idx,
 	return 0;
 }
 
+static int nci_fw_download(struct nfc_dev *nfc_dev, const char *firmware_name)
+{
+	struct nci_dev *ndev = nfc_get_drvdata(nfc_dev);
+
+	if (!ndev->ops->fw_download)
+		return -ENOTSUPP;
+
+	return ndev->ops->fw_download(ndev, firmware_name);
+}
+
 static struct nfc_ops nci_nfc_ops = {
 	.dev_up = nci_dev_up,
 	.dev_down = nci_dev_down,
@@ -804,6 +814,7 @@  static struct nfc_ops nci_nfc_ops = {
 	.disable_se = nci_disable_se,
 	.discover_se = nci_discover_se,
 	.se_io = nci_se_io,
+	.fw_download = nci_fw_download,
 };
 
 /* ---- Interface to NCI drivers ---- */