aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2011-08-14core: when probing mark ports as AT capable tooDan Williams
On a ZTE MF626, sometimes the aux port will respond only with "ERROR" to probing commands (while the SIM is starting up) and previously we'd lose the port because we were only looking for valid probe responses. But if the port returns ERROR or CME ERROR etc we know it's an AT port and that we can use it once we've gotten the type response (CDMA or GSM) from the main port.
2011-08-14gsm: check both CS and PS registration state during pollDan Williams
When connecting, and the modem isn't yet registered or denied, poll both CS and PS registration state instead of just CS state, because we're really more interested in PS state anyway. If at least one of the CS and PS state checks is successful then proceed with the connection.
2011-08-02core: log when serial port unexpectedly hangs upDan Williams
2011-08-02core: fix possible double-freeDan Williams
If there was data waiting, the task freed it, but then the port got closed, and the data callback might have freed the data again.
2011-08-02gsm: work around Motorola Android phone modem bugs (bgo #637327)Dan Williams
It seems the Motorola Flipout with Android 2.1 doesn't like to return configured PDP contexts via AT+CGDCONT?; it returns an error. It seems to accept the rest of the dial sequence though, so just ignore the error when reading existing PDP contexts.
2011-08-02core: fix serial port flashing after ↵Dan Williams
d3c2228f7b55465f4433bedb36d47744b8d791f1 (bgo #650740) Fix one more possible memory leak (left un-fixed by d3c2228 but not caused by it) and ensure that modems that do want flashing get it by default by adding the missing G_PARAM_CONSTRUCT so FLASH_OK defaults to TRUE.
2011-08-02core: allow ports to skip flash behavior (bgo #650740)Dan Williams
Flashing is a technique to break out of the data/PPP stream and re-enter command stream (like +++) and MM uses it in the generic paths in various cases. But devices that don't need it (ie, ones with at least one AT capable port that won't be used for data) now sometimes appear to have side-effects. The Ericsson F5521gw firmware R2A07 resets port attributes like echo and &C and such when the port is flashed, leading to confusion on the part of MM. Since the Ericsson devices will always have at least one free AT port they don't need flashing anyway.
2011-08-01gsm: allow SIM operations while connectedDan Williams
No point in requiring these to be done from the primary port.
2011-07-25cdma: don't blow away generic EVDO reg state if no specific state is availableDan Williams
Generic code (like the QCDM CM/HDR checks) would determine the EVDO registration state, which would then get blown away by the device-specific registration state query method. Modems that have a more specific check were fine, but generic devices that don't have more specific reg state checks can simply rely on the generic checks done earlier and don't need to update the EVDO state from real_query_registration_state().
2011-07-25core: allow getting the result from the MMCallbackInfoDan Williams
2011-07-25sms: calculate user-data bit padding correctlyNathan Williams
Fourth and final in a series. This fixes an off-by-one (septet) error in the calculation of the amount of data to skip in the presence of a user data header, and adds the test case from the wild that triggered it.
2011-07-25sms: recognize more text encodings from GSM 03.38Nathan Williams
Third in a series. This fixes the bug detected by the dcsf1 test in the just-added unit tests, by more thoroughly parsing the TP-DCS field.
2011-07-25sms: add unit testsNathan Williams
Second in a series. Builds on the previous by actually unit-testing the sms_parse_pdu() function. Note that the dcf1 test does not pass as the code is currently written.
2011-07-25sms: split SMS parsing out into a separate fileNathan Williams
In preparation for adding tests. Change-Id: If1ebd0fdd6e7470c21538042ab1735357649155c
2011-07-25gsm: don't clear operator name or number when at least one of PS or CS is ↵Dan Williams
registered The operator name/number isn't really tied to CS or PS registration, since we retrieve it using AT+COPS. But when one of CS or PS became unregistered the operator name and number would get cleared out. We only want to clear it out when *both* CS and PS are unregistered. Fixes an issue with the location API where location would not be reported when one of CS or PS became unregistered, because the location bits want an operator name before they return the location.
2011-07-21huawei: implement ussd encoding/decodingGuido Günther
Huawei wants the USSD as packed GSM.
2011-07-21ussd: Add mm_modem_gsm_ussd_{de,en}code to the MMModemGsmUssd interfaceGuido Günther
since some some modems need different quirks to encode/decode USSD messages.
2011-07-19cdma: set Rm interface protocol if required (bgo #641661)Dan Williams
Some providers (CDMA Ukraine) apparently require a specific Rm interface protocol, so add some Simple Connect dict settings for that and use them when dialing. Obviously requires the connection manager to also have support for sending the right bits down to MM.
2011-07-18core: add another CnS string to the immediate ignore listDan Williams
Newer Sierra devices have this (ie 306); it's the CnS port so ignore it immediately.
2011-07-06gsm: send init command twice to make the N900 happy (rh #583691) (lp:765516)Dan Williams
The N900 has some odd serial characteristics in that it appears to send pieces of the commands back for whatever reason, until you've sent a few commands down to it. Almost like it's training on whatever you send and needs a bit of input to figure out the characteristics. Whatever. Just send the init command twice instead of failing when the N900 barfs the first time.
2011-07-06core: update some serial port settingsDan Williams
1) use cfsetispeed/cfsetospeed like the TTY manpage suggests 2) ignore parity/framing errors since we're not using parity anyway 3) double-check that all our TTY settings were successfully set
2011-06-30gsm: set SMS storage location before enabling notificationsThomas Grenman
Fixes a firmware hang on Option GlobeTrotter Express (GE0201 with firmware 1.12.1Hd (Date: Feb 22 2007, Time: 09:20:28)) and makes sense in general too.
2011-06-30Merge remote-tracking branch 'lanedo/power-up-check-needed'Aleksander Morgado
2011-06-30Add a DBus interface for setting the log level.Nathan Williams
Lifted almost entirely from similar code in NetworkManager. BUG=chromium-os:15197 TEST='dbus-send --print-reply --system --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager org.freedesktop.ModemManager.SetLogging string:DEBUG' Also try valid log levels 'ERR', 'WARN', 'INFO', and an invalid log level, such as 'ABCDE'. Change-Id: I2bddcd0319f4966dd293b119f68e7cc1697949b7 Reviewed-on: http://gerrit.chromium.org/gerrit/3134 Tested-by: Nathan J. Williams <njw@chromium.org> Reviewed-by: Eric Shienbrood <ers@chromium.org>
2011-06-30gsm: handle case of entirely empty SPN correctlyNathan Williams
BUG=none TEST=Insert a SIM with a present but empty (all 0xFF) SPN and check the system log for a (lack of) assertion errors from mm_charset_gsm_unpacked_to_utf8(). Change-Id: I1250494b9757c9bfdce56402a4471c598f41223f Reviewed-on: http://gerrit.chromium.org/gerrit/3139 Reviewed-by: Eric Shienbrood <ers@chromium.org> Tested-by: Nathan J. Williams <njw@chromium.org>
2011-06-22serial: new property to enable RTS/CTS flow controlAleksander Morgado
2011-06-22gsm: allow plugins to check if they need to issue the power-up commandAleksander Morgado
Some modems only like the power-up command if not already in full functionality mode. If the power-up is sent while already in full functionality mode, they get rebooted and reseted. With this changes, plugins can check whether they need the power-up and ask the generic gsm code base to skip the command or not. By default, power-up command (if any given) is never skipped.
2011-06-15ussd: fix reception, network notifications, and network requestsDan Williams
Because the code was sending the USSD request with a "notify me via unsolicited result code" tag, the response could come from any port, and in was coming from other ports on various devices. But the code expected the response on the main port, thus it got lost. So turn the USSD response processing into an unsolicited command handler instead, which allows us to process the response no matter where it comes from. This patch also enables network-initiated USSD notifications and requests since that's easy to add once the first thing here is done.
2011-06-15serial: warn when open/close take longer than 7 secondsDan Williams
Due to kernel bugs and such.
2011-06-09core: trivial whitespace cleanupDan Williams
Tabs -> spaces
2011-06-09core: handle udev 'change' eventsNathan Williams
That's what the udev replay gives us these days (as of udev-152).
2011-06-09gsm: fix memory leak when grabbing a new portDan Williams
2011-06-09ussd: fix leaked callback info in error casesDan Williams
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-06base: disable the modem if up to N consecutive commands get timed outAleksander Morgado
This feature is initially disabled for all modems, but plugins can enable it by setting a value greater than 0 for the "max-timeouts" property when creating the modem object.
2011-06-06manager: protect ScanDevices() d-bus method with manager control policy ruleAleksander Morgado
2011-06-06policy: new policy for manager control actionsAleksander Morgado
2011-06-06manager: new ScanDevices() d-bus method to request a new device scan loopAleksander Morgado
2011-06-06plugin base: let plugins decide if they should be sorted lastAleksander Morgado
Note that even if a plugin says it wants to be sorted last, the generic plugin will always be the last one. Also, there is no order guaranteed between two plugins that request to be sorted last.
2011-06-06plugin base: include vendor ID and product ID retrieval during AT port probingAleksander Morgado
Port probing is extended to also query for Vendor ID and Product ID. This allows plugins to check whether the reported IDs are expected, and thus we enable plugins to handle modems connected via RS232 ports (where udev doesn't give any vendor ID) or modems connected via a USB adapter (where udev gives the vendor ID of the adapter). Note that this effectively means that a plugin which expects these kind of modem connections will end up always launching port probing as they won't only rely on the vendor ID reported by udev.
2011-06-06charsets: new utf8_to_hex() methodAleksander Morgado
2011-06-06gsm: let plugins use their own command for CMER enablingAleksander Morgado
2011-06-06gsm: let plugins use their own commands for SMS indications and storage ↵Aleksander Morgado
configuration
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-05core: ensure ERROR_REMOVED error is used in MMCallbackInfo when detecting ↵Aleksander Morgado
modem removal
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-06-02gsm: free the string allocated by utils_hexstr2bin().Nathan Williams
Change-Id: I1f7dabc8209d9757b573a59abb788a2346f72ad5
2011-06-02Spec out and implement a command to get a GSM SIM SPN value.Nathan Williams
Using a SIM with a SPN, run the following command: dbus-send --system --dest=org.freedesktop.ModemManager --print-reply /org/freedesktop/ModemManager/Modems/0 org.freedesktop.ModemManager.Modem.Gsm.Card.GetSpn Change-Id: I8f36c8432f40fa4e3cb3f8c6ceef16b2bdadf2a1 Reviewed-on: http://gerrit.chromium.org/gerrit/1464 Reviewed-by: Nathan J. Williams <njw@chromium.org> Tested-by: Nathan J. Williams <njw@chromium.org>
2011-06-02sms_decode_address(): Add a leading "+" on international numbers.Nathan Williams
BUG=chromium-os-partner:4278 TEST=Send SMS from phone (to get +... format) and from AIM-SMS gateway (to get raw-digit format). Change-Id: I36eb9f1432a432435578180dfdb315b0e7ee5744
2011-06-02serial-parser: allow 0 or more whitespaces before error code in regular ↵Aleksander Morgado
expresions