diff options
Diffstat (limited to 'drivers/net/r8169.c')
-rw-r--r-- | drivers/net/r8169.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index c921ec32c232..c76dd29c8e9a 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c | |||
@@ -1918,7 +1918,11 @@ static void rtl_hw_start_8169(struct net_device *dev) | |||
1918 | 1918 | ||
1919 | rtl_set_rx_max_size(ioaddr); | 1919 | rtl_set_rx_max_size(ioaddr); |
1920 | 1920 | ||
1921 | rtl_set_rx_tx_config_registers(tp); | 1921 | if ((tp->mac_version == RTL_GIGA_MAC_VER_01) || |
1922 | (tp->mac_version == RTL_GIGA_MAC_VER_02) || | ||
1923 | (tp->mac_version == RTL_GIGA_MAC_VER_03) || | ||
1924 | (tp->mac_version == RTL_GIGA_MAC_VER_04)) | ||
1925 | rtl_set_rx_tx_config_registers(tp); | ||
1922 | 1926 | ||
1923 | tp->cp_cmd |= rtl_rw_cpluscmd(ioaddr) | PCIMulRW; | 1927 | tp->cp_cmd |= rtl_rw_cpluscmd(ioaddr) | PCIMulRW; |
1924 | 1928 | ||
@@ -1941,6 +1945,14 @@ static void rtl_hw_start_8169(struct net_device *dev) | |||
1941 | 1945 | ||
1942 | rtl_set_rx_tx_desc_registers(tp, ioaddr); | 1946 | rtl_set_rx_tx_desc_registers(tp, ioaddr); |
1943 | 1947 | ||
1948 | if ((tp->mac_version != RTL_GIGA_MAC_VER_01) && | ||
1949 | (tp->mac_version != RTL_GIGA_MAC_VER_02) && | ||
1950 | (tp->mac_version != RTL_GIGA_MAC_VER_03) && | ||
1951 | (tp->mac_version != RTL_GIGA_MAC_VER_04)) { | ||
1952 | RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); | ||
1953 | rtl_set_rx_tx_config_registers(tp); | ||
1954 | } | ||
1955 | |||
1944 | RTL_W8(Cfg9346, Cfg9346_Lock); | 1956 | RTL_W8(Cfg9346, Cfg9346_Lock); |
1945 | 1957 | ||
1946 | /* Initially a 10 us delay. Turned it into a PCI commit. - FR */ | 1958 | /* Initially a 10 us delay. Turned it into a PCI commit. - FR */ |
@@ -1955,8 +1967,6 @@ static void rtl_hw_start_8169(struct net_device *dev) | |||
1955 | 1967 | ||
1956 | /* Enable all known interrupts by setting the interrupt mask. */ | 1968 | /* Enable all known interrupts by setting the interrupt mask. */ |
1957 | RTL_W16(IntrMask, tp->intr_event); | 1969 | RTL_W16(IntrMask, tp->intr_event); |
1958 | |||
1959 | RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); | ||
1960 | } | 1970 | } |
1961 | 1971 | ||
1962 | static void rtl_hw_start_8168(struct net_device *dev) | 1972 | static void rtl_hw_start_8168(struct net_device *dev) |