NFC: netlink: Add result of firmware operation to completion event
authorEric Lapuyade <eric.lapuyade@linux.intel.com>
Fri, 19 Jul 2013 12:57:55 +0000 (14:57 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Tue, 13 Aug 2013 23:12:58 +0000 (01:12 +0200)
Result is added as an NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS attribute
containing the standard errno positive value of the completion result.
This event will be sent when the firmare download operation is done and
will contain the operation result.

Signed-off-by: Eric Lapuyade <eric.lapuyade@intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
include/net/nfc/nfc.h
include/uapi/linux/nfc.h
net/nfc/core.c
net/nfc/netlink.c
net/nfc/nfc.h

index 1005955605845200d4a97859216260b49dafbc9b..f68ee68e4e3e97cd055bc8cc760ab6bba9a11a4b 100644 (file)
@@ -224,7 +224,8 @@ int nfc_set_remote_general_bytes(struct nfc_dev *dev,
                                 u8 *gt, u8 gt_len);
 u8 *nfc_get_local_general_bytes(struct nfc_dev *dev, size_t *gb_len);
 
-int nfc_fw_download_done(struct nfc_dev *dev, const char *firmware_name);
+int nfc_fw_download_done(struct nfc_dev *dev, const char *firmware_name,
+                        u32 result);
 
 int nfc_targets_found(struct nfc_dev *dev,
                      struct nfc_target *targets, int ntargets);
index 029921b067fd3e7c0082d60a10951ea53e444fec..29bed72a4ac43e4bd141b87a8b5e9d410ab21cff 100644 (file)
@@ -146,6 +146,7 @@ enum nfc_commands {
  * @NFC_ATTR_FIRMWARE_NAME: Free format firmware version
  * @NFC_ATTR_SE_INDEX: Secure element index
  * @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED)
+ * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status
  */
 enum nfc_attrs {
        NFC_ATTR_UNSPEC,
@@ -172,6 +173,7 @@ enum nfc_attrs {
        NFC_ATTR_SE_INDEX,
        NFC_ATTR_SE_TYPE,
        NFC_ATTR_SE_AID,
+       NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS,
 /* private: internal use only */
        __NFC_ATTR_AFTER_LAST
 };
index aad7f8f59784e096f13bda0975acf2f5b70f4b30..d252912b8debd302df30adbfc06507a84a3f6dac 100644 (file)
@@ -77,11 +77,19 @@ error:
        return rc;
 }
 
-int nfc_fw_download_done(struct nfc_dev *dev, const char *firmware_name)
+/**
+ * nfc_fw_download_done - inform that a firmware download was completed
+ *
+ * @dev: The nfc device to which firmware was downloaded
+ * @firmware_name: The firmware filename
+ * @result: The positive value of a standard errno value
+ */
+int nfc_fw_download_done(struct nfc_dev *dev, const char *firmware_name,
+                        u32 result)
 {
        dev->fw_download_in_progress = false;
 
-       return nfc_genl_fw_download_done(dev, firmware_name);
+       return nfc_genl_fw_download_done(dev, firmware_name, result);
 }
 EXPORT_SYMBOL(nfc_fw_download_done);
 
index 3b08ef90e0451b258cdc58e8c58985aeeee3bc17..68063b2025da2750519dac5a652cdbbea36dac74 100644 (file)
@@ -1114,7 +1114,8 @@ static int nfc_genl_fw_download(struct sk_buff *skb, struct genl_info *info)
        return rc;
 }
 
-int nfc_genl_fw_download_done(struct nfc_dev *dev, const char *firmware_name)
+int nfc_genl_fw_download_done(struct nfc_dev *dev, const char *firmware_name,
+                             u32 result)
 {
        struct sk_buff *msg;
        void *hdr;
@@ -1129,6 +1130,7 @@ int nfc_genl_fw_download_done(struct nfc_dev *dev, const char *firmware_name)
                goto free_msg;
 
        if (nla_put_string(msg, NFC_ATTR_FIRMWARE_NAME, firmware_name) ||
+           nla_put_u32(msg, NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS, result) ||
            nla_put_u32(msg, NFC_ATTR_DEVICE_INDEX, dev->idx))
                goto nla_put_failure;
 
index 4e2e5a787c4a3eb3fbd93cdeb5ebe1d140147f30..aaf606fc1faa5d2d9a46a691fed2fa3840ea094a 100644 (file)
@@ -124,7 +124,8 @@ static inline void nfc_device_iter_exit(struct class_dev_iter *iter)
 }
 
 int nfc_fw_download(struct nfc_dev *dev, const char *firmware_name);
-int nfc_genl_fw_download_done(struct nfc_dev *dev, const char *firmware_name);
+int nfc_genl_fw_download_done(struct nfc_dev *dev, const char *firmware_name,
+                             u32 result);
 
 int nfc_dev_up(struct nfc_dev *dev);
 
This page took 0.037797 seconds and 5 git commands to generate.