summaryrefslogtreecommitdiff
path: root/src/mm-port-probe.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-07-10 15:11:57 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-08-06 20:06:46 +0200
commit055b56306ab194910416f5358ef7454a53bdfc59 (patch)
tree12516754c25777931ee774d1b7efe40041d72c3f /src/mm-port-probe.c
parent4a85707b09e2fffbae36f8a3320366f5cc869595 (diff)
port-probe: no need to keep our internal copies of subsys/name
Diffstat (limited to 'src/mm-port-probe.c')
-rw-r--r--src/mm-port-probe.c128
1 files changed, 78 insertions, 50 deletions
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c
index b7795f55..d2beb5f1 100644
--- a/src/mm-port-probe.c
+++ b/src/mm-port-probe.c
@@ -73,8 +73,6 @@ typedef struct {
struct _MMPortProbePrivate {
/* Port and properties */
GUdevDevice *port;
- gchar *subsys;
- gchar *name;
/* Probing results */
guint32 flags;
@@ -95,13 +93,17 @@ mm_port_probe_set_result_at (MMPortProbe *self,
self->priv->flags |= MM_PORT_PROBE_AT;
if (self->priv->is_at) {
- mm_dbg ("(%s) port is AT-capable", self->priv->name);
+ mm_dbg ("(%s/%s) port is AT-capable",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
/* Also set as not a QCDM port */
self->priv->is_qcdm = FALSE;
self->priv->flags |= MM_PORT_PROBE_QCDM;
} else {
- mm_dbg ("(%s) port is not AT-capable", self->priv->name);
+ mm_dbg ("(%s/%s) port is not AT-capable",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
self->priv->vendor = NULL;
self->priv->product = NULL;
self->priv->flags |= (MM_PORT_PROBE_AT_VENDOR | MM_PORT_PROBE_AT_PRODUCT);
@@ -113,11 +115,15 @@ mm_port_probe_set_result_at_vendor (MMPortProbe *self,
const gchar *at_vendor)
{
if (at_vendor) {
- mm_dbg ("(%s) vendor probing finished", self->priv->name);
+ mm_dbg ("(%s/%s) vendor probing finished",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
self->priv->vendor = g_utf8_casefold (at_vendor, -1);
self->priv->flags |= MM_PORT_PROBE_AT_VENDOR;
} else {
- mm_dbg ("(%s) couldn't probe for vendor string", self->priv->name);
+ mm_dbg ("(%s/%s) couldn't probe for vendor string",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
self->priv->vendor = NULL;
self->priv->product = NULL;
self->priv->flags |= (MM_PORT_PROBE_AT_VENDOR | MM_PORT_PROBE_AT_PRODUCT);
@@ -129,11 +135,15 @@ mm_port_probe_set_result_at_product (MMPortProbe *self,
const gchar *at_product)
{
if (at_product) {
- mm_dbg ("(%s) product probing finished", self->priv->name);
+ mm_dbg ("(%s/%s) product probing finished",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
self->priv->product = g_utf8_casefold (at_product, -1);
self->priv->flags |= MM_PORT_PROBE_AT_PRODUCT;
} else {
- mm_dbg ("(%s) couldn't probe for product string", self->priv->name);
+ mm_dbg ("(%s/%s) couldn't probe for product string",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
self->priv->product = NULL;
self->priv->flags |= MM_PORT_PROBE_AT_PRODUCT;
}
@@ -147,7 +157,9 @@ mm_port_probe_set_result_qcdm (MMPortProbe *self,
self->priv->flags |= MM_PORT_PROBE_QCDM;
if (self->priv->is_qcdm) {
- mm_dbg ("(%s) port is QCDM-capable", self->priv->name);
+ mm_dbg ("(%s/%s) port is QCDM-capable",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
/* Also set as not an AT port */
self->priv->is_at = FALSE;
@@ -157,7 +169,9 @@ mm_port_probe_set_result_qcdm (MMPortProbe *self,
MM_PORT_PROBE_AT_VENDOR |
MM_PORT_PROBE_AT_PRODUCT);
} else
- mm_dbg ("(%s) port is not QCDM-capable", self->priv->name);
+ mm_dbg ("(%s/%s) port is not QCDM-capable",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
}
static gboolean serial_probe_at (MMPortProbe *self);
@@ -225,8 +239,9 @@ port_probe_run_is_cancelled (MMPortProbe *self)
FALSE,
g_error_new (MM_CORE_ERROR,
MM_CORE_ERROR_CANCELLED,
- "(%s) port probing cancelled",
- self->priv->name));
+ "(%s/%s) port probing cancelled",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port)));
return TRUE;
}
@@ -257,8 +272,9 @@ serial_probe_qcdm_parse_response (MMQcdmSerialPort *port,
response->len,
&err);
if (!result) {
- mm_warn ("(%s) failed to parse QCDM version info command result: %d",
- self->priv->name,
+ mm_warn ("(%s/%s) failed to parse QCDM version info command result: %d",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port),
err);
} else {
/* yay, probably a QCDM port */
@@ -290,7 +306,9 @@ serial_probe_qcdm (MMPortProbe *self)
if (port_probe_run_is_cancelled (self))
return FALSE;
- mm_dbg ("(%s) probing QCDM...", self->priv->name);
+ mm_dbg ("(%s/%s) probing QCDM...",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
/* If open, close the AT port */
if (task->serial) {
@@ -299,15 +317,16 @@ serial_probe_qcdm (MMPortProbe *self)
}
/* Open the QCDM port */
- task->serial = MM_SERIAL_PORT (mm_qcdm_serial_port_new (self->priv->name));
+ task->serial = MM_SERIAL_PORT (mm_qcdm_serial_port_new (g_udev_device_get_name (self->priv->port)));
if (!task->serial) {
port_probe_run_task_complete (
task,
FALSE,
g_error_new (MM_CORE_ERROR,
MM_CORE_ERROR_FAILED,
- "(%s) Couldn't create QCDM port",
- self->priv->name));
+ "(%s/%s) Couldn't create QCDM port",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port)));
return FALSE;
}
@@ -318,8 +337,9 @@ serial_probe_qcdm (MMPortProbe *self)
FALSE,
g_error_new (MM_SERIAL_ERROR,
MM_SERIAL_ERROR_OPEN_FAILED,
- "(%s) Failed to open QCDM port: %s",
- self->priv->name,
+ "(%s/%s) Failed to open QCDM port: %s",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port),
(error ? error->message : "unknown error")));
g_clear_error (&error);
return FALSE;
@@ -335,8 +355,9 @@ serial_probe_qcdm (MMPortProbe *self)
FALSE,
g_error_new (MM_SERIAL_ERROR,
MM_SERIAL_ERROR_OPEN_FAILED,
- "(%s) Failed to create QCDM versin info command",
- self->priv->name));
+ "(%s/%s) Failed to create QCDM versin info command",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port)));
return FALSE;
}
verinfo->len = len;
@@ -440,8 +461,9 @@ serial_probe_at_parse_response (MMAtSerialPort *port,
/* If AT probing cancelled, end this partial probing */
if (g_cancellable_is_cancelled (task->at_probing_cancellable)) {
- mm_dbg ("(%s) no need to keep on probing the port for AT support",
- self->priv->name);
+ mm_dbg ("(%s/%s) no need to keep on probing the port for AT support",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
task->at_result_processor (self, NULL);
serial_probe_schedule (self);
return;
@@ -460,8 +482,9 @@ serial_probe_at_parse_response (MMAtSerialPort *port,
FALSE,
g_error_new (MM_CORE_ERROR,
MM_CORE_ERROR_UNSUPPORTED,
- "(%s) error while probing AT features: %s",
- self->priv->name,
+ "(%s/%s) error while probing AT features: %s",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port),
result_error->message));
g_error_free (result_error);
return;
@@ -506,8 +529,9 @@ serial_probe_at (MMPortProbe *self)
/* If AT probing cancelled, end this partial probing */
if (g_cancellable_is_cancelled (task->at_probing_cancellable)) {
- mm_dbg ("(%s) no need to launch probing for AT support",
- self->priv->name);
+ mm_dbg ("(%s/%s) no need to launch probing for AT support",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
task->at_result_processor (self, NULL);
serial_probe_schedule (self);
return FALSE;
@@ -684,15 +708,16 @@ serial_open_at (MMPortProbe *self)
/* Create AT serial port if not done before */
if (!task->serial) {
- task->serial = MM_SERIAL_PORT (mm_at_serial_port_new (self->priv->name));
+ task->serial = MM_SERIAL_PORT (mm_at_serial_port_new (g_udev_device_get_name (self->priv->port)));
if (!task->serial) {
port_probe_run_task_complete (
task,
FALSE,
g_error_new (MM_CORE_ERROR,
MM_CORE_ERROR_FAILED,
- "(%s) couldn't create AT port",
- self->priv->name));
+ "(%s/%s) couldn't create AT port",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port)));
return FALSE;
}
@@ -718,8 +743,9 @@ serial_open_at (MMPortProbe *self)
FALSE,
g_error_new (MM_CORE_ERROR,
MM_CORE_ERROR_FAILED,
- "(%s) failed to open port after 4 tries",
- self->priv->name));
+ "(%s/%s) failed to open port after 4 tries",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port)));
} else if (g_error_matches (error,
MM_SERIAL_ERROR,
MM_SERIAL_ERROR_OPEN_FAILED_NO_DEVICE)) {
@@ -733,8 +759,9 @@ serial_open_at (MMPortProbe *self)
FALSE,
g_error_new (MM_SERIAL_ERROR,
MM_SERIAL_ERROR_OPEN_FAILED,
- "(%s) failed to open port: %s",
- self->priv->name,
+ "(%s/%s) failed to open port: %s",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port),
(error ? error->message : "unknown error")));
}
@@ -762,7 +789,9 @@ mm_port_probe_run_cancel_at_probing (MMPortProbe *self)
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
if (self->priv->task) {
- mm_dbg ("(%s) requested to cancel all AT probing", self->priv->name);
+ mm_dbg ("(%s/%s) requested to cancel all AT probing",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
g_cancellable_cancel (self->priv->task->at_probing_cancellable);
return TRUE;
}
@@ -776,7 +805,9 @@ mm_port_probe_run_cancel (MMPortProbe *self)
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
if (self->priv->task) {
- mm_dbg ("(%s) requested to cancel the probing", self->priv->name);
+ mm_dbg ("(%s/%s) requested to cancel the probing",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port));
g_cancellable_cancel (self->priv->task->cancellable);
return TRUE;
}
@@ -859,8 +890,9 @@ mm_port_probe_run (MMPortProbe *self,
task->cancellable = g_cancellable_new ();
probe_list_str = mm_port_probe_flag_build_string_from_mask (task->flags);
- mm_info ("(%s) launching port probing: '%s'",
- self->priv->name,
+ mm_info ("(%s/%s) launching port probing: '%s'",
+ g_udev_device_get_subsystem (self->priv->port),
+ g_udev_device_get_name (self->priv->port),
probe_list_str);
g_free (probe_list_str);
@@ -888,7 +920,7 @@ mm_port_probe_is_at (MMPortProbe *self)
{
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
- if (g_str_equal (self->priv->subsys, "net"))
+ if (g_str_equal (g_udev_device_get_subsystem (self->priv->port), "net"))
return FALSE;
return (self->priv->flags & MM_PORT_PROBE_AT ?
@@ -916,7 +948,7 @@ mm_port_probe_is_qcdm (MMPortProbe *self)
{
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
- if (g_str_equal (self->priv->subsys, "net"))
+ if (g_str_equal (g_udev_device_get_subsystem (self->priv->port), "net"))
return FALSE;
return (self->priv->flags & MM_PORT_PROBE_QCDM ?
@@ -929,7 +961,7 @@ mm_port_probe_get_port_type (MMPortProbe *self)
{
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
- if (g_str_equal (self->priv->subsys, "net"))
+ if (g_str_equal (g_udev_device_get_subsystem (self->priv->port), "net"))
return MM_PORT_TYPE_NET;
if (self->priv->flags & MM_PORT_PROBE_QCDM &&
@@ -956,7 +988,7 @@ mm_port_probe_get_vendor (MMPortProbe *self)
{
g_return_val_if_fail (MM_IS_PORT_PROBE (self), NULL);
- if (g_str_equal (self->priv->subsys, "net"))
+ if (g_str_equal (g_udev_device_get_subsystem (self->priv->port), "net"))
return NULL;
return (self->priv->flags & MM_PORT_PROBE_AT_VENDOR ?
@@ -969,7 +1001,7 @@ mm_port_probe_get_product (MMPortProbe *self)
{
g_return_val_if_fail (MM_IS_PORT_PROBE (self), NULL);
- if (g_str_equal (self->priv->subsys, "net"))
+ if (g_str_equal (g_udev_device_get_subsystem (self->priv->port), "net"))
return NULL;
return (self->priv->flags & MM_PORT_PROBE_AT_PRODUCT ?
@@ -982,7 +1014,7 @@ mm_port_probe_get_port_name (MMPortProbe *self)
{
g_return_val_if_fail (MM_IS_PORT_PROBE (self), NULL);
- return self->priv->name;
+ return g_udev_device_get_name (self->priv->port);
}
const gchar *
@@ -990,7 +1022,7 @@ mm_port_probe_get_port_subsys (MMPortProbe *self)
{
g_return_val_if_fail (MM_IS_PORT_PROBE (self), NULL);
- return self->priv->subsys;
+ return g_udev_device_get_subsystem (self->priv->port);
}
MMPortProbe *
@@ -1000,8 +1032,6 @@ mm_port_probe_new (GUdevDevice *port)
self = MM_PORT_PROBE (g_object_new (MM_TYPE_PORT_PROBE, NULL));
self->priv->port = g_object_ref (port);
- self->priv->subsys = g_strdup (g_udev_device_get_subsystem (port));
- self->priv->name = g_strdup (g_udev_device_get_name (port));
return self;
}
@@ -1022,8 +1052,6 @@ finalize (GObject *object)
/* We should never have a task here */
g_assert (self->priv->task == NULL);
- g_free (self->priv->subsys);
- g_free (self->priv->name);
g_free (self->priv->vendor);
g_free (self->priv->product);