All of lore.kernel.org
 help / color / mirror / Atom feed
From: M Chetan Kumar <m.chetan.kumar@linux.intel.com>
To: netdev@vger.kernel.org
Cc: kuba@kernel.org, davem@davemloft.net, johannes@sipsolutions.net,
	ryazanov.s.a@gmail.com, loic.poulain@linaro.org,
	krishna.c.sudi@intel.com, m.chetan.kumar@intel.com,
	linuxwwan@intel.com
Subject: [PATCH net-next] net: wwan: iosm: fw flashing and cd improvements
Date: Tue, 21 Sep 2021 22:17:36 +0530	[thread overview]
Message-ID: <20210921164736.5047-1-m.chetan.kumar@linux.intel.com> (raw)

1> Function comments moved to .c file.
2> Use literals in return to improve readability.
3> Do error handling check instead of success check.
4> Redundant ret assignment removed.

Signed-off-by: M Chetan Kumar <m.chetan.kumar@linux.intel.com>
---
 drivers/net/wwan/iosm/iosm_ipc_coredump.c | 23 ++++++++--
 drivers/net/wwan/iosm/iosm_ipc_coredump.h | 16 -------
 drivers/net/wwan/iosm/iosm_ipc_devlink.c  | 40 +++++++++++++-----
 drivers/net/wwan/iosm/iosm_ipc_devlink.h  | 18 --------
 drivers/net/wwan/iosm/iosm_ipc_flash.c    | 51 +++++++++++++++++------
 drivers/net/wwan/iosm/iosm_ipc_flash.h    | 42 -------------------
 6 files changed, 87 insertions(+), 103 deletions(-)

diff --git a/drivers/net/wwan/iosm/iosm_ipc_coredump.c b/drivers/net/wwan/iosm/iosm_ipc_coredump.c
index fba3c3454e80..9acd87724c9d 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_coredump.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_coredump.c
@@ -5,7 +5,15 @@
 
 #include "iosm_ipc_coredump.h"
 
-/* Collect coredump data from modem */
+/**
+ * ipc_coredump_collect - To collect coredump
+ * @devlink:            Pointer to devlink instance.
+ * @data:               Pointer to snapshot
+ * @entry:              ID of requested snapshot
+ * @region_size:        Region size
+ *
+ * Returns: 0 on success, error on failure
+ */
 int ipc_coredump_collect(struct iosm_devlink *devlink, u8 **data, int entry,
 			 u32 region_size)
 {
@@ -38,20 +46,27 @@ int ipc_coredump_collect(struct iosm_devlink *devlink, u8 **data, int entry,
 
 	*data = data_ptr;
 
-	return ret;
+	return 0;
+
 get_cd_fail:
 	vfree(data_ptr);
 	return ret;
 }
 
-/* Get coredump list to be collected from modem */
+/**
+ * ipc_coredump_get_list - Get coredump list from modem
+ * @devlink:         Pointer to devlink instance.
+ * @cmd:             RPSI command to be sent
+ *
+ * Returns: 0 on success, error on failure
+ */
 int ipc_coredump_get_list(struct iosm_devlink *devlink, u16 cmd)
 {
 	u32 byte_read, num_entries, file_size;
 	struct iosm_cd_table *cd_table;
 	u8 size[MAX_SIZE_LEN], i;
 	char *filename;
-	int ret = 0;
+	int ret;
 
 	cd_table = kzalloc(MAX_CD_LIST_SIZE, GFP_KERNEL);
 	if (!cd_table) {
diff --git a/drivers/net/wwan/iosm/iosm_ipc_coredump.h b/drivers/net/wwan/iosm/iosm_ipc_coredump.h
index d5028153c8d1..0809ba664276 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_coredump.h
+++ b/drivers/net/wwan/iosm/iosm_ipc_coredump.h
@@ -51,25 +51,9 @@ struct iosm_cd_table {
 	struct iosm_cd_list list;
 } __packed;
 
-/**
- * ipc_coredump_collect - To collect coredump
- * @devlink:		Pointer to devlink instance.
- * @data:		Pointer to snapshot
- * @entry:		ID of requested snapshot
- * @region_size:	Region size
- *
- * Returns: 0 on success, error on failure
- */
 int ipc_coredump_collect(struct iosm_devlink *devlink, u8 **data, int entry,
 			 u32 region_size);
 
-/**
- * ipc_coredump_get_list - Get coredump list
- * @devlink:         Pointer to devlink instance.
- * @cmd:	     RPSI command to be sent
- *
- * Returns: 0 on success, error on failure
- */
 int ipc_coredump_get_list(struct iosm_devlink *devlink, u16 cmd);
 
 #endif /* _IOSM_IPC_COREDUMP_H_ */
diff --git a/drivers/net/wwan/iosm/iosm_ipc_devlink.c b/drivers/net/wwan/iosm/iosm_ipc_devlink.c
index 7fd7956cc61e..eb96e7356868 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_devlink.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_devlink.c
@@ -134,11 +134,11 @@ static int ipc_devlink_flash_update(struct devlink *devlink,
 {
 	struct iosm_devlink *ipc_devlink = devlink_priv(devlink);
 	enum iosm_flash_comp_type fls_type;
-	u32 rc = -EINVAL;
+	int rc = -EINVAL;
 	u8 *mdm_rsp;
 
 	if (!params->component)
-		return rc;
+		return -EINVAL;
 
 	mdm_rsp = kzalloc(IOSM_EBL_DW_PACK_SIZE, GFP_KERNEL);
 	if (!mdm_rsp)
@@ -153,11 +153,12 @@ static int ipc_devlink_flash_update(struct devlink *devlink,
 		break;
 	case FLASH_COMP_TYPE_EBL:
 		rc = ipc_flash_boot_ebl(ipc_devlink, params->fw);
-		if (!rc)
-			rc = ipc_flash_boot_set_capabilities(ipc_devlink,
-							     mdm_rsp);
-		if (!rc)
-			rc = ipc_flash_read_swid(ipc_devlink, mdm_rsp);
+		if (rc)
+			break;
+		rc = ipc_flash_boot_set_capabilities(ipc_devlink, mdm_rsp);
+		if (rc)
+			break;
+		rc = ipc_flash_read_swid(ipc_devlink, mdm_rsp);
 		break;
 	case FLASH_COMP_TYPE_FLS:
 		rc = ipc_flash_send_fls(ipc_devlink, params->fw, mdm_rsp);
@@ -185,7 +186,14 @@ static const struct devlink_ops devlink_flash_ops = {
 	.flash_update = ipc_devlink_flash_update,
 };
 
-/* Send command to modem to collect data */
+/**
+ * ipc_devlink_send_cmd - Send command to Modem
+ * @ipc_devlink: Pointer to struct iosm_devlink
+ * @cmd:         Command to be sent to modem
+ * @entry:       Command entry number
+ *
+ * Returns:      0 on success and failure value on error
+ */
 int ipc_devlink_send_cmd(struct iosm_devlink *ipc_devlink, u16 cmd, u32 entry)
 {
 	struct iosm_rpsi_cmd rpsi_cmd;
@@ -199,6 +207,7 @@ int ipc_devlink_send_cmd(struct iosm_devlink *ipc_devlink, u16 cmd, u32 entry)
 					  sizeof(rpsi_cmd));
 }
 
+/* Function to create snapshot */
 static int ipc_devlink_coredump_snapshot(struct devlink *dl,
 					 const struct devlink_region_ops *ops,
 					 struct netlink_ext_ack *extack,
@@ -223,7 +232,8 @@ static int ipc_devlink_coredump_snapshot(struct devlink *dl,
 	if (cd_list->entry == (IOSM_NOF_CD_REGION - 1))
 		ipc_coredump_get_list(ipc_devlink, rpsi_cmd_coredump_end);
 
-	return rc;
+	return 0;
+
 coredump_collect_err:
 	ipc_coredump_get_list(ipc_devlink, rpsi_cmd_coredump_end);
 	return rc;
@@ -270,7 +280,12 @@ static void ipc_devlink_destroy_region(struct iosm_devlink *ipc_devlink)
 		devlink_region_destroy(ipc_devlink->cd_regions[i]);
 }
 
-/* Handle registration to devlink framework */
+/**
+ * ipc_devlink_init - Initialize/register devlink to IOSM driver
+ * @ipc_imem:   Pointer to struct iosm_imem
+ *
+ * Returns:     Pointer to iosm_devlink on success and NULL on failure
+ */
 struct iosm_devlink *ipc_devlink_init(struct iosm_imem *ipc_imem)
 {
 	struct ipc_chnl_cfg chnl_cfg_flash = { 0 };
@@ -341,7 +356,10 @@ struct iosm_devlink *ipc_devlink_init(struct iosm_imem *ipc_imem)
 	return NULL;
 }
 
-/* Handle unregistration of devlink */
+/**
+ * ipc_devlink_deinit - To unintialize the devlink from IOSM driver.
+ * @ipc_devlink:        Devlink instance
+ */
 void ipc_devlink_deinit(struct iosm_devlink *ipc_devlink)
 {
 	struct devlink *devlink_ctx = ipc_devlink->devlink_ctx;
diff --git a/drivers/net/wwan/iosm/iosm_ipc_devlink.h b/drivers/net/wwan/iosm/iosm_ipc_devlink.h
index 392735080cb3..fa2b388a2f8a 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_devlink.h
+++ b/drivers/net/wwan/iosm/iosm_ipc_devlink.h
@@ -180,28 +180,10 @@ struct iosm_rpsi_cmd {
 	__le16	crc;
 };
 
-/**
- * ipc_devlink_init - To initialize the devlink to IOSM driver
- * @ipc_imem:	Pointer to struct iosm_imem
- *
- * Returns:	Pointer to iosm_devlink on success and NULL on failure
- */
 struct iosm_devlink *ipc_devlink_init(struct iosm_imem *ipc_imem);
 
-/**
- * ipc_devlink_deinit - To unintialize the devlink from IOSM driver.
- * @ipc_devlink:	Devlink instance
- */
 void ipc_devlink_deinit(struct iosm_devlink *ipc_devlink);
 
-/**
- * ipc_devlink_send_cmd - Send command to Modem
- * @ipc_devlink: Pointer to struct iosm_devlink
- * @cmd:	 Command to be sent to modem
- * @entry:	 Command entry number
- *
- * Returns:	 0 on success and failure value on error
- */
 int ipc_devlink_send_cmd(struct iosm_devlink *ipc_devlink, u16 cmd, u32 entry);
 
 #endif /* _IOSM_IPC_DEVLINK_H */
diff --git a/drivers/net/wwan/iosm/iosm_ipc_flash.c b/drivers/net/wwan/iosm/iosm_ipc_flash.c
index 3d2f1ec6da00..ebceedf7c9f5 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_flash.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_flash.c
@@ -40,7 +40,6 @@ static int ipc_flash_proc_check_ebl_rsp(void *hdr_rsp, void *payload_rsp)
 {
 	struct iosm_ebl_error  *err_info = payload_rsp;
 	u16 *rsp_code = hdr_rsp;
-	int res = 0;
 	u32 i;
 
 	if (*rsp_code == IOSM_EBL_RSP_BUFF) {
@@ -51,10 +50,10 @@ static int ipc_flash_proc_check_ebl_rsp(void *hdr_rsp, void *payload_rsp)
 				       err_info->error[i].error_code);
 			}
 		}
-		res = -EINVAL;
+		return -EINVAL;
 	}
 
-	return res;
+	return 0;
 }
 
 /* Send data to the modem */
@@ -90,7 +89,12 @@ static int ipc_flash_send_data(struct iosm_devlink *ipc_devlink, u32 size,
 	return ret;
 }
 
-/* Allocate flash channel and read LER data from modem */
+/**
+ * ipc_flash_link_establish - Flash link establishment
+ * @ipc_imem:           Pointer to struct iosm_imem
+ *
+ * Returns:     0 on success and failure value on error
+ */
 int ipc_flash_link_establish(struct iosm_imem *ipc_imem)
 {
 	u8 ler_data[IOSM_LER_RSP_SIZE];
@@ -109,6 +113,7 @@ int ipc_flash_link_establish(struct iosm_imem *ipc_imem)
 
 	if (bytes_read != IOSM_LER_RSP_SIZE)
 		goto devlink_read_fail;
+
 	return 0;
 
 devlink_read_fail:
@@ -179,12 +184,16 @@ static int ipc_flash_send_receive(struct iosm_devlink *ipc_devlink, u16 pack_id,
 	return ret;
 }
 
-/* Set the capabilities for the EBL */
+/**
+ * ipc_flash_boot_set_capabilities  - Set modem boot capabilities in flash
+ * @ipc_devlink:        Pointer to devlink structure
+ * @mdm_rsp:            Pointer to modem response buffer
+ *
+ * Returns:             0 on success and failure value on error
+ */
 int ipc_flash_boot_set_capabilities(struct iosm_devlink *ipc_devlink,
 				    u8 *mdm_rsp)
 {
-	int ret;
-
 	ipc_devlink->ebl_ctx.ebl_sw_info_version =
 			ipc_devlink->ebl_ctx.m_ebl_resp[EBL_RSP_SW_INFO_VER];
 	ipc_devlink->ebl_ctx.m_ebl_resp[EBL_SKIP_ERASE] = IOSM_CAP_NOT_ENHANCED;
@@ -205,10 +214,9 @@ int ipc_flash_boot_set_capabilities(struct iosm_devlink *ipc_devlink,
 	/* Write back the EBL capability to modem
 	 * Request Set Protcnf command
 	 */
-	ret = ipc_flash_send_receive(ipc_devlink, FLASH_SET_PROT_CONF,
+	return ipc_flash_send_receive(ipc_devlink, FLASH_SET_PROT_CONF,
 				     ipc_devlink->ebl_ctx.m_ebl_resp,
 				     IOSM_EBL_RSP_SIZE, mdm_rsp);
-	return ret;
 }
 
 /* Read the SWID type and SWID value from the EBL */
@@ -380,7 +388,14 @@ static int ipc_flash_download_region(struct iosm_devlink *ipc_devlink,
 	return ret;
 }
 
-/* Flash the individual fls files */
+/**
+ * ipc_flash_send_fls  - Inject Modem subsystem fls file to device
+ * @ipc_devlink:        Pointer to devlink structure
+ * @fw:                 FW image
+ * @mdm_rsp:            Pointer to modem response buffer
+ *
+ * Returns:             0 on success and failure value on error
+ */
 int ipc_flash_send_fls(struct iosm_devlink *ipc_devlink,
 		       const struct firmware *fw, u8 *mdm_rsp)
 {
@@ -420,7 +435,13 @@ int ipc_flash_send_fls(struct iosm_devlink *ipc_devlink,
 	return ret;
 }
 
-/* Inject RPSI */
+/**
+ * ipc_flash_boot_psi - Inject PSI image
+ * @ipc_devlink:        Pointer to devlink structure
+ * @fw:                 FW image
+ *
+ * Returns:             0 on success and failure value on error
+ */
 int ipc_flash_boot_psi(struct iosm_devlink *ipc_devlink,
 		       const struct firmware *fw)
 {
@@ -470,7 +491,13 @@ int ipc_flash_boot_psi(struct iosm_devlink *ipc_devlink,
 	return ret;
 }
 
-/* Inject EBL */
+/**
+ * ipc_flash_boot_ebl  - Inject EBL image
+ * @ipc_devlink:        Pointer to devlink structure
+ * @fw:                 FW image
+ *
+ * Returns:             0 on success and failure value on error
+ */
 int ipc_flash_boot_ebl(struct iosm_devlink *ipc_devlink,
 		       const struct firmware *fw)
 {
diff --git a/drivers/net/wwan/iosm/iosm_ipc_flash.h b/drivers/net/wwan/iosm/iosm_ipc_flash.h
index aee848927228..132d59d60fbe 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_flash.h
+++ b/drivers/net/wwan/iosm/iosm_ipc_flash.h
@@ -211,61 +211,19 @@ struct iosm_flash_data {
 	__le32  msg_length;
 };
 
-/**
- * ipc_flash_boot_psi - Inject PSI image
- * @ipc_devlink:	Pointer to devlink structure
- * @fw:			FW image
- *
- * Returns:             0 on success and failure value on error
- */
 int ipc_flash_boot_psi(struct iosm_devlink *ipc_devlink,
 		       const struct firmware *fw);
 
-/**
- * ipc_flash_boot_ebl  - Inject EBL image
- * @ipc_devlink:        Pointer to devlink structure
- * @fw:			FW image
- *
- * Returns:             0 on success and failure value on error
- */
 int ipc_flash_boot_ebl(struct iosm_devlink *ipc_devlink,
 		       const struct firmware *fw);
 
-/**
- * ipc_flash_boot_set_capabilities  - Set modem bool capabilities in flash
- * @ipc_devlink:        Pointer to devlink structure
- * @mdm_rsp:		Pointer to modem response buffer
- *
- * Returns:             0 on success and failure value on error
- */
 int ipc_flash_boot_set_capabilities(struct iosm_devlink *ipc_devlink,
 				    u8 *mdm_rsp);
 
-/**
- * ipc_flash_link_establish - Flash link establishment
- * @ipc_imem:		Pointer to struct iosm_imem
- *
- * Returns:	0 on success and failure value on error
- */
 int ipc_flash_link_establish(struct iosm_imem *ipc_imem);
 
-/**
- * ipc_flash_read_swid - Get swid during flash phase
- * @ipc_devlink:        Pointer to devlink structure
- * @mdm_rsp:		Pointer to modem response buffer
- *
- * Returns:             0 on success and failure value on error
- */
 int ipc_flash_read_swid(struct iosm_devlink *ipc_devlink, u8 *mdm_rsp);
 
-/**
- * ipc_flash_send_fls  - Inject Modem subsystem fls file to device
- * @ipc_devlink:        Pointer to devlink structure
- * @fw:			FW image
- * @mdm_rsp:		Pointer to modem response buffer
- *
- * Returns:             0 on success and failure value on error
- */
 int ipc_flash_send_fls(struct iosm_devlink *ipc_devlink,
 		       const struct firmware *fw, u8 *mdm_rsp);
 #endif
-- 
2.25.1


             reply	other threads:[~2021-09-21 16:48 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-21 16:47 M Chetan Kumar [this message]
2021-09-22 13:40 ` [PATCH net-next] net: wwan: iosm: fw flashing and cd improvements patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210921164736.5047-1-m.chetan.kumar@linux.intel.com \
    --to=m.chetan.kumar@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=johannes@sipsolutions.net \
    --cc=krishna.c.sudi@intel.com \
    --cc=kuba@kernel.org \
    --cc=linuxwwan@intel.com \
    --cc=loic.poulain@linaro.org \
    --cc=m.chetan.kumar@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=ryazanov.s.a@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.