Commit dc3f7891 authored by Jeff Garzik's avatar Jeff Garzik

Proper support for RTL8139 rev K in 8139too net driver

parent 79fe7105
......@@ -462,7 +462,7 @@ enum RxConfigBits {
/* Twister tuning parameters from RealTek.
Completely undocumented, but required to tune bad links. */
Completely undocumented, but required to tune bad links on some boards. */
enum CSCRBits {
CSCR_LinkOKBit = 0x0400,
CSCR_LinkChangeBit = 0x0800,
......@@ -477,10 +477,14 @@ enum Cfg9346Bits {
Cfg9346_Unlock = 0xC0,
};
#ifdef CONFIG_8139TOO_TUNE_TWISTER
enum TwisterParamVals {
PARA78_default = 0x78fa8388,
PARA7c_default = 0xcb38de43, /* param[0][3] */
PARA7c_xxx = 0xcb38de43,
};
#define PARA78_default 0x78fa8388
#define PARA7c_default 0xcb38de43 /* param[0][3] */
#define PARA7c_xxx 0xcb38de43
static const unsigned long param[4][4] = {
{0xcb39de43, 0xcb39ce43, 0xfb38de03, 0xcb38de43},
{0xcb39de43, 0xcb39ce43, 0xcb39ce83, 0xcb39ce83},
......@@ -488,6 +492,8 @@ static const unsigned long param[4][4] = {
{0xbb39de43, 0xbb39ce43, 0xbb39ce83, 0xbb39ce83}
};
#endif /* CONFIG_8139TOO_TUNE_TWISTER */
typedef enum {
CH_8139 = 0,
CH_8139_K,
......@@ -1302,7 +1308,7 @@ static int rtl8139_open (struct net_device *dev)
tp->mii.full_duplex = tp->mii.duplex_lock;
tp->tx_flag = (TX_FIFO_THRESH << 11) & 0x003f0000;
tp->twistie = 1;
tp->twistie = (tp->chipset == CH_8139_K) ? 1 : 0;
tp->time_to_die = 0;
rtl8139_init_ring (dev);
......
......@@ -673,10 +673,12 @@ CONFIG_8139TOO_PIO
say N.
CONFIG_8139TOO_TUNE_TWISTER
This implements a function which might come in handy in case you are
using low quality on long cabling. It tries to match the transceiver
to the cable characteristics. This is experimental since hardly
documented by the manufacturer. If unsure, say N.
This implements a function which might come in handy in case you
are using low quality on long cabling. It is required for RealTek
RTL-8139 revision K boards, and totally unused otherwise. It tries
to match the transceiver to the cable characteristics. This is
experimental since hardly documented by the manufacturer.
If unsure, say Y.
CONFIG_8139TOO_8129
This enables support for the older and uncommon RTL-8129 and
......@@ -684,6 +686,13 @@ CONFIG_8139TOO_8129
instead of an internal one. Disabling this option will save some
memory by making the code size smaller. If unsure, say Y.
CONFIG_8139_OLD_RX_RESET
The 8139too driver was recently updated to contain a more rapid
reset sequence, in the face of severe receive errors. This "new"
RX-reset method should be adequate for all boards. But if you
experience problems, you can enable this option to restore the
old RX-reset behavior. If unsure, say N.
CONFIG_SIS900
This is a driver for the Fast Ethernet PCI network cards based on
the SiS 900 and SiS 7016 chips. The SiS 900 core is also embedded in
......
......@@ -174,7 +174,7 @@ if [ "$CONFIG_NET_ETHERNET" = "y" ]; then
dep_tristate ' RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)' CONFIG_8139CP $CONFIG_PCI $CONFIG_EXPERIMENTAL
dep_tristate ' RealTek RTL-8139 PCI Fast Ethernet Adapter support' CONFIG_8139TOO $CONFIG_PCI
dep_mbool ' Use PIO instead of MMIO' CONFIG_8139TOO_PIO $CONFIG_8139TOO
dep_mbool ' Support for automatic channel equalization (EXPERIMENTAL)' CONFIG_8139TOO_TUNE_TWISTER $CONFIG_8139TOO $CONFIG_EXPERIMENTAL
dep_mbool ' Support for uncommon RTL-8139 rev. K (automatic channel equalization)' CONFIG_8139TOO_TUNE_TWISTER $CONFIG_8139TOO
dep_mbool ' Support for older RTL-8129/8130 boards' CONFIG_8139TOO_8129 $CONFIG_8139TOO
dep_mbool ' Use older RX-reset method' CONFIG_8139_OLD_RX_RESET $CONFIG_8139TOO
dep_tristate ' SiS 900/7016 PCI Fast Ethernet Adapter support' CONFIG_SIS900 $CONFIG_PCI
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment