?nderungen der Kommentare und Einr?ckungen von drv_8139.c aus no_rtai 108:110 portiert.
authorFlorian Pose <fp@igh-essen.com>
Fri, 04 Nov 2005 09:10:45 +0000
changeset 3 3ea74844c2df
parent 2 b0a7a4745bf9
child 4 394c89f02e48
?nderungen der Kommentare und Einr?ckungen von drv_8139.c aus no_rtai 108:110 portiert.
drivers/drv_8139too.c
--- a/drivers/drv_8139too.c	Fri Oct 28 15:12:27 2005 +0000
+++ b/drivers/drv_8139too.c	Fri Nov 04 09:10:45 2005 +0000
@@ -1803,12 +1803,11 @@
         {
           if (rtl_ecat_dev.state != ECAT_DS_SENT)
           {
-            EC_DBG(KERN_WARNING "EtherCAT: Wrong status at timeout!\n");
+            EC_DBG(KERN_WARNING "EtherCAT: Wrong status at timeout: %i\n",
+                   rtl_ecat_dev.state);
           }
-          else
-          {
-            rtl_ecat_dev.state = ECAT_DS_TIMEOUT;
-          }
+
+          rtl_ecat_dev.state = ECAT_DS_TIMEOUT;
         }
 
         /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
@@ -1879,14 +1878,18 @@
           return 0;
 	}
 
+	/* Note: the chip doesn't have auto-pad! */
+	if (dev == rtl_ecat_dev.dev)
+        {
+          rt_spin_lock_irq(&tp->lock);
+        }
+	else
+        {
+          spin_lock_irq(&tp->lock);
+        }
+
         /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
-	/* Note: the chip doesn't have auto-pad! */
-	if(dev == rtl_ecat_dev.dev)
-	    rt_spin_lock_irq(&tp->lock);
-	else
-	    spin_lock_irq(&tp->lock);
-
 	RTL_W32_F (TxStatus0 + (entry * sizeof (u32)),
 		   tp->tx_flag | max(len, (unsigned int)ETH_ZLEN));
 
@@ -1897,8 +1900,11 @@
 
 	/* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
-	if (dev != rtl_ecat_dev.dev && ((tp->cur_tx - NUM_TX_DESC) == tp->dirty_tx))
+	if (dev != rtl_ecat_dev.dev
+            && ((tp->cur_tx - NUM_TX_DESC) == tp->dirty_tx))
+        {
           netif_stop_queue (dev);
+        }
 
 	/* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
@@ -1930,11 +1936,11 @@
 
 	if (dev == rtl_ecat_dev.dev)
         {
-	    (rtl_ecat_dev.tx_intr_cnt)++;
-	    rdtscl(rtl_ecat_dev.tx_time); // Get CPU cycles
-	}
-
-	/* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+          rtl_ecat_dev.tx_intr_cnt++;
+          rdtscl(rtl_ecat_dev.tx_time); // Get CPU cycles
+	}
+
+        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 	while (tx_left > 0) {
 		int entry = dirty_tx % NUM_TX_DESC;
@@ -2003,7 +2009,9 @@
                 /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 
 		if (dev != rtl_ecat_dev.dev && netif_queue_stopped (dev))
+                {
                   netif_wake_queue (dev);
+                }
 
                 /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 	}
@@ -2123,7 +2131,7 @@
 
 	if (dev == rtl_ecat_dev.dev)
         {
-          (rtl_ecat_dev.rx_intr_cnt)++;
+          rtl_ecat_dev.rx_intr_cnt++;
           rdtscl(rtl_ecat_dev.rx_time); // Get CPU cycles
 	}
 
@@ -2153,12 +2161,10 @@
 #if RTL8139_DEBUG > 2                        
                 if (dev == rtl_ecat_dev.dev)
 		{
-			int i;
-			DPRINTK ("%s: Frame contents ", dev->name);
-			for (i = 0; i < 70; i++)
-				EC_DBG (" %2.2x",
-					rx_ring[ring_offset + i]);
-			EC_DBG (".\n");
+                  int i;
+                  DPRINTK("%s: Frame contents ", dev->name);
+                  for (i = 0; i < 70; i++) EC_DBG(" %2.2x", rx_ring[ring_offset + i]);
+                  EC_DBG(".\n");
 		}
 #endif
 
@@ -2203,13 +2209,12 @@
                   if (skb)
                   {
                     skb->dev = dev;
-                    skb_reserve (skb, 2);	/* 16 byte align the IP fields. */
-                    eth_copy_and_sum (skb, &rx_ring[ring_offset + 4], pkt_size, 0);
+                    skb_reserve(skb, 2);	/* 16 byte align the IP fields. */
+                    eth_copy_and_sum(skb, &rx_ring[ring_offset + 4], pkt_size, 0);
                     skb_put (skb, pkt_size);
-                    skb->protocol = eth_type_trans (skb, dev); // Entfernt auch den Ethernet Header!
+                    skb->protocol = eth_type_trans(skb, dev); // Entfernt auch den Ethernet Header!
                     netif_rx(skb);
-                 
-                    
+
                     dev->last_rx = jiffies;
                     tp->stats.rx_bytes += pkt_size;
                     tp->stats.rx_packets++;
@@ -2360,8 +2365,14 @@
 		DPRINTK ("%s: interrupt  status=%#4.4x ackstat=%#4.4x new intstat=%#4.4x.\n",
 			 dev->name, ackstat, status, RTL_R16 (IntrStatus));
 
+                /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
 		if ((dev == rtl_ecat_dev.dev || netif_running (dev)) && (status & RxAckBits))
-			rtl8139_rx_interrupt (dev, tp, ioaddr);
+                {
+                  rtl8139_rx_interrupt (dev, tp, ioaddr);
+                }
+
+                /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
 		/* Check uncommon events with one test. */
 		if (status & (PCIErr | PCSTimeout | RxUnderrun | RxOverflow |
@@ -2369,12 +2380,18 @@
 			rtl8139_weird_interrupt (dev, tp, ioaddr,
 						 status, link_changed);
 
-		if ((dev == rtl_ecat_dev.dev || netif_running (dev)) && (status & (TxOK | TxErr))) {
+                /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
+		if ((dev == rtl_ecat_dev.dev || netif_running (dev))
+                    && (status & (TxOK | TxErr)))
+                {
 			rtl8139_tx_interrupt (dev, tp, ioaddr);
 			if (status & TxErr)
 				RTL_W16 (IntrStatus, TxErr);
 		}
 
+                /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+
 		boguscnt--;
 	} while (boguscnt > 0);
 
@@ -2791,9 +2808,13 @@
 	struct mii_ioctl_data *data = (struct mii_ioctl_data *) & rq->ifr_data;
 	int rc;
 
+        /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
+
 	if (dev == rtl_ecat_dev.dev || !netif_running(dev))
 		return -EINVAL;
 
+        /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
+
 	if (cmd == SIOCETHTOOL)
 		rc = netdev_ethtool_ioctl(dev, (void *) rq->ifr_data);