From def2367077573b56f9fc4f824e5c0377a3a4175a Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 16 Oct 2023 02:45:46 +0000
Subject: [PATCH] 修改DO2-DO4初始为低
---
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