Commit Graph

16 Commits

Author SHA1 Message Date
Aleksander Morgado
dc09d3350c cinterion,shared: add missing interface prerequisites 2021-07-11 15:16:41 +02:00
Aleksander Morgado
b126e84b56 cinterion: implement custom shared reset operation
Implemented for all QMI, MBIM and AT based modems. The parent reset
operation always takes priority if available.
2021-07-10 17:20:41 +02:00
Aleksander Morgado
50c1550c9f cinterion: fix missing GError initialization 2020-10-14 14:41:19 +02:00
Aleksander Morgado
261ba90d08 cinterion: port to use object logging 2020-04-08 16:35:09 +02:00
Aleksander Morgado
00dc961cad iface-modem-location: common helper code to test raw gps 2020-02-07 14:42:16 +00:00
Aleksander Morgado
63d21151e2 cinterion: fix warnings with -Wimplicit-fallthrough
cinterion/mm-shared-cinterion.c: In function ‘disable_location_gathering_context_gps_step’:
  cinterion/mm-shared-cinterion.c:414:22: error: this statement may fall through [-Werror=implicit-fallthrough=]
    414 |         ctx->gps_step++;
        |         ~~~~~~~~~~~~~^~
  cinterion/mm-shared-cinterion.c:417:5: note: here
    417 |     case DISABLE_LOCATION_GATHERING_GPS_STEP_SGPSS:
        |     ^~~~
2020-01-31 15:18:35 +01:00
Aleksander Morgado
198529495a cinterion: fix warnings with -Wswitch-default
cinterion/mm-shared-cinterion.c: In function ‘disable_location_gathering_context_gps_step’:
  cinterion/mm-shared-cinterion.c:412:5: error: switch missing default case [-Werror=switch-default]
    412 |     switch (ctx->gps_step) {
        |     ^~~~~~
  cinterion/mm-shared-cinterion.c: In function ‘enable_location_gathering_context_gps_step’:
  cinterion/mm-shared-cinterion.c:665:5: error: switch missing default case [-Werror=switch-default]
    665 |     switch (ctx->gps_step) {
        |     ^~~~~~
2020-01-31 15:18:35 +01:00
Aleksander Morgado
8d96d1d660 cinterion: fix using correct finish() method in AT command
When using mm_base_modem_at_command_full(), the corresponding
mm_base_modem_at_command_full_finish() should be used.
2019-12-05 15:45:38 +01:00
Aleksander Morgado
45cf1ba20a cinterion: don't cache voice support check AT commands
The result of these commands may be different before and after SIM-PIN
unlock, so never cache them.
2019-10-17 08:31:46 +00:00
Aleksander Morgado
a1148f878b cinterion: fix calling setup_unsolicited_events_finish() 2019-09-23 18:14:20 +02:00
Aleksander Morgado
8c8e0e8805 voice,call,cinterion: add Purism as copyright holder
The GSM supplementary services related changes, as well as the rework
done to manage calls per call id, is copyrighted by Purism SPC.
2019-07-12 11:31:04 +02:00
Aleksander Morgado
d833b8644c cinterion: setup/cleanup time unsolicited events
We will parse +CTZU URCs, which end up getting in the way of other
commands if we don't process them.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/135
2019-07-11 23:21:00 +02:00
Aleksander Morgado
f699308958 cinterion: disable call list polling if ^SLCC is supported
Early detect that ^SLCC is supported, and disable the call list
polling in the interface if so.
2019-07-11 23:01:29 +02:00
Aleksander Morgado
faaaf20276 cinterion: when ^SLCC is supported, detailed call state updates are implicit 2019-07-11 23:01:08 +02:00
Aleksander Morgado
47dd9fffac cinterion: support ^SLCC URCs as part of voice management
This command will give us URCs whenever the extended list of current
calls changes, which includes information about the actual state of
each call, even for calls in waiting state.

Therefore, as this is a URC that applies to all calls, it's enabled
and disabled as part of the modem voice interface, instead of doing it
as part of the call object itself (i.e. not treated as an in-call URC).
2019-07-11 23:01:08 +02:00
Aleksander Morgado
59e79c996b cinterion: new 'MMSharedCinterion' interface
Implement a new interface to keep the code shared between the QMI and
non-QMI modem implementations.

While doing that, also fix the parent interface pointer handling, so
that it isn't a static pointer applicable to all modems, and make it a
per-modem specific pointer. Without this fix, ModemManager would crash
if e.g. running with both a QMI and non-QMI Cinterion modem at the
same time.

The new shared Cinterion logic will be in charge of managing all GPS
sources not already managed by the parent interface. E.g. if the
parent implementation already supports QMI-based GPS location (using
the LOC service for example) prefer that to the custom AT-based
logic.
2018-08-21 17:06:55 +00:00