|
|
|
@ -320,8 +320,6 @@ struct mv643xx_eth_private { |
|
|
|
|
u32 tx_sram_addr; /* Base address of tx sram area */ |
|
|
|
|
u32 tx_sram_size; /* Size of tx sram area */ |
|
|
|
|
|
|
|
|
|
int rx_resource_err; /* Rx ring resource error flag */ |
|
|
|
|
|
|
|
|
|
/* Tx/Rx rings managment indexes fields. For driver use */ |
|
|
|
|
|
|
|
|
|
/* Next available and first returning Rx resource */ |
|
|
|
@ -472,9 +470,6 @@ static FUNC_RET_STATUS rx_return_buff(struct mv643xx_eth_private *mp, |
|
|
|
|
/* Move the used descriptor pointer to the next descriptor */ |
|
|
|
|
mp->rx_used_desc_q = (used_rx_desc + 1) % mp->rx_ring_size; |
|
|
|
|
|
|
|
|
|
/* Any Rx return cancels the Rx resource error status */ |
|
|
|
|
mp->rx_resource_err = 0; |
|
|
|
|
|
|
|
|
|
spin_unlock_irqrestore(&mp->lock, flags); |
|
|
|
|
|
|
|
|
|
return ETH_OK; |
|
|
|
@ -531,10 +526,6 @@ static FUNC_RET_STATUS port_receive(struct mv643xx_eth_private *mp, |
|
|
|
|
unsigned int command_status; |
|
|
|
|
unsigned long flags; |
|
|
|
|
|
|
|
|
|
/* Do not process Rx ring in case of Rx ring resource error */ |
|
|
|
|
if (mp->rx_resource_err) |
|
|
|
|
return ETH_QUEUE_FULL; |
|
|
|
|
|
|
|
|
|
spin_lock_irqsave(&mp->lock, flags); |
|
|
|
|
|
|
|
|
|
/* Get the Rx Desc ring 'curr and 'used' indexes */ |
|
|
|
@ -569,10 +560,6 @@ static FUNC_RET_STATUS port_receive(struct mv643xx_eth_private *mp, |
|
|
|
|
rx_next_curr_desc = (rx_curr_desc + 1) % mp->rx_ring_size; |
|
|
|
|
mp->rx_curr_desc_q = rx_next_curr_desc; |
|
|
|
|
|
|
|
|
|
/* Rx descriptors exhausted. Set the Rx ring resource error flag */ |
|
|
|
|
if (rx_next_curr_desc == rx_used_desc) |
|
|
|
|
mp->rx_resource_err = 1; |
|
|
|
|
|
|
|
|
|
spin_unlock_irqrestore(&mp->lock, flags); |
|
|
|
|
|
|
|
|
|
return ETH_OK; |
|
|
|
@ -1760,8 +1747,6 @@ static unsigned int set_tx_coal(struct mv643xx_eth_private *mp, |
|
|
|
|
|
|
|
|
|
static void port_init(struct mv643xx_eth_private *mp) |
|
|
|
|
{ |
|
|
|
|
mp->rx_resource_err = 0; |
|
|
|
|
|
|
|
|
|
port_reset(mp); |
|
|
|
|
|
|
|
|
|
init_mac_tables(mp); |
|
|
|
|