Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 111825
b: refs/heads/master
c: c8fcc49
h: refs/heads/master
i:
  111823: 5474e04
v: v3
  • Loading branch information
Ben Hutchings authored and Jeff Garzik committed Sep 24, 2008
1 parent d64ff61 commit 46f006f
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ef08af03ef85373901a2ca0241617e6e7e42685d
refs/heads/master: c8fcc49c542a2312c706ebf76dcfe5266b39ee13
15 changes: 10 additions & 5 deletions trunk/drivers/net/sfc/tenxpress.c
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,10 @@ static int tenxpress_special_reset(struct efx_nic *efx)
{
int rc, reg;

EFX_TRACE(efx, "%s\n", __func__);
/* The XGMAC clock is driven from the SFC7101/SFT9001 312MHz clock, so
* a special software reset can glitch the XGMAC sufficiently for stats
* requests to fail. Since we don't ofen special_reset, just lock. */
spin_lock(&efx->stats_lock);

/* Initiate reset */
reg = mdio_clause45_read(efx, efx->mii.phy_id,
Expand All @@ -223,20 +226,22 @@ static int tenxpress_special_reset(struct efx_nic *efx)
mdio_clause45_write(efx, efx->mii.phy_id, MDIO_MMD_PMAPMD,
PMA_PMD_EXT_CTRL_REG, reg);

msleep(200);
mdelay(200);

/* Wait for the blocks to come out of reset */
rc = mdio_clause45_wait_reset_mmds(efx,
TENXPRESS_REQUIRED_DEVS);
if (rc < 0)
return rc;
goto unlock;

/* Try and reconfigure the device */
rc = tenxpress_init(efx);
if (rc < 0)
return rc;
goto unlock;

return 0;
unlock:
spin_unlock(&efx->stats_lock);
return rc;
}

static void tenxpress_set_bad_lp(struct efx_nic *efx, bool bad_lp)
Expand Down

0 comments on commit 46f006f

Please sign in to comment.