Loading drivers/net/ethernet/realtek/r8169.c +68 −151 Original line number Original line Diff line number Diff line Loading @@ -5381,122 +5381,6 @@ static void rtl_hw_start_8168ep_3(struct rtl8169_private *tp) rtl_hw_aspm_clkreq_enable(tp, true); rtl_hw_aspm_clkreq_enable(tp, true); } } static void rtl_hw_start_8168(struct rtl8169_private *tp) { RTL_W8(tp, MaxTxPacketSize, TxPacketMax); /* Work around for RxFIFO overflow. */ if (tp->mac_version == RTL_GIGA_MAC_VER_11) { tp->irq_mask |= RxFIFOOver; tp->irq_mask &= ~RxOverflow; } switch (tp->mac_version) { case RTL_GIGA_MAC_VER_11: rtl_hw_start_8168bb(tp); break; case RTL_GIGA_MAC_VER_12: case RTL_GIGA_MAC_VER_17: rtl_hw_start_8168bef(tp); break; case RTL_GIGA_MAC_VER_18: rtl_hw_start_8168cp_1(tp); break; case RTL_GIGA_MAC_VER_19: rtl_hw_start_8168c_1(tp); break; case RTL_GIGA_MAC_VER_20: rtl_hw_start_8168c_2(tp); break; case RTL_GIGA_MAC_VER_21: rtl_hw_start_8168c_3(tp); break; case RTL_GIGA_MAC_VER_22: rtl_hw_start_8168c_4(tp); break; case RTL_GIGA_MAC_VER_23: rtl_hw_start_8168cp_2(tp); break; case RTL_GIGA_MAC_VER_24: rtl_hw_start_8168cp_3(tp); break; case RTL_GIGA_MAC_VER_25: case RTL_GIGA_MAC_VER_26: case RTL_GIGA_MAC_VER_27: rtl_hw_start_8168d(tp); break; case RTL_GIGA_MAC_VER_28: rtl_hw_start_8168d_4(tp); break; case RTL_GIGA_MAC_VER_31: rtl_hw_start_8168dp(tp); break; case RTL_GIGA_MAC_VER_32: case RTL_GIGA_MAC_VER_33: rtl_hw_start_8168e_1(tp); break; case RTL_GIGA_MAC_VER_34: rtl_hw_start_8168e_2(tp); break; case RTL_GIGA_MAC_VER_35: case RTL_GIGA_MAC_VER_36: rtl_hw_start_8168f_1(tp); break; case RTL_GIGA_MAC_VER_38: rtl_hw_start_8411(tp); break; case RTL_GIGA_MAC_VER_40: case RTL_GIGA_MAC_VER_41: rtl_hw_start_8168g_1(tp); break; case RTL_GIGA_MAC_VER_42: rtl_hw_start_8168g_2(tp); break; case RTL_GIGA_MAC_VER_44: rtl_hw_start_8411_2(tp); break; case RTL_GIGA_MAC_VER_45: case RTL_GIGA_MAC_VER_46: rtl_hw_start_8168h_1(tp); break; case RTL_GIGA_MAC_VER_49: rtl_hw_start_8168ep_1(tp); break; case RTL_GIGA_MAC_VER_50: rtl_hw_start_8168ep_2(tp); break; case RTL_GIGA_MAC_VER_51: rtl_hw_start_8168ep_3(tp); break; default: netif_err(tp, drv, tp->dev, "unknown chipset (mac_version = %d)\n", tp->mac_version); break; } } static void rtl_hw_start_8102e_1(struct rtl8169_private *tp) static void rtl_hw_start_8102e_1(struct rtl8169_private *tp) { { static const struct ephy_info e_info_8102e_1[] = { static const struct ephy_info e_info_8102e_1[] = { Loading Loading @@ -5622,6 +5506,73 @@ static void rtl_hw_start_8106(struct rtl8169_private *tp) rtl_hw_aspm_clkreq_enable(tp, true); rtl_hw_aspm_clkreq_enable(tp, true); } } static void rtl_hw_config(struct rtl8169_private *tp) { static const rtl_generic_fct hw_configs[] = { [RTL_GIGA_MAC_VER_07] = rtl_hw_start_8102e_1, [RTL_GIGA_MAC_VER_08] = rtl_hw_start_8102e_3, [RTL_GIGA_MAC_VER_09] = rtl_hw_start_8102e_2, [RTL_GIGA_MAC_VER_10] = NULL, [RTL_GIGA_MAC_VER_11] = rtl_hw_start_8168bb, [RTL_GIGA_MAC_VER_12] = rtl_hw_start_8168bef, [RTL_GIGA_MAC_VER_13] = NULL, [RTL_GIGA_MAC_VER_14] = NULL, [RTL_GIGA_MAC_VER_15] = NULL, [RTL_GIGA_MAC_VER_16] = NULL, [RTL_GIGA_MAC_VER_17] = rtl_hw_start_8168bef, [RTL_GIGA_MAC_VER_18] = rtl_hw_start_8168cp_1, [RTL_GIGA_MAC_VER_19] = rtl_hw_start_8168c_1, [RTL_GIGA_MAC_VER_20] = rtl_hw_start_8168c_2, [RTL_GIGA_MAC_VER_21] = rtl_hw_start_8168c_3, [RTL_GIGA_MAC_VER_22] = rtl_hw_start_8168c_4, [RTL_GIGA_MAC_VER_23] = rtl_hw_start_8168cp_2, [RTL_GIGA_MAC_VER_24] = rtl_hw_start_8168cp_3, [RTL_GIGA_MAC_VER_25] = rtl_hw_start_8168d, [RTL_GIGA_MAC_VER_26] = rtl_hw_start_8168d, [RTL_GIGA_MAC_VER_27] = rtl_hw_start_8168d, [RTL_GIGA_MAC_VER_28] = rtl_hw_start_8168d_4, [RTL_GIGA_MAC_VER_29] = rtl_hw_start_8105e_1, [RTL_GIGA_MAC_VER_30] = rtl_hw_start_8105e_2, [RTL_GIGA_MAC_VER_31] = rtl_hw_start_8168dp, [RTL_GIGA_MAC_VER_32] = rtl_hw_start_8168e_1, [RTL_GIGA_MAC_VER_33] = rtl_hw_start_8168e_1, [RTL_GIGA_MAC_VER_34] = rtl_hw_start_8168e_2, [RTL_GIGA_MAC_VER_35] = rtl_hw_start_8168f_1, [RTL_GIGA_MAC_VER_36] = rtl_hw_start_8168f_1, [RTL_GIGA_MAC_VER_37] = rtl_hw_start_8402, [RTL_GIGA_MAC_VER_38] = rtl_hw_start_8411, [RTL_GIGA_MAC_VER_39] = rtl_hw_start_8106, [RTL_GIGA_MAC_VER_40] = rtl_hw_start_8168g_1, [RTL_GIGA_MAC_VER_41] = rtl_hw_start_8168g_1, [RTL_GIGA_MAC_VER_42] = rtl_hw_start_8168g_2, [RTL_GIGA_MAC_VER_43] = rtl_hw_start_8168g_2, [RTL_GIGA_MAC_VER_44] = rtl_hw_start_8411_2, [RTL_GIGA_MAC_VER_45] = rtl_hw_start_8168h_1, [RTL_GIGA_MAC_VER_46] = rtl_hw_start_8168h_1, [RTL_GIGA_MAC_VER_47] = rtl_hw_start_8168h_1, [RTL_GIGA_MAC_VER_48] = rtl_hw_start_8168h_1, [RTL_GIGA_MAC_VER_49] = rtl_hw_start_8168ep_1, [RTL_GIGA_MAC_VER_50] = rtl_hw_start_8168ep_2, [RTL_GIGA_MAC_VER_51] = rtl_hw_start_8168ep_3, }; if (hw_configs[tp->mac_version]) hw_configs[tp->mac_version](tp); } static void rtl_hw_start_8168(struct rtl8169_private *tp) { RTL_W8(tp, MaxTxPacketSize, TxPacketMax); /* Workaround for RxFIFO overflow. */ if (tp->mac_version == RTL_GIGA_MAC_VER_11) { tp->irq_mask |= RxFIFOOver; tp->irq_mask &= ~RxOverflow; } rtl_hw_config(tp); } static void rtl_hw_start_8101(struct rtl8169_private *tp) static void rtl_hw_start_8101(struct rtl8169_private *tp) { { if (tp->mac_version >= RTL_GIGA_MAC_VER_30) if (tp->mac_version >= RTL_GIGA_MAC_VER_30) Loading @@ -5637,41 +5588,7 @@ static void rtl_hw_start_8101(struct rtl8169_private *tp) tp->cp_cmd &= CPCMD_QUIRK_MASK; tp->cp_cmd &= CPCMD_QUIRK_MASK; RTL_W16(tp, CPlusCmd, tp->cp_cmd); RTL_W16(tp, CPlusCmd, tp->cp_cmd); switch (tp->mac_version) { rtl_hw_config(tp); case RTL_GIGA_MAC_VER_07: rtl_hw_start_8102e_1(tp); break; case RTL_GIGA_MAC_VER_08: rtl_hw_start_8102e_3(tp); break; case RTL_GIGA_MAC_VER_09: rtl_hw_start_8102e_2(tp); break; case RTL_GIGA_MAC_VER_29: rtl_hw_start_8105e_1(tp); break; case RTL_GIGA_MAC_VER_30: rtl_hw_start_8105e_2(tp); break; case RTL_GIGA_MAC_VER_37: rtl_hw_start_8402(tp); break; case RTL_GIGA_MAC_VER_39: rtl_hw_start_8106(tp); break; case RTL_GIGA_MAC_VER_43: rtl_hw_start_8168g_2(tp); break; case RTL_GIGA_MAC_VER_47: case RTL_GIGA_MAC_VER_48: rtl_hw_start_8168h_1(tp); break; } } } static int rtl8169_change_mtu(struct net_device *dev, int new_mtu) static int rtl8169_change_mtu(struct net_device *dev, int new_mtu) Loading Loading
drivers/net/ethernet/realtek/r8169.c +68 −151 Original line number Original line Diff line number Diff line Loading @@ -5381,122 +5381,6 @@ static void rtl_hw_start_8168ep_3(struct rtl8169_private *tp) rtl_hw_aspm_clkreq_enable(tp, true); rtl_hw_aspm_clkreq_enable(tp, true); } } static void rtl_hw_start_8168(struct rtl8169_private *tp) { RTL_W8(tp, MaxTxPacketSize, TxPacketMax); /* Work around for RxFIFO overflow. */ if (tp->mac_version == RTL_GIGA_MAC_VER_11) { tp->irq_mask |= RxFIFOOver; tp->irq_mask &= ~RxOverflow; } switch (tp->mac_version) { case RTL_GIGA_MAC_VER_11: rtl_hw_start_8168bb(tp); break; case RTL_GIGA_MAC_VER_12: case RTL_GIGA_MAC_VER_17: rtl_hw_start_8168bef(tp); break; case RTL_GIGA_MAC_VER_18: rtl_hw_start_8168cp_1(tp); break; case RTL_GIGA_MAC_VER_19: rtl_hw_start_8168c_1(tp); break; case RTL_GIGA_MAC_VER_20: rtl_hw_start_8168c_2(tp); break; case RTL_GIGA_MAC_VER_21: rtl_hw_start_8168c_3(tp); break; case RTL_GIGA_MAC_VER_22: rtl_hw_start_8168c_4(tp); break; case RTL_GIGA_MAC_VER_23: rtl_hw_start_8168cp_2(tp); break; case RTL_GIGA_MAC_VER_24: rtl_hw_start_8168cp_3(tp); break; case RTL_GIGA_MAC_VER_25: case RTL_GIGA_MAC_VER_26: case RTL_GIGA_MAC_VER_27: rtl_hw_start_8168d(tp); break; case RTL_GIGA_MAC_VER_28: rtl_hw_start_8168d_4(tp); break; case RTL_GIGA_MAC_VER_31: rtl_hw_start_8168dp(tp); break; case RTL_GIGA_MAC_VER_32: case RTL_GIGA_MAC_VER_33: rtl_hw_start_8168e_1(tp); break; case RTL_GIGA_MAC_VER_34: rtl_hw_start_8168e_2(tp); break; case RTL_GIGA_MAC_VER_35: case RTL_GIGA_MAC_VER_36: rtl_hw_start_8168f_1(tp); break; case RTL_GIGA_MAC_VER_38: rtl_hw_start_8411(tp); break; case RTL_GIGA_MAC_VER_40: case RTL_GIGA_MAC_VER_41: rtl_hw_start_8168g_1(tp); break; case RTL_GIGA_MAC_VER_42: rtl_hw_start_8168g_2(tp); break; case RTL_GIGA_MAC_VER_44: rtl_hw_start_8411_2(tp); break; case RTL_GIGA_MAC_VER_45: case RTL_GIGA_MAC_VER_46: rtl_hw_start_8168h_1(tp); break; case RTL_GIGA_MAC_VER_49: rtl_hw_start_8168ep_1(tp); break; case RTL_GIGA_MAC_VER_50: rtl_hw_start_8168ep_2(tp); break; case RTL_GIGA_MAC_VER_51: rtl_hw_start_8168ep_3(tp); break; default: netif_err(tp, drv, tp->dev, "unknown chipset (mac_version = %d)\n", tp->mac_version); break; } } static void rtl_hw_start_8102e_1(struct rtl8169_private *tp) static void rtl_hw_start_8102e_1(struct rtl8169_private *tp) { { static const struct ephy_info e_info_8102e_1[] = { static const struct ephy_info e_info_8102e_1[] = { Loading Loading @@ -5622,6 +5506,73 @@ static void rtl_hw_start_8106(struct rtl8169_private *tp) rtl_hw_aspm_clkreq_enable(tp, true); rtl_hw_aspm_clkreq_enable(tp, true); } } static void rtl_hw_config(struct rtl8169_private *tp) { static const rtl_generic_fct hw_configs[] = { [RTL_GIGA_MAC_VER_07] = rtl_hw_start_8102e_1, [RTL_GIGA_MAC_VER_08] = rtl_hw_start_8102e_3, [RTL_GIGA_MAC_VER_09] = rtl_hw_start_8102e_2, [RTL_GIGA_MAC_VER_10] = NULL, [RTL_GIGA_MAC_VER_11] = rtl_hw_start_8168bb, [RTL_GIGA_MAC_VER_12] = rtl_hw_start_8168bef, [RTL_GIGA_MAC_VER_13] = NULL, [RTL_GIGA_MAC_VER_14] = NULL, [RTL_GIGA_MAC_VER_15] = NULL, [RTL_GIGA_MAC_VER_16] = NULL, [RTL_GIGA_MAC_VER_17] = rtl_hw_start_8168bef, [RTL_GIGA_MAC_VER_18] = rtl_hw_start_8168cp_1, [RTL_GIGA_MAC_VER_19] = rtl_hw_start_8168c_1, [RTL_GIGA_MAC_VER_20] = rtl_hw_start_8168c_2, [RTL_GIGA_MAC_VER_21] = rtl_hw_start_8168c_3, [RTL_GIGA_MAC_VER_22] = rtl_hw_start_8168c_4, [RTL_GIGA_MAC_VER_23] = rtl_hw_start_8168cp_2, [RTL_GIGA_MAC_VER_24] = rtl_hw_start_8168cp_3, [RTL_GIGA_MAC_VER_25] = rtl_hw_start_8168d, [RTL_GIGA_MAC_VER_26] = rtl_hw_start_8168d, [RTL_GIGA_MAC_VER_27] = rtl_hw_start_8168d, [RTL_GIGA_MAC_VER_28] = rtl_hw_start_8168d_4, [RTL_GIGA_MAC_VER_29] = rtl_hw_start_8105e_1, [RTL_GIGA_MAC_VER_30] = rtl_hw_start_8105e_2, [RTL_GIGA_MAC_VER_31] = rtl_hw_start_8168dp, [RTL_GIGA_MAC_VER_32] = rtl_hw_start_8168e_1, [RTL_GIGA_MAC_VER_33] = rtl_hw_start_8168e_1, [RTL_GIGA_MAC_VER_34] = rtl_hw_start_8168e_2, [RTL_GIGA_MAC_VER_35] = rtl_hw_start_8168f_1, [RTL_GIGA_MAC_VER_36] = rtl_hw_start_8168f_1, [RTL_GIGA_MAC_VER_37] = rtl_hw_start_8402, [RTL_GIGA_MAC_VER_38] = rtl_hw_start_8411, [RTL_GIGA_MAC_VER_39] = rtl_hw_start_8106, [RTL_GIGA_MAC_VER_40] = rtl_hw_start_8168g_1, [RTL_GIGA_MAC_VER_41] = rtl_hw_start_8168g_1, [RTL_GIGA_MAC_VER_42] = rtl_hw_start_8168g_2, [RTL_GIGA_MAC_VER_43] = rtl_hw_start_8168g_2, [RTL_GIGA_MAC_VER_44] = rtl_hw_start_8411_2, [RTL_GIGA_MAC_VER_45] = rtl_hw_start_8168h_1, [RTL_GIGA_MAC_VER_46] = rtl_hw_start_8168h_1, [RTL_GIGA_MAC_VER_47] = rtl_hw_start_8168h_1, [RTL_GIGA_MAC_VER_48] = rtl_hw_start_8168h_1, [RTL_GIGA_MAC_VER_49] = rtl_hw_start_8168ep_1, [RTL_GIGA_MAC_VER_50] = rtl_hw_start_8168ep_2, [RTL_GIGA_MAC_VER_51] = rtl_hw_start_8168ep_3, }; if (hw_configs[tp->mac_version]) hw_configs[tp->mac_version](tp); } static void rtl_hw_start_8168(struct rtl8169_private *tp) { RTL_W8(tp, MaxTxPacketSize, TxPacketMax); /* Workaround for RxFIFO overflow. */ if (tp->mac_version == RTL_GIGA_MAC_VER_11) { tp->irq_mask |= RxFIFOOver; tp->irq_mask &= ~RxOverflow; } rtl_hw_config(tp); } static void rtl_hw_start_8101(struct rtl8169_private *tp) static void rtl_hw_start_8101(struct rtl8169_private *tp) { { if (tp->mac_version >= RTL_GIGA_MAC_VER_30) if (tp->mac_version >= RTL_GIGA_MAC_VER_30) Loading @@ -5637,41 +5588,7 @@ static void rtl_hw_start_8101(struct rtl8169_private *tp) tp->cp_cmd &= CPCMD_QUIRK_MASK; tp->cp_cmd &= CPCMD_QUIRK_MASK; RTL_W16(tp, CPlusCmd, tp->cp_cmd); RTL_W16(tp, CPlusCmd, tp->cp_cmd); switch (tp->mac_version) { rtl_hw_config(tp); case RTL_GIGA_MAC_VER_07: rtl_hw_start_8102e_1(tp); break; case RTL_GIGA_MAC_VER_08: rtl_hw_start_8102e_3(tp); break; case RTL_GIGA_MAC_VER_09: rtl_hw_start_8102e_2(tp); break; case RTL_GIGA_MAC_VER_29: rtl_hw_start_8105e_1(tp); break; case RTL_GIGA_MAC_VER_30: rtl_hw_start_8105e_2(tp); break; case RTL_GIGA_MAC_VER_37: rtl_hw_start_8402(tp); break; case RTL_GIGA_MAC_VER_39: rtl_hw_start_8106(tp); break; case RTL_GIGA_MAC_VER_43: rtl_hw_start_8168g_2(tp); break; case RTL_GIGA_MAC_VER_47: case RTL_GIGA_MAC_VER_48: rtl_hw_start_8168h_1(tp); break; } } } static int rtl8169_change_mtu(struct net_device *dev, int new_mtu) static int rtl8169_change_mtu(struct net_device *dev, int new_mtu) Loading