aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2012-12-27plugins: fix generic GObject related macrosAleksander Morgado
2012-12-27zte: ignore net ports in non-Icera based modemsAleksander Morgado
Plain non-Icera ZTE modems will use ATD calls and PPP to establish the connection, so ignore 'net' ports that may be found in the way (e.g. when the modem is a QMI modem and we're not using QMI support).
2012-12-24hso: new helper code to debug GPS related issuesAleksander Morgado
Disabled in normal compilation, can be enabled to debug issues.
2012-12-17sierra: fix APP1 PPP functionalityDan Williams
Unfortunately, Sierra secondary APP ports reply to +GCAP with only "OK", and not their APP port number or model number. So instead of using +GCAP, we have to use ATI to get secondary port information. This allows us to detect which port is the APP1 port that we can potentially use for PPP, leaving the primary port available for control and status. Also, some modems have up to 3 or 4 APP secondary ports, which we need to ensure aren't used as primary. The previous check for +GCAP handled that, but let's make it more explicit. AT+GCAP reply: OK ATI reply: Sierra Wireless, Inc. C885 APP1 OK See also: 3f3987e09ee762e48c1d53cb42a1288ce9f332cb (MM_06)
2012-12-12icera,hso: don't wait to get connected if the primary port is removedAleksander Morgado
If the primary port is gone (e.g. when going to sleep) and we are just in the middle of a connection attempt, we won't be able to receive any unsolicited message regarding the status of the attempt. So, if we detect that the port is forced to get closed, we'll just treat it as a connection failure. http://code.google.com/p/chromium-os/issues/detail?id=35391
2012-12-11sierra: implement the Time interface for 3GPP and CDMA devicesDan Williams
2012-12-10sierra: restore longer CFUN=1 timeout for older devicesDan Williams
Turns out older devices (like the C885/AT&T Mercury) crash often when we don't wait for them to settle from CFUN=1. 5 seconds is too short, but the crashes go away when we wait for 10 seconds. Newer modems like the USB306 don't have this problem, so we just check to see if the modem is a DirectIP device (using sierra_net) and only use the shorter timeout for those newer devices. This is a separate problem from some older modems returning ERROR to valid commands that are sent too soon after CFUN=1, which was observed on really old devices like the PCMCIA 860.
2012-12-05icera: implement Time interface support checkDan Williams
2012-12-05huawei: implement Time interface for CDMA modemsDan Williams
2012-12-05icera: report 4-digit year as required by ISO-8601Dan Williams
Assume 2000 + year.
2012-12-05huawei: handle CDMA allowed modesDan Williams
2012-12-05huawei: fix crash disabling CDMA unsolicited response handlersDan Williams
Parent MMBroadbandModem may not implement these functions so we shouldn't call them unless it does.
2012-12-05huawei: implement Huawei-specific CDMA signal quality checksDan Williams
Many Huawei CDMA modems implement vendor commands for 1x and EVDO signal quality, so use them since they are more accurate than the generic signal checking. (port of a similar patch for MM_06 by heiher <admin@heiher.info>)
2012-12-05huawei: consolidate MODE parsingDan Williams
Both CDMA and 3GPP modems emit this, but using slightly different formats.
2012-12-05huawei: consolidate SYSINFO parsingDan Williams
Both CDMA and 3GPP modems use SYSINFO, so consolidate the parsing of its response.
2012-11-29sierra: USB 306 modems support PPP on the APPx portsDan Williams
2012-11-27huawei: don't assume g_regex_match_full() sets error when not matchingAleksander Morgado
2012-11-27broadband-modem-huawei: don't call non-existent MMBroadbandModem CDMA functionsDan Williams
2012-11-27hso: DIAG ports aren't always DIAGDan Williams
The 'hso' driver tags Icera-based modems' proprietary protocol port as a DIAG port, but since they aren't Qualcomm-based, it's not a DIAG port. Just turn off AT probing and let QCDM probing fail the port instead of assuming it's a DIAG port.
2012-11-27icera,hso: don't disconnect() cancellable in the cancellation callbackAleksander Morgado
The logic gets completely stuck when this happens: Stack trace below: #0 0x77661424 in __kernel_vsyscall () #1 0x77337c3c in pthread_cond_wait () #2 0x773cebaa in g_cond_wait () from /usr/lib/libglib-2.0.so.0 #3 0x774c03cc in g_cancellable_disconnect () from /usr/lib/libgio-2.0.so.0 #4 0x76955d36 in connect_cancelled_cb (cancellable=0x78e055a0, self=0x78e0b590) #5 0x77460982 in g_cclosure_marshal_VOID__VOIDv () from /usr/lib/libgobject-2.0.so.0 #6 0x7745ed8a in ?? () from /usr/lib/libgobject-2.0.so.0 #7 0x77478435 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #8 0x77478eb3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #9 0x774c01eb in g_cancellable_cancel () from /usr/lib/libgio-2.0.so.0 #10 0x776a0eab in mm_bearer_disconnect (self=0x78e0b590, callback=0x776c5980 <disconnect_ready>, #11 0x776c57de in disconnect_next_bearer (ctx=0x78e12870) at mm-iface-modem-simple.c:898 #12 0x776c58d2 in disconnect_auth_ready (self=0x78df3048, res=0x78e06210, ctx=0x78e12870) #13 0x774fed25 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0 #14 0x776a8c4e in authorize_ready (authp=0x78db68d0, res=0x76801638, simple=0x78e06210) #15 0x774fed25 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0 #16 0x774fee3e in ?? () from /usr/lib/libgio-2.0.so.0 #17 0x7738a7a2 in ?? () from /usr/lib/libglib-2.0.so.0 #18 0x7738ce83 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #19 0x7738d248 in ?? () from /usr/lib/libglib-2.0.so.0 #20 0x7738d6eb in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #21 0x77696a7d in main (argc=2, argv=0x7fbb1f04) at main.c:158 http://code.google.com/p/chromium-os/issues/detail?id=36448
2012-11-12huawei: better detection of data port on some modemsAleksander Morgado
Some devices (e173) appear to lie about NDIS support; GETPORTMODE reports NDIS is enabled, but that port is actually the MDM port and responds to AT commands. So, if we get a port reported as NDIS and none reported as MDM, use the one reported as NDIS for PPP. https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1057186
2012-11-09option,hso: early check of port type hints to avoid probingsAleksander Morgado
Instead of getting the port type hints while grabbing each probed port, we now run a custom init operation in the probing which already gives us the port type, and therefore allows us to completely skip port probings. Also now added hints for 'Diag' (QCDM) ports and AT/'Modem' ports (I guess it's the one for PPP if we don't have a net port, which is unlikely anyway in HSO). This makes the probing of an Option/HSO modem almost instant.
2012-11-05sierra: fix CFUN power up delay handlingDan Williams
All Sierra devices appear to require short delay after powering up, otherwise subsequent commands may return errors. Older devices need longer so ensure new devices are penalized just for being new. This is the port to git master of the following commit, for which we don't need to do #2: commit 814febe1fd9baacdb33c79f11c140187df36c4f1 Author: Dan Williams <dcbw@redhat.com> Date: Tue Oct 30 16:16:25 2012 -0500 sierra: fix CFUN power up delay handling 1) all Sierra devices appear to require short delay after powering up, otherwise subsequent commands may return errors. Older devices need longer so ensure new devices are penalized just for being new. 2) When the modem is already in full functionality status and no power up command was sent, there's no need to delay, which was happening regardless of what state the modem was already in. Detect whether the power up was actually executed (response and error will be NULL) and only delay if it was executed.
2012-11-05novatel-lte: use $NWMDN to read own number when +CNUM failsBen Chan
+CNUM may return ERROR when the modem fails to read the own numbers from the SIM card or when the SIM card hasn't been activated. Use $NWMDN to read the MDN as a fallback, which distinguishes these two cases.
2012-11-02core,plugins: don't assume 'CS' supported when '2G' supportedAleksander Morgado
We will not report 'CS' as a supported mode every time '2G' is supported. This actually was forcing all plugins to handle a 'CS' fallback when they didn't have CS-specific mode setup. So, to simplify things, we will only report 'CS' as supported for those plugins which actually allow to select 'CS' mode (e.g. the 'wavecom' plugin).
2012-11-02iridium: report only 'CS' mode supportedAleksander Morgado
Iridium modems only support circuit-switched connections, so just report that one as supported.
2012-11-02novatel-lte: increase the wait after SIM unlock to 3 secondsBen Chan
After repeated stress tests on a few Novatel E362 modems and SIM cards, it is revealed that a 3-second wait after SIM unlock is necessary for reliably reading ICCID and IMSI through the SIM interface.
2012-10-30sierra: allow more time for PDP context activationDan Williams
3 seconds isn't always enough to set up the context with the network.
2012-10-30sierra: avoid reset when setting cfun=1Marius B. Kotsbak
Some Sierra modems trigger a reset of the modem when sending +cfun=1. All sierra modems supports a second parameter to indicate that no reset is to be done: "+cfun=1,0".
2012-10-30huawei: ignore '^STIN' unsolicited messagesAleksander Morgado
2012-10-30huawei: reset ignored unsolicited message handlers only onceAleksander Morgado
2012-10-30option,hso: don't reset connection if cancelled, wait to get connected beforeAleksander Morgado
If we are requested to cancel the connection, we first need to wait for the connection attempt to finish before issuing the disconnect command, as otherwise the modem just returns an error saying that it cannot perform the operation and at the end we end up with the modem connected but ModemManager thinking that it isn't.
2012-10-30icera: don't reset connection if cancelled, wait to get connected beforeAleksander Morgado
If we are requested to cancel the connection, we first need to wait for the connection attempt to finish before issuing the disconnect command, as otherwise the modem just returns an error saying that it cannot perform the operation and at the end we end up with the modem connected but ModemManager thinking that it isn't. Tries to fix https://bugzilla.gnome.org/show_bug.cgi?id=685578
2012-10-22nokia,icera: setup custom AT probing as in the generic Nokia pluginAleksander Morgado
2012-10-22nokia: run vendor string probing, in order to grab Bluetooth DUN devicesAleksander Morgado
2012-10-22novatel-lte: retry $NWQMISTATUS upon an unknown error during connectingBen Chan
The $NWQMISTATUS command sometimes replies an ERROR shortly after calling the $NWQMICONNECT command, but then replies the proper QMI status if we retry it. This behavior is observed on an E362 modem with 4.08 firmware. (ttyUSB0): --> 'AT$NWQMICONNECT=,,,,,,"",,,"",""<CR>' (ttyUSB0): <-- '<CR><LF>OK<CR><LF>' (ttyUSB0): --> 'AT$NWQMISTATUS<CR>' (ttyUSB0): <-- '<CR><LF>ERROR<CR><LF>' Got failure code 100: Unknown error QMI connection status failed: Unknown error
2012-10-22novatel-lte: handle $NWQMISTATUS responses for firmware 4.08Ben Chan
In firmware 4.08, the $NWQMISTATUS command returns different values for QMI state to indicate the current connection state. This patch modifies the code to handle $NWQMISTATUS responses in firmware 1.41 and 4.08.
2012-10-16icera: parse HSPA+ access technology in %NWSTATE responseBen Chan
2012-10-16Revert "icera: improve parsing of access technologies in %NWSTATE response"Aleksander Morgado
This reverts commit e2f3034f6e2c79062c095be0bc4278907b32ec8f. The report of current access technologies is supposed to give which is the *current* access technology being active. We allow reporting more than one for the cases where several access technologies are given simultaneously (e.g. cdma1x + evdo + lte). For example, we shouldn't be giving 4 different technologies like "umts, hsdpa, hsupa, hspa" when the modem reports "3G-HSDPA-HSUPA". Just giving HSPA in that case is enough and more accurate.
2012-10-16icera: improve parsing of access technologies in %NWSTATE responseBen Chan
2012-10-15pantech: wait up to 5s after SIM unlock before sending new commandsAleksander Morgado
Or the modem will get stuck completely.
2012-10-15pantech: create a Pantech-specific SIM objectAleksander Morgado
We'll just skip most SIM info retrieval commands based on AT+CRSM, as they seem to be unsupported.
2012-10-14Add udev rules for HP (Ericsson) hs2350 Mobile Broadband ModuleDavid Härdeman
This WWAN module came installed in my new HP EliteBook 8570p Laptop. The patch is generated against the master branch but the same udev rule should be useful in the 0.5 and 0.6 branches as well. Signed-off-by: David Härdeman <david@hardeman.nu>
2012-10-09via: new 'Via CBP7' pluginAleksander Morgado
This is the port to git master of the following commit: commit ff8c60641aa2ea41080c15f81f633b3f78e07bf8 Author: Dan Williams <dcbw@redhat.com> Date: Mon Sep 10 17:12:38 2012 -0500 via: new plugin for CBP7-based CDMA and EVDO devices (bgo #683525) The Via baseband is used in a number of CDMA/EVDO devices, from ChinaTelecom USB sticks, to the Fusion Wireless/UBlox 2770p, to various Motorola Android phones.
2012-10-07hso: use user-specified allowed authentication methodsAleksander Morgado
If none of the specified methods is supported, an error is returned. Also quote user and password using `mm_at_serial_port_quote_string()'.
2012-10-07sierra: use user-specified allowed authentication methodsAleksander Morgado
If none of the specified methods is supported, an error is returned. Also quote user and password using `mm_at_serial_port_quote_string()'.
2012-10-07icera: use user-specified allowed authentication methodsAleksander Morgado
If none of the specified methods is supported, an error is returned.
2012-10-04build,plugins: include missing builddir in CPPFLAGSAleksander Morgado
Built files in the ModemManager daemon (e.g. mm-serial-enums-types.[c|h]) will be available in ${top_builddir}/src, not in ${top_srcdir}/src.
2012-10-04libmm-glib: remove the `libmm-common.h' headerAleksander Morgado
Both the ModemManager daemon and the mmcli will now include `libmm-glib.h' only. We also handle two new special `_LIBMM_INSIDE_MM' and `LIBMM_INSIDE_MMCLI' symbols, which if included before the `libmm-glib.h' library allow us to: * Don't include the libmm-glib high level API in the ModemManager daemon, as the object names would clash with those in the core. * Define some of the methods of helper objects to be included only if compiling ModemManager daemon or the mmcli.
2012-10-04build: merge libmm-common into libmm-glibAleksander Morgado
It's pointless to have libmm-common around, just merge it into libmm-glib and make ModemManager depend on libmm-glib directly. At the end, the non-common stuff in libmm-glib is really minimal.