aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2017-07-19altair-lte: port modem_create_bearer to use GTaskBen Chan
2017-07-19altair-lte: port modem_3gpp_run_registration_checks to use GTaskBen Chan
2017-07-19altair-lte: port disconnect_3gpp to use GTaskBen Chan
2017-07-19altair-lte: port connect_3gpp to use GTaskBen Chan
2017-07-19helpers: +CNUM parser doesn't return any errorAleksander Morgado
2017-07-18telit: add missing source_tag in g_task_report_new_error() callAleksander Morgado
Fixes: 1bd9935b5aece6c5999c96df1acec86cfc00e6b1
2017-07-18telit: fix minor typoAleksander Morgado
2017-07-18telit: fix modem_set_current_bands to use g_task_report_new_errorBen Chan
Commit acf101335 ("telit: port mm-broadband-modem-telit to use GTask") ported most of the modem_set_current_bands code to use GTask, but missed a few g_simple_async_report_error_in_idle calls, which potentially leads to an incorrect G_TASK cast in modem_set_current_bands_finish.
2017-07-17zte,icera: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17zte: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17simtech: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17option,hso: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17option: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17mtk: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17mbm: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17altair-lte: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17icera: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17huawei: skip unrequired explicit casts to GSimpleAsyncResultAleksander Morgado
2017-07-17huawei: fix async completion in 3gpp event handlers settingAleksander Morgado
2017-07-17huawei: fix async completion in voice event handlers settingAleksander Morgado
2017-07-17huawei: fix async completion in cdma event handlers settingAleksander Morgado
2017-07-17via: fix async completion in cdma event handlers settingAleksander Morgado
2017-07-12telit: fix memory leaks in unit testsBen Chan
2017-07-12telit: minor coding style fixesBen Chan
2017-07-12telit: remove unnecessary NULL checks for g_free / g_match_info_freeBen Chan
g_free() and g_match_info_free() already check if the given pointer is NULL and does nothing on a NULL pointer.
2017-07-12telit: fix memory leak in mm_telit_get_4g_mm_bandsBen Chan
2017-07-12telit: remove unused 'flags' variable in mm_telit_get_4g_mm_bandsBen Chan
2017-07-12ublox: fix memory leaks in unit testsBen Chan
2017-07-07novatel-lte: check error returned by g_task_propagate_error insteadBen Chan
When returning an enum value via g_task_return_int, some code assumes the enum value is always non-negative and thus considers that a negative value implies an error. This assumption could be invalidated if a negative value is later added to the enum. To make it less error prone to future changes, this patch modifies the code to check if the GError argument to g_task_propagate_error is populated instead.
2017-07-07cinterion: check error returned by g_task_propagate_error insteadBen Chan
When returning an enum value via g_task_return_int, some code assumes the enum value is always non-negative and thus considers that a negative value implies an error. This assumption could be invalidated if a negative value is later added to the enum. To make it less error prone to future changes, this patch modifies the code to check if the GError argument to g_task_propagate_error is populated instead.
2017-06-30telit: minor coding style fixesAleksander Morgado
Always name 'self' the object being implemented.
2017-06-30telit: port mm-broadband-modem-telit to use GTaskDaniele Palmas
2017-06-29telit: port mm-common-telit to use GTaskDaniele Palmas
2017-06-28enums: replace Roman numeral suffixes in MM_MODEM_BAND_EUTRAN_*Ben Chan
3GPP TS 36.101 Table 5.5-1 refers the E-UTRA operating bands as 1, 2, 3, ..., etc.
2017-06-16telit: fix #PSNT values interpretation for HSDPA and LTE modemsDaniele Palmas
Telit LTE modems use #PSNT: 4 for LTE access technology, and #PSNT: 5 for unknown access technology, while HSDPA modems use #PSNT: 4 for unknown access technology. This patch fixes those #PSNT values interpretation according to the modem capabilities.
2017-06-06cinterion: use ^SIND unsolicited messages for access tech reportingAleksander Morgado
If the modem supports ^SIND psinfo reporting, we enable the URC and flag the access technology polling unsupported, so that we only update access technology via the +CIEV URCs. E.g.: (ttyACM1): --> 'AT^SIND="psinfo",1<CR>' (ttyACM1): <-- '<CR><LF>^SIND: psinfo,1,10<CR><LF><CR><LF>OK<CR><LF>' Reporting initial access technologies... Modem /org/freedesktop/ModemManager1/Modem/0: access technology changed (unknown -> hsdpa, hsupa) ... (ttyACM1): <-- '<CR><LF>+CIEV: psinfo,4<CR><LF>' Modem /org/freedesktop/ModemManager1/Modem/0: access technology changed (hsdpa, hsupa -> edge) ...
2017-06-06iface-modem: if bands, capabilities or modes change, refresh signalAleksander Morgado
We also remove the explicit refresh request from the Cinterion plugin, as this is a generic action applicable to all modems that require polling for signal quality and/or access technology.
2017-06-06iface-modem: consolidate signal quality and access tech pollingAleksander Morgado
Plugins have two ways to update signal quality and access technology values: via unsolicited messages or via polling periodically. Instead of keeping separate contexts for polling signal quality and access technology values, we setup a common timeout to trigger both. This allows us to simplify in which case the explicit update is required, whenever one is needed to be explicitly updated, the other one should also be. The logic now also allows plugins to return an UNSUPPORTED error in either load_signal_quality() and/or load_access_technologies() to tell the interface logic that the polling of the specific item shouldn't be performed (e.g. if the updates are expected via unsolicited messages). If both signal quality and access technology polling is flagged as disabled, we totally disable the polling logic internally. The new SignalCheckContext is bound to the lifetime of the object so that we can keep the value of the supported flags until the object is destroyed.
2017-06-05build,dell: reorder rules lastAleksander Morgado
Dell plugin is a compilation of other plugins, move last.
2017-06-05build,telit: fix distcheckAleksander Morgado
2017-06-05telit: rework QSS unsolicited handler enabling logicAleksander Morgado
When the async method starts we store already the primary and the optional secondary port objects in the method context, keeping a full reference for each. When we parse the response for the enabling command, we just reuse the stored port objects, instead of re-querying the modem to get them, and this makes sure that the port objects where we want to set the unsolicited message handlers are still valid. If the ports are gone in the middle of the enabling operation, the handlers will be set without errors, even if the ports may likely get completely disposed when this async method context is disposed. Additionally, we make sure that we return an error also for the case where there is no secondary port and the enabling on the primary port failed. This patch also fixes the use of the at_command_full_finish() method to complete the at_command_full() async operation, to keep consistency.
2017-06-05telit: make sure QSS status values read are always knownAleksander Morgado
Given that the MMTelitQssStatus enums are mapped directly to the values read from the #QSS response, we need to make sure that we never return a value for which we don't have an enum defined. Also, use set_error() instead of the propagate_error() + error_new() combo.
2017-06-05telit: manage QSS transitionsCarlo Lobrano
Currently, Telit's SIM swap implementation is stateless and based on #QSS unsolicited messages 0/1 (SIM_REMOVED/SIM_INSERTED). However, the user might have configured the modem in order to provide a more detailed information, with #QSS values 2/3 (SIM UNLOCKED/SIM READY). In this case and with current implementation, even receiving "#QSS: 3" will trigger the "SIM swap" logic. The same issue might occur in other use cases too, i.e. with SIM locked or when the message is received from both USB ports. This patch makes SIM swap implementation stateful, and it considers as an actual SIM swap, only transitions from #QSS: 0 to #QSS: 1/2/3 and vice versa.
2017-06-02huawei: let the E3372 run NDISDUP via TTYAleksander Morgado
This modem ends up exposing a cdc-wdm port and a WWAN network interface, but the cdc-wdm port is totally unusable, it won't reply to any AT command or anything. Instead this modem can do NDISDUP via TTY, which is what the Windows drivers are also doing.
2017-05-30cinterion: retry GPS Engine activation up to 3 timesAleksander Morgado
The default setup with 100ms between GPS commands doesn't seem to be always enough for the Engine activation step: [1495016625.392972] (ttyACM1): --> 'AT^SGPSC="NMEA/Output","on"<CR>' [1495016625.503885] (ttyACM1): <-- '<CR><LF>^SGPSC: "Nmea/Output","on"<CR><LF><CR><LF><CR><LF>OK<CR><LF>' [1495016625.607650] (ttyACM1): --> 'AT^SGPSC="Power/Antenna","on"<CR>' [1495016625.697862] (ttyACM1): <-- '<CR><LF>^SGPSC: "Power/Antenna","on"<CR><LF><CR><LF>OK<CR><LF>' [1495016625.809393] (ttyACM1): --> 'AT^SGPSC="Engine","1"<CR>' [1495016625.895970] (ttyACM1): <-- '<CR><LF>+CME ERROR: 767<CR><LF>' We now setup up to 3 retries for the Engine activation step before returning an error, and we also update to 2000ms the wait time before the Engine activation command is run.
2017-05-30cinterion: support AT^SGPSC capable modemsAleksander Morgado
The AT^SGPSS command provides an easy way to just start/stop GPS, but unfortunately it isn't supported by all Cinterion modems. The AT^SGPSC command instead is more widely available but it requires several steps to start and stop the different elements of the GPS receiver. Implement support for both, preferring AT^SGPSSS if available and falling back to AT^SGPSC otherwise.
2017-05-30cinterion: setup GPS port only if GPS support detectedAleksander Morgado
i.e. if AT^SGPSS not supported, we don't even add traces handler to the GPS data port.
2017-05-30cinterion: flag PLS8 GPS data portAleksander Morgado
2017-05-30cinterion,location: refactor enable/disable and capabilities checksAleksander Morgado
When checking for location capabilities, we will make sure AT^SGPSS is supported and if it isn't we won't report GPS capabilities. The location enable and disable paths are refactored to make it easier to add possible new GPS commands to use instead of AT^SGPSS, if this isn't supported (e.g. in the PLS8 devices).
2017-05-30plugins: use G_N_ELEMENTS when iterating ports arrayAleksander Morgado