diff options
author | Stephen Hemminger <shemminger@linux-foundation.org> | 2007-08-21 17:34:02 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-08-25 02:31:06 -0400 |
commit | b23457737f073eaf5a7b797c2a195f83633e003d (patch) | |
tree | 780b7c20dfab64d68a5cad47a96ce96bfd1724f1 | |
parent | c46ac9463fbdee41723dd9fd108b2c1ffd30615f (diff) |
sky2: clear PCI power control reg at startup
Make sure PCI register for PHY power gets cleared on boot, and make
sure to avoid any PCI posting problems.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/sky2.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 757592436390..33ba3486389e 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -219,9 +219,12 @@ static void sky2_power_on(struct sky2_hw *hw) | |||
219 | else | 219 | else |
220 | sky2_write8(hw, B2_Y2_CLK_GATE, 0); | 220 | sky2_write8(hw, B2_Y2_CLK_GATE, 0); |
221 | 221 | ||
222 | if (hw->chip_id == CHIP_ID_YUKON_EC_U || hw->chip_id == CHIP_ID_YUKON_EX) { | 222 | if (hw->chip_id == CHIP_ID_YUKON_EC_U || |
223 | hw->chip_id == CHIP_ID_YUKON_EX) { | ||
223 | u32 reg; | 224 | u32 reg; |
224 | 225 | ||
226 | sky2_pci_write32(hw, PCI_DEV_REG3, 0); | ||
227 | |||
225 | reg = sky2_pci_read32(hw, PCI_DEV_REG4); | 228 | reg = sky2_pci_read32(hw, PCI_DEV_REG4); |
226 | /* set all bits to 0 except bits 15..12 and 8 */ | 229 | /* set all bits to 0 except bits 15..12 and 8 */ |
227 | reg &= P_ASPM_CONTROL_MSK; | 230 | reg &= P_ASPM_CONTROL_MSK; |
@@ -238,6 +241,8 @@ static void sky2_power_on(struct sky2_hw *hw) | |||
238 | reg = sky2_read32(hw, B2_GP_IO); | 241 | reg = sky2_read32(hw, B2_GP_IO); |
239 | reg |= GLB_GPIO_STAT_RACE_DIS; | 242 | reg |= GLB_GPIO_STAT_RACE_DIS; |
240 | sky2_write32(hw, B2_GP_IO, reg); | 243 | sky2_write32(hw, B2_GP_IO, reg); |
244 | |||
245 | sky2_read32(hw, B2_GP_IO); | ||
241 | } | 246 | } |
242 | } | 247 | } |
243 | 248 | ||