Split the after power up step into:
* querying supported functionality status during the first power-down request.
* querying supported networks during supported modes loading.
For mixed 3GPP+CDMA modems, we check registrations in both 3GPP and CDMA
networks, and we stop checks when we find ourselves registered in either one
or the other.
This will really not be like the 3GPP method. In 3GPP we can request to do
auto-registration, or request to lock to a specific Operator. Once that done,
we wait for unsolicited registration messages and also perform peridic
registration checks.
In the case of the CDMA network, the registration seems to be always automatic.
Therefore, this method to register in the CDMA network will just make sure that
we got registered, by waiting up to N seconds while doing periodic registration
checks.
We provide `--3gpp-register-home' to request automatic registration. This will
try to register in the home network if available; and if not available, in any
other network being allowed.
We also provide `--3gpp-register-in-operator' to try to lock the registration
in the network of a given specific operator, specified by MCCMNC.
* Include interface-specific prefixes in methods implemented (e.g.
'modem_3gpp_' for all 3GPP interface method implementations.
* Pack together in the private struct variables required in the implementation
of a given interface.
This is, remove the use of "AT+COPS=0,,". The extra commas break its use in a
Nokia C7, and the proper/clean way to do it anyway is to avoid using the commas.
My LG Rumor2 phone (ttyACM0 - AT, ttyUSB0 - QCDM) was never getting
exported after the QCDM port finished probing. Not entirely sure
why, but we should check whether we need to export a modem or not
any time a port gets grabbed.
Need to suggest that it's QCDM since the MMPortProbe stuff
doesn't get passed through to mm_base_modem_grab_port() so
we can't detect QCDM ports automatically there.
Where we have multiple commands that are all supposed to return
the same thing (ie, GMM/CGMM, CSQ/CSQ?) but some modems
support one and not the other, don't exit the sequence early if
the modem doesn't support one of them.
Gobi modems with CDMA firmware don't support the Cxxx variants
so the returned ERROR (CME error 100) made the generic parser
break out of the AT sequence without trying the additional
commands that are supported.