[TNEXT-136] Check model name for wlan driver 14/116614/1 accepted/tizen/common/20170227.140556 accepted/tizen/common/20170228.065320 accepted/tizen/ivi/20170228.071928 accepted/tizen/mobile/20170228.071639 accepted/tizen/tv/20170228.071730 accepted/tizen/unified/20170309.032647 accepted/tizen/wearable/20170228.071824 submit/tizen/20170227.093013 submit/tizen/20170228.042751 submit/tizen_unified/20170308.100406
authorSeonah Moon <seonah1.moon@samsung.com>
Mon, 27 Feb 2017 08:30:50 +0000 (17:30 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Mon, 27 Feb 2017 08:32:46 +0000 (17:32 +0900)
Change-Id: Ie904d7ba80bf8f2dfe4952b80b18c07a565b4d3e
Signed-off-by: Seonah Moon <seonah1.moon@samsung.com>
include/util.h
packaging/net-config.spec
src/utils/util.c
src/wifi-firmware.c

index 2cce5ee..d7e9602 100755 (executable)
@@ -95,8 +95,15 @@ typedef enum {
 } tizen_profile_t;
 extern tizen_profile_t _get_tizen_profile();
 
+typedef enum {
+       TIZEN_WLAN_DRIVER_UNKNOWN = 0,
+       TIZEN_WLAN_DRIVER_BROADCOM = 1,
+       TIZEN_WLAN_DRIVER_SPRD = 2,
+} tizen_wlan_driver_t;
+extern tizen_wlan_driver_t _get_wlan_driver();
+
 #define TIZEN_TELEPHONY_ENABLE (_get_tizen_profile() == TIZEN_PROFILE_MOBILE)
-#define TIZEN_WLAN_BOARD_SPRD (_get_tizen_profile() == TIZEN_PROFILE_MOBILE)
+#define TIZEN_WLAN_BOARD_SPRD (_get_wlan_driver() == TIZEN_WLAN_DRIVER_SPRD)
 #define TIZEN_TV (_get_tizen_profile() == TIZEN_PROFILE_TV)
 #define TIZEN_NTP_ENABLE (_get_tizen_profile() == TIZEN_PROFILE_IVI)
 
index cdd14cc..c5ca245 100755 (executable)
@@ -1,6 +1,6 @@
 Name:          net-config
 Summary:       TIZEN Network Configuration service
-Version:       1.1.100
+Version:       1.1.101
 Release:       2
 Group:         System/Network
 License:       Apache-2.0
index 6efd972..a5c2595 100755 (executable)
@@ -1048,6 +1048,31 @@ tizen_profile_t _get_tizen_profile()
        return profile;
 }
 
+tizen_wlan_driver_t _get_wlan_driver(void)
+{
+       static tizen_wlan_driver_t drv = TIZEN_WLAN_DRIVER_UNKNOWN;
+       if (__builtin_expect(drv != TIZEN_WLAN_DRIVER_UNKNOWN, 1))
+               return drv;
+
+       char *model_name = NULL;
+       int ret = 0;
+
+       ret = system_info_get_platform_string("http://tizen.org/system/model_name", &model_name);
+       if (ret != SYSTEM_INFO_ERROR_NONE) {
+               ERR("Failed to get system information(%d)", ret);
+               return drv;
+       }
+
+       if (model_name && strncmp(model_name, "TM1", sizeof("TM1")) == 0)
+               drv = TIZEN_WLAN_DRIVER_SPRD;
+       else if (strncmp(model_name, "n4", sizeof("n4")) == 0)
+               drv = TIZEN_WLAN_DRIVER_BROADCOM;
+
+       free(model_name);
+
+       return drv;
+}
+
 void netconfig_plugin_init()
 {
        handle_headed = dlopen(HEADED_PLUGIN_FILEPATH, RTLD_NOW);
index d9a41f9..1c940df 100755 (executable)
@@ -44,9 +44,11 @@ static int __netconfig_sta_firmware_start(void)
        char *const args[] = { "/usr/bin/wlan.sh", "start", NULL };
        char *const envs[] = { NULL };
 
-       rv = netconfig_execute_file(path, args, envs);
-       if (rv < 0)
-               return -EIO;
+       if (TIZEN_WLAN_BOARD_SPRD) {
+               rv = netconfig_execute_file(path, args, envs);
+               if (rv < 0)
+                       return -EIO;
+       }
 
        rv = netconfig_interface_up(WLAN_IFACE_NAME);
        if (rv != TRUE)
@@ -70,9 +72,11 @@ static int __netconfig_sta_firmware_stop(void)
        if (rv != TRUE)
                return -EIO;
 
-       rv = netconfig_execute_file(path, args, envs);
-       if (rv < 0)
-               return -EIO;
+       if (TIZEN_WLAN_BOARD_SPRD) {
+               rv = netconfig_execute_file(path, args, envs);
+               if (rv < 0)
+                       return -EIO;
+       }
 
        DBG("Successfully removed wireless device driver");
        return 0;