aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-11-09 12:31:03 +0100
committerAleksander Morgado <aleksander@aleksander.es>2020-11-09 18:41:57 +0100
commit4ec2db75b8fc1175c12d007ca64d2edcf630e3cc (patch)
treef4035d682e30b31a16a7970e9b0b20f1974f93f6 /src
parent56fca1447324f6ac47f2c7e7c9534c49f1bf1da3 (diff)
port-serial-qcdm: allow specifying input subsystem
We have assumed until now that all QCDM ports are based on TTY drivers, e.g. exposed via USB. This may no longer be true, so allow creating QCDM ports with an explicit subsystem instead of defaulting always to TTY.
Diffstat (limited to 'src')
-rw-r--r--src/mm-base-modem.c2
-rw-r--r--src/mm-port-probe.c2
-rw-r--r--src/mm-port-serial-qcdm.c5
-rw-r--r--src/mm-port-serial-qcdm.h3
4 files changed, 7 insertions, 5 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index fa13548e..d5b20b45 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -176,7 +176,7 @@ base_modem_create_tty_port (MMBaseModem *self,
const gchar *flow_control_tag;
if (ptype == MM_PORT_TYPE_QCDM)
- port = MM_PORT (mm_port_serial_qcdm_new (name));
+ port = MM_PORT (mm_port_serial_qcdm_new (name, MM_PORT_SUBSYS_TTY));
else if (ptype == MM_PORT_TYPE_GPS)
port = MM_PORT (mm_port_serial_gps_new (name));
else if (ptype == MM_PORT_TYPE_AUDIO)
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c
index 5ae08296..2a6cdf16 100644
--- a/src/mm-port-probe.c
+++ b/src/mm-port-probe.c
@@ -745,7 +745,7 @@ serial_probe_qcdm (MMPortProbe *self)
}
/* Open the QCDM port */
- ctx->serial = MM_PORT_SERIAL (mm_port_serial_qcdm_new (mm_kernel_device_get_name (self->priv->port)));
+ ctx->serial = MM_PORT_SERIAL (mm_port_serial_qcdm_new (mm_kernel_device_get_name (self->priv->port), MM_PORT_SUBSYS_TTY));
if (!ctx->serial) {
port_probe_task_return_error (self,
g_error_new (MM_CORE_ERROR,
diff --git a/src/mm-port-serial-qcdm.c b/src/mm-port-serial-qcdm.c
index e5bc94e6..08f24303 100644
--- a/src/mm-port-serial-qcdm.c
+++ b/src/mm-port-serial-qcdm.c
@@ -350,11 +350,12 @@ config_fd (MMPortSerial *port, int fd, GError **error)
/*****************************************************************************/
MMPortSerialQcdm *
-mm_port_serial_qcdm_new (const char *name)
+mm_port_serial_qcdm_new (const char *name,
+ MMPortSubsys subsys)
{
return MM_PORT_SERIAL_QCDM (g_object_new (MM_TYPE_PORT_SERIAL_QCDM,
MM_PORT_DEVICE, name,
- MM_PORT_SUBSYS, MM_PORT_SUBSYS_TTY,
+ MM_PORT_SUBSYS, subsys,
MM_PORT_TYPE, MM_PORT_TYPE_QCDM,
MM_PORT_SERIAL_SEND_DELAY, (guint64) 0,
NULL));
diff --git a/src/mm-port-serial-qcdm.h b/src/mm-port-serial-qcdm.h
index b7bca88e..85668a49 100644
--- a/src/mm-port-serial-qcdm.h
+++ b/src/mm-port-serial-qcdm.h
@@ -45,7 +45,8 @@ struct _MMPortSerialQcdmClass {
GType mm_port_serial_qcdm_get_type (void);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMPortSerialQcdm, g_object_unref)
-MMPortSerialQcdm *mm_port_serial_qcdm_new (const char *name);
+MMPortSerialQcdm *mm_port_serial_qcdm_new (const char *name,
+ MMPortSubsys subsys);
MMPortSerialQcdm *mm_port_serial_qcdm_new_fd (int fd);
void mm_port_serial_qcdm_command (MMPortSerialQcdm *self,