diff options
Diffstat (limited to 'plugins')
49 files changed, 293 insertions, 61 deletions
diff --git a/plugins/mm-modem-anydata-cdma.c b/plugins/mm-modem-anydata-cdma.c index c7cca460..3bf15ed8 100644 --- a/plugins/mm-modem-anydata-cdma.c +++ b/plugins/mm-modem-anydata-cdma.c @@ -39,7 +39,9 @@ mm_modem_anydata_cdma_new (const char *device, const char *driver, const char *plugin, gboolean evdo_rev0, - gboolean evdo_revA) + gboolean evdo_revA, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -52,6 +54,8 @@ mm_modem_anydata_cdma_new (const char *device, MM_GENERIC_CDMA_EVDO_REV0, evdo_rev0, MM_GENERIC_CDMA_EVDO_REVA, evdo_revA, MM_GENERIC_CDMA_REGISTRATION_TRY_CSS, FALSE, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-anydata-cdma.h b/plugins/mm-modem-anydata-cdma.h index d2695d5f..5a9fc4b1 100644 --- a/plugins/mm-modem-anydata-cdma.h +++ b/plugins/mm-modem-anydata-cdma.h @@ -40,6 +40,8 @@ MMModem *mm_modem_anydata_cdma_new (const char *device, const char *driver, const char *plugin, gboolean evdo_rev0, - gboolean evdo_revA); + gboolean evdo_revA, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_ANYDATA_CDMA_H */ diff --git a/plugins/mm-modem-gobi-gsm.c b/plugins/mm-modem-gobi-gsm.c index 3b9e9ece..7e2fa4ca 100644 --- a/plugins/mm-modem-gobi-gsm.c +++ b/plugins/mm-modem-gobi-gsm.c @@ -36,7 +36,9 @@ G_DEFINE_TYPE_EXTENDED (MMModemGobiGsm, mm_modem_gobi_gsm, MM_TYPE_GENERIC_GSM, MMModem * mm_modem_gobi_gsm_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -46,6 +48,8 @@ mm_modem_gobi_gsm_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-gobi-gsm.h b/plugins/mm-modem-gobi-gsm.h index 4bd262fb..b1af1643 100644 --- a/plugins/mm-modem-gobi-gsm.h +++ b/plugins/mm-modem-gobi-gsm.h @@ -38,6 +38,8 @@ GType mm_modem_gobi_gsm_get_type (void); MMModem *mm_modem_gobi_gsm_new (const char *device, const char *driver, - const char *plugin_name); + const char *plugin_name, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_GOBI_GSM_H */ diff --git a/plugins/mm-modem-hso.c b/plugins/mm-modem-hso.c index 1fd46333..81fe51a7 100644 --- a/plugins/mm-modem-hso.c +++ b/plugins/mm-modem-hso.c @@ -74,7 +74,9 @@ typedef struct { MMModem * mm_modem_hso_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -85,6 +87,8 @@ mm_modem_hso_new (const char *device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, MM_MODEM_IP_METHOD, MM_MODEM_IP_METHOD_STATIC, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-hso.h b/plugins/mm-modem-hso.h index e2d7623a..7e79886c 100644 --- a/plugins/mm-modem-hso.h +++ b/plugins/mm-modem-hso.h @@ -38,7 +38,9 @@ GType mm_modem_hso_get_type (void); MMModem *mm_modem_hso_new (const char *device, const char *driver, - const char *plugin); + const char *plugin, + guint32 vendor, + guint32 product); void mm_hso_modem_authenticate (MMModemHso *self, const char *username, diff --git a/plugins/mm-modem-huawei-cdma.c b/plugins/mm-modem-huawei-cdma.c index 523578f1..7faa9f08 100644 --- a/plugins/mm-modem-huawei-cdma.c +++ b/plugins/mm-modem-huawei-cdma.c @@ -39,7 +39,9 @@ mm_modem_huawei_cdma_new (const char *device, const char *driver, const char *plugin, gboolean evdo_rev0, - gboolean evdo_revA) + gboolean evdo_revA, + guint32 vendor, + guint32 product) { gboolean try_css = TRUE; @@ -61,6 +63,8 @@ mm_modem_huawei_cdma_new (const char *device, MM_GENERIC_CDMA_EVDO_REV0, evdo_rev0, MM_GENERIC_CDMA_EVDO_REVA, evdo_revA, MM_GENERIC_CDMA_REGISTRATION_TRY_CSS, try_css, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-huawei-cdma.h b/plugins/mm-modem-huawei-cdma.h index 738f2d9e..88b425ce 100644 --- a/plugins/mm-modem-huawei-cdma.h +++ b/plugins/mm-modem-huawei-cdma.h @@ -40,6 +40,8 @@ MMModem *mm_modem_huawei_cdma_new (const char *device, const char *driver, const char *plugin, gboolean evdo_rev0, - gboolean evdo_revA); + gboolean evdo_revA, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_HUAWEI_CDMA_H */ diff --git a/plugins/mm-modem-huawei-gsm.c b/plugins/mm-modem-huawei-gsm.c index 5123e7f0..545d0831 100644 --- a/plugins/mm-modem-huawei-gsm.c +++ b/plugins/mm-modem-huawei-gsm.c @@ -50,7 +50,9 @@ typedef struct { MMModem * mm_modem_huawei_gsm_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -60,6 +62,8 @@ mm_modem_huawei_gsm_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-huawei-gsm.h b/plugins/mm-modem-huawei-gsm.h index 9c2ec34b..05f1f291 100644 --- a/plugins/mm-modem-huawei-gsm.h +++ b/plugins/mm-modem-huawei-gsm.h @@ -38,6 +38,8 @@ GType mm_modem_huawei_gsm_get_type (void); MMModem *mm_modem_huawei_gsm_new (const char *device, const char *driver, - const char *plugin); + const char *plugin, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_HUAWEI_GSM_H */ diff --git a/plugins/mm-modem-longcheer-gsm.c b/plugins/mm-modem-longcheer-gsm.c index 62980f76..33763e27 100644 --- a/plugins/mm-modem-longcheer-gsm.c +++ b/plugins/mm-modem-longcheer-gsm.c @@ -30,7 +30,9 @@ G_DEFINE_TYPE (MMModemLongcheerGsm, mm_modem_longcheer_gsm, MM_TYPE_GENERIC_GSM) MMModem * mm_modem_longcheer_gsm_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -40,6 +42,8 @@ mm_modem_longcheer_gsm_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-longcheer-gsm.h b/plugins/mm-modem-longcheer-gsm.h index 5383c52d..e9abfbe4 100644 --- a/plugins/mm-modem-longcheer-gsm.h +++ b/plugins/mm-modem-longcheer-gsm.h @@ -38,6 +38,8 @@ GType mm_modem_longcheer_gsm_get_type (void); MMModem *mm_modem_longcheer_gsm_new (const char *device, const char *driver, - const char *plugin); + const char *plugin, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_LONGCHEER_H */ diff --git a/plugins/mm-modem-mbm.c b/plugins/mm-modem-mbm.c index 7f6bc9c8..9002ddcf 100644 --- a/plugins/mm-modem-mbm.c +++ b/plugins/mm-modem-mbm.c @@ -82,7 +82,9 @@ mbm_modem_authenticate (MMModemMbm *self, MMModem * mm_modem_mbm_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -93,6 +95,8 @@ mm_modem_mbm_new (const char *device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, MM_MODEM_IP_METHOD, MM_MODEM_IP_METHOD_DHCP, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-mbm.h b/plugins/mm-modem-mbm.h index db0f6272..bb1c2ff5 100644 --- a/plugins/mm-modem-mbm.h +++ b/plugins/mm-modem-mbm.h @@ -43,6 +43,8 @@ GType mm_modem_mbm_get_type (void); MMModem *mm_modem_mbm_new (const char *device, const char *driver, - const char *plugin_name); + const char *plugin_name, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_MBM_H */ diff --git a/plugins/mm-modem-moto-c-gsm.c b/plugins/mm-modem-moto-c-gsm.c index 5910ff29..cd7b4ed0 100644 --- a/plugins/mm-modem-moto-c-gsm.c +++ b/plugins/mm-modem-moto-c-gsm.c @@ -35,7 +35,9 @@ G_DEFINE_TYPE_EXTENDED (MMModemMotoCGsm, mm_modem_moto_c_gsm, MM_TYPE_GENERIC_GS MMModem * mm_modem_moto_c_gsm_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -45,6 +47,8 @@ mm_modem_moto_c_gsm_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-moto-c-gsm.h b/plugins/mm-modem-moto-c-gsm.h index eb1dad12..a8ddd6df 100644 --- a/plugins/mm-modem-moto-c-gsm.h +++ b/plugins/mm-modem-moto-c-gsm.h @@ -38,6 +38,8 @@ GType mm_modem_moto_c_gsm_get_type (void); MMModem *mm_modem_moto_c_gsm_new (const char *device, const char *driver, - const char *plugin_name); + const char *plugin_name, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_MOTO_C_GSM_H */ diff --git a/plugins/mm-modem-nokia.c b/plugins/mm-modem-nokia.c index 3cbea00b..56b8c919 100644 --- a/plugins/mm-modem-nokia.c +++ b/plugins/mm-modem-nokia.c @@ -30,7 +30,9 @@ G_DEFINE_TYPE_EXTENDED (MMModemNokia, mm_modem_nokia, MM_TYPE_GENERIC_GSM, 0, MMModem * mm_modem_nokia_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -40,6 +42,8 @@ mm_modem_nokia_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-nokia.h b/plugins/mm-modem-nokia.h index 0e24619f..0873d2de 100644 --- a/plugins/mm-modem-nokia.h +++ b/plugins/mm-modem-nokia.h @@ -38,6 +38,8 @@ GType mm_modem_nokia_get_type (void); MMModem *mm_modem_nokia_new (const char *data, const char *driver, - const char *plugin); + const char *plugin, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_NOKIA_H */ diff --git a/plugins/mm-modem-novatel-cdma.c b/plugins/mm-modem-novatel-cdma.c index b7da80ac..6b8c4aa9 100644 --- a/plugins/mm-modem-novatel-cdma.c +++ b/plugins/mm-modem-novatel-cdma.c @@ -37,7 +37,9 @@ mm_modem_novatel_cdma_new (const char *device, const char *driver, const char *plugin, gboolean evdo_rev0, - gboolean evdo_revA) + gboolean evdo_revA, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); diff --git a/plugins/mm-modem-novatel-cdma.h b/plugins/mm-modem-novatel-cdma.h index 4d38d8ed..c2319efb 100644 --- a/plugins/mm-modem-novatel-cdma.h +++ b/plugins/mm-modem-novatel-cdma.h @@ -40,6 +40,8 @@ MMModem *mm_modem_novatel_cdma_new (const char *device, const char *driver, const char *plugin, gboolean evdo_rev0, - gboolean evdo_revA); + gboolean evdo_revA, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_NOVATEL_CDMA_H */ diff --git a/plugins/mm-modem-novatel-gsm.c b/plugins/mm-modem-novatel-gsm.c index 584156fc..64a81bd5 100644 --- a/plugins/mm-modem-novatel-gsm.c +++ b/plugins/mm-modem-novatel-gsm.c @@ -33,7 +33,9 @@ G_DEFINE_TYPE_EXTENDED (MMModemNovatelGsm, mm_modem_novatel_gsm, MM_TYPE_GENERIC MMModem * mm_modem_novatel_gsm_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -43,6 +45,8 @@ mm_modem_novatel_gsm_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-novatel-gsm.h b/plugins/mm-modem-novatel-gsm.h index c2e11387..12b0060d 100644 --- a/plugins/mm-modem-novatel-gsm.h +++ b/plugins/mm-modem-novatel-gsm.h @@ -38,6 +38,8 @@ GType mm_modem_novatel_gsm_get_type (void); MMModem *mm_modem_novatel_gsm_new (const char *device, const char *driver, - const char *plugin_name); + const char *plugin_name, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_NOVATEL_GSM_H */ diff --git a/plugins/mm-modem-option.c b/plugins/mm-modem-option.c index ac04b0bd..b15e7045 100644 --- a/plugins/mm-modem-option.c +++ b/plugins/mm-modem-option.c @@ -36,7 +36,9 @@ typedef struct { MMModem * mm_modem_option_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -46,6 +48,8 @@ mm_modem_option_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-option.h b/plugins/mm-modem-option.h index 4e88607e..3af9b1e9 100644 --- a/plugins/mm-modem-option.h +++ b/plugins/mm-modem-option.h @@ -38,6 +38,8 @@ GType mm_modem_option_get_type (void); MMModem *mm_modem_option_new (const char *device, const char *driver, - const char *plugin_name); + const char *plugin_name, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_OPTION_H */ diff --git a/plugins/mm-modem-sierra-cdma.c b/plugins/mm-modem-sierra-cdma.c index fc62bf6b..1168c834 100644 --- a/plugins/mm-modem-sierra-cdma.c +++ b/plugins/mm-modem-sierra-cdma.c @@ -51,7 +51,9 @@ mm_modem_sierra_cdma_new (const char *device, const char *driver, const char *plugin, gboolean evdo_rev0, - gboolean evdo_revA) + gboolean evdo_revA, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -63,6 +65,8 @@ mm_modem_sierra_cdma_new (const char *device, MM_MODEM_PLUGIN, plugin, MM_GENERIC_CDMA_EVDO_REV0, evdo_rev0, MM_GENERIC_CDMA_EVDO_REVA, evdo_revA, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-sierra-cdma.h b/plugins/mm-modem-sierra-cdma.h index 9111b739..a33b1bc1 100644 --- a/plugins/mm-modem-sierra-cdma.h +++ b/plugins/mm-modem-sierra-cdma.h @@ -40,6 +40,8 @@ MMModem *mm_modem_sierra_cdma_new (const char *device, const char *driver, const char *plugin, gboolean evdo_rev0, - gboolean evdo_revA); + gboolean evdo_revA, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_SIERRA_CDMA_H */ diff --git a/plugins/mm-modem-sierra-gsm.c b/plugins/mm-modem-sierra-gsm.c index bf5df313..c86c1c5e 100644 --- a/plugins/mm-modem-sierra-gsm.c +++ b/plugins/mm-modem-sierra-gsm.c @@ -38,7 +38,9 @@ typedef struct { MMModem * mm_modem_sierra_gsm_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -48,6 +50,8 @@ mm_modem_sierra_gsm_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-sierra-gsm.h b/plugins/mm-modem-sierra-gsm.h index dd84b307..8f2391d9 100644 --- a/plugins/mm-modem-sierra-gsm.h +++ b/plugins/mm-modem-sierra-gsm.h @@ -38,6 +38,8 @@ GType mm_modem_sierra_gsm_get_type (void); MMModem *mm_modem_sierra_gsm_new (const char *device, const char *driver, - const char *plugin_name); + const char *plugin_name, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_SIERRA_GSM_H */ diff --git a/plugins/mm-modem-simtech-gsm.c b/plugins/mm-modem-simtech-gsm.c index 07820b3c..4a626947 100644 --- a/plugins/mm-modem-simtech-gsm.c +++ b/plugins/mm-modem-simtech-gsm.c @@ -34,7 +34,9 @@ G_DEFINE_TYPE_EXTENDED (MMModemSimtechGsm, mm_modem_simtech_gsm, MM_TYPE_GENERIC MMModem * mm_modem_simtech_gsm_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -44,6 +46,8 @@ mm_modem_simtech_gsm_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-simtech-gsm.h b/plugins/mm-modem-simtech-gsm.h index 0ba3c431..85e421c3 100644 --- a/plugins/mm-modem-simtech-gsm.h +++ b/plugins/mm-modem-simtech-gsm.h @@ -38,6 +38,8 @@ GType mm_modem_simtech_gsm_get_type (void); MMModem *mm_modem_simtech_gsm_new (const char *device, const char *driver, - const char *plugin); + const char *plugin, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_SIMTECH_H */ diff --git a/plugins/mm-modem-x22x-gsm.c b/plugins/mm-modem-x22x-gsm.c index 8356b49d..ff232971 100644 --- a/plugins/mm-modem-x22x-gsm.c +++ b/plugins/mm-modem-x22x-gsm.c @@ -31,7 +31,9 @@ G_DEFINE_TYPE (MMModemX22xGsm, mm_modem_x22x_gsm, MM_TYPE_GENERIC_GSM) MMModem * mm_modem_x22x_gsm_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -41,6 +43,8 @@ mm_modem_x22x_gsm_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-x22x-gsm.h b/plugins/mm-modem-x22x-gsm.h index 8922afbf..61cc14d6 100644 --- a/plugins/mm-modem-x22x-gsm.h +++ b/plugins/mm-modem-x22x-gsm.h @@ -38,6 +38,8 @@ GType mm_modem_x22x_gsm_get_type (void); MMModem *mm_modem_x22x_gsm_new (const char *device, const char *driver, - const char *plugin); + const char *plugin, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_X22X_H */ diff --git a/plugins/mm-modem-zte.c b/plugins/mm-modem-zte.c index ba8a1db6..558260ec 100644 --- a/plugins/mm-modem-zte.c +++ b/plugins/mm-modem-zte.c @@ -41,7 +41,9 @@ typedef struct { MMModem * mm_modem_zte_new (const char *device, const char *driver, - const char *plugin) + const char *plugin, + guint32 vendor, + guint32 product) { g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); @@ -51,6 +53,8 @@ mm_modem_zte_new (const char *device, MM_MODEM_MASTER_DEVICE, device, MM_MODEM_DRIVER, driver, MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, NULL)); } diff --git a/plugins/mm-modem-zte.h b/plugins/mm-modem-zte.h index 112bae00..f2f068b8 100644 --- a/plugins/mm-modem-zte.h +++ b/plugins/mm-modem-zte.h @@ -38,6 +38,8 @@ GType mm_modem_zte_get_type (void); MMModem *mm_modem_zte_new (const char *device, const char *driver, - const char *plugin); + const char *plugin, + guint32 vendor, + guint32 product); #endif /* MM_MODEM_ZTE_H */ diff --git a/plugins/mm-plugin-anydata.c b/plugins/mm-plugin-anydata.c index 94f4f105..76df6734 100644 --- a/plugins/mm-plugin-anydata.c +++ b/plugins/mm-plugin-anydata.c @@ -110,6 +110,7 @@ grab_port (MMPluginBase *base, MMModem *modem = NULL; const char *name, *subsys, *devfile, *sysfs_path; guint32 caps; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -129,6 +130,11 @@ grab_port (MMPluginBase *base, return NULL; } + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if (caps & CAP_CDMA) { @@ -136,7 +142,9 @@ grab_port (MMPluginBase *base, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-generic.c b/plugins/mm-plugin-generic.c index d6847fd7..9704ae84 100644 --- a/plugins/mm-plugin-generic.c +++ b/plugins/mm-plugin-generic.c @@ -112,6 +112,7 @@ grab_port (MMPluginBase *base, MMModem *modem = NULL; const char *name, *subsys, *devfile, *sysfs_path, *driver; guint32 caps; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -133,6 +134,11 @@ grab_port (MMPluginBase *base, } } + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { @@ -141,11 +147,15 @@ grab_port (MMPluginBase *base, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } else if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_generic_gsm_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-gobi.c b/plugins/mm-plugin-gobi.c index fbe38783..36771d12 100644 --- a/plugins/mm-plugin-gobi.c +++ b/plugins/mm-plugin-gobi.c @@ -106,6 +106,7 @@ grab_port (MMPluginBase *base, MMModem *modem = NULL; const char *name, *subsys, *sysfs_path; guint32 caps; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -113,19 +114,28 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_modem_gobi_gsm_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } else if (caps & CAP_CDMA) { modem = mm_generic_cdma_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-hso.c b/plugins/mm-plugin-hso.c index dc0a8fcb..7b719322 100644 --- a/plugins/mm-plugin-hso.c +++ b/plugins/mm-plugin-hso.c @@ -105,6 +105,7 @@ grab_port (MMPluginBase *base, const char *name, *subsys, *sysfs_path; char *devfile; guint32 caps; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -112,6 +113,11 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + devfile = g_strdup (g_udev_device_get_device_file (port)); if (!devfile) { if (!strcmp (subsys, "net")) { @@ -139,7 +145,9 @@ grab_port (MMPluginBase *base, if (!existing) { modem = mm_modem_hso_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); if (modem) { if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); diff --git a/plugins/mm-plugin-huawei.c b/plugins/mm-plugin-huawei.c index eb141bfd..090bb0d5 100644 --- a/plugins/mm-plugin-huawei.c +++ b/plugins/mm-plugin-huawei.c @@ -268,7 +268,7 @@ grab_port (MMPluginBase *base, MMModem *modem = NULL; const char *name, *subsys, *devfile, *sysfs_path; guint32 caps; - guint16 product = 0; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -282,7 +282,7 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); - if (!mm_plugin_base_get_device_ids (base, subsys, name, NULL, &product)) { + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { g_set_error (error, 0, 0, "Could not get modem product ID."); return NULL; } @@ -292,14 +292,18 @@ grab_port (MMPluginBase *base, if (!existing) { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_modem_huawei_gsm_new (sysfs_path, - mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_base_supports_task_get_driver (task), + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } else if (caps & CAP_CDMA) { modem = mm_modem_huawei_cdma_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-longcheer.c b/plugins/mm-plugin-longcheer.c index dbbe186f..e63ff4e9 100644 --- a/plugins/mm-plugin-longcheer.c +++ b/plugins/mm-plugin-longcheer.c @@ -114,6 +114,7 @@ grab_port (MMPluginBase *base, const char *name, *subsys, *sysfs_path; guint32 caps; MMPortType ptype = MM_PORT_TYPE_UNKNOWN; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -138,19 +139,28 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_modem_longcheer_gsm_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } else if (caps & CAP_CDMA) { modem = mm_generic_cdma_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-mbm.c b/plugins/mm-plugin-mbm.c index 5554d84f..dd64cc66 100644 --- a/plugins/mm-plugin-mbm.c +++ b/plugins/mm-plugin-mbm.c @@ -132,6 +132,7 @@ grab_port (MMPluginBase *base, MMModem *modem = NULL; const char *name, *subsys, *sysfs_path; guint32 caps; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -143,11 +144,18 @@ grab_port (MMPluginBase *base, if (!(caps & MM_PLUGIN_BASE_PORT_CAP_GSM) && strcmp (subsys, "net")) return NULL; + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { modem = mm_modem_mbm_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); if (modem) { if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); diff --git a/plugins/mm-plugin-moto-c.c b/plugins/mm-plugin-moto-c.c index d798af4c..21b737e2 100644 --- a/plugins/mm-plugin-moto-c.c +++ b/plugins/mm-plugin-moto-c.c @@ -105,6 +105,7 @@ grab_port (MMPluginBase *base, GUdevDevice *port = NULL; MMModem *modem = NULL; const char *name, *subsys, *devfile, *sysfs_path; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -118,11 +119,18 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { modem = mm_modem_moto_c_gsm_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); if (modem) { if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { diff --git a/plugins/mm-plugin-nokia.c b/plugins/mm-plugin-nokia.c index 2d0d6aff..938f8c57 100644 --- a/plugins/mm-plugin-nokia.c +++ b/plugins/mm-plugin-nokia.c @@ -109,6 +109,7 @@ grab_port (MMPluginBase *base, MMModem *modem = NULL; const char *name, *subsys, *devfile, *sysfs_path; guint32 caps; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -122,19 +123,28 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_modem_nokia_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } else if (caps & CAP_CDMA) { modem = mm_generic_cdma_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-novatel.c b/plugins/mm-plugin-novatel.c index a968836a..53844566 100644 --- a/plugins/mm-plugin-novatel.c +++ b/plugins/mm-plugin-novatel.c @@ -115,6 +115,7 @@ grab_port (MMPluginBase *base, MMModem *modem = NULL; const char *name, *subsys, *devfile, *sysfs_path; guint32 caps; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -128,19 +129,28 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_modem_novatel_gsm_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } else if (caps & CAP_CDMA) { modem = mm_modem_novatel_cdma_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-option.c b/plugins/mm-plugin-option.c index 101f9bd4..ab2bd3d5 100644 --- a/plugins/mm-plugin-option.c +++ b/plugins/mm-plugin-option.c @@ -107,6 +107,7 @@ grab_port (MMPluginBase *base, guint32 caps; int usbif; MMPortType ptype = MM_PORT_TYPE_SECONDARY; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -129,13 +130,20 @@ grab_port (MMPluginBase *base, if (usbif == 0) ptype = MM_PORT_TYPE_PRIMARY; + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_modem_option_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-sierra.c b/plugins/mm-plugin-sierra.c index 8ace6532..51ab9025 100644 --- a/plugins/mm-plugin-sierra.c +++ b/plugins/mm-plugin-sierra.c @@ -128,6 +128,7 @@ grab_port (MMPluginBase *base, const char *name, *subsys, *devfile, *sysfs_path; guint32 caps; MMPortType ptype = MM_PORT_TYPE_UNKNOWN; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -145,19 +146,28 @@ grab_port (MMPluginBase *base, if (g_object_get_data (G_OBJECT (task), TAG_SIERRA_SECONDARY_PORT)) ptype = MM_PORT_TYPE_SECONDARY; + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if ((caps & MM_PLUGIN_BASE_PORT_CAP_GSM) || (ptype != MM_PORT_TYPE_UNKNOWN)) { modem = mm_modem_sierra_gsm_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } else if (caps & CAP_CDMA) { modem = mm_modem_sierra_cdma_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-simtech.c b/plugins/mm-plugin-simtech.c index 3c448738..611d2d20 100644 --- a/plugins/mm-plugin-simtech.c +++ b/plugins/mm-plugin-simtech.c @@ -114,6 +114,7 @@ grab_port (MMPluginBase *base, const char *name, *subsys, *sysfs_path; guint32 caps; MMPortType ptype = MM_PORT_TYPE_UNKNOWN; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -138,19 +139,28 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_modem_simtech_gsm_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } else if (caps & CAP_CDMA) { modem = mm_generic_cdma_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-x22x.c b/plugins/mm-plugin-x22x.c index ecad48ed..5a8253fe 100644 --- a/plugins/mm-plugin-x22x.c +++ b/plugins/mm-plugin-x22x.c @@ -115,6 +115,7 @@ grab_port (MMPluginBase *base, const char *name, *subsys, *sysfs_path; guint32 caps; MMPortType ptype = MM_PORT_TYPE_UNKNOWN; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -139,13 +140,20 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_modem_x22x_gsm_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } if (modem) { diff --git a/plugins/mm-plugin-zte.c b/plugins/mm-plugin-zte.c index e943bbfe..97bbcc36 100644 --- a/plugins/mm-plugin-zte.c +++ b/plugins/mm-plugin-zte.c @@ -121,6 +121,7 @@ grab_port (MMPluginBase *base, const char *name, *subsys, *sysfs_path; guint32 caps; MMPortType ptype = MM_PORT_TYPE_UNKNOWN; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -134,19 +135,28 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + caps = mm_plugin_base_supports_task_get_probed_capabilities (task); sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task); if (!existing) { if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) { modem = mm_modem_zte_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); } else if (caps & CAP_CDMA) { modem = mm_generic_cdma_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), mm_plugin_get_name (MM_PLUGIN (base)), !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856), - !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A)); + !!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A), + vendor, + product); } if (modem) { |