aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2024-04-04 13:38:01 +0000
committerDan Williams <dan@bigw.org>2024-04-12 01:17:14 +0000
commit3fe9bd183bc67f76bb312e912c1524a86d2bb9be (patch)
treef5972898db2eea117c2db15a36a94e5d24c825ce /src
parent79b5b480ba22b5a5b1380005b3fed3fc3828dd2b (diff)
broadband-modem-hso: don't assume GPS control port always exists
Diffstat (limited to 'src')
-rw-r--r--src/plugins/option/mm-broadband-modem-hso.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/plugins/option/mm-broadband-modem-hso.c b/src/plugins/option/mm-broadband-modem-hso.c
index 308991b5..02cea99a 100644
--- a/src/plugins/option/mm-broadband-modem-hso.c
+++ b/src/plugins/option/mm-broadband-modem-hso.c
@@ -513,9 +513,19 @@ disable_location_gathering (MMIfaceModemLocation *self,
}
if (stop_gps) {
+ MMPortSerialAt *gps_control;
+
/* We enable continuous GPS fixes with AT_OGPS=0 */
+ gps_control = mm_base_modem_peek_port_gps_control (MM_BASE_MODEM (self));
+ if (!gps_control) {
+ g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "Cannot stop GPS: no control port");
+ g_object_unref (task);
+ return;
+ }
+
mm_base_modem_at_command_full (MM_BASE_MODEM (self),
- mm_base_modem_peek_port_gps_control (MM_BASE_MODEM (self)),
+ gps_control,
"_OGPS=0",
3,
FALSE,
@@ -617,9 +627,19 @@ parent_enable_location_gathering_ready (MMIfaceModemLocation *_self,
}
if (start_gps) {
+ MMPortSerialAt *gps_control;
+
/* We enable continuous GPS fixes with AT_OGPS=2 */
+ gps_control = mm_base_modem_peek_port_gps_control (MM_BASE_MODEM (self));
+ if (!gps_control) {
+ g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "Cannot start GPS: no control port");
+ g_object_unref (task);
+ return;
+ }
+
mm_base_modem_at_command_full (MM_BASE_MODEM (self),
- mm_base_modem_peek_port_gps_control (MM_BASE_MODEM (self)),
+ gps_control,
"_OGPS=2",
3,
FALSE,