aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2024-02-20 14:26:39 -0600
committerDenis Kenzior <denkenz@gmail.com>2024-02-21 10:28:22 -0600
commit6cb6953abbe304ab4c282dea30750b0d4db1989a (patch)
treea8d2f3aba216f92ecab66915c79eda715f67b43f
parent0382434d8879e63552395b4280149f7451c276b4 (diff)
downloadofono-6cb6953abbe304ab4c282dea30750b0d4db1989a.tar.gz
qmi: Move version_str to qmux subclass
The version_str member is only available on QMUX based devices, and only on certain ones. Move this member out to the qmux subclass and add a debug statement to print it out if available.
-rw-r--r--drivers/qmimodem/qmi.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/qmimodem/qmi.c b/drivers/qmimodem/qmi.c
index 011d677cb..a5f569bd3 100644
--- a/drivers/qmimodem/qmi.c
+++ b/drivers/qmimodem/qmi.c
@@ -73,7 +73,6 @@ struct qmi_device {
uint16_t next_service_tid;
qmi_debug_func_t debug_func;
void *debug_data;
- char *version_str;
struct qmi_version *version_list;
uint8_t version_count;
struct l_hashmap *service_list;
@@ -91,6 +90,7 @@ struct qmi_device_qmux {
struct qmi_device super;
uint16_t control_major;
uint16_t control_minor;
+ char *version_str;
};
struct qmi_service {
@@ -999,7 +999,6 @@ void qmi_device_unref(struct qmi_device *device)
l_hashmap_destroy(device->service_list, service_destroy);
- l_free(device->version_str);
l_free(device->version_list);
if (device->shutting_down)
@@ -1212,7 +1211,8 @@ static void discover_callback(uint16_t message, uint16_t length,
if (!ptr)
goto done;
- device->version_str = strndup(ptr + 1, *((uint8_t *) ptr));
+ qmux->version_str = l_strndup(ptr + 1, *((uint8_t *) ptr));
+ __debug_device(device, "version string: %s", qmux->version_str);
done:
device->version_list = list;
@@ -1585,6 +1585,7 @@ static void qmi_device_qmux_destroy(struct qmi_device *device)
struct qmi_device_qmux *qmux =
l_container_of(device, struct qmi_device_qmux, super);
+ l_free(qmux->version_str);
l_free(qmux);
}