Commit Graph
4401 Commits
Author SHA1 Message Date
Jack Song 0c67d93edd mm-bearer-mbim: fix connect_set_ready always parse result for needing to check NwError on failure
Issue and bugfix suggestion by Aleksander Morgado.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/549
2022-05-20 11:35:52 +02:00
Aleksander Morgado 82b574a6e7 broadband-modem-mbim: ignore SIM swap events during a slot switch action
When we explicitly request to perform a SIM slot switch operation, we
should ignore the 'slot info status' and 'subscriber ready status'
indications that report an active SIM slot change, or otherwise they'll
end up interfering with the correct reporting of the slot switch
operation.

We could have attempted to complete the slot switch operation early
using the indications, but that solution would have forced us to
assume that theinfo in the indications is the one we had requested,
which is not easy because the 'slot info status' indication is
reported once for each slot, so a single SIM slot switch operation
triggers multiple 'slot info status' indications, as well as
additional 'subscriber ready status' indications reporting the same.

Fixes suggested by Pavan Holla <pholla@chromium.org> and tested by
Jinjian Song <Jinjian.Song@fibocom.com>.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/550
2022-05-20 09:03:54 +00:00
Aleksander Morgado b497de325a iface-modem: common SIM event reporting logic
We no longer have separate mm_base_modem_process_sim_event() and
mm_broadband_modem_sim_hot_swap_detected() methods. The only
difference between both of them was that one of them would attempt to
cleanup the ports context associated to the SIM hot swap event logic
as soon as a swap was detected, in order to avoid queueing up multiple
such events.

The previous logic wasn't working well, though, as there could be
mixed AT+QMI or AT+MBIM devices that would also require that same
cleanup and so we didn't always know which one should have been
called.

Now we have a single mm_iface_modem_process_sim_event() method, which
will trigger the reprobe and disabling, but which will also perform
the cleanup of the SIM ports swap setup as specified by the
implementation.

So, if a plugin explicitly initializes the serial ports context for
SIM hot swap handling, it should also explicitly clean it up.

Also, the initialization of the serial ports context for SIM hot swap
handling is no longer done automatically for all modems, it will be
done only for those modems using it; i.e. the modems that explicitly
report support SIM hot swap handling using AT URCs.
2022-05-20 09:03:54 +00:00
Aleksander Morgado 61144e2103 iface-modem: remove MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED property
This property is used in the MMIfaceModem to flag whether the SIM hot
swap setup has been performed or not. The flag is now moved to the
iface-specific private context.

The property was also used in AT-based modems, so that implementations
supporting the SIM hot swap via AT URCs could flag the upper layers
whether the enabling of the feature was done correctly or not, and if
so, create and keep the AT ports context open. But this feature only
made sense in AT-based modems, i.e. an MBIM modem that detects SIM hot
swaps via MBIM indications exclusively should not require the AT ports
context open for anything. The check in the MMBroadbandModem object
has therefore been removed, and the logic will be updated so that it
only applies to AT-based modems.
2022-05-20 09:03:54 +00:00
Aleksander Morgado 86eabf4316 iface-modem: initialization restart support moved to iface-specific private context 2022-05-20 09:03:54 +00:00
Aleksander Morgado 0080ed612d iface-modem: rework signal check logic to use the iface-specific private context
The signal and access tech loading operation was using a context that
contained both overall state and state specific to the current
attempt.

The overall modem state is now moved to the iface-specific private
context, and the state specific to the operation is kept in a GTask
that is bound to the ongoing loading operation.
2022-05-20 09:03:54 +00:00
Aleksander Morgado 95da87046c iface-modem: move recent signal quality handling to iface-specific private context 2022-05-20 09:03:54 +00:00
Aleksander Morgado 9fde6f9162 iface-modem: move state update context to iface-specific private context
Avoid keeping separate per-operation contexts, it doesn't make
sense. Just have one single Private context for the whole interface
where we can add support for all operations performed by the
interface.
2022-05-20 09:03:54 +00:00
Aleksander Morgado c059f16871 broadband-modem-mbim: don't disable subscriber info if used by SIM hotswap
The SIM hot swap operation relies on multiple different types of
indications, but the most important one is the subscriber info
indication. We should make sure that indication is kept enabled for as
long as the SIM hot swap detection should be active.

We also skip using the MM_IFACE_MODEM_SIM_HOT_SWAP_CONFIGURED
property, which should be removed or made MMBroadbandModem-specific,
as it is only really used in the AT-based SIM hot swap detection
logic.
2022-05-20 09:03:54 +00:00
Aleksander Morgado fd0a5d42a9 broadband-modem-mbim: reset enable flags if enabling them failed
This is not extremely important, because we don't really flag as
disabled those indications that failed to be enabled (as usually we
attempt to enable them in a group, not one by one), but in this case
this will allow us to keep a clean state after a failed SIM hot swap
setup.
2022-05-20 09:03:54 +00:00
Aleksander Morgado 7de4d6673b broadband-modem-mbim: plug memleak when MBIMEx v2 not supported
==11025== 40 bytes in 1 blocks are definitely lost in loss record 3,313 of 5,483
  ==11025==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
  ==11025==    by 0x4A32CA9: g_malloc (in /usr/lib/libglib-2.0.so.0.7000.2)
  ==11025==    by 0x4A4A082: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.7000.2)
  ==11025==    by 0x49F8574: g_array_sized_new (in /usr/lib/libglib-2.0.so.0.7000.2)
  ==11025==    by 0x24DEB1: load_supported_modes_mbim (mm-broadband-modem-mbim.c:958)
  ==11025==    by 0x24E2D5: modem_load_supported_modes (mm-broadband-modem-mbim.c:1042)
  ==11025==    by 0x1D4DC5: interface_initialization_step (mm-iface-modem.c:5718)
  ==11025==    by 0x1D26D6: load_device_identifier_ready (mm-iface-modem.c:4903)
  ==11025==    by 0x4BACB83: ??? (in /usr/lib/libgio-2.0.so.0.7000.2)
  ==11025==    by 0x4BACBB8: ??? (in /usr/lib/libgio-2.0.so.0.7000.2)
  ==11025==    by 0x4A2A434: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.7000.2)
  ==11025==    by 0x4A7E7B8: ??? (in /usr/lib/libglib-2.0.so.0.7000.2)
2022-05-19 13:30:32 +02:00
Prakash Pabba 2788c6c5f6 mm-broadband-modem-qmi: Update access technology based on "NAS system info" or "NAS serving system"
For NR5G NSA, both LTE and NR5G should be set in access technology.

Use NAS "system info" or "serving system", instead of NAS "signal info"
or "signal strength", for deciding access technology based on current
registration state.
2022-05-18 22:16:41 +00:00
Aleksander Morgado 5fbe7c0c82 broadband-modem-mbim: fix additional double GError free
We're returning the GError as GTask result, we should not explicitly
free it ourselves.

Same as the previous fix, should solve the crash sometimes seen in
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/550
2022-05-13 11:54:06 +02:00
Aleksander Morgado b4d0fc4adf broadband-modem-mbim: fix double GError free
We're returning the GError as GTask result, we should not explicitly
free it ourselves.

Fixes the crash sometimes seen in
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/550

  ==15994== Invalid free() / delete / delete[] / realloc()
  ==15994==    at 0x484B27F: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==15994==    by 0x4F9A8A0: g_error_free (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x2251CC: ??? (in /usr/sbin/ModemManager)
  ==15994==    by 0x4DD2B48: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7102.0)
  ==15994==    by 0x4DD2D4A: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7102.0)
  ==15994==    by 0x4CA9049: ??? (in /usr/lib/x86_64-linux-gnu/libmbim-glib.so.4.6.0)
  ==15994==    by 0x4CB0367: ??? (in /usr/lib/x86_64-linux-gnu/libmbim-glib.so.4.6.0)
  ==15994==    by 0x4FAF287: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4FAEC03: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x5003497: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4FAE282: g_main_loop_run (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x16916F: main (in /usr/sbin/ModemManager)
  ==15994==  Address 0x80db490 is 0 bytes inside a block of size 16 free'd
  ==15994==    at 0x484B27F: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==15994==    by 0x4F9A8A0: g_error_free (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x1984FA: ??? (in /usr/sbin/ModemManager)
  ==15994==    by 0x4DD2B48: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7102.0)
  ==15994==    by 0x4DD2D4A: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7102.0)
  ==15994==    by 0x2251A6: ??? (in /usr/sbin/ModemManager)
  ==15994==    by 0x4DD2B48: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7102.0)
  ==15994==    by 0x4DD2D4A: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7102.0)
  ==15994==    by 0x4CA9049: ??? (in /usr/lib/x86_64-linux-gnu/libmbim-glib.so.4.6.0)
  ==15994==    by 0x4CB0367: ??? (in /usr/lib/x86_64-linux-gnu/libmbim-glib.so.4.6.0)
  ==15994==    by 0x4FAF287: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4FAEC03: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==  Block was alloc'd at
  ==15994==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==15994==    by 0x4FB76F8: g_malloc (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4FCF1A4: g_slice_alloc (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4FCF80D: g_slice_alloc0 (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4F9A3A6: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4F9A5A3: g_error_copy (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4CA903E: ??? (in /usr/lib/x86_64-linux-gnu/libmbim-glib.so.4.6.0)
  ==15994==    by 0x4CB0367: ??? (in /usr/lib/x86_64-linux-gnu/libmbim-glib.so.4.6.0)
  ==15994==    by 0x4FAF287: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4FAEC03: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x5003497: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
  ==15994==    by 0x4FAE282: g_main_loop_run (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7102.0)
2022-05-13 10:50:39 +02:00
Aleksander Morgado e163ab504a broadband-modem-mbim: fix task completion when peeking device fails
We cannot call peek_device() when we have already created a GTask for
the async operation, because if the operation failed we would be
completing the async operation with a totally different GTask than the
one we had created ourselves, triggering memory leaks and leaving
modem references around that should not exist (as the GTask we create
holds a modem reference).

Issue found in the context of debugging this, may actually be fully
related:

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/550
2022-05-11 12:13:34 +00:00
Aleksander Morgado acd5f466d7 broadband-modem-mbim: minor coding style changes 2022-05-11 12:13:34 +00:00
Dylan Van Assche 3239fc22ff mm-iface-modem: mark signal strength as recent on init
When initializing the Modem interface, we set the signal strength
to the default value (0%) and we are certain this is the recent value
until the modem reports the actual signal strength if available.
Therefore, mark the signal strength as recent instead of cached.
2022-05-03 13:50:13 +02:00
Dylan Van Assche a1b52c14bf mm-iface-modem: set signal quality to 0% on shutdown
If a modem is disabled, the signal quality is still set to the cached
value, even though the modem is not connected to any network anymore.
Set the signal quality to 0% when the interface is removed from DBus.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/558
2022-04-29 17:43:10 +02:00
Aleksander Morgado 5a050f8604 bearer-qmi: fix QmiWdRequestedSettings->QmiWdsRequestedSettings typo 2022-04-27 12:20:34 +02:00
Aleksander Morgado 9735437061 bearer-qmi: use the new QmiWdRequestedSettings enum type
And bump libqmi to 1.31.5, which is the version introducing the rename.
2022-04-27 11:53:13 +02:00
Maxim Anisimov 17934810db iface-modem-3gpp-profile-manager: fix copy-paste error on tags for quarks
Ussd module initialization does not work correctly because the tags match.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2022-04-22 09:50:13 +03:00
som 1e08f9ca2c mm-log: hiding personal info while logging
During mm logging, some of the information like simIccId, Telephone
numbers need to be hidden from displaying in the logs to protect
some of the user information.

Implemented for MBIM requiring libmbim 1.27.6, which is the
development version that includes the needed API.
2022-04-20 15:20:34 +02:00
Carlo Lobrano ac243f9467 sms: prevent crash if date is out of range
g_date_time_new, and g_date_time_new_utc return NULL if inputs are out
of range, and currently mm_new_iso8601_time passes the GDateTime created
by those two functions to date_time_format_iso8601 without checking for
NULL values, causing a g_date_time_format_iso8601 crash if PDU data is
corrupted with wrong date.

To prevent this, mm_new_iso8601_time now can return NULL and set a new
GError if GDateTime created by g_date_time_new is NULL.

Fixes #546
2022-04-08 15:41:49 +02:00
som 5c8c1136bd modem-mbim: update default error when network error is out of range
When the modem sends an error which is outside the range
defined in MBIM_NW_ERROR list then MM should use a default
error(MBIM_NW_ERROR_NONE) instead of crash.
2022-04-07 20:01:40 +00:00
Aleksander Morgado 2dafb32d63 base-bearer: integrate connection status dispatcher scripts 2022-04-05 08:14:53 +00:00
Aleksander Morgado e8612671ef dispatcher-connection: new dispatcher for connection status scripts
The user or the packages can install custom dispatcher scripts that
will be run by the ModemManaer daemon itself upon bearer connection
status updates.

Scripts installed by users should go into the
/etc/ModemManager/connection.d directory.

Scripts installed by packages should go into the
/usr/lib/ModemManager/connection.d directory.

The name of the script will specify the order how it's run, so it's
suggested to name them with a numeric prefix, e.g. "99-something".
2022-04-05 08:14:53 +00:00
Aleksander Morgado e188a77ede dispatcher-fcc-unlock: inherit from the base dispatcher object 2022-04-05 08:14:53 +00:00
Aleksander Morgado 01c8edf68c dispatcher: new generic object to handle script dispatchers
Based on the FCC unlock specific one, but without any FCC unlock
specific constraint.
2022-04-05 08:14:53 +00:00
som 1fec1cd3c2 profile-manager: profile-id and apn-type check not required for user settings
When the user provides the profile parameter, as per the MM documentation
profile-id is an optional parameter. So with the fix the profile-id
check in input is removed. apn-type is also optional when the user
provides the settings. This check is also removed as part of the fix.
2022-04-05 08:01:48 +00:00
Aleksander Morgado 19f389949c port-serial: ensure the port object is valid after BUFFER_FULL handling
The BUFFER_FULL signal handler is effectively working in the same way
as the response buffer processor, in both cases we may have scheduled
the completion of the serial command, and that in turn may end up
fully disposing the port object. We must make sure the port object is
valid for as long as we need it in this function, so we take a
reference while processing the response buffer.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/535
2022-04-04 10:13:06 +02:00
Sven Schwermer 210fa8bf35 qmi: Fall back to NAS SSP/NAS TP capabilities
If no DMS capabilities are reported, we fall back to the capabilities
reported by NAS SSP or NAS TP.

Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-03-30 10:19:09 +02:00
Andrew Lassalle 0fbab3c8dc broadband-modem-mbim: Set InitialEPSBearer's authentication to CHAP when is UNKNOWN
This is the same behavior that is used when creating the bearer in
mm-bearer-mbim.
2022-03-29 16:01:30 +00:00
Aleksander Morgado d5805002c1 core: remove "all rights reserved" from copyright lines
The rights each contributor has are the ones stated by the GPL/LGPL,
not more and not less.
2022-03-29 16:36:15 +02:00
Bjørn Mork afd3ce86c9 mm-netlink: use unaligned netlink attribute length
Alignment padding is not accounted for in the netlink attribute
length.  Fix to avoid warnings later if we add shorter fixed
length attributes, even though it currently makes no difference
since we only add a 4 byte attribute

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2022-03-28 13:25:52 +02:00
Bjørn Mork 7bbf6c8a4a mm-netlink: only change IFF_UP flag
This fixes the missing NOARP flag on the second and following VLAN
sub-interfaces when multiplexing over the cdc_mbim driver.

ifi_change specifies all the flags we want to change. Any listed
flag which isn't set in ifi_flags will be cleared by the kernel:

        if (ifm->ifi_change)
                flags = (flags & ifm->ifi_change) |
                        (rtnl_dev_get_flags(dev) & ~ifm->ifi_change);

Drivers like cdc_mbim set some netdev flags by default, indicating
supported or unsupported features. The driver emulates an ethernet
netdev but it doesn't implement ARP.  Clearing NOARP on cdc_mbim
netdevs will block IP transmissions, waiting for an ARP reply we
never will receive.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
2022-03-28 13:25:07 +02:00
Freedom Liu a56f96f074 foxconn: use new qmi service(fox) to get firmware version
foxconn modules get firmware version:
Try with the new FOX service first. If FOX service failed, try with DMS service.
T99W175(vid:105b) ; T77W968(0489:e0b4 ; 0489:e0b5):
    qmi service: dms
T99W265(0489:e0da ; 0489:e0db):
    qmi service: fox
2022-03-28 08:06:10 +00:00
Stephan Gerhold 8d95c82f9c shared-qmi: ignore slot status indications until initial status is known
Recent ModemManager versions no longer work on the Samsung A5 (Qualcomm
MSM8916) smartphone: MM ends up in an infinite loop trying to probe the
modem over and over again.

Looking at the debug log it seems to be related to a "Slot Status"
indication that comes in during probe time and causes MM to restart
the probing process:

    [/dev/wwan0qmi0] Sent generic request (translated)...
      << QMUX: service = "uim"
      << QMI: message = "Register Events" (0x002E)
      << TLV: translated = physical-slot-status
    [/dev/wwan0qmi0] Received generic indication (translated)...
      << QMUX: service = "uim"
      << QMI: message = "Slot Status" (0x0048)
      << TLV: translated = { [0] = '[ physical_card_status = 'present', ...
    [/dev/wwan0qmi0] Received generic response (translated)...
      << QMUX: service = "uim"
      << QMI: message = "Register Events" (0x002E)
      << TLV: translated = SUCCESS
    [modem42] registered for slot status indications
    [/dev/wwan0qmi0] Sent generic request (translated)...
      << QMUX: service = "uim"
      << QMI: message = "Get Slot Status" (0x0047)
    [modem42] received slot status indication
    [modem42] An active slot had a status change, will reprobe the modem
     <infinite loop>

The "Slot Status" indication (uim_slot_status_indication_cb) arrives
immediately after starting to listen for the event, which is before
ModemManager has actually loaded the initial slot status in
uim_get_slot_status_ready. In this situation !slot_array_status_equal()
will always cause the modem to reprobe, even though it is not necessary
during the probe phase.

To fix this add a simple check to uim_slot_status_indication_cb() that
ignores the indication if the initial slot status was not loaded yet.
2022-03-23 20:39:14 +01:00
Aleksander Morgado 8ab31cf0e6 broadband-modem-mbim: consolidate initialized SIM creation method
The logic to create a new SIM object from the slot status info was
used in several places.
2022-03-22 21:53:08 +00:00
som 035879dab9 broadband-modem-mbim: update sim-type and esim-status of inactive slot
During initialization if the number of slots is more than 1 then
update the sim-type and esim-status of the inactive slot as well.
2022-03-22 21:53:08 +00:00
Aleksander Morgado 598d99b5bd test,modem-helpers: add test for the EM9191 COPS=? response
Including 5GNR network reporting (act=12)

https://forum.sierrawireless.com/t/5g-network-scan-with-the-em9191-operation-not-allowed/26374/9
2022-03-16 11:04:06 +00:00
Aleksander Morgado 2c8cfb4768 modem-helpers: improve and fix COPS=? numeric fields parsing
The numeric fields in the +COPS=? response were relying on a very weak
parsing logic, assuming that they were single-digit numeric values and
not using the common string to integer conversion utilities.

This commit improves the conversion from the 3GPP/ETSI defined network
availability and access technology values to the MM defined ones,
providing enum-based matches even if the numeric values are the same.

The commit also fixes the parsing of access technology values > 10,
required to report 5G related values.
2022-03-16 11:04:06 +00:00
Aleksander Morgado 5ba67aff82 modem-helpers: act given in COPS=? may have more than one digit
The new 5GNR related values are >= 10, so don't expect one single
digit (\d), expect one or more (\d+).
2022-03-16 11:04:06 +00:00
Sven Schwermer 95eef34d37 modem-helpers: Consider minimum ID when choosing best profile
+CGDCONT? may list profiles with IDs that are illegal to write, i.e.
+CGDCONT=? returns a minimum ID larger than some of the existing
profiles. E.g. for Fibocom L610-EU, +CGDCONT=? returns

+CGDCONT: (1-7),"IP",,,(0-3),(0-4)
+CGDCONT: (1-7),"IPV6",,,(0-3),(0-4)
+CGDCONT: (1-7),"IPV4V6",,,(0-3),(0-4)
+CGDCONT: (1-7),"PPP",,,(0-3),(0-4)
+CGDCONT: (1-7),"Non-IP",,,(0-3),(0-4)

while the default EPS bearer is established at profile 0:

+CGDCONT: 0,"IP","xxx","xxx.xxx.xxx.xxx",0,0
[...]

Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-03-09 22:43:20 +00:00
Prakash Pabba 92db190f37 mm-shared-qmi: Return an error in load_current_capabilities() if none is found. 2022-03-09 14:01:23 +00:00
Aleksander Morgado f7656de128 broadband-bearer: remove unused cid_selection_3gpp() method
It was replaced by the profile management operations instead in the
1.18 release.
2022-03-08 21:16:06 +01:00
Aleksander Morgado 343f27a5e7 api: allow tagging AT ports as GPS control
There are devices with multiple AT ports where only one of them is
supposed to be used for GNSS control (and data).
2022-03-07 09:51:43 +00:00
Iñigo Martínez 81c3b59f75 build,meson: Fix daemon enums dependencies
meson generates the `mm-daemon-enums-types` source and header files.
These are used when building `ModemManager` executable and different
plugins. However, these enums are only stated as dependencies on the
`ModemManager` executable build.

This has been fixed by also adding the generated files targets as
dependencies in the required plugins.
2022-03-01 09:27:08 +01:00
Iñigo Martínez 2bc697ce32 plugins: Fix port enums includes
The `broadmobi`, `dlink`, `telit` and `tplink` plugins include the
`mm-port-enums-types.h` header. However, they do not use any symbol
defined there.

The `huawei` plugin as includes the `mm-port-enums-types.h` header
but it does not include the build targets as dependencies.

These issues have been fixed by removing the unnecessary includes
from `broadmobi`, `dlink`, `telit` and `tplink` plugins and by
including the enums build target in the `huawei` target.
2022-03-01 09:24:37 +01:00
Aleksander Morgado 17dca109dd broadband-modem-qmi: avoid the deprecated QmiMessageDmsGetStoredImageInfoInput type 2022-02-28 21:54:24 +01:00
Aleksander Morgado 18aa526f8c shared-qmi: use the new QmiSlotEidElement type
This type was introduced to avoid having GArrays of GArrays in libqmi.
2022-02-28 21:54:24 +01:00