Age | Commit message (Collapse) | Author |
|
|
|
|
|
Configuring reports every 5s may lead to GPGGA traces reported like this:
$GPGGA,211645.00,,,,,0,,,,,,,,*4D
$GPGGA,211646.00,4030.003988,N,00330.761876,W,1,07,1.0,691.6,M,53.0,M,,*74
$GPGGA,211650.00,,,,,0,,,,,,,,*49
$GPGGA,211651.00,4030.005405,N,00330.763540,W,1,07,1.0,688.9,M,53.0,M,,*71
$GPGGA,211655.00,,,,,0,,,,,,,,*4C
$GPGGA,211656.00,4030.008074,N,00330.765338,W,1,07,0.9,679.9,M,53.0,M,,*70
$GPGGA,211700.00,,,,,0,,,,,,,,*4D
$GPGGA,211701.00,4030.009258,N,00330.765510,W,1,07,1.0,678.3,M,53.0,M,,*71
$GPGGA,211705.00,,,,,0,,,,,,,,*48
Which is totally undesirable, as the GPS location would be flapping
between set and unset.
Use the default of 1s explicitly, which behaves properly.
|
|
For non-Qualcomm MBIM devices, report a generic "Unsupported" error if
we try to do an operation that would otherwise be only available with
QMI-over-MBIM.
|
|
The gpsOneXTRA assistance data provides a convenient way to inject
predicted orbit information into the module, without requiring to have
an Internet connection in the module itself.
|
|
Sometimes SUPL-server based A-GPS is not possible, e.g. if the module
doesn't have Internet connectivity. In such cases, the modem may
support injecting additional "assistance data" that may be downloaded
from the Internet using external means (e.g. WiFi), in order to keep
having a quick time to first fix.
We now support using this location assistance data, with the following
new API elements:
* A new mask of supported assistance data types is provided in the
SupportedAssistanceData property.
* A new list of URLs from where the aassistance data may be
downloaded is also provided in a new AssistanceDataServers
property.
* A new InjectAssistanceData() method is provided, to perform the
data injection in the module once it's been downloaded to the host
system.
|
|
|
|
Just to make room for the LOC based integration.
|
|
|
|
|
|
We do want to receive QMI indications, as they will be needed for
different features (e.g. LOC based GNSS support).
|
|
|
|
This new interface will include implementations that are shared
between the MMBroadbandModemQmi and the MMBroadbandModemMbim.
For now, it just provides a way to implement the common client
allocation methods.
|
|
|
|
|
|
|
|
Most Qualcomm-based MBIM devices also support QMI over MBIM. We will
try to check in runtime whether the MBIM device supports QMI over
MBIM, and if so, setup a QmiDevice within the MMPortMbim.
|
|
|
|
|
|
|
|
|
|
This patch changes MMBroadbandModemMbim to update the 'Pco' property in
the Modem3gpp interface upon receiving a MBIM_CID_PCO notification.
|
|
This patch adds a 'Pco' property to the Modem3gpp interface for tracking
PCOs that the modem has received from the network.
|
|
|
|
|
|
From: Emin Tufan Çetin <etcetin@gmail.com>
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/80
|
|
The MBIM protocol hides to the user the concept of SMS storages, so we
should explicitly ignore the initialization step so that it isn't run
with the parent AT-based implementation.
|
|
mm-broadband-modem.c:4395:13: error: variable 'tac' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
if (act == MM_MODEM_ACCESS_TECHNOLOGY_LTE) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm-broadband-modem.c:4407:75: note: uninitialized use occurs here
mm_iface_modem_3gpp_update_location (MM_IFACE_MODEM_3GPP (self), lac, tac, cid);
^~~
mm-broadband-modem.c:4395:9: note: remove the 'if' if its condition is always true
if (act == MM_MODEM_ACCESS_TECHNOLOGY_LTE) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm-broadband-modem.c:4380:9: error: variable 'tac' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
if (cgreg) {
^~~~~
mm-broadband-modem.c:4407:75: note: uninitialized use occurs here
mm_iface_modem_3gpp_update_location (MM_IFACE_MODEM_3GPP (self), lac, tac, cid);
^~~
mm-broadband-modem.c:4380:5: note: remove the 'if' if its condition is always false
if (cgreg) {
^~~~~~~~~~~~
mm-broadband-modem.c:4280:15: note: initialize the variable 'tac' to silence this warning
gulong tac;
^
= 0
|
|
|
|
|
|
|
|
|
|
Ports flagged as being QCDM will not be probed for AT. QCDM probing
will be performed normally, the udev tags only give hints, we still
need to know whether the TTYs are QCDM-capable or not.
|
|
We keep the pflags input in mm_base_modem_grab_port() so that plugins
can use other methods to gather port type hints (e.g. querying with AT
commands as in Huawei/Telit or looking at sysfs properties as in HSO).
For standard udev tag port type hints, it will be the base modem
looking them up.
Note that there is no longer any need to ignore non-flagged ports for
those modems that require primary/secondary flags. They will be
implicitly ignored when mm_base_modem_organize_ports() decides which
ports to use, as the flagged ones are preferred over the non-flagged
ones.
|
|
Ports flagged with one of the common AT port type hints will not be
probed for QCDM.
AT probing will be performed normally, the udev tags only give hints,
we still need to know whether the TTYs are AT-capable or not.
|
|
We define 3 common udev tag ids to be used by all plugins:
* ID_MM_PORT_TYPE_AT_PRIMARY: the primary modem port. It will be used
for AT control and also as PPP if there is no other port flagged
explicitly to do PPP.
* ID_MM_PORT_TYPE_AT_SECONDARY: the secondary modem port. It will be
used when/if the primary port gets connected to do PPP.
* ID_MM_PORT_TYPE_PPP: the port to be used to do PPP only. This tag
makes sense only when the primary port shouldn't be used for PPP,
i.e. when there is a port dedicated to do PPP and one port
dedicated for control.
|
|
And remove all custom logic from all plugins that were doing just that.
|
|
|
|
Use the same flag name across all plugins with support for
NMEA-capable TTYs.
|
|
|
|
Unfortunately, G_MINDOUBLE is basically 0.0, so MM_SIGNAL_UNKNOWN ends
up giving us a value that may fall in the range of expected values for
the signal component.
Update the MM_SIGNAL_UNKNOWN symbol to match a value which is
definitely out any other possible valid range, so that we can easily
detect which values are set and which aren't.
While API is maintained, this fix is introducing an ABI break. Not a
big deal anyway, as the purpose of the value is just to detect unset
fields.
|
|
libmbim 1.17.3 adds the support for MBIM_CID_PCO, which is used by
commit d68078b2ce0f ("broadband-modem-mbim: check if modem implements
MBIM_CID_PCO").
|
|
|
|
The "location area code" field is given in GSM/UMTS networks
exclusively. LTE networks use the concept of "tracking area code"
instead.
This patch updates the Location interface to Provide separate fields
for LAC and TAC, instead of giving TAC values in the LAC field.
|
|
|
|
Setting bands is a very device-specific operation. Sometimes the
device requires specific band combinations, or sometimes the 'any'
specific logic doesn't apply to all supported bands (e.g. may apply
only to the currently selected modes, as in XMM based devices).
So, don't assume that if the set command succeeds we have set all
expected bands. Instead, do an explicit loading of the current bands
after the set operation, same thing as we do when setting modes.
|
|
Also bump required libqmi version, as this change uses flags from the
latest available API.
UMTS B19 is NTT DoCoMo's 800MHz band.
UMTS B6 is NTT DoCoMo's 850MHz band
|
|
When we detect that the modem is QMI-capable or MBIM-capable, we still
want to be able to use TTYs, for features unsupported by the main
protocols.
So, don't flag all the TTYs as non-AT non-QCDM, let them probe as
usual instead.
|
|
The first step in the Enable() processing is to wait for a final
state, so we can definitely wait for the ongoing disabling or
initializing states to finish before we go on with the enable
operation, there is no need to early fail if the disabling or
initializing intermediate states are detected.
|
|
If additional Enable() requests are received while one is already
ongoing, we queue them and will end up completing all with the same
result once the first one finishes.
Same logic also for Disable().
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/8
|