AgeCommit message (Collapse)AuthorFilesLines
3 dayslibmbim-glib: handle explicit '+' on positive numbersHEADmasterDavid McCullough1-1/+1
5 daysplugin: improve probing decision logic for QMI and MBIMAleksander Morgado1-17/+2
So, we may have modems with multiple /dev/cdc-wdm ports, like Ericsson modems, where only 1 of them is MBIM. With the previous logic, we would probe all /dev/cdc-wdm ports for MBIM as soon as one of the ports was handled by the cdc_mbim driver. That is totally not optimal, as we are already know that they are not MBIM (not handled by cdc_mbim). Instead, fix the logic to just probe for MBIM or QMI if the actual driver managing the port is MBIM or QMI.
2014-07-17broadband-modem-mbim: increase timeout for powering modem up and downBen Chan1-1/+1
It's been observed that some modems occasionally take a long time to power down (which may be due to some shutdown sequence that involves communicating with network). This patch increases the timeout for powering modem up and down from 10s to 20s.
2014-07-17bearer-mbim: increase disconnect timeoutBen Chan1-1/+1
It's been observed that modems may take a long time to disconnect from the network under certain network conditions. This patch increases the timeout for the MBIM_CID_CONNECT set command in the disconnect sequence from 10s to 30s.
2014-07-11polkit: fix Location.Setup() authorization rulesAleksander Morgado1-1/+1
2014-07-11broadband-modem-mbim: VZ20M returns ERROR_PIN_REQUIRED in PIN query responseAleksander Morgado1-1/+9
VID/PID: 258d:e000 Instead of returning success and the PIN type + PIN status + Remaining attempts, this modem returns a plain ERROR_PIN_REQUIRED error, so try to handle that...
2014-07-09broadband-modem-mbim: reset strings to NULL, not 0Aleksander Morgado1-2/+2
2014-07-09broadband-modem-mbim: update_registration_info immune to null pointers passedkuonirat1-2/+2
2014-07-06sim: rename 'MMSim' to 'MMBaseSim'aleksander/base-object-renamesAleksander Morgado37-615/+614
Just so that we don't have same header names in src/ and /libmm-glib.
2014-07-06sms: rename 'MMSms' to 'MMBaseSms'Aleksander Morgado15-389/+384
Just so that we don't have same header names in src/ and /libmm-glib.
2014-07-06bearer: rename 'MMBearer' to 'MMBaseBearer'Aleksander Morgado42-558/+554
Just so that we don't have same header names in src/ and /libmm-glib.
2014-07-06manager: rename 'MMManager' to 'MMBaseManager'Aleksander Morgado5-132/+132
Just so that we don't have same header names in src/ and /libmm-glib.
2014-07-04huawei: enable GPS_UNMANAGED for Huawei modemsDavid McCullough1-59/+78
Signed-off-by: David McCullough <>
2014-07-04option,hso: add missing GPS unamanged capabilityAleksander Morgado1-1/+3
2014-07-04huawei: close GPS port once GPS has been disabledAleksander Morgado1-0/+6
2014-07-03libqcdm: new 'reset' testerAleksander Morgado3-1/+272
Just like 'modepref', but not doing any mode changes, just OFFLINE+RESET.
2014-07-03huawei: GPS support for MU609/MU909David McCullough3-2/+337
Implement GPS support on the MU609 and MU090 Huawei modules. Its highly likely the commands are the same for other Huawei modems and it just needs to be activated via udev rules that flag the GPS port with ID_MM_HUAWEI_GPS_PORT=1. There are a lot of options that can be tweaked on the Huawei GPS setup, this code just chooses a simple default for unassisted, standalone GPS operation. Signed-off-by: David McCullough <>
2014-07-02cinterion: allow 'unmanaged' GPS setupAleksander Morgado1-23/+44
2014-07-02option,hso: print port type before parsingAleksander Morgado1-0/+1
2014-07-02option,hso: allow 'unmanaged' GPS setupAleksander Morgado1-62/+83
2014-07-02location: new 'unmanaged' GPS setupAleksander Morgado4-11/+64
Standard GPS setup (raw/nmea) will both enable the GPS module and take full control of the GPS port. This prevents other processes from reading the NMEA traces from e.g. a tty. In order to handle this, a new 'unmanaged' GPS location source is introduced, which will just enable/disable the GPS module, without reading anything from the GPS port. Of course, both raw/nmea and unmanaged setups cannot be enabled at the same time.
2014-07-01bearer-mbim: ignore empty DNS server addressesDan Williams1-12/+18
2014-07-01cinterion: enable GPS location reporting for the PHS8 in QMI-modeAleksander Morgado7-335/+666
The PHS8 in QMI-mode doesn't support GPS location retrieval via QMI, so we will fallback to use the AT-based setup and the TTY for reading NMEA traces.
2014-07-01ifaces: always include <libmm-glib.h>Aleksander Morgado5-0/+15
As they all use the 'MMSimpleStatus' type.
2014-07-01huawei: avoid AT^GETPORTMODE in Huawei MU609David McCullough2-1/+6
The MU609 modems from Huawei have a bug (confirmed by Huawei) that causes the modem to reset if AT^GETPORTMODE is issued. I have provided and example udev rule I use to disable this command as a patch, feel free to drop that if its not acceptable. Since I cannot tell the modem type from within the udev rules this is less specific than my previous code based patch, but much simpler ;-) I have two modems that share the same USB ID, however, neither supports the ^GETPORTMODE command (and one of them crashes when it is issued). Perhaps someone with a Huawei that supports ^GETPORTMODE can check their USB ID's and see if they clash. Here is a comment from the Huawei devs: > We confirmed this is a issue. This is Qualcomm baseband command at Data > Card. We didn’t delete and block it. We will fix this issue in next FW. > Thank you very much. Sign-off-by: David McCullough <>
2014-06-27cinterion: enable GPS location reporting for the PHS8 in AT-modeAleksander Morgado4-3/+376
This enables support for GPS location reporting when the PHS8 is NOT used in QMI mode.
2014-06-27modem-helpers: don't return any result if an error happens when parsing CPMS=?Aleksander Morgado2-15/+33
We shouldn't rely on the caller to cleanup intermediate results when returning an error.
2014-06-25modem-helpers: improve +CMTI indication regexAleksander Morgado1-1/+1
Allow whitespaces added in several places, like between the comma and the index, which is what the Cinterion PHS8 does: <CR><LF>+CMTI: "MT", 5<CR><LF>
2014-06-25cinterion: update default setting for new SMS indicationsAleksander Morgado1-9/+215
The setup in Cinterion modems goes as follows: AT+CNMI=<mode>[, <mt>[, <bm>[, <ds>[, <bfr>]]]] For each field, several setups are available, so we could use a default value, as we were doing until now (+CNMI=2,1,2,2,1). BUT, not every Cinterion modem allows the same set of settings. For example, the new PHS8 only allows '0' for the <ds> value: AT+CNMI=? +CNMI: (0,1,2),(0,1),(0,2),(0),(1) So, instead of hardcoding the setup, try to find the best suitable one for each modem. We'll parse the +CNMI=? test response to know which values are supported during the messaging support check, which is run once during initialization.
2014-06-25cinterion: new 'AT+CNMI=?' parser helperAleksander Morgado3-0/+278
2014-06-23base-modem: quicker find matching cdc-wdm QMI or MBIM portsAleksander Morgado1-202/+48
2014-06-23huawei: quicker find matching cdc-wdm AT portAleksander Morgado1-68/+15
Without using a new GUdevClient. Based on a patch from Dan Williams <>
2014-06-23port: store parent sysfs path in each MMPortAleksander Morgado20-18/+75
2014-06-23huawei: flag /dev/cdc-wdm as primary if no primary found alreadyAleksander Morgado1-2/+21
2014-06-23huawei: setup unsolicited message handlers also in the AT cdc-wdm portsAleksander Morgado1-52/+79
2014-06-23huawei: use the cdc-wdm port dialing if availableAleksander Morgado3-27/+177
With the new 'huawei-cdc-ncm' driver in the kernel, we now may get a /dev/cdc-wdm AT-capable port exposed by the Huawei device. If so, we must use this port for NDISDUP dialling in order to get the network interface connected.
2014-06-22build: ignore test filesAleksander Morgado1-0/+2
2014-06-22build: avoid using 'INCLUDES' in Makefile.amAleksander Morgado2-12/+18
Avoids warnings during build; e.g.: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
2014-06-20bearer-mbim: fix disconnect error handling case splitPrathmesh Prabhu1-1/+1
The first case, with no error, needs to check that there was no original error. Currently, if an error occurs and the resulting NwError is parsed correctly, the case split treats it as a no-error case.
2014-06-19modem-helpers-mbim: map more MbimNwError to MMMobileEquipmentErrorPrathmesh Prabhu1-0/+4
Commit 55e40ea b1ae81a in libmbim ("libmbim-glib: add additional GMM cause codes to MbimNwError") added one more GMM cause code to MbimNwError. This patch maps that to MMMobileEquipmentError. This patch requires libmbim >= 1.9.0
2014-06-18bearer-mbim: disconnect attempt should succeed if bearer is already disconnectedPrathmesh Prabhu1-25/+39
When trying to disconnect bearer, if the modem responds with MBIM_STATUS_ERROR_CONTEXT_NOT_ACTIVATED, take it to mean that the bearer has already been disconnected.
2014-06-18icera: fix 'sometimes-uninitialized' variable issuesBen Chan2-3/+3
2014-06-16iface-modem-messaging: don't skip MT storage when reading if it's the only oneAleksander Morgado1-4/+6
2014-06-13merge: fix IPv6 support and operationDan Williams22-302/+1478
Notable changes include reporting all available IP configruation information in the bearer IP details, even if the method is DHCP, in which case the client should apply the given configuration and then proceed with DHCP/PPP/SLAAC/etc addressing mechanisms. QMI, MBIM, and some other plugins have been switched to the "STATIC" configuration method from DHCP when the firmware supplies all the necessary details.
2014-06-13broadband-bearer-mbm: support IPv6 DNS and use static IPv4 configurationDan Williams5-0/+532
2014-06-13broadband-bearer-qmi: support IPv6 configuration and use static for IPv4Dan Williams1-111/+195
2014-06-13cli: print IP details for all valid bearer typesDan Williams1-34/+38
Even DHCP or PPP may have some IP details, like the link-local address for IPv6 bearers.
2014-06-13bearer-mbim: use DHCP method when only an IPv6 link-local address is foundDan Williams1-0/+8
When only given a link-local address, then SLAAC must be used to retrieve the real prefix.
2014-06-13api: update documentation about IPv6 bearer methodsDan Williams2-6/+15
Even if the IPv6 bearer method is DHCP, the client should use SLAAC (eg, IPv6 Router Solicitations, Router Adverisements, and possibly DHCPv6) to determine the correct prefix and DNS information. In some cases, even with the DHCP method, and IPv6 "address" will be given which should be assigned to the data port before beginning an IP addressing as the mobile network may expect this address to be used.
2014-06-13broadband-bearer-sierra: use Icera authentication for Icera devicesDan Williams4-6/+89
Devices with Icera chipsets (USB305) don't support the Qualcomm proprietary $QCPDPP command, and we must use the Icera command instead. Otherwise authenticated bearer creation will fail.