* [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function
@ 2024-10-11 10:18 Sean Nyekjaer
2024-10-11 10:18 ` [PATCH v2 2/3] drivers: simcommodem: query modem for available rat modes Sean Nyekjaer
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Sean Nyekjaer @ 2024-10-11 10:18 UTC (permalink / raw)
To: ofono; +Cc: Sean Nyekjaer, denkenz
This is done in preparation for querying available rat modes
---
Changes since v1:
- fixed function name
- changed mode variable to int, to allow negative numbers
drivers/simcommodem/radio-settings.c | 47 +++++++++++++++++-----------
1 file changed, 28 insertions(+), 19 deletions(-)
diff --git a/drivers/simcommodem/radio-settings.c b/drivers/simcommodem/radio-settings.c
index 0feba960..bf78c748 100644
--- a/drivers/simcommodem/radio-settings.c
+++ b/drivers/simcommodem/radio-settings.c
@@ -33,13 +33,36 @@ struct radio_settings_data {
GAtChat *chat;
};
+static int cnmp_mode_to_radio_access_mode(int r_mode)
+{
+ int mode;
+
+ switch (r_mode) {
+ case 2:
+ mode = OFONO_RADIO_ACCESS_MODE_ANY;
+ break;
+ case 13:
+ mode = OFONO_RADIO_ACCESS_MODE_GSM;
+ break;
+ case 14:
+ mode = OFONO_RADIO_ACCESS_MODE_UMTS;
+ break;
+ case 38:
+ mode = OFONO_RADIO_ACCESS_MODE_LTE;
+ break;
+ default:
+ return -1;
+ }
+
+ return mode;
+}
+
static void cnmp_query_cb(gboolean ok, GAtResult *result, gpointer user_data)
{
struct cb_data *cbd = user_data;
ofono_radio_settings_rat_mode_query_cb_t cb = cbd->cb;
- unsigned int mode;
struct ofono_error error;
- int r_mode;
+ int r_mode, mode;
GAtResultIter iter;
DBG("ok %d", ok);
@@ -61,23 +84,9 @@ static void cnmp_query_cb(gboolean ok, GAtResult *result, gpointer user_data)
DBG("r_mode %d", r_mode);
- switch (r_mode) {
- case 2:
- mode = OFONO_RADIO_ACCESS_MODE_ANY;
- break;
- case 13:
- mode = OFONO_RADIO_ACCESS_MODE_GSM;
- break;
- case 14:
- mode = OFONO_RADIO_ACCESS_MODE_UMTS;
- break;
- case 38:
- mode = OFONO_RADIO_ACCESS_MODE_LTE;
- break;
- default:
- CALLBACK_WITH_FAILURE(cb, -1, cbd->data);
- return;
- }
+ mode = cnmp_mode_to_radio_access_mode(r_mode);
+ if (mode < 0)
+ goto error;
cb(&error, mode, cbd->data);
--
2.46.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/3] drivers: simcommodem: query modem for available rat modes
2024-10-11 10:18 [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function Sean Nyekjaer
@ 2024-10-11 10:18 ` Sean Nyekjaer
2024-10-11 10:18 ` [PATCH v2 3/3] sim7100: create lte atom in post_sim() Sean Nyekjaer
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Sean Nyekjaer @ 2024-10-11 10:18 UTC (permalink / raw)
To: ofono; +Cc: Sean Nyekjaer, denkenz
---
Changes since v1:
- Fixed codestyle issues
drivers/simcommodem/radio-settings.c | 53 +++++++++++++++++++++++++---
1 file changed, 49 insertions(+), 4 deletions(-)
diff --git a/drivers/simcommodem/radio-settings.c b/drivers/simcommodem/radio-settings.c
index bf78c748..25a655ce 100644
--- a/drivers/simcommodem/radio-settings.c
+++ b/drivers/simcommodem/radio-settings.c
@@ -96,6 +96,46 @@ error:
CALLBACK_WITH_FAILURE(cb, -1, cbd->data);
}
+static void cnmp_rat_support_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct cb_data *cbd = user_data;
+ ofono_radio_settings_rat_mode_query_cb_t cb = cbd->cb;
+ struct ofono_error error;
+ int index;
+ GAtResultIter iter;
+ unsigned int available_rats = 0;
+
+ DBG("ok %d", ok);
+
+ decode_at_error(&error, g_at_result_final_response(result));
+
+ if (!ok)
+ goto error;
+
+ g_at_result_iter_init(&iter, result);
+
+ while (g_at_result_iter_next(&iter, "+CNMP:")) {
+ if (!g_at_result_iter_open_list(&iter))
+ break;
+
+ while (1) {
+ if (!g_at_result_iter_next_number(&iter, &index))
+ break;
+
+ available_rats |= cnmp_mode_to_radio_access_mode(index);
+ }
+ }
+
+ DBG("available_rats %d", available_rats);
+
+ cb(&error, available_rats, cbd->data);
+
+ return;
+
+error:
+ CALLBACK_WITH_FAILURE(cb, -1, cbd->data);
+}
+
static void simcom_query_rat_mode(struct ofono_radio_settings *rs,
ofono_radio_settings_rat_mode_query_cb_t cb,
void *data)
@@ -168,11 +208,16 @@ static void simcom_query_available_rats(struct ofono_radio_settings *rs,
ofono_radio_settings_available_rats_query_cb_t cb,
void *data)
{
- unsigned int available_rats = OFONO_RADIO_ACCESS_MODE_GSM
- | OFONO_RADIO_ACCESS_MODE_UMTS
- | OFONO_RADIO_ACCESS_MODE_LTE;
+ struct radio_settings_data *rsd = ofono_radio_settings_get_data(rs);
+ struct cb_data *cbd = cb_data_new(cb, data);
+
+ DBG("");
- CALLBACK_WITH_SUCCESS(cb, available_rats, data);
+ if (g_at_chat_send(rsd->chat, "AT+CNMP=?", cnmp_prefix,
+ cnmp_rat_support_cb, cbd, g_free) == 0) {
+ CALLBACK_WITH_FAILURE(cb, -1, data);
+ g_free(cbd);
+ }
}
static void cnmp_support_cb(gboolean ok, GAtResult *result, gpointer user_data)
--
2.46.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 3/3] sim7100: create lte atom in post_sim()
2024-10-11 10:18 [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function Sean Nyekjaer
2024-10-11 10:18 ` [PATCH v2 2/3] drivers: simcommodem: query modem for available rat modes Sean Nyekjaer
@ 2024-10-11 10:18 ` Sean Nyekjaer
2024-10-14 15:57 ` [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function Denis Kenzior
2024-10-14 16:00 ` patchwork-bot+ofono
3 siblings, 0 replies; 5+ messages in thread
From: Sean Nyekjaer @ 2024-10-11 10:18 UTC (permalink / raw)
To: ofono; +Cc: Sean Nyekjaer, denkenz
Enable LTE functionality for SIMCom A7672E-FASE
---
plugins/sim7100.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/plugins/sim7100.c b/plugins/sim7100.c
index 9413a8af..eb5a4dbe 100644
--- a/plugins/sim7100.c
+++ b/plugins/sim7100.c
@@ -24,6 +24,7 @@
#include <gattty.h>
#define OFONO_API_SUBJECT_TO_CHANGE
+#include <ofono.h>
#include <ofono/plugin.h>
#include <ofono/log.h>
#include <ofono/modem.h>
@@ -104,9 +105,13 @@ static void sim7100_remove(struct ofono_modem *modem)
static void cfun_set_on_cb(gboolean ok, GAtResult *result, gpointer user_data)
{
struct ofono_modem *modem = user_data;
+ struct sim7100_data *data = ofono_modem_get_data(modem);
DBG("");
+ if (data->model == SIMCOM_A76XX)
+ ofono_modem_set_capabilities(modem, OFONO_MODEM_CAPABILITY_LTE);
+
if (ok)
ofono_modem_set_powered(modem, TRUE);
}
@@ -272,6 +277,7 @@ static void sim7100_post_sim(struct ofono_modem *modem)
ofono_radio_settings_create(modem, 0, "simcommodem", data->at);
gprs = ofono_gprs_create(modem, OFONO_VENDOR_SIMCOM_A76XX,
"atmodem", data->at);
+ ofono_lte_create(modem, OFONO_VENDOR_SIMCOM_A76XX, "atmodem", data->at);
break;
default:
ofono_netreg_create(modem, 0, "atmodem", data->at);
--
2.46.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function
2024-10-11 10:18 [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function Sean Nyekjaer
2024-10-11 10:18 ` [PATCH v2 2/3] drivers: simcommodem: query modem for available rat modes Sean Nyekjaer
2024-10-11 10:18 ` [PATCH v2 3/3] sim7100: create lte atom in post_sim() Sean Nyekjaer
@ 2024-10-14 15:57 ` Denis Kenzior
2024-10-14 16:00 ` patchwork-bot+ofono
3 siblings, 0 replies; 5+ messages in thread
From: Denis Kenzior @ 2024-10-14 15:57 UTC (permalink / raw)
To: Sean Nyekjaer, ofono
Hi Sean,
On 10/11/24 5:18 AM, Sean Nyekjaer wrote:
> This is done in preparation for querying available rat modes
> ---
> Changes since v1:
> - fixed function name
> - changed mode variable to int, to allow negative numbers
>
> drivers/simcommodem/radio-settings.c | 47 +++++++++++++++++-----------
> 1 file changed, 28 insertions(+), 19 deletions(-)
>
Applied with a couple amends in patches 2 & 3 to comply with the 80 character /
line limit. See doc/coding-style.txt for more details.
Regards,
-Denis
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function
2024-10-11 10:18 [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function Sean Nyekjaer
` (2 preceding siblings ...)
2024-10-14 15:57 ` [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function Denis Kenzior
@ 2024-10-14 16:00 ` patchwork-bot+ofono
3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+ofono @ 2024-10-14 16:00 UTC (permalink / raw)
To: Sean Nyekjaer; +Cc: ofono, denkenz
Hello:
This series was applied to ofono.git (master)
by Denis Kenzior <denkenz@gmail.com>:
On Fri, 11 Oct 2024 12:18:34 +0200 you wrote:
> This is done in preparation for querying available rat modes
> ---
> Changes since v1:
> - fixed function name
> - changed mode variable to int, to allow negative numbers
>
> drivers/simcommodem/radio-settings.c | 47 +++++++++++++++++-----------
> 1 file changed, 28 insertions(+), 19 deletions(-)
Here is the summary with links:
- [v2,1/3] drivers: simcommodem: create rat to radio_access_mode function
https://git.kernel.org/pub/scm/network/ofono/ofono.git/?id=fbd6743d1478
- [v2,2/3] drivers: simcommodem: query modem for available rat modes
(no matching commit)
- [v2,3/3] sim7100: create lte atom in post_sim()
(no matching commit)
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-10-14 16:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-11 10:18 [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function Sean Nyekjaer
2024-10-11 10:18 ` [PATCH v2 2/3] drivers: simcommodem: query modem for available rat modes Sean Nyekjaer
2024-10-11 10:18 ` [PATCH v2 3/3] sim7100: create lte atom in post_sim() Sean Nyekjaer
2024-10-14 15:57 ` [PATCH v2 1/3] drivers: simcommodem: create rat to radio_access_mode function Denis Kenzior
2024-10-14 16:00 ` patchwork-bot+ofono
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.