diff options
| author | David Bauer | 2025-07-28 01:57:24 +0000 |
|---|---|---|
| committer | David Bauer | 2025-07-29 22:08:11 +0000 |
| commit | 7914da43cddaaf6cfba116260c81e6e9adffd5ab (patch) | |
| tree | 29ba2526d35c4d2f0ca0272e229301ecf674b724 | |
| parent | 7aef6458a03c81e4e8f5ac4a1c8c9c5425867f06 (diff) | |
| download | uqmi-master.tar.gz | |
With QMAP, more settings for the modem data format are relevant. Include
them into the wda-get-data-format output.
Signed-off-by: David Bauer <mail@david-bauer.net>
| -rw-r--r-- | uqmi/commands-wda.c | 52 |
1 files changed, 41 insertions, 11 deletions
diff --git a/uqmi/commands-wda.c b/uqmi/commands-wda.c index fb205b4..2f93c03 100644 --- a/uqmi/commands-wda.c +++ b/uqmi/commands-wda.c @@ -208,23 +208,53 @@ static enum qmi_cmd_result cmd_wda_flow_control_prepare( return QMI_CMD_DONE; } +static const char * +wda_link_layer_protocol_to_string(QmiWdaLinkLayerProtocol proto) +{ + for (int i = 0; i < ARRAY_SIZE(link_modes); i++) { + if (link_modes[i].val == proto) + return link_modes[i].name; + } + return "unknown"; +} + +static const char * +wda_data_aggregation_protocol_to_string(QmiWdaDataAggregationProtocol proto) +{ + for (int i = 0; i < ARRAY_SIZE(aggregation_protocols); i++) { + if (aggregation_protocols[i].aggreg == proto) + return aggregation_protocols[i].name; + } + return "unknown"; +} + static void cmd_wda_get_data_format_cb(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg) { struct qmi_wda_get_data_format_response res; - const char *name = "unknown"; - int i; + void *root; qmi_parse_wda_get_data_format_response(msg, &res); - for (i = 0; i < ARRAY_SIZE(link_modes); i++) { - if (link_modes[i].val != res.data.link_layer_protocol) - continue; - - name = link_modes[i].name; - break; - } - - blobmsg_add_string(&status, NULL, name); + root = blobmsg_open_table(&status, NULL); + blobmsg_add_u8(&status, "qos-format", res.data.qos_format); + blobmsg_add_string(&status, "link-layer-protocol", + wda_link_layer_protocol_to_string(res.data.link_layer_protocol)); + blobmsg_add_string(&status, "data-aggregation-protocol", + wda_data_aggregation_protocol_to_string(res.data.uplink_data_aggregation_protocol)); + blobmsg_add_u32(&status, "uplink-data-aggregation-max-datagrams", + res.data.uplink_data_aggregation_max_datagrams); + blobmsg_add_u32(&status, "uplink-data-aggregation-max-size", + res.data.uplink_data_aggregation_max_size); + blobmsg_add_string(&status, "downlink-data-aggregation-protocol", + wda_data_aggregation_protocol_to_string(res.data.downlink_data_aggregation_protocol)); + blobmsg_add_u32(&status, "downlink-data-aggregation-max-datagrams", + res.data.downlink_data_aggregation_max_datagrams); + blobmsg_add_u32(&status, "downlink-data-aggregation-max-size", + res.data.downlink_data_aggregation_max_size); + blobmsg_add_u32(&status, "download-minimum-padding", + res.data.download_minimum_padding); + blobmsg_add_u8(&status, "flow-control", res.data.flow_control); + blobmsg_close_table(&status, root); } static enum qmi_cmd_result |