From: Suresh Kumar Narasimhaiah Date: Wed, 20 Mar 2013 11:48:18 +0000 (+0530) Subject: ACTIVATE/DEACTIVATE recurssion fix. X-Git-Tag: submit/tizen_2.1/20130424.233434~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9ca6f850d8ed3d82b347ff068ca2f984577ddfe4;p=platform%2Fcore%2Ftelephony%2Ftel-plugin-imcmodem.git ACTIVATE/DEACTIVATE recurssion fix. Change-Id: Ie59306e6855cd002716921dcc3a77245f057226d --- diff --git a/src/desc-imcmodem.c b/src/desc-imcmodem.c index e2b7f28..c1d71dd 100644 --- a/src/desc-imcmodem.c +++ b/src/desc-imcmodem.c @@ -372,65 +372,70 @@ static TReturn _hal_setup_netif(CoreObject *co, char ifname[IMC_DEVICE_NAME_LEN_MAX]; int ret = -1; - /* Open device to send IOCTL command */ - fd = open(VNET_CH_PATH_BOOT0, O_RDWR); - if (fd < 0) { - err("Failed to Open [%s] Error: [%s]", VNET_CH_PATH_BOOT0, strerror(errno)); - return TCORE_RETURN_FAILURE; - } + if (enable == TRUE) { + dbg("ACTIVATE"); + + /* Open device to send IOCTL command */ + fd = open(VNET_CH_PATH_BOOT0, O_RDWR); + if (fd < 0) { + err("Failed to Open [%s] Error: [%s]", VNET_CH_PATH_BOOT0, strerror(errno)); + return TCORE_RETURN_FAILURE; + } - /* - * Send IOCTL to change the Channel to Data mode - * - * Presently only 2 Contexts are suported - */ - switch (cid) { - case 1: - { - dbg("Send IOCTL: arg 0x05 (0101) HSIC1, cid: [%d]", cid); - ret = ioctl(fd, IOCTL_CG_DATA_SEND, 0x05); - } - break; + /* + * Send IOCTL to change the Channel to Data mode + * + * Presently only 2 Contexts are suported + */ + switch (cid) { + case 1: + { + dbg("Send IOCTL: arg 0x05 (0101) HSIC1, cid: [%d]", cid); + ret = ioctl(fd, IOCTL_CG_DATA_SEND, 0x05); + } + break; - case 2: - { - dbg("Send IOCTL: arg 0x0A (1010) HSIC2, cid: [%d]", cid); - ret = ioctl(fd, IOCTL_CG_DATA_SEND, 0xA); - } - break; + case 2: + { + dbg("Send IOCTL: arg 0x0A (1010) HSIC2, cid: [%d]", cid); + ret = ioctl(fd, IOCTL_CG_DATA_SEND, 0xA); + } + break; - default: - { - err("More than 2 Contexts are not supported right now!!! cid: [%d]", cid); - } - } + default: + { + err("More than 2 Contexts are not supported right now!!! cid: [%d]", cid); + } + } - /* Close 'fd' */ - close(fd); + /* Close 'fd' */ + close(fd); - /* TODO - Need to handle Failure case */ - if (ret < 0) { - err("[ERROR] IOCTL_CG_DATA_SEND - FAIL [0x%x]", IOCTL_CG_DATA_SEND); + /* TODO - Need to handle Failure case */ + if (ret < 0) { + err("[ERROR] IOCTL_CG_DATA_SEND - FAIL [0x%x]", IOCTL_CG_DATA_SEND); - /* Invoke callback function */ - if (func) - func(co, ret, NULL, user_data); + /* Invoke callback function */ + if (func) + func(co, ret, NULL, user_data); - return TCORE_RETURN_FAILURE; - } else { - dbg("[OK] IOCTL_CG_DATA_SEND - PASS [0x%x]", IOCTL_CG_DATA_SEND); + return TCORE_RETURN_FAILURE; + } else { + dbg("[OK] IOCTL_CG_DATA_SEND - PASS [0x%x]", IOCTL_CG_DATA_SEND); - /* Device name */ - snprintf(ifname, IMC_DEVICE_NAME_LEN_MAX, "%s%d", IMC_DEVICE_NAME_PREFIX, (cid - 1)); - dbg("Interface Name: [%s]", ifname); + /* Device name */ + snprintf(ifname, IMC_DEVICE_NAME_LEN_MAX, "%s%d", IMC_DEVICE_NAME_PREFIX, (cid - 1)); + dbg("Interface Name: [%s]", ifname); - /* Invoke callback function */ - if (func) - func(co, ret, ifname, user_data); + /* Invoke callback function */ + if (func) + func(co, ret, ifname, user_data); - return TCORE_RETURN_SUCCESS; + return TCORE_RETURN_SUCCESS; + } + } else { + dbg("DEACTIVATE"); } - } /* HAL Operations */