diff options
| author | Divy Le Ray <divy@chelsio.com> | 2009-07-07 15:48:53 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2009-07-08 13:54:20 -0400 |
| commit | 619f05cf690149bef1f15cd0cec6a31b40d96951 (patch) | |
| tree | a422044e2aea63314d4ca62e12079199250eb0fe /drivers/net/cxgb3 | |
| parent | 2c3d50f7db6c4aa85b099613aba8660da6de75d4 (diff) | |
cxgb3: fix phy power down
2 phys are were not getting the Global Tx disable bit set
when powered down, leading to an inconsistent link state
on peer.
Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cxgb3')
| -rw-r--r-- | drivers/net/cxgb3/ael1002.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/net/cxgb3/ael1002.c b/drivers/net/cxgb3/ael1002.c index 9fe008ec9ba5..949d248b746b 100644 --- a/drivers/net/cxgb3/ael1002.c +++ b/drivers/net/cxgb3/ael1002.c | |||
| @@ -224,12 +224,6 @@ static int ael1006_reset(struct cphy *phy, int wait) | |||
| 224 | return t3_phy_reset(phy, MDIO_MMD_PMAPMD, wait); | 224 | return t3_phy_reset(phy, MDIO_MMD_PMAPMD, wait); |
| 225 | } | 225 | } |
| 226 | 226 | ||
| 227 | static int ael1006_power_down(struct cphy *phy, int enable) | ||
| 228 | { | ||
| 229 | return mdio_set_flag(&phy->mdio, phy->mdio.prtad, MDIO_MMD_PMAPMD, | ||
| 230 | MDIO_CTRL1, MDIO_CTRL1_LPOWER, enable); | ||
| 231 | } | ||
| 232 | |||
| 233 | static struct cphy_ops ael1006_ops = { | 227 | static struct cphy_ops ael1006_ops = { |
| 234 | .reset = ael1006_reset, | 228 | .reset = ael1006_reset, |
| 235 | .intr_enable = t3_phy_lasi_intr_enable, | 229 | .intr_enable = t3_phy_lasi_intr_enable, |
| @@ -237,7 +231,7 @@ static struct cphy_ops ael1006_ops = { | |||
| 237 | .intr_clear = t3_phy_lasi_intr_clear, | 231 | .intr_clear = t3_phy_lasi_intr_clear, |
| 238 | .intr_handler = t3_phy_lasi_intr_handler, | 232 | .intr_handler = t3_phy_lasi_intr_handler, |
| 239 | .get_link_status = get_link_status_r, | 233 | .get_link_status = get_link_status_r, |
| 240 | .power_down = ael1006_power_down, | 234 | .power_down = ael1002_power_down, |
| 241 | .mmds = MDIO_DEVS_PMAPMD | MDIO_DEVS_PCS | MDIO_DEVS_PHYXS, | 235 | .mmds = MDIO_DEVS_PMAPMD | MDIO_DEVS_PCS | MDIO_DEVS_PHYXS, |
| 242 | }; | 236 | }; |
| 243 | 237 | ||
| @@ -1840,7 +1834,7 @@ static struct cphy_ops qt2045_ops = { | |||
| 1840 | .intr_clear = t3_phy_lasi_intr_clear, | 1834 | .intr_clear = t3_phy_lasi_intr_clear, |
| 1841 | .intr_handler = t3_phy_lasi_intr_handler, | 1835 | .intr_handler = t3_phy_lasi_intr_handler, |
| 1842 | .get_link_status = get_link_status_x, | 1836 | .get_link_status = get_link_status_x, |
| 1843 | .power_down = ael1006_power_down, | 1837 | .power_down = ael1002_power_down, |
| 1844 | .mmds = MDIO_DEVS_PMAPMD | MDIO_DEVS_PCS | MDIO_DEVS_PHYXS, | 1838 | .mmds = MDIO_DEVS_PMAPMD | MDIO_DEVS_PCS | MDIO_DEVS_PHYXS, |
| 1845 | }; | 1839 | }; |
| 1846 | 1840 | ||
