Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Not all devices support unsolicited responses for access technology,
so lets poll it periodically along with registration state and
signal quality.
|
|
|
|
|
|
This specifically fixes a regression with Novatel GSM secondary
AT port enablement, where the inital pin check closed the port
before the Novatel plugin could send the command to flip secondary
ports to AT mode.
But it's useful elsewhere too, and simplifies a bunch of the PIN
checking code which had to use various ugly methods to track whether
to close the port or not after checking the PIN.
|
|
Some devices (Blackberries via DUN) appear to always return an error
for AT+CREG, which is valid in some cases. If that happens lets also
try AT+CGREG too, which on these devices responds with the correct
packet data registration state.
|
|
|
|
Instead of returning an unhelpful error when there isn't a second
AT port (which there never will be for Novatel CDMA devices) we should
let the superclass handle the request.
|
|
|
|
|
|
Should have ERROR in them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
#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.
|
|
Some devices (at least one Blackberry we know about) don't include
the () around the response. Handle that and add testcases for it.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
Since Generic is always last, it was getting ignored by this
off-by-one bug caused by a previous patch.
|
|
|
|
And fix a small bug where polling wasn't started for the ENABLED state.
|
|
|
|
|
|
And add a testcase for packet encapsulation to ensure we don't
have further endian issues in the future.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
|
|
EC168C has a value of 0x16 for mode pref, which is unknown. But
that shouldn't fail the testcases.
|
|
Found on the Huawei EC121.
|
|
Huawei EC121 doesn't implement the MDN NV item, and we're also missing
some values for the CM subsystem mode pref enum.
|
|
Determined from various sources including RTManager and
"Technical Introduction to CDMA" (Course RF100 Chapter 7).
|
|
|
|
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.
|
|
Found in RTManager
|