aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-04-11 17:48:00 -0400
committerJeff Garzik <jeff@garzik.org>2007-04-19 15:01:17 -0400
commit4f44d8ba09280a7f0887ab60277940d6c72f2b43 (patch)
treec3762ad0ffbf3d8f101490bbcb05fa6162deea8c /drivers/net/sky2.c
parent40b01727a5a65597160f1738d3fbe63de902f0cb (diff)
sky2: disable ASF on all chip types
Need to make sure and disable ASF on all chip types. Otherwise, there may be random reboots. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/sky2.c')
-rw-r--r--drivers/net/sky2.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index a2cc721a2bf5..910c600a6caf 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2542,16 +2542,14 @@ static void sky2_reset(struct sky2_hw *hw)
2542 int i; 2542 int i;
2543 2543
2544 /* disable ASF */ 2544 /* disable ASF */
2545 if (hw->chip_id <= CHIP_ID_YUKON_EC) { 2545 if (hw->chip_id == CHIP_ID_YUKON_EX) {
2546 if (hw->chip_id == CHIP_ID_YUKON_EX) { 2546 status = sky2_read16(hw, HCU_CCSR);
2547 status = sky2_read16(hw, HCU_CCSR); 2547 status &= ~(HCU_CCSR_AHB_RST | HCU_CCSR_CPU_RST_MODE |
2548 status &= ~(HCU_CCSR_AHB_RST | HCU_CCSR_CPU_RST_MODE | 2548 HCU_CCSR_UC_STATE_MSK);
2549 HCU_CCSR_UC_STATE_MSK); 2549 sky2_write16(hw, HCU_CCSR, status);
2550 sky2_write16(hw, HCU_CCSR, status); 2550 } else
2551 } else 2551 sky2_write8(hw, B28_Y2_ASF_STAT_CMD, Y2_ASF_RESET);
2552 sky2_write8(hw, B28_Y2_ASF_STAT_CMD, Y2_ASF_RESET); 2552 sky2_write16(hw, B0_CTST, Y2_ASF_DISABLE);
2553 sky2_write16(hw, B0_CTST, Y2_ASF_DISABLE);
2554 }
2555 2553
2556 /* do a SW reset */ 2554 /* do a SW reset */
2557 sky2_write8(hw, B0_CTST, CS_RST_SET); 2555 sky2_write8(hw, B0_CTST, CS_RST_SET);