summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-08-19broadband-modem-qmi: fix object logging with WITH_NEWEST_QMI_COMMANDSJustin Standring1-9/+17
mm-broadband-modem-qmi.c: In function 'common_signal_info_get_quality': mm-broadband-modem-qmi.c:1469:21: error: 'self' undeclared (first use in this function) mm_obj_dbg (self, "RSSI (CDMA): %d dBm", cdma1x_rssi); ^~~~ mm-broadband-modem-qmi.c:1469:21: note: each undeclared identifier is reported only once for each function it appears in mm_obj_dbg (self, "RSSI (CDMA): %d dBm", cdma1x_rssi); ^~~~ mm-broadband-modem-qmi.c: In function 'process_gsm_info': mm-broadband-modem-qmi.c:2992:25: error: 'self' undeclared (first use in this function) mm_obj_dbg (self, "no GSM service reported"); ^~~~ mm-broadband-modem-qmi.c: In function 'process_wcdma_info': mm-broadband-modem-qmi.c:3100:25: error: 'self' undeclared (first use in this function) mm_obj_dbg (self, "no WCDMA service reported"); ^~~~ mm-broadband-modem-qmi.c: In function 'process_lte_info': mm-broadband-modem-qmi.c:3209:25: error: 'self' undeclared (first use in this function) mm_obj_dbg (self, "no LTE service reported"); ^~~~ mm-broadband-modem-qmi.c: In function 'config_signal_info_ready': mm-broadband-modem-qmi.c:4890:21: error: 'self' undeclared (first use in this function) mm_obj_dbg (self, "QMI operation failed: '%s'", error->message); ^~~~ Signed-off-by: Justin Standring <justin.standring@taitradio.com> (cherry picked from commit 6ec12add1ba6625a8470ae3cf7b30cefcf28d503)
2020-08-19broadband-modem-qmi: fix parsing of USSD indications with UTF-16 dataAleksander Morgado1-1/+1
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/240 (cherry picked from commit e98bc7cc0803595db8eb498817fb0d5f99d25813)
2020-08-19cinterion: quote user/password strings in AT^SGAUTH callsAleksander Morgado1-6/+11
The ELS61 doesn't like authentication given without quotes: [modem3/ttyACM1/at] --> 'AT^SGAUTH=8,1,tm,t-mobile<CR>' [modem3/ttyACM1/at] <-- '<CR><LF>+CME ERROR: 4<CR><LF>' Only when user/pass strings are quoted it works: [modem6/ttyACM1/at] --> 'AT^SGAUTH=8,1,"t-mobile","tm"<CR>' [modem6/ttyACM1/at] <-- '<CR><LF>OK<CR><LF>' (cherry picked from commit a131c6953a0a24a6ed8c365cb5e398fa5e52afcf)
2020-08-19cinterion: if user OR password given, don't set the other as (null)Aleksander Morgado1-1/+5
[modem2/ttyACM1/at] --> 'AT^SGAUTH=8,1,t-d1,(null)<CR>' [modem2/ttyACM1/at] <-- '<CR><LF>+CME ERROR: 4<CR><LF>' We should use an empty string instead. (cherry picked from commit 0a89a9ae4ee62ba36b616fc444a866d61c203696)
2020-08-19cinterion: increase SWWAN connection attempt timeoutAleksander Morgado1-1/+1
It's critical not to timeout early on devices with AT ports, or we may end up flagging the modem as invalid. ModemManager[26829]: <debug> [1593097973.552712] [modem1/ttyACM0/at] --> 'AT^SWWAN=1,2,1<CR>' .... ModemManager[26829]: <debug> [1593098064.195217] [modem1] couldn't connect bearer: Serial command timed out .... ModemManager[26829]: <error> [1593098091.167987] [modem1] port ttyACM0 timed out 10 consecutive times, marking modem as invalid (cherry picked from commit e933fe14130b20785b6ddd2993a8fc982976c7af)
2020-08-19iface-modem-signal: remove unneeded skeleton clear attemptAleksander Morgado1-1/+0
It won't do anything because clear_values() tries to get the skeleton from the modem object, and the skeleton hasn't been set at that point. (cherry picked from commit 3d138f9f80823d2caafbc5117329b43472fe7d45)
2020-08-19cinterion,signal: ^SMONI=? support check may be cachedAleksander Morgado1-1/+1
(cherry picked from commit c79dcf794041724b5504a9576b07c1e53ca0affb)
2020-08-19cinterion,signal: report error from parent signal support checkAleksander Morgado1-3/+5
(cherry picked from commit ee262a473dcfd5702f66c532d42285c2763bad11)
2020-08-19cinterion,signal: minor coding style fixesAleksander Morgado1-9/+8
(cherry picked from commit 2cb8e5ef5d30330442af152fa7d65ec7cc612e89)
2020-08-19mbim,signal: make sure output pointers are always setAleksander Morgado1-14/+6
E.g. if 'gsm' pointer is given, make sure it's always set (either to a MMSignal or to NULL). (cherry picked from commit 10ee7f4cd9d8af46822959fc84055bac45f5c56b)
2020-08-19plugin: define an autofree value to NULLAdrien Plazas1-1/+1
This satisfies -Werror=maybe-uninitialized. (cherry picked from commit 6df9cc084489a3aa8ab06b1e87f597b96dc79ffa)
2020-08-19telit: added port type hints for default MEx10G1 compositionDaniele Palmas1-1/+6
While at this change also the previous generic reference to ME910 in order to differentiate between ME910C1 (based on MDM9206) and MEx10G1 (based on MDM9205). (cherry picked from commit fff47478cc5887176830a5debe2c4204434c222f)
2020-08-19libmm-glib,location: avoid warnings when no traces availableAleksander Morgado1-2/+3
ModemManager[201411]: <debug> [1593417744.011884] [modem0/ttyUSB1/gps] <-- '$GPVTG,,T,,M,,N,,K,N*2C<CR><LF>$GPGSA,A,1,,,,,,,,,,,,,,,*1E<CR><LF>$GPGGA,,,,,,0,,,,,,,,*66<CR><LF>$GPRMC,,V,,,,,,,,,,N*53<CR><LF>' (ModemManager:201411): GLib-CRITICAL **: 10:02:24.054: g_strjoinv: assertion 'str_array != NULL' failed Thread 1 "ModemManager" received signal SIGTRAP, Trace/breakpoint trap. 0x00007ffff7832473 in g_logv () from /usr/lib/libglib-2.0.so.0 (gdb) bt #0 0x00007ffff7832473 in g_logv () at /usr/lib/libglib-2.0.so.0 #1 0x00007ffff78326f0 in g_log () at /usr/lib/libglib-2.0.so.0 #2 0x00007ffff7846b5e in g_strjoinv () at /usr/lib/libglib-2.0.so.0 #3 0x00007ffff7ee9663 in mm_location_gps_nmea_get_string_variant (self=0x5555557dde50) at mm-location-gps-nmea.c:246 #4 0x00005555555e7c47 in build_location_dictionary (previous=0x0, location_3gpp=0x55555573e660, location_gps_nmea=0x5555557dde50, location_gps_raw=0x0, location_cdma_bs=0x0) at mm-iface-modem-location.c:183 ... (gdb) fr 3 #3 0x00007ffff7ee9663 in mm_location_gps_nmea_get_string_variant (self=0x5555557dde50) at mm-location-gps-nmea.c:246 246 built = g_strjoinv ("\r\n", traces); (gdb) p traces $1 = (GStrv) 0x0 (cherry picked from commit 619b054e5c874844a73594a724b4e5ce5ec18b6d)
2020-06-23build: post-release version bump to 1.14.1Aleksander Morgado1-1/+1
2020-06-23release: bump version to 1.14.01.14.0Aleksander Morgado1-4/+4
2020-06-22u-blox: always ignore M8 and M9 GPS modulesAleksander Morgado1-0/+2
2020-06-22blacklist: add chinese clone of Arduino nanoAleksander Morgado1-0/+3
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/228
2020-06-20build: require libqmi 1.26.0Aleksander Morgado1-1/+1
2020-06-19NEWS: add info about MBIM-powered Cinterion devicesAleksander Morgado1-0/+1
2020-06-19cinterion: added port type hints for the mPLS62-w in MBIM modeAleksander Morgado1-0/+12
T: Bus=01 Lev=02 Prnt=04 Port=01 Cnt=01 Dev#= 40 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=1e2d ProdID=005d Rev=17.30 S: Manufacturer=Cinterion Wireless Modules S: Product=PLSx C: #Ifs=12 Cfg#= 1 Atr=e0 MxPwr=100mA I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=cdc_acm I: If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm I: If#=0xa Alt= 1 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim I: If#=0xb Alt= 2 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim I: If#=0x2 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=00 Driver=cdc_acm I: If#=0x3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm I: If#=0x4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=00 Driver=cdc_acm I: If#=0x5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm I: If#=0x6 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=00 Driver=cdc_acm I: If#=0x7 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm I: If#=0x8 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=00 Driver=cdc_acm I: If#=0x9 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
2020-06-19cinterion: allow MBIM-powered devicesAleksander Morgado1-0/+16
Like the mPLS62-w when setup to be controlled in MBIM mode instead of plain AT commands.
2020-06-18build: require libmbim 1.24.0Aleksander Morgado1-1/+1
2020-06-17mm-kernel-device: give cmp a total orderEric Caruso1-0/+3
This allows MMKernelDevice::cmp to compare two kernel devices with different object types, which means that subclasses can continue to only handle comparisons with their own type. The order may not be stable across builds.
2020-06-16AUTHORS: update with latest commit statsAleksander Morgado1-5/+18
2020-06-16quectel: add port type hints for EG95Brendan Peter1-0/+10
2020-06-12broadband-modem-qmi: also build 5GS reg state from Serving SystemAleksander Morgado3-0/+13
2020-06-12broadband-modem-qmi: avoid using stale EPS registration stateAleksander Morgado1-3/+10
When the device goes from LTE to UMTS, we must make sure we also always update the EPS registration state as unknown, or the built consolidated state will be wrong. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/225
2020-06-05broadband-modem-qmi: switch USSD state to idle when ussd session is ↵Maxim Anisimov1-0/+34
terminated by network The cellular operator can break the interactive USSD session. In this case, it is necessary to process this situation otherwise --3gpp-ussd-initiate or --3gpp-ussd-respond will give an error. Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2020-06-05cli: make control chars in strings are escaped correctly for json outputMaxim Anisimov1-2/+45
We need to change json output escaping according to this https://bugzilla.gnome.org/show_bug.cgi?id=730425 Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2020-06-05sms-part-3gpp: fix unicode names in sms decode iconv() operationsMaxim Anisimov1-3/+3
So that the limited iconv() in OpenWRT supports the conversion properly. Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2020-06-04build: bump version to 1.13.900 (1.14-rc1)1.14-rc1Aleksander Morgado1-1/+1
2020-06-04NEWS: add details about the plugin configure optionsAleksander Morgado1-0/+8
2020-06-04filter: setup automatic per-vid checks in the plugin whitelistAleksander Morgado6-1/+67
Until now, the plugin whitelist rule in the filter would only handle those plugins that require specific udev tags, and those that had explicit full vid:pid pairs. This update makes a new implicit automatic whitelist for all devices that match any of the vids managed by the different plugins. Looking at the current list of devices in the blacklist and greylist maintained by ModemManager, there are no devices falling under the list of supported plugin vids that would need to be blacklisted; except for u-blox GPS modules: huawei -> 0x12d1 -> None in blacklist/greylist thuraya -> 0x1a26 -> None in blacklist/greylist telit -> 0x1bc7 -> None in blacklist/greylist dLink -> 0x2001 -> None in blacklist/greylist wavecom -> 0x114f -> None in blacklist/greylist x22x -> 0x1bbb,0x0b3c -> None in blacklist/greylist anydata -> 0x16d5 -> None in blacklist/greylist quectel -> 0x2c7c -> None in blacklist/greylist haier -> 0x201e -> None in blacklist/greylist novatel -> 0x1410 -> None in blacklist/greylist dell -> 0x413c -> None in blacklist/greylist option -> 0x0af0,0x1931 -> None in blacklist/greylist nokia -> 0x0421 -> None in blacklist/greylist cinterion -> 0x1e2d,0x0681 -> None in blacklist/greylist simtech -> 0x1e0e -> None in blacklist/greylist iridium -> 0x1edd -> None in blacklist/greylist pantech -> 0x106c -> None in blacklist/greylist longcheer -> 0x1c9e,0x1bbb -> None in blacklist/greylist linktop -> 0x230d -> None in blacklist/greylist sierra -> 0x1199 -> None in blacklist/greylist ublox -> 0x1546 -------------> GPS chips blacklisted !!!!! foxconn -> 0x0489 -> None in blacklist/greylist broadmobi -> 0x2020 -> None in blacklist/greylist fibocom -> 0x2cb7 -> None in blacklist/greylist tplink -> 0x2357 -> None in blacklist/greylist zte -> 0x19d2 -> None in blacklist/greylist The rules used to blacklist the u-blox GPS chips have already been moved to the u-blox plugin itself, and now they use the broader ID_MM_DEVICE_IGNORE tag that applies in all filter modes.
2020-06-04ublox: fully ignore GPS devices with plugin-installed rulesAleksander Morgado3-5/+6
Instead of setting up the ID_MM_TTY_BLACKLIST tag used in 'legacy' filter mode, tag all known u-blox GPS devices with the broader ID_MM_DEVICE_IGNORE tag that applies under all filter modes. Also, make this rules be installed by the plugin itself, because at the end, it is the u-blox plugin the one attempting to probe all devices with vid 0x1546.
2020-06-04NEWS: update MBIM reset operation info to include Qualcomm devicesAleksander Morgado1-1/+1
We're using QMI over MBIM to perform the reset if the device is QMI based.
2020-06-03build: require libmbim 1.24-rc1Aleksander Morgado1-1/+1
2020-06-03NEWS: update for 1.14.0Aleksander Morgado1-0/+126
2020-06-03docs,libmm-glib: add 1.14 indexAleksander Morgado1-0/+4
2020-06-02wavecom: break loop matching 2G bands if exact combination foundAleksander Morgado1-1/+3
2020-06-02wavecom: port to use g_autoptr() setupAleksander Morgado1-71/+42
2020-06-02wavecom: fix GTask return handling when loading current capsAleksander Morgado1-12/+14
2020-06-01huawei: ignore NDISDUP disconnection errorsAleksander Morgado1-8/+5
Running NDISDUP=1,0 on an already disconnected bearer/context will report ERROR, so we can really ignore the result of the command, because we're anyway going to get the correct bearer/context status later on with the NDISSTATQRY checks.
2020-06-01huawei: don't delay reporting network initiated disconnectsAleksander Morgado2-64/+2
When a network-initiated event is received telling us that a bearer/context is disconnected, we should handle and process it right away, without thinking on whether there is going to be a user-requested disconnect afterwards or not. This effectively reverts the changes introduced in commit 21a5aaf4fe6934aad2e6c770aa4bdffa3ad29f9d, which looks like was done to handle synchronization issues with upper layers (e.g. with NetworkManager or Shill). Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/205
2020-06-01filter: 'strict' is the new defaultAleksander Morgado1-1/+1
The 'strict' filter policy is less invasive, as it will not touch TTYs unless there are clear indications that it may be a modem. Under this mode, the ModemManager-provided blacklist database is not used.
2020-06-01filter: rename 'default' to 'legacy'Aleksander Morgado2-6/+6
The old 'default' policy is renamed to 'legacy', and is considered now deprecated.
2020-06-01shared-qmi: require minimum set of NMEA types before starting GNSS engineAleksander Morgado2-5/+245
2020-06-01ci: always build libqmi with basic collectionAleksander Morgado1-3/+3
Which must be the minimum set of supported messages required by ModemManager.
2020-06-01broadband-modem-qmi: plug memleak when changing current firmwareAleksander Morgado1-0/+2
==80079== 104 (40 direct, 64 indirect) bytes in 1 blocks are definitely lost in loss record 4,761 of 5,232 ==80079== at 0x483977F: malloc (vg_replace_malloc.c:309) ==80079== by 0x5025AE9: g_malloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x5006223: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x505B0F4: g_array_sized_new (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x2008A3: firmware_change_current (mm-broadband-modem-qmi.c:8426) ==80079== by 0x1AB5F3: select_auth_ready (mm-iface-modem-firmware.c:225) ==80079== by 0x4E68653: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x4E6DA26: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x17402E: authorize_ready (mm-base-modem.c:1363) ==80079== by 0x4E68653: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x4E6DA26: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x15366D: check_authorization_ready (mm-auth-provider.c:99)
2020-06-01iface-modem-firmware: plug memleak when listing imagesAleksander Morgado1-4/+7
==80079== 1,377 (48 direct, 1,329 indirect) bytes in 1 blocks are definitely lost in loss record 5,200 of 5,232 ==80079== at 0x483977F: malloc (vg_replace_malloc.c:309) ==80079== by 0x5025AE9: g_malloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x5006223: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x4FEB59B: ??? (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x4FEE378: g_variant_builder_end (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x48F8314: mm_firmware_properties_get_dictionary (mm-firmware-properties.c:337) ==80079== by 0x1AAF29: load_current_ready (mm-iface-modem-firmware.c:80) ==80079== by 0x4E68653: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x4E68688: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x502B58E: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x502D530: ??? (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x502E542: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.6400.2)
2020-05-29huawei: fix memory leak when parsing HCSQ responseLouis-Alexis Eyraud1-0/+1
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/220