diff options
| author | Zefir Kurtisi <zefir.kurtisi@neratec.com> | 2016-10-24 06:40:53 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-10-27 16:05:16 -0400 |
| commit | 4fc6d239ee5640909932c47f3c7b93dd8e415fea (patch) | |
| tree | efd2341e2240e75717340679fce03c8dc59bceca /drivers/net/phy | |
| parent | 67f0160fe34ec5391a428603b9832c9f99d8f3a1 (diff) | |
Revert "at803x: fix suspend/resume for SGMII link"
This reverts commit 98267311fe3b334ae7c107fa0e2413adcf3ba735.
Suspending the SGMII alongside the copper side
made the at803x inaccessable while powered down,
e.g. it can't be re-probed after suspend.
Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy')
| -rw-r--r-- | drivers/net/phy/at803x.c | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c index f279a897a5c7..cf74d108953e 100644 --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c | |||
| @@ -52,9 +52,6 @@ | |||
| 52 | #define AT803X_DEBUG_REG_5 0x05 | 52 | #define AT803X_DEBUG_REG_5 0x05 |
| 53 | #define AT803X_DEBUG_TX_CLK_DLY_EN BIT(8) | 53 | #define AT803X_DEBUG_TX_CLK_DLY_EN BIT(8) |
| 54 | 54 | ||
| 55 | #define AT803X_REG_CHIP_CONFIG 0x1f | ||
| 56 | #define AT803X_BT_BX_REG_SEL 0x8000 | ||
| 57 | |||
| 58 | #define ATH8030_PHY_ID 0x004dd076 | 55 | #define ATH8030_PHY_ID 0x004dd076 |
| 59 | #define ATH8031_PHY_ID 0x004dd074 | 56 | #define ATH8031_PHY_ID 0x004dd074 |
| 60 | #define ATH8035_PHY_ID 0x004dd072 | 57 | #define ATH8035_PHY_ID 0x004dd072 |
| @@ -209,7 +206,6 @@ static int at803x_suspend(struct phy_device *phydev) | |||
| 209 | { | 206 | { |
| 210 | int value; | 207 | int value; |
| 211 | int wol_enabled; | 208 | int wol_enabled; |
| 212 | int ccr; | ||
| 213 | 209 | ||
| 214 | mutex_lock(&phydev->lock); | 210 | mutex_lock(&phydev->lock); |
| 215 | 211 | ||
| @@ -225,16 +221,6 @@ static int at803x_suspend(struct phy_device *phydev) | |||
| 225 | 221 | ||
| 226 | phy_write(phydev, MII_BMCR, value); | 222 | phy_write(phydev, MII_BMCR, value); |
| 227 | 223 | ||
| 228 | if (phydev->interface != PHY_INTERFACE_MODE_SGMII) | ||
| 229 | goto done; | ||
| 230 | |||
| 231 | /* also power-down SGMII interface */ | ||
| 232 | ccr = phy_read(phydev, AT803X_REG_CHIP_CONFIG); | ||
| 233 | phy_write(phydev, AT803X_REG_CHIP_CONFIG, ccr & ~AT803X_BT_BX_REG_SEL); | ||
| 234 | phy_write(phydev, MII_BMCR, phy_read(phydev, MII_BMCR) | BMCR_PDOWN); | ||
| 235 | phy_write(phydev, AT803X_REG_CHIP_CONFIG, ccr | AT803X_BT_BX_REG_SEL); | ||
| 236 | |||
| 237 | done: | ||
| 238 | mutex_unlock(&phydev->lock); | 224 | mutex_unlock(&phydev->lock); |
| 239 | 225 | ||
| 240 | return 0; | 226 | return 0; |
| @@ -243,7 +229,6 @@ done: | |||
| 243 | static int at803x_resume(struct phy_device *phydev) | 229 | static int at803x_resume(struct phy_device *phydev) |
| 244 | { | 230 | { |
| 245 | int value; | 231 | int value; |
| 246 | int ccr; | ||
| 247 | 232 | ||
| 248 | mutex_lock(&phydev->lock); | 233 | mutex_lock(&phydev->lock); |
| 249 | 234 | ||
| @@ -251,17 +236,6 @@ static int at803x_resume(struct phy_device *phydev) | |||
| 251 | value &= ~(BMCR_PDOWN | BMCR_ISOLATE); | 236 | value &= ~(BMCR_PDOWN | BMCR_ISOLATE); |
| 252 | phy_write(phydev, MII_BMCR, value); | 237 | phy_write(phydev, MII_BMCR, value); |
| 253 | 238 | ||
| 254 | if (phydev->interface != PHY_INTERFACE_MODE_SGMII) | ||
| 255 | goto done; | ||
| 256 | |||
| 257 | /* also power-up SGMII interface */ | ||
| 258 | ccr = phy_read(phydev, AT803X_REG_CHIP_CONFIG); | ||
| 259 | phy_write(phydev, AT803X_REG_CHIP_CONFIG, ccr & ~AT803X_BT_BX_REG_SEL); | ||
| 260 | value = phy_read(phydev, MII_BMCR) & ~(BMCR_PDOWN | BMCR_ISOLATE); | ||
| 261 | phy_write(phydev, MII_BMCR, value); | ||
| 262 | phy_write(phydev, AT803X_REG_CHIP_CONFIG, ccr | AT803X_BT_BX_REG_SEL); | ||
| 263 | |||
| 264 | done: | ||
| 265 | mutex_unlock(&phydev->lock); | 239 | mutex_unlock(&phydev->lock); |
| 266 | 240 | ||
| 267 | return 0; | 241 | return 0; |
