Revert "Add wcnss-service for Android One Seed (msm8916/8909)"

This reverts commit e7d3d4d159152380a7bb2c4610dcb3b51d8b3a11.

Change-Id: I46a17c4400ce510e4d9c804b6b31b736af6edc18
diff --git a/qcwcn/wcnss-service/Android.mk b/qcwcn/wcnss-service/Android.mk
deleted file mode 100644
index 39cdc57..0000000
--- a/qcwcn/wcnss-service/Android.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-ifneq ($(filter msm8916 msm8909,$(TARGET_BOARD_PLATFORM)),)
-ifneq (,$(filter arm aarch64 arm64, $(TARGET_ARCH)))
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE := wcnss_service
-LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/common/inc/
-LOCAL_SRC_FILES := wcnss_service.c
-ifeq ($(strip $(TARGET_USES_QCOM_WCNSS_QMI)),true)
-LOCAL_CFLAGS += -DWCNSS_QMI
-LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/qmi/inc
-LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/qmi/services
-LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/qmi/platform
-LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/qmi/src
-LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/qmi/core/lib/inc
-LOCAL_SRC_FILES += wcnss_qmi_client.c
-endif #TARGET_USES_QCOM_WCNSS_QMI
-LOCAL_SHARED_LIBRARIES := libc libcutils libutils liblog
-ifeq ($(strip $(TARGET_USES_QCOM_WCNSS_QMI)),true)
-LOCAL_SHARED_LIBRARIES += libqmiservices libqmi libqcci_legacy libqmi_client_qmux
-LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/libmdmdetect/inc
-LOCAL_SHARED_LIBRARIES += libmdmdetect
-endif #TARGET_USES_QCOM_WCNSS_QMI
-LOCAL_MODULE_TAGS := optional
-LOCAL_CFLAGS += -Wall
-include $(BUILD_EXECUTABLE)
-endif
-endif # ifneq ($(filter msm8916 msm8909,$(TARGET_BOARD_PLATFORM)),)
diff --git a/qcwcn/wcnss-service/wcnss_qmi_client.c b/qcwcn/wcnss-service/wcnss_qmi_client.c
deleted file mode 100644
index 28acce1..0000000
--- a/qcwcn/wcnss-service/wcnss_qmi_client.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*--------------------------------------------------------------------------
-Copyright (c) 2013, The Linux Foundation. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of The Linux Foundation nor
-      the names of its contributors may be used to endorse or promote
-      products derived from this software without specific prior written
-      permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------*/
-
-#ifdef WCNSS_QMI
-#define LOG_TAG "wcnss_qmi"
-#include <cutils/log.h>
-#include "wcnss_qmi_client.h"
-#include "qmi.h"
-#include "qmi_client.h"
-#include "device_management_service_v01.h"
-#include <cutils/properties.h>
-
-#define SUCCESS 0
-#define FAILED -1
-
-#define WLAN_ADDR_SIZE   6
-#define DMS_QMI_TIMEOUT (2000)
-
-static qmi_client_type dms_qmi_client;
-static int qmi_handle;
-static int dms_init_done = FAILED;
-
-/* Android system property for fetching the modem type */
-#define QMI_UIM_PROPERTY_BASEBAND               "ro.baseband"
-
-/* Android system property values for various modem types */
-#define QMI_UIM_PROP_BASEBAND_VALUE_SVLTE_1     "svlte1"
-#define QMI_UIM_PROP_BASEBAND_VALUE_SVLTE_2A    "svlte2a"
-#define QMI_UIM_PROP_BASEBAND_VALUE_CSFB        "csfb"
-#define QMI_UIM_PROP_BASEBAND_VALUE_SGLTE       "sglte"
-#define QMI_UIM_PROP_BASEBAND_VALUE_SGLTE2      "sglte2"
-#define QMI_UIM_PROP_BASEBAND_VALUE_MSM         "msm"
-#define QMI_UIM_PROP_BASEBAND_VALUE_APQ         "apq"
-#define QMI_UIM_PROP_BASEBAND_VALUE_MDMUSB      "mdm"
-#define QMI_UIM_PROP_BASEBAND_VALUE_DSDA        "dsda"
-#define QMI_UIM_PROP_BASEBAND_VALUE_DSDA_2      "dsda2"
-
-static char *dms_find_modem_port( char *prop_value_ptr)
-{
-	char *qmi_modem_port_ptr = QMI_PORT_RMNET_0;
-
-	/* Sanity check */
-	if (prop_value_ptr == NULL) {
-		ALOGE("%s", "NULL prop_value_ptr, using default port",
-			__func__);
-		return qmi_modem_port_ptr;
-	}
-
-	ALOGE("%s: Baseband property value read: %s", __func__,
-			prop_value_ptr);
-
-	/* Map the port based on the read property */
-	if ((strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_SVLTE_1)  == 0) ||
-		(strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_SVLTE_2A) == 0) ||
-		(strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_CSFB) == 0)) {
-		qmi_modem_port_ptr = QMI_PORT_RMNET_SDIO_0;
-	} else if ((strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_MDMUSB) == 0) ||
-		(strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_SGLTE2) == 0)) {
-		qmi_modem_port_ptr = QMI_PORT_RMNET_USB_0;
-	} else if ((strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_MSM) == 0) ||
-		(strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_APQ) == 0) ||
-		(strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_SGLTE) == 0)) {
-		qmi_modem_port_ptr = QMI_PORT_RMNET_0;
-	} else if (strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_DSDA) == 0) {
-		/* If it is a DSDA configuration, use the existing API */
-		qmi_modem_port_ptr = (char *)QMI_PLATFORM_INTERNAL_USE_PORT_ID;
-	} else if (strcmp(prop_value_ptr,
-		QMI_UIM_PROP_BASEBAND_VALUE_DSDA_2) == 0) {
-		/* If it is a DSDA2 configuration, use the existing API */
-		qmi_modem_port_ptr = (char *)QMI_PLATFORM_INTERNAL_USE_PORT_ID;
-	} else {
-		ALOGE("%s: Property value does not match,using default port:%s",
-			__func__, qmi_modem_port_ptr);
-	}
-
-	ALOGE("%s: QMI port found for modem: %s", __func__, qmi_modem_port_ptr);
-
-	return qmi_modem_port_ptr;
-}
-
-int wcnss_init_qmi()
-{
-	qmi_client_error_type qmi_client_err;
-	qmi_idl_service_object_type dms_service;
-	char prop_value[PROPERTY_VALUE_MAX];
-	char *qmi_modem_port = NULL;
-
-	ALOGE("%s: Initialize wcnss QMI Interface", __func__);
-
-	qmi_handle = qmi_init(NULL, NULL);
-	if (qmi_handle < 0) {
-		ALOGE("%s: Error while initializing qmi", __func__);
-		return FAILED;
-	}
-
-	dms_service = dms_get_service_object_v01();
-	if (dms_service == NULL) {
-		ALOGE("%s: Not able to get the service handle", __func__);
-		goto exit;
-	}
-
-	/* Find out the modem type */
-	memset(prop_value, 0x00, sizeof(prop_value));
-	property_get(QMI_UIM_PROPERTY_BASEBAND, prop_value, "");
-
-	/* Map to a respective QMI port */
-	qmi_modem_port = dms_find_modem_port(prop_value);
-	if (qmi_modem_port == NULL) {
-		ALOGE("%s: qmi_modem_port is NULL", __func__);
-		goto exit;
-	}
-
-	qmi_client_err = qmi_client_init((const char *)qmi_modem_port,
-			dms_service, NULL, dms_service, &dms_qmi_client);
-
-	if ((qmi_client_err == QMI_PORT_NOT_OPEN_ERR) &&
-			(strcmp(qmi_modem_port, QMI_PORT_RMNET_0) == 0)){
-		ALOGE("%s: Retrying with port RMNET_1: %d",
-				__func__, qmi_client_err);
-		qmi_modem_port = QMI_PORT_RMNET_1;
-		qmi_client_err = qmi_client_init((const char *)qmi_modem_port,
-			       dms_service, NULL, dms_service, &dms_qmi_client);
-	}
-
-	if (qmi_client_err != QMI_NO_ERR){
-		ALOGE("%s: Error while Initializing QMI Client: %d",
-			__func__, qmi_client_err);
-		goto exit;
-	}
-
-	dms_init_done = SUCCESS;
-	return SUCCESS;
-
-exit:
-	qmi_handle = qmi_release(qmi_handle);
-	if ( qmi_handle < 0 )    {
-		ALOGE("%s: Error while releasing qmi %d",
-			 __func__, qmi_handle);
-	}
-	return FAILED;
-}
-
-int wcnss_qmi_get_wlan_address(unsigned char *pBdAddr)
-{
-	qmi_client_error_type qmi_client_err;
-	dms_get_mac_address_req_msg_v01 addr_req;
-	dms_get_mac_address_resp_msg_v01 addr_resp;
-
-	if ((dms_init_done == FAILED) || (pBdAddr == NULL)) {
-		ALOGE("%s: DMS init fail or pBdAddr is NULL", __func__);
-		return FAILED;
-	}
-
-	/* clear the request content */
-	memset(&addr_req, 0, sizeof(addr_req));
-
-	/*Request to get the WLAN MAC address */
-	addr_req.device = DMS_DEVICE_MAC_WLAN_V01;
-
-	qmi_client_err = qmi_client_send_msg_sync(dms_qmi_client,
-		QMI_DMS_GET_MAC_ADDRESS_REQ_V01, &addr_req, sizeof(addr_req),
-		&addr_resp, sizeof(addr_resp), DMS_QMI_TIMEOUT);
-
-	if (qmi_client_err != QMI_NO_ERR){
-		ALOGE("%s: Failed to get Rsp from Modem Error:%d",
-				__func__, qmi_client_err);
-		return FAILED;
-	}
-
-	ALOGE("%s: Mac Address_valid: %d Mac Address Len: %d",
-				__func__, addr_resp.mac_address_valid,
-				addr_resp.mac_address_len);
-
-	if (addr_resp.mac_address_valid &&
-		(addr_resp.mac_address_len == WLAN_ADDR_SIZE)) {
-		memcpy(pBdAddr, addr_resp.mac_address,
-			addr_resp.mac_address_len);
-		ALOGE("%s: Succesfully Read WLAN MAC Address", __func__);
-		return SUCCESS;
-	} else {
-		ALOGE("%s: Failed to Read WLAN MAC Address", __func__);
-		return FAILED;
-	}
-}
-
-void wcnss_qmi_deinit()
-{
-	qmi_client_error_type qmi_client_err;
-
-	ALOGE("%s: Deinitialize wcnss QMI Interface", __func__);
-
-	if (dms_init_done == FAILED) {
-		ALOGE("%s: DMS Service was not Initialized", __func__);
-		return;
-	}
-
-	qmi_client_err = qmi_client_release(dms_qmi_client);
-
-	if (qmi_client_err != QMI_NO_ERR){
-		ALOGE("%s: Error while releasing qmi_client: %d",
-			__func__, qmi_client_err);
-	}
-
-	qmi_handle = qmi_release(qmi_handle);
-	if (qmi_handle < 0)    {
-		ALOGE("%s: Error while releasing qmi %d",
-			__func__, qmi_handle);
-	}
-
-	dms_init_done = FAILED;
-}
-#endif
diff --git a/qcwcn/wcnss-service/wcnss_qmi_client.h b/qcwcn/wcnss-service/wcnss_qmi_client.h
deleted file mode 100644
index 51fefac..0000000
--- a/qcwcn/wcnss-service/wcnss_qmi_client.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*--------------------------------------------------------------------------
-Copyright (c) 2013, The Linux Foundation. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of The Linux Foundation nor
-      the names of its contributors may be used to endorse or promote
-      products derived from this software without specific prior written
-      permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------*/
-#if defined(__BIONIC_FORTIFY)
-#include <sys/system_properties.h>
-#endif
-
-#define MODEM_BASEBAND_PROPERTY   "ro.baseband"
-#if defined(__BIONIC_FORTIFY)
-#define MODEM_BASEBAND_PROPERTY_SIZE  PROP_VALUE_MAX
-#else
-#define MODEM_BASEBAND_PROPERTY_SIZE  10
-#endif
-#define MODEM_BASEBAND_VALUE_APQ  "apq"
-
-#ifdef WCNSS_QMI
-#ifndef WCNSS_QMI_CLIENT_H
-#define WCNSS_QMI_CLIENT_H
-
-int wcnss_init_qmi(void);
-int wcnss_qmi_get_wlan_address(unsigned char *pBdAddr);
-void wcnss_qmi_deinit(void);
-
-#endif
-#endif
diff --git a/qcwcn/wcnss-service/wcnss_service.c b/qcwcn/wcnss-service/wcnss_service.c
deleted file mode 100644
index 9244ea0..0000000
--- a/qcwcn/wcnss-service/wcnss_service.c
+++ /dev/null
@@ -1,582 +0,0 @@
-/*--------------------------------------------------------------------------
-Copyright (c) 2013, The Linux Foundation. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of The Linux Foundation nor
-      the names of its contributors may be used to endorse or promote
-      products derived from this software without specific prior written
-      permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------*/
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <dirent.h>
-#include <ctype.h>
-#include <grp.h>
-#include <utime.h>
-#include <sys/stat.h>
-#include <sys/sendfile.h>
-#define LOG_TAG "wcnss_service"
-#include <cutils/log.h>
-#include <cutils/properties.h>
-#ifdef WCNSS_QMI
-#include "wcnss_qmi_client.h"
-#include "mdm_detect.h"
-#endif
-
-#define SUCCESS 0
-#define FAILED -1
-#define BYTE_0  0
-#define BYTE_1  8
-#define BYTE_2  16
-#define BYTE_3  24
-
-#define MAX_FILE_LENGTH    (1024)
-#define WCNSS_MAX_CMD_LEN  (128)
-
-/* control messages to wcnss driver */
-#define WCNSS_USR_CTRL_MSG_START    0x00000000
-#define WCNSS_USR_SERIAL_NUM        (WCNSS_USR_CTRL_MSG_START + 1)
-#define WCNSS_USR_HAS_CAL_DATA      (WCNSS_USR_CTRL_MSG_START + 2)
-#define WCNSS_USR_WLAN_MAC_ADDR     (WCNSS_USR_CTRL_MSG_START + 3)
-
-
-#define WCNSS_CAL_CHUNK (3*1024)
-#define WCNSS_CAL_FILE  "/data/misc/wifi/WCNSS_qcom_wlan_cal.bin"
-#define WCNSS_FACT_FILE "/data/misc/wifi/WCN_FACTORY"
-#define WCNSS_DEVICE    "/dev/wcnss_wlan"
-#define WCNSS_CTRL      "/dev/wcnss_ctrl"
-#define WLAN_INI_FILE_DEST   "/data/misc/wifi/WCNSS_qcom_cfg.ini"
-#define WLAN_INI_FILE_SOURCE "/system/etc/wifi/WCNSS_qcom_cfg.ini"
-#define WCNSS_HAS_CAL_DATA\
-		"/sys/module/wcnsscore/parameters/has_calibrated_data"
-#define WLAN_DRIVER_ATH_DEFAULT_VAL "0"
-
-#define ASCII_A		65
-#define ASCII_a		97
-#define ASCII_0		48
-#define HEXA_A		10
-#define HEX_BASE		16
-
-#ifdef WCNSS_QMI
-#define WLAN_ADDR_SIZE   6
-unsigned char wlan_nv_mac_addr[WLAN_ADDR_SIZE];
-#define MAC_ADDR_ARRAY(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
-#define MAC_ADDRESS_STR "%02x:%02x:%02x:%02x:%02x:%02x"
-
-/* As we Want to write in 00:0a:f5:11:22:33 format in sysfs file
-   so taking mac length as 12 char + 5 for ":" + NULL
- */
-#define WLAN_MAC_ADDR_STRING 18
-#endif
-
-int wcnss_write_cal_data(int fd_dev)
-{
-	int rcount = 0;
-	int size = 0;
-	int rc = 0;
-	int wcount = 0;
-	int fd_file;
-	struct stat st;
-
-	char buf[WCNSS_CAL_CHUNK];
-
-	ALOGI("wcnss_write_cal_data trying to write cal");
-
-	rc = stat(WCNSS_CAL_FILE, &st);
-	if (rc < 0) {
-		ALOGE("Failed to stat cal file : %s",
-				strerror(errno));
-		goto exit;
-	}
-
-	size = st.st_size;
-
-	fd_file = open(WCNSS_CAL_FILE, O_RDONLY);
-	if (fd_file < 0) {
-		ALOGE("cal file doesn't exist: %s",
-				strerror(errno));
-		rc = fd_file;
-		goto exit;
-	}
-
-	/* write the file size first, so that platform driver knows
-	 * when it recieves the full data */
-	wcount = write(fd_dev, (void *)&size, 4);
-	if (wcount != 4) {
-		ALOGE("Failed to write to wcnss device : %s",
-				strerror(errno));
-		rc = wcount;
-		goto exit_close;
-	}
-
-	do {
-		rcount = read(fd_file, (void *)buf, sizeof(buf));
-		if (rcount < 0) {
-			ALOGE("Failed to read from cal file ; %s",
-					strerror(errno));
-			rc = rcount;
-			goto exit_remove;
-		}
-
-		if (!rcount)
-			break;
-
-		wcount = write(fd_dev, buf, rcount);
-		if (wcount < 0) {
-			ALOGE("Failed to write to wcnss device : %s",
-				strerror(errno));
-			rc = wcount;
-			goto exit_close;
-		}
-
-	} while (rcount);
-	close(fd_file);
-
-	return SUCCESS;
-
-exit_remove:
-	close(fd_file);
-	remove("WCNSS_CAL_FILE");
-	return rc;
-
-exit_close:
-	close(fd_file);
-
-exit:
-	return rc;
-}
-
-
-int wcnss_read_and_store_cal_data(int fd_dev)
-{
-	int rcount = 0;
-	int wcount = 0;
-	int fd_file = -1;
-	int rc = 0;
-
-	char buf[WCNSS_CAL_CHUNK];
-
-	ALOGI("wcnss_read_and_store_cal_data trying to read cal");
-
-	do {
-		/* wait on this read until data comes from fw */
-		rcount = read(fd_dev, (void *)buf, sizeof(buf));
-		if (rcount < 0) {
-			ALOGE("Failed to read from wcnss device : %s",
-					strerror(errno));
-			rc = rcount;
-			goto exit;
-		}
-
-		/* truncate the file only if there is fw data, this read
-		 * may never return if the fw decides that no more cal is
-		 * required; and the data we have now is good enough.
-		 */
-		if (fd_file < 0) {
-			fd_file = open(WCNSS_CAL_FILE, O_WRONLY
-					| O_CREAT | O_TRUNC, 0664);
-			if (fd_file < 0) {
-				ALOGE("Failed to open cal file : %s",
-						strerror(errno));
-				rc = fd_file;
-				goto exit;
-			}
-		}
-
-		if (!rcount)
-			break;
-
-		wcount = write(fd_file, buf, rcount);
-		if (wcount < 0) {
-			ALOGE("Failed to write to cal file : %s",
-				strerror(errno));
-			rc = wcount;
-			goto exit_remove;
-		}
-
-	} while (rcount);
-
-	close(fd_file);
-
-	return SUCCESS;
-
-exit_remove:
-	close(fd_file);
-	remove(WCNSS_CAL_FILE);
-
-exit:
-	return rc;
-}
-
-
-void find_full_path(char *cur_dir, char *file_to_find, char *full_path)
-{
-	DIR *dir;
-	struct stat st;
-	struct dirent *dr;
-	char cwd[1024];
-	int rc;
-
-	chdir(cur_dir);
-
-	dir = opendir(".");
-
-	if (dir != NULL) {
-		while ((dr = readdir(dir))) {
-
-			rc = lstat(dr->d_name, &st);
-			if (rc < 0) {
-				ALOGE("lstat failed %s", strerror(errno));
-				return;
-			}
-			if (S_ISDIR(st.st_mode)) {
-				if ((strcmp(dr->d_name, ".")) &&
-					(strcmp(dr->d_name, ".."))) {
-				find_full_path(dr->d_name,
-						file_to_find, full_path);
-				}
-			} else if (!strcmp(file_to_find, dr->d_name)) {
-				getcwd(cwd, sizeof(cwd));
-				snprintf(full_path, MAX_FILE_LENGTH, "%s/%s",
-					cwd, file_to_find);
-			}
-		}
-		closedir(dir);
-	}
-
-	chdir("..");
-}
-
-void setup_wlan_config_file()
-{
-	int rfd;
-	int wfd;
-	struct stat st_dest, st_src;
-	int rc_dest;
-	int rc;
-	struct group *grp;
-	struct utimbuf new_time;
-
-	rc = stat(WLAN_INI_FILE_SOURCE, &st_src);
-	if (rc != 0) {
-		ALOGE("source file do not exist %s", WLAN_INI_FILE_SOURCE);
-		return;
-	}
-
-	rc_dest = stat(WLAN_INI_FILE_DEST, &st_dest);
-	if (rc_dest == 0 && st_dest.st_size &&
-			(st_dest.st_mtime > st_src.st_mtime)) {
-		ALOGE("wlan ini file exists %s and is newer than %s",
-				WLAN_INI_FILE_DEST, WLAN_INI_FILE_SOURCE);
-		goto out_nocopy;
-	}
-
-	rfd = open(WLAN_INI_FILE_SOURCE, O_RDONLY);
-	if (rfd < 0) {
-		ALOGE("Failed to open ini source file: %s", strerror(errno));
-		return;
-	}
-
-	wfd = open(WLAN_INI_FILE_DEST, O_WRONLY | O_CREAT | O_TRUNC, 0660);
-	if (wfd < 0) {
-		ALOGE("Failed to open ini dest file: %s", strerror(errno));
-		close(rfd);
-		return;
-	}
-
-	rc = sendfile(wfd, rfd, 0, st_src.st_size);
-	if (rc != st_src.st_size) {
-		ALOGE("Failed to copy ini file: %s", strerror(errno));
-		goto out;
-	}
-
-	new_time.actime = st_src.st_atime;
-	new_time.modtime = st_src.st_mtime;
-
-	rc = utime(WLAN_INI_FILE_DEST, &new_time);
-	if (rc != 0)
-		ALOGE("could not preserve the timestamp %s", strerror(errno));
-
-	grp = getgrnam("wifi");
-	if (grp != NULL) {
-		rc = chown(WLAN_INI_FILE_DEST, -1, grp->gr_gid);
-		if (rc != 0)
-			ALOGE("Failed change group of ini file %s", strerror(errno));
-	} else {
-			ALOGE("Failed to get group wifi %s", strerror(errno));
-	}
-
-	property_set("wlan.driver.config", WLAN_INI_FILE_DEST);
-
-out:
-	close(rfd);
-	close(wfd);
-	return;
-
-out_nocopy:
-	property_set("wlan.driver.config", WLAN_INI_FILE_DEST);
-	return;
-}
-unsigned int convert_string_to_hex(char* string)
-{
-	int idx = 0;
-	unsigned long int hex_num = 0;
-	for(idx; string[idx] != '\0'; idx++){
-		if(isalpha(string[idx])) {
-			if(string[idx] >='a' && string[idx] <='f') {
-				hex_num = hex_num * HEX_BASE + ((int)string[idx]
-					       - ASCII_a + HEXA_A);
-			} else if ( string[idx] >='A' && string[idx] <='F') {
-				hex_num = hex_num * HEX_BASE + ((int)string[idx]
-						- ASCII_A + HEXA_A);
-			} else
-				hex_num = hex_num * HEX_BASE + (int)string[idx];
-		} else {
-			hex_num = hex_num * HEX_BASE + (string[idx]- ASCII_0);
-		}
-	}
-	hex_num = hex_num & 0xFFFFFFFF;
-	return hex_num;
-}
-
-
-void setup_wcnss_parameters(int *cal, int nv_mac_addr)
-{
-	char msg[WCNSS_MAX_CMD_LEN];
-	char serial[PROPERTY_VALUE_MAX];
-	int fd, rc, pos = 0;
-	struct stat st;
-	unsigned int serial_num = 0;
-
-	fd = open(WCNSS_CTRL, O_WRONLY);
-	if (fd < 0) {
-		ALOGE("Failed to open %s : %s", WCNSS_CTRL, strerror(errno));
-		return;
-	}
-
-	rc = property_get("ro.serialno", serial, "");
-	if (rc) {
-		serial_num = convert_string_to_hex(serial);
-		ALOGE("Serial Number is  %x", serial_num);
-
-		msg[pos++] = WCNSS_USR_SERIAL_NUM >> BYTE_1;
-		msg[pos++] = WCNSS_USR_SERIAL_NUM >> BYTE_0;
-		msg[pos++] = serial_num >> BYTE_3;
-		msg[pos++] = serial_num >> BYTE_2;
-		msg[pos++] = serial_num >> BYTE_1;
-		msg[pos++] = serial_num >> BYTE_0;
-
-		if (write(fd, msg, pos) < 0) {
-			ALOGE("Failed to write to %s : %s", WCNSS_CTRL,
-					strerror(errno));
-			goto fail;
-		}
-	}
-
-#ifdef WCNSS_QMI
-	if (SUCCESS == nv_mac_addr)
-	{
-		pos = 0;
-		msg[pos++] = WCNSS_USR_WLAN_MAC_ADDR >> BYTE_1;
-		msg[pos++] = WCNSS_USR_WLAN_MAC_ADDR >> BYTE_0;
-		msg[pos++] = wlan_nv_mac_addr[0];
-		msg[pos++] = wlan_nv_mac_addr[1];
-		msg[pos++] = wlan_nv_mac_addr[2];
-		msg[pos++] = wlan_nv_mac_addr[3];
-		msg[pos++] = wlan_nv_mac_addr[4];
-		msg[pos++] = wlan_nv_mac_addr[5];
-
-		ALOGI("WLAN MAC Addr:" MAC_ADDRESS_STR,
-			MAC_ADDR_ARRAY(wlan_nv_mac_addr));
-
-		if (write(fd, msg, pos) < 0) {
-			ALOGE("Failed to write to %s : %s", WCNSS_CTRL,
-						strerror(errno));
-			goto fail;
-		}
-	}
-#endif
-
-	pos = 0;
-	msg[pos++] = WCNSS_USR_HAS_CAL_DATA >> BYTE_1;
-	msg[pos++] = WCNSS_USR_HAS_CAL_DATA >> BYTE_0;
-
-	rc = stat(WCNSS_FACT_FILE, &st);
-	if (rc == 0) {
-		ALOGE("Factory file found, deleting cal file");
-		unlink(WCNSS_CAL_FILE);
-		goto fail_resp;
-	}
-
-	rc = stat(WCNSS_CAL_FILE, &st);
-	if (rc != 0) {
-		ALOGE("CAL file not found");
-		goto fail_resp;
-	}
-
-	/* has cal data */
-	msg[pos++] = 1;
-
-	if (write(fd, msg, pos) < 0) {
-		ALOGE("Failed to write to %s : %s", WCNSS_CTRL,
-				strerror(errno));
-		goto fail;
-	}
-
-	ALOGI("Correctly triggered cal file");
-	*cal = SUCCESS;
-	close(fd);
-	return;
-
-fail_resp:
-	msg[pos++] = 0;
-	if (write(fd, msg, pos) < 0)
-		ALOGE("Failed to write to %s : %s", WCNSS_CTRL,
-				strerror(errno));
-
-fail:
-	*cal = FAILED;
-	close(fd);
-	return;
-}
-
-void setup_wlan_driver_ath_prop()
-{
-	property_set("wlan.driver.ath", WLAN_DRIVER_ATH_DEFAULT_VAL);
-}
-
-#ifdef WCNSS_QMI
-int check_modem_compatability(struct dev_info *mdm_detect_info)
-{
-	char args[MODEM_BASEBAND_PROPERTY_SIZE] = {0};
-	int ret = 0;
-	/* Get the hardware property */
-	ret = property_get(MODEM_BASEBAND_PROPERTY, args, "");
-	if (ret > MODEM_BASEBAND_PROPERTY_SIZE) {
-		ALOGE("property [%s] has size [%d] that exceeds max [%d]",
-				MODEM_BASEBAND_PROPERTY, ret, MODEM_BASEBAND_PROPERTY_SIZE);
-		return 0;
-	}
-	/* This will check for the type of hardware, and if the
-	   hardware type needs external modem, it will check if the
-	   modem type is external*/
-	if(!strncmp(MODEM_BASEBAND_VALUE_APQ, args, 3)) {
-
-		for (ret = 0; ret < mdm_detect_info->num_modems; ret++) {
-			if (mdm_detect_info->mdm_list[ret].type == MDM_TYPE_EXTERNAL) {
-				ALOGE("Hardware supports external modem");
-				return 1;
-			}
-		}
-		ALOGE("Hardware does not support external modem");
-		return 0;
-	}
-	return 1;
-}
-#endif
-
-int main(int argc, char *argv[])
-{
-	int rc;
-	int fd_dev, ret_cal;
-	int nv_mac_addr = FAILED;
-#ifdef WCNSS_QMI
-	struct dev_info mdm_detect_info;
-	int nom = 0;
-#endif
-
-	setup_wlan_config_file();
-
-#ifdef WCNSS_QMI
-	/* Call ESOC API to get the number of modems.
-	   If the number of modems is not zero, only then proceed
-	   with the eap_proxy intialization.*/
-
-	nom = get_system_info(&mdm_detect_info);
-
-	if (nom > 0)
-		ALOGE("Failed to get system info, ret %d", nom);
-
-	if (mdm_detect_info.num_modems == 0) {
-		ALOGE("wcnss_service: No Modem support for this target"
-				" number of modems is %d", mdm_detect_info.num_modems);
-		goto nomodem;
-	}
-
-	ALOGE("wcnss_service: num_modems = %d", mdm_detect_info.num_modems);
-
-	if(!check_modem_compatability(&mdm_detect_info)) {
-		ALOGE("wcnss_service: Target does not have external modem");
-		goto nomodem;
-	}
-
-	/* initialize the DMS client and request the wlan mac address */
-
-	if (SUCCESS == wcnss_init_qmi()) {
-
-		rc = wcnss_qmi_get_wlan_address(wlan_nv_mac_addr);
-
-		if (rc == SUCCESS) {
-			nv_mac_addr = SUCCESS;
-			ALOGE("WLAN MAC Addr:" MAC_ADDRESS_STR,
-					MAC_ADDR_ARRAY(wlan_nv_mac_addr));
-		} else
-			ALOGE("Failed to Get MAC addr from modem");
-
-		wcnss_qmi_deinit();
-	}
-	else
-		ALOGE("Failed to Initialize wcnss QMI Interface");
-
-nomodem:
-#endif
-	setup_wcnss_parameters(&ret_cal, nv_mac_addr);
-
-	fd_dev = open(WCNSS_DEVICE, O_RDWR);
-	if (fd_dev < 0) {
-		ALOGE("Failed to open wcnss device : %s",
-				strerror(errno));
-		return fd_dev;
-	}
-
-	if (ret_cal != FAILED) {
-		rc = wcnss_write_cal_data(fd_dev);
-		if (rc != SUCCESS)
-			ALOGE("No cal data is written to WCNSS %d", rc);
-		else
-			ALOGE("Cal data is successfully written to WCNSS");
-	}
-
-	setup_wlan_driver_ath_prop();
-
-	rc = wcnss_read_and_store_cal_data(fd_dev);
-	if (rc != SUCCESS)
-		ALOGE("Failed to read and save cal data %d", rc);
-	else
-		ALOGI("Calibration data was successfull written to %s",
-			WCNSS_CAL_FILE);
-
-	close(fd_dev);
-
-	return rc;
-}