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