summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/microchip
diff options
context:
space:
mode:
authorAjay Singh <ajay.kathat@microchip.com>2020-07-10 05:18:31 +0000
committerKalle Valo <kvalo@codeaurora.org>2020-07-14 20:52:27 +0300
commitb52b331a8978ab5414fc68bb4a73e690f080549e (patch)
tree65fc282930f6505cc46c6bc5cc4fb1c0065627a0 /drivers/net/wireless/microchip
parent0b3dd675ed595c0cbeb7b5a6cca21a5e64e7123c (diff)
wilc1000: use API version number info along with firmware filename
Added version number info along with firmware name so driver can pick the correct revision of FW file. Moved FW filename macro as part of driver code & added MODULE_FIRMWARE to specify FW needed by module. Signed-off-by: Ajay Singh <ajay.kathat@microchip.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20200710051826.3267-6-ajay.kathat@microchip.com
Diffstat (limited to 'drivers/net/wireless/microchip')
-rw-r--r--drivers/net/wireless/microchip/wilc1000/Makefile2
-rw-r--r--drivers/net/wireless/microchip/wilc1000/netdev.c17
2 files changed, 14 insertions, 5 deletions
diff --git a/drivers/net/wireless/microchip/wilc1000/Makefile b/drivers/net/wireless/microchip/wilc1000/Makefile
index 7d1ed5f40cbb..c3c9e34c1eaa 100644
--- a/drivers/net/wireless/microchip/wilc1000/Makefile
+++ b/drivers/net/wireless/microchip/wilc1000/Makefile
@@ -1,8 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
obj-$(CONFIG_WILC1000) += wilc1000.o
-ccflags-y += -DFIRMWARE_WILC1000=\"atmel/wilc1000_wifi_firmware.bin\"
-
wilc1000-objs := cfg80211.o netdev.o mon.o \
hif.o wlan_cfg.o wlan.o
diff --git a/drivers/net/wireless/microchip/wilc1000/netdev.c b/drivers/net/wireless/microchip/wilc1000/netdev.c
index 1005526ae896..198354670fe1 100644
--- a/drivers/net/wireless/microchip/wilc1000/netdev.c
+++ b/drivers/net/wireless/microchip/wilc1000/netdev.c
@@ -15,6 +15,13 @@
#define WILC_MULTICAST_TABLE_SIZE 8
+/* latest API version supported */
+#define WILC1000_API_VER 1
+
+#define WILC1000_FW_PREFIX "atmel/wilc1000_wifi_firmware-"
+#define __WILC1000_FW(api) WILC1000_FW_PREFIX #api ".bin"
+#define WILC1000_FW(api) __WILC1000_FW(api)
+
static irqreturn_t isr_uh_routine(int irq, void *user_data)
{
struct net_device *dev = user_data;
@@ -177,15 +184,18 @@ static int wilc_wlan_get_firmware(struct net_device *dev)
struct wilc *wilc = vif->wilc;
int chip_id;
const struct firmware *wilc_fw;
+ int ret;
chip_id = wilc_get_chipid(wilc, false);
netdev_info(dev, "ChipID [%x] loading firmware [%s]\n", chip_id,
- FIRMWARE_WILC1000);
+ WILC1000_FW(WILC1000_API_VER));
- if (request_firmware(&wilc_fw, FIRMWARE_WILC1000, wilc->dev) != 0) {
+ ret = request_firmware(&wilc_fw, WILC1000_FW(WILC1000_API_VER),
+ wilc->dev);
+ if (ret != 0) {
netdev_err(dev, "%s - firmware not available\n",
- FIRMWARE_WILC1000);
+ WILC1000_FW(WILC1000_API_VER));
return -EINVAL;
}
wilc->firmware = wilc_fw;
@@ -925,3 +935,4 @@ struct wilc_vif *wilc_netdev_ifc_init(struct wilc *wl, const char *name,
}
MODULE_LICENSE("GPL");
+MODULE_FIRMWARE(WILC1000_FW(WILC1000_API_VER));