diff options
author | Wink Saville <wink@google.com> | 2014-10-17 15:01:45 -0700 |
---|---|---|
committer | Wink Saville <wink@google.com> | 2014-10-17 15:01:45 -0700 |
commit | 8b4e4f7e5ddcb8b7450bcded4d0395f02b340bbe (patch) | |
tree | c46c757dc0b77e9cecb728bbbf9a2a3bc1522454 /include/telephony/ril.h | |
parent | 760123fc26b00aacf7a9e75eb681e7b9ce4e6560 (diff) | |
download | android_hardware_ril-8b4e4f7e5ddcb8b7450bcded4d0395f02b340bbe.tar.gz android_hardware_ril-8b4e4f7e5ddcb8b7450bcded4d0395f02b340bbe.tar.bz2 android_hardware_ril-8b4e4f7e5ddcb8b7450bcded4d0395f02b340bbe.zip |
Radio Capability Support.
New design of capability switch for L.
Add new RIL requests:
RIL_REQUEST_GET_RADIO_CAPABILITY
RIL_REQUEST_SET_RADIO_CAPABILITY
RIL_UNSOL_RADIO_CAPABILITY
These commands allow the framework to communicate what the Radio
Capabilities for each logical modem has or should be using.
It can support 2/3/4G switch and has flexible architecture to support
future technology.
Change-Id: Iedf7f608d2ba3c06a883500f2d85abb98e69d9c1
Diffstat (limited to 'include/telephony/ril.h')
-rw-r--r-- | include/telephony/ril.h | 111 |
1 files changed, 107 insertions, 4 deletions
diff --git a/include/telephony/ril.h b/include/telephony/ril.h index 6f3338b..52cb918 100644 --- a/include/telephony/ril.h +++ b/include/telephony/ril.h @@ -57,6 +57,8 @@ extern "C" { #define MAX_CLIENT_ID_LENGTH 2 #define MAX_DEBUG_SOCKET_NAME_LENGTH 12 #define MAX_QEMU_PIPE_NAME_LENGTH 11 +#define MAX_UUID_LENGTH 64 + typedef void * RIL_Token; @@ -149,6 +151,62 @@ typedef enum { RADIO_TECH_TD_SCDMA = 17 } RIL_RadioTechnology; +typedef enum { + RAF_UNKNOWN = (1 << RADIO_TECH_UNKNOWN), + RAF_GPRS = (1 << RADIO_TECH_GPRS), + RAF_EDGE = (1 << RADIO_TECH_EDGE), + RAF_UMTS = (1 << RADIO_TECH_UMTS), + RAF_IS95A = (1 << RADIO_TECH_IS95A), + RAF_IS95B = (1 << RADIO_TECH_IS95B), + RAF_1xRTT = (1 << RADIO_TECH_1xRTT), + RAF_EVDO_0 = (1 << RADIO_TECH_EVDO_0), + RAF_EVDO_A = (1 << RADIO_TECH_EVDO_A), + RAF_HSDPA = (1 << RADIO_TECH_HSDPA), + RAF_HSUPA = (1 << RADIO_TECH_HSUPA), + RAF_HSPA = (1 << RADIO_TECH_HSPA), + RAF_EVDO_B = (1 << RADIO_TECH_EVDO_B), + RAF_EHRPD = (1 << RADIO_TECH_EHRPD), + RAF_LTE = (1 << RADIO_TECH_LTE), + RAF_HSPAP = (1 << RADIO_TECH_HSPAP), + RAF_GSM = (1 << RADIO_TECH_GSM), + RAF_TD_SCDMA = (1 << RADIO_TECH_TD_SCDMA), +} RIL_RadioAccessFamily; + +typedef enum { + RC_PHASE_CONFIGURED = 0, // LM is configured is initial value and value after FINISH completes + RC_PHASE_START = 1, // START is sent before Apply and indicates that an APPLY will be + // forthcoming with these same parameters + RC_PHASE_APPLY = 2, // APPLY is sent after all LM's receive START and returned + // RIL_RadioCapability.status = 0, if any START's fail no + // APPLY will be sent + RC_PHASE_UNSOL_RSP = 3, // UNSOL_RSP is sent with RIL_UNSOL_RADIO_CAPABILITY + RC_PHASE_FINISH = 4 // FINISH is sent after all commands have completed. If an error + // occurs in any previous command the RIL_RadioAccessesFamily and + // LogicalModem fields will be the prior configuration thus + // restoring the configuration to the previous value. An error + // returned by this command will generally be ignored or may + // cause that logical modem to be removed from service. +} RadioCapabilityPhase; + +typedef enum { + RC_STATUS_NONE = 0, // This parameter has no meaning with RC_PHASE_START, + // RC_PHASE_APPLY + RC_STATUS_SUCCESS = 1, // Tell modem the action transaction of set radio + // capability was success with RC_PHASE_FINISH + RC_STATUS_FAIL = 2, // Tell modem the action transaction of set radio + // capability is fail with RC_PHASE_FINISH. +} RadioCapabilityStatus; + +#define RIL_RADIO_CAPABILITY_VERSION 1 +typedef struct { + int version; // Version of structure, RIL_RadioCapability_Version + int session; // Unique session value defined by framework returned in all "responses/unsol" + int phase; // CONFIGURED, START, APPLY, FINISH + int rat; // RIL_RadioAccessFamily for the radio + char logicalModemUuid[MAX_UUID_LENGTH]; // A UUID typically "com.xxxx.lmX where X is the logical modem. + int status; // Return status and an input parameter for RC_PHASE_FINISH +} RIL_RadioCapability; + // Do we want to split Data from Voice and the use // RIL_RadioTechnology for get/setPreferredVoice/Data ? typedef enum { @@ -1089,8 +1147,6 @@ typedef struct { #define RIL_CDMA_MAX_NUMBER_OF_INFO_RECS 10 -#define RIL_HARDWARE_CONFIG_UUID_LENGTH 64 - typedef struct { char numberOfInfoRecs; RIL_CDMA_InformationRecord infoRec[RIL_CDMA_MAX_NUMBER_OF_INFO_RECS]; @@ -1135,12 +1191,12 @@ typedef struct { } RIL_HardwareConfig_Modem; typedef struct { - char modemUuid[RIL_HARDWARE_CONFIG_UUID_LENGTH]; + char modemUuid[MAX_UUID_LENGTH]; } RIL_HardwareConfig_Sim; typedef struct { RIL_HardwareConfig_Type type; - char uuid[RIL_HARDWARE_CONFIG_UUID_LENGTH]; + char uuid[MAX_UUID_LENGTH]; RIL_HardwareConfig_State state; union { RIL_HardwareConfig_Modem modem; @@ -4089,6 +4145,41 @@ typedef struct { */ #define RIL_REQUEST_SHUTDOWN 129 +/** + * RIL_REQUEST_GET_RADIO_CAPABILITY + * + * Used to get phone radio capablility. + * + * "data" is int * + * ((int *)data)[0] is the phone radio access family defined in + * RadioAccessFamily. It's a bit mask value to represent the support type. + * + * Valid errors: + * SUCCESS + * RADIO_NOT_AVAILABLE + * GENERIC_FAILURE + */ +#define RIL_REQUEST_GET_RADIO_CAPABILITY 130 + +/** + * RIL_REQUEST_SET_RADIO_CAPABILITY + * + * Used to set the phones radio capability. Be VERY careful + * using this request as it may cause some vendor modems to reset. Because + * of the possible modem reset any RIL commands after this one may not be + * processed. + * + * "data" is the RIL_RadioCapability structure + * + * "response" is the RIL_RadioCapability structure, used to feedback return status + * + * Valid errors: + * SUCCESS means a RIL_UNSOL_RADIO_CAPABILITY will be sent within 30 seconds. + * RADIO_NOT_AVAILABLE + * GENERIC_FAILURE + */ +#define RIL_REQUEST_SET_RADIO_CAPABILITY 131 + /***********************************************************************/ @@ -4646,6 +4737,18 @@ typedef struct { */ #define RIL_UNSOL_DC_RT_INFO_CHANGED 1041 +/** + * RIL_UNSOL_RADIO_CAPABILITY + * + * Sent when RIL_REQUEST_SET_RADIO_CAPABILITY completes. + * Returns the phone radio capability exactly as + * RIL_REQUEST_GET_RADIO_CAPABILITY and should be the + * same set as sent by RIL_REQUEST_SET_RADIO_CAPABILITY. + * + * "data" is the RIL_RadioCapability structure + */ +#define RIL_UNSOL_RADIO_CAPABILITY 1042 + /***********************************************************************/ #if defined(ANDROID_MULTI_SIM) |