aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2021-05-23base-bearer: report connection error on network initiated disconnectionsAleksander Morgado
By default, fallback to "unknown" mobile equipment error when the modem gets disconnected by the network and we don't have any way to know a more detailed reason.
2021-05-22api: update MMMobileEquipmentError enum valuesAleksander Morgado
Update the list of mobile equipment error codes according to v17.1.0 of 3GPP TS 27.007 (March 2021). A lot of the enum values that were prefixed with the 'GPRS_' keyword have now been flagged as deprecated, and a new enum name given to the corresponding value. The deprecated symbol names are kept in the compat support to avoid breaking API/ABI.
2021-05-23foxconn: setup FCC unlock stepAleksander Morgado
Use the new "DMS Foxconn Set FCC authentication" command to request the modem unlock during a power up operation. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/373
2021-05-03foxconn: don't assume parent location is availableAleksander Morgado
If ModemManager is not built with QMI support, the generic MBIM modem object will not have any location support, so we cannot assume that iface_modem_location_parent will be valid and that it will have all load_location_capabilities(), enable_location_gathering() and disable_location_gathering() implemented. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/362
2021-04-30core: strict return type in g_object_ref()Aleksander Morgado
This is now a requirement when using glib 2.56.
2021-04-30foxconn: add new MBIM QDU firmware update method supportFreedom Liu
Based on the QDU service newly added in libmbim, T99W175 module (vid: 0x105b) supports MBIM QDU based update.
2021-04-29icera: implement profile management supportAleksander Morgado
Using AT%IPDPCFG for authentication related profile settings management (querying, updating), and relying on the parent implementation for the remaining ones. And using AT%IPDPACT for activation status management (deactivate), while relying on the parent implementation for the activated check.
2021-04-29broadband-bearer: rely on profile management for the cid selectionAleksander Morgado
There is no longer need to perform all the CID selection logic in the broadband bearer connection procedure, we can rely on the new profile management operations to do the same thing. We can do this because we're sure that all the MMBroadbandModem objects implement the MMModem3gppProfileManager interface. Additionally, given that we now provide the profile ID value as part of the MMBearerConnectResult, we no longer need a custom mm_broadband_bearer_get_3gpp_cid() as we can use the generic mm_base_bearer_get_profile_id() for the same purpose.
2021-04-29foxconn: add support for the T99W175 moduleFreedom Liu
0x0489 is the vendor ID of T77W968, 0x105b is the vendor ID of T99W175. {0x105b, 0xe0b0},{0x105b, 0xe0b1} is T99W175 PCI device, used by Dell. {0x105b, 0xe0ab} is T99W175 PCI device, used by Lenovo. If the modem has an mbim port, create a MbimFoxconn object, regardless of what the product ID is. The firmware version format in the T99W175 was selected to have firmware version + carrier config version + apps version.
2021-04-29foxconn: change modem-foxconn-t77w968 to modem-mbim-foxconnFreedom Liu
Named the object in a more generic way.
2021-04-21plugins: generic: Add 'wwan' subsystem supportLoic Poulain
wwan is a new subsystem for WWAN devices, allowing to expose the WWAN device and its ports in a generic way. The sysfs hierarchy for such device is /sys/class/wwanX /sys/class/wwanX/wwanXpYP Where X is the WWAN device index, Y the port index and P the control protocol name (QMI, MBIM...). A control port is also exposed as character device in /dev. Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
2021-04-20quectel: set QGPSXTRA to enable assistance supportDylan Van Assche
Quectel modems require to enable XTRA GNSS assistance first with QGPSXTRA=1, before it can be used.
2021-04-14qcom-soc-plugin: add support for QRTR+IPA based setupsAleksander Morgado
2021-04-07fibocom: add port type hints for the NL668-AMZrshuo Zhang
2021-04-01modem-helpers: ip family normalization doesn't need log_objectAleksander Morgado
2021-03-31base-bearer: remove default IP family propertyAleksander Morgado
There is no point in providing a configurable default IP family in the bearer object, because we can always assume IPv4 as being the only default expected. Simplify the logic and also provide a new method to get the normalize the IP family, using IPv4 as default always.
2021-03-31cinterion: remove unused checkup of default IP familyAleksander Morgado
Looks like the logic is just there to write a debug log, as the selected IP family is not used anywhere else. Just remove this.
2021-03-21cinterion: make sure FALSE sets GError in parse_smong_response()Aleksander Morgado
The g_regex_match_full() method may return FALSE without setting the GError, so that case needs to be considered. In addition to that, the following g_assert() was not doing what it should have been, as it was comparing the address of the variable and not the variable itself; rework the code to avoid that as well: g_assert (access_tech != MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN);
2021-03-21cinterion: make sure FALSE sets GError in provcfg_response_to_cid()Aleksander Morgado
The g_regex_match_full() method may return FALSE without setting the GError, so that case needs to be considered. Reported by Jan Mazura. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/347
2021-03-21cinterion: allow '*' in Prov/Cfg responseAleksander Morgado
E.g. in a Cinterion PLS8-E (REVISION 04.004) to match the following line: ^SCFG: "MEopMode/Prov/Cfg","fallback*" Fix suggested by Jan Mazura. See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/347
2021-03-21quectel: ignore QGPSURCDylan Van Assche
QGPSURCs are not ignored and causes calls to be rejected in some cases
2021-03-12sierra: disable CPOL in the EM7345Aleksander Morgado
Using CPOL? in the EM7345 (firmware FIH7160_V1.1_MODEM_01.1349.12) ends up with the whole AT port stuck and non-responsive, which leads to flagging the modem as unusable later on as soon as 10 consecutive AT command timeouts happen. In order to avoid that, we explicitly disable all CPOL based features in this specific module. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/336
2021-03-10api,simple: new 'multiplex' setting in bearer propertiesAleksander Morgado
Both the Simple.Connect() and Modem.CreateBearer() are updated to allow a new 'multiplex' setting in the properties provided by the user in both of these methods. The new setting expects a MMBearerMultiplexSupport enum indicating what kind of multiplex needs the user has: * none: if multiplex must not be used. * requested: if multiplex should be used if available. * required: if multiplex must be used. The underlying implementations will take care of accepting or rejecting the setting depending on the system and modem capabilities.
2021-03-05zte: disable CMER/CIND support explicitlyLouis-Alexis Eyraud
It looks like when indicators are enabled in ZTE modems like the MF833V, the whole connection process is very unstable. The AT reference doesn't do any mention to +CIND/CMER/CIEV either, so we'll just disable all and use +CSQ based signal loading. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/303 Signed-off-by: Louis-Alexis Eyraud <louis-alexis.eyraud@sigfox.com>
2021-03-04base-modem: explicitly say if NET or TTY data ports are supportedAleksander Morgado
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-02-25broadband-modem-qmi: allow lookup of QMI for data without SIO portAleksander Morgado
2021-02-25base-modem: separate method to lookup exact port by nameAleksander Morgado
There's no point in returning a list of all ports with a given name, just provide a lookup method that returns the single port with the given name.
2021-02-24kernel-device: add get_interface_number() methodAleksander Morgado
We already have methods to query for interface specific attributes like class/subclass/protocol, so add a new one for the interface number, and make sure we use ATTRS{bInterfaceNumber} to load it always, instead of assuming the ID_USB_INTERFACE_NUM property is set.
2021-02-23cinterion: rework mno decoding to use str_to_utf8()Aleksander Morgado
2021-02-23cinterion: rework band encoding to use str_to_utf8()Aleksander Morgado
Also providing support to report errors when attempting to decode the strings.
2021-02-23helpers: rework normalize_operator() to use str_to_utf8()Aleksander Morgado
Instead of blindly assuming that we can take whatever string given as valid UTF-8, we'll always attempt to convert from the current modem charset into UTF-8. Before we were doing this for hex-encoded UCS2, but not for example for GSM-7. And due to the now applied GSM-7 conversion, the mf627a/mf627b +COPS parsing unit tests are updated accordingly, because when converting from an input string that contains byte 0x40 ('@' in UTF-8) as if it were GSM-7, the 0x40 is taken as character '¡', encoded as 0xc2,0xa1 in UTF-8).
2021-02-23cinterion: move sequence to set bands to private ctxAleksander Morgado
The sequence of commands is exclusively used during the set current bands operation, so there is no point in storing it in the private object data.
2021-02-23charsets: use new str_from_utf8() instead of ↵Aleksander Morgado
take_and_convert_to_current_charset()
2021-02-23charsets: make charset_gsm_unpacked_to_utf8() privateAleksander Morgado
Use the generic mm_modem_charset_bytearray_to_utf8() instead.
2021-02-23charsets: make charset_utf8_to_unpacked_gsm() privateAleksander Morgado
Use the generic mm_modem_charset_bytearray_from_utf8() instead.
2021-02-23charsets: make translit optional in utf8_to_unpacked_gsm()Aleksander Morgado
If the conversion is not fully compatible, the user of the method needs to request transliteration enabled explicitly in order to avoid returning errors in this method.
2021-02-23charsets: make translit optional in gsm_unpacked_to_utf8()Aleksander Morgado
Until now, this method would automatically apply transliteration; i.e. replacing characters with '?' when no direct translation was available. We can attempt to do that transliteration on strings that are not critical, e.g. the operator name reported by the network. But we should not do that on other types of strings, e.g. on SMS contents that may really have additional purposes than just being human-readable. This commit makes the transliteration option to be explicitly requested by the caller.
2021-02-23libmm-glib,common-helpers: make hexstr2bin() return a guint8 arrayAleksander Morgado
It makes much more sense than returning a gchar array, as gchar is signed.
2021-02-23libmm-glib,common-helpers: make hexstr2bin() accept input string lengthAleksander Morgado
Optionally given explicitly, and -1 can be used to assume it's NUL-terminated.
2021-02-23libmm-glib,common-helpers: make hexstr2bin() return a GErrorAleksander Morgado
This util method checks whether the input string is a valid hex string, so make sure we return a GError on failure.
2021-02-03cinterion: remove unused variablesAndrew Lassalle
2021-01-18simtech: fix updating bitmask during gps disablingLukas Senger
During disabling of gps sources the bitmask that keeps track of them is updated incorrectly. Instead of removing the current source, all other sources are removed from the mask. One problem that arises from this is, that when you enable GPS after it has been disabled completely (e.g. by disabling all GPS sources), the code will not send a "+CGPS=1,1" command because it incorrectly assumes that GPS is still enabled on the device.
2021-01-16zte: add 1 second delay after sim unlock to avoid IMSI reading issueLouis-Alexis Eyraud
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/306 Signed-off-by: Louis-Alexis Eyraud <louis-alexis.eyraud@sigfox.com>
2021-01-11telit: plug GPS data port leakAleksander Morgado
The _get_port_gps() returns a full reference, use _peek_port_gps() instead. See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/302
2020-12-19altair: make sure parse_vendor_pco_info() always returns an errorAleksander Morgado
The parse_vendor_pco_info() method was returning NULL without error if the pco info string was empty. Under this situation, the code would have tried to add a NULL MMPco into the pco_list list, which is not desired. Avoid this, by making sure a NULL return always sets an error.
2020-12-14cinterion: add AT primary/secondary port type hints for PLS8Aleksander Morgado
2020-12-14cinterion: add QCDM and GPS port type hints for PLS62Aleksander Morgado
2020-12-14cinterion: add PLS83 port type hintsAleksander Morgado
2020-12-03broadband-modem-mbim: Add MM_BROADBAND_MODEM_MBIM_QMI_UNSUPPORTEDTorsten Hilbrich
This property (initially set to FALSE) controls whether QMI over MBIM should never be considered. This property is set to TRUE for XMM-based MBIM devices as they don't support QMI. This fixes a probing delay of 15s on a Fibocom L850-GL device (2cb7:0007) found in the Lenovo T14 Gen 1. The establishing of a QMI connection was refused multiple time with MBIM error OperationNotAllowed. Only the timeout of 15s for this connection resumed the probing. The properties in the MMBroadbandModemMbim are only installed when WITH_QMI and QMI_MBIM_QMUX_SUPPORTED are set. Actually, this should only disable the PROP_QMI_UNSUPPORTED but as this is the only property this avoids the "unused variable 'self'" warnings/errors when trying to compile set_property and get_property without QMI support. This can be changed once other properties are needed. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/284
2020-11-25huawei: add GPS port type hints for Huawei ME906eThomas Dendale