iface-modem: remove MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED property

This property is used in the MMIfaceModem to flag whether the SIM hot
swap setup has been performed or not. The flag is now moved to the
iface-specific private context.

The property was also used in AT-based modems, so that implementations
supporting the SIM hot swap via AT URCs could flag the upper layers
whether the enabling of the feature was done correctly or not, and if
so, create and keep the AT ports context open. But this feature only
made sense in AT-based modems, i.e. an MBIM modem that detects SIM hot
swaps via MBIM indications exclusively should not require the AT ports
context open for anything. The check in the MMBroadbandModem object
has therefore been removed, and the logic will be updated so that it
only applies to AT-based modems.
This commit is contained in:
Aleksander Morgado
2022-05-16 12:30:36 +02:00
parent 86eabf4316
commit 61144e2103
20 changed files with 28 additions and 77 deletions

View File

@@ -2888,7 +2888,6 @@ mm_broadband_modem_cinterion_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
NULL); NULL);
} }

View File

@@ -67,7 +67,6 @@ mm_broadband_modem_mbim_cinterion_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
MM_BROADBAND_MODEM_MBIM_INTEL_FIRMWARE_UPDATE_UNSUPPORTED, TRUE, MM_BROADBAND_MODEM_MBIM_INTEL_FIRMWARE_UPDATE_UNSUPPORTED, TRUE,
NULL); NULL);
} }

View File

@@ -68,7 +68,6 @@ mm_broadband_modem_qmi_cinterion_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
NULL); NULL);
} }

View File

@@ -56,7 +56,6 @@ mm_broadband_modem_mbim_fibocom_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE, MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE,
#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED #if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED
MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTED, TRUE, MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTED, TRUE,

View File

@@ -56,7 +56,6 @@ mm_broadband_modem_mbim_xmm_fibocom_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE, MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE,
#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED #if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED
MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTED, TRUE, MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTED, TRUE,

View File

@@ -517,7 +517,6 @@ mm_broadband_modem_mbim_foxconn_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE, MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE,
MM_IFACE_MODEM_LOCATION_ALLOW_GPS_UNMANAGED_ALWAYS, TRUE, MM_IFACE_MODEM_LOCATION_ALLOW_GPS_UNMANAGED_ALWAYS, TRUE,
MM_IFACE_MODEM_CARRIER_CONFIG_MAPPING, carrier_config_mapping, MM_IFACE_MODEM_CARRIER_CONFIG_MAPPING, carrier_config_mapping,

View File

@@ -87,7 +87,6 @@ mm_broadband_modem_mbim_intel_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE, MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE,
#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED #if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED
MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTED, TRUE, MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTED, TRUE,

View File

@@ -163,7 +163,6 @@ mm_broadband_modem_qmi_qcom_soc_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
NULL); NULL);
} }

View File

@@ -58,7 +58,6 @@ mm_broadband_modem_qmi_quectel_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
NULL); NULL);
} }

View File

@@ -56,7 +56,6 @@ mm_broadband_modem_quectel_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
NULL); NULL);
} }

View File

@@ -60,7 +60,6 @@ mm_broadband_modem_qmi_simtech_new (const gchar *device,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_BROADBAND_MODEM_INDICATORS_DISABLED, TRUE, MM_BROADBAND_MODEM_INDICATORS_DISABLED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
NULL); NULL);
} }

View File

@@ -148,7 +148,6 @@ mm_broadband_modem_mbim_telit_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
NULL); NULL);
} }

View File

@@ -1361,7 +1361,6 @@ mm_broadband_modem_telit_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_NET_SUPPORTED, FALSE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
NULL); NULL);
} }

View File

@@ -1973,7 +1973,6 @@ mm_broadband_modem_ublox_new (const gchar *device,
MM_BASE_MODEM_VENDOR_ID, vendor_id, MM_BASE_MODEM_VENDOR_ID, vendor_id,
MM_BASE_MODEM_PRODUCT_ID, product_id, MM_BASE_MODEM_PRODUCT_ID, product_id,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
/* Generic bearer (TTY) and u-blox bearer (NET) supported */ /* Generic bearer (TTY) and u-blox bearer (NET) supported */
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, TRUE,

View File

@@ -57,7 +57,6 @@ mm_broadband_modem_mbim_xmm_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE, MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE,
#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED #if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED
MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTED, TRUE, MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTED, TRUE,

View File

@@ -9022,7 +9022,6 @@ mm_broadband_modem_mbim_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE, MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, TRUE,
NULL); NULL);
} }

View File

@@ -12669,7 +12669,6 @@ mm_broadband_modem_qmi_new (const gchar *device,
MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE, MM_BASE_MODEM_DATA_NET_SUPPORTED, TRUE,
MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE, MM_BASE_MODEM_DATA_TTY_SUPPORTED, FALSE,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, TRUE,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, FALSE,
NULL); NULL);
} }

View File

@@ -129,7 +129,6 @@ enum {
PROP_MODEM_VOICE_CALL_LIST, PROP_MODEM_VOICE_CALL_LIST,
PROP_MODEM_SIMPLE_STATUS, PROP_MODEM_SIMPLE_STATUS,
PROP_MODEM_SIM_HOT_SWAP_SUPPORTED, PROP_MODEM_SIM_HOT_SWAP_SUPPORTED,
PROP_MODEM_SIM_HOT_SWAP_CONFIGURED,
PROP_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, PROP_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED,
PROP_MODEM_PERIODIC_ACCESS_TECH_CHECK_DISABLED, PROP_MODEM_PERIODIC_ACCESS_TECH_CHECK_DISABLED,
PROP_MODEM_PERIODIC_CALL_LIST_CHECK_DISABLED, PROP_MODEM_PERIODIC_CALL_LIST_CHECK_DISABLED,
@@ -156,7 +155,6 @@ struct _MMBroadbandModemPrivate {
PortsContext *in_call_ports_ctx; PortsContext *in_call_ports_ctx;
gboolean modem_init_run; gboolean modem_init_run;
gboolean sim_hot_swap_supported; gboolean sim_hot_swap_supported;
gboolean sim_hot_swap_configured;
gboolean periodic_signal_check_disabled; gboolean periodic_signal_check_disabled;
gboolean periodic_access_tech_check_disabled; gboolean periodic_access_tech_check_disabled;
@@ -12632,34 +12630,26 @@ initialize_step (GTask *task)
* (we may be re-running the initialization step after SIM-PIN unlock) */ * (we may be re-running the initialization step after SIM-PIN unlock) */
if (!ctx->self->priv->sim_hot_swap_ports_ctx) { if (!ctx->self->priv->sim_hot_swap_ports_ctx) {
gboolean is_sim_hot_swap_supported = FALSE; gboolean is_sim_hot_swap_supported = FALSE;
gboolean is_sim_hot_swap_configured = FALSE;
g_object_get (ctx->self, g_object_get (ctx->self,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, &is_sim_hot_swap_supported, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, &is_sim_hot_swap_supported,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, &is_sim_hot_swap_configured,
NULL); NULL);
if (is_sim_hot_swap_supported) { if (is_sim_hot_swap_supported) {
if (!is_sim_hot_swap_configured) {
mm_obj_warn (ctx->self, "SIM hot swap supported but not configured. Skipping opening ports");
} else {
PortsContext *ports; PortsContext *ports;
GError *error = NULL; g_autoptr(GError) error = NULL;
mm_obj_dbg (ctx->self, "creating ports context for SIM hot swap"); mm_obj_dbg (ctx->self, "creating ports context for SIM hot swap");
ports = ports_context_new (); ports = ports_context_new ();
if (!ports_context_open (ctx->self, ports, FALSE, FALSE, FALSE, &error)) { if (!ports_context_open (ctx->self, ports, FALSE, FALSE, FALSE, &error)) {
mm_obj_warn (ctx->self, "couldn't open ports during Modem SIM hot swap enabling: %s", mm_obj_warn (ctx->self, "couldn't open ports during modem SIM hot swap enabling: %s",
error ? error->message : "unknown reason"); error ? error->message : "unknown reason");
g_error_free (error);
} else { } else {
ctx->self->priv->sim_hot_swap_ports_ctx = ports_context_ref (ports); ctx->self->priv->sim_hot_swap_ports_ctx = ports_context_ref (ports);
} }
ports_context_unref (ports); ports_context_unref (ports);
} }
}
} else } else
mm_obj_dbg (ctx->self, "ports context for SIM hot swap already available"); mm_obj_dbg (ctx->self, "ports context for SIM hot swap already available");
@@ -12686,21 +12676,17 @@ initialize_step (GTask *task)
} else { } else {
/* Fatal SIM, firmware, or modem failure :-( */ /* Fatal SIM, firmware, or modem failure :-( */
gboolean is_sim_hot_swap_supported = FALSE; gboolean is_sim_hot_swap_supported = FALSE;
gboolean is_sim_hot_swap_configured = FALSE;
MMModemStateFailedReason reason; MMModemStateFailedReason reason;
reason = mm_gdbus_modem_get_state_failed_reason (MM_GDBUS_MODEM (ctx->self->priv->modem_dbus_skeleton)); reason = mm_gdbus_modem_get_state_failed_reason (MM_GDBUS_MODEM (ctx->self->priv->modem_dbus_skeleton));
g_object_get (ctx->self, g_object_get (ctx->self,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, &is_sim_hot_swap_supported, MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED, &is_sim_hot_swap_supported,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, &is_sim_hot_swap_configured,
NULL); NULL);
if (reason == MM_MODEM_STATE_FAILED_REASON_SIM_MISSING) { if (reason == MM_MODEM_STATE_FAILED_REASON_SIM_MISSING) {
if (!is_sim_hot_swap_supported) { if (!is_sim_hot_swap_supported) {
mm_obj_dbg (ctx->self, "SIM is missing, but this modem does not support SIM hot swap."); mm_obj_dbg (ctx->self, "SIM is missing, but this modem does not support SIM hot swap.");
} else if (!is_sim_hot_swap_configured) {
mm_obj_warn (ctx->self, "SIM is missing, but SIM hot swap could not be configured.");
} else if (!ctx->self->priv->sim_hot_swap_ports_ctx) { } else if (!ctx->self->priv->sim_hot_swap_ports_ctx) {
mm_obj_err (ctx->self, "SIM is missing and SIM hot swap is configured, but ports are not opened."); mm_obj_err (ctx->self, "SIM is missing and SIM hot swap is configured, but ports are not opened.");
} else { } else {
@@ -13058,9 +13044,6 @@ set_property (GObject *object,
case PROP_MODEM_SIM_HOT_SWAP_SUPPORTED: case PROP_MODEM_SIM_HOT_SWAP_SUPPORTED:
self->priv->sim_hot_swap_supported = g_value_get_boolean (value); self->priv->sim_hot_swap_supported = g_value_get_boolean (value);
break; break;
case PROP_MODEM_SIM_HOT_SWAP_CONFIGURED:
self->priv->sim_hot_swap_configured = g_value_get_boolean (value);
break;
case PROP_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED: case PROP_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED:
self->priv->periodic_signal_check_disabled = g_value_get_boolean (value); self->priv->periodic_signal_check_disabled = g_value_get_boolean (value);
break; break;
@@ -13208,9 +13191,6 @@ get_property (GObject *object,
case PROP_MODEM_SIM_HOT_SWAP_SUPPORTED: case PROP_MODEM_SIM_HOT_SWAP_SUPPORTED:
g_value_set_boolean (value, self->priv->sim_hot_swap_supported); g_value_set_boolean (value, self->priv->sim_hot_swap_supported);
break; break;
case PROP_MODEM_SIM_HOT_SWAP_CONFIGURED:
g_value_set_boolean (value, self->priv->sim_hot_swap_configured);
break;
case PROP_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED: case PROP_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED:
g_value_set_boolean (value, self->priv->periodic_signal_check_disabled); g_value_set_boolean (value, self->priv->periodic_signal_check_disabled);
break; break;
@@ -13859,10 +13839,6 @@ mm_broadband_modem_class_init (MMBroadbandModemClass *klass)
PROP_MODEM_SIM_HOT_SWAP_SUPPORTED, PROP_MODEM_SIM_HOT_SWAP_SUPPORTED,
MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED); MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED);
g_object_class_override_property (object_class,
PROP_MODEM_SIM_HOT_SWAP_CONFIGURED,
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED);
g_object_class_override_property (object_class, g_object_class_override_property (object_class,
PROP_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, PROP_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED,
MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED); MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED);

View File

@@ -71,6 +71,9 @@ typedef struct {
/* Initialization restart support */ /* Initialization restart support */
guint restart_initialize_idle_id; guint restart_initialize_idle_id;
/* SIM hot swap setup done flag */
gboolean sim_hot_swap_configured;
} Private; } Private;
static void static void
@@ -5019,9 +5022,11 @@ setup_sim_hot_swap_ready (MMIfaceModem *self,
GAsyncResult *res, GAsyncResult *res,
GTask *task) GTask *task)
{ {
Private *priv;
InitializationContext *ctx; InitializationContext *ctx;
g_autoptr(GError) error = NULL; g_autoptr(GError) error = NULL;
priv = get_private (self);
ctx = g_task_get_task_data (task); ctx = g_task_get_task_data (task);
MM_IFACE_MODEM_GET_INTERFACE (self)->setup_sim_hot_swap_finish (self, res, &error); MM_IFACE_MODEM_GET_INTERFACE (self)->setup_sim_hot_swap_finish (self, res, &error);
@@ -5029,9 +5034,7 @@ setup_sim_hot_swap_ready (MMIfaceModem *self,
mm_obj_warn (self, "SIM hot swap setup failed: %s", error->message); mm_obj_warn (self, "SIM hot swap setup failed: %s", error->message);
else { else {
mm_obj_dbg (self, "SIM hot swap setup succeeded"); mm_obj_dbg (self, "SIM hot swap setup succeeded");
g_object_set (self, priv->sim_hot_swap_configured = TRUE;
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, TRUE,
NULL);
} }
/* Go on to next step */ /* Go on to next step */
@@ -5775,12 +5778,10 @@ interface_initialization_step (GTask *task)
/* fall-through */ /* fall-through */
case INITIALIZATION_STEP_SIM_HOT_SWAP: { case INITIALIZATION_STEP_SIM_HOT_SWAP: {
gboolean sim_hot_swap_configured = FALSE; Private *priv;
g_object_get (self, priv = get_private (self);
MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED, &sim_hot_swap_configured, if (!priv->sim_hot_swap_configured &&
NULL);
if (!sim_hot_swap_configured &&
MM_IFACE_MODEM_GET_INTERFACE (self)->setup_sim_hot_swap && MM_IFACE_MODEM_GET_INTERFACE (self)->setup_sim_hot_swap &&
MM_IFACE_MODEM_GET_INTERFACE (self)->setup_sim_hot_swap_finish) { MM_IFACE_MODEM_GET_INTERFACE (self)->setup_sim_hot_swap_finish) {
MM_IFACE_MODEM_GET_INTERFACE (self)->setup_sim_hot_swap ( MM_IFACE_MODEM_GET_INTERFACE (self)->setup_sim_hot_swap (
@@ -6429,14 +6430,6 @@ iface_modem_init (gpointer g_iface)
FALSE, FALSE,
G_PARAM_READWRITE)); G_PARAM_READWRITE));
g_object_interface_install_property
(g_iface,
g_param_spec_boolean (MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED,
"Sim Hot Swap Configured",
"Whether the sim hot swap support is configured correctly.",
FALSE,
G_PARAM_READWRITE));
g_object_interface_install_property g_object_interface_install_property
(g_iface, (g_iface,
g_param_spec_boolean (MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED, g_param_spec_boolean (MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED,

View File

@@ -39,7 +39,6 @@
#define MM_IFACE_MODEM_SIM_SLOTS "iface-modem-sim-slots" #define MM_IFACE_MODEM_SIM_SLOTS "iface-modem-sim-slots"
#define MM_IFACE_MODEM_BEARER_LIST "iface-modem-bearer-list" #define MM_IFACE_MODEM_BEARER_LIST "iface-modem-bearer-list"
#define MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED "iface-modem-sim-hot-swap-supported" #define MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED "iface-modem-sim-hot-swap-supported"
#define MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED "iface-modem-sim-hot-swap-configured"
#define MM_IFACE_MODEM_CARRIER_CONFIG_MAPPING "iface-modem-carrier-config-mapping" #define MM_IFACE_MODEM_CARRIER_CONFIG_MAPPING "iface-modem-carrier-config-mapping"
#define MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED "iface-modem-periodic-signal-check-disabled" #define MM_IFACE_MODEM_PERIODIC_SIGNAL_CHECK_DISABLED "iface-modem-periodic-signal-check-disabled"
#define MM_IFACE_MODEM_PERIODIC_ACCESS_TECH_CHECK_DISABLED "iface-modem-periodic-access-tech-check-disabled" #define MM_IFACE_MODEM_PERIODIC_ACCESS_TECH_CHECK_DISABLED "iface-modem-periodic-access-tech-check-disabled"