[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);

 }