diff options
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 33 | ||||
-rw-r--r-- | src/mm-broadband-modem-mbim.h | 1 |
2 files changed, 28 insertions, 6 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 0b48ae0d..5c7e28d7 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -90,13 +90,14 @@ typedef enum { PROCESS_NOTIFICATION_FLAG_PROVISIONED_CONTEXTS = 1 << 9, } ProcessNotificationFlag; -#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED enum { PROP_0, +#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED PROP_QMI_UNSUPPORTED, +#endif + PROP_INTEL_FIRMWARE_UPDATE_UNSUPPORTED, PROP_LAST }; -#endif struct _MMBroadbandModemMbimPrivate { /* Queried and cached capabilities */ @@ -146,6 +147,8 @@ struct _MMBroadbandModemMbimPrivate { /* Flag when QMI-based capability/mode switching is in use */ gboolean qmi_capability_and_mode_switching; #endif + + gboolean intel_firmware_update_unsupported; }; /*****************************************************************************/ @@ -2271,6 +2274,10 @@ query_device_services_ready (MbimDevice *device, } if (service == MBIM_SERVICE_INTEL_FIRMWARE_UPDATE) { + if (self->priv->intel_firmware_update_unsupported) { + mm_obj_dbg (self, "Intel firmware update service is explicitly ignored"); + continue; + } for (j = 0; j < device_services[i]->cids_count; j++) { if (device_services[i]->cids[j] == MBIM_CID_INTEL_FIRMWARE_UPDATE_MODEM_REBOOT) { mm_obj_dbg (self, "Intel reset is supported"); @@ -6104,7 +6111,7 @@ messaging_create_sms (MMIfaceModemMessaging *self) /*****************************************************************************/ -#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED + static void set_property (GObject *object, guint prop_id, @@ -6114,9 +6121,14 @@ set_property (GObject *object, MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (object); switch (prop_id) { +#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED case PROP_QMI_UNSUPPORTED: self->priv->qmi_unsupported = g_value_get_boolean (value); break; +#endif + case PROP_INTEL_FIRMWARE_UPDATE_UNSUPPORTED: + self->priv->intel_firmware_update_unsupported = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -6132,15 +6144,19 @@ get_property (GObject *object, MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (object); switch (prop_id) { +#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED case PROP_QMI_UNSUPPORTED: g_value_set_boolean (value, self->priv->qmi_unsupported); break; +#endif + case PROP_INTEL_FIRMWARE_UPDATE_UNSUPPORTED: + g_value_set_boolean (value, self->priv->intel_firmware_update_unsupported); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } -#endif MMBroadbandModemMbim * mm_broadband_modem_mbim_new (const gchar *device, @@ -6514,10 +6530,8 @@ mm_broadband_modem_mbim_class_init (MMBroadbandModemMbimClass *klass) klass->peek_port_mbim_for_data = peek_port_mbim_for_data; -#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED object_class->set_property = set_property; object_class->get_property = get_property; -#endif object_class->dispose = dispose; object_class->finalize = finalize; @@ -6537,4 +6551,11 @@ mm_broadband_modem_mbim_class_init (MMBroadbandModemMbimClass *klass) FALSE, G_PARAM_READWRITE)); #endif + + g_object_class_install_property (object_class, PROP_INTEL_FIRMWARE_UPDATE_UNSUPPORTED, + g_param_spec_boolean (MM_BROADBAND_MODEM_MBIM_INTEL_FIRMWARE_UPDATE_UNSUPPORTED, + "Intel Firmware Update service unsupported", + "TRUE when the Intel Firmware Update service should not be considered.", + FALSE, + G_PARAM_READWRITE)); } diff --git a/src/mm-broadband-modem-mbim.h b/src/mm-broadband-modem-mbim.h index 66a12f2a..d2c5d7c6 100644 --- a/src/mm-broadband-modem-mbim.h +++ b/src/mm-broadband-modem-mbim.h @@ -30,6 +30,7 @@ typedef struct _MMBroadbandModemMbimClass MMBroadbandModemMbimClass; typedef struct _MMBroadbandModemMbimPrivate MMBroadbandModemMbimPrivate; #define MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTED "broadband-modem-mbim-qmi-unsupported" +#define MM_BROADBAND_MODEM_MBIM_INTEL_FIRMWARE_UPDATE_UNSUPPORTED "broadband-modem-mbim-intel-firmware-update-unsupported" struct _MMBroadbandModemMbim { MMBroadbandModem parent; |