aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
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 /src/mm-base-modem.c
parentff5840c3c7cd6b9de8881d4c081dfa9bc5e43b11 (diff)
base-modem: add subsystem vendor ID property
Subsystem vendor ID can be used for identifying PCI modems, so expose the property.
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r--src/mm-base-modem.c24
1 files changed, 24 insertions, 0 deletions
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",