[rdkb][common][bsp][Refactor and sync kernel from openwrt]

[Description]
c831e5e1 [HIGH][kernel][mt7988][eth][Change reconfiguration criteria of the link down recovery handler for the USXGMII/SGMII]
273f0cd1 [kernel][mt7988][eth][Correct CPU next free and last free index of DMAD for TX ring debug command]
08bd7943 [kernel][mt7988][eth][Add XGMAC_MAC and XGMAC_STS to the dbg_regs command]

[Release-log]

Change-Id: Ide24540bec4a22b75bb114803c2d3aec10b10aa9
diff --git a/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_dbg.c b/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_dbg.c
index 91caa38..d8b2922 100755
--- a/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_dbg.c
+++ b/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_dbg.c
@@ -885,8 +885,10 @@
 	int i = 0;
 
 	seq_printf(seq, "free count = %d\n", (int)atomic_read(&ring->free_count));
-	seq_printf(seq, "cpu next free: %d\n", (int)(ring->next_free - ring->dma));
-	seq_printf(seq, "cpu last free: %d\n", (int)(ring->last_free - ring->dma));
+	seq_printf(seq, "cpu next free: %d\n",
+		   (int)(ring->next_free - ring->dma) / eth->soc->txrx.txd_size);
+	seq_printf(seq, "cpu last free: %d\n",
+		   (int)(ring->last_free - ring->dma) / eth->soc->txrx.txd_size);
 	for (i = 0; i < eth->soc->txrx.tx_dma_size; i++) {
 		dma_addr_t tmp = ring->phys +
 				 i * (dma_addr_t)eth->soc->txrx.txd_size;
@@ -1155,7 +1157,16 @@
 		seq_printf(seq, "| MAC_P3_FSM	: %08x |\n",
 			   mtk_r32(eth, MTK_MAC_FSM(2)));
 	}
-
+	if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V3)) {
+		seq_printf(seq, "| XMAC_P1_MCR	: %08x |\n",
+			   mtk_r32(eth, MTK_XMAC_MCR(1)));
+		seq_printf(seq, "| XMAC_P2_MCR	: %08x |\n",
+			   mtk_r32(eth, MTK_XMAC_MCR(2)));
+		seq_printf(seq, "| XMAC_P1_STS	: %08x |\n",
+			   mtk_r32(eth, MTK_XGMAC_STS(1)));
+		seq_printf(seq, "| XMAC_P2_STS	: %08x |\n",
+			   mtk_r32(eth, MTK_XGMAC_STS(2)));
+	}
 	if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2) ||
 	    MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V3)) {
 		seq_printf(seq, "| FE_CDM1_FSM	: %08x |\n",
diff --git a/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c b/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
index c36a174..710b1b8 100755
--- a/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
+++ b/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
@@ -587,7 +587,7 @@
 		if (mtk_sgmii_link_status(mpcs))
 			goto exit;
 
-		if (mode == MLO_AN_PHY)
+		if (mode != MLO_AN_INBAND)
 			mtk_sgmii_pcs_config(&mpcs->pcs, mode,
 					     interface, mpcs->advertising, false);
 	} while (time_before(jiffies, t_start + msecs_to_jiffies(3000)));
diff --git a/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c b/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c
index 0e4d9ee..6acd9f8 100644
--- a/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c
+++ b/recipes-kernel/linux/linux-mediatek-5.4/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_usxgmii.c
@@ -787,7 +787,7 @@
 		mpcs_mode = mpcs->mode;
 		spin_unlock(&mpcs->regmap_lock);
 
-		if (mpcs_mode == MLO_AN_PHY)
+		if (mpcs_mode != MLO_AN_INBAND)
 			mtk_usxgmii_pcs_config(&mpcs->pcs, mode,
 						interface, NULL, false);
 	} while (time_before(jiffies, t_start + msecs_to_jiffies(3000)));