Commit Graph
23 Commits
Author SHA1 Message Date
Aleksander Morgado 7c9ba7faf2 samsung: remove unused variables 2012-03-05 16:59:52 +01:00
Dan Williams 4dad94d500 core: rework port grabbing and organization
Make port roles more flexible.  We have modems that do PPP
on interfaces other than the primary interface, and that
wasn't possible with the old code.  So clean up all that
logic and move the port organization code into the core
so we can reduce code in the plugins.

In the new world order, the plugins say whether the port
is a QCDM port, an AT port, or ignored.  If it's an AT
port the plugins get to tag it as primary, secondary, or
PPP, or any combination of the 3.  This allows for modems
where PPP should really be done on the secondary port
(Huawei E220, Sierra devices) so that the primary port
stays open for command and status.

Modem subclasses no longer get asked to handle port grabbing
themselves.  Instead, that's now done by the generic classes
(MMGenericCdma and MMGenericGsm) and the plugins are notified
when a port is grabbed so they can add unsolicited response
handlers for it.  After all ports are grabbed by the generic
classes, they get "organized", which assigns various ports
to the roles of PRIMARY, SECONDARY, DATA, and QCDM based
on specific rules and hints that the plugin provided (which
are expressed as MMAtPortFlags).  The plugins then have
a chance to perform fixups on the primary port if they choose.

The plugin code is responsible for determining the port
hints (ie MMAtPortFlags) at probe time, instead of having
a combination of the plugin and the modem class do the
job.  This simplifies things greatly for the plugins at
the expense of more complicated logic in the core.
2012-02-28 10:06:04 -06:00
Thomas Tuttle 5fc4e866c2 time: implement in icera
Signed-off-by: Thomas Tuttle <ttuttle@chromium.org>
2012-01-27 15:14:27 -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
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
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 da55d11e72 plugins: use MMCallbackInfo instead of custom DisableInfo
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-05 17:51:05 +02:00
Aleksander Morgado 9323daec01 core, plugins: if modem removed don't process response
We try to avoid a memory leak when info->error is reset, as well as a second
re-schedule of the info.
2011-06-05 17:51:00 +02:00
Nathan Williams 97ea7dca8a samsung: split initialization sequence to ensure echo is off
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-19 15:01:34 -05:00
Aleksander Morgado fc1f35baf6 samsung: allow getting more than one band 2011-04-29 12:31:12 +02:00
Aleksander Morgado bb827c3ef7 samsung: allow setting a single band only 2011-04-29 12:31:11 +02:00
Dan Williams 76bdc658d3 samsung: use common Icera code
Port the differences over to the common Icera code (there were only
two) and remove the duplicate code from  the Samsung plugin.  The
Icera NWSTATE regex had to be adjusted to capture "-1" in the first
element which wasn't handled before but which I've seen on the
Samsung Y3300 before the card has registered.
2011-04-18 22:48:05 -05:00
Dan Williams 273f4203d4 serial: send entire command in one write if send_delay is 0 (chromium:13506)
Avoids additional USB latency and groups the whole command into one
USB packet.

BUG=chromium-os:13506
2011-04-08 15:42:28 -05:00
Elly Jones 2640baefa4 samsung: add Reset and UnlockRetries.
BUG=chromeos-partner:2999, chromeos-partner:3215
TEST=network_LockedSIM

Change-Id: I17c25c52fa5cf4cffa94e73bd827eaae9e687df0
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Signed-off-by: Jun Woo Lee <jw86.lee@samsung.com>
2011-04-08 15:30:58 -05:00
Dan Williams 68038cb926 samsung: fix style of samsung_call_control() name 2011-03-27 16:03:22 -05:00
Dan Williams 29b7ac3ddb samsung: fix up disconnect
Two issues here, first we dont' need to chain up to the parent
because it's not doing anything we need (it's mainly for PPP-based
devices) and second we need to wait a bit for the disconnect command
to complete by specifying a callback, otherwise the command may get
discarded when the port is shut down afterward.
2011-03-27 16:01:10 -05:00
Dan Williams 4b15737f8d samsung: streamline enable/init process
Don't need init retries since the modem seems pretty sane, and we
also don't need to call AT+CFUN=1 twice.  Just once should be
fine.  We also don't need any "flashing" since the modem doesn't
really do PPP and thus shouldn't need any of the serial port
carrier stuff to get its attention, since we'll never be using
PPP on any of its ports.
2011-03-27 15:59:27 -05:00
Dan Williams 3593094eb7 samsung: remove debug code 2011-03-27 15:47:08 -05:00
Dan Williams 7daad80242 samsung: fix access technology detection
Need to send the MM allowed mode back to the caller, not the
Icera mode.  Simple typo in original plugin patch I think.
2011-03-27 15:45:29 -05:00
Dan Williams 791677ca40 samsung: make a few local functions private
No need for them to be public as they aren't used anywhere else.
2011-03-27 15:41:47 -05:00
Dan Williams 35b3e348e6 samsung: drop PORT_TYPE_ECM
Isn't really needed since it's just the same as any other net
device port type.
2011-03-27 15:23:44 -05:00
Dan Williams b76889c358 samsung: spacing, style, and build fixes
Clean up the spacing and use more consistent styling.
2011-03-27 15:18:09 -05:00
Jun Woo Lee 4ad0c01be0 modemmanager: Add support for Samsung Y3300 modem
BUG=chrome-os-partner:2394
TEST=gmerge modemmanager, watch logs, see detected as Samsung modem, connect to AT&T network

Review URL: http://codereview.chromium.org/6614026
Patch from Jun Woo Lee <jw86.lee@samsung.com>.

Change-Id: I913628ff4a1cd16c8180e3c808644b0134e69e31
2011-03-11 21:50:05 -06:00