summaryrefslogtreecommitdiffstats
path: root/target/linux/rb532/patches-2.6.28/013-korina_fix_handling_tx_chain_tail.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/rb532/patches-2.6.28/013-korina_fix_handling_tx_chain_tail.patch')
-rw-r--r--target/linux/rb532/patches-2.6.28/013-korina_fix_handling_tx_chain_tail.patch81
1 files changed, 0 insertions, 81 deletions
diff --git a/target/linux/rb532/patches-2.6.28/013-korina_fix_handling_tx_chain_tail.patch b/target/linux/rb532/patches-2.6.28/013-korina_fix_handling_tx_chain_tail.patch
deleted file mode 100644
index 88fcc53a6c..0000000000
--- a/target/linux/rb532/patches-2.6.28/013-korina_fix_handling_tx_chain_tail.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Originally this must have been a rewrite error when introducing
-'chain_index'. But the original driver did not use the previous chain
-item everywhere: when altering the address tx_chain_tail points to, it
-should move forward, not backwards.
-Also this is not an "index" but rather the penultimate element in the
-chain, so rename it accordingly.
-
-Signed-off-by: Phil Sutter <n0-1@freewrt.org>
----
- drivers/net/korina.c | 22 +++++++++++-----------
- 1 files changed, 11 insertions(+), 11 deletions(-)
-
---- a/drivers/net/korina.c
-+++ b/drivers/net/korina.c
-@@ -199,7 +199,7 @@ static int korina_send_packet(struct sk_
- struct korina_private *lp = netdev_priv(dev);
- unsigned long flags;
- u32 length;
-- u32 chain_index;
-+ u32 chain_prev, chain_next;
- struct dma_desc *td;
-
- spin_lock_irqsave(&lp->lock, flags);
-@@ -231,8 +231,8 @@ static int korina_send_packet(struct sk_
- /* Setup the transmit descriptor. */
- dma_cache_inv((u32) td, sizeof(*td));
- td->ca = CPHYSADDR(skb->data);
-- chain_index = (lp->tx_chain_tail - 1) &
-- KORINA_TDS_MASK;
-+ chain_prev = (lp->tx_chain_tail - 1) & KORINA_TDS_MASK;
-+ chain_next = (lp->tx_chain_tail + 1) & KORINA_TDS_MASK;
-
- if (readl(&(lp->tx_dma_regs->dmandptr)) == 0) {
- if (lp->tx_chain_status == desc_empty) {
-@@ -240,7 +240,7 @@ static int korina_send_packet(struct sk_
- td->control = DMA_COUNT(length) |
- DMA_DESC_COF | DMA_DESC_IOF;
- /* Move tail */
-- lp->tx_chain_tail = chain_index;
-+ lp->tx_chain_tail = chain_next;
- /* Write to NDPTR */
- writel(CPHYSADDR(&lp->td_ring[lp->tx_chain_head]),
- &lp->tx_dma_regs->dmandptr);
-@@ -251,12 +251,12 @@ static int korina_send_packet(struct sk_
- td->control = DMA_COUNT(length) |
- DMA_DESC_COF | DMA_DESC_IOF;
- /* Link to prev */
-- lp->td_ring[chain_index].control &=
-+ lp->td_ring[chain_prev].control &=
- ~DMA_DESC_COF;
- /* Link to prev */
-- lp->td_ring[chain_index].link = CPHYSADDR(td);
-+ lp->td_ring[chain_prev].link = CPHYSADDR(td);
- /* Move tail */
-- lp->tx_chain_tail = chain_index;
-+ lp->tx_chain_tail = chain_next;
- /* Write to NDPTR */
- writel(CPHYSADDR(&lp->td_ring[lp->tx_chain_head]),
- &(lp->tx_dma_regs->dmandptr));
-@@ -270,17 +270,17 @@ static int korina_send_packet(struct sk_
- td->control = DMA_COUNT(length) |
- DMA_DESC_COF | DMA_DESC_IOF;
- /* Move tail */
-- lp->tx_chain_tail = chain_index;
-+ lp->tx_chain_tail = chain_next;
- lp->tx_chain_status = desc_filled;
- netif_stop_queue(dev);
- } else {
- /* Update tail */
- td->control = DMA_COUNT(length) |
- DMA_DESC_COF | DMA_DESC_IOF;
-- lp->td_ring[chain_index].control &=
-+ lp->td_ring[chain_prev].control &=
- ~DMA_DESC_COF;
-- lp->td_ring[chain_index].link = CPHYSADDR(td);
-- lp->tx_chain_tail = chain_index;
-+ lp->td_ring[chain_prev].link = CPHYSADDR(td);
-+ lp->tx_chain_tail = chain_next;
- }
- }
- dma_cache_wback((u32) td, sizeof(*td));