mirror of git://git.sysmocom.de/ofono
mbimmodem: Move available_data_classes_to_tech
to util.[ch] so it can be used from other drivers
This commit is contained in:
parent
47b562b91c
commit
f8b4730d4f
|
@ -617,6 +617,7 @@ mbim_sources = drivers/mbimmodem/mbim.h \
|
||||||
builtin_modules += mbimmodem
|
builtin_modules += mbimmodem
|
||||||
builtin_sources += $(mbim_sources) \
|
builtin_sources += $(mbim_sources) \
|
||||||
drivers/mbimmodem/util.h \
|
drivers/mbimmodem/util.h \
|
||||||
|
drivers/mbimmodem/util.c \
|
||||||
drivers/mbimmodem/mbimmodem.h \
|
drivers/mbimmodem/mbimmodem.h \
|
||||||
drivers/mbimmodem/mbimmodem.c \
|
drivers/mbimmodem/mbimmodem.c \
|
||||||
drivers/mbimmodem/devinfo.c \
|
drivers/mbimmodem/devinfo.c \
|
||||||
|
|
|
@ -44,32 +44,6 @@ struct netreg_data {
|
||||||
struct l_idle *delayed_register;
|
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)
|
static inline int register_state_to_status(uint32_t register_state)
|
||||||
{
|
{
|
||||||
switch (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);
|
DBG("NwError: %u, RegisterMode: %u", nw_error, register_mode);
|
||||||
|
|
||||||
status = register_state_to_status(register_state);
|
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);
|
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;
|
goto error;
|
||||||
|
|
||||||
status = register_state_to_status(register_state);
|
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);
|
CALLBACK_WITH_SUCCESS(cb, status, -1, -1, tech, cbd->data);
|
||||||
return;
|
return;
|
||||||
|
@ -213,7 +187,7 @@ static void mbim_current_operator_cb(struct mbim_message *message, void *user)
|
||||||
|
|
||||||
/* Set to current */
|
/* Set to current */
|
||||||
op.status = 2;
|
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);
|
CALLBACK_WITH_SUCCESS(cb, &op, cbd->data);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
|
@ -55,3 +55,5 @@ static inline struct cb_data *cb_data_new(void *cb, void *data)
|
||||||
e.error = 0; \
|
e.error = 0; \
|
||||||
f(&e, ##args); \
|
f(&e, ##args); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
int mbim_data_class_to_tech(uint32_t n);
|
||||||
|
|
Loading…
Reference in New Issue