aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Palmas <dnlplm@gmail.com>2022-05-04 11:49:03 +0200
committerDaniele Palmas <dnlplm@gmail.com>2022-05-24 09:22:06 +0200
commit654c5f5014f90df7eb239b83ac88a1065e169731 (patch)
treee3b4ae95e450acdcd5d62fd93d12ad734bd253c9
parentff5840c3c7cd6b9de8881d4c081dfa9bc5e43b11 (diff)
base-modem: add subsystem vendor ID property
Subsystem vendor ID can be used for identifying PCI modems, so expose the property.
-rw-r--r--plugins/altair/mm-plugin-altair-lte.c1
-rw-r--r--plugins/anydata/mm-plugin-anydata.c1
-rw-r--r--plugins/broadmobi/mm-plugin-broadmobi.c1
-rw-r--r--plugins/cinterion/mm-plugin-cinterion.c1
-rw-r--r--plugins/dell/mm-plugin-dell.c1
-rw-r--r--plugins/dlink/mm-plugin-dlink.c1
-rw-r--r--plugins/fibocom/mm-plugin-fibocom.c1
-rw-r--r--plugins/foxconn/mm-plugin-foxconn.c1
-rw-r--r--plugins/generic/mm-plugin-generic.c1
-rw-r--r--plugins/gosuncn/mm-plugin-gosuncn.c1
-rw-r--r--plugins/haier/mm-plugin-haier.c1
-rw-r--r--plugins/huawei/mm-plugin-huawei.c1
-rw-r--r--plugins/intel/mm-plugin-intel.c1
-rw-r--r--plugins/iridium/mm-plugin-iridium.c1
-rw-r--r--plugins/linktop/mm-plugin-linktop.c1
-rw-r--r--plugins/longcheer/mm-plugin-longcheer.c1
-rw-r--r--plugins/mbm/mm-plugin-mbm.c1
-rw-r--r--plugins/motorola/mm-plugin-motorola.c1
-rw-r--r--plugins/mtk/mm-plugin-mtk.c1
-rw-r--r--plugins/nokia/mm-plugin-nokia-icera.c1
-rw-r--r--plugins/nokia/mm-plugin-nokia.c1
-rw-r--r--plugins/novatel/mm-plugin-novatel-lte.c1
-rw-r--r--plugins/novatel/mm-plugin-novatel.c1
-rw-r--r--plugins/option/mm-plugin-hso.c1
-rw-r--r--plugins/option/mm-plugin-option.c1
-rw-r--r--plugins/pantech/mm-plugin-pantech.c1
-rw-r--r--plugins/qcom-soc/mm-plugin-qcom-soc.c1
-rw-r--r--plugins/quectel/mm-plugin-quectel.c1
-rw-r--r--plugins/samsung/mm-plugin-samsung.c1
-rw-r--r--plugins/sierra/mm-plugin-sierra-legacy.c1
-rw-r--r--plugins/sierra/mm-plugin-sierra.c1
-rw-r--r--plugins/simtech/mm-plugin-simtech.c1
-rw-r--r--plugins/telit/mm-plugin-telit.c1
-rw-r--r--plugins/thuraya/mm-plugin-thuraya.c1
-rw-r--r--plugins/tplink/mm-plugin-tplink.c1
-rw-r--r--plugins/ublox/mm-plugin-ublox.c1
-rw-r--r--plugins/via/mm-plugin-via.c1
-rw-r--r--plugins/wavecom/mm-plugin-wavecom.c1
-rw-r--r--plugins/x22x/mm-plugin-x22x.c1
-rw-r--r--plugins/zte/mm-plugin-zte.c1
-rw-r--r--src/mm-base-modem.c24
-rw-r--r--src/mm-base-modem.h28
-rw-r--r--src/mm-device.c14
-rw-r--r--src/mm-device.h1
-rw-r--r--src/mm-plugin.c1
-rw-r--r--src/mm-plugin.h1
46 files changed, 96 insertions, 13 deletions
diff --git a/plugins/altair/mm-plugin-altair-lte.c b/plugins/altair/mm-plugin-altair-lte.c
index 054a600f..e58fe176 100644
--- a/plugins/altair/mm-plugin-altair-lte.c
+++ b/plugins/altair/mm-plugin-altair-lte.c
@@ -55,6 +55,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/anydata/mm-plugin-anydata.c b/plugins/anydata/mm-plugin-anydata.c
index f8c0c30e..aee34b2f 100644
--- a/plugins/anydata/mm-plugin-anydata.c
+++ b/plugins/anydata/mm-plugin-anydata.c
@@ -42,6 +42,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/broadmobi/mm-plugin-broadmobi.c b/plugins/broadmobi/mm-plugin-broadmobi.c
index 0da4a36e..0c91f728 100644
--- a/plugins/broadmobi/mm-plugin-broadmobi.c
+++ b/plugins/broadmobi/mm-plugin-broadmobi.c
@@ -40,6 +40,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/cinterion/mm-plugin-cinterion.c b/plugins/cinterion/mm-plugin-cinterion.c
index 48fbb1ac..2957df11 100644
--- a/plugins/cinterion/mm-plugin-cinterion.c
+++ b/plugins/cinterion/mm-plugin-cinterion.c
@@ -114,6 +114,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/dell/mm-plugin-dell.c b/plugins/dell/mm-plugin-dell.c
index 01914fb8..5d2a38ee 100644
--- a/plugins/dell/mm-plugin-dell.c
+++ b/plugins/dell/mm-plugin-dell.c
@@ -373,6 +373,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/dlink/mm-plugin-dlink.c b/plugins/dlink/mm-plugin-dlink.c
index 57ecec54..72476e2e 100644
--- a/plugins/dlink/mm-plugin-dlink.c
+++ b/plugins/dlink/mm-plugin-dlink.c
@@ -40,6 +40,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/fibocom/mm-plugin-fibocom.c b/plugins/fibocom/mm-plugin-fibocom.c
index d637f671..bf7985f1 100644
--- a/plugins/fibocom/mm-plugin-fibocom.c
+++ b/plugins/fibocom/mm-plugin-fibocom.c
@@ -49,6 +49,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/foxconn/mm-plugin-foxconn.c b/plugins/foxconn/mm-plugin-foxconn.c
index 0eef97ef..d248fb05 100644
--- a/plugins/foxconn/mm-plugin-foxconn.c
+++ b/plugins/foxconn/mm-plugin-foxconn.c
@@ -50,6 +50,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/generic/mm-plugin-generic.c b/plugins/generic/mm-plugin-generic.c
index e18b8854..28904887 100644
--- a/plugins/generic/mm-plugin-generic.c
+++ b/plugins/generic/mm-plugin-generic.c
@@ -54,6 +54,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/gosuncn/mm-plugin-gosuncn.c b/plugins/gosuncn/mm-plugin-gosuncn.c
index 7ac517fa..010e93eb 100644
--- a/plugins/gosuncn/mm-plugin-gosuncn.c
+++ b/plugins/gosuncn/mm-plugin-gosuncn.c
@@ -44,6 +44,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/haier/mm-plugin-haier.c b/plugins/haier/mm-plugin-haier.c
index 0c11aeb6..a0951c27 100644
--- a/plugins/haier/mm-plugin-haier.c
+++ b/plugins/haier/mm-plugin-haier.c
@@ -35,6 +35,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/huawei/mm-plugin-huawei.c b/plugins/huawei/mm-plugin-huawei.c
index 31ee6274..a4f487c0 100644
--- a/plugins/huawei/mm-plugin-huawei.c
+++ b/plugins/huawei/mm-plugin-huawei.c
@@ -624,6 +624,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/intel/mm-plugin-intel.c b/plugins/intel/mm-plugin-intel.c
index 18fc54f8..d83edfba 100644
--- a/plugins/intel/mm-plugin-intel.c
+++ b/plugins/intel/mm-plugin-intel.c
@@ -38,6 +38,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/iridium/mm-plugin-iridium.c b/plugins/iridium/mm-plugin-iridium.c
index 582d86a3..741847f8 100644
--- a/plugins/iridium/mm-plugin-iridium.c
+++ b/plugins/iridium/mm-plugin-iridium.c
@@ -41,6 +41,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/linktop/mm-plugin-linktop.c b/plugins/linktop/mm-plugin-linktop.c
index d4b0bdc9..8276e59f 100644
--- a/plugins/linktop/mm-plugin-linktop.c
+++ b/plugins/linktop/mm-plugin-linktop.c
@@ -37,6 +37,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/longcheer/mm-plugin-longcheer.c b/plugins/longcheer/mm-plugin-longcheer.c
index 4331d21b..31774efb 100644
--- a/plugins/longcheer/mm-plugin-longcheer.c
+++ b/plugins/longcheer/mm-plugin-longcheer.c
@@ -187,6 +187,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/mbm/mm-plugin-mbm.c b/plugins/mbm/mm-plugin-mbm.c
index ffd633e3..6790d8a8 100644
--- a/plugins/mbm/mm-plugin-mbm.c
+++ b/plugins/mbm/mm-plugin-mbm.c
@@ -44,6 +44,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/motorola/mm-plugin-motorola.c b/plugins/motorola/mm-plugin-motorola.c
index 368e898b..fbe9b2fa 100644
--- a/plugins/motorola/mm-plugin-motorola.c
+++ b/plugins/motorola/mm-plugin-motorola.c
@@ -38,6 +38,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/mtk/mm-plugin-mtk.c b/plugins/mtk/mm-plugin-mtk.c
index 5a4ea1c1..957e38a3 100644
--- a/plugins/mtk/mm-plugin-mtk.c
+++ b/plugins/mtk/mm-plugin-mtk.c
@@ -38,6 +38,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/nokia/mm-plugin-nokia-icera.c b/plugins/nokia/mm-plugin-nokia-icera.c
index f8cbc432..78c8fd4c 100644
--- a/plugins/nokia/mm-plugin-nokia-icera.c
+++ b/plugins/nokia/mm-plugin-nokia-icera.c
@@ -46,6 +46,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/nokia/mm-plugin-nokia.c b/plugins/nokia/mm-plugin-nokia.c
index 29b8c8ff..b2700b70 100644
--- a/plugins/nokia/mm-plugin-nokia.c
+++ b/plugins/nokia/mm-plugin-nokia.c
@@ -47,6 +47,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/novatel/mm-plugin-novatel-lte.c b/plugins/novatel/mm-plugin-novatel-lte.c
index 18aac32c..025707ae 100644
--- a/plugins/novatel/mm-plugin-novatel-lte.c
+++ b/plugins/novatel/mm-plugin-novatel-lte.c
@@ -38,6 +38,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/novatel/mm-plugin-novatel.c b/plugins/novatel/mm-plugin-novatel.c
index b26dcf9a..1c38c447 100644
--- a/plugins/novatel/mm-plugin-novatel.c
+++ b/plugins/novatel/mm-plugin-novatel.c
@@ -50,6 +50,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/option/mm-plugin-hso.c b/plugins/option/mm-plugin-hso.c
index dbc41c11..9a28ca64 100644
--- a/plugins/option/mm-plugin-hso.c
+++ b/plugins/option/mm-plugin-hso.c
@@ -115,6 +115,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/option/mm-plugin-option.c b/plugins/option/mm-plugin-option.c
index 1f72325c..4dcb55a1 100644
--- a/plugins/option/mm-plugin-option.c
+++ b/plugins/option/mm-plugin-option.c
@@ -38,6 +38,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/pantech/mm-plugin-pantech.c b/plugins/pantech/mm-plugin-pantech.c
index 6820e383..4af1955b 100644
--- a/plugins/pantech/mm-plugin-pantech.c
+++ b/plugins/pantech/mm-plugin-pantech.c
@@ -80,6 +80,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/qcom-soc/mm-plugin-qcom-soc.c b/plugins/qcom-soc/mm-plugin-qcom-soc.c
index 58743a8d..ae844dd6 100644
--- a/plugins/qcom-soc/mm-plugin-qcom-soc.c
+++ b/plugins/qcom-soc/mm-plugin-qcom-soc.c
@@ -45,6 +45,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/quectel/mm-plugin-quectel.c b/plugins/quectel/mm-plugin-quectel.c
index 9a7a1c63..28f78ad5 100644
--- a/plugins/quectel/mm-plugin-quectel.c
+++ b/plugins/quectel/mm-plugin-quectel.c
@@ -45,6 +45,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/samsung/mm-plugin-samsung.c b/plugins/samsung/mm-plugin-samsung.c
index 18b0b9d3..3ce64d73 100644
--- a/plugins/samsung/mm-plugin-samsung.c
+++ b/plugins/samsung/mm-plugin-samsung.c
@@ -39,6 +39,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/sierra/mm-plugin-sierra-legacy.c b/plugins/sierra/mm-plugin-sierra-legacy.c
index ebbca1b0..521b8ad1 100644
--- a/plugins/sierra/mm-plugin-sierra-legacy.c
+++ b/plugins/sierra/mm-plugin-sierra-legacy.c
@@ -40,6 +40,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/sierra/mm-plugin-sierra.c b/plugins/sierra/mm-plugin-sierra.c
index 2ce00f56..8ddfbc6d 100644
--- a/plugins/sierra/mm-plugin-sierra.c
+++ b/plugins/sierra/mm-plugin-sierra.c
@@ -49,6 +49,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/simtech/mm-plugin-simtech.c b/plugins/simtech/mm-plugin-simtech.c
index 99c7697d..9b4f377e 100644
--- a/plugins/simtech/mm-plugin-simtech.c
+++ b/plugins/simtech/mm-plugin-simtech.c
@@ -42,6 +42,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/telit/mm-plugin-telit.c b/plugins/telit/mm-plugin-telit.c
index 3ced94a0..856081e5 100644
--- a/plugins/telit/mm-plugin-telit.c
+++ b/plugins/telit/mm-plugin-telit.c
@@ -49,6 +49,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/thuraya/mm-plugin-thuraya.c b/plugins/thuraya/mm-plugin-thuraya.c
index 64e1b452..5097e24e 100644
--- a/plugins/thuraya/mm-plugin-thuraya.c
+++ b/plugins/thuraya/mm-plugin-thuraya.c
@@ -43,6 +43,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/tplink/mm-plugin-tplink.c b/plugins/tplink/mm-plugin-tplink.c
index 5e8a615e..1c03fef0 100644
--- a/plugins/tplink/mm-plugin-tplink.c
+++ b/plugins/tplink/mm-plugin-tplink.c
@@ -40,6 +40,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/ublox/mm-plugin-ublox.c b/plugins/ublox/mm-plugin-ublox.c
index 569054b9..db6d94d3 100644
--- a/plugins/ublox/mm-plugin-ublox.c
+++ b/plugins/ublox/mm-plugin-ublox.c
@@ -37,6 +37,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/via/mm-plugin-via.c b/plugins/via/mm-plugin-via.c
index f12c6508..8f3da5bf 100644
--- a/plugins/via/mm-plugin-via.c
+++ b/plugins/via/mm-plugin-via.c
@@ -39,6 +39,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/wavecom/mm-plugin-wavecom.c b/plugins/wavecom/mm-plugin-wavecom.c
index 22b1ba4c..8e3f9d2c 100644
--- a/plugins/wavecom/mm-plugin-wavecom.c
+++ b/plugins/wavecom/mm-plugin-wavecom.c
@@ -44,6 +44,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/x22x/mm-plugin-x22x.c b/plugins/x22x/mm-plugin-x22x.c
index 9bfc62d2..7b49cff8 100644
--- a/plugins/x22x/mm-plugin-x22x.c
+++ b/plugins/x22x/mm-plugin-x22x.c
@@ -189,6 +189,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/plugins/zte/mm-plugin-zte.c b/plugins/zte/mm-plugin-zte.c
index 27dcb4fa..b89a62da 100644
--- a/plugins/zte/mm-plugin-zte.c
+++ b/plugins/zte/mm-plugin-zte.c
@@ -65,6 +65,7 @@ create_modem (MMPlugin *self,
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error)
{
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 13fe14dd..9dc26601 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -57,6 +57,7 @@ enum {
PROP_PLUGIN,
PROP_VENDOR_ID,
PROP_PRODUCT_ID,
+ PROP_SUBSYSTEM_VENDOR_ID,
PROP_CONNECTION,
PROP_REPROBE,
PROP_DATA_NET_SUPPORTED,
@@ -89,6 +90,7 @@ struct _MMBaseModemPrivate {
guint vendor_id;
guint product_id;
+ guint subsystem_vendor_id;
gboolean hotplugged;
gboolean valid;
@@ -1671,6 +1673,14 @@ mm_base_modem_get_product_id (MMBaseModem *self)
return self->priv->product_id;
}
+guint
+mm_base_modem_get_subsystem_vendor_id (MMBaseModem *self)
+{
+ g_return_val_if_fail (MM_IS_BASE_MODEM (self), 0);
+
+ return self->priv->subsystem_vendor_id;
+}
+
/*****************************************************************************/
static gboolean
@@ -1832,6 +1842,9 @@ set_property (GObject *object,
case PROP_PRODUCT_ID:
self->priv->product_id = g_value_get_uint (value);
break;
+ case PROP_SUBSYSTEM_VENDOR_ID:
+ self->priv->subsystem_vendor_id = g_value_get_uint (value);
+ break;
case PROP_CONNECTION:
g_clear_object (&self->priv->connection);
self->priv->connection = g_value_dup_object (value);
@@ -1881,6 +1894,9 @@ get_property (GObject *object,
case PROP_PRODUCT_ID:
g_value_set_uint (value, self->priv->product_id);
break;
+ case PROP_SUBSYSTEM_VENDOR_ID:
+ g_value_set_uint (value, self->priv->subsystem_vendor_id);
+ break;
case PROP_CONNECTION:
g_value_set_object (value, self->priv->connection);
break;
@@ -2034,6 +2050,14 @@ mm_base_modem_class_init (MMBaseModemClass *klass)
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_property (object_class, PROP_PRODUCT_ID, properties[PROP_PRODUCT_ID]);
+ properties[PROP_SUBSYSTEM_VENDOR_ID] =
+ g_param_spec_uint (MM_BASE_MODEM_SUBSYSTEM_VENDOR_ID,
+ "Hardware subsystem vendor ID",
+ "Hardware subsystem vendor ID. Available for pci devices.",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+ g_object_class_install_property (object_class, PROP_SUBSYSTEM_VENDOR_ID, properties[PROP_SUBSYSTEM_VENDOR_ID]);
+
properties[PROP_CONNECTION] =
g_param_spec_object (MM_BASE_MODEM_CONNECTION,
"Connection",
diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h
index e4254a0b..1b7a2219 100644
--- a/src/mm-base-modem.h
+++ b/src/mm-base-modem.h
@@ -55,17 +55,18 @@ typedef struct _MMBaseModem MMBaseModem;
typedef struct _MMBaseModemClass MMBaseModemClass;
typedef struct _MMBaseModemPrivate MMBaseModemPrivate;
-#define MM_BASE_MODEM_CONNECTION "base-modem-connection"
-#define MM_BASE_MODEM_MAX_TIMEOUTS "base-modem-max-timeouts"
-#define MM_BASE_MODEM_VALID "base-modem-valid"
-#define MM_BASE_MODEM_DEVICE "base-modem-device"
-#define MM_BASE_MODEM_DRIVERS "base-modem-drivers"
-#define MM_BASE_MODEM_PLUGIN "base-modem-plugin"
-#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"
+#define MM_BASE_MODEM_CONNECTION "base-modem-connection"
+#define MM_BASE_MODEM_MAX_TIMEOUTS "base-modem-max-timeouts"
+#define MM_BASE_MODEM_VALID "base-modem-valid"
+#define MM_BASE_MODEM_DEVICE "base-modem-device"
+#define MM_BASE_MODEM_DRIVERS "base-modem-drivers"
+#define MM_BASE_MODEM_PLUGIN "base-modem-plugin"
+#define MM_BASE_MODEM_VENDOR_ID "base-modem-vendor-id"
+#define MM_BASE_MODEM_PRODUCT_ID "base-modem-product-id"
+#define MM_BASE_MODEM_SUBSYSTEM_VENDOR_ID "base-modem-subsystem-vendor-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"
#define MM_BASE_MODEM_SIGNAL_LINK_PORT_GRABBED "base-modem-link-port-grabbed"
#define MM_BASE_MODEM_SIGNAL_LINK_PORT_RELEASED "base-modem-link-port-released"
@@ -207,8 +208,9 @@ const gchar *mm_base_modem_get_device (MMBaseModem *self);
const gchar **mm_base_modem_get_drivers (MMBaseModem *self);
const gchar *mm_base_modem_get_plugin (MMBaseModem *self);
-guint mm_base_modem_get_vendor_id (MMBaseModem *self);
-guint mm_base_modem_get_product_id (MMBaseModem *self);
+guint mm_base_modem_get_vendor_id (MMBaseModem *self);
+guint mm_base_modem_get_product_id (MMBaseModem *self);
+guint mm_base_modem_get_subsystem_vendor_id (MMBaseModem *self);
GCancellable *mm_base_modem_peek_cancellable (MMBaseModem *self);
GCancellable *mm_base_modem_get_cancellable (MMBaseModem *self);
diff --git a/src/mm-device.c b/src/mm-device.c
index c9fa5d05..33528946 100644
--- a/src/mm-device.c
+++ b/src/mm-device.c
@@ -66,6 +66,8 @@ struct _MMDevicePrivate {
/* If USB, device vid/pid */
guint16 vendor;
guint16 product;
+ /* Subsystem vendor ID for PCI devices */
+ guint16 subsystem_vendor;
/* Kernel drivers managing this device */
gchar **drivers;
@@ -241,6 +243,9 @@ mm_device_grab_port (MMDevice *self,
self->priv->product = mm_kernel_device_get_physdev_pid (kernel_port);
}
+ if (!self->priv->subsystem_vendor)
+ self->priv->subsystem_vendor = mm_kernel_device_get_physdev_subsystem_vid (kernel_port);
+
/* Add new port driver */
add_port_driver (self, kernel_port);
@@ -363,6 +368,9 @@ export_modem (MMDevice *self)
mm_obj_dbg (self, " vid:pid: 0x%04X:0x%04X",
(mm_base_modem_get_vendor_id (self->priv->modem) & 0xFFFF),
(mm_base_modem_get_product_id (self->priv->modem) & 0xFFFF));
+ if (mm_base_modem_get_subsystem_vendor_id (self->priv->modem))
+ mm_obj_dbg (self, " subsystem vid: 0x%04X",
+ (mm_base_modem_get_subsystem_vendor_id (self->priv->modem) & 0xFFFF));
if (self->priv->virtual)
mm_obj_dbg (self, " virtual");
@@ -515,6 +523,12 @@ mm_device_get_product (MMDevice *self)
return self->priv->product;
}
+guint16
+mm_device_get_subsystem_vendor (MMDevice *self)
+{
+ return self->priv->subsystem_vendor;
+}
+
void
mm_device_set_plugin (MMDevice *self,
GObject *plugin)
diff --git a/src/mm-device.h b/src/mm-device.h
index 00d5977a..812c03a6 100644
--- a/src/mm-device.h
+++ b/src/mm-device.h
@@ -99,6 +99,7 @@ const gchar *mm_device_get_uid (MMDevice *self);
const gchar **mm_device_get_drivers (MMDevice *self);
guint16 mm_device_get_vendor (MMDevice *self);
guint16 mm_device_get_product (MMDevice *self);
+guint16 mm_device_get_subsystem_vendor (MMDevice *self);
void mm_device_set_plugin (MMDevice *self,
GObject *plugin);
GObject *mm_device_peek_plugin (MMDevice *self);
diff --git a/src/mm-plugin.c b/src/mm-plugin.c
index 2020b376..354caf09 100644
--- a/src/mm-plugin.c
+++ b/src/mm-plugin.c
@@ -924,6 +924,7 @@ mm_plugin_create_modem (MMPlugin *self,
drivers,
mm_device_get_vendor (device),
mm_device_get_product (device),
+ mm_device_get_subsystem_vendor (device),
port_probes,
error);
if (!modem)
diff --git a/src/mm-plugin.h b/src/mm-plugin.h
index b27e7a2f..89bac2e2 100644
--- a/src/mm-plugin.h
+++ b/src/mm-plugin.h
@@ -111,6 +111,7 @@ struct _MMPluginClass {
const gchar **drivers,
guint16 vendor,
guint16 product,
+ guint16 subsystem_vendor,
GList *probes,
GError **error);