From: Denis Kenzior <denkenz@gmail.com>
To: ofono@lists.linux.dev
Cc: Denis Kenzior <denkenz@gmail.com>
Subject: [PATCH 17/23] qmi: netreg: Drop use of qmi_service_create_shared
Date: Fri, 7 Jun 2024 17:47:17 -0500 [thread overview]
Message-ID: <20240607224746.903769-17-denkenz@gmail.com> (raw)
In-Reply-To: <20240607224746.903769-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 ce43213a86a1..9c0ea4f6bbcc 100644
--- a/plugins/gobi.c
+++ b/plugins/gobi.c
@@ -840,7 +840,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-07 22:48 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-07 22:47 [PATCH 01/23] gobi: Remove phonebook and stk atom creation Denis Kenzior
2024-06-07 22:47 ` [PATCH 02/23] qmi: lookup shared family directly by type Denis Kenzior
2024-06-07 22:47 ` [PATCH 03/23] core: allow multiple args in atom constructors Denis Kenzior
2024-06-07 22:47 ` [PATCH 04/23] unit: Update unit tests to the new API Denis Kenzior
2024-06-07 22:47 ` [PATCH 05/23] core: Support register on probe flag Denis Kenzior
2024-06-07 22:47 ` [PATCH 06/23] qmi: introduce qmi_service_clone Denis Kenzior
2024-06-07 22:47 ` [PATCH 07/23] gobi: request needed services at .enable() Denis Kenzior
2024-06-07 22:47 ` [PATCH 08/23] qmi: devinfo: Drop use of qmi_service_create_shared Denis Kenzior
2024-06-07 22:47 ` [PATCH 09/23] qmi: sim-legacy: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 10/23] qmi: voicecall: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 11/23] qmi: call-barring: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 12/23] qmi: call-forwarding: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 13/23] qmi: call-settings: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 14/23] qmi: ussd: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 15/23] qmi: location-reporting: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 16/23] qmi: sms: " Denis Kenzior
2024-06-07 22:47 ` Denis Kenzior [this message]
2024-06-07 22:47 ` [PATCH 18/23] qmi: netmon: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 19/23] qmi: lte: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 20/23] qmi: gprs-context: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 21/23] qmi: sim: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 22/23] qmi: gprs: " Denis Kenzior
2024-06-07 22:47 ` [PATCH 23/23] qmi: radio-settings: " Denis Kenzior
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=20240607224746.903769-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