diff mbox series

[16/23] qmi: sms: Drop use of qmi_service_create_shared

Message ID 20240607224746.903769-16-denkenz@gmail.com (mailing list archive)
State Superseded
Headers show
Series [01/23] gobi: Remove phonebook and stk atom creation | expand

Commit Message

Denis Kenzior June 7, 2024, 10:47 p.m. UTC
---
 drivers/qmimodem/sms.c | 56 +++++++++++-------------------------------
 plugins/gobi.c         |  3 ++-
 2 files changed, 17 insertions(+), 42 deletions(-)
diff mbox series

Patch

diff --git a/drivers/qmimodem/sms.c b/drivers/qmimodem/sms.c
index 65909c6a71f6..4238665a5e8d 100644
--- a/drivers/qmimodem/sms.c
+++ b/drivers/qmimodem/sms.c
@@ -725,58 +725,33 @@  static void set_event_cb(struct qmi_result *result, void *user_data)
 	ofono_sms_register(sms);
 }
 
-static void create_wms_cb(struct qmi_service *service, void *user_data)
+static int qmi_sms_probe(struct ofono_sms *sms,
+				unsigned int vendor, void *user_data)
 {
-	struct ofono_sms *sms = user_data;
-	struct sms_data *data = ofono_sms_get_data(sms);
+	struct qmi_service *wms = user_data;
 	struct qmi_param *param;
+	struct sms_data *data;
 
 	DBG("");
 
-	if (!service) {
-		ofono_error("Failed to request WMS service");
-		ofono_sms_remove(sms);
-		return;
-	}
+	param = qmi_param_new_uint8(QMI_WMS_PARAM_NEW_MSG_REPORT, 0x01);
 
-	if (!qmi_service_get_version(service, &data->major, &data->minor)) {
-		ofono_error("Failed to get WMS service version");
-		ofono_sms_remove(sms);
-		return;
+	if (!qmi_service_send(wms, QMI_WMS_SET_EVENT, param,
+					set_event_cb, sms, NULL)) {
+		qmi_param_free(param);
+		qmi_service_free(wms);
+		return -EIO;
 	}
 
-	data->wms = service;
-
+	data = l_new(struct sms_data, 1);
+	data->wms = wms;
 	memset(&data->rd_msg_id, 0, sizeof(data->rd_msg_id));
 	data->msg_mode = QMI_WMS_MESSAGE_MODE_GSMWCDMA;
-
-	qmi_service_register(data->wms, QMI_WMS_EVENT,
-					event_notify, sms, NULL);
-
-	param = qmi_param_new_uint8(QMI_WMS_PARAM_NEW_MSG_REPORT, 0x01);
-
-	if (qmi_service_send(data->wms, QMI_WMS_SET_EVENT, param,
-					set_event_cb, sms, NULL) > 0)
-		return;
-
-	ofono_sms_register(sms);
-}
-
-static int qmi_sms_probe(struct ofono_sms *sms,
-				unsigned int vendor, void *user_data)
-{
-	struct qmi_device *device = user_data;
-	struct sms_data *data;
-
-	DBG("");
-
-	data = l_new(struct sms_data, 1);
+	qmi_service_get_version(data->wms, &data->major, &data->minor);
+	qmi_service_register(data->wms, QMI_WMS_EVENT, event_notify, sms, NULL);
 
 	ofono_sms_set_data(sms, data);
 
-	qmi_service_create_shared(device, QMI_SERVICE_WMS, create_wms_cb, sms,
-					NULL);
-
 	return 0;
 }
 
@@ -788,11 +763,10 @@  static void qmi_sms_remove(struct ofono_sms *sms)
 
 	ofono_sms_set_data(sms, NULL);
 
-	qmi_service_free(data->wms);
-
 	if (data->msg_list)
 		l_free(data->msg_list);
 
+	qmi_service_free(data->wms);
 	l_free(data);
 }
 
diff --git a/plugins/gobi.c b/plugins/gobi.c
index f27d6c23e34a..ce43213a86a1 100644
--- a/plugins/gobi.c
+++ b/plugins/gobi.c
@@ -817,7 +817,8 @@  static void gobi_post_sim(struct ofono_modem *modem)
 		ofono_radio_settings_create(modem, 0, "qmimodem", data->device);
 
 	if (data->features & GOBI_WMS)
-		ofono_sms_create(modem, 0, "qmimodem", data->device);
+		ofono_sms_create(modem, 0, "qmimodem",
+					qmi_service_clone(data->wms));
 
 	if ((data->features & GOBI_WMS) && (data->features & GOBI_UIM) &&
 			!ofono_modem_get_boolean(modem, "ForceSimLegacy")) {