devices/8139too.c
branchstable-1.0
changeset 1621 4bbe090553f7
parent 1619 0d4119024f55
--- a/devices/8139too.c	Mon May 29 09:54:18 2006 +0000
+++ b/devices/8139too.c	Mon Jun 26 15:04:06 2006 +0000
@@ -133,6 +133,7 @@
 #define DRV_NAME	"ec_8139too"
 #define DRV_VERSION	"0.9.27"
 
+
 #include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
@@ -342,6 +343,7 @@
 
 /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
+/* prevent driver from being loaded automatically */
 //MODULE_DEVICE_TABLE (pci, rtl8139_pci_tbl);
 
 /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
@@ -669,10 +671,8 @@
 
 /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
-MODULE_AUTHOR("Wilhelm Hagemeister <hm@igh-essen.com>,"
-              " Florian Pose <fp@igh-essen.com>");
-MODULE_DESCRIPTION("RealTek RTL-8139 Fast Ethernet"
-                   " driver with EtherCAT functionality");
+MODULE_AUTHOR("Florian Pose <fp@igh-essen.com>");
+MODULE_DESCRIPTION("RealTek RTL-8139 EtherCAT driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(COMPILE_INFO);
 
@@ -1050,8 +1050,8 @@
 	/* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 	if (board_idx == ec_device_index) {
-            rtl_ec_net_dev = dev;
-            strcpy(dev->name, "ec0");
+        rtl_ec_net_dev = dev;
+        strcpy(dev->name, "ec0");
 	}
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
@@ -1098,7 +1098,6 @@
 		(debug < 0 ? RTL8139_DEF_MSG_ENABLE : ((1 << debug) - 1));
 	spin_lock_init (&tp->lock);
 	spin_lock_init (&tp->rx_lock);
-
 	init_waitqueue_head (&tp->thr_wait);
 	init_completion (&tp->thr_exited);
 	tp->mii.dev = dev;
@@ -1111,11 +1110,10 @@
 
 	/* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
-        if (dev != rtl_ec_net_dev) {
-            DPRINTK("About to register device named %s (%p)...\n",
-                    dev->name, dev);
-            i = register_netdev (dev);
-            if (i) goto err_out;
+    if (dev != rtl_ec_net_dev) {
+        DPRINTK("about to register device named %s (%p)...\n", dev->name, dev);
+        i = register_netdev (dev);
+        if (i) goto err_out;
 	}
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
@@ -1207,10 +1205,10 @@
 
 	assert (dev != NULL);
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-        if (dev != rtl_ec_net_dev) {
-            unregister_netdev (dev);
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+    if (dev != rtl_ec_net_dev) {
+        unregister_netdev (dev);
 	}
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
@@ -1417,16 +1415,12 @@
 
 	/* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
-#ifdef EC_DEBUG
-        printk(KERN_DEBUG "%s: open\n", dev->name);
-#endif
-
-        if (dev != rtl_ec_net_dev) {
-            retval = request_irq(dev->irq, rtl8139_interrupt,
-                                 SA_SHIRQ, dev->name, dev);
-            if (retval)
-                return retval;
-        }
+    if (dev != rtl_ec_net_dev) {
+	    retval = request_irq(dev->irq, rtl8139_interrupt,
+                             SA_SHIRQ, dev->name, dev);
+        if (retval)
+            return retval;
+    }
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
@@ -1434,24 +1428,24 @@
 					   &tp->tx_bufs_dma);
 	tp->rx_ring = pci_alloc_consistent(tp->pci_dev, RX_BUF_TOT_LEN,
 					   &tp->rx_ring_dma);
-	if (tp->tx_bufs == NULL || tp->rx_ring == NULL)
-        {
-                /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-                if (dev != rtl_ec_net_dev) {
-                    free_irq(dev->irq, dev);
-                }
-
-                /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
-
-                if (tp->tx_bufs)
-                  pci_free_consistent(tp->pci_dev, TX_BUF_TOT_LEN,
-                                      tp->tx_bufs, tp->tx_bufs_dma);
-                if (tp->rx_ring)
-                  pci_free_consistent(tp->pci_dev, RX_BUF_TOT_LEN,
-                                      tp->rx_ring, tp->rx_ring_dma);
-
-                return -ENOMEM;
+	if (tp->tx_bufs == NULL || tp->rx_ring == NULL) {
+        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+        if (dev != rtl_ec_net_dev) {
+            free_irq(dev->irq, dev);
+        }
+
+        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+
+        if (tp->tx_bufs)
+          pci_free_consistent(tp->pci_dev, TX_BUF_TOT_LEN,
+                              tp->tx_bufs, tp->tx_bufs_dma);
+        if (tp->rx_ring)
+          pci_free_consistent(tp->pci_dev, RX_BUF_TOT_LEN,
+                              tp->rx_ring, tp->rx_ring_dma);
+
+        return -ENOMEM;
+
 	}
 
 	tp->mii.full_duplex = tp->mii.force_media;
@@ -1460,40 +1454,45 @@
 	rtl8139_init_ring (dev);
 	rtl8139_hw_start (dev);
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-        if (dev != rtl_ec_net_dev) {
-            netif_start_queue (dev);
-
-            if (netif_msg_ifup(tp)) {
-                printk(KERN_DEBUG "%s: rtl8139_open() ioaddr %#lx IRQ %d"
-                       " GP Pins %2.2x %s-duplex.\n",
-                       dev->name, pci_resource_start (tp->pci_dev, 1),
-                       dev->irq, RTL_R8 (MediaStatus),
-                       tp->mii.full_duplex ? "full" : "half");
-            }
-
-            rtl8139_start_thread(dev);
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+    if (dev != rtl_ec_net_dev) {
+        netif_start_queue (dev);
+
+        if (netif_msg_ifup(tp))
+            printk(KERN_DEBUG "%s: rtl8139_open() ioaddr %#lx IRQ %d"
+                   " GP Pins %2.2x %s-duplex.\n",
+                   dev->name, pci_resource_start (tp->pci_dev, 1),
+                   dev->irq, RTL_R8 (MediaStatus),
+                   tp->mii.full_duplex ? "full" : "half");
+
+        rtl8139_start_thread(dev);
+    }
+
+	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+
+	return 0;
+}
+
+
+static void rtl_check_media (struct net_device *dev, unsigned int init_media)
+{
+	struct rtl8139_private *tp = netdev_priv(dev);
+
+	/* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+    if (dev != rtl_ec_net_dev) {
+        if (tp->phys[0] >= 0) {
+            mii_check_media(&tp->mii, netif_msg_link(tp), init_media);
         }
+    } else {
+        void __iomem *ioaddr = tp->mmio_addr;
+        uint16_t state = RTL_R16(BasicModeStatus) & BMSR_LSTATUS;
+        ecdev_link_state(rtl_ec_dev, state ? 1 : 0);
+    }
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
-	return 0;
-}
-
-
-static void rtl_check_media (struct net_device *dev, unsigned int init_media)
-{
-	struct rtl8139_private *tp = netdev_priv(dev);
-
-        if (dev == rtl_ec_net_dev) {
-            void __iomem *ioaddr = tp->mmio_addr;
-            uint16_t state = RTL_R16(BasicModeStatus) & BMSR_LSTATUS;
-            ecdev_link_state(rtl_ec_dev, state ? 1 : 0);
-        }
-        else if (tp->phys[0] >= 0) {
-		mii_check_media(&tp->mii, netif_msg_link(tp), init_media);
-	}
 }
 
 /* Start the hardware at open or resume. */
@@ -1560,9 +1559,9 @@
 
 	/* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
-        if (dev != rtl_ec_net_dev) {
-            /* Enable all known interrupts by setting the interrupt mask. */
-            RTL_W16 (IntrMask, rtl8139_intr_mask);
+    if (dev != rtl_ec_net_dev) {
+        /* Enable all known interrupts by setting the interrupt mask. */
+        RTL_W16 (IntrMask, rtl8139_intr_mask);
 	}
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
@@ -1818,7 +1817,6 @@
 				" (queue head)" : "");
 
 	tp->xstats.tx_timeouts++;
-    printk(KERN_DEBUG "%s: tx_timeout\n", dev->name);
 
 	/* disable Tx ASAP, if not already */
 	tmp8 = RTL_R8 (ChipCmd);
@@ -1827,35 +1825,31 @@
 
     /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
-
-        if (dev != rtl_ec_net_dev) {
-            spin_lock(&tp->rx_lock);
-
-            /* Disable interrupts by clearing the interrupt mask. */
-            RTL_W16 (IntrMask, 0x0000);
-
-            /* Stop a shared interrupt from scavenging while we are. */
-            spin_lock_irqsave (&tp->lock, flags);
-            rtl8139_tx_clear (tp);
-            spin_unlock_irqrestore (&tp->lock, flags);
-
-            /* ...and finally, reset everything */
-
-            if (netif_running(dev)) {
-                rtl8139_hw_start (dev);
-                netif_wake_queue (dev);
-            }
-
-            spin_unlock(&tp->rx_lock);
+    if (dev != rtl_ec_net_dev) {
+        spin_lock(&tp->rx_lock);
+        /* Disable interrupts by clearing the interrupt mask. */
+        RTL_W16 (IntrMask, 0x0000);
+
+        /* Stop a shared interrupt from scavenging while we are. */
+        spin_lock_irqsave (&tp->lock, flags);
+        rtl8139_tx_clear (tp);
+        spin_unlock_irqrestore (&tp->lock, flags);
+
+        /* ...and finally, reset everything */
+        if (netif_running(dev)) {
+            rtl8139_hw_start (dev);
+            netif_wake_queue (dev);
         }
-        else {
-            rtl8139_tx_clear (tp);
-            rtl8139_hw_start(dev);
-        }
+        spin_unlock(&tp->rx_lock);
+    } else {
+        rtl8139_tx_clear (tp);
+        rtl8139_hw_start(dev);
+    }
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 }
 
+
 static int rtl8139_start_xmit (struct sk_buff *skb, struct net_device *dev)
 {
 	struct rtl8139_private *tp = netdev_priv(dev);
@@ -1866,27 +1860,27 @@
 	/* Calculate the next Tx descriptor entry. */
 	entry = tp->cur_tx % NUM_TX_DESC;
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-        /* Note: the chip doesn't have auto-pad! */
-	if (likely(len < TX_BUF_SIZE))
-        {
-                if (len < ETH_ZLEN)
-                        memset(tp->tx_buf[entry], 0, ETH_ZLEN);
-
-                skb_copy_and_csum_dev(skb, tp->tx_buf[entry]);
-                if (dev != rtl_ec_net_dev) dev_kfree_skb(skb);
-	}
-        else
-        {
-                if (dev != rtl_ec_net_dev) dev_kfree_skb(skb);
-                tp->stats.tx_dropped++;
-                return 0;
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+    /* Note: the chip doesn't have auto-pad! */
+	if (likely(len < TX_BUF_SIZE)) {
+        if (len < ETH_ZLEN)
+                memset(tp->tx_buf[entry], 0, ETH_ZLEN);
+        skb_copy_and_csum_dev(skb, tp->tx_buf[entry]);
+        if (dev != rtl_ec_net_dev) {
+            dev_kfree_skb(skb);
+        }
+	} else {
+        if (dev != rtl_ec_net_dev) {
+            dev_kfree_skb(skb);
+        }
+        tp->stats.tx_dropped++;
+        return 0;
 	}
 
 	if (dev != rtl_ec_net_dev) {
-            spin_lock_irq(&tp->lock);
-        }
+        spin_lock_irq(&tp->lock);
+    }
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
@@ -1901,15 +1895,14 @@
 	/* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 	if (dev != rtl_ec_net_dev) {
-                if ((tp->cur_tx - NUM_TX_DESC) == tp->dirty_tx)
-                        netif_stop_queue (dev);
-
-                spin_unlock_irq(&tp->lock);
-
-                if (netif_msg_tx_queued(tp))
-                        printk (KERN_DEBUG "%s: Queued Tx packet size %u to slot %d.\n",
-                                dev->name, len, entry);
-        }
+        if ((tp->cur_tx - NUM_TX_DESC) == tp->dirty_tx)
+                netif_stop_queue (dev);
+        spin_unlock_irq(&tp->lock);
+
+        if (netif_msg_tx_queued(tp))
+            printk (KERN_DEBUG "%s: Queued Tx packet size %u to slot %d.\n",
+                dev->name, len, entry);
+    }
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
@@ -1928,7 +1921,6 @@
 
 	dirty_tx = tp->dirty_tx;
 	tx_left = tp->cur_tx - dirty_tx;
-
 	while (tx_left > 0) {
 		int entry = dirty_tx % NUM_TX_DESC;
 		int txstatus;
@@ -1971,7 +1963,7 @@
 		tx_left--;
 	}
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 #ifndef RTL8139_NDEBUG
 	if (dev != rtl_ec_net_dev && tp->cur_tx - dirty_tx > NUM_TX_DESC) {
@@ -1981,20 +1973,20 @@
 	}
 #endif /* RTL8139_NDEBUG */
 
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	/* only wake the queue if we did work, and the queue is stopped */
 	if (tp->dirty_tx != dirty_tx) {
 		tp->dirty_tx = dirty_tx;
 		mb();
 
-                /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 		if (dev != rtl_ec_net_dev) {
-                    netif_wake_queue (dev);
-                }
-
-                /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+            netif_wake_queue (dev);
+        }
+
+        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 	}
 }
 
@@ -2128,9 +2120,15 @@
 		 RTL_R16 (RxBufAddr),
 		 RTL_R16 (RxBufPtr), RTL_R8 (ChipCmd));
 
+
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
 	while ((dev == rtl_ec_net_dev || netif_running(dev))
 	       && received < budget
 	       && (RTL_R8 (ChipCmd) & RxBufEmpty) == 0) {
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+
 		u32 ring_offset = cur_rx % RX_BUF_LEN;
 		u32 rx_status;
 		unsigned int pkt_size;
@@ -2143,14 +2141,16 @@
 		rx_size = rx_status >> 16;
 		pkt_size = rx_size - 4;
 
-                /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-		if (dev != rtl_ec_net_dev && netif_msg_rx_status(tp))
-                        printk(KERN_DEBUG "%s:  rtl8139_rx() status %4.4x, size %4.4x,"
-                               " cur %4.4x.\n", dev->name, rx_status,
-                               rx_size, cur_rx);
-
-                /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+        if (dev != rtl_ec_net_dev) {
+		    if (netif_msg_rx_status(tp))
+                printk(KERN_DEBUG "%s:  rtl8139_rx() status %4.4x, size %4.4x,"
+                       " cur %4.4x.\n", dev->name, rx_status,
+                       rx_size, cur_rx);
+        }
+
+        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 #if RTL8139_DEBUG > 2
 		{
@@ -2199,48 +2199,46 @@
 			goto out;
 		}
 
-                /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-                if (dev != rtl_ec_net_dev) {
-                    /* Malloc up new buffer, compatible with net-2e. */
-                    /* Omit the four octet CRC from the length. */
-                    skb = dev_alloc_skb(pkt_size + 2);
-
-                    if (likely(skb)) {
-                        skb->dev = dev;
-                        skb_reserve (skb, 2);	/* 16 byte align the IP fields. */
+        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+        if (dev != rtl_ec_net_dev) {
+            /* Malloc up new buffer, compatible with net-2e. */
+            /* Omit the four octet CRC from the length. */
+
+            skb = dev_alloc_skb (pkt_size + 2);
+            if (likely(skb)) {
+                skb->dev = dev;
+                skb_reserve (skb, 2);	/* 16 byte align the IP fields. */
 #if RX_BUF_IDX == 3
-                        wrap_copy(skb, rx_ring, ring_offset+4, pkt_size);
+                wrap_copy(skb, rx_ring, ring_offset+4, pkt_size);
 #else
-                        eth_copy_and_sum (skb, &rx_ring[ring_offset + 4], pkt_size, 0);
+                eth_copy_and_sum (skb, &rx_ring[ring_offset + 4], pkt_size, 0);
 #endif
-                        skb_put (skb, pkt_size);
-
-                        skb->protocol = eth_type_trans (skb, dev);
-
-                        dev->last_rx = jiffies;
-                        tp->stats.rx_bytes += pkt_size;
-                        tp->stats.rx_packets++;
-
-                        netif_receive_skb (skb);
-                    } else {
-                        if (net_ratelimit())
-                            printk (KERN_WARNING
-                                    "%s: Memory squeeze, dropping packet.\n",
-                                    dev->name);
-                        tp->stats.rx_dropped++;
-                    }
-                }
-                else
-                {
-                    ecdev_receive(rtl_ec_dev,
-                                  &rx_ring[ring_offset + 4], pkt_size);
-                    dev->last_rx = jiffies;
-                    tp->stats.rx_bytes += pkt_size;
-                    tp->stats.rx_packets++;
-                }
-
-                /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+                skb_put (skb, pkt_size);
+
+                skb->protocol = eth_type_trans (skb, dev);
+
+                dev->last_rx = jiffies;
+                tp->stats.rx_bytes += pkt_size;
+                tp->stats.rx_packets++;
+
+                netif_receive_skb (skb);
+            } else {
+                if (net_ratelimit())
+                    printk (KERN_WARNING
+                            "%s: Memory squeeze, dropping packet.\n",
+                            dev->name);
+                tp->stats.rx_dropped++;
+            }
+        } else {
+            ecdev_receive(rtl_ec_dev,
+                          &rx_ring[ring_offset + 4], pkt_size);
+            dev->last_rx = jiffies;
+            tp->stats.rx_bytes += pkt_size;
+            tp->stats.rx_packets++;
+        }
+
+        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 		received++;
 
@@ -2337,11 +2335,10 @@
 		 * Order is important since data can get interrupted
 		 * again when we think we are done.
 		 */
-
-                local_irq_disable();
-                RTL_W16_F(IntrMask, rtl8139_intr_mask);
-                __netif_rx_complete(dev);
-                local_irq_enable();
+        local_irq_disable();
+        RTL_W16_F(IntrMask, rtl8139_intr_mask);
+        __netif_rx_complete(dev);
+        local_irq_enable();
 	}
 	spin_unlock(&tp->rx_lock);
 
@@ -2360,21 +2357,20 @@
 	int link_changed = 0; /* avoid bogus "uninit" warning */
 	int handled = 0;
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-	if (dev == rtl_ec_net_dev) {
-            status = RTL_R16 (IntrStatus);
-	}
-	else {
-            spin_lock(&tp->lock);
-
-            status = RTL_R16 (IntrStatus);
-
-            if (unlikely((status & rtl8139_intr_mask) == 0))
-                goto out;
-        }
-
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+	if (dev != rtl_ec_net_dev) {
+        spin_lock (&tp->lock);
+        status = RTL_R16 (IntrStatus);
+
+	    /* shared irq? */
+        if (unlikely((status & rtl8139_intr_mask) == 0))
+            goto out;
+    } else {
+        status = RTL_R16 (IntrStatus);
+    }
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	handled = 1;
 
@@ -2382,17 +2378,17 @@
 	if (unlikely(status == 0xFFFF))
 		goto out;
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 	if (dev != rtl_ec_net_dev) {
-            /* close possible race's with dev_close */
-            if (unlikely(!netif_running(dev))) {
-                RTL_W16 (IntrMask, 0);
-                goto out;
-            }
-	}
-
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+        /* close possible race's with dev_close */
+        if (unlikely(!netif_running(dev))) {
+            RTL_W16 (IntrMask, 0);
+            goto out;
+        }
+	}
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	/* Acknowledge all of the current interrupt sources ASAP, but
 	   an first get an additional status bit from CSCR. */
@@ -2400,31 +2396,28 @@
 		link_changed = RTL_R16 (CSCR) & CSCR_LinkChangeBit;
 
 	ackstat = status & ~(RxAckBits | TxErr);
-	if (ackstat) {
+	if (ackstat)
 		RTL_W16 (IntrStatus, ackstat);
-	}
 
 	/* Receive packets are processed by poll routine.
 	   If not running start it now. */
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-	if (status & RxAckBits)
-        {
-            if (dev != rtl_ec_net_dev) {
-                /* Mark for polling */
-                if (netif_rx_schedule_prep(dev)) {
-                    RTL_W16_F (IntrMask, rtl8139_norx_intr_mask);
-                    __netif_rx_schedule (dev);
-                }
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+	if (status & RxAckBits){
+        if (dev != rtl_ec_net_dev) {
+            /* Mark for polling */
+            if (netif_rx_schedule_prep(dev)) {
+                RTL_W16_F (IntrMask, rtl8139_norx_intr_mask);
+                __netif_rx_schedule (dev);
             }
-            else {
-                /* EtherCAT device: Just receive all frames */
-                rtl8139_rx(dev, tp, 100); // FIXME
-            }
-	}
-
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+        } else {
+            /* EtherCAT device: Just receive all frames */
+            rtl8139_rx(dev, tp, 100); // FIXME
+        }
+	}
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	/* Check uncommon events with one test. */
 	if (unlikely(status & (PCIErr | PCSTimeout | RxUnderrun | RxErr)))
@@ -2437,13 +2430,14 @@
 			RTL_W16 (IntrStatus, TxErr);
 	}
  out:
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 	if (dev != rtl_ec_net_dev) {
-            spin_unlock (&tp->lock);
-        }
-
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+        spin_unlock (&tp->lock);
+    }
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	DPRINTK ("%s: exiting interrupt, intr_status=%#4.4x.\n",
 		 dev->name, RTL_R16 (IntrStatus));
@@ -2470,55 +2464,55 @@
 	int ret = 0;
 	unsigned long flags;
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-        if (dev != rtl_ec_net_dev) {
-            netif_stop_queue(dev);
-            if (tp->thr_pid >= 0) {
-                tp->time_to_die = 1;
-                wmb();
-                ret = kill_proc (tp->thr_pid, SIGTERM, 1);
-                if (ret) {
-                    printk (KERN_ERR "%s: unable to signal thread\n", dev->name);
-                    return ret;
-                }
-                wait_for_completion (&tp->thr_exited);
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+    if (dev != rtl_ec_net_dev) {
+        netif_stop_queue (dev);
+
+        if (tp->thr_pid >= 0) {
+            tp->time_to_die = 1;
+            wmb();
+            ret = kill_proc (tp->thr_pid, SIGTERM, 1);
+            if (ret) {
+                printk (KERN_ERR "%s: unable to signal thread\n", dev->name);
+                return ret;
             }
-
-            if (netif_msg_ifdown(tp))
-                printk(KERN_DEBUG "%s: Shutting down ethercard, status was 0x%4.4x.\n",
-                       dev->name, RTL_R16 (IntrStatus));
-
-            spin_lock_irqsave (&tp->lock, flags);
-
-            /* Stop the chip's Tx and Rx DMA processes. */
-            RTL_W8 (ChipCmd, 0);
-
-            /* Disable interrupts by clearing the interrupt mask. */
-            RTL_W16 (IntrMask, 0);
-
-            /* Update the error counts. */
-            tp->stats.rx_missed_errors += RTL_R32 (RxMissed);
-            RTL_W32 (RxMissed, 0);
-
-            spin_unlock_irqrestore (&tp->lock, flags);
-
-            synchronize_irq (dev->irq);	/* racy, but that's ok here */
-            free_irq (dev->irq, dev);
+            wait_for_completion (&tp->thr_exited);
         }
-        else {
-            /* Stop the chip's Tx and Rx DMA processes. */
-            RTL_W8 (ChipCmd, 0);
-
-            /* Disable interrupts by clearing the interrupt mask. */
-            RTL_W16 (IntrMask, 0);
-
-            /* Update the error counts. */
-            tp->stats.rx_missed_errors += RTL_R32 (RxMissed);
-            RTL_W32 (RxMissed, 0);
-        }
-
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+
+        if (netif_msg_ifdown(tp))
+            printk(KERN_DEBUG "%s: Shutting down ethercard, status was 0x%4.4x.\n",
+                   dev->name, RTL_R16 (IntrStatus));
+
+        spin_lock_irqsave (&tp->lock, flags);
+
+        /* Stop the chip's Tx and Rx DMA processes. */
+        RTL_W8 (ChipCmd, 0);
+
+        /* Disable interrupts by clearing the interrupt mask. */
+        RTL_W16 (IntrMask, 0);
+
+        /* Update the error counts. */
+        tp->stats.rx_missed_errors += RTL_R32 (RxMissed);
+        RTL_W32 (RxMissed, 0);
+
+        spin_unlock_irqrestore (&tp->lock, flags);
+
+        synchronize_irq (dev->irq);	/* racy, but that's ok here */
+        free_irq (dev->irq, dev);
+    } else {
+        /* Stop the chip's Tx and Rx DMA processes. */
+        RTL_W8 (ChipCmd, 0);
+
+        /* Disable interrupts by clearing the interrupt mask. */
+        RTL_W16 (IntrMask, 0);
+
+        /* Update the error counts. */
+        tp->stats.rx_missed_errors += RTL_R32 (RxMissed);
+        RTL_W32 (RxMissed, 0);
+    }
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	rtl8139_tx_clear (tp);
 
@@ -2733,12 +2727,12 @@
 	struct rtl8139_private *np = netdev_priv(dev);
 	int rc;
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
-
-	if (dev == rtl_ec_net_dev || !netif_running(dev))
-            return -EINVAL;
-
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+    if (dev == rtl_ec_net_dev || !netif_running(dev))
+        return -EINVAL;
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	spin_lock_irq(&np->lock);
 	rc = generic_mii_ioctl(&np->mii, if_mii(rq), cmd, NULL);
@@ -2754,16 +2748,16 @@
 	void __iomem *ioaddr = tp->mmio_addr;
 	unsigned long flags;
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 	if (dev == rtl_ec_net_dev || netif_running(dev)) {
-            spin_lock_irqsave (&tp->lock, flags);
-            tp->stats.rx_missed_errors += RTL_R32 (RxMissed);
-            RTL_W32 (RxMissed, 0);
-            spin_unlock_irqrestore (&tp->lock, flags);
-	}
-
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+        spin_lock_irqsave (&tp->lock, flags);
+        tp->stats.rx_missed_errors += RTL_R32 (RxMissed);
+        RTL_W32 (RxMissed, 0);
+        spin_unlock_irqrestore (&tp->lock, flags);
+	}
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	return &tp->stats;
 }
@@ -2840,12 +2834,12 @@
 
 	pci_save_state (pdev);
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 	if (dev == rtl_ec_net_dev || !netif_running (dev))
-            return 0;
-
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+        return 0;
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	netif_device_detach (dev);
 
@@ -2873,12 +2867,12 @@
 
 	pci_restore_state (pdev);
 
-        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+    /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 	if (dev == rtl_ec_net_dev || !netif_running (dev))
-            return 0;
-
-        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+        return 0;
+
+    /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	pci_set_power_state (pdev, PCI_D0);
 	rtl8139_init_ring (dev);
@@ -2928,9 +2922,8 @@
             printk(KERN_ERR "Failed to start EtherCAT device!\n");
             goto out_unregister;
         }
-    }
-    else {
-        printk(KERN_WARNING "NO EtherCAT device registered!\n");
+    } else {
+        printk(KERN_WARNING "No EtherCAT device registered!\n");
     }
 
     return 0;