Promotion of wlan-aosp.lnx.2.0-00030.

CRs      Change ID                                   Subject
--------------------------------------------------------------------------------------------------------------
871051   Ia5c37ba8e86261c5e912c83f9988124b4355c5ec   wcnss_service: Migrate from QMI to QCCI

Change-Id: I8433a477c3601dbf465ddbb60ba61d7a83494152
CRs-Fixed: 871051
diff --git a/wcnss-service/Android.mk b/wcnss-service/Android.mk
index 1e54dc9..74199f0 100644
--- a/wcnss-service/Android.mk
+++ b/wcnss-service/Android.mk
@@ -6,16 +6,15 @@
 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-framework/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_C_INCLUDES += $(TARGET_OUT_HEADERS)/qmi/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_SHARED_LIBRARIES += libqmiservices libqmi_cci
 LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/libmdmdetect/inc
 LOCAL_SHARED_LIBRARIES += libmdmdetect
 endif #TARGET_USES_QCOM_WCNSS_QMI
diff --git a/wcnss-service/wcnss_qmi_client.c b/wcnss-service/wcnss_qmi_client.c
index b9f94f7..3e1fb0e 100644
--- a/wcnss-service/wcnss_qmi_client.c
+++ b/wcnss-service/wcnss_qmi_client.c
@@ -30,7 +30,6 @@
 #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>
@@ -43,118 +42,19 @@
 #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_client_os_params dms_os_params;
 
-	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);
-	}
+	memset(&dms_os_params, 0, sizeof(qmi_client_os_params));
+	qmi_client_err = qmi_client_init_instance(dms_get_service_object_v01(),
+			QMI_CLIENT_INSTANCE_ANY, NULL, NULL,
+			&dms_os_params, 5000, &dms_qmi_client);
 
 	if (qmi_client_err != QMI_NO_ERR){
 		ALOGE("%s: Error while Initializing QMI Client: %d",
@@ -166,11 +66,6 @@
 	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;
 }
 
@@ -235,12 +130,6 @@
 			__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