[Feature][Modem]Merge MTK release P3 P4 patch
Change-Id: I1ef3d69e36378ee73a422ecb2721488d6b416427
diff --git a/mcu/custom/protocol/common/ps/custom_ssds.c b/mcu/custom/protocol/common/ps/custom_ssds.c
index 666e2a1..b561706 100755
--- a/mcu/custom/protocol/common/ps/custom_ssds.c
+++ b/mcu/custom/protocol/common/ps/custom_ssds.c
@@ -240,12 +240,15 @@
case 354: /* Poste Mobile/Italy */
case 366: /* Appalachian-US */
case 385: /* BH Mobile */
+ case 397:/* Mectel-Myanmar */
+ case 410: /* Mtel-Bosnia and Herzegovina*/
*req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
is_changed = KAL_TRUE;
break;
case 5: /* TMOEU/DTAG Greece/Netherlands/Hungary/Slovakia */
if((0 == strcmp(params_info->mcc, "202")) || (0 == strcmp(params_info->mcc, "204")) ||
- (0 == strcmp(params_info->mcc, "216")) || (0 == strcmp(params_info->mcc, "231")))
+ (0 == strcmp(params_info->mcc, "216")) || (0 == strcmp(params_info->mcc, "231")) ||
+ (0 == strcmp(params_info->mcc, "226")))
{
*req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
is_changed = KAL_TRUE;
@@ -253,7 +256,7 @@
break;
case 120:/* Claro */
{
- if(0 == strcmp(params_info->mcc, "370")) /* Claro-Dominican support USSI */
+ if((0 == strcmp(params_info->mcc, "370")) || (0 == strcmp(params_info->mcc, "740"))) /* Claro-Dominican/Ecuador support USSI */
{
break;
}
@@ -714,6 +717,7 @@
break;
}
case 1:/* CMCC */
+ case 388:/* CBN China*/
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
switch(params_info->atcmd_type)
@@ -1259,6 +1263,21 @@
}
}
}
+ else if(0 == strcmp(params_info->mcc, "655"))
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ }
else if(0 == strcmp(params_info->mcc, "222"))
{
if(0 == strcmp(params_info->mnc, "10")) /* Vodafone-Italy */
@@ -1700,7 +1719,15 @@
}
case 15:/* TELEFONICA */
{
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ if(params_info->ims_domain == CUSTOM_SSDS_IMS_DOMAIN_TYPE_WFC &&
+ params_info->rf_status == CUSTOM_SSDS_RF_OFF)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ }
+ else
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ }
switch(params_info->atcmd_type)
{
case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
@@ -1726,6 +1753,11 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
break;
default:
+ if(CUSTOM_SSDS_ROAMING_TYPE_NO != params_info->roaming_status)
+ {
+ atcmd_path_type = (params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_PS_PREFER:CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ return atcmd_path_type;
+ }
break;
}
break;
@@ -2244,6 +2276,20 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
}
}
+ else if((0 == strcmp(params_info->mcc, "370")))
+ {
+ /*Claro-Dominican*/
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ break;
+ default:
+ break;
+ }
+ }
+
break;
}
case 121: /* BELL */
@@ -2557,7 +2603,15 @@
{
if(0 == strcmp(params_info->mcc, "424")) /** United Arab Emirates **/
{
+ if ((KAL_TRUE != params_info->is_ims_registered) || (KAL_TRUE != params_info->is_mobile_data_setting_enabled))
+ {
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ }
+ else
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ }
+
switch(params_info->atcmd_type)
{
case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
@@ -2882,10 +2936,6 @@
{/* CLIR service*/
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
}
- else
- {
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
- }
break;
}
case 152: /* OPTUS-AUS */
@@ -3006,6 +3056,19 @@
}
}
}
+ else if(0 == strcmp(params_info->mcc, "214"))
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ }
break;
}
case 156: /* TELENOR */
@@ -3496,27 +3559,43 @@
}
case 183: /* PERSONAL */
{
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
- switch(params_info->atcmd_type)
- {
- case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
- case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
- break;
- case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
- case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
- break;
- default:
- break;
- }
- /*data off or roaming status*/
- if((KAL_TRUE != params_info->is_mobile_data_setting_enabled) ||
- (CUSTOM_SSDS_ROAMING_TYPE_NO != params_info->roaming_status) )
- {
- return atcmd_path_type;
- }
- break;
+ if (0 == strcmp(params_info->mcc, "722")) /* Argentina */
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ /*data off or roaming status*/
+ if((KAL_TRUE != params_info->is_mobile_data_setting_enabled) ||
+ (CUSTOM_SSDS_ROAMING_TYPE_NO != params_info->roaming_status) )
+ {
+ return atcmd_path_type;
+ }
+ break;
+ }
+ else if (0 == strcmp(params_info->mcc, "744")) /* Paraguay */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ }
+ break;
}
case 184: /* VIETEL-Vietnam */
{
@@ -3772,6 +3851,7 @@
}
case 202: /* SPARK-NZ */
{
+ need_check_roaming_data_off = KAL_FALSE;
if ((params_info->is_ims_registered)&&
(params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING ||
params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING))
@@ -4025,6 +4105,22 @@
}
}
+ else if(0 == strcmp(params_info->mcc, "714"))/* Tigo-Panama */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ break;
+ default:
+ break;
+ }
+ }
break;
}
case 221:/* TPG-Singapore */
@@ -4331,6 +4427,22 @@
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
break;
}
+ case 246: /* Ooredoo */
+ {
+ if(0 == strcmp(params_info->mcc, "427")) /* Qatar */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ }
case 247: /* Maroc Telecom */
{
if(0 == strcmp(params_info->mcc, "604")) /* Morocco */
@@ -4445,7 +4557,7 @@
{
case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
- atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ atcmd_path_type = (KAL_TRUE == params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_PS_ONLY:CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
break;
case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
@@ -5316,11 +5428,49 @@
need_check_roaming = KAL_TRUE;
break;
}
+ case 382:/*Zeop-French Reunion*/
+ {
+ if(params_info->ims_domain == CUSTOM_SSDS_IMS_DOMAIN_TYPE_WFC)
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ }
+ break;
+ }
case 387:/*West Central Wireless - US*/
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
break;
}
+ case 416: /* Brazil-Brisanet special requirement for SS. Only CLIR/CW should be kept for Brazil-Brisanet*/
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ case 418: /* Emtel - Mauritius */
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
case 1001: /* Ericsson-IODT */
{
/* default config */
@@ -5412,6 +5562,11 @@
}
break;
}
+ case 393:/* IT-E Wireless - USA */
+ {
+ need_check_roaming_data_off = KAL_FALSE;
+ break;
+ }
case 396: /* Thumb cellular -US */
{
switch(params_info->atcmd_type)
@@ -5425,16 +5580,63 @@
}
break;
}
+ case 397: /* Mectel-Myanmar */
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
+ break;
+ }
case 408: /* Bitel -Peru */
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
break;
}
- case 411: /* Evolve - Broadband */
+ case 410: /* Mtel/Bosnia and Herzegovina */
+ {
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ case 411: /* Evolve - Broadband */
{
atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
break;
}
+ case 417: /* ATLAS TELECOM - UAE */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ case 419: /* Airtel - Uganda */
+ {
+ switch(params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
case 1002: /* Nokia IODT */
{
/* default config */
@@ -5719,6 +5921,56 @@
}
break;
}
+ case 388:/* CBN China*/
+ {
+ switch (params_info->atcmd_type)
+ {
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIP:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIP:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_COLR:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_COLR:
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_COLP:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_COLP:
+ if ((KAL_TRUE == params_info->is_ims_registered) ||
+ (403 != params_info->rsp_id && 831 != params_info->rsp_id))
+ {//VOLTE card: not support CLIR/CLIP/COLR/COLP
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO_4;
+ }
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_BARRING:
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_BARRING:
+ //is_ocb = _custom_ssds_is_ocb(&(req_info->atcmd_info));
+ if(CUSTOM_SSDS_OUTGOING_CALL_BARRING == params_info->cb_type && ((KAL_TRUE == params_info->is_ims_registered) ||
+ (403 != params_info->rsp_id && 831 != params_info->rsp_id)))
+ {//VOLTE card: not support OCB
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO_4;
+ }
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+ if((KAL_TRUE == params_info->is_ims_registered) ||
+ (403 != params_info->rsp_id && 831 != params_info->rsp_id))
+ {
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO_832;
+ }
+ break;
+ case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+ if((KAL_TRUE == params_info->is_ims_registered) ||
+ (403 != params_info->rsp_id && 831 != params_info->rsp_id))
+ {
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO_CCWA;
+ }
+ break;
+ default:
+ break;
+ }
+ if(403 == params_info->rsp_id || 831 == params_info->rsp_id)
+ {
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_NO;
+ }
+ break;
+ }
case 2:/* CU */
{
is_need_sync_to_cs = KAL_FALSE;
@@ -6237,6 +6489,14 @@
}
break;
}
+ case 397:/* Mectel - Myanmar */
+ {
+ if (200 != params_info->rsp_id)
+ {
+ rsp_path = CUSTOM_SSDS_CSFB_TYPE_ONCE;
+ }
+ break;
+ }
default:
break;
}
@@ -6494,6 +6754,12 @@
is_ussi_allowed_during_ims_call = KAL_FALSE;
}
break;
+ case 246: /* Ooredoo */
+ if(0 == strcmp(params_info->mcc, "427")) /* Ooredoo-Qatar */
+ {
+ is_ussi_allowed_during_ims_call = KAL_FALSE;
+ }
+ break;
default:
break;
}
@@ -6522,6 +6788,18 @@
case 151: /* M1-Singapore */
is_rat_mode_change_allowed = KAL_TRUE;
break;
+ case 120: /* Claro */
+ if (0 == strcmp(params_info->mcc,"724")) /* Brazil */
+ {
+ is_rat_mode_change_allowed = KAL_TRUE;
+ }
+ break;
+ case 132: /* Movistar*/
+ if(0 == strcmp(params_info->mcc,"724")) /* Brazil*/
+ {
+ is_rat_mode_change_allowed = KAL_TRUE;
+ }
+ break;
default:
break;
}