[Feature][Modem]1.merge MTK P2 patch 2.RF:bias modification of frequency band
Change-Id: I846de8f085e50c1b9557ad8c5d0b2cc088b18d86
diff --git a/mcu/protocol/interface/general/mrs_as_enums.h b/mcu/protocol/interface/general/mrs_as_enums.h
index 7f28270..c5b4b85 100755
--- a/mcu/protocol/interface/general/mrs_as_enums.h
+++ b/mcu/protocol/interface/general/mrs_as_enums.h
@@ -55,6 +55,9 @@
*
* removed!
* removed!
+ *
+ * removed!
+ * removed!
* removed!
* removed!
*
@@ -317,6 +320,8 @@
#define GAS_CANDIDATE_TICK_INIT (0xFFFFFFFF)
#endif
+#define MRS_CSG_IMSI_MAX_LEN 15
+
#define AFR_MASK_2G4 0x0001
#define AFR_MASK_3G4 0x0002
#define AFR_MASK_2G5_FDD 0x0004
diff --git a/mcu/protocol/interface/general/mrs_as_struct.h b/mcu/protocol/interface/general/mrs_as_struct.h
index 7aca1b4..767ddad 100755
--- a/mcu/protocol/interface/general/mrs_as_struct.h
+++ b/mcu/protocol/interface/general/mrs_as_struct.h
@@ -67,6 +67,9 @@
*
* removed!
* removed!
+ *
+ * removed!
+ * removed!
* removed!
*
* removed!
@@ -671,4 +674,28 @@
mrs_mcc_plmn_list_within_region_record_struct setting[MAX_NUM_VALID_MCC_REGIONS];
} mrs_mcc_region_band_setting_record_struct;
+#ifdef __CHANNEL_LOCK__
+/* MSG_ID_MRS_ERRC_CH_LOCK_NTF */
+typedef struct {
+ LOCAL_PARA_HDR
+
+ MRS_CH_LOCK_STATE lock_state;
+ kal_uint8 lock_mode;
+} mrs_errc_ch_lock_ntf_struct;
+
+/* MSG_ID_MRS_NRRC_CH_LOCK_NTF */
+typedef struct {
+ LOCAL_PARA_HDR
+
+ MRS_CH_LOCK_STATE lock_state;
+ kal_uint8 lock_mode;
+} mrs_nrrc_ch_lock_ntf_struct;
+#endif /* __CHANNEL_LOCK__ */
+
+typedef struct mrs_csg_imsi_info
+{
+ kal_uint8 imsi_length;
+ kal_uint8 imsi[MRS_CSG_IMSI_MAX_LEN];
+} mrs_csg_imsi_info;
+
#endif /* _MRS_AS_STRUCT_H */
diff --git a/mcu/protocol/interface/general/mrs_common_operator_feature_table_public.h b/mcu/protocol/interface/general/mrs_common_operator_feature_table_public.h
index a9b54c2..63904f2 100755
--- a/mcu/protocol/interface/general/mrs_common_operator_feature_table_public.h
+++ b/mcu/protocol/interface/general/mrs_common_operator_feature_table_public.h
@@ -108,6 +108,32 @@
kal_bool mrs_is_rat_capability_disabled(const plmn_id_struct *hplmn, const plmn_id_struct *splmn, kal_bool is_roaming, rat_capability_enum rat_cap);
/**
+ * @brief Query if rat capability of specific SIM shall be disabled for all serving PLMNs
+ * @param[in] hplmn is the PLMN ID (MCC+MNC) of Home PLMN
+ * @param[in] rat_cap is the rat capability to be checked
+ * @return KAL_TRUE if rat capability of specific SIM shall be disabled; KAL_FALSE if not
+ */
+kal_bool mrs_is_rat_capability_disabled_by_sim(const plmn_id_struct *hplmn, rat_capability_enum rat_cap);
+
+/**
+ * @brief Query if UE shall leave RAT
+ * @param[in] hplmn is the PLMN ID (MCC+MNC) of Home PLMN
+ * @param[in] splmn is the PLMN ID (MCC+MNC) of Serving PLMN
+ * @param[in] is_roaming is the roaming status
+ * @param[in] leave_rat is the target rat to be checked
+ * @return KAL_TRUE if UE shall leave RAT; KAL_FALSE if not
+ */
+kal_bool mrs_is_voice_unavail_leave_rat(const plmn_id_struct *hplmn, const plmn_id_struct *splmn, kal_bool is_roaming, voice_unavail_leave_rat_enum leave_rat);
+
+/**
+ * @brief Query if UE of specific SIM shall leave RAT for all serving PLMNs
+ * @param[in] hplmn is the PLMN ID (MCC+MNC) of Home PLMN
+ * @param[in] leave_rat is the target rat to be checked
+ * @return KAL_TRUE if UE of specific SIM shall leave RAT; KAL_FALSE if not
+ */
+kal_bool mrs_is_voice_unavail_leave_rat_by_sim(const plmn_id_struct *hplmn, voice_unavail_leave_rat_enum leave_rat);
+
+/**
* @brief Query the custom PLMN search rat order by specific MCC
* @param[in] simInterface is the index of tagret SIM to be queried
* @param[in] plmn_id is the MCC to be queried
diff --git a/mcu/protocol/interface/general/mrs_emm_capability.h b/mcu/protocol/interface/general/mrs_emm_capability.h
index 6323c10..e3f879b 100755
--- a/mcu/protocol/interface/general/mrs_emm_capability.h
+++ b/mcu/protocol/interface/general/mrs_emm_capability.h
@@ -160,6 +160,8 @@
void mrs_emm_get_ue_sec_cap(MRS_SIM_INDEX sim_index, rat_enum rat_mode, kal_uint8* data, kal_uint8 *len);
+void mrs_emm_get_ue_sec_cap_without_rat_mode_modification(MRS_SIM_INDEX sim_index, rat_enum rat_mode, kal_uint8* data, kal_uint8 *len);
+
void mrs_emm_get_ue_add_sec_cap(MRS_SIM_INDEX sim_index, rat_enum rat_mode, kal_uint8* data, kal_uint8 *len);
#if defined(__GSM_RAT__) || defined(__UMTS_RAT__)
diff --git a/mcu/protocol/interface/general/mrs_gas_capability.h b/mcu/protocol/interface/general/mrs_gas_capability.h
index 84a3772..d38a109 100755
--- a/mcu/protocol/interface/general/mrs_gas_capability.h
+++ b/mcu/protocol/interface/general/mrs_gas_capability.h
@@ -842,6 +842,9 @@
kal_uint8 gsm_supported_band;
kal_bool is_test_sim;
fdd_gas_serving_cell_info_struct serving_cell_info;
+#ifdef __UMTS_RAT__
+ capability_switch_enum umts_cap;
+#endif /* __UMTS_RAT__ */
capability_switch_enum gsm_cap;
#ifdef __LTE_RAT__
@@ -1018,6 +1021,14 @@
extern capability_switch_enum fdd_mrs_gas_get_gsm_cap_update(MRS_SIM_INDEX sim_index);
extern kal_bool fdd_mrs_gas_gsm_enabled (MRS_SIM_INDEX sim_index, rat_enum rat_mode);
+
+
+
+
+#ifdef __UMTS_RAT__
+extern void fdd_mrs_gas_update_disable_umts_cap(MRS_SIM_INDEX sim_index, capability_switch_enum umts_cap);
+#endif /* __UMTS_RAT__ */
+
/************************************************** End of FDD's part **************************************************/
#endif /* _MRS_GAS_CAPABILITY_H */
diff --git a/mcu/protocol/interface/general/mrs_uas_capability.h b/mcu/protocol/interface/general/mrs_uas_capability.h
index 5048c2d..4d5fe56 100755
--- a/mcu/protocol/interface/general/mrs_uas_capability.h
+++ b/mcu/protocol/interface/general/mrs_uas_capability.h
@@ -168,6 +168,7 @@
kal_uint16 tdd_uia;
kal_uint32 fdd_umts_supported_band;
+ capability_switch_enum umts_cap;
} uas_capability_context_struct;
/*****************************************************************************
@@ -221,5 +222,9 @@
kal_bool mrs_is_band_capability_update_needed(MRS_SIM_INDEX sim_index, kal_uint8 bandID);
void mrs_uas_reset_disabled_band_to_scsi_per_plmn(MRS_SIM_INDEX sim_index, kal_uint32 band);
+extern void mrs_uas_set_umts_cap_update(MRS_SIM_INDEX sim_index, capability_switch_enum umts_cap);
+extern capability_switch_enum mrs_uas_get_umts_cap_update(MRS_SIM_INDEX sim_index);
+extern kal_bool mrs_uas_is_umts_enabled(MRS_SIM_INDEX sim_index, rat_enum rat_mode);
+
#endif /* _MRS_UAS_CAPABILITY_H */
diff --git a/mcu/protocol/interface/general/mrs_utility.h b/mcu/protocol/interface/general/mrs_utility.h
index bc44eb2..9318790 100755
--- a/mcu/protocol/interface/general/mrs_utility.h
+++ b/mcu/protocol/interface/general/mrs_utility.h
@@ -53,6 +53,12 @@
* --------------------------------------------------------
* $Log$
*
+ * 11 03 2022 yanfeng.xu
+ * [MOLY00729994] [KPI: EPSFB AFR Lattency][RDIT][ZTE ngRAN][Gemini Benchmark][Case NR_GEMINI_14222_EPSFB_Call_MO_Ping_Idle][Good_Point] Check larger EPSFB AFR Latency
+ *
+ * 09 22 2022 ot_kiran.gunturu
+ * [MOLY00855742] [Moto][Tesla][GCF/PTCRB][ 31.121] [TC10.1.5]
+ *
* 01 28 2022 ot_krishna.charan
* [MOLY00685488] cloned from ALPS05677217 [B210622-876][?????]UE CSFB CALL MT???RR???????????????????????????
*
@@ -402,7 +408,7 @@
#if defined(__3G_CSG_SUPPORT__) || defined(__LTE_RAT__)
extern void NPSI_newAcsglFromUSIM(MRS_SIM_INDEX sim_index, kal_uint8 acsglRecNum, kal_uint16 acsglSizePerRec
- , kal_uint8* acsglData, csg_white_list_update_cause update_cause, kal_bool is_valid);
+ , kal_uint8* acsglData, csg_white_list_update_cause update_cause, kal_bool is_valid, mrs_csg_imsi_info csg_imsi_info);
extern void NPSI_newOcsglFromUSIM(MRS_SIM_INDEX sim_index, kal_uint8 ocsglRecNum, kal_uint16 ocsgalSizePerRec
, kal_uint8* ocsglData, csg_white_list_update_cause update_cause, kal_bool is_valid);
@@ -605,7 +611,26 @@
kal_uint8 mrs_wh_cell_lock_state_get(MRS_SIM_INDEX sim_index);
#endif /* __WHITE_CELL_LOCK__ */
+/*******************************************************************************
+Description:
+ This function is used to set channel lock scenario in MRS context.
+
+Parameters:
+ ch_lock_scenario: Channel lock scenario to be set in MRS context
+
+Return Value: None
+*******************************************************************************/
+void mrs_ch_lock_set_scenario(MRS_SIM_INDEX sim_index, MRS_CH_LOCK_SCENARIO ch_lock_scenario);
+
+/*******************************************************************************
+Description:
+ This function is used to get channel lock scenario in MRS context.
+
+Return Value: MRS_CH_LOCK_SCENARIO to be returned from MRS context
+*******************************************************************************/
+MRS_CH_LOCK_SCENARIO mrs_ch_lock_get_scenario(MRS_SIM_INDEX sim_index);
#endif /* __CHANNEL_LOCK */
+
/*the following 2 mrs functions are provided for T + W feature*/
extern void mrs_update_gas_system_mode(MRS_SIM_INDEX sim_index,kal_uint8 system_mode);
@@ -698,6 +723,7 @@
void mrs_afr_fail_update_by_low_rat(MRS_SIM_INDEX sim_index, MRS_RAT_MODE_TYPE rat);
+kal_uint32 mrs_fr_as_determine_fr_rat(MRS_SIM_INDEX sim_index, MRS_RAT_MODE_TYPE rat, kal_bool skip_voice_status);
kal_uint32 mrs_afr_as_determine_afr_rat(MRS_SIM_INDEX sim_index, MRS_RAT_MODE_TYPE rat, kal_bool skip_voice_status);
kal_uint32 mrs_afr_get_afr_to_4g_timer(MRS_SIM_INDEX sim_index);
diff --git a/mcu/protocol/interface/l4/l4c_upds_struct.h b/mcu/protocol/interface/l4/l4c_upds_struct.h
new file mode 100755
index 0000000..c95b164
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c_upds_struct.h
@@ -0,0 +1,95 @@
+/*****************************************************************************
+* 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) 2005
+*
+* 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:
+ * ---------
+ * l4c_upds_struct.h
+ *
+ * Project:
+ * --------
+ * 6298
+ *
+ * Description:
+ * ------------
+ * This file is intends for struct definition between L4C and UPDS
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+#ifndef _L4C_UPDS_STRUCT_H
+#define _L4C_UPDS_STRUCT_H
+
+#include "ps_public_struct.h"
+
+/********************************************
+ * MACROS *
+ ********************************************/
+
+
+/********************************************
+ * TYPE DEFINITIONS & ENUMS *
+ ********************************************/
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 os_id_num;
+ os_id_info_struct os_id_info[MAX_UE_OS_ID_NUM];
+} l4c_upds_os_id_update_req_struct;
+
+
+/********************************************
+ * VARIABLES *
+ ********************************************/
+
+
+/********************************************
+* FUNCTION DECLARATIONS *
+********************************************/
+
+#endif /* _L4C_UPDS_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4c_em.h b/mcu/protocol/interface/l4misc/l4c_em.h
index e235ee0..bc12866 100755
--- a/mcu/protocol/interface/l4misc/l4c_em.h
+++ b/mcu/protocol/interface/l4misc/l4c_em.h
@@ -474,7 +474,7 @@
#if defined(__CHANNEL_LOCK__)
void l4c_emmchlck_read(kal_uint8 src_id);
void l4c_emmchlck_write(kal_uint8 src_id, kal_uint8 mode, kal_uint8 act,
- kal_uint16 *band_indicator_ptr, kal_uint32 *arfcn_ptr, kal_uint16 cell_id,kal_uint8 channel_num,kal_uint8 lock_mode);
+ kal_uint16 *band_indicator_ptr, kal_uint32 *arfcn_ptr, kal_uint16 cell_id,kal_uint8 channel_num,kal_uint8 lock_mode, kal_uint8 is_user_scenario);
#endif /* __CHANNEL_LOCK__ */
#endif /* __MODEM_EM_MODE__ */
diff --git a/mcu/protocol/interface/l4misc/l5_l4c_struct.h b/mcu/protocol/interface/l4misc/l5_l4c_struct.h
index b76df59..ddb0528 100755
--- a/mcu/protocol/interface/l4misc/l5_l4c_struct.h
+++ b/mcu/protocol/interface/l4misc/l5_l4c_struct.h
@@ -65,6 +65,7 @@
#include "l5_l4c_enums.h"
#include "rac2l4c_struct.h"
#include "mmrf_msg_interface.h"
+#include "l4c_upds_struct.h"
#ifdef __MBIM_MS_NETWORK_BLACKLIST__
@@ -185,6 +186,7 @@
typedef l4crac_get_nssai_req_struct l5_l4c_get_nssai_req_struct;
typedef l4crac_get_nssai_cnf_struct l5_l4c_get_nssai_cnf_struct;
typedef l4crac_vgmm_nw_params_ind_struct l5_l4c_vgmm_nw_params_ind_struct;
-
#endif
+typedef l4c_upds_os_id_update_req_struct l5_l4c_os_id_update_req_struct;
+
#endif /* _L5_L4C_STRUCT_H */