Commit Graph
46 Commits
Author SHA1 Message Date
Aleksander Morgado 0d1952c489 option: disable preferred networks management in custom SIM object
It's been observed that running CPOL? would completely break the AT
port of the modules like the GIO225.

Fully disable this feature in the whole option and option-hso plugins,
by creating a new custom SIM object with the features disabled
completely, and setup as a new shared interface object.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/404
2021-07-27 00:10:02 +02:00
Aleksander Morgado 5d176a1e61 base-modem: explicitly say if NET or TTY data ports are supported
A modem that creates exclusively bearer objects that work with NET
ports (e.g. all QMI or MBIM modems) must not add any TTY port in the
list of data ports.

A modem that creates exclusively bearer objects that work with TTY
ports (e.g. the generic modem) must not add any NET port in the
list of data ports.

A modem that may use both TTY and NET ports should add all in the list
of data ports.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/324
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/329
2021-03-04 18:03:28 +01:00
Aleksander Morgado 662f8afc56 option,hso: port to use object logging 2020-04-08 16:35:09 +02:00
Aleksander Morgado 0f708daf0b modem-helpers: port supported modes filtering to use object logging 2020-04-08 16:35:09 +02:00
Aleksander Morgado accd1a5841 base-modem: define new helper MMBaseModemAtCommandAlloc
It has the same exact format as MMBaseModemAtCommand, but its contents
are assumed heap allocated.

The only real purpose of this type is to allow defining static
constant MMBaseModemAtCommand variables without warnings when using
-Wdiscarded-qualifiers.
2020-01-31 15:18:35 +01:00
Aleksander Morgado bbeabb495e helpers: new macro to CLAMP high threshold only
Useful when clamping a unsigned integer with low threshold set to 0,
which would give us compiler warnings with -Wtype-limits when using
CLAMP(), e.g.:

  via/mm-broadband-modem-via.c: In function ‘handle_evdo_quality_change’:
  /usr/include/glib-2.0/glib/gmacros.h:811:63: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
    811 | #define CLAMP(x, low, high)  (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
        |                                                               ^
  via/mm-broadband-modem-via.c:284:19: note: in expansion of macro ‘CLAMP’
    284 |         quality = CLAMP (quality, 0, 100);
        |                   ^~~~~
2020-01-31 15:18:35 +01:00
Aleksander Morgado 92cc41e060 option: fix warnings with -Wimplicit-fallthrough
option/mm-broadband-modem-option.c: In function ‘load_access_technologies_step’:
  option/mm-broadband-modem-option.c:565:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
    565 |         ctx->step++;
        |         ~~~~~~~~~^~
  option/mm-broadband-modem-option.c:567:5: note: here
    567 |     case ACCESS_TECHNOLOGIES_STEP_OSSYS:
        |     ^~~~
  option/mm-broadband-modem-option.c:587:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
    587 |         ctx->step++;
        |         ~~~~~~~~~^~
  option/mm-broadband-modem-option.c:589:5: note: here
    589 |     case ACCESS_TECHNOLOGIES_STEP_OWCTI:
        |     ^~~~
  option/mm-broadband-modem-option.c:600:18: error: this statement may fall through [-Werror=implicit-fallthrough=]
    600 |         ctx->step++;
        |         ~~~~~~~~~^~
  option/mm-broadband-modem-option.c:602:5: note: here
    602 |     case ACCESS_TECHNOLOGIES_STEP_LAST:
        |     ^~~~
2020-01-31 14:52:50 +01:00
Aleksander Morgado cff9d4a797 option: fix warnings with -Wdiscarded-qualifiers
option/mm-broadband-modem-option.c:978:7: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
    978 |     { "_OSSYS=1",  3, FALSE, NULL },
        |       ^~~~~~~~~~
  option/mm-broadband-modem-option.c:979:7: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
    979 |     { "_OCTI=1",   3, FALSE, NULL },
        |       ^~~~~~~~~
  option/mm-broadband-modem-option.c:980:7: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
    980 |     { "_OUWCTI=1", 3, FALSE, NULL },
        |       ^~~~~~~~~~~
  option/mm-broadband-modem-option.c:981:7: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
    981 |     { "_OSQI=1",   3, FALSE, NULL },
        |       ^~~~~~~~~
  option/mm-broadband-modem-option.c:1033:7: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
   1033 |     { "_OSSYS=0",  3, FALSE, NULL },
        |       ^~~~~~~~~~
  option/mm-broadband-modem-option.c:1034:7: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
   1034 |     { "_OCTI=0",   3, FALSE, NULL },
        |       ^~~~~~~~~
  option/mm-broadband-modem-option.c:1035:7: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
   1035 |     { "_OUWCTI=0", 3, FALSE, NULL },
        |       ^~~~~~~~~~~
  option/mm-broadband-modem-option.c:1036:7: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
   1036 |     { "_OSQI=0",   3, FALSE, NULL },
        |       ^~~~~~~~~
2020-01-31 14:52:50 +01:00
Aleksander Morgado 2fd6d401f5 option: fix warnings with -Wswitch-default 2020-01-31 14:52:49 +01:00
Aleksander Morgado bb5cd9b4e2 option: remove unneeded explicit casts 2017-09-18 21:23:05 -07:00
Ben Chan 5ffc3b7a92 option: port modem_3gpp_disable_unsolicited_events to use GTask 2017-09-18 20:25:28 -07:00
Ben Chan cb23ba7cba option: port modem_3gpp_enable_unsolicited_events to use GTask 2017-09-18 20:25:28 -07:00
Ben Chan 3fdfe5e3ab option: port modem_3gpp_{setup,cleanup}_unsolicited_events to use GTask 2017-09-18 20:25:28 -07:00
Ben Chan 7546b95122 option: port modem_after_power_up to use GTask 2017-09-18 20:25:28 -07:00
Ben Chan 6ad9ccbfa2 option: port set_current_modes to use GTask 2017-09-18 20:25:28 -07:00
Ben Chan 78432e7910 option: port load_access_technologies to use GTask 2017-09-18 20:25:28 -07:00
Ben Chan 0c726981ca option: port load_supported_modes to use GTask 2017-09-18 20:25:28 -07:00
Aleksander Morgado f3a301db3c option: fix async completion in 3gpp event handlers setting 2017-07-17 10:20:17 +02:00
Aleksander Morgado 2eb55d3224 plugins: use G_N_ELEMENTS when iterating ports array 2017-05-30 17:28:23 +02:00
Aleksander Morgado ffde429843 core: use G_SOURCE_REMOVE and G_SOURCE_CONTINUE in GSourceFuncs 2015-12-02 17:07:39 +01:00
Ben Chan bdab75d0b8 option,hso: minor coding style fixes 2014-05-20 09:31:31 +02:00
Aleksander Morgado 6f235b9948 ports: rename 'MMAtSerialPort' to 'MMPortSerialAt' 2014-02-13 13:40:01 +01:00
Aleksander Morgado 1c67d050cb api,introspection: merge 'AllowedModes' and 'SupportedMode' into 'CurrentModes'
We now have a single 'CurrentModes' property which contains both values in a
tuple with signature "(uu)".

Also, rename 'SetAllowedModes()' to 'SetCurrentModes()', and update the list of
arguments expected to have a single "(uu)" tuple.
2013-06-05 19:15:14 +02:00
Aleksander Morgado 45ceba7692 api,introspection: 'SupportedModes' is now a list of possible combinations
Instead of just a mask of MMModemMode values, we now provide a list of the
allowed and preferred mode combinations supported by the modem. E.g.:

$> sudo mmcli -m 0
  -------------------------
  Modes    |      supported: 'allowed: 2g; preferred: none
           |                  allowed: 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: 2g
           |                  allowed: 2g, 3g; preferred: 3g
           |                  allowed: 4g; preferred: none
           |                  allowed: 2g, 3g, 4g; preferred: none'
2013-06-05 19:15:14 +02:00
Aleksander Morgado e33fc37ec2 option: ignore PH_SIM facility lock in 'nozomi' based modems
https://bugzilla.gnome.org/show_bug.cgi?id=696593
2013-03-28 20:06:53 +01:00
Aleksander Morgado 9ec90d9a11 core,plugins: don't assume 'CS' supported when '2G' supported
We will not report 'CS' as a supported mode every time '2G' is supported. This
actually was forcing all plugins to handle a 'CS' fallback when they didn't have
CS-specific mode setup. So, to simplify things, we will only report 'CS' as
supported for those plugins which actually allow to select 'CS' mode (e.g. the
'wavecom' plugin).
2012-11-02 09:52:31 +01:00
Aleksander Morgado 4f7534452d option,hso: properly parse returned IMEI 2012-09-14 07:05:23 +02:00
Aleksander Morgado 0436b3e457 api,introspection: report list of drivers, not just one
Different ports of the same modem may get handled by different drivers. We
therefore need to provide a list of drivers (new `Modem.Drivers' property with
signature 'as') instead of just one (removed `Modem.Driver' property with
signature 's').

$ sudo mmcli -m 0 | grep drivers
           |        drivers: 'qcserial, qmi_wwan'
2012-08-24 13:34:51 +02:00
Aleksander Morgado e07786ebb1 option: fix loading current allowed modes
The proper command to check the current allowed modes is `AT_OPSYS?'.
2012-03-26 15:23:28 +02:00
Aleksander Morgado 2d02279ba7 Revert "option: fix allowed modes response parsing"
This reverts commit 0bc824b452.

The fix is NOT to change the expected result, but to change the command itself.
2012-03-26 15:20:55 +02:00
Aleksander Morgado 063c4f9bf8 option: fix disabling sequence handling
This provides the proper fix for the disabling sequence, also amending the
erroneous checks introduced in commit 5b10af0f.
2012-03-26 13:46:30 +02:00
Aleksander Morgado bd90ee8094 option: handle special 'auto' mode when setting allowed/preferred modes 2012-03-24 19:17:25 +01:00
Aleksander Morgado 43cdb25eb1 option: handle response specifying automatic mode
Option modems may reply '_OPSYS: 5,2' to report automatic mode being used.
2012-03-24 19:17:19 +01:00
Aleksander Morgado 19436a9906 option: fix setting allowed modes 2012-03-24 19:16:53 +01:00
Aleksander Morgado 5b10af0ff3 option: no result expected in unsolicited enabling/disabling sequence 2012-03-24 19:16:44 +01:00
Aleksander Morgado 0bc824b452 option: fix allowed modes response parsing
Expecting a `_OSSYS' reply, not `_OPSYS'.
2012-03-24 11:48:34 +01:00
Aleksander Morgado 1b394ebfe7 option: allow setting allowed/preferred modes 2012-03-16 14:53:25 +01:00
Aleksander Morgado 63926eac02 option: load initial allowed/preferred modes 2012-03-16 14:53:25 +01:00
Aleksander Morgado 346de780be option: completely ignore +PACSP0 unsolicited messages 2012-03-16 14:53:25 +01:00
Aleksander Morgado dda9e2a37f option: enable and disable unsolicited messages 2012-03-16 14:53:25 +01:00
Aleksander Morgado 00094fcad2 option: setup and cleanup unsolicited messages 2012-03-16 14:53:25 +01:00
Aleksander Morgado 657f728025 option: reset expected unsolicited message handlers 2012-03-16 14:53:25 +01:00
Aleksander Morgado 39e0f953b0 option: need to wait some seconds after power up 2012-03-16 14:53:25 +01:00
Aleksander Morgado cdd339f802 base-modem: implement new modem-wide cancellable, and rework AT commands
Instead of the `_in_port()' variants, we'll provide more generic
`_full()' methods. These should be used either if we want to send commands
to a specific port, or if we want to use a specific user-provided GCancellable.

In addition to this user-provided GCancellable, we keep the internal modem-wide
one.
2012-03-16 14:53:23 +01:00
Aleksander Morgado 8396d8a82f option: implement default access technology loading 2012-03-16 14:28:14 +01:00
Aleksander Morgado 205313b783 option: start porting the Option plugin 2012-03-16 14:28:14 +01:00