diff options
author | hayeswang <hayeswang@realtek.com> | 2014-02-18 08:49:03 -0500 |
---|---|---|
committer | Vladislav Zhurba <vzhurba@nvidia.com> | 2018-02-01 16:57:59 -0500 |
commit | 5fd359ff53e9795097cc4e6fe08fd5ee31dc0835 (patch) | |
tree | 88677a1346381230bf09e3f174dc3fcd35592d4e /drivers/net/usb/r8152_shield.c | |
parent | 477602fdf52a8f972ada9395f6d377f451f18eaf (diff) |
r8152: clear BMCR_PDOWN
Modify the method of enabling the PHY to clear BMCR_PDOWN only.
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Preetham Chandru R <pchandru@nvidia.com>
(cherry picked from commit f0cbe0ac87c123a80dac3b2df72ecb947ef63ad8)
Change-Id: I4f722947af5e3254869ed6cb925515cbb0bf065b
Reviewed-on: http://git-master/r/370019
Tested-by: Aly Hirani <ahirani@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'drivers/net/usb/r8152_shield.c')
-rw-r--r-- | drivers/net/usb/r8152_shield.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/net/usb/r8152_shield.c b/drivers/net/usb/r8152_shield.c index d19c8c057..4c5c81ea3 100644 --- a/drivers/net/usb/r8152_shield.c +++ b/drivers/net/usb/r8152_shield.c | |||
@@ -1843,7 +1843,14 @@ static inline void r8152b_enable_aldps(struct r8152 *tp) | |||
1843 | 1843 | ||
1844 | static void r8152b_hw_phy_cfg(struct r8152 *tp) | 1844 | static void r8152b_hw_phy_cfg(struct r8152 *tp) |
1845 | { | 1845 | { |
1846 | r8152_mdio_write(tp, MII_BMCR, BMCR_ANENABLE); | 1846 | u16 data; |
1847 | |||
1848 | data = r8152_mdio_read(tp, MII_BMCR); | ||
1849 | if (data & BMCR_PDOWN) { | ||
1850 | data &= ~BMCR_PDOWN; | ||
1851 | r8152_mdio_write(tp, MII_BMCR, data); | ||
1852 | } | ||
1853 | |||
1847 | r8152b_disable_aldps(tp); | 1854 | r8152b_disable_aldps(tp); |
1848 | } | 1855 | } |
1849 | 1856 | ||
@@ -1993,7 +2000,11 @@ static void r8153_hw_phy_cfg(struct r8152 *tp) | |||
1993 | u16 data; | 2000 | u16 data; |
1994 | 2001 | ||
1995 | ocp_reg_write(tp, OCP_ADC_CFG, CKADSEL_L | ADC_EN | EN_EMI_L); | 2002 | ocp_reg_write(tp, OCP_ADC_CFG, CKADSEL_L | ADC_EN | EN_EMI_L); |
1996 | r8152_mdio_write(tp, MII_BMCR, BMCR_ANENABLE); | 2003 | data = r8152_mdio_read(tp, MII_BMCR); |
2004 | if (data & BMCR_PDOWN) { | ||
2005 | data &= ~BMCR_PDOWN; | ||
2006 | r8152_mdio_write(tp, MII_BMCR, data); | ||
2007 | } | ||
1997 | 2008 | ||
1998 | if (tp->version == RTL_VER_03) { | 2009 | if (tp->version == RTL_VER_03) { |
1999 | data = ocp_reg_read(tp, OCP_EEE_CFG); | 2010 | data = ocp_reg_read(tp, OCP_EEE_CFG); |