[][kernel][mt7988][eth][Fix HW path traffic stuck issue on the 4GB/8GB RFB]

[Description]
Fix HW path traffic stuck issue on the 4GB/8GB RFB.

In the mtk_init_fq_dma() function, the extra SDP address (larger than
32 Bits) must be filled in the TXD3.

Without this patch, there might be a traffic stuck issue in the HW path
in HQOS/PPPQ cases on the 4GB/8GB RFB.

[Release-log]
N/A


Change-Id: If03e916ae0f0440103a65897c25aecf2e92e1f0c
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/8157296
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 8794512..c679247 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1558,6 +1558,7 @@
 	dma_addr_t phy_ring_tail;
 	int cnt = MTK_DMA_SIZE;
 	dma_addr_t dma_addr;
+	u64 addr64 = 0;
 	int i;
 
 	if (!eth->soc->has_sram) {
@@ -1597,7 +1598,10 @@
 			txd->txd2 = eth->phy_scratch_ring +
 				(i + 1) * soc->txrx.txd_size;
 
+		addr64 = (MTK_HAS_CAPS(eth->soc->caps, MTK_8GB_ADDRESSING)) ?
+			  TX_DMA_SDP1(dma_addr + i * MTK_QDMA_PAGE_SIZE) : 0;
+
-		txd->txd3 = TX_DMA_PLEN0(MTK_QDMA_PAGE_SIZE);
+		txd->txd3 = TX_DMA_PLEN0(MTK_QDMA_PAGE_SIZE) | addr64;
 		txd->txd4 = 0;
 
 		if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2) ||
@@ -4954,7 +4958,7 @@
 		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(36));
 		if (!err) {
 			err = dma_set_coherent_mask(&pdev->dev,
-						    DMA_BIT_MASK(36));
+						    DMA_BIT_MASK(32));
 			if (err) {
 				dev_err(&pdev->dev, "Wrong DMA config\n");
 				return -EINVAL;