aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Schrock <steve.schrock@getcruise.com>2024-04-08 16:34:39 -0500
committerDenis Kenzior <denkenz@gmail.com>2024-04-08 17:13:27 -0500
commit6d7edaf5bc5a17f1c7974024b9c139a3fea6ac93 (patch)
tree2add827678896c8dcd984f19cdada156304419c7
parent296347f8a4f1c5809b6dfa36472931ad1f7ab266 (diff)
downloadofono-6d7edaf5bc5a17f1c7974024b9c139a3fea6ac93.tar.gz
qmimodem: Default embedded modems endpoint ID
Embedded QMI QRTR modems use an endpoint ID of 1. This will not be set by udevng, so gprs-context must handle this case.
-rw-r--r--drivers/qmimodem/gprs-context.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/drivers/qmimodem/gprs-context.c b/drivers/qmimodem/gprs-context.c
index fb2069020..335652520 100644
--- a/drivers/qmimodem/gprs-context.c
+++ b/drivers/qmimodem/gprs-context.c
@@ -376,21 +376,6 @@ static void qmi_gprs_context_bind_mux(struct ofono_gprs_context *gc)
} __attribute__((packed)) endpoint_info;
uint8_t u8;
- interface_number = ofono_modem_get_string(modem, "InterfaceNumber");
- if (!interface_number) {
- ofono_error("%s: Missing 'InterfaceNumber'",
- ofono_modem_get_path(modem));
- goto error;
- }
-
- if (l_safe_atox8(interface_number, &u8) < 0) {
- ofono_error("%s: Invalid InterfaceNumber",
- ofono_modem_get_path(modem));
- goto error;
- }
-
- endpoint_info.interface_number = u8;
-
bus = ofono_modem_get_string(modem, "Bus");
if (!bus) {
ofono_error("%s: Missing 'Bus'", ofono_modem_get_path(modem));
@@ -409,6 +394,23 @@ static void qmi_gprs_context_bind_mux(struct ofono_gprs_context *gc)
goto error;
}
+ interface_number = ofono_modem_get_string(modem, "InterfaceNumber");
+ if (!interface_number && endpoint_info.endpoint_type !=
+ QMI_DATA_ENDPOINT_TYPE_EMBEDDED) {
+ ofono_error("%s: Missing 'InterfaceNumber'",
+ ofono_modem_get_path(modem));
+ goto error;
+ } else if (!interface_number)
+ u8 = 1; /* Default for embedded modems */
+ else if (l_safe_atox8(interface_number, &u8) < 0) {
+ ofono_error("%s: Invalid InterfaceNumber",
+ ofono_modem_get_path(modem));
+ goto error;
+ }
+
+ endpoint_info.interface_number = u8;
+
+ DBG("interface_number: %d", u8);
DBG("mux_id: %hhx", data->mux_id);
param = qmi_param_new();