aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-03-12broadband-modem-qmi: explicitly add LTE as current cap if modem caps report italeksander/mode-switchingAleksander Morgado
For loading current capabilities we use a mix of "Technology Preference" (TP), "System Selection Preference" (SSP) and DMS-reported capabilities. But, as we also use TP and SSP for allowed modes, it may be the case that we end up leaving 4G out of the allowed modes, which afterwards will make the modem not report LTE as current capabilitiy, as TP/SSP don't include LTE. So, just assume LTE is a current capability if DMS-reported capabilities include it. We can really do this because LTE is the only 4G technology, the same logic wouldn't apply correctly for 2G or 3G (due to having different techs for 3GPP and 3GPP2).
2013-03-12broadband-modem-qmi: fix logic to include GSM/WCDM acquisition order preferenceAleksander Morgado
2013-03-12modem-helpers-qmi: fix allowed mode translation from QMI to MMAleksander Morgado
Which actually fixes allowed mode switching in MM...
2013-03-12broadband-modem-qmi: fix initial operating mode loadingAleksander Morgado
2013-03-12broadband-modem-qmi: handle 'UimUninitialized' error when checking unlock statusAleksander Morgado
QMI modems without SIM may report 'UimUninitialized' QMI protocol errors, so catch those and use them as 'SIM failure' so that they get reported to the user.
2013-03-06broadband-modem: fix enable flag in UnsolicitedRegistrationEventsContextBen Chan
2013-03-05mbm: fix 3gpp dialling sequence when result comes through pollingAleksander Morgado
2013-03-05mbm: tag the ttys instead of the parent usb deviceAleksander Morgado
We can just tag the ttys instead of the parent usb device, so that the core logic which looks in the plugin-specified port tags works properly. There is no need to explicitly tag the net port, as the probing for this port ends when a plugin suggestion comes from another port probing on the same device.
2013-03-05udev: tag all devices from idVendor 0x0711 as manual-scan-onlyAleksander Morgado
Magic Control Technology Corp (0x0711) manufacturers several USB<->RS232 adapters.
2013-03-05core: don't automatically probe ports of USB<->serial adaptersAleksander Morgado
We should not automatically probe ports marked as coming from USB to serial adapters, as we're not sure that a modem is behind the adapter. Still, let the user request a manual scan and have these devices probed in that case. https://bugzilla.gnome.org/show_bug.cgi?id=647556 https://bugzilla.gnome.org/show_bug.cgi?id=691076
2013-03-05iface-modem-3gpp: handle non-deferrable registration state updatesBen Chan
This patch changes MMIfaceModem3gpp to differentiate between deferrable and non-deferrable 3GPP registration state updates. Periodic or unsolicited registration state updates are deferrable, while internal updates, e.g. due to modem being disabled, are non-deferrable.
2013-03-05broadband-modem: fix disabling of unsolicited registration eventsBen Chan
2013-03-04sierra: add MC8790 to APP1 PPP whitelistGerald Richter
2013-03-01iface-modem-3gpp: avoid re-setting deferred registration update while disablingAleksander Morgado
Don't clear the current deferred registration update until having disabled and cleaned up unsolicited registrations state messages, or we may end up re-setting the deferred registration update again meanwhile
2013-03-01iface-modem-3gpp: clear deferred registration state update when disablingBen Chan
2013-02-26udev: update all udev rules to always match both VID/PID togetherAleksander Morgado
If the rules to tag specific USB interface numbers only apply on the PID, we'll end up seeing that if the port has a parent with another PID, and that other PID also has a rule, port will get tagged multiple times. Easier to see with an example: The ZTE MF637 (VID 0x19D2, PID 0x0121) had the following rules: ATTRS{idProduct}=="0121", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" ATTRS{idProduct}=="0121", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" In our ZTE rules we also have some for the device with PID 0x0002, like: ATTRS{idProduct}=="0002", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" ATTRS{idProduct}=="0002", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" And it seems that we can grab multiple PIDs from a single port, i.e. from the parent objects in the hierarchy: udevadm info -a -n /dev/ttyUSB4 | grep idProduct ATTRS{idProduct}=="0121" ATTRS{idProduct}=="0020" ATTRS{idProduct}=="0002" Where that 0x0002 idProduct is not from the modem, but from the EHCI Host Controller (with idVendor 0x1d6b in my case). So... we end up seeing that both set of rules will apply to the ports, and we misleadingly get: (ttyUSB3) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB2' flagged as primary (ttyUSB2) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB1' flagged as secondary (ttyUSB1) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB4' flagged as primary b_port(): (ttyUSB4) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB2 at (primary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB1 at (secondary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB2 data (primary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB0 qcdm Which is wrong, as ttyUSB4 should have been our primary port, not ttyUSB2. With this patch on, the rules apply only to the VID/PID pair, and we end up getting what we really wanted: (ttyUSB3) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (ttyUSB2) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB1' flagged as secondary (ttyUSB1) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB4' flagged as primary b_port(): (ttyUSB4) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB4 at (primary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB1 at (secondary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB4 data (primary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB0 qcdm https://bugzilla.gnome.org/show_bug.cgi?id=694759
2013-02-26iface-modem: allow falling back to 'failed' stateAleksander Morgado
Allow mm_iface_modem_update_state() receive 'MM_MODEM_STATE_FAILED', and treat it as any other change to failed state, but with 'MM_MODEM_STATE_FAILED_REASON_UNKNOWN'.
2013-02-26plugins: log about all port type hints received from udevAleksander Morgado
2013-02-25plugin-manager: cancelled tasks are no longer deferred-until-suggestedAleksander Morgado
The deferred-until-suggested tasks specify tasks that are open/ongoing; cancelled tasks shouldn't have this flag set. https://bugzilla.gnome.org/show_bug.cgi?id=694603
2013-02-25iface-modem-3gpp: defer registration state update when registration is lostBen Chan
This patch defers the update of 3GPP registration state by 15 seconds when the registration state changes from 'registered' (home / roaming) to 'searching'. This allows a temporary loss of 3GPP registration to recover itself when relying on ModemManager to explicitly disconnect and reconnect to the network.
2013-02-25build: Look for generated file in builddir, not srcdirColin Walters
2013-02-22broadband-modem: fix CUSD response parsingAleksander Morgado
When reading the string reply in a +CUSD indication, don't blindly split using whitespace or comma as field separator, as the string may be a text string with both whitespaces and commas, e.g.: +CUSD: 0,"hey hey, something here<LF>***<LF>and something more here" Also, skip reading the encoding field for now, as we don't use it yet.
2013-02-22broadband-modem: avoid reading already freed memory in USSD operationsAleksander Morgado
2013-02-22broadband-modem: USSD response may come even before finishing our requestAleksander Morgado
MBM devices seem to include the '+CUSD: 0' indication before even returning OK to our '+CUSD=1' (ttyACM0): --> 'AT+CUSD=1,"*111#",15<CR>' (ttyACM0): <-- '<CR><LF>+CUSD: 0,"reply here"<CR><LF>' (ttyACM0): <-- '<CR><LF>OK<CR><LF>'
2013-02-22broadband-modem: don't assume the returned string is always hex-encodedAleksander Morgado
2013-02-22mbm: fix CFUN result parsingAleksander Morgado
2013-02-22broadband-modem: increase default AT command timeout for USSD operationsAleksander Morgado
May really take more than 3s.
2013-02-22mbm: implement custom modem_power_down()Aleksander Morgado
Cache last valid allowed mode always, so that we re-use it when powering up again.
2013-02-22mbm: implement custom load_power_state()Aleksander Morgado
We need to handle modems which appear in low-power mode (e.g. CFUN=4), so implement a custom check of the power state. We cannot use the default check as MBM modems use CFUN also for allowed mode handling.
2013-02-22api: notify in the interface about the reason why the modem is FAILEDAleksander Morgado
We currently implement 'SIM missing' and 'SIM error', which are probably the most common ones.
2013-02-21plugin: avoid using uninitialized variableAleksander Morgado
Reported by: Jose Maria Gonzalez <jmgonzalezc@indra.es>
2013-02-20manager: during initial scan, add new ports in idlesAleksander Morgado
Treat each port independently in its own idle, as if we're receiving independent udev events, otherwise, GSources may not be properly scheduled in the main loop.
2013-02-20plugin: plug memleakAleksander Morgado
A new reference to probe was acquired through mm_device_get_probe(), just unref it when no longer needed. Note that mm_port_probe_run() will take its own reference for as long as required to complete the operation.
2013-02-20plugin: plug memleaksAleksander Morgado
This is really just to have a nice valgrind/memcheck output report, no big deal if they were never freed.
2013-02-20iridium: use generic disconnection logicAleksander Morgado
The generic disconnection logic now already handles getting the port fully closed and a wait time before reopening it, so no need for a custom disconnection logic any more.
2013-02-20serial-port: allow specifying some wait time between closing and reopeningAleksander Morgado
We will now by default wait some time (1s) between port getting fully closed and the port being reopened again. This logic seems to work for multiple modems where there is a single port for both AT and data, like my Nokia C7 and Iridium modems. If this wait time is not applied, the port ends up returning EAGAIN for every write that we try to do afterwards.
2013-02-20serial-port: remove unneeded property nameAleksander Morgado
Was incorrectly included in a previous commit
2013-02-20bearer-novatel-lte: fix reference counting of the 'data' portAleksander Morgado
2013-02-20plugin: plug memleaksAleksander Morgado
2013-02-20bearer: plug memleakAleksander Morgado
2013-02-20broadband-modem: plug memleakAleksander Morgado
2013-02-20iface-modem: fix modem state consolidation upon bearer disconnectionBen Chan
Patch "iface-modem: fix invalid modem state consolidation" (commit 69aff6183a9e6532b4074c89831d6dcfa81ddcce) incorrectly consolidates the modem state upon the disconnection of a bearer. The modem state remains 'connected' after the last bearer is disconnected. This patch fixes that.
2013-02-19build: fix passing arguments to configure from autogen.sh (bgo #694157)Evan Nemerson
2013-02-19zte: load unlock retries with +ZPINPUKAleksander Morgado
e.g: AT+ZPINPUK=? | | ZPINPUK: 3,10 | OK
2013-02-19at-serial-port: plug memleakAleksander Morgado
2013-02-19core: update logging levels of several messagesAleksander Morgado
'info' log level, the default if none specified, included too many logs which aren't that useful, to try to minimize the noise we produce by default.
2013-02-19plugin-manager: log time required for device probingAleksander Morgado
2013-02-19plugin-manager: if minimum time consumed and all deferred tasks, abort probingAleksander Morgado
For the case where we just get a device with all net ports (i.e. all deferred until result suggested), just abort the probing if the minimum probing time is consumed.
2013-02-19broadband-bearer: fallback to primary AT port if no data AT port availableAleksander Morgado
Spotted by Dan Williams <dcbw@redhat.com> with his ADU960S.
2013-02-18base-modem: don't run port init sequence if we're just sending a commandAleksander Morgado
This may happen when sending commands to the modem while in non-enabled state, like when sending the PIN. In this case, just send the command, don't fully initialize the port with the initialization sequence.