summaryrefslogtreecommitdiffstats
path: root/drivers/net/usb/r8152_shield.c
diff options
context:
space:
mode:
authorhayeswang <hayeswang@realtek.com>2014-02-18 08:49:03 -0500
committerVladislav Zhurba <vzhurba@nvidia.com>2018-02-01 16:57:59 -0500
commit5fd359ff53e9795097cc4e6fe08fd5ee31dc0835 (patch)
tree88677a1346381230bf09e3f174dc3fcd35592d4e /drivers/net/usb/r8152_shield.c
parent477602fdf52a8f972ada9395f6d377f451f18eaf (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.c15
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
1844static void r8152b_hw_phy_cfg(struct r8152 *tp) 1844static 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);