Loading drivers/soc/qcom/service-locator.c +23 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #define QMI_SERVREG_LOC_SERVER_INITIAL_TIMEOUT 2000 #define QMI_SERVREG_LOC_SERVER_TIMEOUT 2000 #define INITIAL_TIMEOUT 100000 #define LOCATOR_SERVICE_TIMEOUT 300000 #define LOCATOR_NOT_PRESENT 0 #define LOCATOR_PRESENT 1 Loading Loading @@ -244,13 +245,20 @@ static int service_locator_send_msg(struct pd_qmi_client_data *pd) static int init_service_locator(void) { int rc = 0; static bool service_timedout; mutex_lock(&service_init_mutex); rc = mutex_lock_interruptible(&service_init_mutex); if (rc) return rc; if (locator_status == LOCATOR_NOT_PRESENT) { pr_err("Service Locator not enabled\n"); rc = -ENODEV; goto inited; } if (service_timedout) { rc = -ETIME; goto inited; } if (service_inited) goto inited; Loading @@ -271,7 +279,20 @@ static int init_service_locator(void) SERVREG_LOC_SERVICE_VERS_V01, SERVREG_LOC_SERVICE_INSTANCE_ID); wait_for_completion(&service_locator.service_available); rc = wait_for_completion_interruptible_timeout( &service_locator.service_available, msecs_to_jiffies(LOCATOR_SERVICE_TIMEOUT)); if (rc < 0) { pr_err("Wait for locator service interrupted by signal\n"); goto inited; } if (!rc) { pr_err("%s: wait for locator service timed out\n", __func__); service_timedout = true; rc = -ETIME; goto inited; } service_inited = true; mutex_unlock(&service_init_mutex); pr_info("Service locator initialized\n"); Loading Loading
drivers/soc/qcom/service-locator.c +23 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #define QMI_SERVREG_LOC_SERVER_INITIAL_TIMEOUT 2000 #define QMI_SERVREG_LOC_SERVER_TIMEOUT 2000 #define INITIAL_TIMEOUT 100000 #define LOCATOR_SERVICE_TIMEOUT 300000 #define LOCATOR_NOT_PRESENT 0 #define LOCATOR_PRESENT 1 Loading Loading @@ -244,13 +245,20 @@ static int service_locator_send_msg(struct pd_qmi_client_data *pd) static int init_service_locator(void) { int rc = 0; static bool service_timedout; mutex_lock(&service_init_mutex); rc = mutex_lock_interruptible(&service_init_mutex); if (rc) return rc; if (locator_status == LOCATOR_NOT_PRESENT) { pr_err("Service Locator not enabled\n"); rc = -ENODEV; goto inited; } if (service_timedout) { rc = -ETIME; goto inited; } if (service_inited) goto inited; Loading @@ -271,7 +279,20 @@ static int init_service_locator(void) SERVREG_LOC_SERVICE_VERS_V01, SERVREG_LOC_SERVICE_INSTANCE_ID); wait_for_completion(&service_locator.service_available); rc = wait_for_completion_interruptible_timeout( &service_locator.service_available, msecs_to_jiffies(LOCATOR_SERVICE_TIMEOUT)); if (rc < 0) { pr_err("Wait for locator service interrupted by signal\n"); goto inited; } if (!rc) { pr_err("%s: wait for locator service timed out\n", __func__); service_timedout = true; rc = -ETIME; goto inited; } service_inited = true; mutex_unlock(&service_init_mutex); pr_info("Service locator initialized\n"); Loading