aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cxgb3/ael1002.c
diff options
context:
space:
mode:
authorDivy Le Ray <divy@chelsio.com>2007-05-30 13:01:39 -0400
committerJeff Garzik <jeff@garzik.org>2007-06-20 19:16:58 -0400
commitc706bfb52afc9b5d115f61a8e1c0c30540feb3f4 (patch)
tree22650d8837c7037e43f8e2a53a8821a94bac2949 /drivers/net/cxgb3/ael1002.c
parent890de332834a95450a74e5f615f4f9a0fa564623 (diff)
cxgb3 - Fix direct XAUI support
Check all lanes for link status on direct XAUI cards. Don't assume that direct XAUI always uses XGMAC 1. Signed-off-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/cxgb3/ael1002.c')
-rw-r--r--drivers/net/cxgb3/ael1002.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/cxgb3/ael1002.c b/drivers/net/cxgb3/ael1002.c
index 73a41e6a5bfc..ee140e63ddc5 100644
--- a/drivers/net/cxgb3/ael1002.c
+++ b/drivers/net/cxgb3/ael1002.c
@@ -219,7 +219,13 @@ static int xaui_direct_get_link_status(struct cphy *phy, int *link_ok,
219 unsigned int status; 219 unsigned int status;
220 220
221 status = t3_read_reg(phy->adapter, 221 status = t3_read_reg(phy->adapter,
222 XGM_REG(A_XGM_SERDES_STAT0, phy->addr)); 222 XGM_REG(A_XGM_SERDES_STAT0, phy->addr)) |
223 t3_read_reg(phy->adapter,
224 XGM_REG(A_XGM_SERDES_STAT1, phy->addr)) |
225 t3_read_reg(phy->adapter,
226 XGM_REG(A_XGM_SERDES_STAT2, phy->addr)) |
227 t3_read_reg(phy->adapter,
228 XGM_REG(A_XGM_SERDES_STAT3, phy->addr));
223 *link_ok = !(status & F_LOWSIG0); 229 *link_ok = !(status & F_LOWSIG0);
224 } 230 }
225 if (speed) 231 if (speed)
@@ -247,5 +253,5 @@ static struct cphy_ops xaui_direct_ops = {
247void t3_xaui_direct_phy_prep(struct cphy *phy, struct adapter *adapter, 253void t3_xaui_direct_phy_prep(struct cphy *phy, struct adapter *adapter,
248 int phy_addr, const struct mdio_ops *mdio_ops) 254 int phy_addr, const struct mdio_ops *mdio_ops)
249{ 255{
250 cphy_init(phy, adapter, 1, &xaui_direct_ops, mdio_ops); 256 cphy_init(phy, adapter, phy_addr, &xaui_direct_ops, mdio_ops);
251} 257}