diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-08-09 17:14:50 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-08-10 08:30:48 -0400 |
commit | 8d3d35b4e20dc2e678fc7cb51165905b5a32fb76 (patch) | |
tree | c2a70b74ddbcb74abad9cb5a410d916cfa4f2afb /drivers | |
parent | 013b68bf7cb4edfb8753aac9bde3cb60c84bc067 (diff) |
[PATCH] sky2: phy power problems on 88e805X chips
On the 88E805X chipsets (used in laptops), the PHY was not getting powered
out of shutdown properly. The variable reg1 was getting reused incorrectly.
This is probably the cause of the bug.
http://bugzilla.kernel.org/show_bug.cgi?id=6471
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/sky2.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index de91609ca112..933e87f1cc68 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -233,6 +233,8 @@ static void sky2_set_power_state(struct sky2_hw *hw, pci_power_t state) | |||
233 | if (hw->ports > 1) | 233 | if (hw->ports > 1) |
234 | reg1 |= PCI_Y2_PHY2_COMA; | 234 | reg1 |= PCI_Y2_PHY2_COMA; |
235 | } | 235 | } |
236 | sky2_pci_write32(hw, PCI_DEV_REG1, reg1); | ||
237 | udelay(100); | ||
236 | 238 | ||
237 | if (hw->chip_id == CHIP_ID_YUKON_EC_U) { | 239 | if (hw->chip_id == CHIP_ID_YUKON_EC_U) { |
238 | sky2_pci_write32(hw, PCI_DEV_REG3, 0); | 240 | sky2_pci_write32(hw, PCI_DEV_REG3, 0); |
@@ -242,9 +244,6 @@ static void sky2_set_power_state(struct sky2_hw *hw, pci_power_t state) | |||
242 | sky2_pci_write32(hw, PCI_DEV_REG5, 0); | 244 | sky2_pci_write32(hw, PCI_DEV_REG5, 0); |
243 | } | 245 | } |
244 | 246 | ||
245 | sky2_pci_write32(hw, PCI_DEV_REG1, reg1); | ||
246 | udelay(100); | ||
247 | |||
248 | break; | 247 | break; |
249 | 248 | ||
250 | case PCI_D3hot: | 249 | case PCI_D3hot: |