diff -Nru modemmanager-1.16.6/debian/changelog modemmanager-1.16.6/debian/changelog --- modemmanager-1.16.6/debian/changelog 2021-06-25 21:32:16.000000000 +0800 +++ modemmanager-1.16.6/debian/changelog 2021-10-06 15:58:33.000000000 +0800 @@ -1,3 +1,9 @@ +modemmanager (1.16.6-3~22.04) experimental; urgency=medium + + * Apply upstream patch to fix firmware upgrading problem for Foxconn and Quectel modems. + + -- Jerry Lee Wed, 06 Oct 2021 15:58:33 +0800 + modemmanager (1.16.6-2) experimental; urgency=medium * debian/control: include python build-depends for tests diff -Nru modemmanager-1.16.6/debian/patches/01_modem-quectel.patch modemmanager-1.16.6/debian/patches/01_modem-quectel.patch --- modemmanager-1.16.6/debian/patches/01_modem-quectel.patch 1970-01-01 08:00:00.000000000 +0800 +++ modemmanager-1.16.6/debian/patches/01_modem-quectel.patch 2021-10-06 15:54:52.000000000 +0800 @@ -0,0 +1,258 @@ +Description: add support for EM120/160 PCIe modules +Origin: upstream, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/83ac82470589a3672092a0ba0be855093b1cf5e2 +Applied-Upstream: 1.18.2, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commits/1.18.2 +Last-Update: 2021-10-05 +--- a/plugins/Makefile.am ++++ b/plugins/Makefile.am +@@ -1276,6 +1276,12 @@ + quectel/mm-broadband-modem-qmi-quectel.h \ + $(NULL) + endif ++if WITH_MBIM ++libmm_plugin_quectel_la_SOURCES += \ ++ quectel/mm-broadband-modem-mbim-quectel.c \ ++ quectel/mm-broadband-modem-mbim-quectel.h \ ++ $(NULL) ++endif + libmm_plugin_quectel_la_CPPFLAGS = \ + $(PLUGIN_COMMON_COMPILER_FLAGS) \ + -DMM_MODULE_NAME=\"quectel\" \ +--- /dev/null ++++ b/plugins/quectel/mm-broadband-modem-mbim-quectel.c +@@ -0,0 +1,132 @@ ++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * 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: ++ * ++ * Copyright (C) 2020 Aleksander Morgado ++ * Copyright (C) 2021 Ivan Mikhanchuk ++ */ ++ ++#include ++ ++#include "mm-base-modem-at.h" ++#include "mm-log-object.h" ++#include "mm-iface-modem.h" ++#include "mm-iface-modem-firmware.h" ++#include "mm-iface-modem-time.h" ++#include "mm-shared-quectel.h" ++#include "mm-modem-helpers-quectel.h" ++#include "mm-broadband-modem-mbim-quectel.h" ++ ++static void iface_modem_firmware_init (MMIfaceModemFirmware *iface); ++static void iface_modem_time_init (MMIfaceModemTime *iface); ++static void shared_quectel_init (MMSharedQuectel *iface); ++ ++G_DEFINE_TYPE_EXTENDED (MMBroadbandModemMbimQuectel, mm_broadband_modem_mbim_quectel, MM_TYPE_BROADBAND_MODEM_MBIM, 0, ++ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_FIRMWARE, iface_modem_firmware_init) ++ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_TIME, iface_modem_time_init) ++ G_IMPLEMENT_INTERFACE (MM_TYPE_SHARED_QUECTEL, shared_quectel_init)) ++ ++/*****************************************************************************/ ++/* Firmware update settings */ ++ ++static MMFirmwareUpdateSettings * ++firmware_load_update_settings_finish (MMIfaceModemFirmware *self, ++ GAsyncResult *res, ++ GError **error) ++{ ++ return g_task_propagate_pointer (G_TASK (res), error); ++} ++ ++static void ++quectel_get_firmware_version_ready (MMBaseModem *modem, ++ GAsyncResult *res, ++ GTask *task) ++{ ++ MMFirmwareUpdateSettings *update_settings; ++ const gchar *version; ++ ++ update_settings = mm_firmware_update_settings_new (MM_MODEM_FIRMWARE_UPDATE_METHOD_FIREHOSE); ++ ++ version = mm_base_modem_at_command_finish (modem, res, NULL); ++ if (version) ++ mm_firmware_update_settings_set_version (update_settings, version); ++ g_task_return_pointer (task, update_settings, g_object_unref); ++ g_object_unref (task); ++} ++ ++static void ++firmware_load_update_settings (MMIfaceModemFirmware *self, ++ GAsyncReadyCallback callback, ++ gpointer user_data) ++{ ++ GTask *task; ++ ++ task = g_task_new (self, NULL, callback, user_data); ++ ++ mm_base_modem_at_command (MM_BASE_MODEM (self), ++ "+QGMR?", ++ 3, ++ FALSE, ++ (GAsyncReadyCallback) quectel_get_firmware_version_ready, ++ task); ++} ++ ++/*****************************************************************************/ ++ ++MMBroadbandModemMbimQuectel * ++mm_broadband_modem_mbim_quectel_new (const gchar *device, ++ const gchar **drivers, ++ const gchar *plugin, ++ guint16 vendor_id, ++ guint16 product_id) ++{ ++ return g_object_new (MM_TYPE_BROADBAND_MODEM_MBIM_QUECTEL, ++ MM_BASE_MODEM_DEVICE, device, ++ MM_BASE_MODEM_DRIVERS, drivers, ++ MM_BASE_MODEM_PLUGIN, plugin, ++ MM_BASE_MODEM_VENDOR_ID, vendor_id, ++ MM_BASE_MODEM_PRODUCT_ID, product_id, ++ /* include carrier information */ ++ MM_IFACE_MODEM_FIRMWARE_IGNORE_CARRIER, FALSE, ++ /* MBIM bearer supports NET only */ ++ MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, ++ MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, ++ NULL); ++} ++ ++static void ++mm_broadband_modem_mbim_quectel_init (MMBroadbandModemMbimQuectel *self) ++{ ++} ++ ++static void ++iface_modem_firmware_init (MMIfaceModemFirmware *iface) ++{ ++ iface->load_update_settings = firmware_load_update_settings; ++ iface->load_update_settings_finish = firmware_load_update_settings_finish; ++} ++ ++static void ++iface_modem_time_init (MMIfaceModemTime *iface) ++{ ++ iface->check_support = mm_shared_quectel_time_check_support; ++ iface->check_support_finish = mm_shared_quectel_time_check_support_finish; ++} ++ ++static void ++shared_quectel_init (MMSharedQuectel *iface) ++{ ++} ++ ++static void ++mm_broadband_modem_mbim_quectel_class_init (MMBroadbandModemMbimQuectelClass *klass) ++{ ++} +--- /dev/null ++++ b/plugins/quectel/mm-broadband-modem-mbim-quectel.h +@@ -0,0 +1,48 @@ ++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * 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: ++ * ++ * Copyright (C) 2020 Aleksander Morgado ++ * Copyright (C) 2021 Ivan Mikhanchuk ++ */ ++ ++#ifndef MM_BROADBAND_MODEM_MBIM_QUECTEL_H ++#define MM_BROADBAND_MODEM_MBIM_QUECTEL_H ++ ++#include "mm-broadband-modem-mbim.h" ++ ++#define MM_TYPE_BROADBAND_MODEM_MBIM_QUECTEL (mm_broadband_modem_mbim_quectel_get_type ()) ++#define MM_BROADBAND_MODEM_MBIM_QUECTEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_BROADBAND_MODEM_MBIM_QUECTEL, MMBroadbandModemMbimQuectel)) ++#define MM_BROADBAND_MODEM_MBIM_QUECTEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_BROADBAND_MODEM_MBIM_QUECTEL, MMBroadbandModemMbimQuectelClass)) ++#define MM_IS_BROADBAND_MODEM_MBIM_QUECTEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_BROADBAND_MODEM_MBIM_QUECTEL)) ++#define MM_IS_BROADBAND_MODEM_MBIM_QUECTEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_BROADBAND_MODEM_MBIM_QUECTEL)) ++#define MM_BROADBAND_MODEM_MBIM_QUECTEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_BROADBAND_MODEM_MBIM_QUECTEL, MMBroadbandModemMbimQuectelClass)) ++ ++typedef struct _MMBroadbandModemMbimQuectel MMBroadbandModemMbimQuectel; ++typedef struct _MMBroadbandModemMbimQuectelClass MMBroadbandModemMbimQuectelClass; ++ ++struct _MMBroadbandModemMbimQuectel { ++ MMBroadbandModemMbim parent; ++}; ++ ++struct _MMBroadbandModemMbimQuectelClass{ ++ MMBroadbandModemMbimClass parent; ++}; ++ ++GType mm_broadband_modem_mbim_quectel_get_type (void); ++ ++MMBroadbandModemMbimQuectel *mm_broadband_modem_mbim_quectel_new (const gchar *device, ++ const gchar **drivers, ++ const gchar *plugin, ++ guint16 vendor_id, ++ guint16 product_id); ++ ++#endif /* MM_BROADBAND_MODEM_MBIM_QUECTEL_H */ +--- a/plugins/quectel/mm-plugin-quectel.c ++++ b/plugins/quectel/mm-plugin-quectel.c +@@ -29,6 +29,7 @@ + + #if defined WITH_MBIM + #include "mm-broadband-modem-mbim.h" ++#include "mm-broadband-modem-mbim-quectel.h" + #endif + + G_DEFINE_TYPE (MMPluginQuectel, mm_plugin_quectel, MM_TYPE_PLUGIN) +@@ -60,12 +61,21 @@ + + #if defined WITH_MBIM + if (mm_port_probe_list_has_mbim_port (probes)) { +- mm_obj_dbg (self, "MBIM-powered Quectel modem found..."); +- return MM_BASE_MODEM (mm_broadband_modem_mbim_new (uid, +- drivers, +- mm_plugin_get_name (self), +- vendor, +- product)); ++ if (vendor == 0x1eac) { ++ mm_obj_dbg (self, "MBIM-powered PCI Quectel modem found..."); ++ return MM_BASE_MODEM (mm_broadband_modem_mbim_quectel_new (uid, ++ drivers, ++ mm_plugin_get_name (self), ++ vendor, ++ product)); ++ } else { ++ mm_obj_dbg (self, "MBIM-powered Quectel modem found..."); ++ return MM_BASE_MODEM (mm_broadband_modem_mbim_new (uid, ++ drivers, ++ mm_plugin_get_name (self), ++ vendor, ++ product)); ++ } + } + #endif + +@@ -81,9 +91,12 @@ + G_MODULE_EXPORT MMPlugin * + mm_plugin_create (void) + { +- static const gchar *subsystems[] = { "tty", "net", "usbmisc", NULL }; ++ static const gchar *subsystems[] = { "tty", "net", "usbmisc", "wwan", NULL }; + static const gchar *vendor_strings[] = { "quectel", NULL }; +- static const guint16 vendor_ids[] = { 0x2c7c, 0 }; ++ static const guint16 vendor_ids[] = { ++ 0x2c7c, /* usb vid */ ++ 0x1eac, /* pci vid */ ++ 0 }; + + return MM_PLUGIN ( + g_object_new (MM_TYPE_PLUGIN_QUECTEL, diff -Nru modemmanager-1.16.6/debian/patches/02_modem-foxconn-1.patch modemmanager-1.16.6/debian/patches/02_modem-foxconn-1.patch --- modemmanager-1.16.6/debian/patches/02_modem-foxconn-1.patch 1970-01-01 08:00:00.000000000 +0800 +++ modemmanager-1.16.6/debian/patches/02_modem-foxconn-1.patch 2021-10-06 15:55:27.000000000 +0800 @@ -0,0 +1,15 @@ +Description: add wwan subsystem to kernel event auto scan report +Origin: upstream, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/21ae558fe3600c84b3ca7dcd9bf50a3ba576c7c9 +Applied-Upstream: 1.18.2, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commits/1.18.2 +Last-Update: 2021-10-05 +--- a/cli/mmcli-manager.c ++++ b/cli/mmcli-manager.c +@@ -449,7 +449,7 @@ + + #if defined WITH_UDEV + if (report_kernel_event_auto_scan) { +- const gchar *subsys[] = { "tty", "usbmisc", "net", "rpmsg", NULL }; ++ const gchar *subsys[] = { "tty", "usbmisc", "net", "rpmsg", "wwan", NULL }; + guint i; + + ctx->udev = g_udev_client_new (subsys); diff -Nru modemmanager-1.16.6/debian/patches/03_modem-foxconn-2.patch modemmanager-1.16.6/debian/patches/03_modem-foxconn-2.patch --- modemmanager-1.16.6/debian/patches/03_modem-foxconn-2.patch 1970-01-01 08:00:00.000000000 +0800 +++ modemmanager-1.16.6/debian/patches/03_modem-foxconn-2.patch 2021-10-06 15:56:00.000000000 +0800 @@ -0,0 +1,247 @@ +Description: get model through QMI-over-MBIM + move the modem_load_model() async method from mm-broadband-modem-qmi.c + to mm-shared-qmi.c, and then make use of the method from both the QMI + and MBIM implementations. +Origin: upstream, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/76e700f4fd703f952208993330ab098305c13d6b +Applied-Upstream: 1.18.2, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commits/1.18.2 +Last-Update: 2021-10-05 +--- a/src/mm-broadband-modem-mbim.c ++++ b/src/mm-broadband-modem-mbim.c +@@ -670,6 +670,14 @@ + /* Model loading (Modem interface) */ + + static gchar * ++modem_load_model_default (MMIfaceModem *self) ++{ ++ return g_strdup_printf ("MBIM [%04X:%04X]", ++ (mm_base_modem_get_vendor_id (MM_BASE_MODEM (self)) & 0xFFFF), ++ (mm_base_modem_get_product_id (MM_BASE_MODEM (self)) & 0xFFFF)); ++} ++ ++static gchar * + modem_load_model_finish (MMIfaceModem *self, + GAsyncResult *res, + GError **error) +@@ -677,6 +685,29 @@ + return g_task_propagate_pointer (G_TASK (res), error); + } + ++#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED ++ ++static void ++qmi_load_model_ready (MMIfaceModem *self, ++ GAsyncResult *res, ++ GTask *task) ++{ ++ gchar *model = NULL; ++ GError *error = NULL; ++ ++ model = mm_shared_qmi_load_model_finish (self, res, &error); ++ if (!model) { ++ mm_obj_dbg (self, "couldn't load model using QMI over MBIM: %s", error->message); ++ model = modem_load_model_default (self); ++ g_clear_error (&error); ++ } ++ ++ g_task_return_pointer (task, model, g_free); ++ g_object_unref (task); ++} ++ ++#endif ++ + static void + modem_load_model (MMIfaceModem *self, + GAsyncReadyCallback callback, +@@ -686,18 +717,23 @@ + GTask *task; + MMPortMbim *port; + ++ task = g_task_new (self, NULL, callback, user_data); ++ + port = mm_broadband_modem_mbim_peek_port_mbim (MM_BROADBAND_MODEM_MBIM (self)); + if (port) { + model = g_strdup (mm_kernel_device_get_physdev_product ( + mm_port_peek_kernel_device (MM_PORT (port)))); + } + +- if (!model) +- model = g_strdup_printf ("MBIM [%04X:%04X]", +- (mm_base_modem_get_vendor_id (MM_BASE_MODEM (self)) & 0xFFFF), +- (mm_base_modem_get_product_id (MM_BASE_MODEM (self)) & 0xFFFF)); ++#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED ++ if (!model) { ++ mm_shared_qmi_load_model (self, (GAsyncReadyCallback)qmi_load_model_ready, task); ++ return; ++ } ++#endif + +- task = g_task_new (self, NULL, callback, user_data); ++ if (!model) ++ model = modem_load_model_default (self); + g_task_return_pointer (task, model, g_free); + g_object_unref (task); + } +--- a/src/mm-broadband-modem-qmi.c ++++ b/src/mm-broadband-modem-qmi.c +@@ -397,66 +397,6 @@ + } + + /*****************************************************************************/ +-/* Model loading (Modem interface) */ +- +-static gchar * +-modem_load_model_finish (MMIfaceModem *self, +- GAsyncResult *res, +- GError **error) +-{ +- return g_task_propagate_pointer (G_TASK (res), error); +-} +- +-static void +-dms_get_model_ready (QmiClientDms *client, +- GAsyncResult *res, +- GTask *task) +-{ +- QmiMessageDmsGetModelOutput *output = NULL; +- GError *error = NULL; +- +- output = qmi_client_dms_get_model_finish (client, res, &error); +- if (!output) { +- g_prefix_error (&error, "QMI operation failed: "); +- g_task_return_error (task, error); +- } else if (!qmi_message_dms_get_model_output_get_result (output, &error)) { +- g_prefix_error (&error, "Couldn't get Model: "); +- g_task_return_error (task, error); +- } else { +- const gchar *str; +- +- qmi_message_dms_get_model_output_get_model (output, &str, NULL); +- g_task_return_pointer (task, g_strdup (str), g_free); +- } +- +- if (output) +- qmi_message_dms_get_model_output_unref (output); +- +- g_object_unref (task); +-} +- +-static void +-modem_load_model (MMIfaceModem *self, +- GAsyncReadyCallback callback, +- gpointer user_data) +-{ +- QmiClient *client = NULL; +- +- if (!mm_shared_qmi_ensure_client (MM_SHARED_QMI (self), +- QMI_SERVICE_DMS, &client, +- callback, user_data)) +- return; +- +- mm_obj_dbg (self, "loading model..."); +- qmi_client_dms_get_model (QMI_CLIENT_DMS (client), +- NULL, +- 5, +- NULL, +- (GAsyncReadyCallback)dms_get_model_ready, +- g_task_new (self, NULL, callback, user_data)); +-} +- +-/*****************************************************************************/ + /* Revision loading (Modem interface) */ + + static gchar * +@@ -10045,8 +9985,8 @@ + iface->set_current_capabilities_finish = mm_shared_qmi_set_current_capabilities_finish; + iface->load_manufacturer = modem_load_manufacturer; + iface->load_manufacturer_finish = modem_load_manufacturer_finish; +- iface->load_model = modem_load_model; +- iface->load_model_finish = modem_load_model_finish; ++ iface->load_model = mm_shared_qmi_load_model; ++ iface->load_model_finish = mm_shared_qmi_load_model_finish; + iface->load_revision = modem_load_revision; + iface->load_revision_finish = modem_load_revision_finish; + iface->load_hardware_revision = modem_load_hardware_revision; +--- a/src/mm-shared-qmi.c ++++ b/src/mm-shared-qmi.c +@@ -1154,6 +1154,66 @@ + } + + /*****************************************************************************/ ++/* Load model (Modem interface) */ ++ ++gchar * ++mm_shared_qmi_load_model_finish (MMIfaceModem *self, ++ GAsyncResult *res, ++ GError **error) ++{ ++ return g_task_propagate_pointer (G_TASK (res), error); ++} ++ ++static void ++dms_get_model_ready (QmiClientDms *client, ++ GAsyncResult *res, ++ GTask *task) ++{ ++ QmiMessageDmsGetModelOutput *output = NULL; ++ GError *error = NULL; ++ ++ output = qmi_client_dms_get_model_finish (client, res, &error); ++ if (!output) { ++ g_prefix_error (&error, "QMI operation failed: "); ++ g_task_return_error (task, error); ++ } else if (!qmi_message_dms_get_model_output_get_result (output, &error)) { ++ g_prefix_error (&error, "Couldn't get Model: "); ++ g_task_return_error (task, error); ++ } else { ++ const gchar *str; ++ ++ qmi_message_dms_get_model_output_get_model (output, &str, NULL); ++ g_task_return_pointer (task, g_strdup (str), g_free); ++ } ++ ++ if (output) ++ qmi_message_dms_get_model_output_unref (output); ++ ++ g_object_unref (task); ++} ++ ++void ++mm_shared_qmi_load_model (MMIfaceModem *self, ++ GAsyncReadyCallback callback, ++ gpointer user_data) ++{ ++ QmiClient *client = NULL; ++ ++ if (!mm_shared_qmi_ensure_client (MM_SHARED_QMI (self), ++ QMI_SERVICE_DMS, &client, ++ callback, user_data)) ++ return; ++ ++ mm_obj_dbg (self, "loading model..."); ++ qmi_client_dms_get_model (QMI_CLIENT_DMS (client), ++ NULL, ++ 5, ++ NULL, ++ (GAsyncReadyCallback)dms_get_model_ready, ++ g_task_new (self, NULL, callback, user_data)); ++} ++ ++/*****************************************************************************/ + /* Allowed modes setting (Modem interface) */ + + typedef struct { +--- a/src/mm-shared-qmi.h ++++ b/src/mm-shared-qmi.h +@@ -94,6 +94,12 @@ + gboolean mm_shared_qmi_set_current_capabilities_finish (MMIfaceModem *self, + GAsyncResult *res, + GError **error); ++void mm_shared_qmi_load_model (MMIfaceModem *self, ++ GAsyncReadyCallback callback, ++ gpointer user_data); ++gchar *mm_shared_qmi_load_model_finish (MMIfaceModem *self, ++ GAsyncResult *res, ++ GError **error); + void mm_shared_qmi_load_supported_modes (MMIfaceModem *self, + GAsyncReadyCallback callback, + gpointer user_data); diff -Nru modemmanager-1.16.6/debian/patches/04_modem-foxconn-3.patch modemmanager-1.16.6/debian/patches/04_modem-foxconn-3.patch --- modemmanager-1.16.6/debian/patches/04_modem-foxconn-3.patch 1970-01-01 08:00:00.000000000 +0800 +++ modemmanager-1.16.6/debian/patches/04_modem-foxconn-3.patch 2021-10-06 15:56:32.000000000 +0800 @@ -0,0 +1,17 @@ +Description: Increase mbim_device_open_full timeout + After fwupd upgrade with mbim-qdu method, MM sometimes generate plugin failed with the regenerated MHI driver. + This patch increases the mbim_device_open_full timeout from 30 seconds to 45 seconds to prevent such issue. +Origin: upstream, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/52bf2c641171ded9e617022f40497c8984520371 +Applied-Upstream: 1.18.2, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commits/1.18.2 +Last-Update: 2021-10-05 +--- a/src/mm-port-mbim.c ++++ b/src/mm-port-mbim.c +@@ -361,7 +361,7 @@ + /* Now open the MBIM device */ + mbim_device_open_full (self->priv->mbim_device, + MBIM_DEVICE_OPEN_FLAGS_PROXY, +- 30, ++ 45, + g_task_get_cancellable (task), + (GAsyncReadyCallback)mbim_device_open_ready, + task); diff -Nru modemmanager-1.16.6/debian/patches/05_modem-foxconn-4.patch modemmanager-1.16.6/debian/patches/05_modem-foxconn-4.patch --- modemmanager-1.16.6/debian/patches/05_modem-foxconn-4.patch 1970-01-01 08:00:00.000000000 +0800 +++ modemmanager-1.16.6/debian/patches/05_modem-foxconn-4.patch 2021-10-06 15:57:14.000000000 +0800 @@ -0,0 +1,622 @@ +Description: Rename carrier-mapping to t77w968-carrier-mapping +Origin: upstream, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/33e2b023ef01bea9da37ae2beb192f7d92bce47a +Applied-Upstream: 1.18.2, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commits/1.18.2 +Last-Update: 2021-10-05 +--- a/plugins/Makefile.am ++++ b/plugins/Makefile.am +@@ -716,11 +716,11 @@ + + dist_udevrules_DATA += foxconn/77-mm-foxconn-port-types.rules + +-dist_pkgdata_DATA += foxconn/mm-foxconn-carrier-mapping.conf ++dist_pkgdata_DATA += foxconn/mm-foxconn-t77w968-carrier-mapping.conf + + AM_CFLAGS += \ + -DTESTUDEVRULESDIR_FOXCONN=\"${srcdir}/foxconn\" \ +- -DTESTKEYFILE_FOXCONN=\"${srcdir}/foxconn/mm-foxconn-carrier-mapping.conf\" \ ++ -DTESTKEYFILE_FOXCONN=\"${srcdir}/foxconn/mm-foxconn-t77w968-carrier-mapping.conf\" \ + $(NULL) + + endif +--- a/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c ++++ b/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c +@@ -499,7 +499,7 @@ + MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE, + MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE, + MM_IFACE_MODEM_LOCATION_ALLOW_GPS_UNMANAGED_ALWAYS, TRUE, +- MM_IFACE_MODEM_CARRIER_CONFIG_MAPPING, PKGDATADIR "/mm-foxconn-carrier-mapping.conf", ++ MM_IFACE_MODEM_CARRIER_CONFIG_MAPPING, PKGDATADIR "/mm-foxconn-t77w968-carrier-mapping.conf", + NULL); + } + +--- a/plugins/foxconn/mm-foxconn-carrier-mapping.conf ++++ /dev/null +@@ -1,281 +0,0 @@ +- +-# +-# T77W968 carrier mapping table +-# +-# This table maps the MCCMNC of the SIM card with the corresponding +-# configuration description as reported by the QMI PDC service in +-# this module. +-# +- +-[foxconn t77w968] +- +-# AT&T +-302220=ATT +-302221=ATT +-31030=ATT +-31070=ATT +-31090=ATT +-310150=ATT +-310170=ATT +-310280=ATT +-310380=ATT +-310410=ATT +-310560=ATT +-310680=ATT +-311180=ATT +- +-# FirstNet +-312670=A2 +-313100=A2 +-313110=A2 +-313120=A2 +-313130=A2 +-313140=A2 +- +-# Verizon +-310590=Verizon +-310890=Verizon +-311270=Verizon +-311480=Verizon +- +-# Vodafone +-20205=Vodafone +-20404=Vodafone +-20601=Vodafone +-20810=Vodafone +-21401=Vodafone +-21670=Vodafone +-21910=Vodafone +-22005=Vodafone +-22210=Vodafone +-22601=Vodafone +-23003=Vodafone +-23201=Vodafone +-23415=Vodafone +-23801=Vodafone +-24405=Vodafone +-24602=Vodafone +-24705=Vodafone +-24802=Vodafone +-25001=Vodafone +-26202=Vodafone +-26209=Vodafone +-26801=Vodafone +-27077=Vodafone +-27201=Vodafone +-27402=Vodafone +-27602=Vodafone +-27801=Vodafone +-28001=Vodafone +-28401=Vodafone +-28602=Vodafone +-28802=Vodafone +-29340=Vodafone +-29403=Vodafone +-40004=Vodafone +-40401=Vodafone +-40405=Vodafone +-40411=Vodafone +-40413=Vodafone +-40415=Vodafone +-40420=Vodafone +-40427=Vodafone +-40430=Vodafone +-40443=Vodafone +-40446=Vodafone +-40460=Vodafone +-40484=Vodafone +-40486=Vodafone +-40488=Vodafone +-40566=Vodafone +-40567=Vodafone +-405750=Vodafone +-405751=Vodafone +-405752=Vodafone +-405753=Vodafone +-405754=Vodafone +-405755=Vodafone +-405756=Vodafone +-41302=Vodafone +-42403=Vodafone +-42602=Vodafone +-42702=Vodafone +-50213=Vodafone +-50219=Vodafone +-50503=Vodafone +-52503=Vodafone +-52505=Vodafone +-53001=Vodafone +-54201=Vodafone +-60202=Vodafone +-62002=Vodafone +-63001=Vodafone +-63902=Vodafone +-64004=Vodafone +-64304=Vodafone +-64710=Vodafone +-65101=Vodafone +-65501=Vodafone +-73001=Vodafone +-90128=Vodafone +- +-# Orange +-20610=Orange +-20801=Orange +-20802=Orange +-21403=Orange +-22610=Orange +-23101=Orange +-23430=Orange +-23433=Orange +-23434=Orange +-25901=Orange +-26003=Orange +-27099=Orange +-28310=Orange +- +-# Telefonica Movistar +-21405=Telefonica +-21407=Telefonica +- +-# Swisscom +-22801=Swisscom +-29501=Swisscom +- +-# Telstra +-50501=Telstra +-50506=Telstra +-50571=Telstra +-50572=Telstra +- +-# Sprint +-310120=Sprint +- +-# Optus +-50202=Optus +- +-# NTT DoCoMo +-44002=Docomo +-44003=Docomo +-44009=Docomo +-44010=Docomo +-44011=Docomo +-44012=Docomo +-44013=Docomo +-44014=Docomo +-44015=Docomo +-44016=Docomo +-44017=Docomo +-44018=Docomo +-44019=Docomo +-44022=Docomo +-44023=Docomo +-44024=Docomo +-44025=Docomo +-44026=Docomo +-44027=Docomo +-44028=Docomo +-44029=Docomo +-44030=Docomo +-44031=Docomo +-44032=Docomo +-44033=Docomo +-44034=Docomo +-44035=Docomo +-44036=Docomo +-44037=Docomo +-44038=Docomo +-44039=Docomo +-44049=Docomo +-44058=Docomo +-44060=Docomo +-44061=Docomo +-44062=Docomo +-44063=Docomo +-44064=Docomo +-44065=Docomo +-44066=Docomo +-44067=Docomo +-44068=Docomo +-44069=Docomo +-44087=Docomo +-44099=Docomo +-44140=Docomo +-44141=Docomo +-44142=Docomo +-44143=Docomo +-44144=Docomo +-44145=Docomo +-44190=Docomo +-44101=Docomo +-44192=Docomo +-44193=Docomo +-44194=Docomo +-44198=Docomo +-44199=Docomo +- +-# KDDI +-44007=KDDI +-44008=KDDI +-44050=KDDI +-44051=KDDI +-44052=KDDI +-44053=KDDI +-44054=KDDI +-44055=KDDI +-44056=KDDI +-44070=KDDI +-44071=KDDI +-44072=KDDI +-44073=KDDI +-44074=KDDI +-44075=KDDI +-44076=KDDI +-44077=KDDI +-44078=KDDI +-44079=KDDI +-44080=KDDI +-44081=KDDI +-44082=KDDI +-44083=KDDI +-44084=KDDI +-44085=KDDI +-44086=KDDI +-44088=KDDI +-44089=KDDI +-44150=KDDI +-44151=KDDI +-44170=KDDI +- +-# SoftBank +-44000=SBM +-44004=SBM +-44006=SBM +-44020=SBM +-44021=SBM +-44040=SBM +-44041=SBM +-44042=SBM +-44043=SBM +-44044=SBM +-44045=SBM +-44046=SBM +-44047=SBM +-44048=SBM +-44090=SBM +-44092=SBM +-44093=SBM +-44094=SBM +-44095=SBM +-44096=SBM +-44097=SBM +-44098=SBM +-44101=SBM +-44161=SBM +-44162=SBM +-44163=SBM +-44164=SBM +-44165=SBM +- +-# Others +-generic=GCF +--- /dev/null ++++ b/plugins/foxconn/mm-foxconn-t77w968-carrier-mapping.conf +@@ -0,0 +1,281 @@ ++ ++# ++# T77W968 carrier mapping table ++# ++# This table maps the MCCMNC of the SIM card with the corresponding ++# configuration description as reported by the QMI PDC service in ++# this module. ++# ++ ++[foxconn t77w968] ++ ++# AT&T ++302220=ATT ++302221=ATT ++31030=ATT ++31070=ATT ++31090=ATT ++310150=ATT ++310170=ATT ++310280=ATT ++310380=ATT ++310410=ATT ++310560=ATT ++310680=ATT ++311180=ATT ++ ++# FirstNet ++312670=A2 ++313100=A2 ++313110=A2 ++313120=A2 ++313130=A2 ++313140=A2 ++ ++# Verizon ++310590=Verizon ++310890=Verizon ++311270=Verizon ++311480=Verizon ++ ++# Vodafone ++20205=Vodafone ++20404=Vodafone ++20601=Vodafone ++20810=Vodafone ++21401=Vodafone ++21670=Vodafone ++21910=Vodafone ++22005=Vodafone ++22210=Vodafone ++22601=Vodafone ++23003=Vodafone ++23201=Vodafone ++23415=Vodafone ++23801=Vodafone ++24405=Vodafone ++24602=Vodafone ++24705=Vodafone ++24802=Vodafone ++25001=Vodafone ++26202=Vodafone ++26209=Vodafone ++26801=Vodafone ++27077=Vodafone ++27201=Vodafone ++27402=Vodafone ++27602=Vodafone ++27801=Vodafone ++28001=Vodafone ++28401=Vodafone ++28602=Vodafone ++28802=Vodafone ++29340=Vodafone ++29403=Vodafone ++40004=Vodafone ++40401=Vodafone ++40405=Vodafone ++40411=Vodafone ++40413=Vodafone ++40415=Vodafone ++40420=Vodafone ++40427=Vodafone ++40430=Vodafone ++40443=Vodafone ++40446=Vodafone ++40460=Vodafone ++40484=Vodafone ++40486=Vodafone ++40488=Vodafone ++40566=Vodafone ++40567=Vodafone ++405750=Vodafone ++405751=Vodafone ++405752=Vodafone ++405753=Vodafone ++405754=Vodafone ++405755=Vodafone ++405756=Vodafone ++41302=Vodafone ++42403=Vodafone ++42602=Vodafone ++42702=Vodafone ++50213=Vodafone ++50219=Vodafone ++50503=Vodafone ++52503=Vodafone ++52505=Vodafone ++53001=Vodafone ++54201=Vodafone ++60202=Vodafone ++62002=Vodafone ++63001=Vodafone ++63902=Vodafone ++64004=Vodafone ++64304=Vodafone ++64710=Vodafone ++65101=Vodafone ++65501=Vodafone ++73001=Vodafone ++90128=Vodafone ++ ++# Orange ++20610=Orange ++20801=Orange ++20802=Orange ++21403=Orange ++22610=Orange ++23101=Orange ++23430=Orange ++23433=Orange ++23434=Orange ++25901=Orange ++26003=Orange ++27099=Orange ++28310=Orange ++ ++# Telefonica Movistar ++21405=Telefonica ++21407=Telefonica ++ ++# Swisscom ++22801=Swisscom ++29501=Swisscom ++ ++# Telstra ++50501=Telstra ++50506=Telstra ++50571=Telstra ++50572=Telstra ++ ++# Sprint ++310120=Sprint ++ ++# Optus ++50202=Optus ++ ++# NTT DoCoMo ++44002=Docomo ++44003=Docomo ++44009=Docomo ++44010=Docomo ++44011=Docomo ++44012=Docomo ++44013=Docomo ++44014=Docomo ++44015=Docomo ++44016=Docomo ++44017=Docomo ++44018=Docomo ++44019=Docomo ++44022=Docomo ++44023=Docomo ++44024=Docomo ++44025=Docomo ++44026=Docomo ++44027=Docomo ++44028=Docomo ++44029=Docomo ++44030=Docomo ++44031=Docomo ++44032=Docomo ++44033=Docomo ++44034=Docomo ++44035=Docomo ++44036=Docomo ++44037=Docomo ++44038=Docomo ++44039=Docomo ++44049=Docomo ++44058=Docomo ++44060=Docomo ++44061=Docomo ++44062=Docomo ++44063=Docomo ++44064=Docomo ++44065=Docomo ++44066=Docomo ++44067=Docomo ++44068=Docomo ++44069=Docomo ++44087=Docomo ++44099=Docomo ++44140=Docomo ++44141=Docomo ++44142=Docomo ++44143=Docomo ++44144=Docomo ++44145=Docomo ++44190=Docomo ++44101=Docomo ++44192=Docomo ++44193=Docomo ++44194=Docomo ++44198=Docomo ++44199=Docomo ++ ++# KDDI ++44007=KDDI ++44008=KDDI ++44050=KDDI ++44051=KDDI ++44052=KDDI ++44053=KDDI ++44054=KDDI ++44055=KDDI ++44056=KDDI ++44070=KDDI ++44071=KDDI ++44072=KDDI ++44073=KDDI ++44074=KDDI ++44075=KDDI ++44076=KDDI ++44077=KDDI ++44078=KDDI ++44079=KDDI ++44080=KDDI ++44081=KDDI ++44082=KDDI ++44083=KDDI ++44084=KDDI ++44085=KDDI ++44086=KDDI ++44088=KDDI ++44089=KDDI ++44150=KDDI ++44151=KDDI ++44170=KDDI ++ ++# SoftBank ++44000=SBM ++44004=SBM ++44006=SBM ++44020=SBM ++44021=SBM ++44040=SBM ++44041=SBM ++44042=SBM ++44043=SBM ++44044=SBM ++44045=SBM ++44046=SBM ++44047=SBM ++44048=SBM ++44090=SBM ++44092=SBM ++44093=SBM ++44094=SBM ++44095=SBM ++44096=SBM ++44097=SBM ++44098=SBM ++44101=SBM ++44161=SBM ++44162=SBM ++44163=SBM ++44164=SBM ++44165=SBM ++ ++# Others ++generic=GCF +--- a/plugins/tests/test-keyfiles.c ++++ b/plugins/tests/test-keyfiles.c +@@ -56,9 +56,9 @@ + + #if defined ENABLE_PLUGIN_FOXCONN + static void +-test_foxconn (void) ++test_foxconn_t77w968 (void) + { +- common_test (TESTKEYFILE_FOXCONN); ++ common_test (TESTKEYFILE_FOXCONN_T77W968); + } + #endif + +@@ -69,7 +69,7 @@ + setlocale (LC_ALL, ""); + + g_test_init (&argc, &argv, NULL); +- g_test_add_func ("/MM/test-keyfiles/dummy", test_dummy); ++ g_test_add_func ("/MM/test-keyfiles/foxconn/t77w968", test_foxconn_t77w968); + + #if defined ENABLE_PLUGIN_FOXCONN + g_test_add_func ("/MM/test-keyfiles/foxconn", test_foxconn); diff -Nru modemmanager-1.16.6/debian/patches/06_modem-foxconn-5.patch modemmanager-1.16.6/debian/patches/06_modem-foxconn-5.patch --- modemmanager-1.16.6/debian/patches/06_modem-foxconn-5.patch 1970-01-01 08:00:00.000000000 +0800 +++ modemmanager-1.16.6/debian/patches/06_modem-foxconn-5.patch 2021-10-06 15:57:48.000000000 +0800 @@ -0,0 +1,428 @@ +Description: add T99W175 carrier mapping table +Origin: upstream, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/f72046701659073fbfa97516e155865647acb154 +Applied-Upstream: 1.18.2, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commits/1.18.2 +Last-Update: 2021-10-05 +--- a/plugins/Makefile.am ++++ b/plugins/Makefile.am +@@ -716,11 +716,15 @@ + + dist_udevrules_DATA += foxconn/77-mm-foxconn-port-types.rules + +-dist_pkgdata_DATA += foxconn/mm-foxconn-t77w968-carrier-mapping.conf ++dist_pkgdata_DATA += \ ++ foxconn/mm-foxconn-t77w968-carrier-mapping.conf \ ++ foxconn/mm-foxconn-t99w175-carrier-mapping.conf \ ++ $(NULL) + + AM_CFLAGS += \ + -DTESTUDEVRULESDIR_FOXCONN=\"${srcdir}/foxconn\" \ +- -DTESTKEYFILE_FOXCONN=\"${srcdir}/foxconn/mm-foxconn-t77w968-carrier-mapping.conf\" \ ++ -DTESTKEYFILE_FOXCONN_T77W968=\"${srcdir}/foxconn/mm-foxconn-t77w968-carrier-mapping.conf\" \ ++ -DTESTKEYFILE_FOXCONN_T99W175=\"${srcdir}/foxconn/mm-foxconn-t99w175-carrier-mapping.conf\" \ + $(NULL) + + endif +--- a/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c ++++ b/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c +@@ -489,6 +489,16 @@ + guint16 vendor_id, + guint16 product_id) + { ++ const gchar *carrier_config_mapping = NULL; ++ ++ /* T77W968 (DW5821e is also T77W968) modules use t77w968 carrier mapping table, ++ * T99W175 modules use t99w175 carrier mapping table. */ ++ if ((vendor_id == 0x0489 && (product_id == 0xe0b4 || product_id == 0xe0b5)) || ++ (vendor_id == 0x413c && (product_id == 0x81d7 || product_id == 0x81e0))) ++ carrier_config_mapping = PKGDATADIR "/mm-foxconn-t77w968-carrier-mapping.conf"; ++ else if (vendor_id == 0x105b && (product_id == 0xe0ab || product_id == 0xe0b0 || product_id == 0xe0b1)) ++ carrier_config_mapping = PKGDATADIR "/mm-foxconn-t99w175-carrier-mapping.conf"; ++ + return g_object_new (MM_TYPE_BROADBAND_MODEM_MBIM_FOXCONN, + MM_BASE_MODEM_DEVICE, device, + MM_BASE_MODEM_DRIVERS, drivers, +@@ -499,7 +509,7 @@ + MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE, + MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE, + MM_IFACE_MODEM_LOCATION_ALLOW_GPS_UNMANAGED_ALWAYS, TRUE, +- MM_IFACE_MODEM_CARRIER_CONFIG_MAPPING, PKGDATADIR "/mm-foxconn-t77w968-carrier-mapping.conf", ++ MM_IFACE_MODEM_CARRIER_CONFIG_MAPPING, carrier_config_mapping, + NULL); + } + +--- /dev/null ++++ b/plugins/foxconn/mm-foxconn-t99w175-carrier-mapping.conf +@@ -0,0 +1,344 @@ ++ ++# ++# T99W175 carrier mapping table ++# ++# This table maps the MCCMNC of the SIM card with the corresponding ++# configuration description as reported by the QMI PDC service in ++# this module. ++# ++ ++[foxconn t99w175] ++ ++# AT&T ++302220=ATT ++302221=ATT ++31030=ATT ++31070=ATT ++31090=ATT ++310150=ATT ++310170=ATT ++310280=ATT ++310380=ATT ++310410=ATT ++310560=ATT ++310650=ATT ++310680=ATT ++310980=ATT ++311180=ATT ++90118=ATT ++ ++# FirstNet ++312670=A2 ++313100=A2 ++313110=A2 ++313120=A2 ++313130=A2 ++313140=A2 ++ ++# Orange ++20610=Orange ++20801=Orange ++20802=Orange ++21403=Orange ++21409=Orange ++22610=Orange ++23101=Orange ++23105=Orange ++25901=Orange ++26003=Orange ++26005=Orange ++27099=Orange ++ ++# Swisscom ++22801=Swisscom ++29501=Swisscom ++ ++# Telefonica Movistar ++21405=Telefonica ++21407=Telefonica ++23402=Telefonica ++23410=Telefonica ++23411=Telefonica ++26203=Telefonica ++26207=Telefonica ++26208=Telefonica ++26211=Telefonica ++26217=Telefonica ++26270=Telefonica ++26277=Telefonica ++ ++# Telstra ++50501=Telstra ++50506=Telstra ++50571=Telstra ++50572=Telstra ++ ++# Verizon ++310590=Verizon ++310890=Verizon ++311270=Verizon ++311480=Verizon ++312770=Verizon ++ ++# Vodafone ++20205=Vodafone ++20404=Vodafone ++21401=Vodafone ++21670=Vodafone ++22210=Vodafone ++22601=Vodafone ++23003=Vodafone ++23415=Vodafone ++26202=Vodafone ++26209=Vodafone ++26801=Vodafone ++27201=Vodafone ++27402=Vodafone ++27602=Vodafone ++27801=Vodafone ++28602=Vodafone ++28802=Vodafone ++40004=Vodafone ++40401=Vodafone ++40405=Vodafone ++40411=Vodafone ++40413=Vodafone ++40415=Vodafone ++40420=Vodafone ++40427=Vodafone ++40430=Vodafone ++40443=Vodafone ++40446=Vodafone ++40460=Vodafone ++40484=Vodafone ++40486=Vodafone ++40488=Vodafone ++40566=Vodafone ++40567=Vodafone ++405750=Vodafone ++405751=Vodafone ++405752=Vodafone ++405753=Vodafone ++405754=Vodafone ++405755=Vodafone ++405756=Vodafone ++42702=Vodafone ++46601=Vodafone ++46603=Vodafone ++50503=Vodafone ++53001=Vodafone ++54201=Vodafone ++60202=Vodafone ++62002=Vodafone ++63001=Vodafone ++63902=Vodafone ++64004=Vodafone ++64304=Vodafone ++65101=Vodafone ++65501=Vodafone ++90128=Vodafone ++ ++# NTT DoCoMo ++44002=Docomo ++44003=Docomo ++44009=Docomo ++44010=Docomo ++44012=Docomo ++44013=Docomo ++44014=Docomo ++44015=Docomo ++44016=Docomo ++44017=Docomo ++44018=Docomo ++44019=Docomo ++44022=Docomo ++44023=Docomo ++44024=Docomo ++44025=Docomo ++44026=Docomo ++44027=Docomo ++44028=Docomo ++44029=Docomo ++44030=Docomo ++44031=Docomo ++44032=Docomo ++44033=Docomo ++44034=Docomo ++44035=Docomo ++44036=Docomo ++44037=Docomo ++44038=Docomo ++44039=Docomo ++44049=Docomo ++44058=Docomo ++44060=Docomo ++44061=Docomo ++44062=Docomo ++44063=Docomo ++44064=Docomo ++44065=Docomo ++44066=Docomo ++44067=Docomo ++44068=Docomo ++44069=Docomo ++44087=Docomo ++44099=Docomo ++44140=Docomo ++44141=Docomo ++44142=Docomo ++44143=Docomo ++44144=Docomo ++44145=Docomo ++44190=Docomo ++44192=Docomo ++44193=Docomo ++44194=Docomo ++44198=Docomo ++44199=Docomo ++ ++# KDDI ++44007=KDDI ++44008=KDDI ++44050=KDDI ++44051=KDDI ++44052=KDDI ++44053=KDDI ++44054=KDDI ++44055=KDDI ++44056=KDDI ++44070=KDDI ++44071=KDDI ++44072=KDDI ++44073=KDDI ++44074=KDDI ++44075=KDDI ++44076=KDDI ++44077=KDDI ++44078=KDDI ++44079=KDDI ++44080=KDDI ++44081=KDDI ++44082=KDDI ++44083=KDDI ++44084=KDDI ++44085=KDDI ++44086=KDDI ++44088=KDDI ++44089=KDDI ++44150=KDDI ++44151=KDDI ++44170=KDDI ++ ++# SoftBank ++44000=SBM ++44004=SBM ++44006=SBM ++44020=SBM ++44021=SBM ++44040=SBM ++44041=SBM ++44042=SBM ++44043=SBM ++44044=SBM ++44045=SBM ++44046=SBM ++44047=SBM ++44048=SBM ++44090=SBM ++44092=SBM ++44093=SBM ++44094=SBM ++44095=SBM ++44096=SBM ++44097=SBM ++44098=SBM ++44101=SBM ++44161=SBM ++44162=SBM ++44163=SBM ++44164=SBM ++44165=SBM ++ ++# CMCC ++46000=CMCC ++46002=CMCC ++46004=CMCC ++46007=CMCC ++46008=CMCC ++46013=CMCC ++ ++# CU ++46001=CU ++46006=CU ++46009=CU ++ ++# CT ++46003=CT ++46005=CT ++46011=CT ++46012=CT ++ ++# Optus ++50202=Optus ++ ++# Deutsche Telekom ++20416=DT ++20420=DT ++21630=DT ++21901=DT ++22603=DT ++23001=DT ++23102=DT ++23202=DT ++23203=DT ++23213=DT ++26002=DT ++26010=DT ++26201=DT ++26206=DT ++29401=DT ++29702=DT ++ ++# EE UK ++23430=EE ++23431=EE ++23432=EE ++23433=EE ++23434=EE ++23476=EE ++23501=EE ++23502=EE ++23577=EE ++ ++# SmarTone ++45406=ST ++45415=ST ++45417=ST ++ ++# TIM ++22201=TIM ++ ++# T-mobile ++310120=T-mobile ++310160=T-mobile ++310200=T-mobile ++310210=T-mobile ++310220=T-mobile ++310230=T-mobile ++310240=T-mobile ++310250=T-mobile ++310260=T-mobile ++310270=T-mobile ++310310=T-mobile ++310490=T-mobile ++310660=T-mobile ++310800=T-mobile ++311490=T-mobile ++311870=T-mobile ++311880=T-mobile ++312190=T-mobile ++312530=T-mobile ++31610=T-mobile ++ ++# Others ++generic=GCF +--- a/plugins/tests/test-keyfiles.c ++++ b/plugins/tests/test-keyfiles.c +@@ -60,6 +60,12 @@ + { + common_test (TESTKEYFILE_FOXCONN_T77W968); + } ++ ++static void ++test_foxconn_t99w175 (void) ++{ ++ common_test (TESTKEYFILE_FOXCONN_T99W175); ++} + #endif + + /************************************************************/ +@@ -69,10 +75,11 @@ + setlocale (LC_ALL, ""); + + g_test_init (&argc, &argv, NULL); +- g_test_add_func ("/MM/test-keyfiles/foxconn/t77w968", test_foxconn_t77w968); ++ g_test_add_func ("/MM/test-keyfiles/dummy", test_dummy); + + #if defined ENABLE_PLUGIN_FOXCONN +- g_test_add_func ("/MM/test-keyfiles/foxconn", test_foxconn); ++ g_test_add_func ("/MM/test-keyfiles/foxconn/t77w968", test_foxconn_t77w968); ++ g_test_add_func ("/MM/test-keyfiles/foxconn/t99w175", test_foxconn_t99w175); + #endif + + return g_test_run (); diff -Nru modemmanager-1.16.6/debian/patches/07_mm-rebase.patch modemmanager-1.16.6/debian/patches/07_mm-rebase.patch --- modemmanager-1.16.6/debian/patches/07_mm-rebase.patch 1970-01-01 08:00:00.000000000 +0800 +++ modemmanager-1.16.6/debian/patches/07_mm-rebase.patch 2021-10-06 15:58:26.000000000 +0800 @@ -0,0 +1,423 @@ +Description: Merge necessary code from v1.18.2 for backported patches + The previous patches are based on v1.18.2. + This patch is used to merge necessary code from v1.18.2 +Author: Jerry Lee +Applied-Upstream: 1.18.2, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commits/1.18.2 +Last-Update: 2021-10-05 +--- a/include/ModemManager-enums.h ++++ b/include/ModemManager-enums.h +@@ -1524,6 +1524,8 @@ + MM_MODEM_FIRMWARE_UPDATE_METHOD_NONE = 0, + MM_MODEM_FIRMWARE_UPDATE_METHOD_FASTBOOT = 1 << 0, + MM_MODEM_FIRMWARE_UPDATE_METHOD_QMI_PDC = 1 << 1, ++ MM_MODEM_FIRMWARE_UPDATE_METHOD_MBIM_QDU = 1 << 2, ++ MM_MODEM_FIRMWARE_UPDATE_METHOD_FIREHOSE = 1 << 3, + } MMModemFirmwareUpdateMethod; + + #endif /* _MODEMMANAGER_ENUMS_H_ */ +--- a/plugins/Makefile.in ++++ b/plugins/Makefile.in +@@ -1,7 +1,7 @@ +-# Makefile.in generated by automake 1.16.3 from Makefile.am. ++# Makefile.in generated by automake 1.16.1 from Makefile.am. + # @configure_input@ + +-# Copyright (C) 1994-2020 Free Software Foundation, Inc. ++# Copyright (C) 1994-2018 Free Software Foundation, Inc. + + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -226,10 +226,15 @@ + ################################################################################ + @ENABLE_PLUGIN_FOXCONN_TRUE@am__append_48 = libmm-plugin-foxconn.la + @ENABLE_PLUGIN_FOXCONN_TRUE@am__append_49 = foxconn/77-mm-foxconn-port-types.rules +-@ENABLE_PLUGIN_FOXCONN_TRUE@am__append_50 = foxconn/mm-foxconn-carrier-mapping.conf ++@ENABLE_PLUGIN_FOXCONN_TRUE@am__append_50 = \ ++@ENABLE_PLUGIN_FOXCONN_TRUE@ foxconn/mm-foxconn-t77w968-carrier-mapping.conf \ ++@ENABLE_PLUGIN_FOXCONN_TRUE@ foxconn/mm-foxconn-t99w175-carrier-mapping.conf \ ++@ENABLE_PLUGIN_FOXCONN_TRUE@ $(NULL) ++ + @ENABLE_PLUGIN_FOXCONN_TRUE@am__append_51 = \ + @ENABLE_PLUGIN_FOXCONN_TRUE@ -DTESTUDEVRULESDIR_FOXCONN=\"${srcdir}/foxconn\" \ +-@ENABLE_PLUGIN_FOXCONN_TRUE@ -DTESTKEYFILE_FOXCONN=\"${srcdir}/foxconn/mm-foxconn-carrier-mapping.conf\" \ ++@ENABLE_PLUGIN_FOXCONN_TRUE@ -DTESTKEYFILE_FOXCONN_T77W968=\"${srcdir}/foxconn/mm-foxconn-t77w968-carrier-mapping.conf\" \ ++@ENABLE_PLUGIN_FOXCONN_TRUE@ -DTESTKEYFILE_FOXCONN_T99W175=\"${srcdir}/foxconn/mm-foxconn-t99w175-carrier-mapping.conf\" \ + @ENABLE_PLUGIN_FOXCONN_TRUE@ $(NULL) + + +@@ -349,98 +354,103 @@ + @ENABLE_PLUGIN_QUECTEL_TRUE@@WITH_QMI_TRUE@ quectel/mm-broadband-modem-qmi-quectel.h \ + @ENABLE_PLUGIN_QUECTEL_TRUE@@WITH_QMI_TRUE@ $(NULL) + +-@ENABLE_PLUGIN_QUECTEL_TRUE@am__append_97 = quectel/77-mm-quectel-port-types.rules +-@ENABLE_PLUGIN_QUECTEL_TRUE@am__append_98 = -DTESTUDEVRULESDIR_QUECTEL=\"${srcdir}/quectel\" ++@ENABLE_PLUGIN_QUECTEL_TRUE@@WITH_MBIM_TRUE@am__append_97 = \ ++@ENABLE_PLUGIN_QUECTEL_TRUE@@WITH_MBIM_TRUE@ quectel/mm-broadband-modem-mbim-quectel.c \ ++@ENABLE_PLUGIN_QUECTEL_TRUE@@WITH_MBIM_TRUE@ quectel/mm-broadband-modem-mbim-quectel.h \ ++@ENABLE_PLUGIN_QUECTEL_TRUE@@WITH_MBIM_TRUE@ $(NULL) ++ ++@ENABLE_PLUGIN_QUECTEL_TRUE@am__append_98 = quectel/77-mm-quectel-port-types.rules ++@ENABLE_PLUGIN_QUECTEL_TRUE@am__append_99 = -DTESTUDEVRULESDIR_QUECTEL=\"${srcdir}/quectel\" + + ################################################################################ + # plugin: samsung + ################################################################################ +-@ENABLE_PLUGIN_SAMSUNG_TRUE@am__append_99 = libmm-plugin-samsung.la ++@ENABLE_PLUGIN_SAMSUNG_TRUE@am__append_100 = libmm-plugin-samsung.la + + ################################################################################ + # plugin: sierra (legacy) + ################################################################################ +-@ENABLE_PLUGIN_SIERRA_LEGACY_TRUE@am__append_100 = libmm-plugin-sierra-legacy.la ++@ENABLE_PLUGIN_SIERRA_LEGACY_TRUE@am__append_101 = libmm-plugin-sierra-legacy.la + + ################################################################################ + # plugin: sierra (new QMI or MBIM modems) + ################################################################################ +-@ENABLE_PLUGIN_SIERRA_TRUE@am__append_101 = sierra/77-mm-sierra.rules +-@ENABLE_PLUGIN_SIERRA_TRUE@am__append_102 = libmm-plugin-sierra.la ++@ENABLE_PLUGIN_SIERRA_TRUE@am__append_102 = sierra/77-mm-sierra.rules ++@ENABLE_PLUGIN_SIERRA_TRUE@am__append_103 = libmm-plugin-sierra.la + + ################################################################################ + # plugin: simtech + ################################################################################ +-@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_103 = libhelpers-simtech.la +-@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_104 = test-modem-helpers-simtech +-@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_105 = libmm-plugin-simtech.la +-@ENABLE_PLUGIN_SIMTECH_TRUE@@WITH_QMI_TRUE@am__append_106 = \ ++@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_104 = libhelpers-simtech.la ++@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_105 = test-modem-helpers-simtech ++@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_106 = libmm-plugin-simtech.la ++@ENABLE_PLUGIN_SIMTECH_TRUE@@WITH_QMI_TRUE@am__append_107 = \ + @ENABLE_PLUGIN_SIMTECH_TRUE@@WITH_QMI_TRUE@ simtech/mm-broadband-modem-qmi-simtech.c \ + @ENABLE_PLUGIN_SIMTECH_TRUE@@WITH_QMI_TRUE@ simtech/mm-broadband-modem-qmi-simtech.h \ + @ENABLE_PLUGIN_SIMTECH_TRUE@@WITH_QMI_TRUE@ $(NULL) + +-@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_107 = simtech/77-mm-simtech-port-types.rules +-@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_108 = -DTESTUDEVRULESDIR_SIMTECH=\"${srcdir}/simtech\" ++@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_108 = simtech/77-mm-simtech-port-types.rules ++@ENABLE_PLUGIN_SIMTECH_TRUE@am__append_109 = -DTESTUDEVRULESDIR_SIMTECH=\"${srcdir}/simtech\" + + ################################################################################ + # plugin: telit + ################################################################################ +-@ENABLE_PLUGIN_TELIT_TRUE@am__append_109 = libmm-plugin-telit.la +-@ENABLE_PLUGIN_TELIT_TRUE@am__append_110 = telit/77-mm-telit-port-types.rules +-@ENABLE_PLUGIN_TELIT_TRUE@am__append_111 = -DTESTUDEVRULESDIR_TELIT=\"${srcdir}/telit\" ++@ENABLE_PLUGIN_TELIT_TRUE@am__append_110 = libmm-plugin-telit.la ++@ENABLE_PLUGIN_TELIT_TRUE@am__append_111 = telit/77-mm-telit-port-types.rules ++@ENABLE_PLUGIN_TELIT_TRUE@am__append_112 = -DTESTUDEVRULESDIR_TELIT=\"${srcdir}/telit\" + + ################################################################################ + # plugin: thuraya xt + ################################################################################ +-@ENABLE_PLUGIN_THURAYA_TRUE@am__append_112 = libhelpers-thuraya.la +-@ENABLE_PLUGIN_THURAYA_TRUE@am__append_113 = test-modem-helpers-thuraya +-@ENABLE_PLUGIN_THURAYA_TRUE@am__append_114 = libmm-plugin-thuraya.la ++@ENABLE_PLUGIN_THURAYA_TRUE@am__append_113 = libhelpers-thuraya.la ++@ENABLE_PLUGIN_THURAYA_TRUE@am__append_114 = test-modem-helpers-thuraya ++@ENABLE_PLUGIN_THURAYA_TRUE@am__append_115 = libmm-plugin-thuraya.la + + ################################################################################ + # plugin: tplink + ################################################################################ +-@ENABLE_PLUGIN_TPLINK_TRUE@am__append_115 = libmm-plugin-tplink.la +-@ENABLE_PLUGIN_TPLINK_TRUE@am__append_116 = tplink/77-mm-tplink-port-types.rules +-@ENABLE_PLUGIN_TPLINK_TRUE@am__append_117 = -DTESTUDEVRULESDIR_TPLINK=\"${srcdir}/tplink\" ++@ENABLE_PLUGIN_TPLINK_TRUE@am__append_116 = libmm-plugin-tplink.la ++@ENABLE_PLUGIN_TPLINK_TRUE@am__append_117 = tplink/77-mm-tplink-port-types.rules ++@ENABLE_PLUGIN_TPLINK_TRUE@am__append_118 = -DTESTUDEVRULESDIR_TPLINK=\"${srcdir}/tplink\" + + ################################################################################ + # plugin: u-blox + ################################################################################ +-@ENABLE_PLUGIN_UBLOX_TRUE@am__append_118 = ublox/77-mm-ublox-port-types.rules +-@ENABLE_PLUGIN_UBLOX_TRUE@am__append_119 = libhelpers-ublox.la +-@ENABLE_PLUGIN_UBLOX_TRUE@am__append_120 = $(UBLOX_ENUMS_GENERATED) ++@ENABLE_PLUGIN_UBLOX_TRUE@am__append_119 = ublox/77-mm-ublox-port-types.rules ++@ENABLE_PLUGIN_UBLOX_TRUE@am__append_120 = libhelpers-ublox.la + @ENABLE_PLUGIN_UBLOX_TRUE@am__append_121 = $(UBLOX_ENUMS_GENERATED) +-@ENABLE_PLUGIN_UBLOX_TRUE@am__append_122 = test-modem-helpers-ublox +-@ENABLE_PLUGIN_UBLOX_TRUE@am__append_123 = libmm-plugin-ublox.la ++@ENABLE_PLUGIN_UBLOX_TRUE@am__append_122 = $(UBLOX_ENUMS_GENERATED) ++@ENABLE_PLUGIN_UBLOX_TRUE@am__append_123 = test-modem-helpers-ublox ++@ENABLE_PLUGIN_UBLOX_TRUE@am__append_124 = libmm-plugin-ublox.la + + ################################################################################ + # plugin: via + ################################################################################ +-@ENABLE_PLUGIN_VIA_TRUE@am__append_124 = libmm-plugin-via.la ++@ENABLE_PLUGIN_VIA_TRUE@am__append_125 = libmm-plugin-via.la + + ################################################################################ + # plugin: wavecom (now sierra airlink) + ################################################################################ +-@ENABLE_PLUGIN_WAVECOM_TRUE@am__append_125 = libmm-plugin-wavecom.la ++@ENABLE_PLUGIN_WAVECOM_TRUE@am__append_126 = libmm-plugin-wavecom.la + + ################################################################################ + # plugin: alcatel/TCT/JRD x220D and possibly others + ################################################################################ +-@ENABLE_PLUGIN_X22X_TRUE@am__append_126 = libmm-plugin-x22x.la +-@ENABLE_PLUGIN_X22X_TRUE@am__append_127 = x22x/77-mm-x22x-port-types.rules +-@ENABLE_PLUGIN_X22X_TRUE@am__append_128 = -DTESTUDEVRULESDIR_X22X=\"${srcdir}/x22x\" ++@ENABLE_PLUGIN_X22X_TRUE@am__append_127 = libmm-plugin-x22x.la ++@ENABLE_PLUGIN_X22X_TRUE@am__append_128 = x22x/77-mm-x22x-port-types.rules ++@ENABLE_PLUGIN_X22X_TRUE@am__append_129 = -DTESTUDEVRULESDIR_X22X=\"${srcdir}/x22x\" + + ################################################################################ + # plugin: zte + ################################################################################ +-@ENABLE_PLUGIN_ZTE_TRUE@am__append_129 = libmm-plugin-zte.la +-@ENABLE_PLUGIN_ZTE_TRUE@am__append_130 = zte/77-mm-zte-port-types.rules +-@ENABLE_PLUGIN_ZTE_TRUE@am__append_131 = -DTESTUDEVRULESDIR_ZTE=\"${srcdir}/zte\" ++@ENABLE_PLUGIN_ZTE_TRUE@am__append_130 = libmm-plugin-zte.la ++@ENABLE_PLUGIN_ZTE_TRUE@am__append_131 = zte/77-mm-zte-port-types.rules ++@ENABLE_PLUGIN_ZTE_TRUE@am__append_132 = -DTESTUDEVRULESDIR_ZTE=\"${srcdir}/zte\" + subdir = plugins + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ +- $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ +- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ ++ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ ++ $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ +@@ -1013,12 +1023,15 @@ + quectel/mm-broadband-modem-quectel.c \ + quectel/mm-broadband-modem-quectel.h \ + quectel/mm-broadband-modem-qmi-quectel.c \ +- quectel/mm-broadband-modem-qmi-quectel.h ++ quectel/mm-broadband-modem-qmi-quectel.h \ ++ quectel/mm-broadband-modem-mbim-quectel.c \ ++ quectel/mm-broadband-modem-mbim-quectel.h + @ENABLE_PLUGIN_QUECTEL_TRUE@@WITH_QMI_TRUE@am__objects_5 = quectel/libmm_plugin_quectel_la-mm-broadband-modem-qmi-quectel.lo ++@ENABLE_PLUGIN_QUECTEL_TRUE@@WITH_MBIM_TRUE@am__objects_6 = quectel/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.lo + @ENABLE_PLUGIN_QUECTEL_TRUE@am_libmm_plugin_quectel_la_OBJECTS = quectel/libmm_plugin_quectel_la-mm-plugin-quectel.lo \ + @ENABLE_PLUGIN_QUECTEL_TRUE@ quectel/libmm_plugin_quectel_la-mm-shared-quectel.lo \ + @ENABLE_PLUGIN_QUECTEL_TRUE@ quectel/libmm_plugin_quectel_la-mm-broadband-modem-quectel.lo \ +-@ENABLE_PLUGIN_QUECTEL_TRUE@ $(am__objects_5) ++@ENABLE_PLUGIN_QUECTEL_TRUE@ $(am__objects_5) $(am__objects_6) + libmm_plugin_quectel_la_OBJECTS = \ + $(am_libmm_plugin_quectel_la_OBJECTS) + libmm_plugin_quectel_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ +@@ -1078,11 +1091,11 @@ + simtech/mm-broadband-modem-simtech.c \ + simtech/mm-broadband-modem-qmi-simtech.c \ + simtech/mm-broadband-modem-qmi-simtech.h +-@ENABLE_PLUGIN_SIMTECH_TRUE@@WITH_QMI_TRUE@am__objects_6 = simtech/libmm_plugin_simtech_la-mm-broadband-modem-qmi-simtech.lo ++@ENABLE_PLUGIN_SIMTECH_TRUE@@WITH_QMI_TRUE@am__objects_7 = simtech/libmm_plugin_simtech_la-mm-broadband-modem-qmi-simtech.lo + @ENABLE_PLUGIN_SIMTECH_TRUE@am_libmm_plugin_simtech_la_OBJECTS = simtech/libmm_plugin_simtech_la-mm-plugin-simtech.lo \ + @ENABLE_PLUGIN_SIMTECH_TRUE@ simtech/libmm_plugin_simtech_la-mm-shared-simtech.lo \ + @ENABLE_PLUGIN_SIMTECH_TRUE@ simtech/libmm_plugin_simtech_la-mm-broadband-modem-simtech.lo \ +-@ENABLE_PLUGIN_SIMTECH_TRUE@ $(am__objects_6) ++@ENABLE_PLUGIN_SIMTECH_TRUE@ $(am__objects_7) + libmm_plugin_simtech_la_OBJECTS = \ + $(am_libmm_plugin_simtech_la_OBJECTS) + libmm_plugin_simtech_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ +@@ -1296,12 +1309,12 @@ + telit/mm-broadband-modem-telit.h \ + telit/mm-broadband-modem-mbim-telit.h \ + telit/mm-broadband-modem-mbim-telit.c +-@WITH_MBIM_TRUE@@WITH_SHARED_TELIT_TRUE@am__objects_7 = telit/libmm_shared_telit_la-mm-broadband-modem-mbim-telit.lo ++@WITH_MBIM_TRUE@@WITH_SHARED_TELIT_TRUE@am__objects_8 = telit/libmm_shared_telit_la-mm-broadband-modem-mbim-telit.lo + @WITH_SHARED_TELIT_TRUE@am_libmm_shared_telit_la_OBJECTS = telit/libmm_shared_telit_la-mm-shared.lo \ + @WITH_SHARED_TELIT_TRUE@ telit/libmm_shared_telit_la-mm-common-telit.lo \ + @WITH_SHARED_TELIT_TRUE@ telit/libmm_shared_telit_la-mm-shared-telit.lo \ + @WITH_SHARED_TELIT_TRUE@ telit/libmm_shared_telit_la-mm-broadband-modem-telit.lo \ +-@WITH_SHARED_TELIT_TRUE@ $(am__objects_7) ++@WITH_SHARED_TELIT_TRUE@ $(am__objects_8) + libmm_shared_telit_la_OBJECTS = $(am_libmm_shared_telit_la_OBJECTS) + libmm_shared_telit_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ +@@ -1316,12 +1329,12 @@ + xmm/mm-broadband-modem-xmm.h xmm/mm-broadband-modem-xmm.c \ + xmm/mm-broadband-modem-mbim-xmm.h \ + xmm/mm-broadband-modem-mbim-xmm.c +-@WITH_MBIM_TRUE@@WITH_SHARED_XMM_TRUE@am__objects_8 = xmm/libmm_shared_xmm_la-mm-broadband-modem-mbim-xmm.lo ++@WITH_MBIM_TRUE@@WITH_SHARED_XMM_TRUE@am__objects_9 = xmm/libmm_shared_xmm_la-mm-broadband-modem-mbim-xmm.lo + @WITH_SHARED_XMM_TRUE@am_libmm_shared_xmm_la_OBJECTS = \ + @WITH_SHARED_XMM_TRUE@ xmm/libmm_shared_xmm_la-mm-shared.lo \ + @WITH_SHARED_XMM_TRUE@ xmm/libmm_shared_xmm_la-mm-shared-xmm.lo \ + @WITH_SHARED_XMM_TRUE@ xmm/libmm_shared_xmm_la-mm-broadband-modem-xmm.lo \ +-@WITH_SHARED_XMM_TRUE@ $(am__objects_8) ++@WITH_SHARED_XMM_TRUE@ $(am__objects_9) + libmm_shared_xmm_la_OBJECTS = $(am_libmm_shared_xmm_la_OBJECTS) + libmm_shared_xmm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ +@@ -1562,6 +1575,7 @@ + qcom-soc/$(DEPDIR)/libmm_plugin_qcom_soc_la-mm-broadband-modem-qmi-qcom-soc.Plo \ + qcom-soc/$(DEPDIR)/libmm_plugin_qcom_soc_la-mm-plugin-qcom-soc.Plo \ + quectel/$(DEPDIR)/libhelpers_quectel_la-mm-modem-helpers-quectel.Plo \ ++ quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.Plo \ + quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-qmi-quectel.Plo \ + quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-quectel.Plo \ + quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-plugin-quectel.Plo \ +@@ -1801,7 +1815,9 @@ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +-am__dist_pkgdata_DATA_DIST = foxconn/mm-foxconn-carrier-mapping.conf ++am__dist_pkgdata_DATA_DIST = \ ++ foxconn/mm-foxconn-t77w968-carrier-mapping.conf \ ++ foxconn/mm-foxconn-t99w175-carrier-mapping.conf + am__dist_udevrules_DATA_DIST = \ + broadmobi/77-mm-broadmobi-port-types.rules \ + cinterion/77-mm-cinterion-port-types.rules \ +@@ -2071,8 +2087,8 @@ + $(am__append_51) $(am__append_54) $(am__append_57) \ + $(am__append_64) $(am__append_71) $(am__append_76) \ + $(am__append_80) $(am__append_84) $(am__append_92) \ +- $(am__append_98) $(am__append_108) $(am__append_111) \ +- $(am__append_117) $(am__append_128) $(am__append_131) ++ $(am__append_99) $(am__append_109) $(am__append_112) \ ++ $(am__append_118) $(am__append_129) $(am__append_132) + AM_LDFLAGS = $(WARN_LDFLAGS) $(MM_LIBS) $(CODE_COVERAGE_LDFLAGS) \ + $(GUDEV_LIBS) $(NULL) $(am__append_2) $(am__append_4) + +@@ -2104,9 +2120,9 @@ + $(am__append_49) $(am__append_53) $(am__append_56) \ + $(am__append_63) $(am__append_70) $(am__append_75) \ + $(am__append_79) $(am__append_83) $(am__append_91) \ +- $(am__append_97) $(am__append_101) $(am__append_107) \ +- $(am__append_110) $(am__append_116) $(am__append_118) \ +- $(am__append_127) $(am__append_130) ++ $(am__append_98) $(am__append_102) $(am__append_108) \ ++ $(am__append_111) $(am__append_117) $(am__append_119) \ ++ $(am__append_128) $(am__append_131) + + # Helper libs + +@@ -2117,7 +2133,7 @@ + $(am__append_8) $(am__append_13) $(am__append_19) \ + $(am__append_26) $(am__append_33) $(am__append_60) \ + $(am__append_66) $(am__append_72) $(am__append_93) \ +- $(am__append_103) $(am__append_112) $(am__append_119) ++ $(am__append_104) $(am__append_113) $(am__append_120) + + # Plugins + pkglib_LTLIBRARIES = $(am__append_7) $(am__append_10) $(am__append_11) \ +@@ -2131,17 +2147,17 @@ + $(am__append_78) $(am__append_81) $(am__append_82) \ + $(am__append_85) $(am__append_86) $(am__append_87) \ + $(am__append_88) $(am__append_89) $(am__append_90) \ +- $(am__append_95) $(am__append_99) $(am__append_100) \ +- $(am__append_102) $(am__append_105) $(am__append_109) \ +- $(am__append_114) $(am__append_115) $(am__append_123) \ +- $(am__append_124) $(am__append_125) $(am__append_126) \ +- $(am__append_129) ++ $(am__append_95) $(am__append_100) $(am__append_101) \ ++ $(am__append_103) $(am__append_106) $(am__append_110) \ ++ $(am__append_115) $(am__append_116) $(am__append_124) \ ++ $(am__append_125) $(am__append_126) $(am__append_127) \ ++ $(am__append_130) + + # Built sources +-BUILT_SOURCES = $(am__append_17) $(am__append_58) $(am__append_120) ++BUILT_SOURCES = $(am__append_17) $(am__append_58) $(am__append_121) + + # Clean files +-CLEANFILES = $(am__append_18) $(am__append_59) $(am__append_121) ++CLEANFILES = $(am__append_18) $(am__append_59) $(am__append_122) + + # Data files + dist_pkgdata_DATA = $(am__append_50) +@@ -2939,7 +2955,8 @@ + @ENABLE_PLUGIN_QUECTEL_TRUE@ quectel/mm-shared-quectel.h \ + @ENABLE_PLUGIN_QUECTEL_TRUE@ quectel/mm-broadband-modem-quectel.c \ + @ENABLE_PLUGIN_QUECTEL_TRUE@ quectel/mm-broadband-modem-quectel.h \ +-@ENABLE_PLUGIN_QUECTEL_TRUE@ $(NULL) $(am__append_96) ++@ENABLE_PLUGIN_QUECTEL_TRUE@ $(NULL) $(am__append_96) \ ++@ENABLE_PLUGIN_QUECTEL_TRUE@ $(am__append_97) + @ENABLE_PLUGIN_QUECTEL_TRUE@libmm_plugin_quectel_la_CPPFLAGS = \ + @ENABLE_PLUGIN_QUECTEL_TRUE@ $(PLUGIN_COMMON_COMPILER_FLAGS) \ + @ENABLE_PLUGIN_QUECTEL_TRUE@ -DMM_MODULE_NAME=\"quectel\" \ +@@ -3018,7 +3035,7 @@ + @ENABLE_PLUGIN_SIMTECH_TRUE@ simtech/mm-shared-simtech.h \ + @ENABLE_PLUGIN_SIMTECH_TRUE@ simtech/mm-broadband-modem-simtech.h \ + @ENABLE_PLUGIN_SIMTECH_TRUE@ simtech/mm-broadband-modem-simtech.c \ +-@ENABLE_PLUGIN_SIMTECH_TRUE@ $(NULL) $(am__append_106) ++@ENABLE_PLUGIN_SIMTECH_TRUE@ $(NULL) $(am__append_107) + @ENABLE_PLUGIN_SIMTECH_TRUE@libmm_plugin_simtech_la_CPPFLAGS = \ + @ENABLE_PLUGIN_SIMTECH_TRUE@ $(PLUGIN_COMMON_COMPILER_FLAGS) \ + @ENABLE_PLUGIN_SIMTECH_TRUE@ -DMM_MODULE_NAME=\"simtech\" \ +@@ -3766,6 +3783,8 @@ + quectel/$(am__dirstamp) quectel/$(DEPDIR)/$(am__dirstamp) + quectel/libmm_plugin_quectel_la-mm-broadband-modem-qmi-quectel.lo: \ + quectel/$(am__dirstamp) quectel/$(DEPDIR)/$(am__dirstamp) ++quectel/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.lo: \ ++ quectel/$(am__dirstamp) quectel/$(DEPDIR)/$(am__dirstamp) + + libmm-plugin-quectel.la: $(libmm_plugin_quectel_la_OBJECTS) $(libmm_plugin_quectel_la_DEPENDENCIES) $(EXTRA_libmm_plugin_quectel_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmm_plugin_quectel_la_LINK) $(am_libmm_plugin_quectel_la_rpath) $(libmm_plugin_quectel_la_OBJECTS) $(libmm_plugin_quectel_la_LIBADD) $(LIBS) +@@ -4349,6 +4368,7 @@ + @AMDEP_TRUE@@am__include@ @am__quote@qcom-soc/$(DEPDIR)/libmm_plugin_qcom_soc_la-mm-broadband-modem-qmi-qcom-soc.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@qcom-soc/$(DEPDIR)/libmm_plugin_qcom_soc_la-mm-plugin-qcom-soc.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@quectel/$(DEPDIR)/libhelpers_quectel_la-mm-modem-helpers-quectel.Plo@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-qmi-quectel.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-quectel.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-plugin-quectel.Plo@am__quote@ # am--include-marker +@@ -4977,6 +4997,13 @@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_quectel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o quectel/libmm_plugin_quectel_la-mm-broadband-modem-qmi-quectel.lo `test -f 'quectel/mm-broadband-modem-qmi-quectel.c' || echo '$(srcdir)/'`quectel/mm-broadband-modem-qmi-quectel.c + ++quectel/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.lo: quectel/mm-broadband-modem-mbim-quectel.c ++@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_quectel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT quectel/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.lo -MD -MP -MF quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.Tpo -c -o quectel/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.lo `test -f 'quectel/mm-broadband-modem-mbim-quectel.c' || echo '$(srcdir)/'`quectel/mm-broadband-modem-mbim-quectel.c ++@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.Tpo quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.Plo ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quectel/mm-broadband-modem-mbim-quectel.c' object='quectel/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.lo' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_quectel_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o quectel/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.lo `test -f 'quectel/mm-broadband-modem-mbim-quectel.c' || echo '$(srcdir)/'`quectel/mm-broadband-modem-mbim-quectel.c ++ + samsung/libmm_plugin_samsung_la-mm-plugin-samsung.lo: samsung/mm-plugin-samsung.c + @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmm_plugin_samsung_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT samsung/libmm_plugin_samsung_la-mm-plugin-samsung.lo -MD -MP -MF samsung/$(DEPDIR)/libmm_plugin_samsung_la-mm-plugin-samsung.Tpo -c -o samsung/libmm_plugin_samsung_la-mm-plugin-samsung.lo `test -f 'samsung/mm-plugin-samsung.c' || echo '$(srcdir)/'`samsung/mm-plugin-samsung.c + @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) samsung/$(DEPDIR)/libmm_plugin_samsung_la-mm-plugin-samsung.Tpo samsung/$(DEPDIR)/libmm_plugin_samsung_la-mm-plugin-samsung.Plo +@@ -5733,8 +5760,7 @@ + done + install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +-install-exec: $(BUILT_SOURCES) +- $(MAKE) $(AM_MAKEFLAGS) install-exec-am ++install-exec: install-exec-am + install-data: install-data-am + uninstall: uninstall-am + +@@ -5956,6 +5982,7 @@ + -rm -f qcom-soc/$(DEPDIR)/libmm_plugin_qcom_soc_la-mm-broadband-modem-qmi-qcom-soc.Plo + -rm -f qcom-soc/$(DEPDIR)/libmm_plugin_qcom_soc_la-mm-plugin-qcom-soc.Plo + -rm -f quectel/$(DEPDIR)/libhelpers_quectel_la-mm-modem-helpers-quectel.Plo ++ -rm -f quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.Plo + -rm -f quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-qmi-quectel.Plo + -rm -f quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-quectel.Plo + -rm -f quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-plugin-quectel.Plo +@@ -6147,6 +6174,7 @@ + -rm -f qcom-soc/$(DEPDIR)/libmm_plugin_qcom_soc_la-mm-broadband-modem-qmi-qcom-soc.Plo + -rm -f qcom-soc/$(DEPDIR)/libmm_plugin_qcom_soc_la-mm-plugin-qcom-soc.Plo + -rm -f quectel/$(DEPDIR)/libhelpers_quectel_la-mm-modem-helpers-quectel.Plo ++ -rm -f quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-mbim-quectel.Plo + -rm -f quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-qmi-quectel.Plo + -rm -f quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-broadband-modem-quectel.Plo + -rm -f quectel/$(DEPDIR)/libmm_plugin_quectel_la-mm-plugin-quectel.Plo +@@ -6231,8 +6259,7 @@ + uninstall-am: uninstall-dist_pkgdataDATA uninstall-dist_udevrulesDATA \ + uninstall-pkglibLTLIBRARIES + +-.MAKE: all check check-am install install-am install-exec \ +- install-strip ++.MAKE: all check check-am install install-am install-strip + + .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am \ + check-local clean clean-generic clean-libtool \ +--- a/src/mm-base-modem.h ++++ b/src/mm-base-modem.h +@@ -63,6 +63,8 @@ + #define MM_BASE_MODEM_VENDOR_ID "base-modem-vendor-id" + #define MM_BASE_MODEM_PRODUCT_ID "base-modem-product-id" + #define MM_BASE_MODEM_REPROBE "base-modem-reprobe" ++#define MM_BASE_MODEM_DATA_NET_SUPPORTED "base-modem-data-net-supported" ++#define MM_BASE_MODEM_DATA_TTY_SUPPORTED "base-modem-data-tty-supported" + + struct _MMBaseModem { + MmGdbusObjectSkeleton parent; diff -Nru modemmanager-1.16.6/debian/patches/series modemmanager-1.16.6/debian/patches/series --- modemmanager-1.16.6/debian/patches/series 1970-01-01 08:00:00.000000000 +0800 +++ modemmanager-1.16.6/debian/patches/series 2021-10-06 15:58:00.000000000 +0800 @@ -0,0 +1,7 @@ +01_modem-quectel.patch +02_modem-foxconn-1.patch +03_modem-foxconn-2.patch +04_modem-foxconn-3.patch +05_modem-foxconn-4.patch +06_modem-foxconn-5.patch +07_mm-rebase.patch