Age | Commit message (Collapse) | Author |
|
And also avoid assuming that the secondary port always exists.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There is no need for an explicit early check, the at_command()
operation will do that implicitly.
|
|
|
|
|
|
|
|
Refactor the loading/setting of supported/current modes/bands,
mostly to enable LTE support via ^SYSCFGEX.
This unfortunately requires many changes at once, as these methods
use the same AT commands and their fallbacks.
|
|
When sending or storing an SMS, the per-part operation is itself split
into two steps: first we send the AT command specifying the index, and
then we send the actual PDU data with a raw command. We must ensure
that the raw command is sent exactly in the same port as the AT
command.
|
|
No functional change.
|
|
Since commit 63dd4ad2 it is possible that the GPS interface is in use at
the time of modem reinitialization so it should not be stopped in such
case.
Otherwise "mmcli --location-status" will still say that GPS is enabled but
no GPS traces are going to be coming.
|
|
This avoids the "port in device added after device probing has already
finished" warning, and also the creation of modem objects for single
port devices.
|
|
|
|
|
|
|
|
Currently, the operator description update is only triggered once in the
entire update process. But this can lead to a operator description
updated at the wrong time. And is therefore possibly wrong.
The deprecated API call 'qmi_client_nas_get_serving_system' always triggers
an update of the operator description in there subfunction of the callback.
This is missing for the API call 'qmi_client_nas_get_system_info'. To solve
this, an update is now also triggered in the subfunction callback if there
is new system info available.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
|
|
When using a modem with the qmi plugin, the operator description is only
set once for the current modem object. This is the operator description
of the mobile network to which the modem has first established a connection.
The operator description will no longer be updated even though on a
reconnection with a different mobile network.
Normally this is not a problem, as the SIM card usually dials into the
home network and stays there. But if an IoT SIM card is used, then this
is a problem because the operator description is no longer updated.
To fix this, the 'current_operator_description' is always loaded on
'modem_3gpp_load_operator_name' regardless of whether an operator
description has ever been set.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
|
|
|
|
|
|
|
|
The modem location interface loads modem location capabilities only during
the very first initialization of this interface.
On each later reinitialization it skips loading these capabilities from
modem, however it still goes through the whole interface initialization
state machine.
This state machine uses its own "ctx->capabilities" field for temporary
capabilities storage, which is set to MM_MODEM_LOCATION_SOURCE_NONE at the
start of the initialization process.
However, if we aren't actually loading modem location capabilities because
we're only reinitializing the interface we still need to set this
"ctx->capabilities" field to the existing (previously loaded) modem
location capabilities.
Otherwise the next interface initialization step (validation) will
permanently disable the whole location interface.
|
|
Fixes 4b0b9dde0256b408795e1bad4c8f80500ea4b5b4
|
|
The generic MBIM modem implementation does not have location
capabilities support, so the relevant function pointers in the
interface are NULL.
Fixes: 306566ad7ea8b08241904eefb18507fdf7e7993f
|
|
|
|
URCs
We should not blindly assume that peek_port_primary() always returns a
valid port, because the device may have been ejected while the AT
sequence is running.
Instead, keep a valid port object reference in the operation context,
and use it in all the AT command requests. The requests will fail if
the device has been ejected, but the port object reference will be
valid and the daemon won't crash.
|
|
|
|
|
|
|
|
|
|
There exists code paths in which the IPv4 and IPv6 WDS extended IP
config indication signal handlers are not disconnected. This results in
a ModemManager crash when an indication signal handler callback is
invoked for a bearer that no longer exists. ModemManager crashes because
the callback function (extended_ip_config_indication_received) tries to
write a log and use the ID of a non-existent bearer.
This patch ensures the extended IP config signal handlers are
disconnected when the bearer connection is reset.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/794
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|