Age | Commit message (Collapse) | Author |
|
We want to ensure that all errors reported via DBus operations are
normalized to MM-specific errors.
We don't want to return QMI or MBIM specific errors, as those are
protocol specific and we don't want DBus clients to need to rely on
knowing which is the protocol in use by the device.
|
|
|
|
This reverts commit 17ed63637fea7ab7238880ec5eb75df910355dd2.
We were reusing the signal_state_query_ready() callback in the wrong
way.
|
|
After the setup of threshold for signal state notifications, trigger a
query of the current signal state values.
|
|
src/mm-iface-modem-signal.c:99:27: warning: unused variable 'current_time' [-Wunused-variable]
g_autoptr(GDateTime) current_time = NULL;
^
|
|
|
|
If the modem is disabled:
* Polling is completely halted.
* Thresholds are disabled.
* The user is allowed to call Setup() or SetupThresholds() to change
the settings, even if the actual polling or thresholds setup isn't
in effect.
When the modem is enabled:
* Polling will be started if there is a existing polling rate.
* Thresholds will be setup based on the existing threshold settings.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/504
|
|
To avoid needing to work with GVariants directly.
|
|
The values exposed in the Signal interface must not be cleared every
time polling is disabled, because the user may have also enabled
threshold based loading. And viceversa; if the user disables threshold
based polling, we should not unconditionally clear the values as
polling may still be enabled.
We setup a common Private context associated to the interface, and we
keep the current state there, which is also in sync with the DBus
interface.
We will only clear the signal values if both polling-based and
threshold-based setups are disabled.
Following the same reasoning, the mm_iface_modem_signal_update()
method used by implementations to report new signal quality details
is updated so that it's a no-op if no polling-based or threshold-based
setup has been enabled.
|
|
Also allow updating the per-access technology signal quality
information via indications.
Includes updates by Aleksander Morgado to fix coding style issues and
some other GTask related problems.
|
|
|
|
It won't do anything because clear_values() tries to get the skeleton
from the modem object, and the skeleton hasn't been set at that point.
|
|
Extended the ModemManager Signal interface to include 5G signal
information for RSRP, RSRQ and SINR via libqmi. Also extended mmci
to print 5G signal info.
|
|
|
|
mm-iface-modem-signal.c:447:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
447 | ctx->step++;
| ~~~~~~~~~^~
mm-iface-modem-signal.c:449:5: note: here
449 | case INITIALIZATION_STEP_CHECK_SUPPORT:
| ^~~~
...
|
|
mm-iface-modem-signal.c: In function ‘interface_initialization_step’:
mm-iface-modem-signal.c:436:5: error: switch missing default case [-Werror=switch-default]
436 | switch (ctx->step) {
| ^~~~~~
|
|
|
|
|
|
E.g. if the modem switches from 4G to 3G while the extended signal
information is enabled, we should no longer expose LTE specific signal
quality values, only the UMTS specific ones.
E.g. to avoid this:
$ mmcli -m 1 --signal-get
-------------------------
UMTS | RSSI: '0,00' dBm
| RSCP: '-92,00' dBm
| EcIo: '-13,00' dB
-------------------------
LTE | RSSI: '0,00' dBm
| RSRQ: '-6,50' dB
| RSRP: '-96,00' dBm
| SNR: '0,00' dB
|
|
When the GCancellable is added to the GTask, we can use a single
method call to check for the task being cancelled, and complete it
right away if so.
This patch also clears up the logic in the Novatel plugin, where the
code was trying to return "TRUE" when the task was cancelled, but
wouldn't work as the check-cancellable flag in the GTask is TRUE by
default (i.e. when completing the GTask, if it was cancelled, a
G_IO_ERROR_CANCELLED would be returned by default, regardless of any
other return value set).
This patch also introduces a small variation of the logic in the
Cinterion plugin: instead of running SWWAN=0 before completing the
async action, the command is now sent just after completion of the
async action. This shouldn't be an issue, as the SWWAN result itself
is ignored.
|
|
|
|
|
|
|
|
|
|
Also modify the QMI-specific implementation to act as a state machine, as we'll
add more steps afterwards.
|
|
|
|
|
|
|