Age | Commit message (Collapse) | Author |
|
Can't schedule the info completion until we're sure all the
requests have completed. They won't necessarily be completed
in the same order they were issued since some of the data the
requests pull from could be cached and thus we don't have to
wait in the queue to hit up the modem.
|
|
|
|
As with allowed modes, make things clearer and simpler by giving
access technology it's own values.
|
|
Instead of trying to stuff everything into the mode bitfield it
turns out it's just easier, clearer, and simpler to use different
values for each of the following:
1) the device's supported access technologies and allowed modes
2) the device's current access technology
3) the device's allowed mode preference
Since none of the AccessTechnology or AllowedMode stuff has hit a
release yet, let's make sure we're doing it the right way early on.
|
|
|
|
Since the values they carry are bitfields, using the highest value
as the maximum isn't the right thing to do.
|
|
It's just easier this way. It makes little sense to allow
selecting mode combinations for anything other than
(HSDPA | HSUPA). Most radios don't allow fine-grained control
of the different technologies within each 2G or 3G class anyway
thus combinations like (GPRS | UMTS) are pointless since the
device wouldn't be able to use GPRS but not use EDGE.
|
|
AccessTechnology takes over half of what NetworkMode was supposed to
do, but we'll keep NetworkMode around for a while for compatibility
anyway. Create async updaters that subclasses can use to update
the access tech when they get unsolicited messages.
|
|
|
|
|
|
|
|
For registration updates and signal strength.
|
|
First, generically handle registration polling if the device does
not support unsolicited registration. Second, using the new
creg/cgreg parsing functions from mm-modem-helpers.c, handle
CREG=2 unsolicited registration replies to capture the GSM LAC/CI
for the location information API.
Because of these changes we can simplify the registration polling
during connection as well by using the common registration parsing
code and the cached registration state.
|
|
407abc65c6ccd802ce8456e5a63e68fab1c7d0a1
Got the logic wrong in that commit. Fix it. Network registration
should always be run since it handles polling for registration
state if needed before continuing.
|
|
|
|
|
|
This lets subclasses handle errors when they know the device supports
the power-up command. Also will let us simplify a number of plugins.
|
|
First, short-circuit the Enable process if the device requires a PIN
or PUK since for many devices the enable is going to fail anyway
until the PIN is sent.
Second, send the PIN first during the simple state machine for the
same reason; we need the device unlocked before we want to try
to enable it. This also reworks the simple state machine to be a
bit clearer and make each state step correspond to the action it's
actually doing instead of being off-by-one visually (but not logically).
|
|
Don't return until we know what the updated lock status is. Fixes an
issue where callers that send the PIN before the modem is enabled
(remember, some modems can't be enabled until the PIN is entered, so
sometimes we have to send the PIN before it's enabled) would get
the reply too early and get failures from other operations.
|
|
|
|
|
|
It's useful to let distros and admins set policy differently for device
information (for support, inventory, etc) than for actually controlling
the device like PIN/PUK unlocks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When the support is complete, use --with-polkit to enable
PolicyKit support. It's not there yet, but this commit adds an
authorization provider framework which will be extended to allow
hooking into PolicyKit.
|
|
If the modem echoed commands by default (since we may not have
initialized the modem yet), the echoed command would confuse
the PIN check reply parser.
|
|
|
|
|
|
Even just walking sysfs for driver and parent devices takes
time for ports we know we'll never use, so take a short-cut
and save some startup time. This reduces the startup
overhead to some 15%.
|
|
|
|
Some devices won't get to the initialization stage where we send
CMEE=1 (for numeric error codes) before they return some errors,
so handle the string representation of CME error codes too.
|
|
Use the same error structure for parsing numeric and string-based errors.
|
|
|
|
|
|
|
|
And set UnlockRequired accordingly. Large cleanups and rework by
dcbw.
|
|
Clients can check the property to determine lock/unlock status and thus
unlock the modem before trying to connect if required.
Bits of the patch by dcbw (see the bug).
|
|
|
|
Some cards (Novatel S720 for example) can take a long time to start
a data call if the device isn't activated on the network or the
signal strength is low.
|
|
Make sure all errors actually get returned, not just removal errors.
|
|
#547294)
Some modems key the AT+CSS? response off their 1X state, so if the
modem has EVDO service but no 1X service, AT+CSS? will provide incorrect
registration state information and the registration checking will
end too early. Allow modems that can handle more specific registration
checking to skip the AT+CSS? part.
|
|
|
|
There are more places to handle, but these are the most critical. If
the modem is removed while a command is in-progress, the mm-callback-info
code will set info->modem to NULL. Make sure we check for that in
callbacks and return a reasonable error. Previous code would just
blindly forge ahead and die on a null dereference.
|
|
|
|
|
|
Some devices (ZTE MF628) respond to everything except CPIN? with
ERROR unless the PIN has been sent. Since no known CDMA devices
support AT+CPIN, assume that devices that return a CPIN response
are GSM devices.
|