Commit Graph

368 Commits

Author SHA1 Message Date
Dan Williams
2f1d8f7fb3 nokia: fix PPP port for CSxx Internet Sticks
USB interface 0 isn't a serial interface; it's probably a custom
Nokia PhoNet port or a custom Icera pseudo-ethernet port.  But
it's not a CDC-ACM serial port, at least on the CS17.

Reported by Uwe Geuder.
2012-01-09 14:53:39 -06:00
Dan Williams
30bb9e878f cdma: fixes for libqcdm changes 2012-01-03 00:30:59 -06:00
Dan Williams
267b83ae27 sierra: add support for Icera based devices (USB305, AT&T Lightning) 2011-12-31 11:43:42 -06:00
Dan Williams
2af1a612e9 core: don't crash on error if response is NULL
Various bits of the code didn't check if response was valid
or not during error conditions, and when an error occurs
sometimes it'll be NULL (since not all errors are translated
errors from the modem, some are serial or general ones).  We
have to make sure we don't try to use response->str when
response doesn't exist.

Found in the generic CDMA code likely as a result of
d5d9eec2b5 but was a bug long
before that commit happened anyway.
2011-12-07 17:07:46 -06:00
Dan Williams
fc5eed79ee mbm: add USB IDs for HP hs2340 2011-12-01 17:35:09 -06:00
Dan Williams
44194ac04d nokia: add port tags for CS-xx Internet Sticks
They appear to always want PPP to happen on interface 0, according
to the Windows .INF files.
2011-11-17 12:48:36 -06:00
Eric Shienbrood
e7b6b2dc1c core: keep track of all PIN retry counts
Added a PinRetryCounts property on org.freedesktop.ModemManager.Modem.
This is dictionary that records the number of PIN tries remaining
for each of the possible PIN code types for which the modem is
capable of reporting the count. Also, these counts are kept up
to date across ChangePin and EnablePin operations, not just when
an unlock is attempted.
2011-11-16 17:42:50 -06:00
Graham Inggs
71598a6289 huawei: remove padding from USSD responses
Probably needed in generic USSD code.
2011-11-15 11:29:04 -06:00
Graham Inggs
add6131edf huawei: pad USSD requests if necessary
ModemManager currently encodes the USSD command *141*0# (for MTN South
Africa) as "AA182DA6828D00".
While this works on some modems, for example the E1820, other modems,
for example the E160, require USSD commands that are a multiple of 7
characters long to be padded with 0x0d.
Huawei Mobile Partner dashboard software for Windows encodes *141*0#
as "AA182DA6828D1A" which works on both the E1820 and the E160.

The attached patch pads the USSD command with 0x0d before encoding if
it is a multiple of 7 characters long.
2011-11-14 17:36:23 -06:00
Dan Williams
6e0e46e51e huawei: Gobi devices should be driven by gobi not huawei (bgo #660998) 2011-10-12 18:47:23 -05:00
Dan Williams
30a67862ec zte: update port hints for Onda MSA110 and others 2011-09-28 10:31:32 -05:00
Nathan Williams
8710820156 core: ensure that GMatchInfo and GRegex objects are freed properly
In particular, g_regex_match() and g_regex_match_full() allocate a
match_info structure on both success and failure, so calling
g_match_info_free() only in the success case is insufficient.

BUG=None
TEST=Inspection

Change-Id: Iea76b5b5dc3ec48120e15601a5e2dd45322133d8
2011-09-27 13:40:39 -05:00
Aleksander Morgado
2a9a6ad79b nokia: use E1 E0 when initializing the modem
Passing E1 and E0 afterwards seems to properly disable the echo in Nokia modems
(N900 and C7 at least)
2011-08-25 22:00:56 -05:00
Torgny Johansson
7348b4c0c8 mbm: add more Ericsson and Dell vid/pids
Add the vid/pid for Ericsson H5321gw/w, F5321gw/w, C5621gw/w, C3304w and Dell DW5560.
2011-08-25 21:51:38 -05:00
Aleksander Morgado
ea23851326 api: use common ModemManager.h for API, core and plugins 2011-08-19 22:54:48 +02:00
Dan Williams
8799f4da1f core: when probing mark ports as AT capable too
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-14 16:02:41 -05:00
Dan Williams
da57b9a0eb sierra: fix possible double-free
Need to reset password to NULL after freeing it.
2011-08-02 21:57:02 -05:00
Dan Williams
26debc1a97 mbm: don't flash serial ports on disconnect (bgo #650740)
The F5521gw resets various port properties like echo when the port
is flashed, which was happening on disconnect.  Since MM had already
turned of echo with ATE0, and the AT parser in-use expected no
echo, this confused MM when the port magically started echoing commands
back.  We don't need flashing on the Ericsson devices because there
will always be a free AT port even if PPP is used for a secondary
PDP context, so we can just skip flashing entirely for these
devices.
2011-08-02 10:47:25 -05:00
Dan Williams
f8934c21ce option/hso: check generic access tech first, then specific tech
During the explicit access technology check, the plugin would request
specific 2G (OCTI) and 3G (OWCTI) technologies explicitly.  Some devices
(like Nozomi) don't support the AT_OWCTI command, which leaves us with
only AT_OSSYS for determining whether the device is registered with
the 3G network or the 2G network.  So like the unsolicited mode change
handling code, when requesting access technology explicitly, ask for
generic 2G/3G tech first, and then get the specific tech.  If the
device doesn't support explicit 3G tech then at least we have the
generic 3G tech from OSSYS to use.
2011-07-25 12:58:05 -05:00
Dan Williams
1df8dd7361 option: plugin is supposed to support Nozomi devices too
The Nozomi cards were early CardBus devices that used a direct PCI
interface (instead of the more usual PCI<->USB controller) and the
'nozomi' kernel driver.  They use the same command set as most other
early Option NV modems.  Nozomi was always supposed to be driven
by the option plugin, but apparently that got broken when adding
some of the driver/vendor checks.
2011-07-25 12:57:59 -05:00
Guido Günther
a57618b091 zte: skip hex encoding (bgo #652682) 2011-07-21 15:16:44 -05:00
Guido Günther
70715c1c12 huawei: implement ussd encoding/decoding
Huawei wants the USSD as packed GSM.
2011-07-21 15:16:44 -05:00
Dan Williams
c70d6d565d Revert "cinterion: bail earlier if the plugin doesn't support the port"
This reverts commit 1e1bfbf1d8.

Aleksander says this might break RS232<->USB converter connected
Cinterion modems, so we'll need to handle this issue another way.
2011-07-07 10:28:41 -05:00
Dan Williams
1e1bfbf1d8 cinterion: bail earlier if the plugin doesn't support the port
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-06 15:50:08 -05:00
Dan Williams
0f6d1b2b42 nokia: N900 doesn't really need additional inter-character time
See 46d757faa7:

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-06 15:49:46 -05:00
Aleksander Morgado
50e9d6fc54 cinterion, wavecom: update copyright info 2011-07-06 09:37:47 +02:00
Dan Williams
077a4004fd gobi: support access technology reporting
Obviously only works while disconnected since the Gobi devices only
provide one AT-compatible tty.
2011-07-05 12:46:44 -05:00
Aleksander Morgado
7762d401e8 Merge remote-tracking branch 'lanedo/power-up-check-needed' 2011-06-30 19:48:23 +02:00
Eric Shienbrood
881f928c40 samsung: add product ID for the Y3400 module.
The Y3400 is functionally nearly identical to the Y3300.
2011-06-30 12:30:43 -05:00
Aleksander Morgado
7e69d2cf30 cinterion: always try to use RTS/CTS flow control
Otherwise, power-up after going to standby will not work properly
2011-06-22 16:00:58 +02:00
Aleksander Morgado
eae5d6c41b cinterion: enable power-off command to go to sleep/standby mode
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-22 13:11:39 +02:00
Aleksander Morgado
56db818901 sierra: do not send power-up command if not needed 2011-06-22 13:11:39 +02:00
Aleksander Morgado
34b5635f84 wavecom: enable power-off command to go to sleep/standby mode
AT+CFUN=4 will be used to go to standby mode.
2011-06-22 13:11:38 +02:00
Aleksander Morgado
ab485bd66a wavecom: try to power-up without rebooting
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-22 13:11:38 +02:00
Aleksander Morgado
255525a5a2 wavecom: do not send power-up command if not needed 2011-06-22 13:11:38 +02:00
Aleksander Morgado
884ba2bb09 build: place together samsung plugin compilation options 2011-06-14 12:58:36 +02:00
Aleksander Morgado
abcffd1753 cinterion: check probed caps from supports task 2011-06-14 12:40:36 +02:00
Eric Shienbrood
a35fc3a583 icera: report connected access technology when connected
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-13 10:31:35 -05:00
Eric Shienbrood
509521d180 icera: request specific network error codes on connect errors
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-09 16:45:08 -05:00
Eric Shienbrood
57a14da144 build: ensure Samsung plugin includes common Icera code
Otherwise make can't find build-time dependencies.
2011-06-09 16:41:09 -05:00
Eric Shienbrood
92159d9b0d icera: add more access technology strings 2011-06-09 16:40:11 -05:00
Eric Shienbrood
85aae2d8f1 samsung: disable should use CFUN=4
CFUN=4 disables the radios but still allows useful operations
like getting PIN lock status.  So use that instead.
2011-06-09 16:37:20 -05:00
Aleksander Morgado
f9f6d1dfdb plugins: propagate cached probing result to supports task
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-06 17:21:47 +02:00
Aleksander Morgado
3921559901 cinterion: set modem disabled if 3 consecutive AT commands get timed out 2011-06-06 17:20:17 +02:00
Aleksander Morgado
a2ba5c5e99 cinterion: enable reprobing on ports without cached capabilities 2011-06-06 17:20:17 +02:00
Aleksander Morgado
4cb039e34a cinterion: always sort last the plugin
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-06 17:20:17 +02:00
Aleksander Morgado
a9c93ec3ad cinterion: handle RS232 modems 2011-06-06 17:20:17 +02:00
Aleksander Morgado
9578e1b9ca cinterion: override CMER enabling command 2011-06-06 17:20:17 +02:00
Aleksander Morgado
de5eb41a70 cinterion: override SMS indications setup commands 2011-06-06 17:20:17 +02:00
Aleksander Morgado
0b8f86534a cinterion: if modem removed don't process response 2011-06-06 17:20:17 +02:00