diff options
Diffstat (limited to 'wcnss-service/wcnss_qmi_client.c')
-rw-r--r-- | wcnss-service/wcnss_qmi_client.c | 125 |
1 files changed, 8 insertions, 117 deletions
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 |