Re: [PATCH 3/7] extended support for LTE and NR. Some minor fixes. part 3 of 7

2018-09-19 Thread Denis Kenzior

Hi Giacinto,

On 09/19/2018 12:37 AM, Giacinto Cifelli wrote:

---
  drivers/atmodem/atutil.h |  14 +
  drivers/atmodem/cbs.c|   1 +
  drivers/atmodem/gprs-context.c   |   2 +
  drivers/atmodem/gprs.c   | 554 --
  drivers/atmodem/lte.c| 283 -
  drivers/atmodem/network-registration.c   | 134 +++--
  drivers/atmodem/sim.c|  10 +-
  drivers/atmodem/sms.c|  21 +-
  drivers/atmodem/vendor.h |   1 +
  drivers/gemaltomodem/gemaltomodem.c  |   5 +-
  drivers/gemaltomodem/gemaltomodem.h  |  19 +-
  drivers/gemaltomodem/gprs-context-wwan.c | 445 ++
  drivers/gemaltomodem/voicecall.c | 965 +++
  drivers/mbimmodem/gprs-context.c |   2 +
  drivers/mbimmodem/mbim.c |   3 +
  drivers/mbimmodem/mbimmodem.c|   2 +-
  drivers/rilmodem/call-forwarding.c   |   2 +-
  drivers/rilmodem/network-registration.c  |   2 +-
  18 files changed, 2343 insertions(+), 122 deletions(-)
  create mode 100644 drivers/gemaltomodem/gprs-context-wwan.c
  create mode 100644 drivers/gemaltomodem/voicecall.c



I'm not going to even bother looking at this until it is broken up 
properly and actually has a commit description that is longer than an 
empty string.


Regards,
-Denis
___
ofono mailing list
ofono@ofono.org
https://lists.ofono.org/mailman/listinfo/ofono


[PATCH 3/7] extended support for LTE and NR. Some minor fixes. part 3 of 7

2018-09-18 Thread Giacinto Cifelli
---
 drivers/atmodem/atutil.h |  14 +
 drivers/atmodem/cbs.c|   1 +
 drivers/atmodem/gprs-context.c   |   2 +
 drivers/atmodem/gprs.c   | 554 --
 drivers/atmodem/lte.c| 283 -
 drivers/atmodem/network-registration.c   | 134 +++--
 drivers/atmodem/sim.c|  10 +-
 drivers/atmodem/sms.c|  21 +-
 drivers/atmodem/vendor.h |   1 +
 drivers/gemaltomodem/gemaltomodem.c  |   5 +-
 drivers/gemaltomodem/gemaltomodem.h  |  19 +-
 drivers/gemaltomodem/gprs-context-wwan.c | 445 ++
 drivers/gemaltomodem/voicecall.c | 965 +++
 drivers/mbimmodem/gprs-context.c |   2 +
 drivers/mbimmodem/mbim.c |   3 +
 drivers/mbimmodem/mbimmodem.c|   2 +-
 drivers/rilmodem/call-forwarding.c   |   2 +-
 drivers/rilmodem/network-registration.c  |   2 +-
 18 files changed, 2343 insertions(+), 122 deletions(-)
 create mode 100644 drivers/gemaltomodem/gprs-context-wwan.c
 create mode 100644 drivers/gemaltomodem/voicecall.c

diff --git a/drivers/atmodem/atutil.h b/drivers/atmodem/atutil.h
index 7113a4c..57573cb 100644
--- a/drivers/atmodem/atutil.h
+++ b/drivers/atmodem/atutil.h
@@ -115,6 +115,20 @@ static inline int at_util_convert_signal_strength(int 
strength)
return result;
 }
 
+static inline int at_util_convert_signal_strength_cesq(int strength_GSM, int 
strength_UTRAN, int strength_EUTRAN)
+{
+   int result = -1;
+
+   if (strength_GSM != 99)
+   result = (strength_GSM * 100) / 63;
+   else if (strength_UTRAN != 255)
+   result = (strength_UTRAN * 100) / 96;
+   else if (strength_EUTRAN != 255)
+   result = (strength_EUTRAN * 100) / 97;
+
+   return result;
+}
+
 #define CALLBACK_WITH_FAILURE(cb, args...) \
do {\
struct ofono_error cb_e;\
diff --git a/drivers/atmodem/cbs.c b/drivers/atmodem/cbs.c
index 0a76ba2..1824b47 100644
--- a/drivers/atmodem/cbs.c
+++ b/drivers/atmodem/cbs.c
@@ -166,6 +166,7 @@ static void at_cbs_set_topics(struct ofono_cbs *cbs, const 
char *topics,
switch (data->vendor) {
case OFONO_VENDOR_GOBI:
case OFONO_VENDOR_QUALCOMM_MSM:
+   case OFONO_VENDOR_GEMALTO:
g_at_chat_send(data->chat, "AT+CSCB=0", none_prefix,
NULL, NULL, NULL);
break;
diff --git a/drivers/atmodem/gprs-context.c b/drivers/atmodem/gprs-context.c
index 79ac4c8..0585850 100644
--- a/drivers/atmodem/gprs-context.c
+++ b/drivers/atmodem/gprs-context.c
@@ -304,6 +304,8 @@ static void at_gprs_activate_primary(struct 
ofono_gprs_context *gc,
snprintf(buf + len, sizeof(buf) - len - 3,
",\"PAP:%s\"", ctx->apn);
break;
+   default:
+   break;
}
break;
default:
diff --git a/drivers/atmodem/gprs.c b/drivers/atmodem/gprs.c
index df37d05..6aa2cf2 100644
--- a/drivers/atmodem/gprs.c
+++ b/drivers/atmodem/gprs.c
@@ -4,6 +4,7 @@
  *
  *  Copyright (C) 2008-2011  Intel Corporation. All rights reserved.
  *  Copyright (C) 2010  ST-Ericsson AB.
+ *  Copyright (C) 2018 Gemalto M2M
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
@@ -35,6 +36,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "gatchat.h"
 #include "gatresult.h"
@@ -43,6 +45,8 @@
 #include "vendor.h"
 
 static const char *cgreg_prefix[] = { "+CGREG:", NULL };
+static const char *cereg_prefix[] = { "+CEREG:", NULL };
+static const char *c5greg_prefix[] = { "+C5GREG:", NULL };
 static const char *cgdcont_prefix[] = { "+CGDCONT:", NULL };
 static const char *none_prefix[] = { NULL };
 
@@ -51,7 +55,23 @@ struct gprs_data {
unsigned int vendor;
unsigned int last_auto_context_id;
gboolean telit_try_reattach;
+   gboolean has_cgreg;
+   gboolean has_cereg;
+   gboolean has_c5greg;
+   gboolean nb_inds;
+   gboolean auto_attach; /* for LTE modems & co */
int attached;
+   int cgreg_status;
+   int cereg_status;
+   int c5greg_status;
+};
+
+struct netreg_info {
+   struct ofono_gprs *gprs;
+   struct gprs_data *gd;
+   const char *ind;
+   int status;
+   int bearer;
 };
 
 static void at_cgatt_cb(gboolean ok, GAtResult *result, gpointer user_data)
@@ -69,9 +89,15 @@ static void at_gprs_set_attached(struct ofono_gprs *gprs, 
int attached,
ofono_gprs_cb_t cb, void *data)
 {
struct gprs_data *gd = ofono_gprs_get_data(gprs);
-   struct cb_data *cbd =