|
|
@@ -53,11 +53,9 @@ Date: Wed Nov 21 10:27:19 2012 +0000
|
|
|
Cc: [email protected] [3.5+]
|
|
|
Signed-off-by: David S. Miller <[email protected]>
|
|
|
|
|
|
-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,7 +146,7 @@ index 1c81825..6cb96b4 100644
|
|
|
|
|
|
cp_reset_hw(cp);
|
|
|
|
|
|
-@@ -979,17 +1017,6 @@ static void cp_init_hw (struct cp_private *cp)
|
|
|
+@@ -979,17 +1017,6 @@ static void cp_init_hw (struct cp_privat
|
|
|
cpw32_f (MAC0 + 0, le32_to_cpu (*(__le32 *) (dev->dev_addr + 0)));
|
|
|
cpw32_f (MAC0 + 4, le32_to_cpu (*(__le32 *) (dev->dev_addr + 4)));
|
|
|
|
|
|
@@ -166,7 +164,7 @@ index 1c81825..6cb96b4 100644
|
|
|
cp_start_hw(cp);
|
|
|
cpw8(TxThresh, 0x06); /* XXX convert magic num to a constant */
|
|
|
|
|
|
-@@ -1192,6 +1219,7 @@ static void cp_tx_timeout(struct net_device *dev)
|
|
|
+@@ -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);
|