aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Schrock <steve.schrock@getcruise.com>2024-04-23 14:59:36 +0000
committerDenis Kenzior <denkenz@gmail.com>2024-04-23 10:06:14 -0500
commita2ca0a16788a6660575957c8f2923c4cda776886 (patch)
treec04b8c973be9dbafa95150c91d88653f50c21aa5
parent4b0225684d56a384c1f4a7758161a845e6a7b579 (diff)
downloadofono-a2ca0a16788a6660575957c8f2923c4cda776886.tar.gz
qmimodem: Remove unregister/cancel_all functions
gobi was the final user of these functions in its disable function. It would perform this cleanup before sending a final message. This is not necessary because gobi does not register for any notifications and the only sends that might be in progress should only occur during initialization. If a client actually needs this functionality it should free the service and create a new one. These functions are still used internally in qmi.
-rw-r--r--drivers/qmimodem/qmi.c30
-rw-r--r--drivers/qmimodem/qmi.h2
-rw-r--r--plugins/gobi.c3
3 files changed, 15 insertions, 20 deletions
diff --git a/drivers/qmimodem/qmi.c b/drivers/qmimodem/qmi.c
index 74fcf3c89..69a0e535f 100644
--- a/drivers/qmimodem/qmi.c
+++ b/drivers/qmimodem/qmi.c
@@ -2720,19 +2720,6 @@ bool qmi_service_create(struct qmi_device *device,
user_data, destroy);
}
-void qmi_service_free(struct qmi_service *service)
-{
- if (!service)
- return;
-
- qmi_service_cancel_all(service);
- qmi_service_unregister_all(service);
-
- service_family_unref(service->family);
-
- l_free(service);
-}
-
const char *qmi_service_get_identifier(struct qmi_service *service)
{
if (!service)
@@ -2896,7 +2883,7 @@ static void remove_client(struct l_queue *queue, unsigned int service_handle)
L_UINT_TO_PTR(service_handle));
}
-bool qmi_service_cancel_all(struct qmi_service *service)
+static bool qmi_service_cancel_all(struct qmi_service *service)
{
struct qmi_device *device;
@@ -2980,7 +2967,7 @@ static bool remove_notify_if_handle_match(void *data, void *user_data)
return true;
}
-bool qmi_service_unregister_all(struct qmi_service *service)
+static bool qmi_service_unregister_all(struct qmi_service *service)
{
if (!service)
return false;
@@ -2991,3 +2978,16 @@ bool qmi_service_unregister_all(struct qmi_service *service)
return true;
}
+
+void qmi_service_free(struct qmi_service *service)
+{
+ if (!service)
+ return;
+
+ qmi_service_cancel_all(service);
+ qmi_service_unregister_all(service);
+
+ service_family_unref(service->family);
+
+ l_free(service);
+}
diff --git a/drivers/qmimodem/qmi.h b/drivers/qmimodem/qmi.h
index 921136f38..0075f7380 100644
--- a/drivers/qmimodem/qmi.h
+++ b/drivers/qmimodem/qmi.h
@@ -167,10 +167,8 @@ uint16_t qmi_service_send(struct qmi_service *service,
qmi_result_func_t func,
void *user_data, qmi_destroy_func_t destroy);
bool qmi_service_cancel(struct qmi_service *service, uint16_t id);
-bool qmi_service_cancel_all(struct qmi_service *service);
uint16_t qmi_service_register(struct qmi_service *service,
uint16_t message, qmi_result_func_t func,
void *user_data, qmi_destroy_func_t destroy);
bool qmi_service_unregister(struct qmi_service *service, uint16_t id);
-bool qmi_service_unregister_all(struct qmi_service *service);
diff --git a/plugins/gobi.c b/plugins/gobi.c
index 76507cd7f..550ce7873 100644
--- a/plugins/gobi.c
+++ b/plugins/gobi.c
@@ -471,9 +471,6 @@ static int gobi_disable(struct ofono_modem *modem)
DBG("%p", modem);
- qmi_service_cancel_all(data->dms);
- qmi_service_unregister_all(data->dms);
-
/*
* Telit QMI modem must remain online. If powered down, it also
* powers down the sim card, and QMI interface has no way to bring