devices/e1000/e1000_main-2.6.35-ethercat.c
branchstable-1.5
changeset 2421 bc2d4bf9cbe5
parent 2288 af008c10823b
child 2469 634ba3b1eb95
equal deleted inserted replaced
2420:69056c46aa4d 2421:bc2d4bf9cbe5
    21 
    21 
    22   Contact Information:
    22   Contact Information:
    23   Linux NICS <linux.nics@intel.com>
    23   Linux NICS <linux.nics@intel.com>
    24   e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
    24   e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
    25   Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
    25   Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
    26  
    26 
    27   vim: noexpandtab
    27   vim: noexpandtab
    28 
    28 
    29 *******************************************************************************/
    29 *******************************************************************************/
    30 
    30 
    31 #include "e1000-2.6.35-ethercat.h"
    31 #include "e1000-2.6.35-ethercat.h"
   324 {
   324 {
   325 	struct e1000_hw *hw = &adapter->hw;
   325 	struct e1000_hw *hw = &adapter->hw;
   326 
   326 
   327 	if (adapter->ecdev)
   327 	if (adapter->ecdev)
   328 		return;
   328 		return;
   329  
   329 
   330 	ew32(IMS, IMS_ENABLE_MASK);
   330 	ew32(IMS, IMS_ENABLE_MASK);
   331 	E1000_WRITE_FLUSH();
   331 	E1000_WRITE_FLUSH();
   332 }
   332 }
   333 
   333 
   334 static void e1000_update_mng_vlan(struct e1000_adapter *adapter)
   334 static void e1000_update_mng_vlan(struct e1000_adapter *adapter)
  2102 
  2102 
  2103 	if (!adapter->netdev && netif_running(netdev)) {
  2103 	if (!adapter->netdev && netif_running(netdev)) {
  2104 		/* No need to loop, because 82542 supports only 1 queue */
  2104 		/* No need to loop, because 82542 supports only 1 queue */
  2105 		struct e1000_rx_ring *ring = &adapter->rx_ring[0];
  2105 		struct e1000_rx_ring *ring = &adapter->rx_ring[0];
  2106 		e1000_configure_rx(adapter);
  2106 		e1000_configure_rx(adapter);
  2107 		if (adapter->ecdev) { 
  2107 		if (adapter->ecdev) {
  2108 			/* fill rx ring completely! */
  2108 			/* fill rx ring completely! */
  2109 			adapter->alloc_rx_buf(adapter, ring, ring->count);
  2109 			adapter->alloc_rx_buf(adapter, ring, ring->count);
  2110 		} else {
  2110 		} else {
  2111 			/* this one leaves the last ring element unallocated! */
  2111 			/* this one leaves the last ring element unallocated! */
  2112 			adapter->alloc_rx_buf(adapter, ring, E1000_DESC_UNUSED(ring));
  2112 			adapter->alloc_rx_buf(adapter, ring, E1000_DESC_UNUSED(ring));
  2299 			adapter->tx_fifo_head = 0;
  2299 			adapter->tx_fifo_head = 0;
  2300 			atomic_set(&adapter->tx_fifo_stall, 0);
  2300 			atomic_set(&adapter->tx_fifo_stall, 0);
  2301 			if (!adapter->ecdev)
  2301 			if (!adapter->ecdev)
  2302 				netif_wake_queue(netdev);
  2302 				netif_wake_queue(netdev);
  2303 		} else if (!test_bit(__E1000_DOWN, &adapter->flags)) {
  2303 		} else if (!test_bit(__E1000_DOWN, &adapter->flags)) {
  2304 			if (!adapter->ecdev) 
  2304 			if (!adapter->ecdev)
  2305 				mod_timer(&adapter->tx_fifo_stall_timer, jiffies + 1);
  2305 				mod_timer(&adapter->tx_fifo_stall_timer, jiffies + 1);
  2306 		}
  2306 		}
  2307 	}
  2307 	}
  2308 }
  2308 }
  2309 
  2309