From b625cdcd68479b3d540a915785b6d9809b52a2f8 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Tue, 14 Feb 2023 06:37:54 +0000
Subject: [PATCH] stmmac read mac form eeprom

---
 kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk-tool.c |   25 ++++++++++---------------
 1 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk-tool.c b/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk-tool.c
index 70b458d..46633a6 100644
--- a/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk-tool.c
+++ b/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk-tool.c
@@ -545,15 +545,15 @@
 static void dwmac_rk_rx_clean(struct stmmac_priv *priv,
 			      struct dwmac_rk_lb_priv *lb_priv)
 {
-	if (likely(lb_priv->rx_skbuff_dma)) {
+	struct sk_buff *skb;
+
+	skb = lb_priv->rx_skbuff;
+
+	if (likely(lb_priv->rx_skbuff)) {
 		dma_unmap_single(priv->device,
 				 lb_priv->rx_skbuff_dma,
 				 lb_priv->dma_buf_sz, DMA_FROM_DEVICE);
-		lb_priv->rx_skbuff_dma = 0;
-	}
-
-	if (likely(lb_priv->rx_skbuff)) {
-		dev_consume_skb_any(lb_priv->rx_skbuff);
+		dev_kfree_skb(skb);
 		lb_priv->rx_skbuff = NULL;
 	}
 }
@@ -582,12 +582,7 @@
 	}
 
 	frame_len -= ETH_FCS_LEN;
-	prefetch(skb->data - NET_IP_ALIGN);
 	skb_put(skb, frame_len);
-	dma_unmap_single(priv->device,
-			 lb_priv->rx_skbuff_dma,
-			 lb_priv->dma_buf_sz,
-			 DMA_FROM_DEVICE);
 
 	return dwmac_rk_loopback_validate(priv, lb_priv, skb);
 }
@@ -621,9 +616,10 @@
 static void dwmac_rk_tx_clean(struct stmmac_priv *priv,
 			      struct dwmac_rk_lb_priv *lb_priv)
 {
-	struct sk_buff *skb = lb_priv->tx_skbuff;
+	struct sk_buff *skb;
 	struct dma_desc *p;
 
+	skb = lb_priv->tx_skbuff;
 	p = lb_priv->dma_tx;
 
 	if (likely(lb_priv->tx_skbuff_dma)) {
@@ -635,7 +631,7 @@
 	}
 
 	if (likely(skb)) {
-		dev_consume_skb_any(skb);
+		dev_kfree_skb(skb);
 		lb_priv->tx_skbuff = NULL;
 	}
 
@@ -659,10 +655,9 @@
 	lb_priv->tx_skbuff = skb;
 
 	des = dma_map_single(priv->device, skb->data,
-			     nopaged_len, DMA_TO_DEVICE);
+				    nopaged_len, DMA_TO_DEVICE);
 	if (dma_mapping_error(priv->device, des))
 		goto dma_map_err;
-	lb_priv->tx_skbuff_dma = des;
 
 	stmmac_set_desc_addr(priv, desc, des);
 	lb_priv->tx_skbuff_dma_len = nopaged_len;

--
Gitblit v1.6.2