From 7914da43cddaaf6cfba116260c81e6e9adffd5ab Mon Sep 17 00:00:00 2001 From: David Bauer Date: Mon, 28 Jul 2025 03:57:24 +0200 Subject: [PATCH] uqmi: extend wda-get-data-format 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 --- uqmi/commands-wda.c | 52 +++++++++++++++++++++++++++++++++++---------- 1 file 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 -- 2.30.2