--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1355,10 +1355,11 @@ static int mtk_poll_tx_qdma(struct mtk_e
 		u32 next_cpu = desc->txd2;
 		int mac = 0;
 
-		desc = mtk_qdma_phys_to_virt(ring, desc->txd2);
 		if ((desc->txd3 & TX_DMA_OWNER_CPU) == 0)
 			break;
 
+		desc = mtk_qdma_phys_to_virt(ring, desc->txd2);
+
 		tx_buf = mtk_desc_to_tx_buf(ring, desc);
 		if (tx_buf->flags & MTK_TX_FLAGS_FPORT1)
 			mac = 1;
@@ -2182,7 +2183,7 @@ static int mtk_start_dma(struct mtk_eth
 
 	if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) {
 		mtk_w32(eth,
-			MTK_TX_WB_DDONE | MTK_TX_DMA_EN |
+			MTK_TX_DMA_EN |
 			MTK_DMA_SIZE_16DWORDS | MTK_NDP_CO_PRO |
 			MTK_RX_DMA_EN | MTK_RX_2B_OFFSET |
 			MTK_RX_BT_32DWORDS,