From 43700d46b317d348fad2a44c6ef747df9bb1c13a Mon Sep 17 00:00:00 2001 From: sbwml Date: Fri, 20 May 2022 04:53:06 +0800 Subject: [PATCH] r8168: bump to 8.050.02 --- Makefile | 2 +- ...-r8168-add-LED-configuration-from-OF.patch | 4 ++-- src/r8168.h | 5 +++-- src/r8168_fiber.h | 6 ++++++ src/r8168_n.c | 21 ++++++++++++------- 5 files changed, 25 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 5c05b8a..bb6ec97 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=r8168 -PKG_VERSION:=8.050.00 +PKG_VERSION:=8.050.02 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) diff --git a/patches/001-r8168-add-LED-configuration-from-OF.patch b/patches/001-r8168-add-LED-configuration-from-OF.patch index a07af36..89c4c41 100644 --- a/patches/001-r8168-add-LED-configuration-from-OF.patch +++ b/patches/001-r8168-add-LED-configuration-from-OF.patch @@ -8,7 +8,7 @@ #include #include #include -@@ -24605,6 +24606,22 @@ rtl8168_set_bios_setting(struct net_device *dev) +@@ -24607,6 +24608,22 @@ rtl8168_set_bios_setting(struct net_device *dev) } } @@ -31,7 +31,7 @@ static void rtl8168_init_software_variable(struct net_device *dev) { -@@ -25164,6 +25181,8 @@ rtl8168_init_software_variable(struct net_device *dev) +@@ -25169,6 +25186,8 @@ rtl8168_init_software_variable(struct net_device *dev) tp->NotWrMcuPatchCode = TRUE; } diff --git a/src/r8168.h b/src/r8168.h index da82ae8..ed4c1f4 100644 --- a/src/r8168.h +++ b/src/r8168.h @@ -344,7 +344,7 @@ do { \ #define DASH_SUFFIX "" #endif -#define RTL8168_VERSION "8.050.00" NAPI_SUFFIX FIBER_SUFFIX REALWOW_SUFFIX DASH_SUFFIX +#define RTL8168_VERSION "8.050.02" NAPI_SUFFIX FIBER_SUFFIX REALWOW_SUFFIX DASH_SUFFIX #define MODULENAME "r8168" #define PFX MODULENAME ": " @@ -1599,6 +1599,7 @@ struct rtl8168_private { u32 HwFiberModeVer; u32 HwFiberStat; + u8 HwFiberLedMode; u8 HwSwitchMdiToFiber; u8 HwSuppSerDesPhyVer; @@ -1781,7 +1782,7 @@ enum mcfg { #define NIC_MAX_PHYS_BUF_COUNT_LSO2 (16*4) #define GTTCPHO_SHIFT 18 -#define GTTCPHO_MAX 0x7fU +#define GTTCPHO_MAX 0x70U #define GTPKTSIZE_MAX 0x3ffffU #define TCPHO_SHIFT 18 #define TCPHO_MAX 0x3ffU diff --git a/src/r8168_fiber.h b/src/r8168_fiber.h index 18040b3..6a01b39 100644 --- a/src/r8168_fiber.h +++ b/src/r8168_fiber.h @@ -50,6 +50,12 @@ enum { FIBER_STAT_MAX }; +enum { + FIBER_LED_MODE_DEFAULT = 0, + FIBER_LED_MODE_1, + FIBER_LED_MODE_MAX +}; + #define HW_FIBER_MODE_ENABLED(_M) ((_M)->HwFiberModeVer > 0) #define HW_FIBER_STATUS_CONNECTED(_M) (((_M)->HwFiberStat == FIBER_STAT_CONNECT_EEPROM) || ((_M)->HwFiberStat == FIBER_STAT_CONNECT_GPO)) #define HW_FIBER_STATUS_DISCONNECTED(_M) ((_M)->HwFiberStat == FIBER_STAT_DISCONNECT) diff --git a/src/r8168_n.c b/src/r8168_n.c index 28d7636..ec6ffbc 100644 --- a/src/r8168_n.c +++ b/src/r8168_n.c @@ -3900,7 +3900,7 @@ rtl8168_enable_exit_l1_mask(struct rtl8168_private *tp) csi_tmp |= (BIT_10 | BIT_11); rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); break; - case CFG_METHOD_21 ... CFG_METHOD_34: + case CFG_METHOD_21 ... CFG_METHOD_35: csi_tmp = rtl8168_eri_read(tp, 0xD4, 4, ERIAR_ExGMAC); csi_tmp |= (BIT_7 | BIT_8 | BIT_9 | BIT_10 | BIT_11 | BIT_12); rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); @@ -3927,7 +3927,7 @@ rtl8168_disable_exit_l1_mask(struct rtl8168_private *tp) csi_tmp &= ~(BIT_10 | BIT_11); rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); break; - case CFG_METHOD_21 ... CFG_METHOD_34: + case CFG_METHOD_21 ... CFG_METHOD_35: csi_tmp = rtl8168_eri_read(tp, 0xD4, 4, ERIAR_ExGMAC); csi_tmp &= ~(BIT_7 | BIT_8 | BIT_9 | BIT_10 | BIT_11 | BIT_12); rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); @@ -5069,7 +5069,7 @@ rtl8168_powerdown_pll(struct net_device *dev) case CFG_METHOD_14 ... CFG_METHOD_15: RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) & ~BIT_6); break; - case CFG_METHOD_16 ... CFG_METHOD_34: + case CFG_METHOD_16 ... CFG_METHOD_35: RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) & ~BIT_6); RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) & ~BIT_6); break; @@ -5912,7 +5912,7 @@ static void rtl8168_get_ringparam(struct net_device *dev, struct rtl8168_private *tp = netdev_priv(dev); ring->rx_max_pending = MAX_NUM_TX_DESC; - ring->tx_max_pending = MAX_NUM_RX_DESC;; + ring->tx_max_pending = MAX_NUM_RX_DESC; ring->rx_pending = tp->num_rx_desc; ring->tx_pending = tp->num_tx_desc; } @@ -6702,7 +6702,7 @@ rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *eee) u16 val; switch (tp->mcfg) { - case CFG_METHOD_21 ... CFG_METHOD_34: + case CFG_METHOD_21 ... CFG_METHOD_35: break; default: return -EOPNOTSUPP; @@ -6749,7 +6749,7 @@ rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *eee) unsigned long flags; switch (tp->mcfg) { - case CFG_METHOD_21 ... CFG_METHOD_34: + case CFG_METHOD_21 ... CFG_METHOD_35: break; default: return -EOPNOTSUPP; @@ -7516,6 +7516,8 @@ rtl8168_test_phy_ocp_v3(struct rtl8168_private *tp) u8 nctl_pc_range_fail; u8 nctl_pc_stuck_fail; + if (FALSE == HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) goto exit; + rtl8168_mdio_write(tp, 0x1F, 0x0B82); uc_response = !!(rtl8168_mdio_read(tp, 0x10) & BIT_5); rtl8168_mdio_write(tp, 0x1F, 0x0B84); @@ -9767,7 +9769,7 @@ rtl8168_set_phy_mcu_patch_request(struct rtl8168_private *tp) int retval = TRUE; switch (tp->mcfg) { - case CFG_METHOD_21 ... CFG_METHOD_34: + case CFG_METHOD_21 ... CFG_METHOD_35: rtl8168_mdio_write(tp,0x1f, 0x0B82); rtl8168_set_eth_phy_bit(tp, 0x10, BIT_4); @@ -9796,7 +9798,7 @@ rtl8168_clear_phy_mcu_patch_request(struct rtl8168_private *tp) int retval = TRUE; switch (tp->mcfg) { - case CFG_METHOD_21 ... CFG_METHOD_34: + case CFG_METHOD_21 ... CFG_METHOD_35: rtl8168_mdio_write(tp, 0x1f, 0x0B82); rtl8168_clear_eth_phy_bit(tp, 0x10, BIT_4); @@ -25080,6 +25082,9 @@ rtl8168_init_software_variable(struct net_device *dev) rtl8168_mdio_write(tp, 0x1F, 0x0000); tp->TestPhyOcpReg = TRUE; +#ifdef ENABLE_USE_FIRMWARE_FILE + if (tp->HwSuppEsdVer == 3) tp->TestPhyOcpReg = FALSE; +#endif } switch (tp->mcfg) {