aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-cdma.c
AgeCommit message (Collapse)Author
2023-10-27core: ensure all errors returned in DBus operations are normalizedAleksander Morgado
We want to ensure that all errors reported via DBus operations are normalized to MM-specific errors. We don't want to return QMI or MBIM specific errors, as those are protocol specific and we don't want DBus clients to need to rely on knowing which is the protocol in use by the device.
2020-04-08iface-modem-cdma: port to use object loggingAleksander Morgado
2020-01-30iface-modem-cdma: fix warnings with -Wimplicit-fallthroughAleksander Morgado
mm-iface-modem-cdma.c: In function ‘registration_check_step’: mm-iface-modem-cdma.c:846:18: error: this statement may fall through [-Werror=implicit-fallthrough=] 846 | ctx->step++; | ~~~~~~~~~^~ mm-iface-modem-cdma.c:848:5: note: here 848 | case REGISTRATION_CHECK_STEP_SETUP_REGISTRATION_CHECKS: | ^~~~ ...
2020-01-30iface-modem-cdma: fix warnings with -Wswitch-defaultAleksander Morgado
mm-iface-modem-cdma.c: In function ‘handle_activate_auth_ready’: mm-iface-modem-cdma.c:198:5: error: switch missing default case [-Werror=switch-default] 198 | switch (modem_state) { | ^~~~~~ ...
2019-12-03iface-modem-cdma: don't allow multiple concurrent activation attemptsAleksander Morgado
2019-12-03iface-modem-cdma: disallow empty carrier code in automatic activationAleksander Morgado
2017-06-30iface-modem-cdma: port mm_iface_modem_cdma_run_registration_checks to use GTaskBen Chan
2017-06-30iface-modem-cdma: port mm_iface_modem_cdma_register_in_network to use GTaskBen Chan
2017-06-30iface-modem-cdma: port mm_iface_modem_cdma_disable to use GTaskBen Chan
2017-06-30iface-modem-cdma: port mm_iface_modem_cdma_enable to use GTaskBen Chan
2017-06-30iface-modem-cdma: port mm_iface_modem_cdma_initialize to use GTaskBen Chan
2015-12-02core: use G_SOURCE_REMOVE and G_SOURCE_CONTINUE in GSourceFuncsAleksander Morgado
2015-10-15mm-broadband-modem: trigger registration checks only after enabling all ifacesAleksander Morgado
Given that the Location interface requires 3GPP info reported by the 3GPP interface, we should only trigger registration checks once the Location interface has been already enabled and ready to be used. If we don't do this, we'll end up e.g. getting initial MCCMNC values but never reaching the Location interface properly. So, fix this by triggering all registration checks (CDMA and 3GPP) only after having enabled all interfaces.
2013-08-08iface-modem-cdma: use the new 'MMCdmaManualActivationProperties'Aleksander Morgado
2013-08-08introspection,api: document the expected parameters in Cdma.ActivateManual()Aleksander Morgado
2013-03-22iface-modem-cdma: fix use of uninitialized variableAleksander Morgado
2013-03-22iface-modem-cdma: load initial activation state during initAleksander Morgado
2013-03-22iface-modem-cdma: allow reporting activation state changesAleksander Morgado
2013-03-20iface-modem-cdma: fix checking support for manual activationAleksander Morgado
2013-02-06iface-modem-cdma: fix handling of HDR registration stateDan Williams
hybrid mode is the first parameter, not the third. Caused EVDO to look like it wasn't registered.
2013-02-06trivial: add debugging to generic QCDM registration parsingDan Williams
2013-01-14broadband-modem: guess CDMA access technologies from registration stateDan Williams
Setting access technologies from registration state as part of the registration checking in the CDMA Interface code fights with custom implementations in each modem subclass, which causes the access technologies to ping-pong between more specific (custom implementation) and less specific (generated from registration state during registration checking). If the modem class has more specific access technology knowledge, we should use that and not override it on the next registration state poll. So instead, implement the generic access technology update from registration state in the broadband modem base class' load_access_technologies() hook. Thus, modem classes with more specific checking (which override MMBroadbandModem's implementation) will never fight with generic checking, while modems that don't (and thus actually need the generic checking) still get some basic access technology handling.
2013-01-14iface-modem-cdma: get CDMA1x Serving System during QCDM registrationDan Williams
We want the SID/NID even when AT Serving System checks are disabled, otherwise the SID/NID don't get filled at all. QCDM doesn't need the SID/NID to determine registration, so the values are informational only and don't affect registration state. But we still want to export them via the API.
2013-01-14trivial: fix commentDan Williams
2013-01-03iface-modem-3gpp,iface-modem-cdma: check for deallocated ↵Ben Chan
RegistrationCheckContext This patch fixes a crash in periodic_registration_checks_ready() due to access of an already deallocated RegistrationCheckContext. Thread 0 *CRASHED* ( SIGSEGV @ 0x00000000 ) 0x7fc344d355cd [ModemManager] - mm-iface-modem-cdma.c:1112 periodic_registration_checks_ready 0x7fc3449ea266 [libgio-2.0.so.0.3200.4] - gsimpleasyncresult.c:767 g_simple_async_result_complete 0x7fc3449ea368 [libgio-2.0.so.0.3200.4] - gsimpleasyncresult.c:779 complete_in_idle_cb 0x7fc344851dc4 [libglib-2.0.so.0.3200.4] - gmain.c:2539 g_main_context_dispatch 0x7fc344852147 [libglib-2.0.so.0.3200.4] - gmain.c:3146 g_main_context_iterate 0x7fc3448525a1 [libglib-2.0.so.0.3200.4] - gmain.c:3340 g_main_loop_run 0x7fc344d0f154 [ModemManager] - main.c:158 main 0x7fc34426a474 [libc-2.15.so] - libc-start.c:234 __libc_start_main 0x7fc344d0eb68 [ModemManager] + 0x0001bb68
2012-10-11core: make sure objects retrieved with g_object_get() are valid in the ifacesAleksander Morgado
The interfaces usually retrieve objects (e.g. skeletons) from the Modem object using g_object_get(), but we didn't make sure that these objects were actually valid before using them. This should clean up errors happening when the modem gets unplugged and still some actions are ongoing. Should fix https://bugzilla.gnome.org/show_bug.cgi?id=685933
2012-10-04libmm-glib: remove the `libmm-common.h' headerAleksander Morgado
Both the ModemManager daemon and the mmcli will now include `libmm-glib.h' only. We also handle two new special `_LIBMM_INSIDE_MM' and `LIBMM_INSIDE_MMCLI' symbols, which if included before the `libmm-glib.h' library allow us to: * Don't include the libmm-glib high level API in the ModemManager daemon, as the object names would clash with those in the core. * Define some of the methods of helper objects to be included only if compiling ModemManager daemon or the mmcli.
2012-08-29iface-modem-cdma: provide separate method to update access techAleksander Morgado
2012-08-29iface-modem-cdma: allow implementations to fully override registration checksAleksander Morgado
Implementations of the CDMA interface can either: * Implement run_registration_checks() or, * Implement the sub-steps of the generic registration checks sequence
2012-08-29iface-modem-cdma: minor fix in interface API namesAleksander Morgado
2012-08-28iface-modem-cdma: don't try to update anything if no skeleton availableAleksander Morgado
2012-08-06iface-modem-cdma: new steps to enable/disable unsolicited eventsAleksander Morgado
2012-08-06iface-modem-cdma: skip checks to see if unsolicited events are supportedAleksander Morgado
2012-07-16iface-modem-cdma: new steps to setup/cleanup unsolicited messagesAleksander Morgado
2012-07-13iface-modem-[3gpp|cdma]: remove contexts with timeouts when shutting downAleksander Morgado
Following the same logic as in commit 9ddcf92a, those contexts in the interface which contain the setup of a timeout are cleared before removing the DBus skeleton objects, so that we make sure they are not fired out once these have been disposed.
2012-03-30core: fatal errors in iface initializations force the modem into a FAILED stateAleksander Morgado
Modems which end up being found unusable (e.g. no SIM, fatal SIM error, no capabilities) will be exposed in DBus, but just with the Modem interface and in a FAILED state which allows no actions.
2012-03-16iface-modem-cdma: let initialization and enabling sequences get cancelledAleksander Morgado
2012-03-16core: new `Initializing' state in the global modem state machineAleksander Morgado
We need to define a state to be used while the modem is being initialized, so that we forbid any operation on the modem on already exported interfaces, while there are interfaces pending to get exported. This Initializing state will also cover the state between having the SIM unlocked (which launches re-initialization) and being completely initialized.
2012-03-16base-modem: new port getters and peekersAleksander Morgado
* mm_base_modem_peek_port_* () will return either a port object (no new reference), or NULL if none available. You would usually peek() a port if you're going to use it just in the current method, as there is no way to that reference to get invalid (we're single threaded). * mm_base_modem_get_port_* () will return either NEW references to valid port objects, or NULL if none available. And, you would usually get() a port, whenever you want the port object to be valid even out of the current method, for example when keeping it in the context of an async operation. Also, we need to consider that the primary AT port MAY BE NULL when you peek() or get() it. This is due to the fact that we may be releasing ports (due to device disconnection) in the middle of async operations.
2012-03-16libmm-common: `MMSimpleStatus' won't be considered internal any moreAleksander Morgado
Renamed `MMCommonSimpleProperties' to `MMSimpleStatus', and removed the `MMSimpleStatusProperties' provided in libmm-glib. We'll just use the original one from libmm-common always.
2012-03-16core: remove uses of `MMModemStateReason'Aleksander Morgado
Use `MMModemStateChangeReason' instead.
2012-03-16iface-modem-cdma: include policy authorization checksAleksander Morgado
2012-03-15core: don't pass primary port to interface initializationsAleksander Morgado
They will all get it themselves.
2012-03-15iface-modem: s/access_tech/access_technologiesAleksander Morgado
2012-03-15iface-modem-cdma: CDMA bearer creation removedAleksander Morgado
2012-03-15api,dbus: don't return immediate CDMA activation errorsAleksander Morgado
Seems like an unnecessary complication, as the client anyway needs to handle asynchronously reported errors.
2012-03-15iface-modem-cdma: bind CDMA-specific properties for the simple statusAleksander Morgado
2012-03-15iface-modem-cdma: let caller decide the maximum registration timeoutAleksander Morgado
2012-03-15iface-modem-cdma: provide a method to register in the CDMA networkAleksander Morgado
This will really not be like the 3GPP method. In 3GPP we can request to do auto-registration, or request to lock to a specific Operator. Once that done, we wait for unsolicited registration messages and also perform peridic registration checks. In the case of the CDMA network, the registration seems to be always automatic. Therefore, this method to register in the CDMA network will just make sure that we got registered, by waiting up to N seconds while doing periodic registration checks.
2012-03-15bearer-cdma: avoid the need of the modem object during new_finish()Aleksander Morgado