cdma: don't blow away generic EVDO reg state if no specific state is available
Generic code (like the QCDM CM/HDR checks) would determine the EVDO registration state, which would then get blown away by the device-specific registration state query method. Modems that have a more specific check were fine, but generic devices that don't have more specific reg state checks can simply rely on the generic checks done earlier and don't need to update the EVDO state from real_query_registration_state().
This commit is contained in:
@@ -1700,11 +1700,17 @@ real_query_registration_state (MMGenericCdma *self,
|
||||
/* Try Sprint-specific commands */
|
||||
mm_at_serial_port_queue_command (port, "+SPSERVICE?", 3, reg_query_spservice_done, info);
|
||||
} else {
|
||||
/* Assume we're registered on the 1x network if we passed +CAD, +CSS,
|
||||
* and QCDM Call Manager checking.
|
||||
/* Assume we're at least registered on the 1x network if we passed
|
||||
* +CAD, +CSS, and QCDM Call Manager checking. But don't override a
|
||||
* more specific registration state passed from a caller.
|
||||
*/
|
||||
mm_generic_cdma_query_reg_state_set_callback_1x_state (info, MM_MODEM_CDMA_REGISTRATION_STATE_REGISTERED);
|
||||
mm_generic_cdma_query_reg_state_set_callback_evdo_state (info, MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN);
|
||||
if (cur_cdma_state == MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN)
|
||||
mm_generic_cdma_query_reg_state_set_callback_1x_state (info, MM_MODEM_CDMA_REGISTRATION_STATE_REGISTERED);
|
||||
|
||||
/* Don't touch EVDO state; it's already either UNKNOWN, or been set
|
||||
* by generic checking earlier.
|
||||
*/
|
||||
|
||||
mm_callback_info_schedule (info);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user