From: Seonah Moon Date: Mon, 27 Feb 2017 08:30:50 +0000 (+0900) Subject: [TNEXT-136] Check model name for wlan driver X-Git-Tag: accepted/tizen/common/20170227.140556^0 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fconnectivity%2Fnet-config.git;a=commitdiff_plain;h=b6e948fa2d32fd1994f42dfa670c1398620bb6be [TNEXT-136] Check model name for wlan driver Change-Id: Ie904d7ba80bf8f2dfe4952b80b18c07a565b4d3e Signed-off-by: Seonah Moon --- diff --git a/include/util.h b/include/util.h index 2cce5ee..d7e9602 100755 --- a/include/util.h +++ b/include/util.h @@ -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) diff --git a/packaging/net-config.spec b/packaging/net-config.spec index cdd14cc..c5ca245 100755 --- a/packaging/net-config.spec +++ b/packaging/net-config.spec @@ -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 diff --git a/src/utils/util.c b/src/utils/util.c index 6efd972..a5c2595 100755 --- a/src/utils/util.c +++ b/src/utils/util.c @@ -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); diff --git a/src/wifi-firmware.c b/src/wifi-firmware.c index d9a41f9..1c940df 100755 --- a/src/wifi-firmware.c +++ b/src/wifi-firmware.c @@ -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;