diff options
Diffstat (limited to 'drivers/net/sky2.c')
-rw-r--r-- | drivers/net/sky2.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 612257172b95..0bd74fe5c338 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -217,13 +217,19 @@ static void sky2_power_on(struct sky2_hw *hw) | |||
217 | sky2_write8(hw, B2_Y2_CLK_GATE, 0); | 217 | sky2_write8(hw, B2_Y2_CLK_GATE, 0); |
218 | 218 | ||
219 | if (hw->chip_id == CHIP_ID_YUKON_EC_U || hw->chip_id == CHIP_ID_YUKON_EX) { | 219 | if (hw->chip_id == CHIP_ID_YUKON_EC_U || hw->chip_id == CHIP_ID_YUKON_EX) { |
220 | u32 reg1; | 220 | u32 reg; |
221 | 221 | ||
222 | sky2_pci_write32(hw, PCI_DEV_REG3, 0); | 222 | reg = sky2_pci_read32(hw, PCI_DEV_REG4); |
223 | reg1 = sky2_pci_read32(hw, PCI_DEV_REG4); | 223 | /* set all bits to 0 except bits 15..12 and 8 */ |
224 | reg1 &= P_ASPM_CONTROL_MSK; | 224 | reg &= P_ASPM_CONTROL_MSK; |
225 | sky2_pci_write32(hw, PCI_DEV_REG4, reg1); | 225 | sky2_pci_write32(hw, PCI_DEV_REG4, reg); |
226 | sky2_pci_write32(hw, PCI_DEV_REG5, 0); | 226 | |
227 | reg = sky2_pci_read32(hw, PCI_DEV_REG5); | ||
228 | /* set all bits to 0 except bits 28 & 27 */ | ||
229 | reg &= P_CTL_TIM_VMAIN_AV_MSK; | ||
230 | sky2_pci_write32(hw, PCI_DEV_REG5, reg); | ||
231 | |||
232 | sky2_pci_write32(hw, PCI_CFG_REG_1, 0); | ||
227 | } | 233 | } |
228 | } | 234 | } |
229 | 235 | ||