From 185e492c0a0e633ed92f8ffdb1c426d0e4300ae1 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Thu, 29 Jul 2021 00:07:27 +0200 Subject: core: new '--test-multiplex-requested' option The new option will change the default setting in MBIM and QMI bearers to "request" when no explicit "multiplex" configuration is given by the user. This option will help test the multiplexing support in the modems before it's made a default in a future release. --- src/mm-bearer-mbim.c | 9 +++++++-- src/mm-bearer-qmi.c | 5 ++++- src/mm-context.c | 13 +++++++++++++ src/mm-context.h | 3 ++- 4 files changed, 26 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mm-bearer-mbim.c b/src/mm-bearer-mbim.c index fa8630bc..d5099292 100644 --- a/src/mm-bearer-mbim.c +++ b/src/mm-bearer-mbim.c @@ -32,6 +32,7 @@ #include "mm-port-enums-types.h" #include "mm-bearer-mbim.h" #include "mm-log-object.h" +#include "mm-context.h" G_DEFINE_TYPE (MMBearerMbim, mm_bearer_mbim, MM_TYPE_BASE_BEARER) @@ -1181,8 +1182,12 @@ load_settings_from_bearer (MMBearerMbim *self, /* If no multiplex setting given by the user, assume none */ multiplex = mm_bearer_properties_get_multiplex (properties); - if (multiplex == MM_BEARER_MULTIPLEX_SUPPORT_UNKNOWN) - multiplex = MM_BEARER_MULTIPLEX_SUPPORT_NONE; + if (multiplex == MM_BEARER_MULTIPLEX_SUPPORT_UNKNOWN) { + if (mm_context_get_test_multiplex_requested ()) + multiplex = MM_BEARER_MULTIPLEX_SUPPORT_REQUESTED; + else + multiplex = MM_BEARER_MULTIPLEX_SUPPORT_NONE; + } if (multiplex_supported && (multiplex == MM_BEARER_MULTIPLEX_SUPPORT_REQUESTED || diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c index f02cbf17..e1252ac2 100644 --- a/src/mm-bearer-qmi.c +++ b/src/mm-bearer-qmi.c @@ -34,6 +34,7 @@ #include "mm-port-enums-types.h" #include "mm-log-object.h" #include "mm-modem-helpers.h" +#include "mm-context.h" G_DEFINE_TYPE (MMBearerQmi, mm_bearer_qmi, MM_TYPE_BASE_BEARER) @@ -2147,7 +2148,9 @@ load_settings_from_bearer (MMBearerQmi *self, /* If no multiplex setting given by the user, assume none; unless in IPA */ ctx->multiplex = mm_bearer_properties_get_multiplex (properties); if (ctx->multiplex == MM_BEARER_MULTIPLEX_SUPPORT_UNKNOWN) { - if (!g_strcmp0 (data_port_driver, "ipa")) + if (mm_context_get_test_multiplex_requested ()) + ctx->multiplex = MM_BEARER_MULTIPLEX_SUPPORT_REQUESTED; + else if (!g_strcmp0 (data_port_driver, "ipa")) ctx->multiplex = MM_BEARER_MULTIPLEX_SUPPORT_REQUIRED; else ctx->multiplex = MM_BEARER_MULTIPLEX_SUPPORT_NONE; diff --git a/src/mm-context.c b/src/mm-context.c index 25b3a79c..8c341667 100644 --- a/src/mm-context.c +++ b/src/mm-context.c @@ -222,6 +222,7 @@ static gboolean test_quick_suspend_resume; #if defined WITH_QRTR static gboolean test_no_qrtr; #endif +static gboolean test_multiplex_requested; static const GOptionEntry test_entries[] = { { @@ -265,6 +266,11 @@ static const GOptionEntry test_entries[] = { NULL }, #endif + { + "test-multiplex-requested", 0, 0, G_OPTION_ARG_NONE, &test_multiplex_requested, + "Default to request multiplex support if no explicitly given", + NULL + }, { NULL } }; @@ -328,6 +334,13 @@ mm_context_get_test_no_qrtr (void) return test_no_qrtr; } #endif + +gboolean +mm_context_get_test_multiplex_requested (void) +{ + return test_multiplex_requested; +} + /*****************************************************************************/ static void diff --git a/src/mm-context.h b/src/mm-context.h index 0e652ba3..fefd574e 100644 --- a/src/mm-context.h +++ b/src/mm-context.h @@ -54,7 +54,8 @@ gboolean mm_context_get_test_no_suspend_resume (void); gboolean mm_context_get_test_quick_suspend_resume (void); #endif #if defined WITH_QRTR -gboolean mm_context_get_test_no_qrtr (void); +gboolean mm_context_get_test_no_qrtr (void); #endif +gboolean mm_context_get_test_multiplex_requested (void); #endif /* MM_CONTEXT_H */ -- cgit v1.2.3-70-g09d2