diff --git a/radio/1.2/Android.bp b/radio/1.2/Android.bp index 3b2a01a632..f4ca1cfea7 100644 --- a/radio/1.2/Android.bp +++ b/radio/1.2/Android.bp @@ -20,6 +20,7 @@ hidl_interface { ], types: [ "CardStatus", + "CellConnectionStatus", "CellIdentityCdma", "CellIdentityGsm", "CellIdentityLte", @@ -36,6 +37,7 @@ hidl_interface { "MaxSearchTimeRange", "NetworkScanRequest", "NetworkScanResult", + "PhysicalChannelConfig", "RadioConst", "ScanIntervalRange", ], diff --git a/radio/1.2/IRadioIndication.hal b/radio/1.2/IRadioIndication.hal index 2fb3038269..a12455738a 100644 --- a/radio/1.2/IRadioIndication.hal +++ b/radio/1.2/IRadioIndication.hal @@ -53,4 +53,13 @@ interface IRadioIndication extends @1.1::IRadioIndication { * @param lce LinkCapacityEstimate information as defined in types.hal */ oneway currentLinkCapacityEstimate(RadioIndicationType type, LinkCapacityEstimate lce); + + /** + * Indicates physical channel configurations. + * + * @param type Type of radio indication + * @param configs List of PhysicalChannelConfigs as defined in types.hal + */ + oneway currentPhysicalChannelConfigs(RadioIndicationType type, + vec configs); }; diff --git a/radio/1.2/types.hal b/radio/1.2/types.hal index ca701bf7bb..d5fa098b34 100644 --- a/radio/1.2/types.hal +++ b/radio/1.2/types.hal @@ -64,6 +64,21 @@ enum IncrementalResultsPeriodicityRange : int32_t { MAX = 10, }; +enum CellConnectionStatus : int32_t { + /** + * Cell is not a serving cell. + */ + NONE = 0, + /** + * UE has connection to cell for signalling and possibly data (3GPP 36.331, 25.331). + */ + PRIMARY_SERVING, + /** + * UE has connection to cell for data (3GPP 36.331, 25.331). + */ + SECONDARY_SERVING, +}; + /** * Overwritten from @1.0::IndicationFilter in order to redefine ALL. In the future, this should * be extended instead of overwritten. @@ -102,6 +117,12 @@ enum IndicationFilter : int32_t { * IRadio.setLinkCapacityReportingCriteria() are met. */ LINK_CAPACITY_ESTIMATE = 1 << 3, + /** + * When this bit is set, the modem must send the physical channel configuration update through + * IRadioIndication.currentPhysicalChannelConfigs() when the configuration has changed. It is + * recommended that this be reported whenever link capacity or signal strength is reported. + */ + PHYSICAL_CHANNEL_CONFIG = 1 << 4, }; struct NetworkScanRequest { @@ -295,3 +316,14 @@ struct LinkCapacityEstimate { */ uint32_t uplinkCapacityKbps; }; + +struct PhysicalChannelConfig { + /** + * Connection status for cell. Valid values are PRIMARY_SERVING and SECONDARY_SERVING. + */ + CellConnectionStatus status; + /** + * Cell bandwidth, in kHz. + */ + int32_t cellBandwidthDownlink; +};