[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/protocol/sase/sase_api.h b/mcu/interface/protocol/sase/sase_api.h
new file mode 100644
index 0000000..ef4b7dc
--- /dev/null
+++ b/mcu/interface/protocol/sase/sase_api.h
@@ -0,0 +1,104 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * sase_api.h
+ *
+ * Project:
+ * --------
+ * VMOLY
+ *
+ * Description:
+ * ------------
+ * provide customized API to customer
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+****************************************************************************/
+#ifndef _SASE_API_H
+#define _SASE_API_H
+
+#include "kal_public_defs.h"
+
+typedef struct {
+ kal_uint8 src_id;
+ kal_bool endc_deactivate;
+ kal_bool allow_scg_add;
+}custom_sase_endc_control_struct;
+
+/*****************************************************************************
+ * FUNCTION
+ * custom_sase_endc_control
+ * DESCRIPTION
+ * API for ENDC on/off.
+ * PARAMETERS
+ * req [IN] ENDC control parameters
+ *
+ * src_id: Protocol ID
+ * endc_deactivate: TRUE => ENDC disable
+ * FALSE => ENDC enable
+ * allow_scg_add: TRUE => When NW configure ENDC without B1 measurement(blind add), UE
+ * allow to add SCG successfully during ENDC disable
+ * FALSE => When NW configure ENDC without B1 measurement(blind add), UE
+ * doesn't allow to add SCG successfully and send SCG fail to NW
+ * during ENDC disable
+ * RETURNS
+ * void
+ *****************************************************************************/
+void custom_sase_endc_control (custom_sase_endc_control_struct *req);
+
+/*****************************************************************************
+ * FUNCTION
+ * custom_sase_get_endc_status
+ * DESCRIPTION
+ * API for ENDC on/off.
+ * PARAMETERS
+ * src_id [IN] Protocol ID
+ * endc_deactivate [OUT] ENDC status, please refer API "custom_sase_endc_control"
+ * allow_scg_add [OUT] Whether UE allow to add SCG, please refer API "custom_sase_endc_control"
+ * RETURNS
+ * void
+ *****************************************************************************/
+void custom_sase_get_endc_status (kal_uint8 src_id, kal_bool *endc_deactivate, kal_bool *allow_scg_add);
+
+#endif
diff --git a/mcu/interface/protocol/sase/sase_if.h b/mcu/interface/protocol/sase/sase_if.h
new file mode 100644
index 0000000..4e98ef0
--- /dev/null
+++ b/mcu/interface/protocol/sase/sase_if.h
@@ -0,0 +1,311 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * sase_if.h
+ *
+ * Project:
+ * --------
+ * VMOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 02 14 2022 shih-yu.chen
+ * [MOLY00663097] 【Clone from ALPS05378235】请协助评估实现SA功耗优化接口
+ *
+ * sa_silence merge to MD700.
+ *
+ * 03 23 2021 shih-yu.chen
+ * [MOLY00576678] 请协助评估实现SA功耗优化接口
+ *
+ * add sa_silence interface.
+ *
+ * 03 17 2021 shih-yu.chen
+ * [MOLY00613108] [TMOUS] disable 5GSA during VoWiFi feature enhancement
+ *
+ * add AT cmd for VoWiFiDisable5GSA.
+ *
+ * 11 13 2020 shih-yu.chen
+ * [MOLY00579031] [Colgin] SASE development
+ * [SASE] general vg_option control interface.
+ * patch back from T700
+ *
+ * 11 13 2020 shih-yu.chen
+ * [MOLY00589182] [Gen97][MP7][Memory reduction] Stage V - LTE POS preempt LTE/NR HARQ buffer
+ * [SASE] LTE POS interface.
+ *
+ * 09 18 2020 shih-yu.chen
+ * [MOLY00550233] [Cayman][ LGEFT][ TMO] Many unsolicited msg after NR SCG Fail continues
+ * (OA) [SASE] LGE patch back.
+ *
+ * 07 20 2020 can.lin
+ * [MOLY00540580] [Blocking][MT6885][Petrus][TMO-US][MP6][WWFT][Ericsson][New Jersey - n71][Philadelphia - n41][SA] - VoWifi to Cellular HO failed.
+ * [SASE] Add VG option control (SWRD)
+ * 1. [VzW] control by thermal/low power
+ * 2. [TMO] control by VoWii calling
+ *
+ * - Patch sync from CBr.W2030
+ *
+ * 07 17 2020 can.lin
+ * [MOLY00520469] [5G] Add MISC (0x0A) / LTE fallback Message (0x62).
+ * Enhance ENDC control for NR15.R3.MP (SWRD)
+ *
+ * 06 30 2020 can.lin
+ * [MOLY00532222] [Gen97][Operator Requirement][VzW][NSA FR1] Suspension of 5G NR During a VoLTE 911 Call
+ * [Call for sync to R3][VZW][Requirement] Suspension of 5G NR during a VoLTE 911 call (SWRD)
+ *
+ * 06 16 2020 can.lin
+ * [MOLY00532222] [Gen97][Operator Requirement][VzW][NSA FR1] Suspension of 5G NR During a VoLTE 911 Call
+ *
+ * [VZW][Requirement] Suspension of 5G NR during a VoLTE 911 call (SWRD)
+ *
+ * 05 29 2020 can.lin
+ * [MOLY00524979] [Gen97] modification for ENDC control API
+ * [NR15.R3.MP] Apply nvram function in SASE (SWRD)
+ *
+ *
+****************************************************************************/
+#ifndef _SASE_IF_H
+#define _SASE_IF_H
+
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "sase_nvram_def.h"
+#include "ims_common_def.h"
+
+// operation bit
+#define SASE_BIT_OFF 0
+#define SASE_BIT_ON 1
+// SASE->NRRC SCG control bitamp
+#define SASE_NRRC_SCG_SEND_FAKE_SCG 1 << 0
+#define SASE_NRRC_SCG_ALLOW_SCG_ADD 1 << 1
+// SASE->NRRC MEAS control bitamp
+#define SASE_NRRC_MEAS_BLOCK_5G5 1 << 0
+#define SASE_NRRC_MEAS_SEND_A2 1 << 1
+// SASE->ERRC MEAS control bitamp
+#define SASE_ERRC_MEAS_DISABLE_4G5 1 << 0
+#define SASE_ERRC_MEAS_BLOCK_4G5_B1 1 << 1
+
+// SASE Client
+// New interface between SASE <-> NRRC
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 scg_valid_bitmap;
+ kal_uint8 scg_action_bitmap;
+ kal_uint8 meas_valid_bitmap;
+ kal_uint8 meas_action_bitmap;
+ kal_bool is_test_sim_allowed;
+}sase_nrrc_endc_deactivate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 meas_valid_bitmap;
+ kal_uint8 meas_action_bitmap;
+ kal_bool is_test_sim_allowed;
+}sase_errc_endc_deactivate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ scg_event_enum scg_event;
+ kal_bool endc_deactivate;
+ kal_bool allow_scg_add;
+}sase_nrrc_scg_event_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool sa_silence_on;
+} sase_nrrc_sa_silence_ctrl_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool redirect_to_lte;
+} sase_nrrc_connection_release_ind_struct;
+
+typedef enum {
+ SASE_SASE_UE_SCG_SET = 0,
+ SASE_NRRC_NW_SCG_ADD, // NW_SCG_ADD
+ SASE_NRRC_NW_SCG_REL, // NW_SCG_REL and ERRC_NRRC_REL
+}sase_nrrc_scg_status_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sase_nrrc_scg_status_enum scg_status;
+}sase_nrrc_scg_info_ind_struct;
+
+typedef enum {
+ SASE_ERROR_NONE = 0,
+ SASE_ERROR_DENY_BY_TIMER = 1,
+ SASE_ERROR_DENY_BY_VOLTE_E911_CALL = 2,
+ SASE_ERROR_DENY_BY_A2_IN_PROGRESS = 3,
+ SASE_ERROR_DENY_BY_LOW_PWR = 4,
+ SASE_ERROR_DENY_BY_HIGH_HEAT = 5,
+ SASE_ERROR_DENY_BY_IMS_CALLING = 6,
+ SASE_ERROR_DENY_BY_LTE_POS = 7,
+ SASE_ERROR_MAX,
+ SASE_ERROR_ENUM_MAX = 0x7FFFFFFF,
+}SASE_ERROR_CODE;
+
+typedef enum {
+ SASE_STATE_MACHINE_NONE,
+ SASE_STATE_MACHINE_NEXT_STATE,
+ SASE_STATE_MACHINE_CHANEGE_STATE,
+ SASE_STATE_MACHINE_STOP,
+}SASE_STATE_MACHINE_ACTION;
+
+typedef struct {
+ sase_cfg_t config;
+}SASE_CONFIG_INFO_STRUCT;
+
+typedef enum {
+ SASE_TMC_UE_STATUS_NONE = 0,
+ SASE_TMC_UE_STATUS_THERMAL_START,
+ SASE_TMC_UE_STATUS_THERMAL_END,
+ SASE_TMC_UE_STATUS_LOW_BATTERY,
+ SASE_TMC_UE_STATUS_RECHARGE,
+ SASE_TMC_UE_STATUS_SCG_ON,
+ SASE_TMC_UE_STATUS_SCG_OFF,
+ SASE_TMC_UE_STATUS_MAX = 0x7FFFFFFF,
+}sase_tmc_ue_status_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sase_tmc_ue_status_enum ue_status;
+}sase_tmc_ue_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vg_option_enum vg_option_bitmap;
+ kal_bool is_need_local_release; // default is zero, whether to alter 5G option immediately, or wait until next mobility update
+} sase_l4c_vg_option_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 cause;
+} sase_l4c_vg_option_update_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ vg_option_enum vg_option_bitmap;
+ kal_bool is_need_local_release;
+} sase_l4c_vg_option_check_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ vg_option_enum valid_vg_option; // validated by SASE and will be stored
+ kal_bool is_need_local_release;
+} sase_l4c_vg_option_check_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_reg_state_enum reg_state;
+ ims_reg_type_enum reg_type;
+ ims_access_rat_enum rat;
+} sase_l4c_ims_reg_status_update_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_cap_rat_enum ims_rat_cap;
+} sase_l4c_ims_config_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool DisableSA;
+} sase_iwlan_sa_mode_ntf_struct;
+
+typedef enum
+{
+ SASE_VG_OPTION_CONTROL_RECOVERY = 0,
+ SASE_VG_OPTION_CONTROL_LTE,
+ SASE_VG_OPTION_CONTROL_SA,
+ SASE_VG_OPTION_CONTROL_NSA,
+ SASE_VG_OPTION_CONTROL_MAX = 0x7FFFFFFF,
+} sase_vg_option_control_enum;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sase_vg_option_control_enum rat_info;
+} sase_vg_option_req_struct;
+
+typedef enum
+{
+ SASE_VG_OPTION_RESULT_SUCCESS = 0,
+ SASE_VG_OPTION_RESULT_MAX = 0x7FFFFFFF,
+} sase_vg_option_result_enum;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sase_vg_option_result_enum result;
+} sase_vg_option_cnf_struct;
+
+
+// Mapping L4C struct to SASE client
+typedef l4c_general_modem_configure_struct sase_client_general_modem_configure_struct;
+typedef l4c_general_modem_configure_query_req_struct sase_general_modem_configure_query_req;
+typedef l4c_general_modem_configure_query_cnf_struct sase_general_modem_configure_query_cnf;
+typedef l4c_general_modem_configure_set_req_struct sase_general_modem_configure_set_req_struct;
+typedef l4c_general_modem_configure_set_cnf_struct sase_general_modem_configure_set_cnf_struct;
+// Mapping interface between NRRC and SASE client
+typedef sase_nrrc_endc_deactivate_req_struct sase_nrrc_endc_deactivate_req_struct; // MSG_ID_SASE_NRRC_ENDC_DEACTIVATE_REQ
+typedef sase_nrrc_scg_event_ind_struct sase_nrrc_scg_event_ind_struct; // MSG_ID_SASE_NRRC_SCG_EVENT_IND
+// Mapping interface between TMC and SASE client
+typedef sase_tmc_ue_status_ind_struct sase_tmc_ue_status_ind_struct; // MSG_ID_SASE_TMC_UE_STATUS_IND
+typedef sase_nrrc_sa_silence_ctrl_req_struct sase_errc_sa_silence_ctrl_req_struct;
+typedef sase_general_modem_configure_query_req sase_general_modem_configure_query_req_struct; // MSG_ID_SASE_GENERAL_MODEM_CONFIGURE_QUERY_REQ
+typedef sase_general_modem_configure_query_cnf sase_general_modem_configure_query_cnf_struct; // MSG_ID_SASE_GENERAL_MODEM_CONFIGURE_QUERY_CNF
+#endif