Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
Anything with vendor ID 0x1c9e really; like Alcatel X020, X030,
X060s, etc. Longcheer appears to make the actual hardware that all
the devices with vendor ID 0x1c9e use. You'll see it in .INF files
with "CMLONG" as part of the USB interface definition.
If the ports are not correctly detected, we need to get the driver's
.INF files to determine what the ports should be, and add them to
the udev rules file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MM would appear to hang sometimes when writing to serial devices but
in reality was just retrying the write too many times. Make the
retry limit time-based so MM doesn't hang but times the attempt out
instead.
|
|
|
|
At the moment only the Enabled property is exported.
|
|
|
|
If they're not there, just ignore them and don't build the PPP-enabled
bits of the test tool.
|
|
|
|
|
|
|
|
|
|
It turns out that "Modem is [NOT] registered" is not a good indicator
of whether the card has service or not; instead some of the AT!STATUS
response is needed to really determine registration state or not.
|
|
This implements the same fixes that NetworkManager's 0.7 branch
implemented in commits f38ad328acfdc6ce29dd1380602c546b064161ae and
1235f71b20c92cded4abd976ccc5010649aae1a0. Many ZTE devices will
spam the port with messages about waiting voicemail/SMS which buffer
up and cause the device to eventually crash if not suppressed.
|
|
Which some Huawei modems (EC168C) don't do.
|
|
at!pcstate is what Sierra CDMA modems use instead of AT+CFUN for
powering the radio on and off. It doesn't turn the modem off completely
like AT+CFUN=0 does for many GSM devices though, so it's quite a lot nicer.
|
|
This is the MM equivalent of NM commit 9d7f5b3d084eee2ccfff721c4beca3e3f34bdc50;
Genuine Option NV devices are always supposed to use USB interface 0 as
the modem/data port, per mail with Option engineers. Only this port
will emit responses to dialing commands.
|
|
If the modem wasn't connected when disable is called, the generic GSM
code doesn't need to shut anything down and thus closes the serial
port immediately. That means the mbm plugin's CREG=0 and CMER=0 won't
get sent because the port is closed. mbm needs to ensure that it's
commands actually get sent to the modem by really sending them and
waiting for the response before chaining up to the parent's disable.
|
|
|
|
Some modems want one, some modems want the other. Try both.
|
|
Most AT command references allow modems to report SID 0, even though
SID 0 is not a valid SID and is not assigned to any CDMA network.
Some Sierra 5725 cards have been seen to report valid class and band
from the +CSS response but a SID 0. Accept SID 0 when at least one
other element of the +CSS response indicates that the modem has service.
Otherwise, report "no service" as before.
|
|
|
|
|
|
Some modems delay the +COPS response until registration is complete,
others return right away. Make sure that both behaviors work
correctly.
|
|
|
|
|
|
And consolidate generic port enable code in one place since pretty
much every modem needs that.
|
|
|
|
|
|
|
|
|
|
We only want to ignore connected/connecting/disconnecting states
and update the state based on registration for unsolicited
registration changes. Basically, when disconnecting, the modem
will be in DISCONNECTING state, but after the disconnect has finished
we want to update the modem's state based on the current
registration status. But the previous check for >= DISCONNECTING
would prevent that from happening, so we need a slightly more specific
check in update_enabled_state().
|
|
Oops.
|
|
Have to fall back to the previous state if the enable/disable
operation fails since we cannot assume anything about the new
modem state when a failure occurs.
|
|
|
|
|
|
|