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

Commit 0e481747 authored by Tomas Winkler's avatar Tomas Winkler Committed by David S. Miller
Browse files

iwmc3200top: revamp fw name handling



1. define macro for handling firmware api version
2. add MODULE_FIRMWARE
3. cleanup iwmct_fw_load style

Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a0607fd3
Loading
Loading
Loading
Loading
+10 −14
Original line number Diff line number Diff line
@@ -291,35 +291,31 @@ static int iwmct_kick_fw(struct iwmct_priv *priv, bool jump)

int iwmct_fw_load(struct iwmct_priv *priv)
{
	const struct firmware *raw = NULL;
	__le32 addr;
	size_t len;
	const u8 *fw_name = FW_NAME(FW_API_VER);
	const struct firmware *raw;
	const u8 *pdata;
	const u8 *name = "iwmc3200top.1.fw";
	int ret = 0;
	size_t len;
	__le32 addr;
	int ret;

	/* clear parser struct */
	memset(&priv->parser, 0, sizeof(struct iwmct_parser));
	if (!name) {
		ret = -EINVAL;
		goto exit;
	}

	/* get the firmware */
	ret = request_firmware(&raw, name, &priv->func->dev);
	ret = request_firmware(&raw, fw_name, &priv->func->dev);
	if (ret < 0) {
		LOG_ERROR(priv, FW_DOWNLOAD, "%s request_firmware failed %d\n",
			  name, ret);
			  fw_name, ret);
		goto exit;
	}

	if (raw->size < sizeof(struct iwmct_fw_sec_hdr)) {
		LOG_ERROR(priv, FW_DOWNLOAD, "%s smaller then (%zd) (%zd)\n",
			  name, sizeof(struct iwmct_fw_sec_hdr), raw->size);
			  fw_name, sizeof(struct iwmct_fw_sec_hdr), raw->size);
		goto exit;
	}

	LOG_INFO(priv, FW_DOWNLOAD, "Read firmware '%s'\n", name);
	LOG_INFO(priv, FW_DOWNLOAD, "Read firmware '%s'\n", fw_name);

	ret = iwmct_fw_parser_init(priv, raw->data, raw->size, priv->trans_len);
	if (ret < 0) {
@@ -339,7 +335,7 @@ int iwmct_fw_load(struct iwmct_priv *priv)
	while (iwmct_parse_next_section(priv, &pdata, &len, &addr)) {
		if (iwmct_download_section(priv, pdata, len, addr)) {
			LOG_ERROR(priv, FW_DOWNLOAD,
				  "%s download section failed\n", name);
				  "%s download section failed\n", fw_name);
			ret = -EIO;
			goto exit;
		}
+3 −0
Original line number Diff line number Diff line
@@ -30,6 +30,9 @@
#include <linux/workqueue.h>

#define DRV_NAME "iwmc3200top"
#define FW_API_VER 1
#define _FW_NAME(api) DRV_NAME "." #api ".fw"
#define FW_NAME(api) _FW_NAME(api)

#define IWMC_SDIO_BLK_SIZE			256
#define IWMC_DEFAULT_TR_BLK			64
+1 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ MODULE_DESCRIPTION(DRIVER_DESCRIPTION);
MODULE_VERSION(DRIVER_VERSION);
MODULE_LICENSE("GPL");
MODULE_AUTHOR(DRIVER_COPYRIGHT);
MODULE_FIRMWARE(FW_NAME(FW_API_VER));

/*
 * This workers main task is to wait for OP_OPR_ALIVE