aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cxgb3/ael1002.c
diff options
context:
space:
mode:
authorDivy Le Ray <divy@chelsio.com>2009-07-07 15:48:53 -0400
committerDavid S. Miller <davem@davemloft.net>2009-07-08 13:54:20 -0400
commit619f05cf690149bef1f15cd0cec6a31b40d96951 (patch)
treea422044e2aea63314d4ca62e12079199250eb0fe /drivers/net/cxgb3/ael1002.c
parent2c3d50f7db6c4aa85b099613aba8660da6de75d4 (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/ael1002.c')
-rw-r--r--drivers/net/cxgb3/ael1002.c10
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
227static 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
233static struct cphy_ops ael1006_ops = { 227static 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