|
@@ -1383,6 +1383,11 @@ static void rtl8139_hw_start (struct net_device *dev)
|
|
|
RTL_W32_F (MAC0 + 0, le32_to_cpu (*(__le32 *) (dev->dev_addr + 0)));
|
|
|
RTL_W32_F (MAC0 + 4, le16_to_cpu (*(__le16 *) (dev->dev_addr + 4)));
|
|
|
|
|
|
+ tp->cur_rx = 0;
|
|
|
+
|
|
|
+ /* init Rx ring buffer DMA address */
|
|
|
+ RTL_W32_F (RxBuf, tp->rx_ring_dma);
|
|
|
+
|
|
|
/* Must enable Tx/Rx before setting transfer thresholds! */
|
|
|
RTL_W8 (ChipCmd, CmdRxEnb | CmdTxEnb);
|
|
|
|
|
@@ -1390,8 +1395,6 @@ static void rtl8139_hw_start (struct net_device *dev)
|
|
|
RTL_W32 (RxConfig, tp->rx_config);
|
|
|
RTL_W32 (TxConfig, rtl8139_tx_config);
|
|
|
|
|
|
- tp->cur_rx = 0;
|
|
|
-
|
|
|
rtl_check_media (dev, 1);
|
|
|
|
|
|
if (tp->chipset >= CH_8139B) {
|
|
@@ -1406,9 +1409,6 @@ static void rtl8139_hw_start (struct net_device *dev)
|
|
|
/* Lock Config[01234] and BMCR register writes */
|
|
|
RTL_W8 (Cfg9346, Cfg9346_Lock);
|
|
|
|
|
|
- /* init Rx ring buffer DMA address */
|
|
|
- RTL_W32_F (RxBuf, tp->rx_ring_dma);
|
|
|
-
|
|
|
/* init Tx buffer DMA addresses */
|
|
|
for (i = 0; i < NUM_TX_DESC; i++)
|
|
|
RTL_W32_F (TxAddr0 + (i * 4), tp->tx_bufs_dma + (tp->tx_buf[i] - tp->tx_bufs));
|