Hi, This patch correctly puts the enabling of the transmit/receive function AFTER putting the board into C+ mode. It also converts the Early Tx Threshold magic number to a #define. Consider pulling it from: http://cscience.org/~coqueiro/linux/patches-fwd/2.5/8139cp-Cmd-ETTh.patch Please apply. Felipe --- ./drivers/net/8139cp.c.orig Fri Aug 2 09:34:42 2002 +++ ./drivers/net/8139cp.c Fri Aug 2 10:43:08 2002 @@ -137,6 +137,9 @@ #define CP_MIN_MTU 60 /* TODO: allow lower, but pad */ #define CP_MAX_MTU 4096 +/* Specifies the threshold level in the Tx FIFO to begin the transmission. */ +#define ETTh 0x06 + enum { /* NIC register offsets */ MAC0 = 0x00, /* Ethernet hardware address. */ @@ -976,11 +979,11 @@ static inline void cp_start_hw (struct cp_private *cp) { - cpw8(Cmd, RxOn | TxOn); if (cp->board_type == RTL8169) cpw16(CpCmd, PCIMulRW | RxChkSum); else cpw16(CpCmd, PCIMulRW | RxChkSum | CpRxOn | CpTxOn); + cpw8(Cmd, RxOn | TxOn); } static void cp_init_hw (struct cp_private *cp) @@ -996,7 +999,7 @@ cpw32_f (MAC0 + 4, cpu_to_le32 (*(u32 *) (dev->dev_addr + 4))); cp_start_hw(cp); - cpw8(TxThresh, 0x06); /* XXX convert magic num to a constant */ + cpw8(TxThresh, ETTh); __cp_set_rx_mode(dev); cpw32_f (TxConfig, IFG | (TX_DMA_BURST << TxDMAShift)); - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html