diff options
Diffstat (limited to 'target/linux/generic/patches-3.6/065-8139cp-fixes.patch')
| -rw-r--r-- | target/linux/generic/patches-3.6/065-8139cp-fixes.patch | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/target/linux/generic/patches-3.6/065-8139cp-fixes.patch b/target/linux/generic/patches-3.6/065-8139cp-fixes.patch index f0087bfee..c79f08ac1 100644 --- a/target/linux/generic/patches-3.6/065-8139cp-fixes.patch +++ b/target/linux/generic/patches-3.6/065-8139cp-fixes.patch @@ -53,11 +53,9 @@ Date: Wed Nov 21 10:27:19 2012 +0000 Cc: stable@kernel.org [3.5+] Signed-off-by: David S. Miller <davem@davemloft.net> -diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c -index 1c81825..6cb96b4 100644 --- a/drivers/net/ethernet/realtek/8139cp.c +++ b/drivers/net/ethernet/realtek/8139cp.c -@@ -648,6 +648,7 @@ static void cp_tx (struct cp_private *cp) +@@ -648,6 +648,7 @@ static void cp_tx (struct cp_private *cp { unsigned tx_head = cp->tx_head; unsigned tx_tail = cp->tx_tail; @@ -65,7 +63,7 @@ index 1c81825..6cb96b4 100644 while (tx_tail != tx_head) { struct cp_desc *txd = cp->tx_ring + tx_tail; -@@ -666,6 +667,9 @@ static void cp_tx (struct cp_private *cp) +@@ -666,6 +667,9 @@ static void cp_tx (struct cp_private *cp le32_to_cpu(txd->opts1) & 0xffff, PCI_DMA_TODEVICE); @@ -75,7 +73,7 @@ index 1c81825..6cb96b4 100644 if (status & LastFrag) { if (status & (TxError | TxFIFOUnder)) { netif_dbg(cp, tx_err, cp->dev, -@@ -697,6 +701,7 @@ static void cp_tx (struct cp_private *cp) +@@ -697,6 +701,7 @@ static void cp_tx (struct cp_private *cp cp->tx_tail = tx_tail; @@ -83,7 +81,7 @@ index 1c81825..6cb96b4 100644 if (TX_BUFFS_AVAIL(cp) > (MAX_SKB_FRAGS + 1)) netif_wake_queue(cp->dev); } -@@ -843,6 +848,8 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb, +@@ -843,6 +848,8 @@ static netdev_tx_t cp_start_xmit (struct wmb(); } cp->tx_head = entry; @@ -92,7 +90,7 @@ index 1c81825..6cb96b4 100644 netif_dbg(cp, tx_queued, cp->dev, "tx queued, slot %d, skblen %d\n", entry, skb->len); if (TX_BUFFS_AVAIL(cp) <= (MAX_SKB_FRAGS + 1)) -@@ -937,6 +944,8 @@ static void cp_stop_hw (struct cp_private *cp) +@@ -937,6 +944,8 @@ static void cp_stop_hw (struct cp_privat cp->rx_tail = 0; cp->tx_head = cp->tx_tail = 0; @@ -101,7 +99,7 @@ index 1c81825..6cb96b4 100644 } static void cp_reset_hw (struct cp_private *cp) -@@ -957,8 +966,38 @@ static void cp_reset_hw (struct cp_private *cp) +@@ -957,8 +966,38 @@ static void cp_reset_hw (struct cp_priva static inline void cp_start_hw (struct cp_private *cp) { @@ -140,7 +138,7 @@ index 1c81825..6cb96b4 100644 } static void cp_enable_irq(struct cp_private *cp) -@@ -969,7 +1008,6 @@ static void cp_enable_irq(struct cp_private *cp) +@@ -969,7 +1008,6 @@ static void cp_enable_irq(struct cp_priv static void cp_init_hw (struct cp_private *cp) { struct net_device *dev = cp->dev; @@ -148,9 +146,9 @@ index 1c81825..6cb96b4 100644 cp_reset_hw(cp); -@@ -979,17 +1017,6 @@ static void cp_init_hw (struct cp_private *cp) - cpw32_f (MAC0 + 0, le32_to_cpu (*(__le32 *) (dev->dev_addr + 0))); - cpw32_f (MAC0 + 4, le32_to_cpu (*(__le32 *) (dev->dev_addr + 4))); +@@ -992,17 +1030,6 @@ static void cp_init_hw (struct cp_privat + + cpw8(Config5, cpr8(Config5) & PMEStatus); - cpw32_f(HiTxRingAddr, 0); - cpw32_f(HiTxRingAddr + 4, 0); @@ -163,10 +161,10 @@ index 1c81825..6cb96b4 100644 - cpw32_f(TxRingAddr, ring_dma & 0xffffffff); - cpw32_f(TxRingAddr + 4, (ring_dma >> 16) >> 16); - - cp_start_hw(cp); - cpw8(TxThresh, 0x06); /* XXX convert magic num to a constant */ + cpw16(MultiIntr, 0); -@@ -1192,6 +1219,7 @@ static void cp_tx_timeout(struct net_device *dev) + cpw8_f(Cfg9346, Cfg9346_Lock); +@@ -1192,6 +1219,7 @@ static void cp_tx_timeout(struct net_dev cp_clean_rings(cp); rc = cp_init_rings(cp); cp_start_hw(cp); |
