summaryrefslogtreecommitdiff
path: root/plugins/quectel.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/quectel.c')
-rw-r--r--plugins/quectel.c61
1 files changed, 14 insertions, 47 deletions
diff --git a/plugins/quectel.c b/plugins/quectel.c
index cb15e147..043d39f9 100644
--- a/plugins/quectel.c
+++ b/plugins/quectel.c
@@ -78,27 +78,6 @@ static const uint8_t gsm0710_terminate[] = {
0xf9, /* close flag */
};
-enum mux_type {
- QUECTEL_MUX_TYPE_AUX = 0,
- QUECTEL_MUX_TYPE_MODEM,
- QUECTEL_MUX_TYPE_MAX,
-};
-
-struct mux_initialization_data {
- enum mux_type mux_type;
- char *chat_debug;
- const char *n_gsm_key;
- const char *n_gsm_value;
-};
-
-static const struct mux_initialization_data mux_order_default[] = {
- { QUECTEL_MUX_TYPE_MODEM, "Modem: ", "Modem", "/dev/gsmtty1"},
- { QUECTEL_MUX_TYPE_AUX, "Aux: ", "Aux", "/dev/gsmtty2"} };
-
-static const struct mux_initialization_data mux_order_ec21[] = {
- { QUECTEL_MUX_TYPE_AUX, "Aux: ", "Aux", "/dev/gsmtty1"},
- { QUECTEL_MUX_TYPE_MODEM, "Modem: ", "Modem", "/dev/gsmtty2"} };
-
enum quectel_model {
QUECTEL_UNKNOWN,
QUECTEL_UC15,
@@ -127,7 +106,6 @@ struct quectel_data {
struct l_timeout *init_timeout;
size_t init_count;
guint init_cmd;
- const struct mux_initialization_data *mux_order;
};
struct dbus_hw {
@@ -860,7 +838,6 @@ static GAtChat *create_chat(struct ofono_modem *modem, char *debug)
static void cmux_gatmux(struct ofono_modem *modem)
{
struct quectel_data *data = ofono_modem_get_data(modem);
- GAtChat *chat;
DBG("%p", modem);
@@ -876,21 +853,18 @@ static void cmux_gatmux(struct ofono_modem *modem)
g_at_mux_start(data->mux);
- for (int i = 0; i < QUECTEL_MUX_TYPE_MAX; i++) {
- chat = create_chat(modem, data->mux_order[i].chat_debug);
-
- if (!chat) {
- ofono_error("failed to create %schannel",
- data->mux_order[i].chat_debug);
- close_serial(modem);
- return;
- }
-
- if (data->mux_order[i].mux_type == QUECTEL_MUX_TYPE_AUX)
- data->aux = chat;
- else
- data->modem = chat;
+ data->modem = create_chat(modem, "Modem: ");
+ if (!data->modem) {
+ ofono_error("failed to create modem channel");
+ close_serial(modem);
+ return;
+ }
+ data->aux = create_chat(modem, "Aux: ");
+ if (!data->aux) {
+ ofono_error("failed to create aux channel");
+ close_serial(modem);
+ return;
}
setup_aux(modem);
@@ -906,9 +880,7 @@ static void mux_ready_cb(struct l_timeout *timeout, void *user_data)
DBG("%p", modem);
/* check if the last (and thus all) virtual gsm tty's are created */
- ret = stat(ofono_modem_get_string(modem,
- data->mux_order[QUECTEL_MUX_TYPE_MAX - 1].n_gsm_key),
- &st);
+ ret = stat(ofono_modem_get_string(modem, "Modem"), &st);
if (ret < 0) {
if (data->mux_ready_count++ < 5) {
/* not ready yet; try again in 100 ms*/
@@ -985,10 +957,8 @@ static void cmux_ngsm(struct ofono_modem *modem)
* the kernel does not yet support mapping the underlying serial device
* to its virtual gsm ttys, so hard-code gsmtty1 gsmtty2 for now
*/
- for (int i = 0; i < QUECTEL_MUX_TYPE_MAX; i++) {
- ofono_modem_set_string(modem, data->mux_order[i].n_gsm_key,
- data->mux_order[i].n_gsm_value);
- }
+ ofono_modem_set_string(modem, "Modem", "/dev/gsmtty1");
+ ofono_modem_set_string(modem, "Aux", "/dev/gsmtty2");
/* wait for gsmtty devices to appear */
if (!l_timeout_create_ms(100, mux_ready_cb, modem, NULL)) {
@@ -1044,8 +1014,6 @@ static void cgmm_cb(int ok, GAtResult *result, void *user_data)
return;
}
- data->mux_order = mux_order_default;
-
if (strcmp(model, "UC15") == 0) {
DBG("%p model UC15", modem);
data->vendor = OFONO_VENDOR_QUECTEL;
@@ -1062,7 +1030,6 @@ static void cgmm_cb(int ok, GAtResult *result, void *user_data)
DBG("%p model EC21", modem);
data->vendor = OFONO_VENDOR_QUECTEL;
data->model = QUECTEL_EC21;
- data->mux_order = mux_order_ec21;
} else {
ofono_warn("%p unknown model: '%s'", modem, model);
data->vendor = OFONO_VENDOR_QUECTEL;