staging: wilc1000: Optimize code of wilc_get_chipid function
authorChris Park <chris.park@atmel.com>
Thu, 4 Feb 2016 09:15:54 +0000 (18:15 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Feb 2016 01:34:58 +0000 (17:34 -0800)
This patch optimize code of wilc_get_chipid function.
u8 type changed to boolean type and removed unnecessary if statement.

Signed-off-by: Chris Park <chris.park@atmel.com>
Signed-off-by: Leo Kim <leo.kim@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/linux_wlan.c
drivers/staging/wilc1000/wilc_wlan.c
drivers/staging/wilc1000/wilc_wlan_if.h

index 22a2f98cc2fe2fe5864142cb887d7ceaa5617951..9e5dea4b24c54ad299dc44ab49312a8688a73595 100644 (file)
@@ -388,7 +388,7 @@ int wilc_wlan_get_firmware(struct net_device *dev)
        vif = netdev_priv(dev);
        wilc = vif->wilc;
 
-       chip_id = wilc_get_chipid(wilc, 0);
+       chip_id = wilc_get_chipid(wilc, false);
 
        if (chip_id < 0x1003a0)
                firmware = FIRMWARE_1002;
@@ -475,7 +475,7 @@ static int linux_wlan_init_test_config(struct net_device *dev,
        wilc_get_mac_address(vif, mac_add);
 
        netdev_dbg(dev, "MAC address is : %pM\n", mac_add);
-       wilc_get_chipid(wilc, 0);
+       wilc_get_chipid(wilc, false);
 
        *(int *)c_val = 1;
 
index dc263228675616b86410f065e9fb6ef98e50d50e..46087e29fc1502df915d9f1ffabd83784a06cb39 100644 (file)
@@ -1441,36 +1441,31 @@ static u32 init_chip(struct net_device *dev)
        return ret;
 }
 
-u32 wilc_get_chipid(struct wilc *wilc, u8 update)
+u32 wilc_get_chipid(struct wilc *wilc, bool update)
 {
        static u32 chipid;
        u32 tempchipid = 0;
-       u32 rfrevid;
+       u32 rfrevid = 0;
 
-       if (chipid == 0 || update != 0) {
+       if (chipid == 0 || update) {
                wilc->hif_func->hif_read_reg(wilc, 0x1000, &tempchipid);
                wilc->hif_func->hif_read_reg(wilc, 0x13f4, &rfrevid);
                if (!ISWILC1000(tempchipid)) {
                        chipid = 0;
-                       goto _fail_;
+                       return chipid;
                }
                if (tempchipid == 0x1002a0) {
-                       if (rfrevid == 0x1) {
-                       } else {
+                       if (rfrevid != 0x1)
                                tempchipid = 0x1002a1;
-                       }
                } else if (tempchipid == 0x1002b0) {
-                       if (rfrevid == 3) {
-                       } else if (rfrevid == 4) {
+                       if (rfrevid == 0x4)
                                tempchipid = 0x1002b1;
-                       } else {
+                       else if (rfrevid != 0x3)
                                tempchipid = 0x1002b2;
-                       }
                }
 
                chipid = tempchipid;
        }
-_fail_:
        return chipid;
 }
 
index 294552dda7b5635df29fe0f31de47d79ad701658..269c56ea147bca335f5858f1f3dd95357342f76b 100644 (file)
@@ -921,6 +921,6 @@ struct wilc;
 int wilc_wlan_init(struct net_device *dev);
 void wilc_bus_set_max_speed(void);
 void wilc_bus_set_default_speed(void);
-u32 wilc_get_chipid(struct wilc *wilc, u8 update);
+u32 wilc_get_chipid(struct wilc *wilc, bool update);
 
 #endif