[Feature][T8TSK-209][Modem]Update Modem version to P5 0531

Change-Id: I2e8eae57738092652f476deea2da04d69e7f8426
diff --git a/mcu/custom/protocol/common/ps/custom_ssds.c b/mcu/custom/protocol/common/ps/custom_ssds.c
index b561706..1f265b4 100755
--- a/mcu/custom/protocol/common/ps/custom_ssds.c
+++ b/mcu/custom/protocol/common/ps/custom_ssds.c
@@ -223,6 +223,7 @@
 		case 278: /* Jazz-Pakistan */
 		case 294: /* MPT-Mayanmar */
 		case 296:/* CWW-US */
+        case 303: /* Iliad/Italy */
 		case 306: /* CUHK-Hongkong */
 		case 314: /* Telepost-Greenland */
         case 315: /* Tele2-Kazakhstan */
@@ -245,6 +246,14 @@
             *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
 			is_changed = KAL_TRUE;
             break;
+		case 420: /* Saudi Arabia -Redbull*/
+            *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
+            is_changed = KAL_TRUE;
+            break;
+		case 426: /* NLC - Pakistan */
+            *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_IMS;
+            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")) ||
@@ -271,6 +280,13 @@
                 is_changed = KAL_TRUE;
             }
             break;
+		case 113: /* Beeline */
+			if(0 == strcmp(params_info->mcc, "250"))  /* Beeline-Russia */
+            {
+                *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
+                is_changed = KAL_TRUE;
+            }
+            break;
 		case 137:/* Tele2 */
            	if(0 == strcmp(params_info->mcc, "250")) /* Tele2/Russia USSD over CS */
            	{
@@ -292,13 +308,14 @@
                 is_changed = KAL_TRUE;
             }
             break;
-	    case 9:/* CT */
-		case 304:/* CTMO: only support CF and CW --aomen*/
+        case 9:/* CT */
+        case 304:/* CTMO: only support CF and CW --aomen*/
+        case 430: /* Airtel- Nigeria */
             *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_NOT_SUPPORT;
             is_changed = KAL_TRUE;
             break;
-        case 6: /* VDF */
-            if(0 == strcmp(params_info->mcc, "655"))  /* VDF-South Africa */
+        case 6: /* VDF-South Africa and VDF-EU IOT */
+            if((0 == strcmp(params_info->mcc, "655")) || (0 == strcmp(params_info->mcc, "901")))
             {
                 *req_ussd_path_type = CUSTOM_SSDS_USSD_PATH_TYPE_CS;
                 is_changed = KAL_TRUE;
@@ -1464,6 +1481,10 @@
                         break;
                 }
             }
+            else if(0 == strcmp(params_info->mcc, "901")) /* VDF-EU IOT */
+            {
+                atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+            }
             need_check_roaming_data_off = KAL_FALSE;
             break;
         }
@@ -2339,7 +2360,7 @@
                     break;
                 default:
                     break;
-			}
+            }
             break;
         }
         case 125: /* DTAC-Thailand */
@@ -2370,25 +2391,33 @@
             }
 
             if(0 == strcmp(params_info->mcc, "250"))
-			{
-			    if(0 == strcmp(params_info->mnc, "02")) /* MEGAFON-Russian */
-			    {
+            {
+                if(0 == strcmp(params_info->mnc, "02")) /* MEGAFON-Russian */
+                {
                     if ((KAL_FALSE == params_info->is_ims_registered) &&
-						(params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING ||
+                        (params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING ||
                         params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING))
                     {/* CW service*/
                         atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
                     }
-			    }
+                }
             }
             break;
         }
-        case 128: /* DNA */
+        case 128: /* DNA Finland */
         {
-            if (params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_SET_CLIR ||
-                params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR)
-            {/* CLIR service*/
-                atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+            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_TB_SOLUTION;
+                    break;
+                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;
         }
@@ -2400,10 +2429,19 @@
                 case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR:
                     atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
                     break;
+				case CUSTOM_SSDS_ATCMD_TYPE_SET_CLIP:
+                case CUSTOM_SSDS_ATCMD_TYPE_GET_CLIP:
+					atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION;
+					break;
                 case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
                 case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
                     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_CALL_BARRING:
+				case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_BARRING:
+					atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+					break;
+					
                 default:
                     break;
             }
@@ -2791,6 +2829,18 @@
                         break;
                 }
             }
+            else if(0 == strcmp(params_info->mcc, "247")) //Latvia)
+            {
+                switch(params_info->atcmd_type)
+                {
+                    case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+                    case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+                        atcmd_path_type = (KAL_TRUE == params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_PS_ONLY:CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+                        break;
+                    default:
+                        break;
+                }
+            }
             break;
         }
         case 139: /* BOUYGUES */
@@ -3250,8 +3300,8 @@
         }
         case 158: /* Zain */
         {
-           /*Kuwait*/
-            if(0 == strcmp(params_info->mcc, "419"))
+           /*Kuwait*Jordan*/
+            if((0 == strcmp(params_info->mcc, "419")) || (0 == strcmp(params_info->mcc, "416")))
             {
                 atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
             }
@@ -4102,6 +4152,10 @@
                    params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_GET_CLIR)
                 {
                     atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_OPERATION_NOT_SUPPORTED_4;
+                } else if (params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING ||
+                   params_info->atcmd_type == CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING)
+                {
+                    atcmd_path_type = (KAL_TRUE == params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_PS_PREFER:CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
                 }
 
             }
@@ -4299,7 +4353,21 @@
         {
             if(0 == strcmp(params_info->mcc, "220")) /* Serbia */
             {
-                 atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
+                atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
+                switch(params_info->atcmd_type)
+                {
+                    case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
+                    case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_WAITING:
+                        /* Set to CS only to sync the status with CS, then retun terminal based */
+                        atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+                        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;
+                }
             }
             break;
         }
@@ -4827,6 +4895,11 @@
             }
             break;
         }
+        case 303: /* Iliad/Italy */
+        {
+            atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+            break;
+        }
 		case 306:/* CUHK */
         {
             atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
@@ -5332,7 +5405,6 @@
 		}
 		case 357:/*CNT-Ecuador*/
 		{
-			atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
 			switch(params_info->atcmd_type)
             {
                 case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_WAITING:
@@ -5637,6 +5709,100 @@
             }
             break;
         }
+		case 420: /* Redbull - Saudi Arabia */
+        {
+			atcmd_path_type = (KAL_TRUE == params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_PS_ONLY: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 421: /* Mobile - Yemen */
+        {
+			switch(params_info->atcmd_type)
+            {
+                case CUSTOM_SSDS_ATCMD_TYPE_SET_CALL_BARRING:
+                case CUSTOM_SSDS_ATCMD_TYPE_GET_CALL_BARRING:
+                    atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_PS_ONLY;
+                    break;
+                default:
+                    break;
+            }
+            if(params_info->roaming_status != CUSTOM_SSDS_ROAMING_TYPE_NO)
+			{
+				atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+			}			
+            break;
+        }
+        case 424: /* Vodafone/Iceland */
+        {
+            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;
+            }
+            if(params_info->roaming_status != CUSTOM_SSDS_ROAMING_TYPE_NO)
+            {
+                atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+            }
+            break;
+        }
+		case 426: /* NLC - Pakistan*/
+        {
+			atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+            break;
+        }
+        case 430: /* Airtel - Nigeria*/
+        {
+			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;
+            }
+			if(atcmd_path_type == CUSTOM_SSDS_PATH_TYPE_PS_PREFER ||
+               atcmd_path_type == CUSTOM_SSDS_PATH_TYPE_PS_ONLY)
+            {
+                if(KAL_TRUE != params_info->is_mobile_data_setting_enabled)
+                {
+                    atcmd_path_type = CUSTOM_SSDS_PATH_TYPE_CS_ONLY;
+                    return atcmd_path_type;
+                }
+            }
+			need_check_roaming_data_off_cs_only = KAL_TRUE;
+            break;
+        }
+		case 431: /* Unifique - Brazil */
+        {
+            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:
+                    atcmd_path_type = (KAL_TRUE == params_info->is_ims_registered)?CUSTOM_SSDS_PATH_TYPE_TB_SOLUTION:CUSTOM_SSDS_PATH_TYPE_PS_PREFER;
+                    break;
+                default:
+                    break;
+			}
+            break;
+        }
         case 1002: /* Nokia IODT */
         {
             /* default config */
@@ -6754,6 +6920,12 @@
                 is_ussi_allowed_during_ims_call  = KAL_FALSE;
             }
             break;			
+		case 220: /* Tigo */
+			if(0 == strcmp(params_info->mcc, "704")) /* Tigo-Guatemala */ 
+			{
+			    is_ussi_allowed_during_ims_call  = KAL_FALSE;
+			}
+			break;
 		case 246: /* Ooredoo */
             if(0 == strcmp(params_info->mcc, "427")) /* Ooredoo-Qatar */
             {
@@ -6773,7 +6945,13 @@
     if(params_info->nr_attached == KAL_TRUE)
     {
         switch(params_info->op_id)
-        {    
+        {
+            case 3: /* Orange */
+                if(0 == strcmp(params_info->mcc, "214")) /* Spain */
+                {
+                    is_rat_mode_change_allowed  = KAL_TRUE;
+                }
+                break;
             case 6: /* Vodafone */
                 if(0 == strcmp(params_info->mcc, "262")) /* Vodafone-Germany */
                 {