aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/Makefile.am8
-rw-r--r--plugins/foxconn/mm-broadband-modem-mbim-foxconn.c12
-rwxr-xr-xplugins/foxconn/mm-foxconn-t99w175-carrier-mapping.conf344
-rw-r--r--plugins/tests/test-keyfiles.c7
4 files changed, 368 insertions, 3 deletions
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index e47d38c3..b95edba0 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -726,11 +726,15 @@ libmm_plugin_foxconn_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
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
diff --git a/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c b/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c
index 5710e25f..ee160113 100644
--- a/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c
+++ b/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c
@@ -498,6 +498,16 @@ mm_broadband_modem_mbim_foxconn_new (const gchar *device,
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,
@@ -511,7 +521,7 @@ mm_broadband_modem_mbim_foxconn_new (const gchar *device,
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);
}
diff --git a/plugins/foxconn/mm-foxconn-t99w175-carrier-mapping.conf b/plugins/foxconn/mm-foxconn-t99w175-carrier-mapping.conf
new file mode 100755
index 00000000..ee674910
--- /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
diff --git a/plugins/tests/test-keyfiles.c b/plugins/tests/test-keyfiles.c
index d528cac9..05725864 100644
--- a/plugins/tests/test-keyfiles.c
+++ b/plugins/tests/test-keyfiles.c
@@ -60,6 +60,12 @@ test_foxconn_t77w968 (void)
{
common_test (TESTKEYFILE_FOXCONN_T77W968);
}
+
+static void
+test_foxconn_t99w175 (void)
+{
+ common_test (TESTKEYFILE_FOXCONN_T99W175);
+}
#endif
/************************************************************/
@@ -73,6 +79,7 @@ int main (int argc, char **argv)
#if defined ENABLE_PLUGIN_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 ();