Messages in this thread | | | Date | Thu, 14 Aug 2008 04:29:07 -0400 | From | Jeff Garzik <> | Subject | Re: [PATCH] sky2: Fix suspend/hibernation/shutdown regression with WOL enabled (rev. 2) |
| |
Rafael J. Wysocki wrote: > On Sunday, 10 of August 2008, Rafael J. Wysocki wrote: >> On Sunday, 10 of August 2008, Stephen Hemminger wrote: >>> On Sat, 9 Aug 2008 23:32:28 +0200 >>> "Rafael J. Wysocki" <rjw@sisk.pl> wrote: >>> > [--snip--] >>> The problem is not unique to your chip version, >> Well, that's the part I wasn't sure of. >> >>> so patching out the power down is not the correct solution. >> Sure. > > But, shouldn't we switch to page 2 before selecting PHY_MARV_PHY_CTRL? Things > work correctly if this is done (patch below). > > Thanks, > Rafael > > > --- > On my test box with the Asus M3A32-MVP main board there is a > regression from 2.6.26 related to suspend, hibernation and > shutdown. Namely, if Wake-on-LAN is enabled with > 'ethtool -s eth0 wol g', the box hangs solid during all of these > operations, while executing either sky2_suspend(), or > sky2_shutdown(). This patch fixes it for me. > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> > --- > drivers/net/sky2.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > Index: linux-2.6/drivers/net/sky2.c > =================================================================== > --- linux-2.6.orig/drivers/net/sky2.c > +++ linux-2.6/drivers/net/sky2.c > @@ -666,11 +666,16 @@ static void sky2_phy_power_down(struct s > > if (hw->chip_id != CHIP_ID_YUKON_EC) { > if (hw->chip_id == CHIP_ID_YUKON_EC_U) { > - ctrl = gm_phy_read(hw, port, PHY_MARV_PHY_CTRL); > + /* select page 2 to access MAC control register */ > + gm_phy_write(hw, port, PHY_MARV_EXT_ADR, 2); > > + ctrl = gm_phy_read(hw, port, PHY_MARV_PHY_CTRL); > /* enable Power Down */ > ctrl |= PHY_M_PC_POW_D_ENA; > gm_phy_write(hw, port, PHY_MARV_PHY_CTRL, ctrl); > + > + /* set page register back to 0 */ > + gm_phy_write(hw, port, PHY_MARV_EXT_ADR, 0); > }
applied
| |