Commit Graph
346 Commits
Author SHA1 Message Date
Dan Williams 44deca2c5a core: blacklist Gemplus smarcard reader (bgo #608022) 2010-04-09 19:38:22 -07:00
Dan Williams 78c232c2d1 core: actually ignore blacklisted devices 2010-04-09 19:32:47 -07:00
Dan Williams 387b64a92b core: allow blacklisting various devices (rh #544121) (bgo #608022) 2010-04-09 19:22:19 -07:00
Dan Williams 41ca10e92d core: get correct PCMCIA master device
The master device of PCMCIA-provided ports is typically the
last device in the PCMCIA subsystem, because the PCMCIA
controller is usually a PCI device or some other subsystem.
2010-04-09 17:33:22 -07:00
Dan Williams da74f6d8ec gsm: recheck modem lock status a few times after sending unlock request (bgo #613490)
Some devices (ZTE MF110	for example) respond immediately to the unlock
request, but in reality take a bit of time before they are actually
unlocked.  Check PIN status a few times after sending the unlock.
2010-04-09 17:11:56 -07:00
Dan Williams 0d381e2f11 gsm: fix CSCS=? parsing and add testcases
Some devices (at least one Blackberry we know about) don't include
the () around the response.  Handle that and add testcases for it.
2010-04-09 13:50:45 -07:00
Dan Williams b51a9d27e5 gsm: don't require +CMEE=1 success
Some devices apparently don't like it (even though it's required
in the standards) and since we can deal without it, don't require
+CMEE=1 to complete successfully.
2010-04-07 15:11:32 -07:00
Dan Williams f3dd034aad cdma: fix subclass registration state checking in error paths (rh #569067)
The generic CDMA superclass already checks minimal registration state,
and when some of the additional query_registration_state() subclass checks
were being performed, if the device returned an error (if it didn't support
the subclass' specific registration command like *STATE or ^SYSINFO) the
superclass' registration state checks would be thrown away.

Fix that by specifying the behavior of the subclass'
query_registration_state() methods to ignore most errors and leave the
superclass' registration state intact if a non-critical error occurs.
2010-04-05 18:46:53 -07:00
Dan Williams 49c363d83a core: fix handling of deferred ports during probe
The next plugin logic was wrong when a previous plugin had already
claimed support for the port and the Generic plugin was next.  In
that case, the code failed to call the functions to actually grab
the port.
2010-04-05 12:26:12 -07:00
Dan Williams 0108a36d27 serial: let port subclasses handle their own debug logging
We want to print out QCDM messages as hex, not ASCII.  So let
each port type print out it's own communication as it wants to.
2010-04-05 12:01:54 -07:00
Dan Williams bac945a8e4 core: fix supports check for last plugin (rh #579247)
Since Generic is always last, it was getting ignored by this
off-by-one bug caused by a previous patch.
2010-04-05 11:15:09 -07:00
Dan Williams a55265f03a gsm: clean up periodic poll start/stop and poll signal strength 2010-04-05 10:47:14 -07:00
Dan Williams 7da2b5cb6a cdma: clean up periodic poll start/stop
And fix a small bug where polling wasn't started for the ENABLED state.
2010-04-05 10:38:39 -07:00
Dan Williams 9112180f8a cdma: periodically poll registration state and quality 2010-04-05 09:58:12 -07:00
Dan Williams 2f1fbfb520 core: only enable location API for dbus-glib >= 0.86 2010-04-04 09:17:08 -07:00
Dan Williams 4d89b519b4 core: don't advance to next plugin until needed
Otherwise info->cur_plugin is wrong (and therefore we left uncleared
supports tasks in MMPluginBase) when the port isn't supported by
the plugin, but it's parent modem device was supported by the plugin.
Like when all probing of the port fails but one of it's siblings has
already been claimed by a modem; in this case we just drop the port
(so that no other plugin could try to claim it, because only one
plugin is allowed to handle all a modem's ports) but we still need
to tell the parent modem's plugin to clean up the supports task.
2010-03-31 03:05:22 -07:00
Dan Williams 40a713be6f core: pass try_supports_port() the existing modem 2010-03-30 23:36:08 -07:00
Dan Williams 4753f7360b core: don't re-export modems after db413acc4e
If a port is found by the kernel after the modem is already exported,
make sure we don't re-export the modem after the tardy port is handled.
2010-03-30 23:28:26 -07:00
Dan Williams d2e12742c4 cdma: use best active pilot EC/IO for signal strength when connected
If the modem doesn't have two AT ports (so one can be used for AT+CSQ
while connected) get the 1x active pilot's EC/IO and use that for
signal strength.
2010-03-30 17:28:13 -07:00
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 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 3d12055818 gsm: ensure solicited access technology is valid before using it 2010-03-26 00:16:24 -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 76130862ed core: cleanly disable modems on shutdown 2010-03-22 15:41:14 -07:00
Dan Williams 282ba6561e gsm: fix argument validation in SetAllowedMode 2010-03-22 14:56:47 -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 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 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
Dan Williams fb2b80f11a serial: flush I/O right after open
We don't really care about anything that came before.
2010-03-17 12:05:31 -07:00
Michael Biebl 857dcd7bcf serial: use termios instead of old terminal ioctls
Makes sure we build on Alpha, plus the right thing to do.
2010-03-17 11:59:29 -07:00
Dan Williams d7a0ad7686 gsm: implement roaming triggers 2010-03-16 22:44:09 -07:00
Dan Williams 2c65e0ceaa gsm: ignore SIM-PUK2 unlock required
Device is functional without it; it's only required for stuff
we don't do yet.
2010-03-16 17:19:21 -07:00