Merge "[Bugfix][API-1099]occasionally,setup data call fail,due to tele-fwk can not get mccmnc <new solution>" into GSW3.0-No-Connman
diff --git a/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c b/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c
index 2349cab..ca19b11 100755
--- a/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c
+++ b/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c
@@ -206,12 +206,26 @@
 
 static int q2110_read_status(struct phy_device *phydev)
 {
+
 	int val;
+	unsigned int regVal1, regVal2, regVal3;
 
 	phydev->duplex = 1;
 	phydev->pause = 0;
 
-	val = phy_read(phydev, Q2110_T1_AN_STATUS);
+	regVal1 = phy_read(phydev, MII_ADDR_C45 | 0x030901);
+	regVal1 = phy_read(phydev, MII_ADDR_C45 | 0x030901);
+	regVal2 = phy_read(phydev, MII_ADDR_C45 | 0x078001);
+	regVal3 = phy_read(phydev, MII_ADDR_C45 | 0x03FD9D);
+
+	phydev->link = ((0x0004U == (regVal1 & 0x0004U)) 
+			&& (0x3000U == (regVal2 & 0x3000U)) 
+			&& (0x0010U == (regVal3 & 0x0010U))) ? 1 : 0;
+	if(phydev->link == 0)
+	{
+		printk("phy_link_status down: regVal1: %x, regVal2: %x, regVal3: %x.\n",regVal1, regVal2, regVal3);
+	}
+/*	val = phy_read(phydev, Q2110_T1_AN_STATUS);
 	if (val < 0)
 		return val;
 
@@ -219,7 +233,7 @@
 		phydev->link = 1;
 	else
 		phydev->link = 0;
-
+*/
 	val = phy_read(phydev, Q2110_T1_PMA_PMD_CTRL);
 	if (val < 0)
 		return val;
diff --git a/src/lynq/lib/liblynq-call/lynq_call.cpp b/src/lynq/lib/liblynq-call/lynq_call.cpp
index d1e2293..1f2b28b 100755
--- a/src/lynq/lib/liblynq-call/lynq_call.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call.cpp
@@ -808,7 +808,6 @@
        return LYNQ_E_CONFLICT;

     }      

     lynq_call_hungup_all();  

-    lynq_set_voice_audio_mode(AUDIO_MODE_CODEC);

     g_module_init_flag = MODULE_SWITCHING;

     lynq_close_all_urc_socket_thread();

     lynq_close_all_rc_socket_thread();