From: Denis Kenzior <denkenz@gmail.com>
To: ofono@lists.linux.dev
Cc: Denis Kenzior <denkenz@gmail.com>
Subject: [PATCH v2 17/23] qmi: netreg: Drop use of qmi_service_create_shared
Date: Thu, 13 Jun 2024 16:41:26 -0500 [thread overview]
Message-ID: <20240613214134.1056517-17-denkenz@gmail.com> (raw)
In-Reply-To: <20240613214134.1056517-1-denkenz@gmail.com>
While here, drop all indication registration id members. Explicitly
unregistering from an indication is not required. All indication
registrations will be automatically dropped when the service handle
is freed using qmi_service_free()
---
drivers/qmimodem/network-registration.c | 86 +++++--------------------
plugins/gobi.c | 3 +-
2 files changed, 17 insertions(+), 72 deletions(-)
diff --git a/drivers/qmimodem/network-registration.c b/drivers/qmimodem/network-registration.c
index 78957a677d2d..c0c9338d1c23 100644
--- a/drivers/qmimodem/network-registration.c
+++ b/drivers/qmimodem/network-registration.c
@@ -31,10 +31,6 @@ struct netreg_data {
int lac;
int cellid;
bool is_roaming;
- uint16_t event_indication_id;
- uint16_t signal_info_indication_id;
- uint16_t system_info_indication_id;
- uint16_t serving_system_indication_id;
};
enum roaming_status {
@@ -587,23 +583,16 @@ static void register_indications_cb(struct qmi_result *result,
ofono_netreg_register(netreg);
- data->event_indication_id =
- qmi_service_register(data->nas, QMI_NAS_EVENT_REPORT,
+ qmi_service_register(data->nas, QMI_NAS_EVENT_REPORT,
event_notify, netreg, NULL);
- data->serving_system_indication_id =
- qmi_service_register(data->nas,
- QMI_NAS_SERVING_SYSTEM_INDICATION,
+ qmi_service_register(data->nas, QMI_NAS_SERVING_SYSTEM_INDICATION,
ss_info_notify, netreg, NULL);
- data->system_info_indication_id =
- qmi_service_register(data->nas,
- QMI_NAS_SYSTEM_INFO_INDICATION,
+ qmi_service_register(data->nas, QMI_NAS_SYSTEM_INFO_INDICATION,
system_info_notify, netreg, NULL);
- data->signal_info_indication_id =
- qmi_service_register(data->nas,
- QMI_NAS_SIGNAL_INFO_INDICATION,
+ qmi_service_register(data->nas, QMI_NAS_SIGNAL_INFO_INDICATION,
signal_info_notify, netreg, NULL);
}
@@ -636,10 +625,10 @@ error:
ofono_netreg_remove(netreg);
}
-static void create_nas_cb(struct qmi_service *service, void *user_data)
+static int qmi_netreg_probe(struct ofono_netreg *netreg,
+ unsigned int vendor, void *user_data)
{
- struct ofono_netreg *netreg = user_data;
- struct netreg_data *data = ofono_netreg_get_data(netreg);
+ struct qmi_service *nas = user_data;
struct qmi_param *param;
static const uint8_t PARAM_REPORT_SIGNAL_STRENGTH = 0x10;
static const uint8_t PARAM_REPORT_RF_INFO = 0x11;
@@ -650,46 +639,28 @@ static void create_nas_cb(struct qmi_service *service, void *user_data)
} __attribute__((__packed__)) ss = { .report = 0x01,
.count = 5, .dbm[0] = -55, .dbm[1] = -65,
.dbm[2] = -75, .dbm[3] = -85, .dbm[4] = -95 };
+ struct netreg_data *data;
DBG("");
- if (!service) {
- ofono_error("Failed to request NAS service");
- goto error;
- }
-
- data->nas = service;
-
param = qmi_param_new();
-
qmi_param_append(param, PARAM_REPORT_SIGNAL_STRENGTH, sizeof(ss), &ss);
qmi_param_append_uint8(param, PARAM_REPORT_RF_INFO, 0x01);
- if (qmi_service_send(data->nas, QMI_NAS_SET_EVENT_REPORT, param,
- set_event_report_cb, netreg, NULL) > 0)
- return;
-
- qmi_param_free(param);
-error:
- ofono_netreg_remove(netreg);
-}
-
-static int qmi_netreg_probe(struct ofono_netreg *netreg,
- unsigned int vendor, void *user_data)
-{
- struct qmi_device *device = user_data;
- struct netreg_data *data;
-
- DBG("");
+ if (!qmi_service_send(nas, QMI_NAS_SET_EVENT_REPORT, param,
+ set_event_report_cb, netreg, NULL)) {
+ qmi_param_free(param);
+ qmi_service_free(nas);
+ return -EIO;
+ }
data = l_new(struct netreg_data, 1);
-
+ data->nas = nas;
data->operator.name[0] = '\0';
data->operator.mcc[0] = '\0';
data->operator.mnc[0] = '\0';
data->operator.status = -1;
data->operator.tech = -1;
-
data->current_rat = QMI_NAS_NETWORK_RAT_NO_CHANGE;
data->is_roaming = false;
data->lac = -1;
@@ -697,9 +668,6 @@ static int qmi_netreg_probe(struct ofono_netreg *netreg,
ofono_netreg_set_data(netreg, data);
- qmi_service_create_shared(device, QMI_SERVICE_NAS,
- create_nas_cb, netreg, NULL);
-
return 0;
}
@@ -711,31 +679,7 @@ static void qmi_netreg_remove(struct ofono_netreg *netreg)
ofono_netreg_set_data(netreg, NULL);
- if (data->event_indication_id) {
- qmi_service_unregister(data->nas, data->event_indication_id);
- data->event_indication_id = 0;
- }
-
- if (data->serving_system_indication_id) {
- qmi_service_unregister(data->nas,
- data->serving_system_indication_id);
- data->serving_system_indication_id = 0;
- }
-
- if (data->system_info_indication_id) {
- qmi_service_unregister(data->nas,
- data->system_info_indication_id);
- data->system_info_indication_id = 0;
- }
-
- if (data->signal_info_indication_id) {
- qmi_service_unregister(data->nas,
- data->signal_info_indication_id);
- data->signal_info_indication_id = 0;
- }
-
qmi_service_free(data->nas);
-
l_free(data);
}
diff --git a/plugins/gobi.c b/plugins/gobi.c
index da27930c1e94..34aa363cf82e 100644
--- a/plugins/gobi.c
+++ b/plugins/gobi.c
@@ -829,7 +829,8 @@ static void gobi_post_online(struct ofono_modem *modem)
DBG("%p", modem);
if (data->features & GOBI_NAS) {
- ofono_netreg_create(modem, 0, "qmimodem", data->device);
+ ofono_netreg_create(modem, 0, "qmimodem",
+ qmi_service_clone(data->nas));
ofono_netmon_create(modem, 0, "qmimodem", data->device);
}
--
2.45.0
next prev parent reply other threads:[~2024-06-13 21:41 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-13 21:41 [PATCH v2 01/23] gobi: Remove phonebook and stk atom creation Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 02/23] qmi: lookup shared family directly by type Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 03/23] core: allow multiple args in atom constructors Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 04/23] unit: Update unit tests to the new API Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 05/23] core: Support register on probe flag Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 06/23] qmi: introduce qmi_service_clone Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 07/23] gobi: request needed services at .enable() Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 08/23] qmi: devinfo: Drop use of qmi_service_create_shared Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 09/23] qmi: sim-legacy: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 10/23] qmi: voicecall: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 11/23] qmi: call-barring: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 12/23] qmi: call-forwarding: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 13/23] qmi: call-settings: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 14/23] qmi: ussd: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 15/23] qmi: location-reporting: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 16/23] qmi: sms: " Denis Kenzior
2024-06-13 21:41 ` Denis Kenzior [this message]
2024-06-13 21:41 ` [PATCH v2 18/23] qmi: netmon: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 19/23] qmi: lte: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 20/23] qmi: gprs-context: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 21/23] qmi: sim: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 22/23] qmi: gprs: " Denis Kenzior
2024-06-13 21:41 ` [PATCH v2 23/23] qmi: radio-settings: " Denis Kenzior
2024-06-14 15:10 ` [PATCH v2 01/23] gobi: Remove phonebook and stk atom creation patchwork-bot+ofono
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240613214134.1056517-17-denkenz@gmail.com \
--to=denkenz@gmail.com \
--cc=ofono@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox