cdma: use secondary port more aggressively where one exists
Like on the Huawei EC121 and EC168C (Reliance India).
This commit is contained in:
@@ -202,10 +202,17 @@ enable_error_reporting_done (MMSerialPort *port,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
|
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
|
||||||
|
MMGenericCdmaPrivate *priv = MM_GENERIC_CDMA_GET_PRIVATE (info->modem);
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
g_warning ("Your CDMA modem does not support +CMEE command");
|
g_warning ("Your CDMA modem does not support +CMEE command");
|
||||||
|
|
||||||
|
/* Open up the second port, if one exists */
|
||||||
|
if (priv->secondary) {
|
||||||
|
if (!mm_serial_port_open (priv->secondary, &info->error))
|
||||||
|
g_assert (info->error);
|
||||||
|
}
|
||||||
|
|
||||||
/* Ignore errors, see FIXME in init_done() */
|
/* Ignore errors, see FIXME in init_done() */
|
||||||
mm_callback_info_schedule (info);
|
mm_callback_info_schedule (info);
|
||||||
}
|
}
|
||||||
@@ -290,6 +297,9 @@ disable (MMModem *modem,
|
|||||||
|
|
||||||
info = mm_callback_info_new (modem, callback, user_data);
|
info = mm_callback_info_new (modem, callback, user_data);
|
||||||
|
|
||||||
|
if (priv->secondary)
|
||||||
|
mm_serial_port_close (priv->secondary);
|
||||||
|
|
||||||
if (mm_port_get_connected (MM_PORT (priv->primary)))
|
if (mm_port_get_connected (MM_PORT (priv->primary)))
|
||||||
mm_serial_port_flash (priv->primary, 1000, disable_flash_done, info);
|
mm_serial_port_flash (priv->primary, 1000, disable_flash_done, info);
|
||||||
else
|
else
|
||||||
@@ -452,9 +462,15 @@ get_card_info (MMModem *modem,
|
|||||||
G_CALLBACK (callback),
|
G_CALLBACK (callback),
|
||||||
user_data);
|
user_data);
|
||||||
|
|
||||||
mm_serial_port_queue_command_cached (priv->primary, "+GMI", 3, get_manufacturer_done, info);
|
mm_serial_port_queue_command_cached (priv->secondary ? priv->secondary : priv->primary,
|
||||||
mm_serial_port_queue_command_cached (priv->primary, "+GMM", 3, get_model_done, info);
|
"+GMI", 3,
|
||||||
mm_serial_port_queue_command_cached (priv->primary, "+GMR", 3, get_version_done, info);
|
get_manufacturer_done, info);
|
||||||
|
mm_serial_port_queue_command_cached (priv->secondary ? priv->secondary : priv->primary,
|
||||||
|
"+GMM", 3,
|
||||||
|
get_model_done, info);
|
||||||
|
mm_serial_port_queue_command_cached (priv->secondary ? priv->secondary : priv->primary,
|
||||||
|
"+GMR", 3,
|
||||||
|
get_version_done, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
@@ -519,8 +535,7 @@ get_signal_quality (MMModemCdma *modem,
|
|||||||
info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data);
|
info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data);
|
||||||
/* Prefer secondary port for signal strength */
|
/* Prefer secondary port for signal strength */
|
||||||
mm_serial_port_queue_command (priv->secondary ? priv->secondary : priv->primary,
|
mm_serial_port_queue_command (priv->secondary ? priv->secondary : priv->primary,
|
||||||
"+CSQ",
|
"+CSQ", 3,
|
||||||
3,
|
|
||||||
get_signal_quality_done, info);
|
get_signal_quality_done, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -563,7 +578,9 @@ get_esn (MMModemCdma *modem,
|
|||||||
}
|
}
|
||||||
|
|
||||||
info = mm_callback_info_string_new (MM_MODEM (modem), callback, user_data);
|
info = mm_callback_info_string_new (MM_MODEM (modem), callback, user_data);
|
||||||
mm_serial_port_queue_command_cached (priv->primary, "+GSN", 3, get_string_done, info);
|
mm_serial_port_queue_command_cached (priv->secondary ? priv->secondary : priv->primary,
|
||||||
|
"+GSN", 3,
|
||||||
|
get_string_done, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -746,7 +763,9 @@ get_serving_system (MMModemCdma *modem,
|
|||||||
G_CALLBACK (callback),
|
G_CALLBACK (callback),
|
||||||
user_data);
|
user_data);
|
||||||
|
|
||||||
mm_serial_port_queue_command (priv->primary, "+CSS?", 3, serving_system_done, info);
|
mm_serial_port_queue_command (priv->secondary ? priv->secondary : priv->primary,
|
||||||
|
"+CSS?", 3,
|
||||||
|
serving_system_done, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Reference in New Issue
Block a user