diff options
author | Steve Schrock <steve.schrock@getcruise.com> | 2024-04-08 16:34:39 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2024-04-08 17:13:27 -0500 |
commit | 6d7edaf5bc5a17f1c7974024b9c139a3fea6ac93 (patch) | |
tree | 2add827678896c8dcd984f19cdada156304419c7 | |
parent | 296347f8a4f1c5809b6dfa36472931ad1f7ab266 (diff) | |
download | ofono-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.c | 32 |
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(); |