Age | Commit message (Collapse) | Author |
|
Huawei will need this.
|
|
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.
|
|
|
|
|
|
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.
|
|
The GInterface structure for MMModemIcera isn't instance data, thus we
shouldn't be storing an instance pointer in it. Instead, make implemtors
store the intstance data in their private structure, and have them
implement an accessor for the Icera-private data. This makes everone
(especially GObject) happy. It's a bit of additional indirection, but
we still get to use the MM_MODEM_ICERA_GET_PRIVATE() and we still
get to cast the passed-in GInterface MMModemIcera into the various
GSM MMModem subclasses, which is all we ever wanted anyway.
|
|
Make sure all pending work, if any, is torn down when closing
the port, since it's closed, and is likely going to get unreffed
soon and we don't want anything running after the port is dead.
|
|
If the modem for some reason returns ERROR for a +CPIN when it's
unlocked, and subsequent PIN post-unlock pin checks return READY,
just treat the modem as unlocked don't return the +CPIN error.
|
|
|
|
|
|
|
|
Change interface to take the number of GSM characters
rather than the number of octets, so that it is possible to
distinguish the 7-character and 8-character cases.
|
|
Since we don't allow properties to be passed into the serial port
create routines we don't want a construct-only property here.
|
|
It's only used during probing where some port types (Sierra CnS
and some Icera devices) may send streams of data that we can't
understand until we close the port. It interferes with some SMS
operations, so turn it off for ports opened after probing.
|
|
Use AT+WMBS for devices in 2G mode, and AT+WUBS for devices in 3G mode.
|
|
|
|
Check the current functionality status with AT+CFUN? and make sure its '1',
otherwise, RF may be switched off.
|
|
For 3G devices in Class A, AT+WWSM can be used to get or set the allowed mode:
* +WWSM: 0 (2G only)
* +WWSM: 1 (3G only)
* +WWSM: 2,0 (Any)
* +WWSM: 2,1 (2G preferred)
* +WWSM: 2,2 (3G preferred)
For 2G devices, there is no such command, so we will default to Any and allow
2G-only and 2G-preferred setups.
|
|
These modems can be configured to use different mobile classes. For each kind of
modem, the best mobile class is the highest one in the following order:
- Class A (3G only mode)
- Class B (PS or CS, GPRS/EDGE or GSM)
- Class CG (PS only, GPRS/EDGE)
- Class CC (CS only, GSM)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Let modems we know don't suck use a zero send-delay at probe time,
which greatly reduces time required to probe AT-compatible ports.
|
|
Otherwise we don't get the expected "Incorrect password" error if the
PIN is wrong, just a generic error.
|
|
Avoids additional USB latency and groups the whole command into one
USB packet.
BUG=chromium-os:13506
|
|
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>
|
|
|
|
New mm_serial_parser_v1_set_custom_regex() method.
|
|
So that cached values can be returned if querying while the port is connected.
|
|
If a port returns EAGAIN on write attempts, previously the code would
spin and attempt to resend the failed byte after send_delay
microseconds. This resulted in up to 3 second hard blocks in
the serial code when sending to ports that don't respond. While
in this blocking loop no other events or dbus commands could be
processed.
Instead, send each byte and reschedule sending the next byte in
send_delay microseconds, so that we can process other events in between
attempts to write to stupid ports.
This doesn't hugely decrease the amount of time that probing
requires, since we still need to probe all ports of the device
before exporting the modem to D-Bus, but it does let MM find
responsive ports much more quickly, and ensures that MM doesn't
block any D-Bus requests.
|
|
|
|
|
|
|
|
AC_GNU_SOURCE is deprecated, AC_USE_SYSTEM_EXTENSIONS (introduced in
autoconf 2.60) should be used instead.
|
|
|
|
The new and old state arguments were flipped.
|
|
|
|
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.
|
|
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.
|
|
|
|
Need to send the MM allowed mode back to the caller, not the
Icera mode. Simple typo in original plugin patch I think.
|
|
No need for them to be public as they aren't used anywhere else.
|
|
Use standard vendor/device id detection mechanisms and handle the
net port like other net ports are handled, by just claiming it. Also
reject CDMA modems for now.
|
|
Isn't really needed since it's just the same as any other net
device port type.
|
|
Clean up the spacing and use more consistent styling.
|
|
|
|
|