diff options
Diffstat (limited to 'drivers/misc')
-rw-r--r-- | drivers/misc/iwmc3200top/fw-download.c | 24 | ||||
-rw-r--r-- | drivers/misc/iwmc3200top/iwmc3200top.h | 3 | ||||
-rw-r--r-- | drivers/misc/iwmc3200top/main.c | 1 |
3 files changed, 14 insertions, 14 deletions
diff --git a/drivers/misc/iwmc3200top/fw-download.c b/drivers/misc/iwmc3200top/fw-download.c index 33cb693dd37..50d431e469f 100644 --- a/drivers/misc/iwmc3200top/fw-download.c +++ b/drivers/misc/iwmc3200top/fw-download.c @@ -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; } diff --git a/drivers/misc/iwmc3200top/iwmc3200top.h b/drivers/misc/iwmc3200top/iwmc3200top.h index f572fcf177a..43bd510e187 100644 --- a/drivers/misc/iwmc3200top/iwmc3200top.h +++ b/drivers/misc/iwmc3200top/iwmc3200top.h @@ -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 diff --git a/drivers/misc/iwmc3200top/main.c b/drivers/misc/iwmc3200top/main.c index 02b3dadc8ab..fafcaa481d7 100644 --- a/drivers/misc/iwmc3200top/main.c +++ b/drivers/misc/iwmc3200top/main.c @@ -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 |