rtl_set_rx_max_size(ioaddr);
 
-       rtl_set_rx_tx_config_registers(tp);
-
        tp->cp_cmd |= RTL_R16(CPlusCmd) | PktCntrDisable | INTT_1;
 
        RTL_W16(CPlusCmd, tp->cp_cmd);
 
-       rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT);
-
        RTL_W16(IntrMitigate, 0x5151);
 
        /* Work around for RxFIFO overflow. */
 
        rtl_set_rx_tx_desc_registers(tp, ioaddr);
 
-       RTL_W8(Cfg9346, Cfg9346_Lock);
+       rtl_set_rx_mode(dev);
+
+       RTL_W32(TxConfig, (TX_DMA_BURST << TxDMAShift) |
+               (InterFrameGap << TxInterFrameGapShift));
 
        RTL_R8(IntrMask);
 
-       rtl_set_rx_mode(dev);
+       rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT);
 
        RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb);
 
+       RTL_W8(Cfg9346, Cfg9346_Lock);
+
        RTL_W16(MultiIntr, RTL_R16(MultiIntr) & 0xF000);
 
        RTL_W16(IntrMask, tp->intr_event);