Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0e7918d authored by Mingming Cai's avatar Mingming Cai Committed by Gerrit Code Review
Browse files

Merge "Add CQI and CQI Table Index to Hal 1.6"

parents 6119f169 da0d9830
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -366,6 +366,20 @@ interface IRadio extends @1.5::IRadio {
     */
    oneway getSystemSelectionChannels(int32_t serial);

   /**
     * Request all of the current cell information known to the radio. The radio
     * must return list of all current cells, including the neighboring cells. If for a particular
     * cell information isn't known then the appropriate unknown value will be returned.
     * This does not cause or change the rate of unsolicited cellInfoList().
     *
     * This is identitcal to getCellInfoList in V1.0, but it requests updated version of CellInfo.
     *
     * @param serial Serial number of request.
     *
     * Response callback is IRadioResponse.getCellInfoListResponse()
     */
    oneway getCellInfoList_1_6(int32_t serial);

    /**
     * Request current voice registration state.
     *
+22 −1
Original line number Diff line number Diff line
@@ -18,8 +18,10 @@ package android.hardware.radio@1.6;

import @1.0::RadioIndicationType;
import @1.5::IRadioIndication;
import @1.6::SetupDataCallResult;
import @1.6::CellInfo;
import @1.6::LinkCapacityEstimate;
import @1.6::NetworkScanResult;
import @1.6::SetupDataCallResult;

/**
 * Interface declaring unsolicited radio indications.
@@ -67,4 +69,23 @@ interface IRadioIndication extends @1.5::IRadioIndication {
     * @param lce LinkCapacityEstimate
     */
    oneway currentLinkCapacityEstimate_1_6(RadioIndicationType type, LinkCapacityEstimate lce);

    /**
     * Report all of the current cell information known to the radio.
     *
     * This indication is updated from IRadioIndication@1.5 to report the @1.6 version of
     * CellInfo.
     *
     * @param type Type of radio indication
     * @param records Current cell information
     */
    oneway cellInfoList_1_6(RadioIndicationType type, vec<CellInfo> records);

    /**
     * Incremental network scan results.
     *
     * This indication is updated from IRadioIndication@1.5 to report the @1.6 version of
     * CellInfo.
     */
    oneway networkScanResult_1_6(RadioIndicationType type, NetworkScanResult result);
};
+15 −1
Original line number Diff line number Diff line
@@ -17,9 +17,10 @@
package android.hardware.radio@1.6;

import @1.0::SendSmsResult;
import @1.6::RadioResponseInfo;
import @1.5::IRadioResponse;
import @1.6::CellInfo;
import @1.6::RegStateResult;
import @1.6::RadioResponseInfo;
import @1.6::SetupDataCallResult;

/**
@@ -329,6 +330,19 @@ interface IRadioResponse extends @1.5::IRadioResponse {
     */
    oneway getSystemSelectionChannelsResponse(RadioResponseInfo info);

    /**
     * This is identical to getCellInfoListResponse_1_5 but uses an updated version of CellInfo.
     *
     * @param info Response info struct containing response type, serial no. and error
     * @param cellInfo List of current cell information known to radio
     *
     * Valid errors returned:
     *   RadioError:NONE
     *   RadioError:RADIO_NOT_AVAILABLE
     *   RadioError:INTERNAL_ERR
     */
    oneway getCellInfoListResponse_1_6(RadioResponseInfo info, vec<CellInfo> cellInfo);

    /**
     * @param info Response info struct containing response type, serial no. and error
     * @param voiceRegResponse Current Voice registration response as defined by RegStateResult
+162 −0
Original line number Diff line number Diff line
@@ -16,14 +16,29 @@

package android.hardware.radio@1.6;

import @1.0::CdmaSignalStrength;
import @1.0::EvdoSignalStrength;
import @1.0::GsmSignalStrength;
import @1.0::LteSignalStrength;
import @1.0::RadioError;
import @1.0::RadioResponseType;
import @1.0::RegState;
import @1.1::ScanStatus;
import @1.2::CellInfoCdma;
import @1.2::CellConnectionStatus;
import @1.2::TdscdmaSignalStrength;
import @1.2::WcdmaSignalStrength;
import @1.4::DataCallFailCause;
import @1.4::DataConnActiveStatus;
import @1.4::NrSignalStrength;
import @1.4::PdpProtocolType;
import @1.4::RadioTechnology;
import @1.5::CellIdentity;
import @1.5::CellIdentityLte;
import @1.5::CellIdentityNr;
import @1.5::CellInfoGsm;
import @1.5::CellInfoWcdma;
import @1.5::CellInfoTdscdma;
import @1.5::LinkAddress;
import @1.5::RegStateResult.AccessTechnologySpecificInfo.Cdma2000RegistrationInfo;
import @1.5::RegStateResult.AccessTechnologySpecificInfo.EutranRegistrationInfo;
@@ -504,6 +519,153 @@ struct NrVopsInfo {
    EmfIndicator emfSupported;
};

struct LteSignalStrength {
    @1.0::LteSignalStrength base;

    /**
     * CSI channel quality indicator (CQI) table index. There are multiple CQI tables.
     * The definition of CQI in each table is different.
     *
     * Reference: 3GPP TS 136.213 section 7.2.3.
     *
     * Range [1, 6], INT_MAX means invalid/unreported.
     */
    uint32_t cqiTableIndex;
};

struct NrSignalStrength {
    @1.4::NrSignalStrength base;

    /**
     * CSI channel quality indicator (CQI) table index. There are multiple CQI tables.
     * The definition of CQI in each table is different.
     *
     * Reference: 3GPP TS 138.214 section 5.2.2.1.
     *
     * Range [1, 3], INT_MAX means invalid/unreported.
     */
    uint32_t csiCqiTableIndex;

    /**
     * CSI channel quality indicator (CQI) for all subbands.
     *
     * If the CQI report is for the entire wideband, a single CQI index is provided.
     * If the CQI report is for all subbands, one CQI index is provided for each subband,
     * in ascending order of subband index.
     * If CQI is not available, the CQI report is empty.
     *
     * Reference: 3GPP TS 138.214 section 5.2.2.1.
     *
     * Range [0, 15], INT_MAX means invalid/unreported.
     */
    vec<uint32_t> csiCqiReport;
};

/**
 * Overwritten from @1.4::SignalStrength in order to update LteSignalStrength and NrSignalStrength.
 */
struct SignalStrength {
    /**
     * If GSM measurements are provided, this structure must contain valid measurements; otherwise
     * all fields should be set to INT_MAX to mark them as invalid.
     */
    GsmSignalStrength gsm;

    /**
     * If CDMA measurements are provided, this structure must contain valid measurements; otherwise
     * all fields should be set to INT_MAX to mark them as invalid.
     */
    CdmaSignalStrength cdma;

    /**
     * If EvDO measurements are provided, this structure must contain valid measurements; otherwise
     * all fields should be set to INT_MAX to mark them as invalid.
     */
    EvdoSignalStrength evdo;

    /**
     * If LTE measurements are provided, this structure must contain valid measurements; otherwise
     * all fields should be set to INT_MAX to mark them as invalid.
     */
    LteSignalStrength lte;

    /**
     * If TD-SCDMA measurements are provided, this structure must contain valid measurements;
     * otherwise all fields should be set to INT_MAX to mark them as invalid.
     */
    TdscdmaSignalStrength tdscdma;

    /**
     * If WCDMA measurements are provided, this structure must contain valid measurements; otherwise
     * all fields should be set to INT_MAX to mark them as invalid.
     */
    WcdmaSignalStrength wcdma;

    /**
     * If NR 5G measurements are provided, this structure must contain valid measurements; otherwise
     * all fields should be set to INT_MAX to mark them as invalid.
     */
    NrSignalStrength nr;
};

/** Overwritten from @1.5::CellInfoLte in order to update LteSignalStrength. */
struct CellInfoLte {
    CellIdentityLte cellIdentityLte;
    LteSignalStrength signalStrengthLte;
};

/** Overwritten from @1.5::CellInfoNr in order to update NrSignalStrength. */
struct CellInfoNr {
    CellIdentityNr cellIdentityNr;
    NrSignalStrength signalStrengthNr;
};

/** Overwritten from @1.5::CellInfo in order to update LteSignalStrength and NrSignalStrength. */
struct CellInfo {
    /**
     * True if this cell is registered false if not registered.
     */
    bool registered;
    /**
     * Connection status for the cell.
     */
    CellConnectionStatus connectionStatus;

    safe_union CellInfoRatSpecificInfo {
        /**
         * 3gpp CellInfo types.
         */
        CellInfoGsm gsm;
        CellInfoWcdma wcdma;
        CellInfoTdscdma tdscdma;
        CellInfoLte lte;
        CellInfoNr nr;

        /**
         * 3gpp2 CellInfo types;
         */
        CellInfoCdma cdma;
    } ratSpecificInfo;
};

/** Overwritten from @1.5::NetworkScanResult in order to update the CellInfo to 1.6 version. */
struct NetworkScanResult {
    /**
     * The status of the scan.
     */
    ScanStatus status;

    /**
     * The error code of the incremental result.
     */
    RadioError error;

    /**
     * List of network information as CellInfo.
     */
    vec<CellInfo> networkInfos;
};

/**
 * Overwritten from @1.5::RegStateResult to 1.6 to support NrRegistrationInfo
 * version.
+14 −0
Original line number Diff line number Diff line
@@ -799,6 +799,11 @@ class RadioResponse_v1_6 : public ::android::hardware::radio::V1_6::IRadioRespon
    Return<void> getSystemSelectionChannelsResponse(
            const ::android::hardware::radio::V1_6::RadioResponseInfo& info);

    Return<void> getCellInfoListResponse_1_6(
            const ::android::hardware::radio::V1_6::RadioResponseInfo& info,
            const ::android::hardware::hidl_vec<::android::hardware::radio::V1_6::CellInfo>&
                    cellInfo);

    Return<void> getVoiceRegistrationStateResponse_1_6(
            const ::android::hardware::radio::V1_6::RadioResponseInfo& info,
            const ::android::hardware::radio::V1_6::RegStateResult& regResponse);
@@ -825,6 +830,15 @@ class RadioIndication_v1_6 : public ::android::hardware::radio::V1_6::IRadioIndi
    Return<void> unthrottleApn(RadioIndicationType type,
                               const ::android::hardware::hidl_string& apn);

    Return<void> networkScanResult_1_6(
            RadioIndicationType type,
            const ::android::hardware::radio::V1_6::NetworkScanResult& result);

    Return<void> cellInfoList_1_6(
            RadioIndicationType type,
            const ::android::hardware::hidl_vec<::android::hardware::radio::V1_6::CellInfo>&
                    records);

    /* 1.5 Api */
    Return<void> uiccApplicationsEnablementChanged(RadioIndicationType type, bool enabled);

Loading