Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 268539
b: refs/heads/master
c: 7fabca4
h: refs/heads/master
i:
  268537: b32540c
  268535: 72d3432
v: v3
  • Loading branch information
Mark Einon authored and Greg Kroah-Hartman committed Sep 27, 2011
1 parent 9aa25e7 commit 6108942
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 79 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 268420aa840ce6d5c18035ce6d7ebc4244b2cb1f
refs/heads/master: 7fabca4d9183a449676648b93307e29299595866
2 changes: 2 additions & 0 deletions trunk/drivers/staging/et131x/et131x.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ void et1310_setup_device_for_unicast(struct et131x_adapter *adapter);

/* et131x_netdev.c */
struct net_device *et131x_device_alloc(void);
void et131x_enable_txrx(struct net_device *netdev);
void et131x_disable_txrx(struct net_device *netdev);

/* et1310_pm.c */
void et1310_enable_phy_coma(struct et131x_adapter *adapter);
Expand Down
126 changes: 48 additions & 78 deletions trunk/drivers/staging/et131x/et131x_netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,45 @@ static struct net_device_stats *et131x_stats(struct net_device *netdev)
return stats;
}

/**
* et131x_enable_txrx - Enable tx/rx queues
* @netdev: device to be enabled
*/
void et131x_enable_txrx(struct net_device *netdev)
{
struct et131x_adapter *adapter = netdev_priv(netdev);

/* Enable the Tx and Rx DMA engines (if not already enabled) */
et131x_rx_dma_enable(adapter);
et131x_tx_dma_enable(adapter);

/* Enable device interrupts */
if (adapter->flags & fMP_ADAPTER_INTERRUPT_IN_USE)
et131x_enable_interrupts(adapter);

/* We're ready to move some data, so start the queue */
netif_start_queue(netdev);
}

/**
* et131x_disable_txrx - Disable tx/rx queues
* @netdev: device to be disabled
*/
void et131x_disable_txrx(struct net_device *netdev)
{
struct et131x_adapter *adapter = netdev_priv(netdev);

/* First thing is to stop the queue */
netif_stop_queue(netdev);

/* Stop the Tx and Rx DMA engines */
et131x_rx_dma_disable(adapter);
et131x_tx_dma_disable(adapter);

/* Disable device interrupts */
et131x_disable_interrupts(adapter);
}

/**
* et131x_open - Open the device for use.
* @netdev: device to be opened
Expand All @@ -159,19 +198,10 @@ int et131x_open(struct net_device *netdev)
return result;
}

/* Enable the Tx and Rx DMA engines (if not already enabled) */
et131x_rx_dma_enable(adapter);
et131x_tx_dma_enable(adapter);

/* Enable device interrupts */
et131x_enable_interrupts(adapter);

adapter->flags |= fMP_ADAPTER_INTERRUPT_IN_USE;

et131x_enable_txrx(netdev);
phy_start(adapter->phydev);

/* We're ready to move some data, so start the queue */
netif_start_queue(netdev);
return result;
}

Expand All @@ -188,15 +218,7 @@ int et131x_close(struct net_device *netdev)
/* Save the timestamp for the TX watchdog, prevent a timeout */
netdev->trans_start = jiffies;

/* First thing is to stop the queue */
netif_stop_queue(netdev);

/* Stop the Tx and Rx DMA engines */
et131x_rx_dma_disable(adapter);
et131x_tx_dma_disable(adapter);

/* Disable device interrupts */
et131x_disable_interrupts(adapter);
et131x_disable_txrx(netdev);

/* Deregistering ISR */
adapter->flags &= ~fMP_ADAPTER_INTERRUPT_IN_USE;
Expand Down Expand Up @@ -442,29 +464,9 @@ void et131x_tx_timeout(struct net_device *netdev)

adapter->net_stats.tx_errors++;

/* perform reset */
/* First thing is to stop the queue */
netif_stop_queue(netdev);

/* Stop the Tx and Rx DMA engines */
et131x_rx_dma_disable(adapter);
et131x_tx_dma_disable(adapter);

/* Disable device interrupts */
et131x_disable_interrupts(adapter);

/*
* Enable the Tx and Rx DMA engines
* (if not already enabled)
*/
et131x_rx_dma_enable(adapter);
et131x_tx_dma_enable(adapter);

/* Enable device interrupts */
et131x_enable_interrupts(adapter);

/* We're ready to move some data, so start the queue */
netif_start_queue(netdev);
/* perform reset of tx/rx */
et131x_disable_txrx(netdev);
et131x_enable_txrx(netdev);
return;
}
}
Expand All @@ -488,15 +490,7 @@ int et131x_change_mtu(struct net_device *netdev, int new_mtu)
if (new_mtu < 64 || new_mtu > 9216)
return -EINVAL;

/* Stop the netif queue */
netif_stop_queue(netdev);

/* Stop the Tx and Rx DMA engines */
et131x_rx_dma_disable(adapter);
et131x_tx_dma_disable(adapter);

/* Disable device interrupts */
et131x_disable_interrupts(adapter);
et131x_disable_txrx(netdev);
et131x_handle_send_interrupt(adapter);
et131x_handle_recv_interrupt(adapter);

Expand Down Expand Up @@ -526,16 +520,8 @@ int et131x_change_mtu(struct net_device *netdev, int new_mtu)
/* Init the device with the new settings */
et131x_adapter_setup(adapter);

/* Enable interrupts */
if (adapter->flags & fMP_ADAPTER_INTERRUPT_IN_USE)
et131x_enable_interrupts(adapter);
et131x_enable_txrx(netdev);

/* Restart the Tx and Rx DMA engines */
et131x_rx_dma_enable(adapter);
et131x_tx_dma_enable(adapter);

/* Restart the netif queue */
netif_wake_queue(netdev);
return result;
}

Expand Down Expand Up @@ -563,15 +549,7 @@ int et131x_set_mac_addr(struct net_device *netdev, void *new_mac)
if (!is_valid_ether_addr(address->sa_data))
return -EINVAL;

/* Stop the netif queue */
netif_stop_queue(netdev);

/* Stop the Tx and Rx DMA engines */
et131x_rx_dma_disable(adapter);
et131x_tx_dma_disable(adapter);

/* Disable device interrupts */
et131x_disable_interrupts(adapter);
et131x_disable_txrx(netdev);
et131x_handle_send_interrupt(adapter);
et131x_handle_recv_interrupt(adapter);

Expand Down Expand Up @@ -603,16 +581,8 @@ int et131x_set_mac_addr(struct net_device *netdev, void *new_mac)
/* Init the device with the new settings */
et131x_adapter_setup(adapter);

/* Enable interrupts */
if (adapter->flags & fMP_ADAPTER_INTERRUPT_IN_USE)
et131x_enable_interrupts(adapter);

/* Restart the Tx and Rx DMA engines */
et131x_rx_dma_enable(adapter);
et131x_tx_dma_enable(adapter);
et131x_enable_txrx(netdev);

/* Restart the netif queue */
netif_wake_queue(netdev);
return result;
}

Expand Down

0 comments on commit 6108942

Please sign in to comment.