cdma: prefer primary port unless it's connected
This commit is contained in:
@@ -227,23 +227,26 @@ query_registration_state (MMGenericCdma *cdma,
|
||||
gpointer user_data)
|
||||
{
|
||||
MMCallbackInfo *info;
|
||||
MMSerialPort *primary, *secondary;
|
||||
MMSerialPort *primary, *secondary, *port;
|
||||
|
||||
primary = mm_generic_cdma_get_port (cdma, MM_PORT_TYPE_PRIMARY);
|
||||
port = primary = mm_generic_cdma_get_port (cdma, MM_PORT_TYPE_PRIMARY);
|
||||
secondary = mm_generic_cdma_get_port (cdma, MM_PORT_TYPE_SECONDARY);
|
||||
|
||||
info = mm_generic_cdma_query_reg_state_callback_info_new (cdma, callback, user_data);
|
||||
|
||||
if (mm_port_get_connected (MM_PORT (primary)) && !secondary) {
|
||||
info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_CONNECTED,
|
||||
"Cannot get query registration state while connected");
|
||||
mm_callback_info_schedule (info);
|
||||
return;
|
||||
if (mm_port_get_connected (MM_PORT (primary))) {
|
||||
if (!secondary) {
|
||||
info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_CONNECTED,
|
||||
"Cannot get query registration state while connected");
|
||||
mm_callback_info_schedule (info);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Use secondary port if primary is connected */
|
||||
port = secondary;
|
||||
}
|
||||
|
||||
mm_serial_port_queue_command (secondary ? secondary : primary,
|
||||
"^SYSINFO", 3,
|
||||
sysinfo_done, info);
|
||||
mm_serial_port_queue_command (port, "^SYSINFO", 3, sysinfo_done, info);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
Reference in New Issue
Block a user