diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2015-12-14 04:54:54 -0800 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2015-12-14 04:54:54 -0800 |
commit | e001fb1fac14e6b10fbbada1272657ba49386542 (patch) | |
tree | c57cc850b266b2b7075cd65c69b27eed99c7b752 | |
parent | 3202921889a62a3d5adb9cf936ee6c5e631d9506 (diff) | |
parent | 436d865ecae08f4e6fb45da257de2bb8cc0daf7c (diff) | |
download | android_hardware_qcom_wlan-e001fb1fac14e6b10fbbada1272657ba49386542.tar.gz android_hardware_qcom_wlan-e001fb1fac14e6b10fbbada1272657ba49386542.tar.bz2 android_hardware_qcom_wlan-e001fb1fac14e6b10fbbada1272657ba49386542.zip |
Promotion of wlan-aosp.lnx.1.0-00003.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
871051 Ia5c37ba8e86261c5e912c83f9988124b4355c5ec wcnss_service: Migrate from QMI to QCCI
I8f0915aae5a54b5dd63433d1c39c835e55b4cd69 Add LOCAL_ADDITIONAL_DEPENDENCIES to sanitized kernel he
948124 I46efad354810ca3cab0adb96bcf1ace51432b02b WiFi-HAL: GSCAN- Allow more than max_channels per bucket
940194 I6504ddc89ba65d4ed0e9437a79039f06bd44c55b Wifi-HAL: Free the nlmsg after receiving the response
Change-Id: If0f80b76c727f67359c19a30a6691058b30834e1
CRs-Fixed: 871051, 948124, 940194
-rw-r--r-- | qcwcn/wifi_hal/Android.mk | 4 | ||||
-rw-r--r-- | qcwcn/wifi_hal/cpp_bindings.cpp | 1 | ||||
-rw-r--r-- | qcwcn/wifi_hal/gscan.cpp | 12 | ||||
-rw-r--r-- | wcnss-service/Android.mk | 7 | ||||
-rw-r--r-- | wcnss-service/wcnss_qmi_client.c | 125 |
5 files changed, 22 insertions, 127 deletions
diff --git a/qcwcn/wifi_hal/Android.mk b/qcwcn/wifi_hal/Android.mk index 5aa9ec4..32e1b69 100644 --- a/qcwcn/wifi_hal/Android.mk +++ b/qcwcn/wifi_hal/Android.mk @@ -32,6 +32,8 @@ LOCAL_C_INCLUDES += \ $(TARGET_OUT_HEADERS)/libwpa_client \ $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include +LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr + LOCAL_SRC_FILES := \ wifi_hal.cpp \ common.cpp \ @@ -84,6 +86,8 @@ LOCAL_C_INCLUDES += \ $(TARGET_OUT_HEADERS)/libwpa_client \ $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include +LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr + LOCAL_SRC_FILES := \ wifi_hal.cpp \ common.cpp \ diff --git a/qcwcn/wifi_hal/cpp_bindings.cpp b/qcwcn/wifi_hal/cpp_bindings.cpp index 4b6db49..37e7e78 100644 --- a/qcwcn/wifi_hal/cpp_bindings.cpp +++ b/qcwcn/wifi_hal/cpp_bindings.cpp @@ -631,6 +631,7 @@ int WifiCommand::requestResponse(WifiRequest& request) { } out: nl_cb_put(cb); + mMsg.destroy(); return err; } diff --git a/qcwcn/wifi_hal/gscan.cpp b/qcwcn/wifi_hal/gscan.cpp index c7a43e4..8ae7103 100644 --- a/qcwcn/wifi_hal/gscan.cpp +++ b/qcwcn/wifi_hal/gscan.cpp @@ -2230,14 +2230,14 @@ wifi_error GScanCommand::validateGscanConfig(wifi_scan_cmd_params params) GSCAN_REPORT_EVENT1, GSCAN_REPORT_EVENT2); return WIFI_ERROR_INVALID_ARGS; } - if (params.buckets[i].num_channels < GSCAN_MIN_CHANNELS - || params.buckets[i].num_channels > (int)MAX_CHANNELS) { - ALOGE("%s: buckets[%d].num_channels is out of valid range : %d", - __func__, i, params.buckets[i].num_channels); - ALOGI("Valid Range : Minimum channels : %d", GSCAN_MIN_CHANNELS); - ALOGI(" : Maximum channels : %d", (int)MAX_CHANNELS); + if (params.buckets[i].num_channels < GSCAN_MIN_CHANNELS) { + ALOGI("Number of channels :%d is less than Minimum channels : %d", + params.buckets[i].num_channels, GSCAN_MIN_CHANNELS); return WIFI_ERROR_INVALID_ARGS; } + if (params.buckets[i].num_channels > (int)MAX_CHANNELS) + ALOGI("Number of channels :%d is more than Maximum channels : %d", + params.buckets[i].num_channels, (int)MAX_CHANNELS); for(int j=0; j<params.buckets[i].num_channels; j++) { diff --git a/wcnss-service/Android.mk b/wcnss-service/Android.mk index 747195b..a8c89a1 100644 --- a/wcnss-service/Android.mk +++ b/wcnss-service/Android.mk @@ -6,16 +6,15 @@ 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-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 libidl 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 ef2cf62..441218d 100644 --- a/wcnss-service/wcnss_qmi_client.c +++ b/wcnss-service/wcnss_qmi_client.c @@ -30,7 +30,6 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #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> @@ -46,120 +45,23 @@ 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; - } + 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); - /* 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){ + if(qmi_client_err != QMI_NO_ERR) + { ALOGE("%s: Error while Initializing QMI Client: %d", - __func__, qmi_client_err); + __func__, qmi_client_err); goto exit; } @@ -167,11 +69,6 @@ int wcnss_init_qmi() 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; } @@ -236,12 +133,6 @@ void wcnss_qmi_deinit() __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 |