iface-modem-cdma: report state changes with subsystem ID

Different subsystem IDs used for CDMA1x and EVDO
This commit is contained in:
Aleksander Morgado
2012-03-15 14:14:46 +01:00
parent 8b78c39414
commit abf0d1afc1
+19 -12
View File
@@ -24,6 +24,9 @@
#include "mm-modem-helpers.h"
#include "mm-log.h"
#define SUBSYSTEM_CDMA1X "cdma1x"
#define SUBSYSTEM_EVDO "evdo"
/*****************************************************************************/
void
@@ -874,18 +877,20 @@ mm_iface_modem_cdma_update_evdo_registration_state (MMIfaceModemCdma *self,
case MM_MODEM_CDMA_REGISTRATION_STATE_REGISTERED:
case MM_MODEM_CDMA_REGISTRATION_STATE_HOME:
case MM_MODEM_CDMA_REGISTRATION_STATE_ROAMING:
mm_iface_modem_update_state (MM_IFACE_MODEM (self),
MM_MODEM_STATE_REGISTERED,
MM_MODEM_STATE_REASON_NONE);
mm_iface_modem_update_subsystem_state (MM_IFACE_MODEM (self),
SUBSYSTEM_EVDO,
MM_MODEM_STATE_REGISTERED,
MM_MODEM_STATE_REASON_NONE);
/* TODO: report proper EVDO revision (0/A/B) */
mm_iface_modem_update_access_tech (MM_IFACE_MODEM (self),
MM_MODEM_ACCESS_TECHNOLOGY_EVDO0,
ALL_CDMA_EVDO_ACCESS_TECHNOLOGIES_MASK);
break;
case MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN:
mm_iface_modem_update_state (MM_IFACE_MODEM (self),
MM_MODEM_STATE_DISABLED,
MM_MODEM_STATE_REASON_NONE);
mm_iface_modem_update_subsystem_state (MM_IFACE_MODEM (self),
SUBSYSTEM_EVDO,
MM_MODEM_STATE_ENABLED,
MM_MODEM_STATE_REASON_NONE);
mm_iface_modem_update_access_tech (MM_IFACE_MODEM (self),
0,
ALL_CDMA_EVDO_ACCESS_TECHNOLOGIES_MASK);
@@ -921,9 +926,10 @@ mm_iface_modem_cdma_update_cdma1x_registration_state (MMIfaceModemCdma *self,
case MM_MODEM_CDMA_REGISTRATION_STATE_HOME:
case MM_MODEM_CDMA_REGISTRATION_STATE_ROAMING:
mm_gdbus_modem_cdma_set_sid (skeleton, sid);
mm_iface_modem_update_state (MM_IFACE_MODEM (self),
MM_MODEM_STATE_REGISTERED,
MM_MODEM_STATE_REASON_NONE);
mm_iface_modem_update_subsystem_state (MM_IFACE_MODEM (self),
SUBSYSTEM_CDMA1X,
MM_MODEM_STATE_REGISTERED,
MM_MODEM_STATE_REASON_NONE);
mm_iface_modem_update_access_tech (MM_IFACE_MODEM (self),
MM_MODEM_ACCESS_TECHNOLOGY_1XRTT,
ALL_CDMA_CDMA1X_ACCESS_TECHNOLOGIES_MASK);
@@ -931,9 +937,10 @@ mm_iface_modem_cdma_update_cdma1x_registration_state (MMIfaceModemCdma *self,
case MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN:
if (mm_gdbus_modem_cdma_get_sid (skeleton) != MM_MODEM_CDMA_SID_UNKNOWN)
mm_gdbus_modem_cdma_set_sid (skeleton, MM_MODEM_CDMA_SID_UNKNOWN);
mm_iface_modem_update_state (MM_IFACE_MODEM (self),
MM_MODEM_STATE_DISABLED,
MM_MODEM_STATE_REASON_NONE);
mm_iface_modem_update_subsystem_state (MM_IFACE_MODEM (self),
SUBSYSTEM_CDMA1X,
MM_MODEM_STATE_ENABLED,
MM_MODEM_STATE_REASON_NONE);
mm_iface_modem_update_access_tech (MM_IFACE_MODEM (self),
0,
ALL_CDMA_CDMA1X_ACCESS_TECHNOLOGIES_MASK);