aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2016-08-31broadband-modem-huawei: implement Modem.Signal extended signal info interfaceDan Williams
Implement the detailed signal info interface for some Huawei 3GPP modems including those based on HiSilicon chipsets like the E3276. Known not to work on many Qualcomm-based Huawei modems like E392, E397, and E367 as they don't support the ^HCSQ command, but they do support QMI and so have access to the extended signal interface via QMI.
2016-08-29blacklist: add blacklist udev rule for U-blox7 GPS/GLOSNASS USB dongle.Tabor Kelly
Signed-off-by: Tabor Kelly <t.kelly@trailtech.net>
2016-08-15core: use MM-specific logging methods always instead of the generic GLib onesAleksander Morgado
2016-08-10core: minor coding style changesAleksander Morgado
2016-08-10modem: support SIM hot swapCarlo Lobrano
BaseModem added reprobe property. MMDevice added logic to recreate the modem if it is set invalid and "to reprobe" MMBroadbandModem * added initialization step for SIM hot swap: 1. keep dedicated ports open to listen to modem's unsolicited 2. dedicated error management in case of initialization failure due to SIM missing * added function to be called in order to act upon SIM insertion/removal: 1. close dedicated ports 2. set the modem to be reprobed 3. disable modem * added SIM HOT SWAP boolean property MMIfaceModem * added initialization step for SIM hot swap, if supported by the plugin * dedicated error management in case of initialization failure due to SIM missing
2016-08-06device: ignored ports are also owned by the device, so include them in lookupAleksander Morgado
2016-08-06udev: simpler check for rfcomm device namesAleksander Morgado
Just the same kind of match we use for cdc-wdm devices.
2016-08-06udev: remove ENV{DEVTYPE}!="usb_device" rulesAleksander Morgado
They're actually a subcase of SUBSYSTEM!="usb", which we apply just before.
2016-08-02base-call: formatting cleanupsDan Williams
2016-07-27broadband-modem/libqcdm: add signal strength from QCDM EVDO Pilot Sets log ↵Dan Williams
messages When a CDMA-only modem is registered with the EVDO network, its not possible to read signal strength in the following cases: 1) while a data connection is active on single-AT-port modems, because the AT port is used for PPP and not available for AT+CSQ, AT+CIND or vendor-specific signal strength commands 2) when the modem reports only CDMA 1x signal strength with AT+CSQ Now that we have a reasonable interpretation of RSSI from the QCDM EVDO Pilot Sets V2 log messgae, use that when other means of getting signal strength aren't available.
2016-07-27blacklist: include some more ArduinosLubomir Rintel
All "2a03 dog hunter AG" devices seem to be Arduinos. https://bugzilla.redhat.com/show_bug.cgi?id=1261040
2016-07-26iface-modem: inverted steps in update_lock_info_context_stepCarlo Lobrano
Inverted steps UPDATE_LOCK_INFO_CONTEXT_STEP_RETRIES and UPDATE_LOCK_INFO_CONTEXT_STEP_AFTER_UNLOCK. Soon after the unlock, the SIM can be busy and loading unlock retries might fail. When implemented, let run "after unlock" logic before any other step in update lock info, when SIM is not locked this change does not have any effect since "after unlock" is not executed.
2016-07-26build: updated copyright years up to 2016Aleksander Morgado
2016-07-20iface-modem: fix checking for single capabilitiesAleksander Morgado
The mm_iface_modem_is_*_only() checks were validating that all the other capabilities except for the ones being queried were unset, but the check wasn't explicitly checking that the actual capabilities being queried were set. This was making the check fail when capabilities == MM_MODEM_CAPABILITY_NONE. Reported-by: Matthew Stanger <stangerm2@gmail.com>
2016-07-15bearer-qmi: decide IP method during connection attemptAleksander Morgado
Deciding the IP method to use based on the underlying QMI port LLP should not be done when the bearer object is created, because the QMI port in use may not actually be open or have been opened at that time. During the connection attempt we do make sure the QMI port is open, so we should check the LLP to use just after that step.
2016-07-14broadband-modem-qmi: fix dhcp/static IP setting when kernel data format updatedAleksander Morgado
When the logic decided that we had to update the kernel data format to match the one configured in the WWAN network interface, we were not flagging the port LLP with the correct value, what resulted in NetworkManager trying to use dhclient on the raw-ip interface: dhclient[3257]: Unsupported device type 65534 for "wwan1" dhclient[3257]: dhclient[3257]: If you think you have received this message due to a bug rather dhclient[3257]: than a configuration issue please read the section on submitting dhclient[3257]: bugs on either our web page at www.isc.org or in the README file dhclient[3257]: before submitting a bug. These pages explain the proper dhclient[3257]: process and the information we find helpful for debugging.. dhclient[3257]: dhclient[3257]: exiting. Fix the internal LLP flag, so that Static IP addressing is requested for all raw-ip based interfaces.
2016-07-11bearer-mbim: use the context IP type MM asked to be activated instead of ↵Dan Williams
modem response MM never passes MBIM_CONTEXT_IP_TYPE_DEFAULT which would require paying attention to the ip_type in the reply to figure out what type the modem activated. Instead, MM always specifies the ip_type it wants to activate, and some modems (K5160) return a different type in the response. The modem is required to activate the type MM asks for or return an error, so if the activation was successful we can safely assume the modem activated the ip_type we want, and we can ignore the ip_type in the response.
2016-07-07broadband-modem-mbim: try to use FCC Auth through QMI-over-MBIM if power up ↵Aleksander Morgado
fails
2016-06-15broadband-bearer-mbim: log context IP type when connectingDan Williams
2016-06-01iface-modem-firmware: clarify log message about unsupported firmware interfaceDan Williams
2016-06-01broadband-modem: document why firmware/OMA interfaces are left enabled in ↵Dan Williams
FAILURE state
2016-05-28plugin-manager: protect mm_plugin_{major,minor}_versionTing-Yuan Huang
This patch makes declarations bind to definitions within the same module to prevent the potential ambiguity if referenced directly. AddressSanitizer think they violated one definition rule, although those symbols are accessed by address through their modules and do not depend on the order of the libararies loaded.
2016-05-03bearer-mbim: fine-tune bearer IP method reportingDan Williams
v4: modems/providers may not return DNS servers and not all modems support DHCP, so lack of DNS servers should not indicate a bearer IP method of "DHCP". IP config daemon/scripts already have to handle missing DNS anyway. v6: IPv6 requires SLAAC or DHCPv6 as part of the specification, so for now we assume modems will support it. Provide all the info the modem sent, but if there is any missing information use an IP method of "DHCP" to indicate that info should be obtained via SLAAC/DHCPv6. Only use an IP method of "STATIC" when all basic properties are given by the modem.
2016-04-15bearer-qmi: listen for Packet Service Status indication and handle disconnectionDan Williams
Hook up to the WDS Packet Service Status indication, listen for disconnection events, and disconnect the bearer when we get one.
2016-04-13port-probe: fix missing task disposalsAleksander Morgado
2016-04-08port-probe: make sure stored task pointer is set to NULL before completingAleksander Morgado
When we were completing tasks in idle, the logic was like this: * Schedule task completion in idle * self->priv->task = NULL * (idle) Task completion callback called This meant that the self->priv->task was always set to NULL before the completion callback was called, which is what we wanted as a new task may be scheduled in the callback itself. Now, without completing in idle, we were wrongly doing: * Task completion callback called * self->priv->task = NULL This commit fixes the logic by making sure self->priv->task = NULL before any task completion.
2016-03-27device: port probe may be in the ignored listAleksander Morgado
2016-03-27context: use G_OPTION_ARG_FILENAME when a file path is expectedAleksander Morgado
2016-03-27context: fix --help outputAleksander Morgado
The options that require an argument should explicitly specify so. Before: --log-level=INFO Log level: one of [ERR, WARN, INFO, DEBUG] --log-file Path to log file After: --log-level=[LEVEL] Log level: one of ERR, WARN, INFO, DEBUG --log-file=[PATH] Path to log file
2016-03-27base-modem: remove unused 'mm_base_modem_get_port()' methodAleksander Morgado
2016-03-27base-modem: remove unused 'mm_base_modem_owns_port()' methodAleksander Morgado
2016-03-27base-modem: remove unused 'mm_base_modem_release_port()' methodAleksander Morgado
2016-03-26serial: do not restore termios on port closeTomas Jura
2016-03-22port-probe: unlink the task from probe before completing itLubomir Rintel
The task completion may try to enqueue a next probe task and in mm_port_probe_run() it asserts there's no task linked. https://bugs.freedesktop.org/show_bug.cgi?id=94664 Fixes: 1939c5ace50240127276efacec5c7f166483bb79
2016-03-21build: rename sleep monitor source file, only one implementation availableAleksander Morgado
2016-03-21UPower signaling obsolescencepoma
"Newer upower versions no longer emit that signal since this handled by systemd." by Michael Biebl <mbiebl@gmail.org> https://lists.freedesktop.org/archives/devkit-devel/2014-March/001575.html See also "Plans for UPower 1.0" by Richard Hughes <hughsient@gmail.com> https://lists.freedesktop.org/archives/devkit-devel/2013-January/001339.html Signed-off-by: poma <pomidorabelisima@gmail.com>
2016-03-15build: end all multiline list variables with $(NULL)Aleksander Morgado
So that appending a new item in the list only inserts one new line (i.e. the last $(NULL) is the last item always).
2016-03-15build,core: update build rulesAleksander Morgado
We try to combine in common envvars the compiler and linker flags shared by the different components, and where possible, also re-using the implicit AM_CFLAGS and AM_LDFLAGS variables that automake provides, and which apply to all objects being built in the same Makefile.am. The internal libmodem-helpers.la library is also renamed to libhelpers.la
2016-03-15modem-helpers: fix handling split PDP context ID reporting in CGDCONT=? responseDan Williams
Cinterion PHS8-US devices send split PDP context ID like "(1-17,101-112)" and that caused the modem-helpers to choke.
2016-03-11port-probe: simplify task completionAleksander Morgado
We no longer need to complete in idle, because the limitation imposed by the serial port methods no longer exists.
2016-03-11port-serial: allow completions not in idleAleksander Morgado
Port serial command completions may be performed in several different places: * When a cached response is set during command sending. * When errors happen during command sending. * When we process a response (i.e. common_input_available()) * When we process a timeout (i.e. port_serial_timed_out()) * When cancelled (i.e. port_serial_response_wait_cancelled()) We're currently safe with the previous logic only because the users of the serial port explicitly complete operations in idle, which means that whenever we're processing in a internal callback (e.g. during response or timeout processing) the serial port object is valid for as long as the callback runs. But, if we ever end up using the serial port with a not-in-idle completion, it may happen that if the command is completed within a internal signal callback the serial port object may get fully closed and unref-ed before exiting the callback. We could force a valid port reference to exist as long as the internal signal is scheduled, but then we may lose the ability to automatically close the port during a full unref(), as the internal signals are set as long as the port is open. So, to cope with this possibility of not-in-idle completion, we instead force references to be valid whenever we see that a command completion may happen, which is basically whenever port_serial_got_response() is called; but we only do that if we're going to use the port object after that, otherwise, we ignore the problem. In addition to the problems with the references, we also update the common_input_available() method so that the source isn't kept if the last response buffer processing ended up closing the port.
2016-03-09plugin-manager: allow early cancel of port tasks when they haven't been run yetAleksander Morgado
2016-03-09port-probe: allow cancellationAleksander Morgado
2016-03-09plugin: allow cancellation of the port probe operationAleksander Morgado
2016-03-09plugin-manager: refactor device/port support checks and allow cancellationsAleksander Morgado
2016-03-09plugin-manager: improve logging when loading pluginsAleksander Morgado
2016-03-09broadband-modem: fix +CPMS empty parameter supportCarlo Lobrano
* Add new async virtual method init_current_storages to MMIfaceModemMessaging * Add logic of init_current_storages to MMBroadbandModem * Add step "INIT_CURRENT_STORAGES" in MMIfaceModemMessaging initialization in order to load and store current SMS storages for mem1 and mem2. * Add usage of current sms storage value for mem1 in place of an empty string parameter when the command AT+CPMS is used. https://bugs.freedesktop.org/show_bug.cgi?id=93135
2016-03-02helpers: fix check for pid when creating device identifierAleksander Morgado
https://bugs.freedesktop.org/show_bug.cgi?id=94364
2016-02-20proxmark3 is not a modem, blacklist it.Michael Farrell
ModemManager locks the proxmark3 when it is connected. As it is not a modem, ModemManager shouldn't be talking to it. At present, the recommended action in the proxmark3 documentation is to purge ModemManager to fix this issue. Note that this vendor uses an unregistered USB device ID, so it is instead matched by the manufacturer string. References: - http://store.ryscc.com/blogs/news/45802433 - http://www.proxmark.org/forum/viewtopic.php?id=1759
2016-02-13modem-helpers: regex creation should never failAleksander Morgado
We should really consider errors if we expect that the regex string may not compile; but in this case the pattern is fixed, so should never happen.