staging: wilc1000: use unified firmware
authorGlen Lee <glen.lee@atmel.com>
Mon, 25 Jan 2016 07:35:13 +0000 (16:35 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Feb 2016 23:25:40 +0000 (15:25 -0800)
Use a unified firmware for all mode of operations which are station, ap and
p2p. Two firmware are introduced for 1002 and 1003 chipset.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/Makefile
drivers/staging/wilc1000/linux_wlan.c

index 20a5cb9d4f4c818d486bcd2cd649e0a206b3f11c..90c37606f202058b4ea1cd41e95837ac4c5a5117 100644 (file)
@@ -1,8 +1,7 @@
 obj-$(CONFIG_WILC1000) += wilc1000.o
 
-ccflags-y += -DSTA_FIRMWARE=\"atmel/wilc1000_fw.bin\" \
-               -DAP_FIRMWARE=\"atmel/wilc1000_ap_fw.bin\" \
-               -DP2P_CONCURRENCY_FIRMWARE=\"atmel/wilc1000_p2p_fw.bin\"
+ccflags-y += -DFIRMWARE_1002=\"atmel/wilc1002_firmware.bin\" \
+               -DFIRMWARE_1003=\"atmel/wilc1003_firmware.bin\"
 
 ccflags-y += -I$(src)/ -DWILC_ASIC_A0 -DWILC_DEBUGFS
 #ccflags-y += -DTCP_ACK_FILTER
index 58837d7f1be2700d9266b6ee1e3bf272013e6cac..006f75f7c6757ea1472bb4610399b7c8edba1fb5 100644 (file)
@@ -416,21 +416,21 @@ int wilc_wlan_get_firmware(struct net_device *dev)
 {
        struct wilc_vif *vif;
        struct wilc *wilc;
-       int ret = 0;
+       int chip_id, ret = 0;
        const struct firmware *wilc_firmware;
        char *firmware;
 
        vif = netdev_priv(dev);
        wilc = vif->wilc;
 
-       if (vif->iftype == AP_MODE) {
-               firmware = AP_FIRMWARE;
-       } else if (vif->iftype == STATION_MODE) {
-               firmware = STA_FIRMWARE;
-       } else {
-               PRINT_D(INIT_DBG, "Get P2P_CONCURRENCY_FIRMWARE\n");
-               firmware = P2P_CONCURRENCY_FIRMWARE;
-       }
+       chip_id = wilc_get_chipid(wilc, 0);
+
+       if (chip_id < 0x1003a0)
+               firmware = FIRMWARE_1002;
+       else
+               firmware = FIRMWARE_1003;
+
+       netdev_info(dev, "loading firmware %s\n", firmware);
 
        if (!vif) {
                PRINT_ER("vif is NULL\n");