diff --git a/drivers/net/ipq6018/ipq6018_uniphy.c b/drivers/net/ipq6018/ipq6018_uniphy.c index a450e1a87c..35687a67bd 100644 --- a/drivers/net/ipq6018/ipq6018_uniphy.c +++ b/drivers/net/ipq6018/ipq6018_uniphy.c @@ -77,10 +77,12 @@ static void ppe_gcc_uniphy_xpcs_reset(uint32_t uniphy_index, bool enable) { uint32_t reg_value; + reg_value = readl(GCC_UNIPHY0_MISC + (uniphy_index * GCC_UNIPHY_REG_INC)); + if(enable) - reg_value = GCC_UNIPHY_USXGMII_XPCS_RESET; + reg_value |= GCC_UNIPHY_USXGMII_XPCS_RESET; else - reg_value = GCC_UNIPHY_USXGMII_XPCS_RELEASE_RESET; + reg_value &= ~GCC_UNIPHY_USXGMII_XPCS_RESET; writel(reg_value, GCC_UNIPHY0_MISC + (uniphy_index * GCC_UNIPHY_REG_INC)); } diff --git a/drivers/net/ipq6018/ipq6018_uniphy.h b/drivers/net/ipq6018/ipq6018_uniphy.h index 224fb69b21..04151ef7de 100644 --- a/drivers/net/ipq6018/ipq6018_uniphy.h +++ b/drivers/net/ipq6018/ipq6018_uniphy.h @@ -27,7 +27,6 @@ #define GCC_UNIPHY0_MISC 0x01856004 #define GCC_UNIPHY_REG_INC 0x100 #define GCC_UNIPHY_USXGMII_XPCS_RESET 0x4 -#define GCC_UNIPHY_USXGMII_XPCS_RELEASE_RESET 0x0 #define PPE_UNIPHY_OFFSET_CALIB_4 0x1E0 #define UNIPHY_CALIBRATION_DONE 0x1