All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.