Commit Graph

3500 Commits

Author SHA1 Message Date
Dan Williams
db413acc4e core: only export modems when all ports are handled
A modem is now only exported to D-Bus when both of the following are true:

1) the modem is valid
2) all ports the modem provides have been handled by appropriate plugins

This ensures that all the modem's ports are completely ready before
any clients can do anything with it.  In the case of CDMA modems with
QCDM ports, this allows the QCDM ports to be detected before exporting
the modem.  Since the QCDM detection comes after AT probing, previously
this resulted in a CDMA modem getting exported to clients before we had
a QCDM port to query for registration status.
2010-03-30 16:06:55 -07:00
Dan Williams
df08f6a43f core: find the existing modem for a port in the manager 2010-03-30 15:03:35 -07:00
Dan Williams
720e38aec0 core: move physical device checking into the manager
It turns out that the manager needs to know about the physical
device so we can prevent multiple plugins from claiming ports on
the same modem.
2010-03-30 14:50:40 -07:00
Dan Williams
39326f2491 cdma: use DM for serving system if possible 2010-03-30 01:01:53 -07:00
Dan Williams
a7e7854171 qcdm: don't fail testcase on unknown mode pref values
EC168C has a value of 0x16 for mode pref, which is unknown.  But
that shouldn't fail the testcases.
2010-03-30 00:57:15 -07:00
Dan Williams
41c2e0a946 qcdm: add CM subsystem digital only mode preference
Found on the Huawei EC121.
2010-03-30 00:48:55 -07:00
Dan Williams
fc33616ae2 qcdm: fix testcases for various devices
Huawei EC121 doesn't implement the MDN NV item, and we're also missing
some values for the CM subsystem mode pref enum.
2010-03-30 00:38:14 -07:00
Dan Williams
0ae176c63c qcdm: add Pilot Set retrieval for signal strength calculations
Determined from various	sources	including RTManager and
"Technical Introduction to CDMA" (Course RF100 Chapter 7).
2010-03-30 00:32:27 -07:00
Dan Williams
cff40ac472 qcdm: allow result objects to hold boxed types 2010-03-30 00:29:31 -07:00
Dan Williams
71c6fa79f7 qcdm: fix CRC checking on some packets
Should be pointing to the CRC location in the *unescaped* packet
buffer since the CRC is subject to escaping/unescaping.  Previous
code pointed to the wrong location in the escaped packet buffer,
which was often pointing to the write place if there weren't many
escaped bytes in the input buffer, but was still wrong.
2010-03-29 16:42:53 -07:00
Dan Williams
2f099e2964 qcdm: complete Version Info command fields
Found in RTManager
2010-03-29 00:23:07 -07:00
Dan Williams
a98fa8a4b3 qcdm: fix up CDMA Status command fields and values
Found in two sources:
a) Руководство пользования тестером CDMA-450
b) RTManager
2010-03-29 00:08:46 -07:00
Dan Williams
98e8108ac2 qcdm: update CM subsys system modes 2010-03-28 23:39:19 -07:00
Dan Williams
4d426ebbbd gsm: only set auto registration if the modem isn't idle (related: bgo #591047)
Some modems (Huawei E1552) appear to have problems with auto registration
in some circumstances that we don't yet fully understand, such that when
AT+COPS=0 is sent they never end up registering with the correct network.
As a minor workaround, if the modem is already registered with a provider
and the user hasn't specified manual registration, don't set auto
registration but let the modem figure it out itself.

See (bgo #591047) for more details.
2010-03-28 09:30:16 -07:00
Dan Williams
fe69ab4210 huawei: ensure modem ports get claimed even if probe fails
Previously there was an issue where if the probe failed, because
we can't really probe huawei secondary ports for various reasons,
the Generic plugin would eventually come around and try actively
probing the secondary port after the Huawei plugin said "I don't
support this port".  Which resulted (potentially) in two MMModem
objects for the same device (one driven by Huawei, the other by
Generic).
2010-03-28 09:12:17 -07:00
Dan Williams
b876182fe6 zte: implement GSM solicited access technology request 2010-03-26 01:27:49 -07:00
Dan Williams
23986f8b0e huawei: implement GSM solicited access technology request 2010-03-26 01:15:20 -07:00
Dan Williams
a50708dbea sierra: implement GSM solicited access technology request 2010-03-26 00:27:30 -07:00
Dan Williams
3d12055818 gsm: ensure solicited access technology is valid before using it 2010-03-26 00:16:24 -07:00
Dan Williams
843a772b4c option/hso: implement solicited access technology request 2010-03-26 00:14:47 -07:00
Dan Williams
a83dcdba8a gsm: update access technology on successful registration 2010-03-26 00:14:23 -07:00
Dan Williams
4dbc2f2e9b gsm: fix wrong comparison
Bug didn't have much of an effect, but should be fixed anyway.
2010-03-25 13:47:30 -07:00
Dan Williams
0b9c173fe9 core: assume +CPIN "READY" response indicates GSM capability (rh #573510)
Assume (for now) that devices that respond to AT+CPIN without an
error are GSM devices.  This may not be 100% true as some devices
in Asia (where CDMA devices use RUIMs which are basically SIMs) support
+CPIN for unlocking the RUIM, but since CDMA devices more consistently
implement AT+GCAP and ATI than we should be safe for a while.
2010-03-23 14:37:01 -07:00
Dan Williams
e7d1e4adb9 cdma: use DM Call Manager for registration status if available
This should solve problems with users who's providers are EVDO
only and thus the device isn't in 1X mode, but who's modems
don't set anything meaningful for CAD or CSS when the 1X radio
isn't registered.  Previously, MM would just spin thinking it
wasn't registered when trying to connect.

This was mostly found with AnyDATA, Huawei, and some ZTE devices
from Russia and India.
2010-03-23 02:10:58 -07:00
Dan Williams
bcfb75d88d core: grab probed QCDM ports for plugins where they are useful 2010-03-23 01:36:00 -07:00
Dan Williams
c36aacee0a qcdm: use tcsetattr/tcgetattr for better compatibility
With Alpha, mainly.
2010-03-22 22:28:36 -07:00
Dan Williams
76130862ed core: cleanly disable modems on shutdown 2010-03-22 15:41:14 -07:00
Dan Williams
9e8a0fda9f option/hso: ensure unsolicited messages get turned off on disable 2010-03-22 15:05:45 -07:00
Dan Williams
7a5ba2e099 option/hso: make use of unsolicited access technology signals 2010-03-22 15:03:58 -07:00
Dan Williams
282ba6561e gsm: fix argument validation in SetAllowedMode 2010-03-22 14:56:47 -07:00
Dan Williams
6ab36bacf3 qcdm: add ZTE signal strength request 2010-03-22 13:03:53 -07:00
Dan Williams
7fbe4d8383 cdma: check SPSERVICE and SPERI when getting registration state 2010-03-22 00:28:21 -07:00
Dan Williams
3b32e2a679 cdma: check for +SPSERVICE and $SPERI
Which are Sprint-specific commands which appear to be implemented by
various phones for getting access technology and roaming status.
2010-03-21 17:50:45 -07:00
Dan Williams
6598d2ef7f core: parse the right thing on QCDM version info response 2010-03-21 17:48:19 -07:00
Dan Williams
96f5400cc9 core: fix error when unescaping QCDM packet fails 2010-03-21 17:47:15 -07:00
Dan Williams
f3e660444c core: fix 64-bit build error in QCDM packet decapsulation 2010-03-20 00:58:14 -07:00
Dan Williams
88c1423838 qcdm: clarify note about CM state vs. roam/mode pref values 2010-03-20 03:53:44 -07:00
Dan Williams
c03556f820 qcdm: fix up testcase output 2010-03-20 03:53:31 -07:00
Dan Williams
2e62a2e0a6 core: probe ports for QCDM capability too 2010-03-20 03:39:10 -07:00
Dan Williams
418ba174dc qcdm: fix decapsulation buffer size calculation 2010-03-20 03:38:54 -07:00
Dan Williams
ff2182fe1d core: let partial serial responses be consumed by the handlers 2010-03-20 02:57:33 -07:00
Dan Williams
4006ca4dec qcdm: better checking of NV read/write command results 2010-03-20 02:28:01 -07:00
Dan Williams
c4a1a78c43 qcdm: complete mode preference implementation 2010-03-20 00:09:38 -07:00
Dan Williams
26c1402aae qcdm: add initial roaming and mode preference bits 2010-03-19 19:18:02 -07:00
Dan Williams
5897d8f275 gsm: PIN2 doesn't block enabling either
Again, only required for various dialing features we don't deal with
yet.
2010-03-19 11:09:43 -07:00
Dan Williams
f5f388c7fd gsm: use new callback info chain functions for simple status 2010-03-19 11:05:05 -07:00
Dan Williams
85fc71818e core: have modem base class handle card information 2010-03-19 11:01:19 -07:00
Dan Williams
4558df894b helpers: add generic response stripping function 2010-03-19 10:57:01 -07:00
Dan Williams
6ca5765eb6 core: add chaining helper functions to callback info
Helpful when chaining a number of commands together when you want
to schedule the callback info only after all of them complete.
2010-03-19 10:54:10 -07:00
Dan Williams
bb62cfe07a core: add base location API implementation 2010-03-18 18:08:23 -07:00