Commit Graph

918 Commits

Author SHA1 Message Date
Dan Williams
1f86a85c1c build: bump version to 0.5.999 for 0.6 development 2011-05-04 11:33:36 -05:00
Dan Williams
868129e37c build: build docs during distcheck and fix up udev rules install base 2011-05-04 11:33:20 -05:00
Dan Williams
82cee08875 samsung: lock plugin to Y3300 to exclude other Samsung USB modems
Like the SGH-Z810/SCH-U209 which are a different chipset, don't
have pseudo-ethernet ports, and just wouldn't work with this
plugin.
2011-05-02 18:35:50 -05:00
Aleksander Morgado
863dbca631 wavecom: enable usage of MM_MODEM_GSM_BAND_ANY in SetBand() 2011-04-29 12:31:14 +02: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
Aleksander Morgado
db7c11768a utils: new utils_check_for_single_value() method
It was being used in several places with different static implementations
2011-04-29 12:31:10 +02:00
Aleksander Morgado
a0c902bdb5 huawei: enable getting and setting more than one band 2011-04-29 12:31:09 +02:00
Aleksander Morgado
466b6edbf7 gsm: allow setting more than one band 2011-04-29 12:31:07 +02:00
Aleksander Morgado
573dcd51c0 introspection: add missing UMTS 2600 band reference 2011-04-28 12:02:15 +02:00
Aleksander Morgado
0cce1f4e4c build: remove unneeded message in configure build report
Location API is always built
2011-04-28 12:02:10 +02:00
Dan Williams
83bbd0eb11 build: only require gettext if enabling polkit 2011-04-27 14:54:41 -05:00
Dan Williams
c96db0c91b Revert "build: don't require intltool unless --with-polkit=yes"
This reverts commit 0299cf51c4.
2011-04-27 14:47:00 -05:00
Dan Williams
383bf8c9a3 Revert "build: po shouldn't be built unless --with-polkit=yes"
This reverts commit ba17060219.
2011-04-27 14:46:52 -05:00
Dan Williams
ba17060219 build: po shouldn't be built unless --with-polkit=yes
Since translations are only used with polkit.
2011-04-27 13:25:10 -05:00
Dan Williams
0299cf51c4 build: don't require intltool unless --with-polkit=yes 2011-04-27 13:00:51 -05:00
Dan Williams
dc89c0a42d huawei: rework probing and detection
Long ago there were problems where certain Huawei devices would
stop responding on various ports, and sometimes would crash
randomly.  The theory at the time was that touching the secondary
ports made the device angry, thus the plugin simply opened the
ports and listened for unsolicited messages.  But if the device
didn't send any during that 7 second period, MM would not detect
and secondary ports at all.  Plus, it was always a hack.

Instead, the new theory is that the device crashes if unsolicited
messages are enabled (^CURC=1), the secondary port gets touched,
*and* then closed and left for a while.  Fix that by turning
unsolicited messages off at probe time, on when the device is
enabled, and off again when the device is disabled like happens
for other modems.  Thus when MM first detects the modem, it turns
off unsolicited messages and the serial buffer on the secondary
port doesn't fill up and crash the modem.

Second, this allows us to simplify the probing logic quite a bit
so that we can probe all ports we find, but we still wait to probe
the first port so we can turn off unsolicited messages and get
hints about what port is the secondary.
2011-04-27 10:50:32 -05:00
Dan Williams
1cf7a4da44 plugins: allow multiple custom init commands in sequence
Huawei will need this.
2011-04-26 23:44:56 -05:00
Dan Williams
0befde3ce9 plugins: simplify custom init commands
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.
2011-04-26 19:43:40 -05:00
Marius B. Kotsbak
0b757465ff mbm: add MBM device IDs for Lenovo F5521gw module 2011-04-21 11:03:27 -05:00
Dan Williams
2a5cf2978b zte: only dispose Icera data once 2011-04-19 11:07:46 -05: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
8333fb657a icera: fix abuse of GInterface
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.
2011-04-18 22:08:19 -05:00
Dan Williams
74b1503c60 core: tear down all pending work when closing a port
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.
2011-04-18 17:39:59 -05:00
Dan Williams
fca4d3aa37 gsm: return success if unlocked but doesn't allow subsequent CPIN commands
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.
2011-04-18 17:38:39 -05:00
Dan Williams
5dadfa4c21 Merge remote-tracking branch 'lanedo/plugin-wavecom' 2011-04-14 14:20:43 -05:00
Nathan Williams
487972c1ac gsm: implement basic SMS reception and PDU parsing 2011-04-14 14:07:31 -05:00
Aleksander Morgado
48c7dac009 serial: ensure response array is empty before setting cached reply 2011-04-14 13:34:02 -05:00
Nathan Williams
d05c87e4c8 charset: change GSM unpack to take number of characters rather than octets
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.
2011-04-14 13:30:15 -05:00
Dan Williams
0a06dd324d serial: ensure spew control can be changed after port is created
Since we don't allow properties to be passed into the serial port
create routines we don't want a construct-only property here.
2011-04-14 13:26:16 -05:00
Nathan Williams
1c3101fbaf serial: allow spew control to be turned off
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.
2011-04-14 13:22:54 -05:00
Aleksander Morgado
765da63ad2 wavecom: set and get bands
Use AT+WMBS for devices in 2G mode, and AT+WUBS for devices in 3G mode.
2011-04-11 10:04:28 +02:00
Aleksander Morgado
ade8c17f6a gsm: handle UMTS 2600 internal band 2011-04-11 10:04:27 +02:00
Aleksander Morgado
d1453b0e19 wavecom: ensure full functionality status
Check the current functionality status with AT+CFUN? and make sure its '1',
otherwise, RF may be switched off.
2011-04-11 10:04:27 +02:00
Aleksander Morgado
e93f01f201 wavecom: set and get allowed mode
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.
2011-04-11 10:04:27 +02:00
Aleksander Morgado
c7119f0341 wavecom: ensure the modem uses the highest possible mobile class
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)
2011-04-11 10:04:27 +02:00
Aleksander Morgado
acf65de3b8 wavecom: query network technology capabilities 2011-04-11 10:04:27 +02:00
Aleksander Morgado
23649549bb wavecom: enable RTS/CTS flow control instead of XOFF/XON 2011-04-11 10:04:27 +02:00
Aleksander Morgado
1fb0b9d79b wavecom: disable default power up command 2011-04-11 10:04:27 +02:00
Aleksander Morgado
262edb96d5 wavecom: handle READY without OK in CPIN? reply 2011-04-11 10:04:27 +02:00
Aleksander Morgado
f91ee7af7d wavecom: add initial dummy plugin 2011-04-11 10:04:27 +02:00
Dan Williams
f4a26ec2b6 hso: use zero send_delay since Option firmware is generally excellent 2011-04-08 16:20:43 -05:00
Dan Williams
ed5aefb3cb serial: allow plugins to specify probe-time send_delay
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.
2011-04-08 16:19:36 -05:00
Dan Williams
7d20acc566 gsm: make sure verbose error reporting is enabled before checking PIN
Otherwise we don't get the expected "Incorrect password" error if the
PIN is wrong, just a generic error.
2011-04-08 16:00:36 -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
Nathan Williams
dbf9e085d4 sms: don't try to destroy NULL hash tables 2011-04-07 17:48:03 -05:00
Aleksander Morgado
9435a937ce serial: allow user to provide custom regex for successful and error replies
New mm_serial_parser_v1_set_custom_regex() method.
2011-04-06 17:11:20 -05:00
Aleksander Morgado
cc5fcd195a modem-base: allow NULL ports in get_card_info() if port_error given
So that cached values can be returned if querying while the port is connected.
2011-04-06 16:58:13 -05:00
Dan Williams
49150ca3a6 serial: don't let EAGAIN block sending commands until completion
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.
2011-04-06 13:00:55 -05:00