[Feature][ZXW-33]merge ZXW 0428 version
Change-Id: I11f167edfea428d9fab198ff00ff1364932d1b0b
diff --git a/cp/ps/driver/inc/misc/drvs_efuse.h b/cp/ps/driver/inc/misc/drvs_efuse.h
index 2cca866..165021e 100644
--- a/cp/ps/driver/inc/misc/drvs_efuse.h
+++ b/cp/ps/driver/inc/misc/drvs_efuse.h
@@ -49,6 +49,8 @@
DEVICE_ID,
MAX_ENUM
}E_ZDrvEfuse_SecureMsg;
+#else
+#include <linux/soc/zte/efuse/efuse_zx.h>
#endif
/****************************************************************************
@@ -76,8 +78,6 @@
*******************************************************************************/
UINT32 zDrvEfuse_IsSpe(VOID);
-#ifndef _OS_LINUX
-
/*******************************************************************************
* Function: zDrvEfuse_GetSecureMsg
* Description:¸Ãº¯ÊýÓÃÓÚ»ñÈ¡¹«Ô¿¶Ô¡¢°²È«¿ªÆô±ê¼Ç¡¢¹«Ô¿hashÖµ¡¢É豸ID¡£
@@ -90,8 +90,9 @@
*
* Others:
********************************************************************************/
-VOID zDrvEfuse_GetSecureMsg(T_ZDrvEfuse_Secure *secure);
+extern VOID zDrvEfuse_GetSecureMsg(T_ZDrvEfuse_Secure *secure);
+#ifndef _OS_LINUX
/*******************************************************************************
* Function: zDrvEfuse_SetSecureMsg
* Description:¸Ãº¯ÊýÓÃÓÚÉèÖð²È«¿ªÆô±ê¼Ç¡¢¹«Ô¿hashÖµ¡¢É豸ID¡£
diff --git a/cp/ps/driver/inc/misc/drvs_voiceprocess.h b/cp/ps/driver/inc/misc/drvs_voiceprocess.h
index a006449..3b6795f 100755
--- a/cp/ps/driver/inc/misc/drvs_voiceprocess.h
+++ b/cp/ps/driver/inc/misc/drvs_voiceprocess.h
@@ -219,32 +219,33 @@
typedef struct
{
- UINT8 volteIsWb; //g_volteIsWb
- UINT8 isUseSlicCodec; //g_isUseSlicCodec
- UINT8 g_isUseTdm;
+ UINT8 volteIsWb; //1 g_volteIsWb
+ UINT8 isUseSlicCodec; //2 g_isUseSlicCodec
+ UINT8 g_isUseTdm; //3
//for voice data process
- UINT8 voiceInGsmTdMode; //g_voiceInGsmTdMode
- UINT8 voiceInVolteMode; //g_voiceInVolteMode
+ UINT8 voiceInGsmTdMode; //4 g_voiceInGsmTdMode
+ UINT8 voiceInVolteMode; //5 g_voiceInVolteMode
- BOOL innerI2sIsMaster;//arm i2s2 g_innerI2sIsMaster
- BOOL innerI2sIsI2sMode; //g_innerI2sIsI2sMode
- BOOL vpLoopRuning; //g_vpLoopRuning
- BOOL muteEn; //g_vpMuteEn
- //BOOL nxpIsNormal; //g_vpNxpIsNormal
- BOOL vProcIsNormal; //voice processing is normal flag
- T_Vp_I2sStatus vpI2sStatus; //VpI2sStatus
+ BOOL innerI2sIsMaster;//6 arm i2s2 g_innerI2sIsMaster
+ BOOL innerI2sIsI2sMode; //7 g_innerI2sIsI2sMode
+ BOOL vpLoopRuning; //8 g_vpLoopRuning
+ BOOL muteEn; //9 g_vpMuteEn
+ //BOOL nxpIsNormal; //10 g_vpNxpIsNormal
+ BOOL vProcIsNormal; //11 voice processing is normal flag
+ T_Vp_I2sStatus vpI2sStatus; //12 VpI2sStatus
- T_ZDrv_VpPath vpPath;// VP_PATH_HEADSET;//VP_PATH_SPEAKER; //VP_PATH_HANDSET; g_vpPath
- T_ZDrv_VpPath vpLoopPath; //g_vpLoopPath
- T_ZDrv_VpVol vpVol; //g_vpVol
- T_ZDrvVoice_MODE voiceMode; //g_vpVoiceMode
- SINT8 vpInitGain; //s_vpInitGain
- T_Audio_NvFlag audio_ctrlFlag;//USE 32byte
+ T_ZDrv_VpPath vpPath;//13 VP_PATH_HEADSET;//VP_PATH_SPEAKER; //VP_PATH_HANDSET; g_vpPath
+ T_ZDrv_VpPath vpLoopPath; //14 g_vpLoopPath
+ T_ZDrv_VpVol vpVol; //15 g_vpVol
+ T_ZDrvVoice_MODE voiceMode; //16 g_vpVoiceMode
+ SINT8 vpInitGain; //17 s_vpInitGain
+ T_Audio_NvFlag audio_ctrlFlag;//18 USE 32byte
- UINT8 dtmfDirSel;
- UINT32 sample_rate;
- UINT8 useDtmfLoop;
- SINT32 muteCount;//mute_count
+ UINT8 dtmfDirSel;//19
+ UINT32 sample_rate;//20
+ UINT8 useDtmfLoop;//21
+ SINT32 muteCount;//22 mute_count
+ BOOL rxMuteEn; //23
} T_zDrvVoice_GbVar; //T_zDrvVoice_GbVar
typedef struct
diff --git a/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a b/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a
index 1151f12..7ef398a 100644
--- a/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a
+++ b/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a
Binary files differ
diff --git a/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c b/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c
index 5311c3f..a1899f0 100755
--- a/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c
+++ b/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c
@@ -111,6 +111,9 @@
SINT32 zDrvVp_GetTxVol(VOID);
SINT32 zDrvVp_SetTxVol(T_ZDrv_VpVol volume);
+SINT32 zDrvVp_SetRxMute(UINT32 enable, UINT32 channel);
+SINT32 zDrvVp_GetRxMute(UINT32 *enable, UINT32 channel);
+extern SINT32 zDrvVp_Soft_Dtmf_Loop(T_ZDrv_VpPath path);
/****************************************************************************
* Function Definitions
****************************************************************************/
@@ -160,6 +163,15 @@
{
return g_voiceVar.muteEn;
}
+SINT32 zDrvVp_SetRxMute_Wrap(int enable)
+{
+ return zDrvVp_SetRxMute(enable, VOICE_DOWNLINK);
+}
+
+int zDrvVp_GetRxMute_Wrap(VOID)
+{
+ return g_voiceVar.rxMuteEn;
+}
SINT32 zDrvVp_SetTone_Wrap(T_ZDrvVp_ToneNum toneNum)
{
@@ -325,6 +337,20 @@
return DRV_SUCCESS;
}
+
+SINT32 zDrvVp_GetPath(T_ZDrv_VpPath *path)
+{
+
+ SINT32 ret = DRV_SUCCESS;
+ *path = g_voiceVar.vpPath;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_SetPath begin *path=%d,vpI2sStatus=%d,vProcIsNormal=%d!", *path, g_voiceVar.vpI2sStatus, g_voiceVar.vProcIsNormal);
+
+ return DRV_SUCCESS;
+}
+
+
+
#ifdef _USE_AUDEXT_CODEC_PATH_INTF
SINT32 zDrvVp_SetRxPath(T_ZDrv_CodecOutputPath path, BOOL isenable)
@@ -465,6 +491,19 @@
return DRV_SUCCESS;
}
+SINT32 zDrvVp_GetVol(int *volume)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+
+
+ *volume = g_voiceVar.vpVol;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_GetVol *volume=%d,g_voiceVar.vpI2sStatus=%d!", *volume, g_voiceVar.vpI2sStatus);
+
+ return DRV_SUCCESS;
+}
+
+
SINT32 zDrvVp_GetTxVol(VOID)
{
#ifdef _USE_WEBRTC_AUD
@@ -559,6 +598,99 @@
return DRV_SUCCESS;
}
+
+SINT32 zDrvVp_GetMute(UINT32 *enable, UINT32 channel)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+
+ *enable = g_voiceVar.muteEn;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_GetMute Get g_voiceVar.muteEn=%d !\n",g_voiceVar.muteEn);
+
+
+
+ return DRV_SUCCESS;
+
+}
+
+SINT32 zDrvVp_SetRxMute(UINT32 enable, UINT32 channel)
+{
+ SINT32 ret = DRV_SUCCESS;
+#if 0
+ T_ZDrvVoice_MuteInfo muteinfo;
+ muteinfo.enable = enable;
+ muteinfo.channel = channel;
+ ret = voice_SetMute(&muteinfo);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_SetMute enable=%d,channel=%d,ret=%d!", enable, channel, ret);
+#endif
+
+ if (g_voiceVar.vpI2sStatus == VP_I2S_IDLE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_SetRxMute g_voiceVar.vpI2sStatus idle not support set mute !\r\n");
+ return DRV_ERROR;
+ }
+ if (g_voiceVar.vpI2sStatus == VP_LOOP_ON)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_SetRxMute vp_loop_on return !\r\n");
+ return DRV_SUCCESS;
+ }
+
+ if (enable == 1)
+ {
+ g_voiceVar.rxMuteEn = TRUE;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_SetRxMute set g_voiceVar.rxMuteEn TRUE !\n");
+
+ }
+ else
+ {
+ g_voiceVar.rxMuteEn = FALSE;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_SetRxMute set g_voiceVar.rxMuteEn FASLE !\n");
+ }
+
+ if (g_voiceVar.vProcIsNormal == TRUE)
+ {
+#ifdef _USE_NXP_AUD
+
+#elif defined _USE_WEBRTC_AUD
+
+ ret = Webrtc_SetRxMute(enable);
+ if (ret != DRV_SUCCESS)
+ {
+ if (enable == 1)
+ {
+ g_voiceVar.rxMuteEn = FALSE;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_SetRxMute set rxMuteEn fail,set g_voiceVar.muteEn FALSE !\n");
+
+ }
+ else
+ {
+ g_voiceVar.rxMuteEn = TRUE;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_SetRxMute set rxMuteEn fail,set g_voiceVar.muteEn TRUE !\n");
+
+ }
+ return DRV_ERROR;
+ }
+
+#endif
+ }
+
+ return DRV_SUCCESS;
+
+}
+SINT32 zDrvVp_GetRxMute(UINT32 *enable, UINT32 channel)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+
+ *enable = g_voiceVar.rxMuteEn;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_GetRxMute Get g_voiceVar.rxMuteEn=%d !\n",g_voiceVar.rxMuteEn);
+
+
+
+ return DRV_SUCCESS;
+
+}
+
#if 0
//dtmf¼ì²â-»Ø»·²âÊÔÓÃ
T_DrvDtmf_Detect_Opt dtmf_looptest;
@@ -593,6 +725,8 @@
zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "vp_LoopProcessThreadEntry zDrvVp_DtmfSoftwareStart end, ret=%d\n", ret);
if(ret == 0)
g_voiceVar.useDtmfLoop = 1;
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "vp_LoopProcessThreadEntry zDrvVp_DtmfSoftwareStart end, ret=%d,useDtmfLoop=%d\n", ret,g_voiceVar.useDtmfLoop);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_LoopProcessThreadEntry zDrvVp_DtmfSoftwareStart end, ret=%d,useDtmfLoop=%d\n", ret,g_voiceVar.useDtmfLoop);
}
else if(path == VP_PATH_OFF)
{
@@ -602,16 +736,19 @@
zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "vp_LoopProcessThreadEntry zDrvVp_DtmfSoftwareStop end, ret=%d\n", ret);
if(ret == 0)
g_voiceVar.useDtmfLoop = 0;
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "vp_LoopProcessThreadEntry zDrvVp_DtmfSoftwareStop end, ret=%d,useDtmfLoop=%d\n", ret,g_voiceVar.useDtmfLoop);
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_LoopProcessThreadEntry zDrvVp_DtmfSoftwareStop end, ret=%d,useDtmfLoop=%d\n", ret,g_voiceVar.useDtmfLoop);
}
else
{
zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "zDrvVp_Soft_Dtmf_Loop path is error!\n");
- //zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_Soft_Dtmf_Loop path is error!\n");
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_Soft_Dtmf_Loop path is error,useDtmfLoop=%d!\n",g_voiceVar.useDtmfLoop);
return DRV_ERR_NOT_SUPPORTED;
}
ret = zDrvVp_Loop(path);
- zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "zDrvVp_Soft_Dtmf_Loop leave\n");
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "zDrvVp_Soft_Dtmf_Loop leave ret=%d\n",ret);
return ret;
}
diff --git a/cp/ps/driver/src/chipsets/src/audio_base/voice/hal_voiceapi.c b/cp/ps/driver/src/chipsets/src/audio_base/voice/hal_voiceapi.c
index 5bb0811..15807af 100644
--- a/cp/ps/driver/src/chipsets/src/audio_base/voice/hal_voiceapi.c
+++ b/cp/ps/driver/src/chipsets/src/audio_base/voice/hal_voiceapi.c
@@ -657,3 +657,101 @@
}
+/*******************************************************************************
+* Function: halVoice_Open2g3gTeak
+* Description: This function is used to init teak.
+* Parameters:
+* Input:None
+* Output:None
+*
+* Returns: 0:success
+* DRV_ERR_NOT_SUPPORTED:not support
+* other:check T_ZDrv_ErrCode or hal error code
+*
+* Others:
+********************************************************************************/
+int halVoice_Open2g3gTeak(T_HalVoice_Block* pVoiceBlock)
+{
+ int ret = 0;
+
+ ret = halVoice_Open();
+ if(ret != 0)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:voice_Open fail ret=%d\n",__func__,ret);
+ return ret;
+
+ }
+ ret = halVoice_SetPathIn(pVoiceBlock);
+ if(ret != 0)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:halVoice_SetPathIn fail ret=%d\n",__func__,ret);
+
+ halVoice_Close();
+ return ret;
+
+ }
+ ret = halVoice_SetPathOut(pVoiceBlock);
+ if(ret != 0)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:halVoice_SetPathOut fail ret=%d\n",__func__,ret);
+
+ halVoice_Close();
+ return ret;
+
+ }
+ ret = halVoice_SetVolOut(pVoiceBlock);
+ if(ret != 0)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:halVoice_SetVolOut fail ret=%d\n",__func__,ret);
+ halVoice_Close();
+ return ret;
+
+ }
+ ret = halVoice_Enable();
+ if(ret != 0)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:halVoice_Enable fail ret=%d\n",__func__,ret);
+ halVoice_Close();
+ return ret;
+
+ }
+
+ return ret;
+
+
+}
+
+/*******************************************************************************
+* Function: halVoice_Close2g3gTeak
+* Description: This function is used to exit teak
+* Parameters:
+* Input:None
+* Output:None
+*
+* Returns: 0:success
+* DRV_ERR_NOT_SUPPORTED:not support
+* other:check T_ZDrv_ErrCode or hal error code
+*
+* Others:
+********************************************************************************/
+int halVoice_Close2g3gTeak(VOID)
+{
+ int ret = 0;
+
+ ret = halVoice_Disable();
+ if(ret != 0)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:halVoice_Disable fail ret=%d\n",__func__,ret);
+
+ }
+ ret = halVoice_Close();
+ if(ret != 0)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:halVoice_Close fail ret=%d\n",__func__,ret);
+
+ }
+
+ return ret;
+}
+
+
diff --git a/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c b/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c
index f2b5463..81e683d 100755
--- a/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c
+++ b/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c
@@ -82,26 +82,29 @@
T_zDrvVoice_GbVar g_voiceVar =
{
- 0,
- 0,
- 0,
- 0,
- 0,
- FALSE,
- TRUE,
- FALSE,
- FALSE,
- FALSE,
- VP_I2S_IDLE,
- VP_PATH_HANDSET,
- VP_PATH_HANDSET,
- VP_VOL_3,
- MAX_VOICE_MODE,
- -1,
- {0},
- DTMF_IDLE,
- 0,
- 0
+ 0,//volteIsWb 1
+ 0,//isUseSlicCodec 2
+ 0,//g_isUseTdm 3
+ 0,//voiceInGsmTdMode 4
+ 0,//voiceInVolteMode 5
+ FALSE, //innerI2sIsMaster 6
+ TRUE,//innerI2sIsI2sMode 7
+ FALSE,//vpLoopRuning 8
+ FALSE,//muteEn 9
+ FALSE,//vProcIsNormal 10
+ VP_I2S_IDLE,//vpI2sStatus 11
+ VP_PATH_HANDSET,//vpPath 12
+ VP_PATH_HANDSET,//vpLoopPath 13
+ VP_VOL_3, //vpVol 14
+ MAX_VOICE_MODE,//voiceMode 15
+ -1,//vpInitGain 16
+ {0},//audio_ctrlFlag 17
+ DTMF_IDLE,// 18
+ 0,//dtmfDirSel 19
+ 0, //sample_rate 20
+ 0, //useDtmfLoop; 21
+ 0, //muteCount;//mute_count 22
+ FALSE, //rxMuteEn 23
};
static T_zDrvVp_State s_vpState =
diff --git a/cp/ps/driver/src/chipsets/src/audio_base/volte/hal_volte.c b/cp/ps/driver/src/chipsets/src/audio_base/volte/hal_volte.c
index e9e148a..2553db0 100644
--- a/cp/ps/driver/src/chipsets/src/audio_base/volte/hal_volte.c
+++ b/cp/ps/driver/src/chipsets/src/audio_base/volte/hal_volte.c
Binary files differ
diff --git a/cp/ps/driver/src/chipsets/src/audio_base/webrtc/include/webrtc_intf.h b/cp/ps/driver/src/chipsets/src/audio_base/webrtc/include/webrtc_intf.h
index 05aa67e..39d6cb2 100644
--- a/cp/ps/driver/src/chipsets/src/audio_base/webrtc/include/webrtc_intf.h
+++ b/cp/ps/driver/src/chipsets/src/audio_base/webrtc/include/webrtc_intf.h
@@ -231,6 +231,7 @@
int open_flag;// 0 close, 1 open
int mute_flag;//0 unmute, 1 mute
+ int rx_mute_flag;//0 unmute, 1 mute
} T_Webrtc_Para;
diff --git a/cp/ps/driver/src/chipsets/src/uicc/DD/dd_uicc.c b/cp/ps/driver/src/chipsets/src/uicc/DD/dd_uicc.c
index c35edfd..ac3d1dd 100644
--- a/cp/ps/driver/src/chipsets/src/uicc/DD/dd_uicc.c
+++ b/cp/ps/driver/src/chipsets/src/uicc/DD/dd_uicc.c
@@ -89,8 +89,8 @@
/****************************************************************************
* Function Definitions
****************************************************************************/
-#if 0
-UINT32 zDrvUicc_GetPreCardType(T_ZDrvUicc_CardSelector card_selector)
+
+UINT8 zDrvUicc_GetPreCardType(T_ZDrvUicc_CardSelector card_selector)
{
SINT32 ret = DRV_SUCCESS;
UINT8 preSwitchType = 0xFF;
@@ -102,7 +102,7 @@
if(ret != DRV_SUCCESS)
{
zOss_Printf(SUBMDL_FS, PRINT_LEVEL_ABNORMAL, "[UICC%d]zDrvUicc_GetPreCardType failed!!! \n!",card_selector);
- return DRV_UICC_ACTIVATION_FAILED;
+ return CLOUD_CARD;
}
pre_card_type_ctrl[card_selector] = preSwitchType;
}
@@ -112,7 +112,7 @@
if(ret != DRV_SUCCESS)
{
zOss_Printf(SUBMDL_FS, PRINT_LEVEL_ABNORMAL, "[UICC%d]zDrvUicc_GetPreCardType failed!!! \n!",card_selector);
- return DRV_UICC_ACTIVATION_FAILED;
+ return UICC_CARD;
}
pre_card_type_ctrl[card_selector] = preSwitchType;
}
@@ -127,7 +127,6 @@
return pre_card_type_ctrl[card_selector];
}
-#endif
UINT32 zDrvUicc_GetCardType(T_ZDrvUicc_CardSelector card_selector)
{
@@ -422,8 +421,9 @@
UICC_power_thread = zOss_CreateThread("UICC_POWER_THREAD",UICC_PowerThread,0,512,7,1,1);
}
- zDrvUicc_GetCardType(card_selector);
-
+ zDrvUicc_GetCardType(DRV_UICC_PRIMARY_CARD);
+ zDrvUicc_GetCardType(DRV_UICC_SECONDARY_CARD_1);
+
if((card_type_ctrl[0] == UICC_CARD) && (card_type_ctrl[1] == UICC_CARD))
{
card_type_ctrl[0] = UICC_CARD;
diff --git a/cp/ps/driver/src/chipsets/src/uicc/infineonIp/uicc_io.c b/cp/ps/driver/src/chipsets/src/uicc/infineonIp/uicc_io.c
index 1eaf315..331e8be 100644
--- a/cp/ps/driver/src/chipsets/src/uicc/infineonIp/uicc_io.c
+++ b/cp/ps/driver/src/chipsets/src/uicc/infineonIp/uicc_io.c
@@ -45,6 +45,7 @@
#include "USIM_reg.h"
#include "oss_api.h"
+#include "pub_debug_info.h"
//#include "os_ose.h"
#include "drvs_pow.h"
#include "drvs_ramlog.h"
@@ -827,6 +828,7 @@
case UICC_TRANSFER_FAILED:
default:
result = UICC_TRANSFER_FAILED;
+ zOss_DebugInfoRecord(MODULE_ID_PS_UICC, "[UICC%d]UICC_transport_APDU.UICC_transport_apdu_result= %d\n!",card_selector, UICC_transport_apdu_result);
break;
}
@@ -1156,6 +1158,7 @@
voltage_control->voltage_settled = UICC_card_profile[UICC_current_reader].voltage_settled;
result = UICC_ACTIVATION_FAILED;
+ zOss_DebugInfoRecord(MODULE_ID_PS_UICC, "[UICC%d]zDrvUicc_ResetCard.UICC_activation_result= %d\n!",card_selector, UICC_activation_result);
break;
}
}
diff --git a/cp/ps/driver/src/chipsets/src/uicc/infineonIp/uicc_uart.c b/cp/ps/driver/src/chipsets/src/uicc/infineonIp/uicc_uart.c
index 3ae870c..99ae5ab 100644
--- a/cp/ps/driver/src/chipsets/src/uicc/infineonIp/uicc_uart.c
+++ b/cp/ps/driver/src/chipsets/src/uicc/infineonIp/uicc_uart.c
@@ -21,6 +21,8 @@
/****************************************************************************
* Include files
****************************************************************************/
+#include "oss_api.h"
+#include "pub_debug_info.h"
#include "uicc_stub.h"
#include "uicc_ctrl.h"
#include "uicc_access.h"
@@ -2789,6 +2791,7 @@
invoke_callback( CARD_REMOVED, UICC_current_reader);
uiccDebug_Printf("[%d]remove\n",zOss_GetTickCount());
uiccramlog_Printf("[%d]remove\n",zOss_GetTickCount());
+ zOss_DebugInfoRecord(MODULE_ID_PS_UICC, "[%d]remove\n",zOss_GetTickCount());
UICC_release_semaphore(UICC_HOTPLUG_SEM);
}
@@ -2817,6 +2820,7 @@
invoke_callback(CARD_INSERTED, UICC_current_reader);
uiccDebug_Printf("[%d]insert\n",zOss_GetTickCount());
uiccramlog_Printf("[%d]insert\n",zOss_GetTickCount());
+ zOss_DebugInfoRecord(MODULE_ID_PS_UICC, "[%d]insert\n",zOss_GetTickCount());
UICC_release_semaphore(UICC_HOTPLUG_SEM);
}
diff --git a/cp/ps/modem/com/inc/config/atcfg/sys_func_atcfg.h b/cp/ps/modem/com/inc/config/atcfg/sys_func_atcfg.h
index f27074a..6c25373 100644
--- a/cp/ps/modem/com/inc/config/atcfg/sys_func_atcfg.h
+++ b/cp/ps/modem/com/inc/config/atcfg/sys_func_atcfg.h
@@ -247,7 +247,7 @@
/*NVÍ·²¿*/
CHAR magic[8]; /*ħÊõ×Ö*/
UINT16 wVersion; /*°æ±¾ºÅ£¬µ±Ç°Èí¼þÔÝδʹÓÃ*/
- UINT16 wLen; /*ÐèÒª¿½±´µÄÓÐЧÊý¾ÝµÄ³¤¶È,±¾°æ±¾È¡ÖµÎª780*/
+ UINT16 wLen; /*ÐèÒª¿½±´µÄÓÐЧÊý¾ÝµÄ³¤¶È,±¾°æ±¾È¡ÖµÎª783*/
UINT8 jtagserver;/* 1:TDÎïÀí²ãµ÷ÊÔ°æ±¾ 0:TDÎïÀí²ã¹Ì»¯°æ±¾£¬ÆäËûÖµÎÞЧ £¬Ä¬ÈÏֵΪ0*/
UINT8 exceptReset;/* 2:µ¼³öramdumpºóÔÙÖØÆô1:´ò¿ªÒì³£ÖØÆô 0:¹Ø±ÕÒì³£ÖØÆô£¬Ä¬ÈÏֵΪ0 */
@@ -389,6 +389,7 @@
UINT8 VolteMtNetTestPadding;/*±¾ÒÑ·ÏÆú,µ«¸çÂ×±ÈÑÇVOLTEÒDZí²âÊÔUMMÈÔÐèÒªµ±Ç°×´Ì¬,ÐèÒªÓëVOLTE NV×Ö¶ÎÒ»ÖÂ*/
UINT8 NsIotTestPadding;/*·ÏÆú²»ÓøijÉÌî³äλ,NS_IOT²âÊÔ¿ª¹Ø£¬0£º¹Ø±Õ£¬1£º´ò¿ª,ĬÈÏ0*/
UINT8 GsmMeasPrior;/*ÖÐÒÆSRVCCÍⳡ£¬ÊÇ·ñ¿ªÆôGSM²âÁ¿ÓÅÏȹ¦ÄÜ£¬0£º¹Ø±Õ£¬1£º´ò¿ª£¬Ä¬ÈÏÖµ0*/
+
UINT8 VolteCvmodPadding;/*·ÏÆú²»ÓøijÉÌî³äλ,ÓïÒôºô½ÐµÄģʽ£¬0:CS_ONLY, 1:VOIP_ONLY, 2:CSÓÅÏÈ,3:VOIPÓÅÏÈ,ĬÈÏ3*/
UINT8 VolteArmWbFlgPadding;/*·ÏÆú²»ÓøijÉÌî³äλ,Volte ARM-WBµÄ¿ª¹Ø£¬0£º¹Ø±Õ£¬1£º´ò¿ª£¬Ä¬ÈÏÖµ1*/
UINT8 OffsetRssi;/*WÖ÷Ä£ÏÂÊÕµ½2GÉϱ¨µÄ²âÁ¿Ê±£¬¼õÈ¥µÄÆ«ÒÆÁ¿,[0-255],ĬÈÏÖµ0*/
@@ -397,12 +398,14 @@
UINT8 VolteEmCallSupportPadding;/*·ÏÆú²»ÓøijÉÌî³äλ,VOLTEÊÇ·ñÖ§³Ö½ô¼±ºô½ÐÁ÷³Ì¿ª¹Ø£¬0£º¹Ø±Õ£¬1£º´ò¿ª£¬Ä¬ÈÏÖµ0*/
UINT8 OosThreshFlg;/*OOSÃÅÏÞÊÇ·ñÆôÓÿª¹Ø£¬0£º¹Ø±Õ£¬1£º´ò¿ª,ĬÈÏ0*/
UINT8 IslandThreshFlg;/*¹ÂµºÃÅÏÞÊÇ·ñÆôÓÿª¹Ø£¬0£º¹Ø±Õ£¬1£º´ò¿ª,ĬÈÏ1*/
+
UINT16 OosThresh;/*OOSÃÅÏÞÖµ£¬¿ª¹Ø¿ªÆôʱÓÐЧ£¬·¶Î§0µ½60£¬Ä¬ÈÏ7,µ¥Î»db*/
UINT16 IslandThresh;/*¹ÂµºÃÅÏÞÖµ£¬¿ª¹Ø¿ªÆôʱÓÐЧ£¬·¶Î§0µ½60£¬Ä¬ÈÏ16,µ¥Î»db*/
UINT8 RrcCustomBitMap;/*rrc¶¨ÖƵŦÄÜ¿ª¹Ø,bitλ°´´Ó0¿ªÊ¼,bit0:Proc²âÁ¿±¨¸æÓÅ»¯¹¦ÄÜ,0±íʾ¹Ø±Õ,1±íʾ´ò¿ª,ĬÈÏÊÇ0*/
UINT8 TauPrior;/*¿ØÖÆLTEÖÆÊ½ÏÂûÓÐPDPÉÏÏÂÎÄʱÊÇ·ñÐèÒªÏÈ·¢ÆðTAU¿ª¹Ø£¬0£º¹Ø±Õ£¬1£º´ò¿ª,ĬÈÏ0*/
UINT8 ReselOffSet;/*ÖØÑ¡ÒÖÖÆÃÅÏÞÖµ£¬·¶Î§0µ½3£¬Ä¬ÈÏ3,µ¥Î»db*/
UINT8 SoftVersion;/*IMEIºóÃæµÄSoftVersion£¬Ä¬ÈÏÊÇ55*/
+
UINT8 bRpi;/*ȡֵ·¶Î§[0-2],ÅäÖøøPHYµÄRPI,³ö³§Öµ255*/
UINT8 bEmmTimerFg;/*ÊÇ·ñ½«EMM´óÓÚ1·ÖÖӵĶ¨Ê±Æ÷Ëõ¶ÌÖÁ1·ÖÖÓ,1:ÊÇ,0:·ñ,³õʼֵ0*/
UINT8 bNvDelayWriteTm;/*Ïà¹ØNVµÄдÈëʱ¼ä¼ä¸ô,0±íʾ½öÔÚCFUN0дÈë,1-24±íʾNVдÈë¼ä¸ôʱ¼äµ¥Î»Ð¡Ê±,255±íʾÁ¢¼´Ð´Èë,ĬÈÏÖµ0*/
@@ -410,6 +413,7 @@
UINT8 bAttachCid;/*4G ATTACH¹ý³ÌÖ줻îĬÈϳÐÔØÊ¹ÓõÄCID,ĬÈÏֵΪ0*/
UINT8 bHarqBufNum;/*ȡֵ12»ò16,ÓÃÓÚ¶¨Òåharq buf¸öÊý,³ö³§Öµ12*/
UINT16 wSmallTbNum;/*word·¶Î§,ÓÃÓÚ¶¨ÒåСTB¿é¸öÊý,³ö³§Öµ420*/
+
UINT16 wPsBufNum;/*word·¶Î§,ÓÃÓÚ¶¨Òåpsbuf/pdcp pdu¸öÊý,³ö³§Öµ520*/
UINT8 bEdcpPollFg;/*EDCPÊÇ·ñ²ÉÓÃÂÖѯ·½Ê½,1ÂÖѯ0ÖжÏ,³ö³§Öµ0*/
UINT8 bHpplmnReSearchTime;/*hpplmnËÑË÷¼ä¸ô,ȡֵ·¶Î§0-255,µ¥Î»·ÖÖÓ,³õʼֵ0,0±íʾ²»Æô¶¯*/
@@ -417,11 +421,15 @@
UINT8 bTEnableEutranLen;/*ÖØÊÔ¼¤»îLTEÄÜÁ¦Ê±³¤,µ¥Î»·ÖÖÓ,³õʼֵ0*/
UINT8 bUsatSCFg;/*USAT SMS SCÊÇ·ñÖ±½Ó²éѯ¿¨»ñÈ¡,0·ñ,1ÊÇ,³õʼֵ0*/
UINT8 bIdleDrxTm;/*IDLE DRXÖÜÆÚ¿ÉÅäÖÃ,0-²»¿ÉÅäÖÃ,1-4´ú±í4¸öÖÜÆÚ³¤¶È,³ö³§Öµ0*/
+
UINT32 dwDataMonitorTm;/*Êý¾Ý¼à¿ØÊ±³¤,0-²»Æô¶¯,ÆäËüÖµ±íʾ¼à¿ØÊ±³¤,µ¥Î»ms,³ö³§Öµ0*/
UINT16 bFreqScanTmin;/*×îСɨƵÖÜÆÚ,³ö³§Öµ0,µ¥Î»S*/
UINT16 bFreqScanStep;/*ÖÜÆÚÐÔɨƵ²½³¤,³ö³§Öµ0,µ¥Î»s*/
UINT16 bFreqScanTnum;/*ͬһÖÜÆÚ³¢ÊÔ´ÎÊý,³ö³§Öµ0*/
UINT16 bFreqScanTmax;/*×î´óɨƵÖÜÆÚ,³ö³§Öµ0,µ¥Î»S*/
+ UINT16 wFastScanTime;/*¿ìËÙɨƵʱ¼ä¼ä¸ô,µ¥Î»s,ȡֵ:1-65535,³ö³§Öµ10*/
+ UINT8 bFastScanFreqFg;/*¿ìËÙɨƵ¹¦ÄÜ¿ª¹Ø,0-¹Ø±Õ,1-´ò¿ª,³ö³§Öµ1*/
+ UINT8 bSpare;
}CommAtSetting;
/* atÉèÖýṹÌå ²»´æNV*/
typedef struct
@@ -1842,6 +1850,10 @@
UINT16 zOss_GetFreqScanStep(VOID);
UINT16 zOss_GetFreqScanTnum(VOID);
UINT16 zOss_GetFreqScanTmax(VOID);
+UINT32 zOss_SetFastFreqScanInfo(CommAtCfgCmdParam * cmdParm);
+VOID zOss_GetFastFreqScanInfo(CommAtCfgCmdParam * cmdParm);
+UINT8 zOss_GetFastFreqScanFlag(VOID);
+UINT16 zOss_GetFastFreqScanTime(VOID);
#ifdef _USE_PSM_TEST
/******************************************************************
* º¯ÊýÃû : zSys_SetPsmFlagToIram
diff --git a/cp/ps/modem/com/src/appstart/inc/version_number.h b/cp/ps/modem/com/src/appstart/inc/version_number.h
index 9eebc26..b321f81 100755
--- a/cp/ps/modem/com/src/appstart/inc/version_number.h
+++ b/cp/ps/modem/com/src/appstart/inc/version_number.h
@@ -1,9 +1,9 @@
#if defined _CHIP_ZX297520
-#define VERSION_NUMBER "7520SCV2.01.01.02P43"
+#define VERSION_NUMBER "7520SCV2.01.01.02P46"
#endif
#if defined _CHIP_ZX297520V2
-#define VERSION_NUMBER "7520V2SCV2.01.01.02P43"
+#define VERSION_NUMBER "7520V2SCV2.01.01.02P46"
#endif
#if defined _CHIP_ZX297520V3
-#define VERSION_NUMBER "7520V3SCV2.01.01.02P43"
+#define VERSION_NUMBER "7520V3SCV2.01.01.02P46"
#endif
diff --git a/cp/ps/modem/ps/inc/atipscom.h b/cp/ps/modem/ps/inc/atipscom.h
index a879676..9eef9b1 100644
--- a/cp/ps/modem/ps/inc/atipscom.h
+++ b/cp/ps/modem/ps/inc/atipscom.h
@@ -216,14 +216,16 @@
#define Z_ATI_NV_MobileInfoCfg (BYTE)(Z_ATI_NV_UMTSAMR+1)
#define Z_ATI_NV_UeCapaCfg (BYTE)(Z_ATI_NV_MobileInfoCfg+1)
#define Z_ATI_NV_ZLcCfg (BYTE)(Z_ATI_NV_UeCapaCfg+1)
-#define Z_ATI_NV_LteBlkCell (BYTE)(Z_ATI_NV_ZLcCfg + 1)
+#define Z_ATI_NV_LteBlkCell (BYTE)(Z_ATI_NV_ZLcCfg + 1)
+#define Z_ATI_NV_CmgfMode (BYTE)(Z_ATI_NV_LteBlkCell + 1)
+#define Z_ATI_NV_CustomMcc (BYTE)(Z_ATI_NV_CmgfMode + 1)
#ifdef BTRUNK_SUPPORT
-#define Z_ATI_NV_PttTruncUser (BYTE)(Z_ATI_NV_LteBlkCell + 1)
+#define Z_ATI_NV_PttTruncUser (BYTE)(Z_ATI_NV_CustomMcc + 1)
#define Z_ATI_NV_PttIOTFlag (BYTE)(Z_ATI_NV_PttTruncUser + 1)
#define Z_ATI_NV_PttSubWayFlag (BYTE)(Z_ATI_NV_PttIOTFlag + 1)
#define Z_ATI_NV_PrvEnd (BYTE)(Z_ATI_NV_PttSubWayFlag + 0)
#else
-#define Z_ATI_NV_PrvEnd (BYTE)(Z_ATI_NV_LteBlkCell + 0)
+#define Z_ATI_NV_PrvEnd (BYTE)(Z_ATI_NV_CustomMcc + 0)
#endif
@@ -1246,6 +1248,19 @@
T_zAti_NV_CellGlobId atLteBlackCell[Z_MAX_LTE_BLKCELL_NUM];
}T_zAti_NV_LteBlkCell;
+typedef struct {
+ BYTE bCmgfMode; /*0: pdu,1: txt,³ö³§Öµ0*/
+ BYTE abPadding[3];
+}T_zAti_NV_CmgfMode;
+
+typedef struct {
+ BYTE bMCC1:4;
+ BYTE bMCC2:4;
+ BYTE bMCC3:4;
+ BYTE :4;
+ BYTE abPadding[2];
+}T_zAti_NV_CustomMcc;
+
#ifdef BTRUNK_SUPPORT
typedef struct
{
diff --git a/cp/ps/modem/ps/inc/atipsint.h b/cp/ps/modem/ps/inc/atipsint.h
index bdf91df..7985c1b 100644
--- a/cp/ps/modem/ps/inc/atipsint.h
+++ b/cp/ps/modem/ps/inc/atipsint.h
@@ -7820,7 +7820,14 @@
BYTE bDesIndex;
BYTE abPadding[2];
}T_zMmiaAs_Rssi_Qry_Req, T_zMmiaAs_Sinr_Qry_Req,
-T_zMmiaAs_Csq_Qry_Req,T_zMmiaAs_CellInfo_Qry_Req;
+T_zMmiaAs_CellInfo_Qry_Req;
+
+typedef struct {
+ BYTE bSrcIndex;
+ BYTE bDesIndex;
+ BYTE bAtType;
+ BYTE bPadding;
+}T_zMmiaAs_Csq_Qry_Req;
typedef struct {
CHAR cSinrInt; /*ȡֵ·¶Î§ -20~40*/
@@ -8332,7 +8339,7 @@
}T_zAtiAs_UlParamInd;
/*================================================================
-ÔÓï:MMIA_L1E_CARD_SWITCH_REQ_EV
+ÔÓï:MMIA_AS_CARD_SWITCH_REQ_EV
˵Ã÷:APÏ·¢µÄÇп¨ÇëÇó(+ZCARDSWITCHREQ)
================================================================*/
typedef struct {
@@ -8341,10 +8348,10 @@
BYTE bSim1Act;/*0-È¥»î,1-¼¤»î*/
BYTE bSim2Act;/*0-È¥»î,1-¼¤»î*/
-}T_zAtiL1e_CardSwitch_Req;
+}T_zMmiaAs_CardSwitch_Req;
/*================================================================
-ÔÓï:MMIA_L1E_CARD_SWITCH_CNF_EV
+ÔÓï:MMIA_AS_CARD_SWITCH_CNF_EV
˵Ã÷:Çп¨ÇëÇóÏìÓ¦
================================================================*/
typedef struct {
@@ -8353,7 +8360,7 @@
BYTE bResult;/*0-Z_SUCC,1-Z_FAIL*/
BYTE bPadding;
-}T_zAtiL1e_CardSwitch_Cnf;
+}T_zMmiaAs_CardSwitch_Cnf;
/*================================================================
ÔÓï:MMIA_AS_CARD_SWITCH_IND_EV
diff --git a/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h b/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h
index c5fbd77..689278f 100644
--- a/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h
+++ b/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h
@@ -109,6 +109,7 @@
ZAT2_CFG_ZMOBILE,
ZAT2_CFG_ZUECAPASET,
ZAT2_CFG_ZULRTIND,
+ ZAT2_CFG_ZCUSTMMCC,
ZAT2_CFG_END,
/*-----------MMÄ£¿é-------------*/
@@ -126,6 +127,7 @@
ZAT2_MM_CPOL,
ZAT2_MM_CREG,
ZAT2_MM_CSQ,
+ ZAT2_MM_ZSQ,
ZAT2_MM_MODE,
ZAT2_MM_SPN,
ZAT2_MM_SYSINFO,
diff --git a/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h b/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h
index dc4f27a..7781e19 100644
--- a/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h
+++ b/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h
@@ -360,6 +360,7 @@
T_ZAt_ParseCmd2MsgRslt zAt_PsDecMmCplsSetReq( T_ZAt_DecCmdInfo * pDecCmdInfo );
T_ZAt_ParseCmd2MsgRslt zAt_PsDecMmCpolSetReq( T_ZAt_DecCmdInfo * pDecCmdInfo );
T_ZAt_ParseCmd2MsgRslt zAt_PsDecMmCregSetReq( T_ZAt_DecCmdInfo * pDecCmdInfo );
+T_ZAt_ParseCmd2MsgRslt zAt_PsDecMmCsqReq(T_ZAt_DecCmdInfo *pDecCmdInfo);
#ifdef Z_DUALSTANDBY
T_ZAt_ParseCmd2MsgRslt zAt_PsDecMmZpsstatSetReq(T_ZAt_DecCmdInfo *pDecCmdInfo);
T_ZAt_ParseCmd2MsgRslt zAt_PsDecMmZpsstatQueryReq(T_ZAt_DecCmdInfo *pDecCmdInfo);
@@ -1256,6 +1257,8 @@
T_ZAt_ParseCmd2MsgRslt zAt_PsDecZuecapaSetReq(T_ZAt_DecCmdInfo * pDecCmdInfo);
T_ZAt_ParseCmd2MsgRslt zAt_PsDecZuecapaSetQry(T_ZAt_DecCmdInfo * pDecCmdInfo);
T_ZAt_ParseCmd2MsgRslt zAt_PsDecZulrtindSetReq(T_ZAt_DecCmdInfo * pDecCmdInfo);
+T_ZAt_ParseCmd2MsgRslt zAt_PsDecZcustmMccSetReq(T_ZAt_DecCmdInfo *pDecCmdInfo);
+T_ZAt_ParseCmd2MsgRslt zAt_PsDecZcustmMccQryReq(T_ZAt_DecCmdInfo *pDecCmdInfo);
#ifdef DSDS_VSIM
T_ZAt_ParseCmd2MsgRslt zAt_PsDecZcardSwitchReq(T_ZAt_DecCmdInfo *pDecCmdInfo);
UINT16 zAt_PsEncCardSwitchReqCnf(T_ZAt_EncCmdInfo * pEncCmdInfo);
diff --git a/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h b/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h
index a164c08..cbcb2e3 100644
--- a/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h
+++ b/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h
@@ -385,6 +385,9 @@
#define Z_ATI_S1_MODE (BYTE)0
#define Z_ATI_IU_MODE (BYTE)1
+
+#define Z_ATI_CSQ (BYTE)0
+#define Z_ATI_ZSQ (BYTE)1
/*==============================================================================*/
#define Z_ATI_NET_NOTREG (BYTE)0 /*µ±Ç°ÍøÂçδע²á*/
#define Z_ATI_NET_REG (BYTE)1 /*µ±Ç°ÍøÂç×¢²á*/
diff --git a/cp/ps/modem/ps/src/nas/ati/src/zat_ext_fnc.c b/cp/ps/modem/ps/src/nas/ati/src/zat_ext_fnc.c
index a98e9c5..bad0881 100644
--- a/cp/ps/modem/ps/src/nas/ati/src/zat_ext_fnc.c
+++ b/cp/ps/modem/ps/src/nas/ati/src/zat_ext_fnc.c
@@ -8252,6 +8252,7 @@
{
T_zApMmia_SmsCmgf_Req* ptCmgfReq = (T_zApMmia_SmsCmgf_Req*)pBuff;
T_zDev_AtMem_Mmia_PrivateMem tAtData = {0};
+ T_zAti_NV_CmgfMode tNvCmgfMode = {0};
zAti_MarkIndex(ptCmgfReq, Z_PSMDL_SMS);
@@ -8269,6 +8270,15 @@
tAtData.bCmgfMode = ptCmgfReq->bMsgMode;
zDev_AtMemWriteItem(Z_AtMem_ID_MmiaPrvtMem, 0 ,(PBYTE)&tAtData, g_zAti_CurInstance);
+ /*дÈëNV*/
+ zDev_NV_AtiReadItem(Z_ATI_NV_CmgfMode, (PBYTE)&tNvCmgfMode);
+
+ if(tNvCmgfMode.bCmgfMode != ptCmgfReq->bMsgMode)
+ {
+ tNvCmgfMode.bCmgfMode = ptCmgfReq->bMsgMode;
+ zDev_NV_AtiWriteItem(Z_ATI_NV_CmgfMode, (PBYTE)&tNvCmgfMode);
+ }
+
sprintf((char *)g_zAt_EncBuf, "%s", g_zAt_OK);
return Z_APMMIA_NOERROR_ERR;
diff --git a/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c b/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c
index 421b298..cbad5b7 100755
--- a/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c
+++ b/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c
@@ -2612,6 +2612,25 @@
return zAt_PsDecFinishParse(&prsCmd2Msg, pDecCmdStr, &cregSetReq, sizeof(T_zApMmia_CregSet_Req), TRUE);
}
+
+T_ZAt_ParseCmd2MsgRslt zAt_PsDecMmCsqReq(T_ZAt_DecCmdInfo *pDecCmdInfo)
+{
+ T_ZAt_ParseCmd2MsgRslt prsCmd2Msg = {0};
+ T_zMmiaAs_Csq_Qry_Req tCsq = {0};
+ tCsq.bAtType = Z_ATI_CSQ;
+
+ prsCmd2Msg.pMsgBody = zAti_GetUB(sizeof(T_zMmiaAs_Csq_Qry_Req));
+
+ if(pDecCmdInfo->curCmdId == ZAT2_MM_ZSQ)
+ {
+ tCsq.bAtType = Z_ATI_ZSQ;
+ }
+
+ prsCmd2Msg.iMsgLen = sizeof(T_zMmiaAs_Csq_Qry_Req);
+ zOss_Memcpy(prsCmd2Msg.pMsgBody, &tCsq, sizeof(T_zMmiaAs_Csq_Qry_Req));
+
+ return prsCmd2Msg;
+}
/**************************************************************************
* º¯ÊýÃû³Æ£º zAt_PsDecMmZpsstatSetReq
* ¹¦ÄÜÃèÊö£º ¸ù¾ÝµÚ1²½½âÎö½á¹û£¬ÌîдAP_MMIA_ZPSSTAT_SET_REQ_EVÏûÏ¢¶ÔÓ¦µÄ½á¹¹Ìå
@@ -18288,8 +18307,58 @@
{
T_zApMmia_Rxlev_Cnf *pCsqExeCnf = (T_zApMmia_Rxlev_Cnf*) pEncCmdInfo->pMsgBody;
- /* +CSQ: <rssi>,<ber> */
- return (UINT16)sprintf((char *)pEncCmdInfo->pStrCmd, "%s+CSQ: %d,%d,%d%s%s", g_zAt_CRLF, pCsqExeCnf->bRssi, pCsqExeCnf->bBler, pCsqExeCnf->bAct, g_zAt_CRLF, g_zAt_OK);
+ if(pEncCmdInfo->cmdId == ZAT2_MM_CSQ)
+ {
+ /* +CSQ: <rssi>,<ber> */
+ return (UINT16)sprintf((char *)pEncCmdInfo->pStrCmd, "%s+CSQ: %d,%d,%d%s%s", g_zAt_CRLF,
+ pCsqExeCnf->bRssi, pCsqExeCnf->bBler, pCsqExeCnf->bAct, g_zAt_CRLF, g_zAt_OK);
+ }
+ else
+ {
+ if(pCsqExeCnf->bAct == Z_APMMIA_LTE || pCsqExeCnf->bAct == Z_APMMIA_WCDMA || pCsqExeCnf->bAct == Z_APMMIA_TDSCDMA)
+ {
+ if(pCsqExeCnf->bRssi >= 100)
+ {
+ pCsqExeCnf->bRssi -= 100;
+ }
+
+ if(pCsqExeCnf->bRssi <= 3)
+ {
+ pCsqExeCnf->bRssi = 0;
+ }
+ else
+ {
+ pCsqExeCnf->bRssi = ((pCsqExeCnf->bRssi - 3)/2);
+ }
+
+ if(pCsqExeCnf->bRssi > 31)
+ {
+ pCsqExeCnf->bRssi = 31;
+ }
+ }
+ else if(pCsqExeCnf->bAct == Z_APMMIA_NOSERVE)
+ {
+ if(pCsqExeCnf->bRssi == 199)
+ {
+ pCsqExeCnf->bRssi = 99;
+ }
+ else if(pCsqExeCnf->bRssi == 100)
+ {
+ pCsqExeCnf->bRssi = 0;
+ }
+ }
+ else
+ {
+ if(pCsqExeCnf->bRssi > 31)
+ {
+ pCsqExeCnf->bRssi = 31;
+ }
+ }
+
+ /* +ZSQ: <rssi>,<ber> */
+ return (UINT16)sprintf((char *)pEncCmdInfo->pStrCmd, "%s+ZSQ: %d,%d,%d%s%s", g_zAt_CRLF,
+ pCsqExeCnf->bRssi, pCsqExeCnf->bBler, pCsqExeCnf->bAct, g_zAt_CRLF, g_zAt_OK);
+ }
}
/**************************************************************************
@@ -22515,10 +22584,10 @@
{
CHAR* pDecCmdStr = pDecCmdInfo->strParam;
CHAR strSubBuf[ZAT2_SUB_PARAM_MAX_LEN] = {0};
- T_zAtiL1e_CardSwitch_Req tCardSwitch = {0};
+ T_zMmiaAs_CardSwitch_Req tCardSwitch = {0};
T_ZAt_ParseCmd2MsgRslt prsCmd2Msg = {0};
- zAt_PsDecParamInit(&prsCmd2Msg,sizeof(T_zAtiL1e_CardSwitch_Req));
+ zAt_PsDecParamInit(&prsCmd2Msg,sizeof(T_zMmiaAs_CardSwitch_Req));
if(g_zAti_ptData->tCardSwitch.bSwitchStat == Z_ATI_CARD_SWITCHING)
{
@@ -22552,7 +22621,7 @@
g_zAti_ptData->tCardSwitch.bSwitchStat = Z_ATI_CARD_SWITCHING;
zAti_PutDualCardStatMutex();
- prsCmd2Msg.iMsgLen= sizeof(T_zAtiL1e_CardSwitch_Req);
+ prsCmd2Msg.iMsgLen= sizeof(T_zMmiaAs_CardSwitch_Req);
zOss_Memcpy(prsCmd2Msg.pMsgBody, (VOID*)&tCardSwitch, prsCmd2Msg.iMsgLen);
return prsCmd2Msg;
@@ -23409,6 +23478,66 @@
return zAt_GetParseRslt(ZAT2_CMD_REPLY_DIRECT);
}
+
+T_ZAt_ParseCmd2MsgRslt zAt_PsDecZcustmMccSetReq(T_ZAt_DecCmdInfo *pDecCmdInfo)
+{
+ CHAR* pDecCmdStr = pDecCmdInfo->strParam; /* ¼Ç¼²ÎÊý×ֶεÄÓÎ×ßÖ¸Õë */
+ CHAR strSubBuf[ZAT2_SUB_PARAM_MAX_LEN] = {0}; /* ´æ·ÅÁÙʱ½ØÈ¡µÄ×Ö·û´® */
+ T_ZAt_ParseCmd2MsgRslt prsCmd2Msg = {0};
+ T_zAti_NV_CustomMcc tCustmMcc = {0};
+ T_zAti_NV_CustomMcc tTempCustmMcc = {0};
+ SINT16 iSubLen = -1;
+
+ /*+ZCUSTMMCC=MCC*/
+ iSubLen = zAt_GetNextParamStr(strSubBuf, ZAT2_PARAM_HEX_FORMAT, &pDecCmdStr);
+
+ if(iSubLen != 3)
+ {
+ return zAt_GetParseRslt2(&prsCmd2Msg,ZAT2_CMD_PARAM_ERR);
+ }
+
+ zDev_NV_AtiReadItem(Z_ATI_NV_CustomMcc, (PBYTE)&tCustmMcc);
+ zOss_Memcpy(&tTempCustmMcc, &tCustmMcc, sizeof(T_zAti_NV_CustomMcc));
+
+ if((strSubBuf[0] >= '0' && strSubBuf[0] <= '9') && (strSubBuf[1] >= '0' && strSubBuf[1] <= '9') && (strSubBuf[2] >= '0' && strSubBuf[2] <= '9'))
+ {
+ tCustmMcc.bMCC1 = strSubBuf[0] - '0';
+ tCustmMcc.bMCC2 = strSubBuf[1] - '0';
+ tCustmMcc.bMCC3 = strSubBuf[2] - '0';
+ }
+ else
+ {
+ return zAt_GetParseRslt2(&prsCmd2Msg,ZAT2_CMD_PARAM_ERR);
+ }
+
+ if (strlen((const char *)pDecCmdStr) != 0)
+ {
+ return zAt_GetParseRslt2(&prsCmd2Msg,ZAT2_CMD_PARAM_ERR);
+ }
+
+ if (0 != memcmp(&tTempCustmMcc, &tCustmMcc, sizeof(T_zAti_NV_CustomMcc)))
+ {
+ zDev_NV_AtiWriteItem(Z_ATI_NV_CustomMcc, (PBYTE)&tCustmMcc);
+ }
+
+ zOss_Memcpy(g_zAt_EncBuf, g_zAt_OK, strlen((const char *)g_zAt_OK));
+ prsCmd2Msg.decRslt2nd = ZAT2_CMD_REPLY_DIRECT;
+
+ return prsCmd2Msg;
+}
+
+T_ZAt_ParseCmd2MsgRslt zAt_PsDecZcustmMccQryReq(T_ZAt_DecCmdInfo *pDecCmdInfo)
+{
+ BYTE i = 0;
+ CHAR *pStrWalk = g_zAt_EncBuf;
+ T_zAti_NV_CustomMcc tCustmMcc = {0};
+
+ zDev_NV_AtiReadItem(Z_ATI_NV_CustomMcc, (PBYTE)&tCustmMcc);
+
+ sprintf((char *)pStrWalk, "%s+ZCUSTMMCC: %x%x%x%s%s", g_zAt_CRLF, tCustmMcc.bMCC1, tCustmMcc.bMCC2, tCustmMcc.bMCC3, g_zAt_CRLF, g_zAt_OK);
+
+ return zAt_GetParseRslt(ZAT2_CMD_REPLY_DIRECT);
+}
/**************************************************************************
* º¯ÊýÃû³Æ£º zAt_PsDecZpaidQueryReq
* ¹¦ÄÜÃèÊö£º ¸ù¾ÝµÚ1²½½âÎö½á¹û£¬½âÎö+ZPAIDÇëÇ󣬲¢Ö±½ÓÌîд²éѯ½á¹û
diff --git a/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c b/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c
index 01e9bb3..b6d11de 100755
--- a/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c
+++ b/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c
@@ -12323,7 +12323,7 @@
#ifdef DSDS_VSIM
UINT16 zAt_PsEncCardSwitchReqCnf(T_ZAt_EncCmdInfo * pEncCmdInfo)
{
- T_zAtiL1e_CardSwitch_Cnf *pCardSwitchCnf = (T_zAtiL1e_CardSwitch_Cnf*) pEncCmdInfo->pMsgBody;
+ T_zMmiaAs_CardSwitch_Cnf *pCardSwitchCnf = (T_zMmiaAs_CardSwitch_Cnf*) pEncCmdInfo->pMsgBody;
return zAt_PsEncCommonResult(pEncCmdInfo, pCardSwitchCnf->bResult, Z_SUCC, Z_FAIL, 100);
}
diff --git a/cp/ps/modem/ps/src/nas/ati/src/zat_var.c b/cp/ps/modem/ps/src/nas/ati/src/zat_var.c
index 1f53a46..96b1de0 100644
--- a/cp/ps/modem/ps/src/nas/ati/src/zat_var.c
+++ b/cp/ps/modem/ps/src/nas/ati/src/zat_var.c
@@ -117,6 +117,7 @@
{ "+CPLS", ZAT2_MM_CPLS, "+CPLS: (0-2)" },
{ "+CPOL", ZAT2_MM_CPOL, "" },
{ "+CSQ", ZAT2_MM_CSQ, "+CSQ: (0-31,99-199),(0-7,99),(0,3,5,15,17)" },
+ { "+ZSQ", ZAT2_MM_ZSQ, "+ZSQ: (0-31,99),(0-7,99),(0,3,5,15,17)" },
{ "^MODE", ZAT2_MM_MODE, "" },
{ "^SPN", ZAT2_MM_SPN, "^SPN: (0,1)" },
{ "^SYSCONFIG", ZAT2_MM_SYSCONFIG, "" },
@@ -483,6 +484,7 @@
#endif
{ "+ZLTEBLKCELL", ZAT2_LTE_ZLTEBLKCELL, "+ZLTEBLKCELL: (0-5)"},
{ "+ZLTECAT", ZAT2_LTE_ZLTECAT, ""},
+ { "+ZCUSTMMCC", ZAT2_CFG_ZCUSTMMCC, "" },
/********************************* LTE GoTaÄ£¿é *******************************/
#ifdef BTRUNK_SUPPORT
@@ -757,9 +759,10 @@
{ ZAT2_MM_CREG, ZAT2_CO_SET_REQ, AP_MMIA_CREG_SET_REQ_EV, zAt_PsDecMmCregSetReq },
{ ZAT2_MM_CREG, ZAT2_CO_QUERY_REQ, AP_MMIA_CREG_QUERY_REQ_EV, zAt_PsDecCommonReq },
- /******************************************* +CSQ **********************************************/
- { ZAT2_MM_CSQ, ZAT2_CO_ACTION_REQ, ATI_DISTRIBUTE_FUNC_RXLEV_REQ_EV, zAt_PsDecCommonReq },
-
+ /******************************************* +CSQ/+ZSQ **********************************************/
+ { ZAT2_MM_CSQ, ZAT2_CO_ACTION_REQ, ATI_DISTRIBUTE_FUNC_RXLEV_REQ_EV, zAt_PsDecMmCsqReq },
+ { ZAT2_MM_ZSQ, ZAT2_CO_ACTION_REQ, ATI_DISTRIBUTE_FUNC_RXLEV_REQ_EV, zAt_PsDecMmCsqReq },
+
/******************************************* +ZCSQ **********************************************/
{ ZAT2_MM_ZCSQ, ZAT2_CO_ACTION_REQ, ATI_DISTRIBUTE_FUNC_ZCSQ_REQ_EV, zAt_PsDecCommonReq },
@@ -1675,6 +1678,10 @@
{ ZAT2_LTE_ZLTEBLKCELL, ZAT2_CO_SET_REQ, 0, zAt_PsDecZlteblkcellSetReq },
{ ZAT2_LTE_ZLTEBLKCELL, ZAT2_CO_QUERY_REQ, 0, zAt_PsDecZlteblkcellQryReq },
+ /***************************+ZCUSTMMCC*****************************/
+ { ZAT2_CFG_ZCUSTMMCC, ZAT2_CO_SET_REQ, 0, zAt_PsDecZcustmMccSetReq },
+ { ZAT2_CFG_ZCUSTMMCC, ZAT2_CO_QUERY_REQ, 0, zAt_PsDecZcustmMccQryReq },
+
#ifdef DSDS_VSIM
/*******************************************+ZCARDSWITCHREQ**********************************************/
{ ZAT2_LTE_ZCARDSWITCHREQ, ZAT2_CO_SET_REQ, ATI_DISTRIBUTE_FUNC_CARDSWITCH_REQ_EV, zAt_PsDecZcardSwitchReq },
@@ -2383,7 +2390,7 @@
#endif
#ifdef DSDS_VSIM
/*******************************+ZCARDSWITCHREQ*********************************/
- {MMIA_L1E_CARD_SWITCH_CNF_EV, zAt_PsEncCardSwitchReqCnf, ZAT2_CO_CNF },
+ {MMIA_AS_CARD_SWITCH_CNF_EV, zAt_PsEncCardSwitchReqCnf, ZAT2_CO_CNF },
/*******************************+ZCARDSWITCHIND*********************************/
{MMIA_UMM_CARDSWITCH_REQ_IND_EV, zAt_PsEncCardSwitchReqInd, ZAT2_CO_IND },
diff --git a/cp/ps/modem/ps/src/nas/ati/src/zati_com.c b/cp/ps/modem/ps/src/nas/ati/src/zati_com.c
index c4e88bc..52d9758 100755
--- a/cp/ps/modem/ps/src/nas/ati/src/zati_com.c
+++ b/cp/ps/modem/ps/src/nas/ati/src/zati_com.c
@@ -2561,11 +2561,12 @@
{
BYTE bRegState = Z_APMMIA_REGSTATE_UNKNOWN;
BYTE bInsNo = Z_ATI_INSNO_1;
+ BYTE bCurAct = 0;
bInsNo = ((g_zAti_CurInstance == Z_ATI_INSNO_1)? Z_ATI_INSNO_1 : Z_ATI_INSNO_2);
#ifdef PS_RAT_LTE
- BYTE bCurAct = zAti_GetCurAct_ByIndex(bInsNo);
+ bCurAct = zAti_GetCurAct_ByIndex(bInsNo);
if (bCurAct == Z_LTE_ACT)
{
bRegState = g_zAti_atDataEx[bInsNo].bEpsState;
diff --git a/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c b/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c
index b1137c1..2a4cb47 100755
--- a/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c
+++ b/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c
@@ -2740,10 +2740,18 @@
* ·µ »Ø Öµ£º UINT16 ±àÂëËùµÃ×Ö·û´®³¤¶È£¬0Ϊ±àÂëʧ°Ü
* ÆäËü˵Ã÷£º +CSQÖ´ÐÐÃüÁîÏìÓ¦µÄ±àÂ뺯Êý
**************************************************************************/
-VOID zAt_EncCSQCnf(BYTE bRssi, BYTE bBler, BYTE bAct)
-{
- /* +CSQ: <rssi>,<ber> */
- sprintf((char *)g_zAt_EncBuf, "%s+CSQ: %d,%d,%d%s%s", g_zAt_CRLF, bRssi,bBler,bAct,g_zAt_CRLF,g_zAt_OK);
+VOID zAt_EncCSQCnf(BYTE bRssi, BYTE bBler, BYTE bAct, BYTE bAtType)
+{
+ if(bAtType == Z_ATI_CSQ)
+ {
+ /* +CSQ: <rssi>,<ber> */
+ sprintf((char *)g_zAt_EncBuf, "%s+CSQ: %d,%d,%d%s%s", g_zAt_CRLF, bRssi,bBler,bAct,g_zAt_CRLF,g_zAt_OK);
+ }
+ else
+ {
+ /* +ZSQ: <rssi>,<ber> */
+ sprintf((char *)g_zAt_EncBuf, "%s+ZSQ: %d,%d,%d%s%s", g_zAt_CRLF, bRssi,bBler,bAct,g_zAt_CRLF,g_zAt_OK);
+ }
}
/************************************************************************
@@ -2792,7 +2800,7 @@
switch(bRegState)
{
case Z_APMMIA_REGSTATE_NOREGBUTSEARCH: /*ËÑÍø*/
- zAt_EncCSQCnf(99, 99, Z_APMMIA_NOSERVE);
+ zAt_EncCSQCnf(99, 99, Z_APMMIA_NOSERVE, ptCsqQryReq->bAtType);
return Z_APMMIA_NOERROR_ERR;
case Z_APMMIA_REGSTATE_NOREGNOSEARCH: /*Õý³£×¤Áô*/
@@ -2840,7 +2848,7 @@
case Z_APMMIA_REGSTATE_REGDENIED: /*no cell*/
case Z_APMMIA_REGSTATE_UNKNOWN:
default:
- zAt_EncCSQCnf(0, 99, Z_APMMIA_NOSERVE);
+ zAt_EncCSQCnf(0, 99, Z_APMMIA_NOSERVE, ptCsqQryReq->bAtType);
return Z_APMMIA_NOERROR_ERR;
}
@@ -5358,7 +5366,7 @@
{
BYTE bIndex = g_zAti_CurInstance;
T_zMmiaAs_CardSwitch_Ind *ptInd = ZOSS_NULL;
- T_zAtiL1e_CardSwitch_Cnf *ptCardSwitch = (T_zAtiL1e_CardSwitch_Cnf*)pBuff;
+ T_zMmiaAs_CardSwitch_Cnf *ptCardSwitch = (T_zMmiaAs_CardSwitch_Cnf*)pBuff;
/*±ä»»×´Ì¬*/
zAti_GetDualCardStatMutex();
@@ -5402,7 +5410,7 @@
g_zAti_CurInstance = bIndex;
- *pdwChangedMsgId = MMIA_L1E_CARD_SWITCH_CNF_EV;
+ *pdwChangedMsgId = MMIA_AS_CARD_SWITCH_CNF_EV;
return Z_APMMIA_NORESULT;
}
@@ -8326,13 +8334,12 @@
DWORD zAti_CardSwitchReq(VOID* pBuff)
{
BYTE bIndex = g_zAti_CurInstance;
- T_zMmiaAs_CardSwitch_Ind *ptInd = ZOSS_NULL;
- T_zAtiL1e_CardSwitch_Req *ptCardSwitch = ZOSS_NULL;
- T_zAtiL1e_CardSwitch_Req *pAtSwitchCard = (T_zAtiL1e_CardSwitch_Req*)pBuff;
+ T_zMmiaAs_CardSwitch_Req *ptCardSwitch = ZOSS_NULL;
+ T_zMmiaAs_CardSwitch_Req *pAtSwitchCard = (T_zMmiaAs_CardSwitch_Req*)pBuff;
- ptCardSwitch = (T_zAtiL1e_CardSwitch_Req*)zAti_GetUB(sizeof(T_zAtiL1e_CardSwitch_Req));
+ ptCardSwitch = (T_zMmiaAs_CardSwitch_Req*)zAti_GetUB(sizeof(T_zMmiaAs_CardSwitch_Req));
- zOss_Memcpy(ptCardSwitch, pAtSwitchCard, sizeof(T_zAtiL1e_CardSwitch_Req));
+ zOss_Memcpy(ptCardSwitch, pAtSwitchCard, sizeof(T_zMmiaAs_CardSwitch_Req));
if(ptCardSwitch->bSim1Act == Z_ATI_CARD_DEACT)
{
@@ -8343,16 +8350,7 @@
g_zAti_CurInstance = Z_ATI_INSNO_2;
}
- zAti_MsgSend(MMIA_L1E_CARD_SWITCH_REQ_EV, (PBYTE)ptCardSwitch, sizeof(T_zAtiL1e_CardSwitch_Req), Z_ATI_TASKID_L1E);
-
- /*֪ͨµ±Ç°´ýµÄRRCÒµÎñ¹ÒÆð*/
- ptInd = (T_zMmiaAs_CardSwitch_Ind*)zAti_GetUB(sizeof(T_zMmiaAs_CardSwitch_Ind));
- ptInd->bSrcIndex = pAtSwitchCard->bSrcIndex;
- ptInd->bDesIndex = pAtSwitchCard->bDesIndex;
- ptInd->bActStat = Z_ATI_CARD_DEACT;
- ptInd->bIsReEst = Z_ATI_AFTCRDSWH_NONEST;
-
- zAti_MsgSend(MMIA_AS_CARD_SWITCH_IND_EV, (PBYTE)ptInd, sizeof(T_zMmiaAs_CardSwitch_Ind), Z_ATI_TASKID_EUCER);
+ zAti_MsgSend(MMIA_AS_CARD_SWITCH_REQ_EV, (PBYTE)ptCardSwitch, sizeof(T_zMmiaAs_CardSwitch_Req), Z_ATI_TASKID_EUCER);
g_zAti_CurInstance = bIndex;
diff --git a/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c b/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c
index e9a3db5..ebb5259 100755
--- a/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c
+++ b/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c
@@ -379,7 +379,7 @@
{MMIA_UMM_PS_CONTEXT_CNF_EV, zAti_UmmPsContextCnf},
#endif
#ifdef DSDS_VSIM
- {MMIA_L1E_CARD_SWITCH_CNF_EV, zAti_CardSwitchCnf},
+ {MMIA_AS_CARD_SWITCH_CNF_EV, zAti_CardSwitchCnf},
#endif
};
@@ -651,7 +651,7 @@
iEvId == MMIA_L1T_ZTPCG_CNF_EV||
iEvId == MMIA_L1W_ZWPCG_CNF_EV||
iEvId == MMIA_AS_UL_PARAM_IND_EV||
- iEvId == MMIA_L1E_CARD_SWITCH_CNF_EV)
+ iEvId == MMIA_AS_CARD_SWITCH_CNF_EV)
{
return TRUE;
}
@@ -2181,7 +2181,7 @@
if(bValidNum > 0)
pbStrATCmd[--bValidNum] = ZAT2_NULL_CHAR;
}
- else if(ptBuff->arrData[i] == g_zAti_ptData->bCurS3Value)
+ else if((ptBuff->arrData[i] == g_zAti_ptData->bCurS3Value) || (ptBuff->arrData[i] == g_zAti_ptData->bCurS4Value))
{
ptBuff->iLength = bValidNum;
zOss_Memcpy(ptBuff->arrData, pbStrATCmd, bValidNum);/* ½«ÊÕµ½µÄarrData±£´æµ½»º´æ */
@@ -6907,10 +6907,11 @@
º¯ÊýÃû³Æ:zAti_HandleSmDeActAbortedEx
º¯Êý¹¦ÄÜ:Èç¹û¸¨CID±»ABORTÔò·¢ÆðÖ÷CIDµÄÈ¥»î£¬
Èç¹û½öÊǼ¤»îʧ°ÜÔò±£ÁôÖ÷CID
-º¯Êý²ÎÊý:
+º¯Êý²ÎÊý:¸¨CID±»ABORTÔò±£ÁôÖ÷CID---23-03-29
**********************************************************/
static BOOL zAti_HandleSmActFailedExCid(T_zMmiaSm_PdpAct_Cnf * pSmActDeacCnf, UINT8* pDest)
{
+#if 0
BYTE i = 0;
BYTE bCid = 0;
T_zApMmia_SmActDeact_Req smCgactReq = {0};
@@ -6937,6 +6938,7 @@
return zAti_SmCgactReq(&smCgactReq) == Z_APMMIA_NORESULT;
}
+#endif
//·ÇABORTʱ½á¹ûÂëµÄÉϱ¨ÐèÒªÓëÖ÷CIDµÄ±£³ÖÒ»ÖÂ
pSmActDeacCnf->bResult = g_zAti_SmContext[g_zAti_CurInstance].bDualStackActResult;
g_zAti_SmContext[g_zAti_CurInstance].bDualStackActResult = Z_SUCC;//Çå³ý
@@ -7233,8 +7235,11 @@
BYTE bCurrReportChnel = zAti_GetAlwaysReportChnel((BYTE)(g_zAti_CurInstance+1));
if ((zAti_IsSingleCardForTwoStandby() && (zAti_IsUiccEv(iEvId) || zAti_IsStmEv(iEvId)))||
- (iEvId == EV_ZATI2_ZMSRI_IND)||(iEvId == AP_MMIA_PSCFGSTART_IND_EV)||(iEvId ==AP_MMIA_PSCFGEND_IND_EV )||
- (iEvId == MMIA_UMM_CARDSWITCH_REQ_IND_EV))
+ (iEvId == EV_ZATI2_ZMSRI_IND)||(iEvId == AP_MMIA_PSCFGSTART_IND_EV)||(iEvId ==AP_MMIA_PSCFGEND_IND_EV )
+ #ifdef DSDS_VSIM
+ ||(iEvId == MMIA_UMM_CARDSWITCH_REQ_IND_EV) || (iEvId == MMIA_SM_CGEV_IND_EV)
+ #endif
+ )
{
/*ËùÓпÕÏÐͨµÀ¾ùÉϱ¨*/
bIsAllChnlDeliver = TRUE;
diff --git a/cp/ps/modem/ps/src/nas/ati/src/zati_main.c b/cp/ps/modem/ps/src/nas/ati/src/zati_main.c
index 719fd95..32f9fe7 100755
--- a/cp/ps/modem/ps/src/nas/ati/src/zati_main.c
+++ b/cp/ps/modem/ps/src/nas/ati/src/zati_main.c
@@ -126,6 +126,7 @@
case MMIA_AS_TMGI_DEACTIVATE_CNF_EV:
case MMIA_AS_EM_LTE_HO_SET_QUERY_CNF_EV:
case MMIA_AS_EM_LTE_HO_INFO_IND_EV:
+ case MMIA_AS_CARD_SWITCH_CNF_EV:
ptMsgInfo->bSrcMod = SUBMDL_Z_EUCER;
break;
default:
@@ -134,7 +135,7 @@
}
BYTE __ps_static_func zAti_SearchForSrcModByMsgInfo (DWORD dwMsgId, BYTE bTaskIndex, T_z_MsgInfo *ptMsgInfo)
{
- if(dwMsgId == MMIA_L1E_ZEPCG_CNF || dwMsgId == MMIA_AS_UL_PARAM_IND_EV || dwMsgId == MMIA_L1E_CARD_SWITCH_CNF_EV)
+ if(dwMsgId == MMIA_L1E_ZEPCG_CNF || dwMsgId == MMIA_AS_UL_PARAM_IND_EV)
{
ptMsgInfo->bSrcMod = SUBMDL_Z_L1E;/*L1EÊÇÖжÏÖ±½Óµ÷ÓõÄÐèÒªÌØÊâ´¦Àí*/
ptMsgInfo->tSrcTask = zDev_GetTaskId(Z_ATI_TASKID_L1E, g_zAti_CurInstance);
@@ -236,6 +237,7 @@
case MMIA_AS_EM_LTE_HO_INFO_IND_EV:
case MMIA_AS_QUERY_ZCSQ_CNF_EV:
case MMIA_AS_LBS_CNF_EV:
+ case MMIA_AS_CARD_SWITCH_CNF_EV:
zAti_SearchSrcModForAsMsg(dwMsgId, ptMsgInfo);
break;
default:
diff --git a/cp/ps/modem/tools/inc/commgt_api.h b/cp/ps/modem/tools/inc/commgt_api.h
index a8a8a6f..0e7c01e 100755
--- a/cp/ps/modem/tools/inc/commgt_api.h
+++ b/cp/ps/modem/tools/inc/commgt_api.h
@@ -158,7 +158,7 @@
ZCAT_MODE_CP_NET,
ZCAT_MODE_CP_FS,
#ifdef _USE_VEHICLE_DC
- ZCAT_MODE_CAP_EMMC
+ ZCAT_MODE_CAP_FS,
#endif
} E_ZCAT_MODE;
diff --git a/cp/ps/plat/src/oss/psm/src/psm_297520v3.c b/cp/ps/plat/src/oss/psm/src/psm_297520v3.c
index d450dcf..45ce900 100644
--- a/cp/ps/plat/src/oss/psm/src/psm_297520v3.c
+++ b/cp/ps/plat/src/oss/psm/src/psm_297520v3.c
@@ -41,7 +41,7 @@
#define ZOSS_PSM_THREAD_TOTAL_TIME_MIN 3000
#define ZOSS_PSM_IGNORE_THREAD_TOTAL_TIME_MIN 1000
#define ZOSS_PSM_IDLE_CPU_LOAD 70
-#define ZOSS_PSM_IDLE_FLAG_NR 7
+#define ZOSS_PSM_IDLE_FLAG_NR 8
/**************************************************************************
* Íⲿº¯ÊýºÍ±äÁ¿ÉùÃ÷Çø
**************************************************************************/
@@ -76,7 +76,7 @@
extern BOOL zAti2_PsIsInFlyMode(VOID);
extern BOOL zAti2_PsRfNotOpen(VOID);
extern BYTE zPS_umm_IsLossOfCoverage(VOID);
-extern UINT32 zL1e_TaskIsIdlePrint(VOID);
+extern UINT32 zL1e_TaskIsIdlePrint(BYTE bStackIns);
extern UINT32 zL1w_TaskIsIdlePrint(VOID);
extern UINT32 zL1t_TaskIsIdlePrint(VOID);
@@ -340,19 +340,29 @@
#if defined(_OS_LINUX) && (defined CONFIG_PM)
extern void pm_psm_flag_print(UINT32 *sleepflag);
#endif
+
VOID psm_GetModemSleepFlagStatus(VOID)
{
- UINT32 sleepFlagStatus[ZOSS_PSM_IDLE_FLAG_NR] = {0};
- sleepFlagStatus[0] = zL1e_TaskIsIdlePrint(); // 1: bitλ¶ÔÓ¦Ìõ¼þÔÊÐí˯Ãß
+ UINT32 sleepFlagStatus[ZOSS_PSM_IDLE_FLAG_NR] = {0};
+
+#if defined (PS_RAT_LTE)
+ sleepFlagStatus[0] = zL1e_TaskIsIdlePrint(0); // 1: bitλ¶ÔÓ¦Ìõ¼þÔÊÐí˯Ãß
+ #ifdef DUAL_CARD_DUAL_STANDBY
+ sleepFlagStatus[7] = zL1e_TaskIsIdlePrint(1);
+ #else
+ sleepFlagStatus[7] = 0x7f;
+ #endif
+#endif
+
#ifdef PS_RAT_FDD
sleepFlagStatus[1] = zL1w_TaskIsIdlePrint(); // 1: bitλ¶ÔÓ¦Ìõ¼þÔÊÐí˯Ãß
#else
- sleepFlagStatus[1] = 1;
+ sleepFlagStatus[1] = 0x3f;
#endif
#ifdef PS_RAT_TDD
sleepFlagStatus[2] = zL1t_TaskIsIdlePrint(); // 1: bitλ¶ÔÓ¦Ìõ¼þÔÊÐí˯Ãß
#else
- sleepFlagStatus[2] = 1;
+ sleepFlagStatus[2] = 0x3f;
#endif
sleepFlagStatus[3] = zDrvPow_PsmIdleFlagGet(); //0: bitλ¶ÔÓ¦Ìõ¼þÔÊÐí˯Ãß
sleepFlagStatus[4] = psm_AppIdleFlagGet(); //0: bitλ¶ÔÓ¦Ìõ¼þÔÊÐí˯Ãß
@@ -1688,15 +1698,22 @@
**************************************************************************/
VOID zOss_PsmTraceInfo(VOID)
{
- UINT32 dwPsL1eFlg = 0;
+ UINT32 dwPsL1eFlg0 = 0;
+ UINT32 dwPsL1eFlg1 = 0;
UINT32 dwPsL1wFlg = 0;
UINT32 dwPsL1tFlg = 1;
UINT32 dwDrvFlg = 0;
UINT32 dwAppFlg = 0;
UINT32 dwGsmFlg = 0;
UINT32 dwPlatFlg = 0;
-
- dwPsL1eFlg = zL1e_TaskIsIdlePrint(); // 1: bitλ¶ÔÓ¦Ìõ¼þÔÊÐí˯Ãß
+ #if defined (PS_RAT_LTE)
+ dwPsL1eFlg0 = zL1e_TaskIsIdlePrint(0); // 1: bitλ¶ÔÓ¦Ìõ¼þÔÊÐí˯Ãß
+ #ifdef DUAL_CARD_DUAL_STANDBY
+ dwPsL1eFlg1 = zL1e_TaskIsIdlePrint(1);
+ #else
+ dwPsL1eFlg1 = 0x3f;
+ #endif
+#endif
#ifdef PS_RAT_FDD
dwPsL1wFlg = zL1w_TaskIsIdlePrint(); // 1: bitλ¶ÔÓ¦Ìõ¼þÔÊÐí˯Ãß
#endif
@@ -1711,7 +1728,8 @@
dwGsmFlg = !zGsml1_PsmIdleFlag() ; // 1:ÔÊÐí˯Ãß
- IRAM_PSPSM_DEBUG_INFO_L1E = dwPsL1eFlg;
+ IRAM_PSPSM_DEBUG_INFO_L1E = dwPsL1eFlg0;
+ IRAM_PSPSM_DEBUG_INFO_L1E1 = dwPsL1eFlg1;
IRAM_PSPSM_DEBUG_INFO_L1W = dwPsL1wFlg;
IRAM_PSPSM_DEBUG_INFO_L1T = dwPsL1wFlg;
IRAM_PSPSM_DEBUG_INFO_L1G = dwGsmFlg;
@@ -1720,8 +1738,8 @@
IRAM_PSPSM_DEBUG_INFO_APP = dwAppFlg;
IRAM_PSPSM_DEBUG_INFO_L1W = dwPsL1wFlg;
- zOss_Printf(SUBMDL_SHELL, PRINT_LEVEL_ABNORMAL, "SleepInfo PsL1e=%8x L1w=%8x L1t=%8x Gsm=%d,DrvFlg=%8x AppFlg=%8x PlatFlg=%d SleepCnt=%8d",
- dwPsL1eFlg,dwPsL1wFlg,dwPsL1tFlg,dwGsmFlg,dwDrvFlg,dwAppFlg,dwPlatFlg,zDrvPow_PsmDeepSleepCnt());
+ zOss_Printf(SUBMDL_SHELL, PRINT_LEVEL_ABNORMAL, "SleepInfo PsL1e=%8x PsL1e1=%8x L1w=%8x L1t=%8x Gsm=%d,DrvFlg=%8x AppFlg=%8x PlatFlg=%d SleepCnt=%8d",
+ dwPsL1eFlg0,dwPsL1eFlg1,dwPsL1wFlg,dwPsL1tFlg,dwGsmFlg,dwDrvFlg,dwAppFlg,dwPlatFlg,zDrvPow_PsmDeepSleepCnt());
zOss_Printf(SUBMDL_SHELL, PRINT_LEVEL_ABNORMAL,"SleepTicks = %d CurrentTick = %d", g_zPsm_SleepTicksTime, zOss_GetTickCount());
zOss_Printf(SUBMDL_SHELL, PRINT_LEVEL_ABNORMAL,"CampON = %d LossOfCoverage = %d FlyMode = %d GsmSleepTime = %d, PsSleepTime = %d",