Simply this commnads not fit in chip 8101/8102 and was ignored by code.
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index bc2e5ce..410c1ee 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -6529,7 +6529,7 @@ static void rtl_hw_start_8101(struct net_device *dev) rtl_set_rx_max_size(ioaddr, tp->rx_buf_sz); if (tp->mac_version == RTL_GIGA_MAC_VER_09) - tp->cp_cmd &= RxVlan | RxChksum; + tp->cp_cmd &= RxVlan | RxChkSum; else tp->cp_cmd &= ~R810X_CPCMD_QUIRK_MASK; @@ -6548,9 +6548,9 @@ static void rtl_hw_start_8101(struct net_device *dev) rtl_hw_start_8102e_3(tp); break; - case RTL_GIGA_MAC_VER_09: + /* case RTL_GIGA_MAC_VER_09: rtl_hw_start_8102e_2(tp); - break; + break; */ case RTL_GIGA_MAC_VER_29: rtl_hw_start_8105e_1(tp); @@ -6576,16 +6576,17 @@ static void rtl_hw_start_8101(struct net_device *dev) } RTL_W8(Cfg9346, Cfg9346_Lock); - - RTL_W16(IntrMitigate, 0x0000); + if (!tp->mac_version == RTL_GIGA_MAC_VER_09) + RTL_W16(IntrMitigate, 0x0000); RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); //rtl_set_rx_mode(dev); //RTL_R8(IntrMask); + if (!tp->mac_version == RTL_GIGA_MAC_VER_09) + RTL_W16(MultiIntr, RTL_R16(MultiIntr) & 0xf000); - RTL_W16(MultiIntr, RTL_R16(MultiIntr) & 0xf000); } static int rtl8169_change_mtu(struct net_device *dev, int new_mtu)