port: new `MM_PORT_TYPE_NET' for pure net devices
Net devices will be MMPorts of type MM_PORT_TYPE_NET.
This commit is contained in:
@@ -219,7 +219,7 @@ mm_base_modem_grab_port (MMBaseModem *self,
|
|||||||
port = MM_PORT (g_object_new (MM_TYPE_PORT,
|
port = MM_PORT (g_object_new (MM_TYPE_PORT,
|
||||||
MM_PORT_DEVICE, name,
|
MM_PORT_DEVICE, name,
|
||||||
MM_PORT_SUBSYS, MM_PORT_SUBSYS_NET,
|
MM_PORT_SUBSYS, MM_PORT_SUBSYS_NET,
|
||||||
/* MM_PORT_TYPE, MM_PORT_TYPE_IGNORED, */
|
MM_PORT_TYPE, MM_PORT_TYPE_NET,
|
||||||
NULL));
|
NULL));
|
||||||
} else
|
} else
|
||||||
/* We already filter out before all non-tty, non-net ports */
|
/* We already filter out before all non-tty, non-net ports */
|
||||||
@@ -580,9 +580,10 @@ mm_base_modem_organize_ports (MMBaseModem *self,
|
|||||||
|
|
||||||
g_hash_table_iter_init (&iter, self->priv->ports);
|
g_hash_table_iter_init (&iter, self->priv->ports);
|
||||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &candidate)) {
|
while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &candidate)) {
|
||||||
MMPortSubsys subsys = mm_port_get_subsys (candidate);
|
switch (mm_port_get_port_type (candidate)) {
|
||||||
|
|
||||||
if (MM_IS_AT_SERIAL_PORT (candidate)) {
|
case MM_PORT_TYPE_AT:
|
||||||
|
g_assert (MM_IS_AT_SERIAL_PORT (candidate));
|
||||||
flags = mm_at_serial_port_get_flags (MM_AT_SERIAL_PORT (candidate));
|
flags = mm_at_serial_port_get_flags (MM_AT_SERIAL_PORT (candidate));
|
||||||
|
|
||||||
if (flags & MM_AT_PORT_FLAG_PRIMARY) {
|
if (flags & MM_AT_PORT_FLAG_PRIMARY) {
|
||||||
@@ -613,13 +614,23 @@ mm_base_modem_organize_ports (MMBaseModem *self,
|
|||||||
else if (!backup_secondary)
|
else if (!backup_secondary)
|
||||||
backup_secondary = MM_AT_SERIAL_PORT (candidate);
|
backup_secondary = MM_AT_SERIAL_PORT (candidate);
|
||||||
}
|
}
|
||||||
} else if (MM_IS_QCDM_SERIAL_PORT (candidate)) {
|
break;
|
||||||
|
|
||||||
|
case MM_PORT_TYPE_QCDM:
|
||||||
|
g_assert (MM_IS_QCDM_SERIAL_PORT (candidate));
|
||||||
if (!qcdm)
|
if (!qcdm)
|
||||||
qcdm = MM_QCDM_SERIAL_PORT (candidate);
|
qcdm = MM_QCDM_SERIAL_PORT (candidate);
|
||||||
} else if (subsys == MM_PORT_SUBSYS_NET) {
|
break;
|
||||||
|
|
||||||
|
case MM_PORT_TYPE_NET:
|
||||||
/* Net device (if any) is the preferred data port */
|
/* Net device (if any) is the preferred data port */
|
||||||
if (!data || MM_IS_AT_SERIAL_PORT (data))
|
if (!data || MM_IS_AT_SERIAL_PORT (data))
|
||||||
data = candidate;
|
data = candidate;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
/* Ignore port */
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -919,7 +919,7 @@ mm_port_probe_get_port_type (MMPortProbe *self)
|
|||||||
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
|
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
|
||||||
|
|
||||||
if (g_str_equal (self->priv->subsys, "net"))
|
if (g_str_equal (self->priv->subsys, "net"))
|
||||||
return MM_PORT_TYPE_UNKNOWN;
|
return MM_PORT_TYPE_NET;
|
||||||
|
|
||||||
if (self->priv->flags & MM_PORT_PROBE_QCDM &&
|
if (self->priv->flags & MM_PORT_PROBE_QCDM &&
|
||||||
self->priv->is_qcdm)
|
self->priv->is_qcdm)
|
||||||
|
@@ -30,6 +30,7 @@ typedef enum { /*< underscore_name=mm_port_subsys >*/
|
|||||||
typedef enum { /*< underscore_name=mm_port_type >*/
|
typedef enum { /*< underscore_name=mm_port_type >*/
|
||||||
MM_PORT_TYPE_UNKNOWN = 0x0,
|
MM_PORT_TYPE_UNKNOWN = 0x0,
|
||||||
MM_PORT_TYPE_IGNORED,
|
MM_PORT_TYPE_IGNORED,
|
||||||
|
MM_PORT_TYPE_NET,
|
||||||
MM_PORT_TYPE_AT,
|
MM_PORT_TYPE_AT,
|
||||||
MM_PORT_TYPE_QCDM,
|
MM_PORT_TYPE_QCDM,
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user