summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2017-11-09 11:39:43 -0600
committerDenis Kenzior <denkenz@gmail.com>2017-11-09 11:39:43 -0600
commitf8b4730d4f3c0a02ef6b89de3114bce929c36917 (patch)
tree9ab14da64f12c58cd2836f53156de7adc58b8ab4
parent47b562b91cceb1c3c56e8a6d79cfc475b0b2337b (diff)
downloadofono-f8b4730d4f3c0a02ef6b89de3114bce929c36917.tar.gz
mbimmodem: Move available_data_classes_to_tech
to util.[ch] so it can be used from other drivers
-rw-r--r--Makefile.am1
-rw-r--r--drivers/mbimmodem/network-registration.c32
-rw-r--r--drivers/mbimmodem/util.c54
-rw-r--r--drivers/mbimmodem/util.h2
4 files changed, 60 insertions, 29 deletions
diff --git a/Makefile.am b/Makefile.am
index 53f19725..58bb532b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -617,6 +617,7 @@ mbim_sources = drivers/mbimmodem/mbim.h \
builtin_modules += mbimmodem
builtin_sources += $(mbim_sources) \
drivers/mbimmodem/util.h \
+ drivers/mbimmodem/util.c \
drivers/mbimmodem/mbimmodem.h \
drivers/mbimmodem/mbimmodem.c \
drivers/mbimmodem/devinfo.c \
diff --git a/drivers/mbimmodem/network-registration.c b/drivers/mbimmodem/network-registration.c
index 59407c4a..04db5822 100644
--- a/drivers/mbimmodem/network-registration.c
+++ b/drivers/mbimmodem/network-registration.c
@@ -44,32 +44,6 @@ struct netreg_data {
struct l_idle *delayed_register;
};
-static inline int available_data_classes_to_tech(uint32_t n)
-{
- if (n & MBIM_DATA_CLASS_LTE)
- return ACCESS_TECHNOLOGY_EUTRAN;
-
- if (n & (MBIM_DATA_CLASS_HSUPA | MBIM_DATA_CLASS_HSDPA))
- return ACCESS_TECHNOLOGY_UTRAN_HSDPA_HSUPA;
-
- if (n & MBIM_DATA_CLASS_HSUPA)
- return ACCESS_TECHNOLOGY_UTRAN_HSUPA;
-
- if (n & MBIM_DATA_CLASS_HSDPA)
- return ACCESS_TECHNOLOGY_UTRAN_HSDPA;
-
- if (n & MBIM_DATA_CLASS_UMTS)
- return ACCESS_TECHNOLOGY_UTRAN;
-
- if (n & MBIM_DATA_CLASS_EDGE)
- return ACCESS_TECHNOLOGY_GSM_EGPRS;
-
- if (n & MBIM_DATA_CLASS_GPRS)
- return ACCESS_TECHNOLOGY_GSM;
-
- return -1;
-}
-
static inline int register_state_to_status(uint32_t register_state)
{
switch (register_state) {
@@ -113,7 +87,7 @@ static void mbim_register_state_changed(struct mbim_message *message,
DBG("NwError: %u, RegisterMode: %u", nw_error, register_mode);
status = register_state_to_status(register_state);
- tech = available_data_classes_to_tech(available_data_classes);
+ tech = mbim_data_class_to_tech(available_data_classes);
ofono_netreg_status_notify(netreg, status, -1, -1, tech);
}
@@ -141,7 +115,7 @@ static void mbim_registration_status_cb(struct mbim_message *message,
goto error;
status = register_state_to_status(register_state);
- tech = available_data_classes_to_tech(available_data_classes);
+ tech = mbim_data_class_to_tech(available_data_classes);
CALLBACK_WITH_SUCCESS(cb, status, -1, -1, tech, cbd->data);
return;
@@ -213,7 +187,7 @@ static void mbim_current_operator_cb(struct mbim_message *message, void *user)
/* Set to current */
op.status = 2;
- op.tech = available_data_classes_to_tech(available_data_classes);
+ op.tech = mbim_data_class_to_tech(available_data_classes);
CALLBACK_WITH_SUCCESS(cb, &op, cbd->data);
return;
diff --git a/drivers/mbimmodem/util.c b/drivers/mbimmodem/util.c
new file mode 100644
index 00000000..1ae3cde6
--- /dev/null
+++ b/drivers/mbimmodem/util.c
@@ -0,0 +1,54 @@
+/*
+ *
+ * oFono - Open Source Telephony
+ *
+ * Copyright (C) 2017 Intel Corporation. All rights reserved.
+ *
+ * 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
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#include "src/common.h"
+#include "mbim.h"
+#include "util.h"
+
+int mbim_data_class_to_tech(uint32_t n)
+{
+ if (n & MBIM_DATA_CLASS_LTE)
+ return ACCESS_TECHNOLOGY_EUTRAN;
+
+ if (n & (MBIM_DATA_CLASS_HSUPA | MBIM_DATA_CLASS_HSDPA))
+ return ACCESS_TECHNOLOGY_UTRAN_HSDPA_HSUPA;
+
+ if (n & MBIM_DATA_CLASS_HSUPA)
+ return ACCESS_TECHNOLOGY_UTRAN_HSUPA;
+
+ if (n & MBIM_DATA_CLASS_HSDPA)
+ return ACCESS_TECHNOLOGY_UTRAN_HSDPA;
+
+ if (n & MBIM_DATA_CLASS_UMTS)
+ return ACCESS_TECHNOLOGY_UTRAN;
+
+ if (n & MBIM_DATA_CLASS_EDGE)
+ return ACCESS_TECHNOLOGY_GSM_EGPRS;
+
+ if (n & MBIM_DATA_CLASS_GPRS)
+ return ACCESS_TECHNOLOGY_GSM;
+
+ return -1;
+}
+
diff --git a/drivers/mbimmodem/util.h b/drivers/mbimmodem/util.h
index 51552156..683c49ea 100644
--- a/drivers/mbimmodem/util.h
+++ b/drivers/mbimmodem/util.h
@@ -55,3 +55,5 @@ static inline struct cb_data *cb_data_new(void *cb, void *data)
e.error = 0; \
f(&e, ##args); \
} while (0)
+
+int mbim_data_class_to_tech(uint32_t n);