aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2011-07-07Revert "cinterion: bail earlier if the plugin doesn't support the port"Dan Williams
This reverts commit 1e1bfbf1d808e557441afdae44447af457dae7ff. Aleksander says this might break RS232<->USB converter connected Cinterion modems, so we'll need to handle this issue another way.
2011-07-06cinterion: bail earlier if the plugin doesn't support the portDan Williams
Caused a crash with the Sierra plugin due to an assertion failure; the Cinterion plugin shouldn't claim to possibly support ports it knows it won't support. In this case, it claimed to support Sierra modems, so it would try to run probing after Sierra had done so. Ideally this should work, but for now just make sure the Cinterion plugin doesn't claim to support these ports when it knows it doesn't.
2011-07-06nokia: N900 doesn't really need additional inter-character timeDan Williams
See 46d757faa768db7d7bb23d51cc2af3196f7a7e30: gsm: send init command twice to make the N900 happy (rh #583691) (lp:765516) for what I think is the real workaround for this bug.
2011-07-06cinterion, wavecom: update copyright infoAleksander Morgado
2011-07-05gobi: support access technology reportingDan Williams
Obviously only works while disconnected since the Gobi devices only provide one AT-compatible tty.
2011-06-30Merge remote-tracking branch 'lanedo/power-up-check-needed'Aleksander Morgado
2011-06-30samsung: add product ID for the Y3400 module.Eric Shienbrood
The Y3400 is functionally nearly identical to the Y3300.
2011-06-22cinterion: always try to use RTS/CTS flow controlAleksander Morgado
Otherwise, power-up after going to standby will not work properly
2011-06-22cinterion: enable power-off command to go to sleep/standby modeAleksander Morgado
AT+CFUN=4 will be used when available to go to standby mode. If not supported, (as in EGS5) AT+CFUN=7 will be used instead, which enables a CYCLIC SLEEP mode. Flow control setup was updated to RCS/CTS so that waking up from sleep mode works properly.
2011-06-22sierra: do not send power-up command if not neededAleksander Morgado
2011-06-22wavecom: enable power-off command to go to sleep/standby modeAleksander Morgado
AT+CFUN=4 will be used to go to standby mode.
2011-06-22wavecom: try to power-up without rebootingAleksander Morgado
Using AT+CFUN=1,0 so that we request to avoid resetting (<rst>=0). Works properly when powering up after having put the modem in standby mode with AT+CFUN=4. Note that the power-up command will only be sent if the check to see if power-up is needed requests it.
2011-06-22wavecom: do not send power-up command if not neededAleksander Morgado
2011-06-14build: place together samsung plugin compilation optionsAleksander Morgado
2011-06-14cinterion: check probed caps from supports taskAleksander Morgado
2011-06-13icera: report connected access technology when connectedEric Shienbrood
The NWSTATE field reports both available access technology and the actual access technology in-use when a PS connection is active, so report the actual access tech when it's available.
2011-06-09icera: request specific network error codes on connect errorsEric Shienbrood
For connection failures, get additional error detail. Currently, the only error codes that are mapped are the 3GPP TS 24.008 codes for "Unknown or missing access point name" and "Requested service option not subscribed" (which is sometimes returned for an invalid APN). (random fixes and cleanups by dcbw)
2011-06-09build: ensure Samsung plugin includes common Icera codeEric Shienbrood
Otherwise make can't find build-time dependencies.
2011-06-09icera: add more access technology stringsEric Shienbrood
2011-06-09samsung: disable should use CFUN=4Eric Shienbrood
CFUN=4 disables the radios but still allows useful operations like getting PIN lock status. So use that instead.
2011-06-06plugins: propagate cached probing result to supports taskAleksander Morgado
We need to ensure that the supports task always has the results of the probing, no matter if the probing was just launched by the plugin grabbing the port, or by a previous plugin. We do this during supports_port(), by propagating to the supports task any possible previously cached probing results.
2011-06-06cinterion: set modem disabled if 3 consecutive AT commands get timed outAleksander Morgado
2011-06-06cinterion: enable reprobing on ports without cached capabilitiesAleksander Morgado
2011-06-06cinterion: always sort last the pluginAleksander Morgado
This is because the cinterion plugin can handle RS232 modes, and checking support for them needs to have the vendor ID probed with AT commands, so probing is almost always issued in this plugin. By sorting last, we let other plugins check support first.
2011-06-06cinterion: handle RS232 modemsAleksander Morgado
2011-06-06cinterion: override CMER enabling commandAleksander Morgado
2011-06-06cinterion: override SMS indications setup commandsAleksander Morgado
2011-06-06cinterion: if modem removed don't process responseAleksander Morgado
2011-06-06cinterion: set and get bandsAleksander Morgado
2011-06-06cinterion: set and get allowed modeAleksander Morgado
The 2G-preferred and 3G-preferred modes are not supported on dual 2G/3G cinterion modems.
2011-06-06cinterion: query supported networks to detect if 2G or 3G deviceAleksander Morgado
2011-06-06cinterion: query network technology capabilitiesAleksander Morgado
We try to look for 'psinfo' indication in AT^SIND? output (available in 3G devices from Cinterion), and if that is not available, we try to use the AT^SMONG GPRS monitor (available in 2G devices from Cinterion).
2011-06-06cinterion: add initial dummy pluginAleksander Morgado
2011-06-05x22x: add support for the Alcatel X200Dan Williams
Same USB IDs as the X060s which is driven by Longcheer, but uses the X22X command set so we have to do a little dance and make sure we don't claim the X060s here.
2011-06-05longcheer: ensure the Alcatel X200 is not claimedDan Williams
The X200 shares the same USB VID and PID as the X060s but the X200 does not use the same AT command set; it uses the X22X plugin instead. Since both modems also report the same +GMM and +GMI responses, we have to fall back to using +GMR even though that's a pretty sketchy way to tell them apart if the firmware ever changes.
2011-06-05core: allow plugins to stop probing and not support a modemDan Williams
Previously plugins could only stop probing, *or* stop probing and indicate support for a device. For the Alcatel X200/X060s debacle we need to stop probing and indicate that the plugin does not support the device at all.
2011-06-05x22x: support access technology reportingDan Williams
2011-06-05plugins: use MMCallbackInfo instead of custom DisableInfoAleksander Morgado
Implemented using a custom invoke method which doesn't call the callback, and instead calls parent disable passing the callback as argument. This fix ensures that if a modem gets removed, no invalid modem reference is passed to the parent disable, as info->modem would be set to NULL and we can detect it in the custom invoke method.
2011-06-05core, plugins: if modem removed don't process responseAleksander Morgado
We try to avoid a memory leak when info->error is reset, as well as a second re-schedule of the info.
2011-05-27simtech: tag ports on Prolink PH-300Dan Williams
2011-05-19samsung: split initialization sequence to ensure echo is offNathan Williams
Split the Samsung initialization sequence from "ATZ E0 V1" to "ATZ" and "ATE0 V1" - the modem is allowed to ignore the rest of the line after Z, so echoing was not being turned off, leading to getting "AT+CIMI\n\n" as part of the IMSI when it is retrieved at startup. Chromium: Change-Id: Icfd767174e779e472f8cde419acb163128e4715d
2011-05-04longcheer: ensure the plugin on handles devices it's supposed toDan Williams
Other devices from the same vendor (x220) need to be handled by the x22x plugin, so Longcheer can't just rely on the vendor ID match to know whether it should handle the modem.
2011-05-02samsung: lock plugin to Y3300 to exclude other Samsung USB modemsDan Williams
Like the SGH-Z810/SCH-U209 which are a different chipset, don't have pseudo-ethernet ports, and just wouldn't work with this plugin.
2011-04-29wavecom: enable usage of MM_MODEM_GSM_BAND_ANY in SetBand()Aleksander Morgado
2011-04-29samsung: allow getting more than one bandAleksander Morgado
2011-04-29samsung: allow setting a single band onlyAleksander Morgado
2011-04-29huawei: enable getting and setting more than one bandAleksander Morgado
2011-04-27huawei: rework probing and detectionDan Williams
Long ago there were problems where certain Huawei devices would stop responding on various ports, and sometimes would crash randomly. The theory at the time was that touching the secondary ports made the device angry, thus the plugin simply opened the ports and listened for unsolicited messages. But if the device didn't send any during that 7 second period, MM would not detect and secondary ports at all. Plus, it was always a hack. Instead, the new theory is that the device crashes if unsolicited messages are enabled (^CURC=1), the secondary port gets touched, *and* then closed and left for a while. Fix that by turning unsolicited messages off at probe time, on when the device is enabled, and off again when the device is disabled like happens for other modems. Thus when MM first detects the modem, it turns off unsolicited messages and the serial buffer on the secondary port doesn't fill up and crash the modem. Second, this allows us to simplify the probing logic quite a bit so that we can probe all ports we find, but we still wait to probe the first port so we can turn off unsolicited messages and get hints about what port is the secondary.
2011-04-26plugins: allow multiple custom init commands in sequenceDan Williams
Huawei will need this.
2011-04-26plugins: simplify custom init commandsDan Williams
Instead of having two places that custom init stuff got processed (a hook in the MMPluginBase class itself and a callback too) just use a callback, and simplify it somewhat so that the plugin tracks how many tries it cares about and what to do based on the response or error.