diff --git a/cli/mmcli-modem.c b/cli/mmcli-modem.c
index 188fab8a..7ab46244 100644
--- a/cli/mmcli-modem.c
+++ b/cli/mmcli-modem.c
@@ -235,7 +235,9 @@ print_modem_info (void)
{
gchar *drivers_string;
gchar *prefixed_revision;
- gchar *modem_capabilities_string;
+ gchar *supported_capabilities_string;
+ MMModemCapability *capabilities = NULL;
+ guint n_capabilities = 0;
gchar *current_capabilities_string;
gchar *access_technologies_string;
MMModemModeCombination *modes = NULL;
@@ -264,8 +266,9 @@ print_modem_info (void)
#define VALIDATE_PATH(str) ((str && !g_str_equal (str, "/")) ? str : "none")
/* Strings in heap */
- modem_capabilities_string = mm_modem_capability_build_string_from_mask (
- mm_modem_get_modem_capabilities (ctx->modem));
+ mm_modem_get_supported_capabilities (ctx->modem, &capabilities, &n_capabilities);
+ supported_capabilities_string = mm_common_build_capabilities_string (capabilities, n_capabilities);
+ g_free (capabilities);
current_capabilities_string = mm_modem_capability_build_string_from_mask (
mm_modem_get_current_capabilities (ctx->modem));
access_technologies_string = mm_modem_access_technology_build_string_from_mask (
@@ -324,6 +327,15 @@ print_modem_info (void)
supported_modes_string = prefixed;
}
+ if (supported_capabilities_string) {
+ gchar *prefixed;
+
+ prefixed = mmcli_prefix_newlines (" | ",
+ supported_capabilities_string);
+ g_free (supported_capabilities_string);
+ supported_capabilities_string = prefixed;
+ }
+
/* Get signal quality info */
signal_quality = mm_modem_get_signal_quality (ctx->modem, &signal_quality_recent);
@@ -338,13 +350,13 @@ print_modem_info (void)
" Hardware | manufacturer: '%s'\n"
" | model: '%s'\n"
" | revision: '%s'\n"
- " | capabilities: '%s'\n"
+ " | supported: '%s'\n"
" | current: '%s'\n"
" | equipment id: '%s'\n",
VALIDATE_UNKNOWN (mm_modem_get_manufacturer (ctx->modem)),
VALIDATE_UNKNOWN (mm_modem_get_model (ctx->modem)),
VALIDATE_UNKNOWN (prefixed_revision),
- VALIDATE_UNKNOWN (modem_capabilities_string),
+ VALIDATE_UNKNOWN (supported_capabilities_string),
VALIDATE_UNKNOWN (current_capabilities_string),
VALIDATE_UNKNOWN (mm_modem_get_equipment_identifier (ctx->modem)));
@@ -475,7 +487,7 @@ print_modem_info (void)
g_free (current_bands_string);
g_free (supported_bands_string);
g_free (access_technologies_string);
- g_free (modem_capabilities_string);
+ g_free (supported_capabilities_string);
g_free (current_capabilities_string);
g_free (prefixed_revision);
g_free (allowed_modes_string);
diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt
index 830186f3..4bc13686 100644
--- a/docs/reference/libmm-glib/libmm-glib-sections.txt
+++ b/docs/reference/libmm-glib/libmm-glib-sections.txt
@@ -80,7 +80,8 @@ mm_modem_dup_path
mm_modem_get_state
mm_modem_get_state_failed_reason
mm_modem_get_power_state
-mm_modem_get_modem_capabilities
+mm_modem_peek_supported_capabilities
+mm_modem_get_supported_capabilities
mm_modem_get_current_capabilities
mm_modem_get_manufacturer
mm_modem_dup_manufacturer
@@ -1436,7 +1437,6 @@ mm_gdbus_modem_get_max_active_bearers
mm_gdbus_modem_get_max_bearers
mm_gdbus_modem_get_model
mm_gdbus_modem_dup_model
-mm_gdbus_modem_get_modem_capabilities
mm_gdbus_modem_get_own_numbers
mm_gdbus_modem_dup_own_numbers
mm_gdbus_modem_get_plugin
@@ -1450,6 +1450,8 @@ mm_gdbus_modem_get_signal_quality
mm_gdbus_modem_dup_signal_quality
mm_gdbus_modem_get_sim
mm_gdbus_modem_dup_sim
+mm_gdbus_modem_get_supported_capabilities
+mm_gdbus_modem_dup_supported_capabilities
mm_gdbus_modem_get_state
mm_gdbus_modem_get_state_failed_reason
mm_gdbus_modem_get_supported_bands
@@ -1504,13 +1506,13 @@ mm_gdbus_modem_set_manufacturer
mm_gdbus_modem_set_max_active_bearers
mm_gdbus_modem_set_max_bearers
mm_gdbus_modem_set_model
-mm_gdbus_modem_set_modem_capabilities
mm_gdbus_modem_set_own_numbers
mm_gdbus_modem_set_plugin
mm_gdbus_modem_set_primary_port
mm_gdbus_modem_set_revision
mm_gdbus_modem_set_signal_quality
mm_gdbus_modem_set_sim
+mm_gdbus_modem_set_supported_capabilities
mm_gdbus_modem_set_state
mm_gdbus_modem_set_state_failed_reason
mm_gdbus_modem_set_power_state
diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h
index a3c37e4b..b268925c 100644
--- a/include/ModemManager-enums.h
+++ b/include/ModemManager-enums.h
@@ -38,6 +38,7 @@
* @MM_MODEM_CAPABILITY_LTE: Modem has LTE data capability.
* @MM_MODEM_CAPABILITY_LTE_ADVANCED: Modem has LTE Advanced data capability.
* @MM_MODEM_CAPABILITY_IRIDIUM: Modem has Iridium capabilities.
+ * @MM_MODEM_CAPABILITY_ANY: Mask specifying all capabilities.
*
* Flags describing one or more of the general access technology families that a
* modem supports.
@@ -50,6 +51,7 @@ typedef enum { /*< underscore_name=mm_modem_capability >*/
MM_MODEM_CAPABILITY_LTE = 1 << 3,
MM_MODEM_CAPABILITY_LTE_ADVANCED = 1 << 4,
MM_MODEM_CAPABILITY_IRIDIUM = 1 << 5,
+ MM_MODEM_CAPABILITY_ANY = 0xFFFFFFFF
} MMModemCapability;
/**
diff --git a/introspection/org.freedesktop.ModemManager1.Modem.xml b/introspection/org.freedesktop.ModemManager1.Modem.xml
index ba540ac8..46fa97dd 100644
--- a/introspection/org.freedesktop.ModemManager1.Modem.xml
+++ b/introspection/org.freedesktop.ModemManager1.Modem.xml
@@ -200,17 +200,17 @@
-
+