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

Commit e665264c authored by Xiangyu/Malcolm Chen's avatar Xiangyu/Malcolm Chen Committed by Android (Google) Code Review
Browse files

Merge "Define CBRS HAL interfaces in IRadio 1.3 and IRadioConfig 1.1."

parents 35112942 e61e3b7c
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -17,8 +17,12 @@
package android.hardware.radio@1.3;

import @1.2::IRadio;
import @1.1::RadioAccessSpecifier;

/**
 * Note: IRadio 1.3 is an intermediate layer between Android P and Android Q. It's specifically
 * designed for CBRS related interfaces. All other interfaces for Q are added in IRadio 1.4.
 *
 * This interface is used by telephony and telecom to talk to cellular radio.
 * All the functions have minimum one parameter:
 * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the
@@ -27,4 +31,33 @@ import @1.2::IRadio;
 * setResponseFunctions must work with @1.1::IRadioResponse and @1.1::IRadioIndication.
 */
interface IRadio extends @1.2::IRadio {
    /**
     * Specify which bands modem's background scan must act on.
     * If specifyChannels is true, it only scans bands specified in specifiers.
     * If specifyChannels is false, it scans all bands.
     *
     * For example, CBRS is only on LTE band 48. By specifying this band,
     * modem saves more power.
     *
     * @param serial Serial number of request.
     * @param specifyChannels whether to scan bands defined in specifiers.
     * @param specifiers which bands to scan. Only used if specifyChannels is true.
     *
     * Response callback is IRadioResponse.setSystemSelectionChannelsResponse()
     */
    oneway setSystemSelectionChannels(int32_t serial, bool specifyChannels,
            vec<RadioAccessSpecifier> specifiers);

   /**
    * Toggle logical modem on and off. It should put the logical modem in low power
    * mode without any activity, while the SIM card remains visible. The difference
    * with setRadioPower is, setRadioPower affects all logical modem while this controls
    * just one.
    *
    * @param serial Serial number of request.
    * @param on True to turn on the logical modem, otherwise turn it off.
    *
    * Response function is IRadioResponse.enableModemResponse()
    */
    oneway enableModem(int32_t serial, bool on);
};
+24 −0
Original line number Diff line number Diff line
@@ -17,9 +17,33 @@
package android.hardware.radio@1.3;

import @1.2::IRadioResponse;
import @1.0::RadioResponseInfo;

/**
 * Note: IRadio 1.3 is an intermediate layer between Android P and Android Q. It's specifically
 * designed for CBRS related interfaces. All other interfaces for Q are added in IRadio 1.4.
 *
 * Interface declaring response functions to solicited radio requests.
 */
interface IRadioResponse extends @1.2::IRadioResponse {
    /**
     * @param info Response info struct containing response type, serial no. and error
     *
     * Valid errors returned:
     *   RadioError:NONE
     *   RadioError:RADIO_NOT_AVAILABLE
     *   RadioError:INTERNAL_ERR
     *   RadioError:INVALID_ARGUMENTS
     */
    oneway setSystemSelectionChannelsResponse(RadioResponseInfo info);

    /**
     * @param info Response info struct containing response type, serial no. and error
     *
     * Valid errors returned:
     *   RadioError:NONE
     *   RadioError:RADIO_NOT_AVAILABLE
     *   RadioError:INTERNAL_ERR
     */
    oneway enableModemResponse(RadioResponseInfo info);
};
+6 −0
Original line number Diff line number Diff line
@@ -7,14 +7,20 @@ hidl_interface {
        enabled: true,
    },
    srcs: [
        "IRadioConfig.hal",
        "IRadioConfigIndication.hal",
        "IRadioConfigResponse.hal",
        "types.hal",
    ],
    interfaces: [
        "android.hardware.radio.config@1.0",
        "android.hardware.radio@1.0",
        "android.hidl.base@1.0",
    ],
    types: [
        "ModemInfo",
        "PhoneCapability",
    ],
    gen_java: true,
}
+59 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.radio.config@1.1;

import @1.0::IRadioConfig;
import @1.1::IRadioConfigResponse;
import @1.1::PhoneCapability;

/**
 * Note: IRadioConfig 1.1 is an intermediate layer between Android P and Android Q.
 * It's specifically designed for CBRS related interfaces. All other interfaces
 * for Q are added in IRadioConfig 1.2.
 *
 * This interface is used by telephony and telecom to talk to cellular radio for the purpose of
 * radio configuration, and it is not associated with any specific modem or slot.
 * All the functions have minimum one parameter:
 * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the
 * duration of a method call. If clients provide colliding serials (including passing the same
 * serial to different methods), multiple responses (one for each method call) must still be served.
 */
interface IRadioConfig extends @1.0::IRadioConfig {
   /**
     * Request current phone capability.
     *
     * @param serial Serial number of request.
     *
     * Response callback is IRadioResponse.getPhoneCapabilityResponse() which
     * will return <@1.1::PhoneCapability>.
     */
    oneway getPhoneCapability(int32_t serial);

   /**
     * Set preferred data modem Id.
     * In a multi-SIM device, notify modem layer which logical modem will be used primarily
     * for data. It helps modem with resource optimization and decisions of what data connections
     * should be satisfied.
     *
     * @param serial Serial number of request.
     * @param modem Id the logical modem ID, which should match one of modem IDs returned
     * from getPhoneCapability().
     *
     * Response callback is IRadioConfigResponse.setPreferredDataModemResponse()
     */
    oneway setPreferredDataModem(int32_t serial, uint8_t modemId);
};
+28 −0
Original line number Diff line number Diff line
@@ -17,9 +17,37 @@
package android.hardware.radio.config@1.1;

import @1.0::IRadioConfigResponse;
import @1.1::PhoneCapability;
import android.hardware.radio@1.0::RadioResponseInfo;

/**
 * Note: IRadioConfig 1.1 is an intermediate layer between Android P and Android Q.
 * It's specifically designed for CBRS related interfaces. All other interfaces
 * for Q should be added in IRadioConfig 1.2.
 *
 * Interface declaring response functions to solicited radio config requests.
 */
interface IRadioConfigResponse extends @1.0::IRadioConfigResponse {
    /**
     * @param info Response info struct containing response type, serial no. and error
     * @param phoneCapability <@1.1::PhoneCapability> it defines modem's capability for example
     *        how many logical modems it has, how many data connections it supports.
     *
     * Valid errors returned:
     *   RadioError:NONE
     *   RadioError:RADIO_NOT_AVAILABLE
     *   RadioError:INTERNAL_ERR
     */
    oneway getPhoneCapabilityResponse(RadioResponseInfo info, PhoneCapability phoneCapability);

    /**
     * @param info Response info struct containing response type, serial no. and error
     *
     * Valid errors returned:
     *   RadioError:NONE
     *   RadioError:RADIO_NOT_AVAILABLE
     *   RadioError:INTERNAL_ERR
     *   RadioError:INVALID_ARGUMENTS
     */
    oneway setPreferredDataModemResponse(RadioResponseInfo info);
};
Loading