ramips: change ethernet napi interrupt sequence
when open device. first ready napi software rx. then enable hardware interrupt. final start software tx queue to send data. Signed-off-by: michael lee <igvtee@gmail.com> SVN-Revision: 45894
This commit is contained in:
parent
0d043d3ac0
commit
2a66c9886f
1 changed files with 4 additions and 5 deletions
|
@ -1153,7 +1153,6 @@ static int fe_open(struct net_device *dev)
|
||||||
goto err_out;
|
goto err_out;
|
||||||
|
|
||||||
spin_lock_irqsave(&priv->page_lock, flags);
|
spin_lock_irqsave(&priv->page_lock, flags);
|
||||||
napi_enable(&priv->rx_napi);
|
|
||||||
|
|
||||||
val = FE_TX_WB_DDONE | FE_RX_DMA_EN | FE_TX_DMA_EN;
|
val = FE_TX_WB_DDONE | FE_RX_DMA_EN | FE_TX_DMA_EN;
|
||||||
if (priv->flags & FE_FLAG_RX_2B_OFFSET)
|
if (priv->flags & FE_FLAG_RX_2B_OFFSET)
|
||||||
|
@ -1169,8 +1168,9 @@ static int fe_open(struct net_device *dev)
|
||||||
if (priv->soc->has_carrier && priv->soc->has_carrier(priv))
|
if (priv->soc->has_carrier && priv->soc->has_carrier(priv))
|
||||||
netif_carrier_on(dev);
|
netif_carrier_on(dev);
|
||||||
|
|
||||||
netif_start_queue(dev);
|
napi_enable(&priv->rx_napi);
|
||||||
fe_int_enable(priv->soc->tx_int | priv->soc->rx_int);
|
fe_int_enable(priv->soc->tx_int | priv->soc->rx_int);
|
||||||
|
netif_start_queue(dev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -1185,15 +1185,14 @@ static int fe_stop(struct net_device *dev)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
fe_int_disable(priv->soc->tx_int | priv->soc->rx_int);
|
|
||||||
|
|
||||||
netif_tx_disable(dev);
|
netif_tx_disable(dev);
|
||||||
|
fe_int_disable(priv->soc->tx_int | priv->soc->rx_int);
|
||||||
|
napi_disable(&priv->rx_napi);
|
||||||
|
|
||||||
if (priv->phy)
|
if (priv->phy)
|
||||||
priv->phy->stop(priv);
|
priv->phy->stop(priv);
|
||||||
|
|
||||||
spin_lock_irqsave(&priv->page_lock, flags);
|
spin_lock_irqsave(&priv->page_lock, flags);
|
||||||
napi_disable(&priv->rx_napi);
|
|
||||||
|
|
||||||
fe_reg_w32(fe_reg_r32(FE_REG_PDMA_GLO_CFG) &
|
fe_reg_w32(fe_reg_r32(FE_REG_PDMA_GLO_CFG) &
|
||||||
~(FE_TX_WB_DDONE | FE_RX_DMA_EN | FE_TX_DMA_EN),
|
~(FE_TX_WB_DDONE | FE_RX_DMA_EN | FE_TX_DMA_EN),
|
||||||
|
|
Loading…
Reference in a new issue