summaryrefslogtreecommitdiffstats
path: root/wcnss-service/wcnss_qmi_client.c
diff options
context:
space:
mode:
Diffstat (limited to 'wcnss-service/wcnss_qmi_client.c')
-rw-r--r--wcnss-service/wcnss_qmi_client.c125
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