Commit Graph
997 Commits
Author SHA1 Message Date
Aleksander Morgado f07101943c iface-modem-simple: new connection logic when more than one bearer around
For mixed 3GPP+CDMA modems, we first try to connect the 3GPP bearers, and then
the CDMA ones.
2012-03-15 14:14:49 +01:00
Aleksander Morgado 8782df1b15 broadband-modem: on mixed CDMA+LTE modems, guess which kind of bearer to create 2012-03-15 14:14:49 +01:00
Aleksander Morgado 744fe5712d iface-modem-simple: build 3GPP+CDMA registration check logic
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.
2012-03-15 14:14:49 +01:00
Aleksander Morgado a0255273f0 iface-modem-cdma: let caller decide the maximum registration timeout 2012-03-15 14:14:49 +01:00
Aleksander Morgado cc4e469b1a iface-modem-3gpp: let caller decide the maximum registration timeout 2012-03-15 14:14:49 +01:00
Aleksander Morgado 787a651f19 broadband-modem: implement CDMA registration method
Will wait up to 60s to be registered in the CDMA network.
2012-03-15 14:14:49 +01:00
Aleksander Morgado 0b8ad70250 iface-modem-cdma: provide a method to register in the CDMA network
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.
2012-03-15 14:14:49 +01:00
Aleksander Morgado 205dc51cb5 broadband-modem: refactor the code a bit
* 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.
2012-03-15 14:14:49 +01:00
Aleksander Morgado b74c01478e broadband-modem: set auto registration with AT+COPS=0
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.
2012-03-15 14:14:49 +01:00
Dan Williams 713937f1f0 manager: make sure modems get exported when all their ports are finished
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.
2012-03-15 14:14:48 +01:00
Dan Williams c697027cee broadband-modem: fix check for QCDM capability
has_qcdm_port was never set to TRUE anywhere...
2012-03-15 14:14:48 +01:00
Dan Williams 98755bd508 broadband-modem: ignore early AT error responses for modem info
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.
2012-03-15 14:14:48 +01:00
Dan Williams cb2d6d6105 base-modem-at: indicate sequence status to response parsers
Let parsers know if this command is the last in a sequence since
they may want to handle errors differently if that's the case.
2012-03-15 14:14:48 +01:00
Aleksander Morgado 4e06e0e67d bearer-cdma: implement bearer connection and disconnection 2012-03-15 14:14:48 +01:00
Aleksander Morgado 9641c63759 bearer-cdma: new property for the number to dial 2012-03-15 14:14:48 +01:00
Aleksander Morgado d1cfdd974c bearer-cdma: when specific RM protocol given to be used, ensure it is supported
If the requested RM protocol is not supported, the CDMA Bearer creation will
fail.
2012-03-15 14:14:48 +01:00
Aleksander Morgado 070c277013 bearer-cdma: make it async-initable
We'll run some checks before having the object fully created.
2012-03-15 14:14:48 +01:00
Aleksander Morgado 2a0deb47f4 bearer-cdma: avoid the need of the modem object during new_finish() 2012-03-15 14:14:48 +01:00
Aleksander Morgado 56956a36ad bearer-cdma: allow subclasses to use the same unique path generator 2012-03-15 14:14:48 +01:00
Aleksander Morgado 91eb041a63 bearer-3gpp: avoid the need of the modem object during new_finish() 2012-03-15 14:14:48 +01:00
Aleksander Morgado ba9bdb37a9 bearer-3gpp: allow subclasses to use the same unique path generator 2012-03-15 14:14:47 +01:00
Aleksander Morgado 3d6df6a1f4 bearer: export the object whenever both path and connection are set 2012-03-15 14:14:47 +01:00
Aleksander Morgado 816a1318cb sim: minor code simplification 2012-03-15 14:14:47 +01:00
Aleksander Morgado a534afa84d sim: handle initialization failures properly
We should't use MM_SIM() on possibly NULL values.
2012-03-15 14:14:47 +01:00
Aleksander Morgado 7db16d2279 bearer: make bearer creation an asynchronous operation
We may want to do some checks while creating a new bearer.
2012-03-15 14:14:47 +01:00
Aleksander Morgado 6a38bcf1a1 broadband-modem: setup 3GPP and CDMA bearer creation logic
On mixed CDMA+LTE modems, just default to create a 3GPP bearer.
2012-03-15 14:14:47 +01:00
Aleksander Morgado cc4f662239 iface-modem-cdma: setup creation of CDMA bearers 2012-03-15 14:14:47 +01:00
Aleksander Morgado 06ea25c0d4 bearer-cdma: new bearer to handle connections in CDMA networks 2012-03-15 14:14:47 +01:00
Aleksander Morgado 531c1fa660 bearer: set allow-roaming as property at generic bearer object level 2012-03-15 14:14:47 +01:00
Aleksander Morgado 7f975a30b3 build: remove glib-mkenums generated files during make clean 2012-03-15 14:14:47 +01:00
Aleksander Morgado d178fb1f09 plugin-manager: fix loop of deferred tasks when no best plugin found
If deferring tasks until result suggested, and we never got a suggestion, the
tasks may have been left deferred in loop forever. We now remove the defer
timeout in the case of waiting for suggestion, and ensure that we cancel tasks
if the last valid probing ended without best plugin found.
2012-03-15 14:14:46 +01:00
Aleksander Morgado 2c0c668462 iface-modem-cdma: load NID if available in the CDMA status QCDM response 2012-03-15 14:14:46 +01:00
Aleksander Morgado 48d5ac6682 core: use g_list_free_full() when possible 2012-03-15 14:14:46 +01:00
Aleksander Morgado a0f7db513f iface-modem-cdma: setup periodic registration checks 2012-03-15 14:14:46 +01:00
Aleksander Morgado abf0d1afc1 iface-modem-cdma: report state changes with subsystem ID
Different subsystem IDs used for CDMA1x and EVDO
2012-03-15 14:14:46 +01:00
Aleksander Morgado 8b78c39414 iface-modem-3gpp: report state changes with subsystem ID 2012-03-15 14:14:46 +01:00
Aleksander Morgado 0b8d0c697d iface-modem: get consolidated state from all subsystems
We don't want, e.g.,  REGISTERED->ENABLED transitions when 3GPP gets
unregistered but we're still registered in CDMA.
2012-03-15 14:14:46 +01:00
Aleksander Morgado 6d76f1755f broadband-modem: implement default detailed CDMA registration getter
Fully based on Sprint commands
2012-03-15 14:14:46 +01:00
Aleksander Morgado a767c2c523 broadband-modem: skip CDMA registration check steps on default implementation
If we know that there is no QCDM port, skip QCDM-based checks.
If we know there are Sprint commands, skip CDMA1x Serving System check.
If we know there are no Sprint commands, skip detailed registration getter.
2012-03-15 14:14:46 +01:00
Aleksander Morgado 9b860021a0 broadband-modem: set NO_NETWORK error if we couldn't get SID from CDMA1x SS checks 2012-03-15 14:14:45 +01:00
Aleksander Morgado 9f8e81277f iface-modem-cdma: allow to configure which registration steps to run
Implementations of the CDMA interface are allowed to specify which steps in the
registration checks can be skipped. For example, if no QCDM ports are available,
there won't be any need to try QCDM-based checks; or if Sprint commands are
available, there won't be any need to run CDMA1x Serving System checks.
2012-03-15 14:14:45 +01:00
Aleksander Morgado ad05cd2916 iface-modem-cdma: last step to get detailed registration state 2012-03-15 14:14:45 +01:00
Aleksander Morgado d0d3d1f545 plugin-base: keep track of the probe for the net port, even if it wasn't run 2012-03-15 14:14:45 +01:00
Aleksander Morgado 16ed08cc85 port-probe: avoid warnings when probe was for a net device
net devices aren't really probed
2012-03-15 14:14:45 +01:00
Aleksander Morgado 32a0c8fbb7 plugin-manager: new defer-until-suggested support check result handling
'net' ports will be supported as soon as there is another port reporting
successful support.
2012-03-15 14:14:45 +01:00
Aleksander Morgado 65c14607cd broadband-modem: add LTE capability checks 2012-03-15 14:14:45 +01:00
Aleksander Morgado e28183274f broadband-modem: implement default serving system and service status retrieval 2012-03-15 14:14:45 +01:00
Aleksander Morgado 9efabb8fcb modem-helpers: new CDMA helper parsers 2012-03-15 14:14:45 +01:00
Aleksander Morgado 44289da531 iface-modem-cdma: run all registration checks during CDMA interface enable 2012-03-15 14:14:45 +01:00
Aleksander Morgado 11038be07f broadband-modem: implement CDMA registration state and network supported properties 2012-03-15 14:14:45 +01:00